diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 74dc108f7..cbfc0c587 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -61,7 +61,7 @@ - + \ No newline at end of file diff --git a/src/main/java/com/minelazz/epicworldgenerator/structures/StructureObject.java b/src/main/java/com/minelazz/epicworldgenerator/structures/StructureObject.java index fd9dc8b59..31368e41d 100644 --- a/src/main/java/com/minelazz/epicworldgenerator/structures/StructureObject.java +++ b/src/main/java/com/minelazz/epicworldgenerator/structures/StructureObject.java @@ -54,18 +54,18 @@ public class StructureObject implements Serializable if(i.blockData == null) { - FastBlockData f = map(i.id, i.data); - bdx = f == null ? null : f.getBlockData(); + BlockData f = map(i.id, i.data); + bdx = f == null ? null : f; } else { - bdx = B.get(i.blockData).getBlockData(); + bdx = B.get(i.blockData); } if(bdx != null) { - iob.getBlocks().put(new BlockVector(i.x, -i.y, i.z), FastBlockData.of(bdx)); + iob.getBlocks().put(new BlockVector(i.x, -i.y, i.z), bdx); } } @@ -73,7 +73,7 @@ public class StructureObject implements Serializable } @SuppressWarnings("deprecation") - private static final FastBlockData map(int id, int dat) + private static final BlockData map(int id, int dat) { for(Material i : EnumSet.allOf(Material.class)) { @@ -84,7 +84,7 @@ public class StructureObject implements Serializable if(i.getId() == id) { - return FastBlockData.of(Bukkit.getUnsafe().fromLegacy(i, (byte) dat)); + return Bukkit.getUnsafe().fromLegacy(i, (byte) dat); } } diff --git a/src/main/java/com/volmit/iris/Iris.java b/src/main/java/com/volmit/iris/Iris.java index 8149d6e09..9d333c228 100644 --- a/src/main/java/com/volmit/iris/Iris.java +++ b/src/main/java/com/volmit/iris/Iris.java @@ -424,11 +424,6 @@ public class Iris extends MortarPlugin public static void verbose(String string) { - if(true) - { - System.out.println(string); - } - try { if(IrisSettings.get().verbose) diff --git a/src/main/java/com/volmit/iris/command/CommandIrisWhatBlock.java b/src/main/java/com/volmit/iris/command/CommandIrisWhatBlock.java index a3d3957a9..efb962dce 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisWhatBlock.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisWhatBlock.java @@ -42,31 +42,31 @@ public class CommandIrisWhatBlock extends MortarCommand sender.sendMessage("Material: " + C.GREEN + bd.getMaterial().name()); sender.sendMessage("Full: " + C.WHITE + bd.getAsString(true)); - if (B.isStorage(FastBlockData.of(bd))) { + if (B.isStorage(bd)) { sender.sendMessage(C.YELLOW + "* Storage Block (Loot Capable)"); } - if (B.isLit(FastBlockData.of(bd))) { + if (B.isLit(bd)) { sender.sendMessage(C.YELLOW + "* Lit Block (Light Capable)"); } - if (B.isFoliage(FastBlockData.of(bd))) { + if (B.isFoliage(bd)) { sender.sendMessage(C.YELLOW + "* Foliage Block"); } - if (B.isDecorant(FastBlockData.of(bd))) { + if (B.isDecorant(bd)) { sender.sendMessage(C.YELLOW + "* Decorant Block"); } - if (B.isFluid(FastBlockData.of(bd))) { + if (B.isFluid(bd)) { sender.sendMessage(C.YELLOW + "* Fluid Block"); } - if (B.isFoliagePlantable(FastBlockData.of(bd))) { + if (B.isFoliagePlantable(bd)) { sender.sendMessage(C.YELLOW + "* Plantable Foliage Block"); } - if (B.isSolid(FastBlockData.of(bd))) { + if (B.isSolid(bd)) { sender.sendMessage(C.YELLOW + "* Solid Block"); } } diff --git a/src/main/java/com/volmit/iris/gen/ContextualTerrainProvider.java b/src/main/java/com/volmit/iris/gen/ContextualTerrainProvider.java index 068720bbc..3222c9c4f 100644 --- a/src/main/java/com/volmit/iris/gen/ContextualTerrainProvider.java +++ b/src/main/java/com/volmit/iris/gen/ContextualTerrainProvider.java @@ -367,12 +367,12 @@ public abstract class ContextualTerrainProvider implements TerrainProvider, List if(j == i || j + i == 16) { - chunk.setBlock(i, h, j, B.getBlockData("RED_TERRACOTTA").getType()); + chunk.setBlock(i, h, j, B.getBlockData("RED_TERRACOTTA").getMaterial()); } else { - chunk.setBlock(i, h, j, B.getBlockData("BLACK_TERRACOTTA").getType()); + chunk.setBlock(i, h, j, B.getBlockData("BLACK_TERRACOTTA").getMaterial()); } } } diff --git a/src/main/java/com/volmit/iris/gen/DimensionalTerrainProvider.java b/src/main/java/com/volmit/iris/gen/DimensionalTerrainProvider.java index 436b7bb7a..7c20034b3 100644 --- a/src/main/java/com/volmit/iris/gen/DimensionalTerrainProvider.java +++ b/src/main/java/com/volmit/iris/gen/DimensionalTerrainProvider.java @@ -4,6 +4,7 @@ import java.io.File; import org.bukkit.Bukkit; import org.bukkit.Material; +import org.bukkit.block.data.BlockData; import org.bukkit.entity.Player; import com.volmit.iris.Iris; @@ -26,10 +27,10 @@ public abstract class DimensionalTerrainProvider extends ContextualTerrainProvid { private String dimensionName; private IrisDimension forceDimension; - protected static final FastBlockData AIR = FastBlockData.of(Material.AIR); - protected static final FastBlockData CAVE_AIR = B.get("CAVE_AIR"); - protected static final FastBlockData BEDROCK = FastBlockData.of(Material.BEDROCK); - protected static final FastBlockData WATER = FastBlockData.of(Material.WATER); + protected static final BlockData AIR = Material.AIR.createBlockData(); + protected static final BlockData CAVE_AIR = B.get("CAVE_AIR"); + protected static final BlockData BEDROCK = Material.BEDROCK.createBlockData(); + protected static final BlockData WATER = Material.WATER.createBlockData(); public DimensionalTerrainProvider(TerrainTarget t, String dimensionName) { diff --git a/src/main/java/com/volmit/iris/gen/IrisTerrainProvider.java b/src/main/java/com/volmit/iris/gen/IrisTerrainProvider.java index 3f2b4ce97..4608177a8 100644 --- a/src/main/java/com/volmit/iris/gen/IrisTerrainProvider.java +++ b/src/main/java/com/volmit/iris/gen/IrisTerrainProvider.java @@ -11,6 +11,7 @@ import java.util.function.Function; import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.Location; +import org.bukkit.block.data.BlockData; import org.bukkit.entity.Player; import org.bukkit.event.block.BlockDropItemEvent; import org.bukkit.event.entity.EntitySpawnEvent; @@ -348,7 +349,7 @@ public class IrisTerrainProvider extends PostBlockTerrainProvider implements Iri return; } - FastBlockData data = FastBlockData.of(e.getBlockState().getBlockData()); + BlockData data = e.getBlockState().getBlockData(); KList drops = new KList<>(); boolean skipParents = false; diff --git a/src/main/java/com/volmit/iris/gen/ParallaxTerrainProvider.java b/src/main/java/com/volmit/iris/gen/ParallaxTerrainProvider.java index da6035083..f9aee63bb 100644 --- a/src/main/java/com/volmit/iris/gen/ParallaxTerrainProvider.java +++ b/src/main/java/com/volmit/iris/gen/ParallaxTerrainProvider.java @@ -5,6 +5,7 @@ import java.util.List; import org.bukkit.Chunk; import org.bukkit.World; +import org.bukkit.block.data.BlockData; import org.bukkit.entity.Player; import org.bukkit.generator.BlockPopulator; @@ -128,15 +129,15 @@ public abstract class ParallaxTerrainProvider extends TopographicTerrainProvider } @Override - public void set(int x, int y, int z, FastBlockData d) + public void set(int x, int y, int z, BlockData d) { getParallaxSliver(x, z).set(y, d); } @Override - public FastBlockData get(int x, int y, int z) + public BlockData get(int x, int y, int z) { - FastBlockData b = sampleSliver(x, z).getBlock()[y]; + BlockData b = sampleSliver(x, z).getBlock()[y]; return b == null ? AIR : b; } diff --git a/src/main/java/com/volmit/iris/gen/PostBlockTerrainProvider.java b/src/main/java/com/volmit/iris/gen/PostBlockTerrainProvider.java index 89f9b2a2a..eccbb35f2 100644 --- a/src/main/java/com/volmit/iris/gen/PostBlockTerrainProvider.java +++ b/src/main/java/com/volmit/iris/gen/PostBlockTerrainProvider.java @@ -1,5 +1,6 @@ package com.volmit.iris.gen; +import org.bukkit.block.data.BlockData; import org.bukkit.generator.ChunkGenerator.ChunkData; import com.volmit.iris.Iris; @@ -84,7 +85,7 @@ public abstract class PostBlockTerrainProvider extends ParallaxTerrainProvider i } @Override - public FastBlockData getPostBlock(int x, int y, int z, int currentPostX, int currentPostZ, ChunkData currentData) + public BlockData getPostBlock(int x, int y, int z, int currentPostX, int currentPostZ, ChunkData currentData) { if(y > 255 || y < 0) { @@ -94,7 +95,7 @@ public abstract class PostBlockTerrainProvider extends ParallaxTerrainProvider i if(x >> 4 == currentPostX && z >> 4 == currentPostZ) { getPostLock().lock(); - FastBlockData d = FastBlockData.of(currentData.getBlockData(x & 15, y, z & 15)); + BlockData d = currentData.getBlockData(x & 15, y, z & 15); getPostLock().unlock(); return d; } @@ -103,22 +104,12 @@ public abstract class PostBlockTerrainProvider extends ParallaxTerrainProvider i } @Override - public void setPostBlock(int x, int y, int z, FastBlockData d, int currentPostX, int currentPostZ, ChunkData currentData) + public void setPostBlock(int x, int y, int z, BlockData d, int currentPostX, int currentPostZ, ChunkData currentData) { if(x >> 4 == currentPostX && z >> 4 == currentPostZ) { getPostLock().lock(); - - if(d.hasBlockData()) - { - currentData.setBlock(x & 15, y, z & 15, d.getBlockData()); - } - - else - { - currentData.setBlock(x & 15, y, z & 15, d.getType()); - } - + currentData.setBlock(x & 15, y, z & 15, d); getPostLock().unlock(); } diff --git a/src/main/java/com/volmit/iris/gen/TopographicTerrainProvider.java b/src/main/java/com/volmit/iris/gen/TopographicTerrainProvider.java index 5971dec69..5f76f3036 100644 --- a/src/main/java/com/volmit/iris/gen/TopographicTerrainProvider.java +++ b/src/main/java/com/volmit/iris/gen/TopographicTerrainProvider.java @@ -40,6 +40,7 @@ import com.volmit.iris.util.RNG; import lombok.Data; import lombok.EqualsAndHashCode; +import org.bukkit.block.data.BlockData; @Data @EqualsAndHashCode(callSuper = false) @@ -128,7 +129,7 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider } RNG crand = getMasterRandom().nextParallelRNG(rx).nextParallelRNG(rz); - FastBlockData block; + BlockData block; int fluidHeight = getDimension().getFluidHeight(); double ox = getModifiedX(rx, rz); double oz = getModifiedZ(rx, rz); @@ -149,10 +150,10 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider throw new RuntimeException("Null Biome!"); } - KList layers = biome.generateLayers(rx, rz, getMasterRandom(), height, height - getFluidHeight(), getData()); - KList cavernLayers = null; - KList seaLayers = biome.isAquatic() || biome.isShore() ? biome.generateSeaLayers(rx, rz, getMasterRandom(), fluidHeight - height, getData()) : new KList<>(); - FastBlockData biomeFluid = biome.getFluidType().isEmpty() ? null : B.get(biome.getFluidType()); + KList layers = biome.generateLayers(rx, rz, getMasterRandom(), height, height - getFluidHeight(), getData()); + KList cavernLayers = null; + KList seaLayers = biome.isAquatic() || biome.isShore() ? biome.generateSeaLayers(rx, rz, getMasterRandom(), fluidHeight - height, getData()) : new KList<>(); + BlockData biomeFluid = biome.getFluidType().isEmpty() ? null : B.get(biome.getFluidType()); boolean caverning = false; KList cavernHeights = new KList<>(); @@ -314,9 +315,9 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider } } - KList floor = caveBiome.generateLayers(wx, wz, rockRandom, i.getFloor() - 2, i.getFloor() - 2, getData()); - KList ceiling = caveBiome.generateLayers(wx + 256, wz + 256, rockRandom, (carvable ? getCarvedWaterHeight(rx, rz) : height) - i.getCeiling() - 2, (carvable ? getCarvedWaterHeight(rx, rz) : height) - i.getCeiling() - 2, getData()); - FastBlockData blockc = null; + KList floor = caveBiome.generateLayers(wx, wz, rockRandom, i.getFloor() - 2, i.getFloor() - 2, getData()); + KList ceiling = caveBiome.generateLayers(wx + 256, wz + 256, rockRandom, (carvable ? getCarvedWaterHeight(rx, rz) : height) - i.getCeiling() - 2, (carvable ? getCarvedWaterHeight(rx, rz) : height) - i.getCeiling() - 2, getData()); + BlockData blockc = null; for(int j = 0; j < floor.size(); j++) { if(j == 0) @@ -368,7 +369,7 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider return map; } - private void decorateLand(RNG rng, IrisBiome biome, AtomicSliver sliver, int k, int rx, int rz, FastBlockData block) + private void decorateLand(RNG rng, IrisBiome biome, AtomicSliver sliver, int k, int rx, int rz, BlockData block) { if(!getDimension().isDecorate()) { @@ -384,7 +385,7 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider continue; } - FastBlockData d = i.getBlockData(biome, rng.nextParallelRNG(38888 + biome.getRarity() + biome.getName().length() + j++), rx, rz, getData()); + BlockData d = i.getBlockData(biome, rng.nextParallelRNG(38888 + biome.getRarity() + biome.getName().length() + j++), rx, rz, getData()); if(d != null) { @@ -409,12 +410,12 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider } } - if(d.getBlockData() instanceof Bisected && k < 254) + if(d instanceof Bisected && k < 254) { - FastBlockData bb = d.clone(); - Bisected t = ((Bisected) d.getBlockData()); + BlockData bb = d.clone(); + Bisected t = ((Bisected) d); t.setHalf(Half.TOP); - Bisected b = ((Bisected) bb.getBlockData()); + Bisected b = ((Bisected) bb); b.setHalf(Half.BOTTOM); sliver.set(k + 1, bb); sliver.set(k + 2, d); @@ -423,7 +424,7 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider else { int stack = i.getHeight(rng.nextParallelRNG((int) (39456 + (10000 * i.getChance()) + i.getStackMax() + i.getStackMin() + i.getZoom())), rx, rz, getData()); - FastBlockData top = null; + BlockData top = null; if(stack > 1 && i.getTopPalette().hasElements()) { @@ -439,7 +440,7 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider { for(int l = 0; l < stack; l++) { - FastBlockData dd = i.getBlockData100(biome, rng.nextParallelRNG(38888 + l + biome.getRarity() + biome.getName().length() + j++), rx + l, rz - l, getData()); + BlockData dd = i.getBlockData100(biome, rng.nextParallelRNG(38888 + l + biome.getRarity() + biome.getName().length() + j++), rx + l, rz - l, getData()); d = dd != null ? dd : d; sliver.set(k + l + 1, l == stack - 1 && top != null ? top : d); } @@ -451,7 +452,7 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider } } - private void decorateCave(RNG rng, IrisBiome biome, AtomicSliver sliver, int k, int rx, int rz, FastBlockData block) + private void decorateCave(RNG rng, IrisBiome biome, AtomicSliver sliver, int k, int rx, int rz, BlockData block) { if(!getDimension().isDecorate()) { @@ -462,7 +463,7 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider for(IrisDecorator i : biome.getDecorators()) { - FastBlockData d = i.getBlockData(biome, rng.nextParallelRNG(2333877 + biome.getRarity() + biome.getName().length() + +j++), rx, rz, getData()); + BlockData d = i.getBlockData(biome, rng.nextParallelRNG(2333877 + biome.getRarity() + biome.getName().length() + +j++), rx, rz, getData()); if(d != null) { @@ -479,12 +480,12 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider } } - if(d.getBlockData() instanceof Bisected && k < 254) + if(d instanceof Bisected && k < 254) { - FastBlockData bb = d.clone(); - Bisected t = ((Bisected) d.getBlockData()); + BlockData bb = d.clone(); + Bisected t = ((Bisected) d); t.setHalf(Half.TOP); - Bisected b = ((Bisected) bb.getBlockData()); + Bisected b = ((Bisected) bb); b.setHalf(Half.BOTTOM); sliver.set(k + 1, bb); sliver.set(k + 2, d); @@ -534,7 +535,7 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider continue; } - FastBlockData d = i.getBlockData(biome, getMasterRandom().nextParallelRNG(2555 + biome.getRarity() + biome.getName().length() + j++), rx, rz, getData()); + BlockData d = i.getBlockData(biome, getMasterRandom().nextParallelRNG(2555 + biome.getRarity() + biome.getName().length() + j++), rx, rz, getData()); if(d != null) { diff --git a/src/main/java/com/volmit/iris/gen/atomics/AtomicSliver.java b/src/main/java/com/volmit/iris/gen/atomics/AtomicSliver.java index 64e20e711..830093cb5 100644 --- a/src/main/java/com/volmit/iris/gen/atomics/AtomicSliver.java +++ b/src/main/java/com/volmit/iris/gen/atomics/AtomicSliver.java @@ -6,6 +6,7 @@ import java.io.IOException; import org.bukkit.Material; import org.bukkit.block.Biome; +import org.bukkit.block.data.BlockData; import org.bukkit.generator.ChunkGenerator.BiomeGrid; import org.bukkit.generator.ChunkGenerator.ChunkData; @@ -21,7 +22,7 @@ import lombok.Data; @Data public class AtomicSliver { - public static final FastBlockData AIR = B.getBlockData("AIR"); + public static final BlockData AIR = B.getBlockData("AIR"); public static boolean forgetful = false; private transient Biome[] biome; private transient Biome onlyBiome; @@ -31,7 +32,7 @@ public class AtomicSliver private transient final byte x; private transient final byte z; private transient boolean modified = false; - private FastBlockData[] block; + private BlockData[] block; private KList blockUpdates; private int highestBlock = 0; @@ -41,7 +42,7 @@ public class AtomicSliver this.x = (byte) x; this.z = (byte) z; blockUpdates = new KList<>(4); - this.block = new FastBlockData[256]; + this.block = new BlockData[256]; this.biome = new Biome[256]; } @@ -80,7 +81,7 @@ public class AtomicSliver blockUpdates.remove(Byte.valueOf((byte) (y + Byte.MIN_VALUE))); } - public FastBlockData get(int h) + public BlockData get(int h) { if(forgetful) { @@ -97,7 +98,7 @@ public class AtomicSliver h = 0; } - FastBlockData b = block[h]; + BlockData b = block[h]; last = M.ms(); if(b == null) @@ -108,13 +109,13 @@ public class AtomicSliver return b; } - public FastBlockData getOrNull(int h) + public BlockData getOrNull(int h) { if(forgetful || oob(h)) { return null; } - FastBlockData b = block[h]; + BlockData b = block[h]; last = M.ms(); if(b.getMaterial().equals(Material.AIR)) @@ -125,7 +126,7 @@ public class AtomicSliver return b; } - public void set(int h, FastBlockData d) + public void set(int h, BlockData d) { if(forgetful || oob(h)) { @@ -139,7 +140,7 @@ public class AtomicSliver lock.unlock(); } - public void setSilently(int h, FastBlockData d) + public void setSilently(int h, BlockData d) { if(forgetful) { @@ -233,7 +234,7 @@ public class AtomicSliver else { - d.setBlock(x, i, z, block[i].getBlockData()); + d.setBlock(x, i, z, block[i]); } } lock.unlock(); @@ -272,14 +273,14 @@ public class AtomicSliver public void read(DataInputStream din) throws IOException { lock.lock(); - this.block = new FastBlockData[256]; + this.block = new BlockData[256]; getUpdatables().clear(); // Block Palette int p = din.readByte() - Byte.MIN_VALUE; int h = din.readByte() - Byte.MIN_VALUE; int u = din.readByte() - Byte.MIN_VALUE; - KList palette = new KList(); + KList palette = new KList(); highestBlock = h; for(int i = 0; i < p; i++) @@ -316,8 +317,8 @@ public class AtomicSliver for(int i = 0; i <= highestBlock; i++) { - FastBlockData dat = block[i]; - String d = (dat == null ? AIR : dat).getBlockData().getAsString(true); + BlockData dat = block[i]; + String d = (dat == null ? AIR : dat).getAsString(true); if(!palette.contains(d)) { @@ -337,8 +338,8 @@ public class AtomicSliver // Blocks for(int i = 0; i <= highestBlock; i++) { - FastBlockData dat = block[i]; - String d = (dat == null ? AIR : dat).getBlockData().getAsString(true); + BlockData dat = block[i]; + String d = (dat == null ? AIR : dat).getAsString(true); dos.writeByte(palette.indexOf(d) + Byte.MIN_VALUE); } @@ -362,7 +363,7 @@ public class AtomicSliver { if(block[i] == null || block[i].equals(AIR)) { - FastBlockData b = atomicSliver.block[i]; + BlockData b = atomicSliver.block[i]; if(b == null || b.equals(AIR)) { continue; @@ -384,7 +385,7 @@ public class AtomicSliver for(int i = 0; i < block.length; i++) { - FastBlockData b = block[i]; + BlockData b = block[i]; if(b != null) { if(b.getMaterial().equals(Material.AIR)) @@ -392,15 +393,7 @@ public class AtomicSliver continue; } - if(b.hasBlockData()) - { - currentData.setBlock(x, i, z, b.getBlockData()); - } - - else - { - currentData.setBlock(x, i, z, b.getType()); - } + currentData.setBlock(x, i, z, b); } } diff --git a/src/main/java/com/volmit/iris/gen/layer/GenLayerCave.java b/src/main/java/com/volmit/iris/gen/layer/GenLayerCave.java index 160cf4c92..a9da3b0dc 100644 --- a/src/main/java/com/volmit/iris/gen/layer/GenLayerCave.java +++ b/src/main/java/com/volmit/iris/gen/layer/GenLayerCave.java @@ -2,6 +2,7 @@ package com.volmit.iris.gen.layer; import java.util.function.Function; +import com.volmit.iris.util.*; import org.bukkit.Material; import com.volmit.iris.gen.TopographicTerrainProvider; @@ -11,17 +12,13 @@ import com.volmit.iris.noise.FastNoiseDouble.CellularDistanceFunction; import com.volmit.iris.noise.FastNoiseDouble.CellularReturnType; import com.volmit.iris.noise.FastNoiseDouble.NoiseType; import com.volmit.iris.object.IrisCaveLayer; -import com.volmit.iris.util.B; -import com.volmit.iris.util.CaveResult; -import com.volmit.iris.util.GenLayer; -import com.volmit.iris.util.KList; -import com.volmit.iris.util.RNG; +import org.bukkit.block.data.BlockData; public class GenLayerCave extends GenLayer { public static boolean bad = false; - public static final FastBlockData CAVE_AIR = B.getBlockData("CAVE_AIR"); - public static final FastBlockData AIR = B.getBlockData("AIR"); + public static final BlockData CAVE_AIR = B.getBlockData("CAVE_AIR"); + public static final BlockData AIR = B.getBlockData("AIR"); private static final KList EMPTY = new KList<>(); private final FastNoiseDouble gg; @@ -55,7 +52,7 @@ public class GenLayerCave extends GenLayer public void generateCave(KList result, double wxx, double wzz, int x, int z, AtomicSliver data, IrisCaveLayer layer, int seed) { double scale = layer.getCaveZoom(); - Function fluid = (height) -> + Function fluid = (height) -> { if(!layer.getFluid().hasFluid(iris.getData())) { @@ -160,15 +157,15 @@ public class GenLayerCave extends GenLayer } } - public boolean dig(int x, int y, int z, AtomicSliver data, Function caveFluid) + public boolean dig(int x, int y, int z, AtomicSliver data, Function caveFluid) { Material a = data.getTypeSafe(y); Material c = data.getTypeSafe(y + 1); Material d = data.getTypeSafe(y + 2); Material e = data.getTypeSafe(y + 3); Material f = data.getTypeSafe(y - 1); - FastBlockData b = caveFluid.apply(y); - FastBlockData b2 = caveFluid.apply(y + 1); + BlockData b = caveFluid.apply(y); + BlockData b2 = caveFluid.apply(y + 1); if(can(a) && canAir(c, b) && canAir(f, b) && canWater(d) && canWater(e)) { @@ -180,9 +177,9 @@ public class GenLayerCave extends GenLayer return false; } - public boolean canAir(Material m, FastBlockData caveFluid) + public boolean canAir(Material m, BlockData caveFluid) { - return (B.isSolid(m) || (B.isDecorant(FastBlockData.of(m))) || m.equals(Material.AIR) || m.equals(caveFluid.getMaterial()) || m.equals(B.mat("CAVE_AIR").getMaterial())) && !m.equals(Material.BEDROCK); + return (B.isSolid(m) || (B.isDecorant(m.createBlockData())) || m.equals(Material.AIR) || m.equals(caveFluid.getMaterial()) || m.equals(B.mat("CAVE_AIR").getMaterial())) && !m.equals(Material.BEDROCK); } public boolean canWater(Material m) diff --git a/src/main/java/com/volmit/iris/gen/layer/GenLayerRavine.java b/src/main/java/com/volmit/iris/gen/layer/GenLayerRavine.java index 300ebdb6b..1b08ca1c2 100644 --- a/src/main/java/com/volmit/iris/gen/layer/GenLayerRavine.java +++ b/src/main/java/com/volmit/iris/gen/layer/GenLayerRavine.java @@ -18,13 +18,14 @@ import com.volmit.iris.util.RNG; import lombok.Data; import lombok.EqualsAndHashCode; +import org.bukkit.block.data.BlockData; @Data @EqualsAndHashCode(callSuper = false) public class GenLayerRavine extends GenLayer { - private static final FastBlockData CAVE_AIR = B.get("CAVE_AIR"); - private static final FastBlockData LAVA = B.get("LAVA"); + private static final BlockData CAVE_AIR = B.get("CAVE_AIR"); + private static final BlockData LAVA = B.get("LAVA"); private CNG cng; public GenLayerRavine(TopographicTerrainProvider iris, RNG rng) @@ -39,9 +40,9 @@ public class GenLayerRavine extends GenLayer return 0; } - private void set(TerrainChunk pos, int x, int y, int z, FastBlockData b, HeightMap h, AtomicSliverMap map) + private void set(TerrainChunk pos, int x, int y, int z, BlockData b, HeightMap h, AtomicSliverMap map) { - pos.setBlock(x, y, z, b.getBlockData()); + pos.setBlock(x, y, z, b); map.getSliver(x, z).set(y, b); if(h.getHeight(x, z) > y) @@ -50,12 +51,12 @@ public class GenLayerRavine extends GenLayer } } - private FastBlockData get(TerrainChunk pos, int x, int y, int z) + private BlockData get(TerrainChunk pos, int x, int y, int z) { - return FastBlockData.of(pos.getBlockData(x, y, z)); + return pos.getBlockData(x, y, z); } - private FastBlockData getSurfaceBlock(BiomeMap map, int n6, int i, RNG rmg) + private BlockData getSurfaceBlock(BiomeMap map, int n6, int i, RNG rmg) { return map.getBiome(n6, i).getSurfaceBlock(n6, i, rmg, iris.getData()); } @@ -163,7 +164,7 @@ public class GenLayerRavine extends GenLayer continue; } - FastBlockData bb = get(terrain, i, j, n6); + BlockData bb = get(terrain, i, j, n6); if(B.isWater(bb)) { @@ -200,7 +201,7 @@ public class GenLayerRavine extends GenLayer continue; } - FastBlockData blockData = get(terrain, n6, j, i); + BlockData blockData = get(terrain, n6, j, i); if(isSurface(blockData)) { @@ -242,7 +243,7 @@ public class GenLayerRavine extends GenLayer return bb; } - private boolean isDirt(FastBlockData d) + private boolean isDirt(BlockData d) { //@builder Material m = d.getMaterial(); @@ -252,7 +253,7 @@ public class GenLayerRavine extends GenLayer //@done } - private boolean isSurface(FastBlockData d) + private boolean isSurface(BlockData d) { //@builder Material m = d.getMaterial(); diff --git a/src/main/java/com/volmit/iris/gen/layer/GenLayerText.java b/src/main/java/com/volmit/iris/gen/layer/GenLayerText.java index 9a17c804b..63511e276 100644 --- a/src/main/java/com/volmit/iris/gen/layer/GenLayerText.java +++ b/src/main/java/com/volmit/iris/gen/layer/GenLayerText.java @@ -13,10 +13,11 @@ import com.volmit.iris.object.IrisObject; import com.volmit.iris.util.B; import com.volmit.iris.util.GenLayer; import com.volmit.iris.util.RNG; +import org.bukkit.block.data.BlockData; public class GenLayerText extends GenLayer { - public static final FastBlockData AIR = B.getBlockData("AIR"); + public static final BlockData AIR = B.getBlockData("AIR"); private final AtomicCache debug = new AtomicCache<>(); @@ -30,7 +31,7 @@ public class GenLayerText extends GenLayer return debug.aquire(() -> createTextObject("Test", "Impact", 24, B.get("STONE"))); } - public IrisObject createTextObject(String text, String font, int size, FastBlockData b) + public IrisObject createTextObject(String text, String font, int size, BlockData b) { Font f = new Font(font, Font.PLAIN, size); int w = ((Graphics2D) new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB).getGraphics()).getFontMetrics(f).stringWidth(text); diff --git a/src/main/java/com/volmit/iris/gen/layer/GenLayerUpdate.java b/src/main/java/com/volmit/iris/gen/layer/GenLayerUpdate.java index aea790f3e..eb464e06f 100644 --- a/src/main/java/com/volmit/iris/gen/layer/GenLayerUpdate.java +++ b/src/main/java/com/volmit/iris/gen/layer/GenLayerUpdate.java @@ -7,6 +7,7 @@ import org.bukkit.Chunk; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; +import org.bukkit.block.data.BlockData; import org.bukkit.generator.BlockPopulator; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; @@ -129,7 +130,7 @@ public class GenLayerUpdate extends BlockPopulator public void update(Chunk c, int x, int y, int z, int rx, int rz, RNG rng) { Block b = c.getBlock(x, y, z); - FastBlockData d = FastBlockData.of(b.getBlockData()); + BlockData d = b.getBlockData(); if(B.isLit(d)) { @@ -211,7 +212,7 @@ public class GenLayerUpdate extends BlockPopulator scramble(inv, rng); } - public void updateStorage(Block b, FastBlockData data, int rx, int rz, RNG rng) + public void updateStorage(Block b, BlockData data, int rx, int rz, RNG rng) { InventorySlotType slot = null; @@ -285,9 +286,9 @@ public class GenLayerUpdate extends BlockPopulator inventory.setContents(nitems); } - public void updateLight(Block b, FastBlockData data) + public void updateLight(Block b, BlockData data) { b.setType(Material.AIR, false); - b.setBlockData(data.getBlockData(), false); + b.setBlockData(data, false); } } diff --git a/src/main/java/com/volmit/iris/gen/provisions/ProvisionBukkit.java b/src/main/java/com/volmit/iris/gen/provisions/ProvisionBukkit.java index 8c2a90bd2..bd8c4c919 100644 --- a/src/main/java/com/volmit/iris/gen/provisions/ProvisionBukkit.java +++ b/src/main/java/com/volmit/iris/gen/provisions/ProvisionBukkit.java @@ -10,6 +10,7 @@ import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.Biome; +import org.bukkit.block.data.BlockData; import org.bukkit.generator.BlockPopulator; import org.bukkit.generator.ChunkGenerator; @@ -92,7 +93,7 @@ public class ProvisionBukkit extends ChunkGenerator implements Provisioned { for(int k = 0; k < 16; k++) { - FastBlockData b = FastBlockData.of(snapshot.getBlockData(i, (h * 16) + j, k)); + BlockData b = snapshot.getBlockData(i, (h * 16) + j, k); if(!Iris.edit.get(cachedWorld, i + cx, (h * 16) + j, k + cz).equals(b)) { diff --git a/src/main/java/com/volmit/iris/gen/v2/IrisComplex.java b/src/main/java/com/volmit/iris/gen/v2/IrisComplex.java index ebccfbdda..b0411f5f0 100644 --- a/src/main/java/com/volmit/iris/gen/v2/IrisComplex.java +++ b/src/main/java/com/volmit/iris/gen/v2/IrisComplex.java @@ -102,11 +102,9 @@ public class IrisComplex implements DataProvider .cache2D(64); chunkRngStream = rngStream.blockToChunkCoords(); rockStream = dimension.getRockPalette().getLayerGenerator(rng.nextRNG(), data).stream() - .select(dimension.getRockPalette().getBlockData(data)) - .convert((v) -> v.getBlockData()); + .select(dimension.getRockPalette().getBlockData(data)); fluidStream = dimension.getFluidPalette().getLayerGenerator(rng.nextRNG(), data).stream() - .select(dimension.getFluidPalette().getBlockData(data)) - .convert((v) -> v.getBlockData()); + .select(dimension.getFluidPalette().getBlockData(data)); regionStream = dimension.getRegionStyle().create(rng.nextRNG()).stream() .zoom(dimension.getRegionZoom()) .selectRarity(dimension.getRegions()) @@ -197,7 +195,7 @@ public class IrisComplex implements DataProvider if(atDepth + th >= depth) { - return i.get(rng, x, y, z, data).getBlockData(); + return i.get(rng, x, y, z, data); } atDepth += th; @@ -217,7 +215,7 @@ public class IrisComplex implements DataProvider continue; } - FastBlockData block = i.getBlockData(b, rngc, x, z, data); + BlockData block = i.getBlockData(b, rngc, x, z, data); if(block != null) { diff --git a/src/main/java/com/volmit/iris/gen/v2/IrisTerrainGenerator.java b/src/main/java/com/volmit/iris/gen/v2/IrisTerrainGenerator.java index fb523ca0b..a6feb2c37 100644 --- a/src/main/java/com/volmit/iris/gen/v2/IrisTerrainGenerator.java +++ b/src/main/java/com/volmit/iris/gen/v2/IrisTerrainGenerator.java @@ -83,18 +83,18 @@ public class IrisTerrainGenerator for(int i = 0; i < stack; i++) { - h.set(ax, i + floor, az, deco.getBlockData100(b, rng, rx - i, rz + i, data).getBlockData()); + h.set(ax, i + floor, az, deco.getBlockData100(b, rng, rx - i, rz + i, data)); } if(deco.getTopPalette().isNotEmpty()) { - h.set(ax, stack + floor - 1, az, deco.getBlockDataForTop(b, rng, rx - stack, rz + stack, data).getBlockData()); + h.set(ax, stack + floor - 1, az, deco.getBlockDataForTop(b, rng, rx - stack, rz + stack, data)); } } else { - h.set(ax, floor, az, deco.getBlockData100(b, rng, rx, rz, data).getBlockData()); + h.set(ax, floor, az, deco.getBlockData100(b, rng, rx, rz, data)); } } @@ -110,18 +110,18 @@ public class IrisTerrainGenerator for(int i = 0; i < stack; i++) { - h.set(ax, -i + ceiling, az, cdeco.getBlockData100(b, rng, rx - i, rz + i, data).getBlockData()); + h.set(ax, -i + ceiling, az, cdeco.getBlockData100(b, rng, rx - i, rz + i, data)); } if(cdeco.getTopPalette().isNotEmpty()) { - h.set(ax, -stack + ceiling - 1, az, cdeco.getBlockDataForTop(b, rng, rx - stack, rz + stack, data).getBlockData()); + h.set(ax, -stack + ceiling - 1, az, cdeco.getBlockDataForTop(b, rng, rx - stack, rz + stack, data)); } } else { - h.set(ax, ceiling, az, cdeco.getBlockData100(b, rng, rx, rz, data).getBlockData()); + h.set(ax, ceiling, az, cdeco.getBlockData100(b, rng, rx, rz, data)); } } } diff --git a/src/main/java/com/volmit/iris/gen/v2/scaffold/hunk/io/BlockDataHunkIOAdapter.java b/src/main/java/com/volmit/iris/gen/v2/scaffold/hunk/io/BlockDataHunkIOAdapter.java index 9eb27695c..99c3028f2 100644 --- a/src/main/java/com/volmit/iris/gen/v2/scaffold/hunk/io/BlockDataHunkIOAdapter.java +++ b/src/main/java/com/volmit/iris/gen/v2/scaffold/hunk/io/BlockDataHunkIOAdapter.java @@ -17,6 +17,6 @@ public class BlockDataHunkIOAdapter extends PaletteHunkIOAdapter { @Override public BlockData read(DataInputStream din) throws IOException { - return B.get(din.readUTF()).getBlockData(); + return B.get(din.readUTF()); } } diff --git a/src/main/java/com/volmit/iris/gen/v2/scaffold/hunk/view/ChunkHunkView.java b/src/main/java/com/volmit/iris/gen/v2/scaffold/hunk/view/ChunkHunkView.java index ebebedcc4..047e9d5e1 100644 --- a/src/main/java/com/volmit/iris/gen/v2/scaffold/hunk/view/ChunkHunkView.java +++ b/src/main/java/com/volmit/iris/gen/v2/scaffold/hunk/view/ChunkHunkView.java @@ -36,12 +36,12 @@ public class ChunkHunkView implements Hunk @Override public void setRaw(int x, int y, int z, BlockData t) { - Iris.edit.set(chunk.getWorld(), x + (chunk.getX() * 16), y, z + (chunk.getZ() * 16), FastBlockData.of(t)); + Iris.edit.set(chunk.getWorld(), x + (chunk.getX() * 16), y, z + (chunk.getZ() * 16), t); } @Override public BlockData getRaw(int x, int y, int z) { - return Iris.edit.get(chunk.getWorld(), x + (chunk.getX() * 16), y, z + (chunk.getZ() * 16)).getBlockData(); + return Iris.edit.get(chunk.getWorld(), x + (chunk.getX() * 16), y, z + (chunk.getZ() * 16)); } } diff --git a/src/main/java/com/volmit/iris/gen/v2/scaffold/parallax/ParallaxChunkMeta.java b/src/main/java/com/volmit/iris/gen/v2/scaffold/parallax/ParallaxChunkMeta.java index f875ad65b..c454fd5f2 100644 --- a/src/main/java/com/volmit/iris/gen/v2/scaffold/parallax/ParallaxChunkMeta.java +++ b/src/main/java/com/volmit/iris/gen/v2/scaffold/parallax/ParallaxChunkMeta.java @@ -1,6 +1,5 @@ package com.volmit.iris.gen.v2.scaffold.parallax; -import com.sun.tools.javac.code.Attribute; import com.volmit.iris.gen.v2.scaffold.hunk.io.HunkIOAdapter; import com.volmit.iris.gen.v2.scaffold.hunk.io.PaletteHunkIOAdapter; import com.volmit.iris.util.CompoundTag; diff --git a/src/main/java/com/volmit/iris/manager/EditManager.java b/src/main/java/com/volmit/iris/manager/EditManager.java index f17d69f93..490dc8348 100644 --- a/src/main/java/com/volmit/iris/manager/EditManager.java +++ b/src/main/java/com/volmit/iris/manager/EditManager.java @@ -3,6 +3,7 @@ package com.volmit.iris.manager; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.block.Biome; +import org.bukkit.block.data.BlockData; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.world.WorldUnloadEvent; @@ -28,14 +29,14 @@ public class EditManager implements Listener Bukkit.getScheduler().scheduleSyncRepeatingTask(Iris.instance, this::update, 0, 0); } - public FastBlockData get(World world, int x, int y, int z) + public BlockData get(World world, int x, int y, int z) { - return FastBlockData.of(open(world).get(x, y, z)); + return open(world).get(x, y, z); } - public void set(World world, int x, int y, int z, FastBlockData d) + public void set(World world, int x, int y, int z, BlockData d) { - open(world).set(x, y, z, d.getBlockData()); + open(world).set(x, y, z, d); } public void setBiome(World world, int x, int y, int z, Biome d) diff --git a/src/main/java/com/volmit/iris/manager/WandManager.java b/src/main/java/com/volmit/iris/manager/WandManager.java index 78177ca20..118753ccd 100644 --- a/src/main/java/com/volmit/iris/manager/WandManager.java +++ b/src/main/java/com/volmit/iris/manager/WandManager.java @@ -210,7 +210,7 @@ public class WandManager implements Listener } BlockVector bv = b.getLocation().subtract(c.getLowerNE().toVector()).toVector().toBlockVector(); - s.setUnsigned(bv.getBlockX(), bv.getBlockY(), bv.getBlockZ(), FastBlockData.of(b.getBlockData())); + s.setUnsigned(bv.getBlockX(), bv.getBlockY(), bv.getBlockZ(), b.getBlockData()); } return s; diff --git a/src/main/java/com/volmit/iris/object/IrisBiome.java b/src/main/java/com/volmit/iris/object/IrisBiome.java index b2cc8b5fe..253e31bd1 100644 --- a/src/main/java/com/volmit/iris/object/IrisBiome.java +++ b/src/main/java/com/volmit/iris/object/IrisBiome.java @@ -30,6 +30,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; +import org.bukkit.block.data.BlockData; @Accessors(chain = true) @NoArgsConstructor @@ -349,14 +350,14 @@ public class IrisBiome extends IrisRegistrant implements IRare return childrenCell.aquire(() -> getChildStyle().create(random.nextParallelRNG(sig * 2137)).bake().scale(scale).bake()); } - public KList generateLayers(double wx, double wz, RNG random, int maxDepth, int height, IrisDataManager rdata) + public KList generateLayers(double wx, double wz, RNG random, int maxDepth, int height, IrisDataManager rdata) { if(isLockLayers()) { return generateLockedLayers(wx, wz, random, maxDepth, height, rdata); } - KList data = new KList<>(); + KList data = new KList<>(); if(maxDepth <= 0) { @@ -400,10 +401,10 @@ public class IrisBiome extends IrisRegistrant implements IRare return data; } - public KList generateLockedLayers(double wx, double wz, RNG random, int maxDepthf, int height, IrisDataManager rdata) + public KList generateLockedLayers(double wx, double wz, RNG random, int maxDepthf, int height, IrisDataManager rdata) { - KList data = new KList<>(); - KList real = new KList<>(); + KList data = new KList<>(); + KList real = new KList<>(); int maxDepth = Math.min(maxDepthf, getLockLayersMax()); if(maxDepth <= 0) { @@ -470,9 +471,9 @@ public class IrisBiome extends IrisRegistrant implements IRare return this; } - public KList generateSeaLayers(double wx, double wz, RNG random, int maxDepth, IrisDataManager rdata) + public KList generateSeaLayers(double wx, double wz, RNG random, int maxDepth, IrisDataManager rdata) { - KList data = new KList<>(); + KList data = new KList<>(); for(int i = 0; i < seaLayers.size(); i++) { @@ -660,7 +661,7 @@ public class IrisBiome extends IrisRegistrant implements IRare return getBiomeGenerator(rng).fit(biomeScatter, x, y, z); } - public FastBlockData getSurfaceBlock(int x, int z, RNG rng, IrisDataManager idm) + public BlockData getSurfaceBlock(int x, int z, RNG rng, IrisDataManager idm) { if(getLayers().isEmpty()) { diff --git a/src/main/java/com/volmit/iris/object/IrisBiomePaletteLayer.java b/src/main/java/com/volmit/iris/object/IrisBiomePaletteLayer.java index d066db864..9154f0a94 100644 --- a/src/main/java/com/volmit/iris/object/IrisBiomePaletteLayer.java +++ b/src/main/java/com/volmit/iris/object/IrisBiomePaletteLayer.java @@ -17,6 +17,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; +import org.bukkit.block.data.BlockData; @Accessors(chain = true) @NoArgsConstructor @@ -54,7 +55,7 @@ public class IrisBiomePaletteLayer @Desc("The palette of blocks to be used in this layer") private KList palette = new KList().qadd(new IrisBlockData("GRASS_BLOCK")); - private final transient AtomicCache> blockData = new AtomicCache<>(); + private final transient AtomicCache> blockData = new AtomicCache<>(); private final transient AtomicCache layerGenerator = new AtomicCache<>(); private final transient AtomicCache heightGenerator = new AtomicCache<>(); @@ -63,7 +64,7 @@ public class IrisBiomePaletteLayer return heightGenerator.aquire(() -> CNG.signature(rng.nextParallelRNG(minHeight * maxHeight + getBlockData(data).size()))); } - public FastBlockData get(RNG rng, double x, double y, double z, IrisDataManager data) + public BlockData get(RNG rng, double x, double y, double z, IrisDataManager data) { if(getBlockData(data).isEmpty()) { @@ -94,14 +95,14 @@ public class IrisBiomePaletteLayer return palette; } - public KList getBlockData(IrisDataManager data) + public KList getBlockData(IrisDataManager data) { return blockData.aquire(() -> { - KList blockData = new KList<>(); + KList blockData = new KList<>(); for(IrisBlockData ix : palette) { - FastBlockData bx = ix.getBlockData(data); + BlockData bx = ix.getBlockData(data); if(bx != null) { for(int i = 0; i < ix.getWeight(); i++) diff --git a/src/main/java/com/volmit/iris/object/IrisBlockData.java b/src/main/java/com/volmit/iris/object/IrisBlockData.java index 5f5485018..c064184d3 100644 --- a/src/main/java/com/volmit/iris/object/IrisBlockData.java +++ b/src/main/java/com/volmit/iris/object/IrisBlockData.java @@ -18,6 +18,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; +import org.bukkit.block.data.BlockData; @Accessors(chain = true) @NoArgsConstructor @@ -55,7 +56,7 @@ public class IrisBlockData extends IrisRegistrant @Desc("Optional properties for this block data such as 'waterlogged': true") private KMap data = new KMap<>(); - private final transient AtomicCache blockdata = new AtomicCache<>(); + private final transient AtomicCache blockdata = new AtomicCache<>(); private final transient AtomicCache realProperties = new AtomicCache<>(); public IrisBlockData(String b) @@ -85,11 +86,11 @@ public class IrisBlockData extends IrisRegistrant return computeProperties(getData()); } - public FastBlockData getBlockData(IrisDataManager data) + public BlockData getBlockData(IrisDataManager data) { return blockdata.aquire(() -> { - FastBlockData b = null; + BlockData b = null; IrisBlockData customData = data.getBlockLoader().load(getBlock(), false); @@ -101,7 +102,7 @@ public class IrisBlockData extends IrisRegistrant { b = b.clone(); - String st = b.getBlockData().getAsString(true); + String st = b.getAsString(true); if(st.contains("[")) { @@ -122,7 +123,7 @@ public class IrisBlockData extends IrisRegistrant Iris.warn("Debug block data " + sx + " (CUSTOM)"); } - FastBlockData bx = B.get(sx); + BlockData bx = B.get(sx); if(bx != null) { diff --git a/src/main/java/com/volmit/iris/object/IrisBlockDrops.java b/src/main/java/com/volmit/iris/object/IrisBlockDrops.java index f49afc2b6..0fc808e40 100644 --- a/src/main/java/com/volmit/iris/object/IrisBlockDrops.java +++ b/src/main/java/com/volmit/iris/object/IrisBlockDrops.java @@ -1,5 +1,6 @@ package com.volmit.iris.object; +import org.bukkit.block.data.BlockData; import org.bukkit.inventory.ItemStack; import com.volmit.iris.gen.atomics.AtomicCache; @@ -45,17 +46,17 @@ public class IrisBlockDrops @Desc("Removes the default vanilla block drops and only drops the given items & any parent loot tables specified for this block type.") private boolean replaceVanillaDrops = false; - private final transient AtomicCache> data = new AtomicCache<>(); + private final transient AtomicCache> data = new AtomicCache<>(); - public boolean shouldDropFor(FastBlockData data, IrisDataManager rdata) + public boolean shouldDropFor(BlockData data, IrisDataManager rdata) { - KList list = this.data.aquire(() -> + KList list = this.data.aquire(() -> { - KList b = new KList<>(); + KList b = new KList<>(); for(IrisBlockData i : getBlocks()) { - FastBlockData dd = i.getBlockData(rdata); + BlockData dd = i.getBlockData(rdata); if(dd != null) { @@ -66,7 +67,7 @@ public class IrisBlockDrops return b.removeDuplicates(); }); - for(FastBlockData i : list) + for(BlockData i : list) { if(exactBlocks ? i.equals(data) : i.getMaterial().equals(data.getMaterial())) { diff --git a/src/main/java/com/volmit/iris/object/IrisCaveFluid.java b/src/main/java/com/volmit/iris/object/IrisCaveFluid.java index af4fa0cdf..259de712d 100644 --- a/src/main/java/com/volmit/iris/object/IrisCaveFluid.java +++ b/src/main/java/com/volmit/iris/object/IrisCaveFluid.java @@ -13,6 +13,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; +import org.bukkit.block.data.BlockData; @Accessors(chain = true) @NoArgsConstructor @@ -37,18 +38,18 @@ public class IrisCaveFluid @Desc("The fluid type that should spawn here") private IrisBlockData fluidType = new IrisBlockData("CAVE_AIR"); - private final transient AtomicCache fluidData = new AtomicCache<>(); + private final transient AtomicCache fluidData = new AtomicCache<>(); public boolean hasFluid(IrisDataManager rdata) { return !B.isAir(getFluid(rdata)); } - public FastBlockData getFluid(IrisDataManager rdata) + public BlockData getFluid(IrisDataManager rdata) { return fluidData.aquire(() -> { - FastBlockData b = getFluidType().getBlockData(rdata); + BlockData b = getFluidType().getBlockData(rdata); if(b != null) { diff --git a/src/main/java/com/volmit/iris/object/IrisCompat.java b/src/main/java/com/volmit/iris/object/IrisCompat.java index 1ec6e98ab..45672d996 100644 --- a/src/main/java/com/volmit/iris/object/IrisCompat.java +++ b/src/main/java/com/volmit/iris/object/IrisCompat.java @@ -13,13 +13,14 @@ import com.volmit.iris.util.KList; import com.volmit.iris.util.KMap; import lombok.Data; +import org.bukkit.block.data.BlockData; @Data public class IrisCompat { private KList blockFilters = new KList<>(); private KList itemFilters = new KList<>(); - private transient KMap blockResolves = new KMap<>(); + private transient KMap blockResolves = new KMap<>(); private transient KMap itemResolves = new KMap<>(); public IrisCompat() @@ -28,7 +29,7 @@ public class IrisCompat itemFilters = getDefaultItemCompatabilityFilters(); } - public FastBlockData getBlock(String n) + public BlockData getBlock(String n) { return blockResolves.compute(n, (k, v) -> { @@ -40,7 +41,7 @@ public class IrisCompat String buf = k; int err = 16; - FastBlockData tx = B.parseBlockDataOrNull(buf); + BlockData tx = B.parseBlockDataOrNull(buf); if(tx != null) { @@ -58,7 +59,7 @@ public class IrisCompat { if(i.getWhen().equalsIgnoreCase(buf)) { - FastBlockData b = i.getReplace(); + BlockData b = i.getReplace(); if(b != null) { @@ -99,7 +100,7 @@ public class IrisCompat { if(nomore < 0) { - return B.parseBlockDataOrNull("STONE").getType(); + return B.parseBlockDataOrNull("STONE").getMaterial(); } nomore--; @@ -128,11 +129,11 @@ public class IrisCompat } buf = k; - FastBlockData tx = B.parseBlockDataOrNull(buf); + BlockData tx = B.parseBlockDataOrNull(buf); if(tx != null) { - return tx.getType(); + return tx.getMaterial(); } nomore = 64; @@ -140,25 +141,25 @@ public class IrisCompat { if(nomore < 0) { - return B.parseBlockDataOrNull("STONE").getType(); + return B.parseBlockDataOrNull("STONE").getMaterial(); } nomore--; if(err-- <= 0) { - return B.parseBlockDataOrNull("STONE").getType(); + return B.parseBlockDataOrNull("STONE").getMaterial(); } for(IrisCompatabilityBlockFilter i : blockFilters) { if(i.getWhen().equalsIgnoreCase(buf)) { - FastBlockData b = i.getReplace(); + BlockData b = i.getReplace(); if(b != null) { - return b.getType(); + return b.getMaterial(); } buf = i.getSupplement(); @@ -166,7 +167,7 @@ public class IrisCompat } } - return B.parseBlockDataOrNull("STONE").getType(); + return B.parseBlockDataOrNull("STONE").getMaterial(); } }); } diff --git a/src/main/java/com/volmit/iris/object/IrisCompatabilityBlockFilter.java b/src/main/java/com/volmit/iris/object/IrisCompatabilityBlockFilter.java index 72d7eebf6..c662fb955 100644 --- a/src/main/java/com/volmit/iris/object/IrisCompatabilityBlockFilter.java +++ b/src/main/java/com/volmit/iris/object/IrisCompatabilityBlockFilter.java @@ -11,6 +11,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; +import org.bukkit.block.data.BlockData; @Accessors(chain = true) @NoArgsConstructor @@ -33,24 +34,24 @@ public class IrisCompatabilityBlockFilter @Desc("If exact is true, it compares block data for example minecraft:some_log[axis=x]") private boolean exact = false; - private final transient AtomicCache findData = new AtomicCache<>(true); - private final transient AtomicCache replaceData = new AtomicCache<>(true); + private final transient AtomicCache findData = new AtomicCache<>(true); + private final transient AtomicCache replaceData = new AtomicCache<>(true); public IrisCompatabilityBlockFilter(String when, String supplement) { this(when, supplement, false); } - public FastBlockData getFind() + public BlockData getFind() { return findData.aquire(() -> B.getBlockData(when)); } - public FastBlockData getReplace() + public BlockData getReplace() { return replaceData.aquire(() -> { - FastBlockData b = B.parseBlockDataOrNull(supplement); + BlockData b = B.parseBlockDataOrNull(supplement); if(b == null) { diff --git a/src/main/java/com/volmit/iris/object/IrisDecorator.java b/src/main/java/com/volmit/iris/object/IrisDecorator.java index 36c63b275..de670328c 100644 --- a/src/main/java/com/volmit/iris/object/IrisDecorator.java +++ b/src/main/java/com/volmit/iris/object/IrisDecorator.java @@ -18,6 +18,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; +import org.bukkit.block.data.BlockData; @Accessors(chain = true) @NoArgsConstructor @@ -94,8 +95,8 @@ public class IrisDecorator private final transient AtomicCache layerGenerator = new AtomicCache<>(); private final transient AtomicCache varianceGenerator = new AtomicCache<>(); private final transient AtomicCache heightGenerator = new AtomicCache<>(); - private final transient AtomicCache> blockData = new AtomicCache<>(); - private final transient AtomicCache> blockDataTops = new AtomicCache<>(); + private final transient AtomicCache> blockData = new AtomicCache<>(); + private final transient AtomicCache> blockDataTops = new AtomicCache<>(); public int getHeight(RNG rng, double x, double z, IrisDataManager data) { @@ -131,7 +132,7 @@ public class IrisDecorator return palette; } - public FastBlockData getBlockData(IrisBiome b, RNG rng, double x, double z, IrisDataManager data) + public BlockData getBlockData(IrisBiome b, RNG rng, double x, double z, IrisDataManager data) { if(getBlockData(data).isEmpty()) { @@ -155,7 +156,7 @@ public class IrisDecorator return null; } - public FastBlockData getBlockData100(IrisBiome b, RNG rng, double x, double z, IrisDataManager data) + public BlockData getBlockData100(IrisBiome b, RNG rng, double x, double z, IrisDataManager data) { if(getBlockData(data).isEmpty()) { @@ -174,7 +175,7 @@ public class IrisDecorator return getVarianceGenerator(rng, data).fit(getBlockData(data), xx, zz); } - public FastBlockData getBlockDataForTop(IrisBiome b, RNG rng, double x, double z, IrisDataManager data) + public BlockData getBlockDataForTop(IrisBiome b, RNG rng, double x, double z, IrisDataManager data) { if(getBlockDataTops(data).isEmpty()) { @@ -197,14 +198,14 @@ public class IrisDecorator return null; } - public KList getBlockData(IrisDataManager data) + public KList getBlockData(IrisDataManager data) { return blockData.aquire(() -> { - KList blockData = new KList<>(); + KList blockData = new KList<>(); for(IrisBlockData i : palette) { - FastBlockData bx = i.getBlockData(data); + BlockData bx = i.getBlockData(data); if(bx != null) { blockData.add(bx); @@ -215,14 +216,14 @@ public class IrisDecorator }); } - public KList getBlockDataTops(IrisDataManager data) + public KList getBlockDataTops(IrisDataManager data) { return blockDataTops.aquire(() -> { - KList blockDataTops = new KList<>(); + KList blockDataTops = new KList<>(); for(IrisBlockData i : topPalette) { - FastBlockData bx = i.getBlockData(data); + BlockData bx = i.getBlockData(data); if(bx != null) { blockDataTops.add(bx); diff --git a/src/main/java/com/volmit/iris/object/IrisDepositGenerator.java b/src/main/java/com/volmit/iris/object/IrisDepositGenerator.java index 04ea14366..cd03fc272 100644 --- a/src/main/java/com/volmit/iris/object/IrisDepositGenerator.java +++ b/src/main/java/com/volmit/iris/object/IrisDepositGenerator.java @@ -86,7 +86,7 @@ public class IrisDepositGenerator private int varience = 3; private final transient AtomicCache> objects = new AtomicCache<>(); - private final transient AtomicCache> blockData = new AtomicCache<>(); + private final transient AtomicCache> blockData = new AtomicCache<>(); public IrisObject getClump(RNG rng, IrisDataManager rdata) { @@ -136,20 +136,20 @@ public class IrisDepositGenerator return o; } - private FastBlockData nextBlock(RNG rngv, IrisDataManager rdata) + private BlockData nextBlock(RNG rngv, IrisDataManager rdata) { return getBlockData(rdata).get(rngv.i(0, getBlockData(rdata).size() - 1)); } - public KList getBlockData(IrisDataManager rdata) + public KList getBlockData(IrisDataManager rdata) { return blockData.aquire(() -> { - KList blockData = new KList<>(); + KList blockData = new KList<>(); for(IrisBlockData ix : palette) { - FastBlockData bx = ix.getBlockData(rdata); + BlockData bx = ix.getBlockData(rdata); if(bx != null) { @@ -220,8 +220,8 @@ public class IrisDepositGenerator if(!allow) { - FastBlockData b = FastBlockData.of(data.getBlockData(nx, ny, nz)); - for(FastBlockData f : g.getDimension().getRockPalette().getBlockData(g.getData())) + BlockData b = data.getBlockData(nx, ny, nz); + for(BlockData f : g.getDimension().getRockPalette().getBlockData(g.getData())) { if(f.getMaterial().equals(b.getMaterial())) { @@ -243,7 +243,7 @@ public class IrisDepositGenerator if(allow) { - data.setBlock(nx, ny, nz, clump.getBlocks().get(j).getBlockData()); + data.setBlock(nx, ny, nz, clump.getBlocks().get(j)); } } } diff --git a/src/main/java/com/volmit/iris/object/IrisDimension.java b/src/main/java/com/volmit/iris/object/IrisDimension.java index ecdc1a773..b8ab4d8d6 100644 --- a/src/main/java/com/volmit/iris/object/IrisDimension.java +++ b/src/main/java/com/volmit/iris/object/IrisDimension.java @@ -505,7 +505,7 @@ public class IrisDimension extends IrisRegistrant }); } - public FastBlockData resolveBlock(String bd) + public BlockData resolveBlock(String bd) { return Iris.compat.getBlock(bd); } diff --git a/src/main/java/com/volmit/iris/object/IrisMaterialPalette.java b/src/main/java/com/volmit/iris/object/IrisMaterialPalette.java index a8e40c2b6..8ecd3a7ab 100644 --- a/src/main/java/com/volmit/iris/object/IrisMaterialPalette.java +++ b/src/main/java/com/volmit/iris/object/IrisMaterialPalette.java @@ -15,6 +15,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; +import org.bukkit.block.data.BlockData; @Accessors(chain = true) @NoArgsConstructor @@ -38,11 +39,11 @@ public class IrisMaterialPalette @Desc("The palette of blocks to be used in this layer") private KList palette = new KList().qadd(new IrisBlockData("STONE")); - private final transient AtomicCache> blockData = new AtomicCache<>(); + private final transient AtomicCache> blockData = new AtomicCache<>(); private final transient AtomicCache layerGenerator = new AtomicCache<>(); private final transient AtomicCache heightGenerator = new AtomicCache<>(); - public FastBlockData get(RNG rng, double x, double y, double z, IrisDataManager rdata) + public BlockData get(RNG rng, double x, double y, double z, IrisDataManager rdata) { if(getBlockData(rdata).isEmpty()) { @@ -86,14 +87,14 @@ public class IrisMaterialPalette return this; } - public KList getBlockData(IrisDataManager rdata) + public KList getBlockData(IrisDataManager rdata) { return blockData.aquire(() -> { - KList blockData = new KList<>(); + KList blockData = new KList<>(); for(IrisBlockData ix : palette) { - FastBlockData bx = ix.getBlockData(rdata); + BlockData bx = ix.getBlockData(rdata); if(bx != null) { for(int i = 0; i < ix.getWeight(); i++) diff --git a/src/main/java/com/volmit/iris/object/IrisObject.java b/src/main/java/com/volmit/iris/object/IrisObject.java index 68fd3d9d7..e8a22107f 100644 --- a/src/main/java/com/volmit/iris/object/IrisObject.java +++ b/src/main/java/com/volmit/iris/object/IrisObject.java @@ -12,6 +12,7 @@ import java.util.function.Consumer; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.block.data.BlockData; import org.bukkit.block.data.Waterlogged; import org.bukkit.block.data.type.Leaves; import org.bukkit.util.BlockVector; @@ -36,12 +37,12 @@ import lombok.experimental.Accessors; @EqualsAndHashCode(callSuper = false) public class IrisObject extends IrisRegistrant { - private static final FastBlockData AIR = B.getBlockData("CAVE_AIR"); - private static final FastBlockData VAIR = B.getBlockData("VOID_AIR"); - private static final FastBlockData VAIR_DEBUG = B.getBlockData("COBWEB"); - private static final FastBlockData[] SNOW_LAYERS = new FastBlockData[] {B.getBlockData("minecraft:snow[layers=1]"), B.getBlockData("minecraft:snow[layers=2]"), B.getBlockData("minecraft:snow[layers=3]"), B.getBlockData("minecraft:snow[layers=4]"), B.getBlockData("minecraft:snow[layers=5]"), B.getBlockData("minecraft:snow[layers=6]"), B.getBlockData("minecraft:snow[layers=7]"), B.getBlockData("minecraft:snow[layers=8]")}; + private static final BlockData AIR = B.getBlockData("CAVE_AIR"); + private static final BlockData VAIR = B.getBlockData("VOID_AIR"); + private static final BlockData VAIR_DEBUG = B.getBlockData("COBWEB"); + private static final BlockData[] SNOW_LAYERS = new BlockData[] {B.getBlockData("minecraft:snow[layers=1]"), B.getBlockData("minecraft:snow[layers=2]"), B.getBlockData("minecraft:snow[layers=3]"), B.getBlockData("minecraft:snow[layers=4]"), B.getBlockData("minecraft:snow[layers=5]"), B.getBlockData("minecraft:snow[layers=6]"), B.getBlockData("minecraft:snow[layers=7]"), B.getBlockData("minecraft:snow[layers=8]")}; public static boolean shitty = false; - private KMap blocks; + private KMap blocks; private int w; private int d; private int h; @@ -276,7 +277,7 @@ public class IrisObject extends IrisRegistrant dos.writeShort(i.getBlockX()); dos.writeShort(i.getBlockY()); dos.writeShort(i.getBlockZ()); - dos.writeUTF(blocks.get(i).getBlockData().getAsString(true)); + dos.writeUTF(blocks.get(i).getAsString(true)); } } @@ -286,7 +287,7 @@ public class IrisObject extends IrisRegistrant { return; } - KMap d = blocks.copy(); + KMap d = blocks.copy(); blocks.clear(); for(BlockVector i : d.k()) @@ -295,7 +296,7 @@ public class IrisObject extends IrisRegistrant } } - public void setUnsigned(int x, int y, int z, FastBlockData block) + public void setUnsigned(int x, int y, int z, BlockData block) { if(shitty) { @@ -507,21 +508,21 @@ public class IrisObject extends IrisRegistrant BlockVector i = g.clone(); i = config.getRotation().rotate(i.clone(), spinx, spiny, spinz).clone(); i = config.getTranslate().translate(i.clone(), config.getRotation(), spinx, spiny, spinz).clone(); - FastBlockData data = blocks.get(g).clone(); + BlockData data = blocks.get(g).clone(); if(stilting && i.getBlockY() < lowest && !B.isAir(data)) { lowest = i.getBlockY(); } - if(placer.isPreventingDecay() && (data.getBlockData()) instanceof Leaves && !((Leaves) (data.getBlockData())).isPersistent()) + if(placer.isPreventingDecay() && (data) instanceof Leaves && !((Leaves) (data)).isPersistent()) { - ((Leaves) data.getBlockData()).setPersistent(true); + ((Leaves) data).setPersistent(true); } for(IrisObjectReplace j : config.getEdit()) { - for(FastBlockData k : j.getFind(rdata)) + for(BlockData k : j.getFind(rdata)) { if(j.isExact() ? k.matches(data) : k.getMaterial().equals(data.getMaterial())) { @@ -595,7 +596,7 @@ public class IrisObject extends IrisRegistrant continue; } - FastBlockData d = blocks.get(i); + BlockData d = blocks.get(i); if(d == null || B.isAir(d)) { @@ -653,7 +654,7 @@ public class IrisObject extends IrisRegistrant return; } - KMap v = blocks.copy(); + KMap v = blocks.copy(); blocks.clear(); for(BlockVector i : v.keySet()) @@ -671,7 +672,7 @@ public class IrisObject extends IrisRegistrant for(BlockVector i : blocks.keySet()) { - at.clone().add(0, getCenter().getY(), 0).add(i).getBlock().setBlockData(blocks.get(i).getBlockData(), false); + at.clone().add(0, getCenter().getY(), 0).add(i).getBlock().setBlockData(blocks.get(i), false); } } } diff --git a/src/main/java/com/volmit/iris/object/IrisObjectReplace.java b/src/main/java/com/volmit/iris/object/IrisObjectReplace.java index 3167c6fe4..7f45c3b3e 100644 --- a/src/main/java/com/volmit/iris/object/IrisObjectReplace.java +++ b/src/main/java/com/volmit/iris/object/IrisObjectReplace.java @@ -14,6 +14,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; +import org.bukkit.block.data.BlockData; @Accessors(chain = true) @NoArgsConstructor @@ -38,18 +39,18 @@ public class IrisObjectReplace private boolean exact = false; private final transient AtomicCache replaceGen = new AtomicCache<>(); - private final transient AtomicCache> findData = new AtomicCache<>(); - private final transient AtomicCache> replaceData = new AtomicCache<>(); + private final transient AtomicCache> findData = new AtomicCache<>(); + private final transient AtomicCache> replaceData = new AtomicCache<>(); - public KList getFind(IrisDataManager rdata) + public KList getFind(IrisDataManager rdata) { return findData.aquire(() -> { - KList b = new KList<>(); + KList b = new KList<>(); for(IrisBlockData i : find) { - FastBlockData bx = i.getBlockData(rdata); + BlockData bx = i.getBlockData(rdata); if(bx != null) { @@ -61,7 +62,7 @@ public class IrisObjectReplace }); } - public FastBlockData getReplace(RNG seed, double x, double y, double z, IrisDataManager rdata) + public BlockData getReplace(RNG seed, double x, double y, double z, IrisDataManager rdata) { return getReplace().get(seed, x, y, z, rdata); } diff --git a/src/main/java/com/volmit/iris/object/IrisObjectRotation.java b/src/main/java/com/volmit/iris/object/IrisObjectRotation.java index 0eda862e0..2b5cf2ec7 100644 --- a/src/main/java/com/volmit/iris/object/IrisObjectRotation.java +++ b/src/main/java/com/volmit/iris/object/IrisObjectRotation.java @@ -111,16 +111,16 @@ public class IrisObjectRotation return BlockFace.SOUTH; } - public FastBlockData rotate(FastBlockData dd, int spinxx, int spinyy, int spinzz) + public BlockData rotate(BlockData dd, int spinxx, int spinyy, int spinzz) { - BlockData d = dd.getBlockData(); + BlockData d = dd; int spinx = (int) (90D * (Math.ceil(Math.abs((spinxx % 360D) / 90D)))); int spiny = (int) (90D * (Math.ceil(Math.abs((spinyy % 360D) / 90D)))); int spinz = (int) (90D * (Math.ceil(Math.abs((spinzz % 360D) / 90D)))); if(!canRotate()) { - return FastBlockData.of(d); + return d; } if(d instanceof Directional) @@ -180,7 +180,7 @@ public class IrisObjectRotation } } - return FastBlockData.of(d); + return d; } public BlockVector rotate(BlockVector b, int spinx, int spiny, int spinz) diff --git a/src/main/java/com/volmit/iris/structure/StructureTemplate.java b/src/main/java/com/volmit/iris/structure/StructureTemplate.java index 19310397b..5944eb8ae 100644 --- a/src/main/java/com/volmit/iris/structure/StructureTemplate.java +++ b/src/main/java/com/volmit/iris/structure/StructureTemplate.java @@ -10,6 +10,7 @@ import org.bukkit.Particle; import org.bukkit.Sound; import org.bukkit.World; import org.bukkit.block.Block; +import org.bukkit.block.data.BlockData; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -69,9 +70,9 @@ public class StructureTemplate implements Listener, IObjectPlacer private Location center; private ChronoLatch u = new ChronoLatch(50); private World world; - private static final FastBlockData STONE = B.get("STONE"); - private static final FastBlockData RED = B.get("RED_STAINED_GLASS"); - private static final FastBlockData GREEN = B.get("LIME_STAINED_GLASS"); + private static final BlockData STONE = B.get("STONE"); + private static final BlockData RED = B.get("RED_STAINED_GLASS"); + private static final BlockData GREEN = B.get("LIME_STAINED_GLASS"); private int task; private ChronoLatch dirtyLatch; private ChronoLatch gLatch; @@ -445,7 +446,7 @@ public class StructureTemplate implements Listener, IObjectPlacer Location loc = new Location(world, b.getX(), b.getY(), b.getZ()); BlockVector v = loc.clone().subtract(min).subtract(o.getCenter()).toVector().toBlockVector(); v = r.getPlacement().getRotation().rotate(v, 0, 0, 0); - FastBlockData next = r.getPlacement().getRotation().rotate(FastBlockData.of(b.getBlockData()), 0, 0, 0); + BlockData next = r.getPlacement().getRotation().rotate(b.getBlockData(), 0, 0, 0); o.getBlocks().put(v, next); } @@ -788,7 +789,7 @@ public class StructureTemplate implements Listener, IObjectPlacer } @Override - public void set(int x, int y, int z, FastBlockData d) + public void set(int x, int y, int z, BlockData d) { if(get(x, y, z).equals(d)) { @@ -799,9 +800,9 @@ public class StructureTemplate implements Listener, IObjectPlacer } @Override - public FastBlockData get(int x, int y, int z) + public BlockData get(int x, int y, int z) { - return FastBlockData.of(world.getBlockAt(x, y, z).getBlockData()); + return world.getBlockAt(x, y, z).getBlockData(); } @Override diff --git a/src/main/java/com/volmit/iris/util/B.java b/src/main/java/com/volmit/iris/util/B.java index c7ae6bf91..e56b67112 100644 --- a/src/main/java/com/volmit/iris/util/B.java +++ b/src/main/java/com/volmit/iris/util/B.java @@ -2,6 +2,7 @@ package com.volmit.iris.util; import org.bukkit.Bukkit; import org.bukkit.Material; +import org.bukkit.block.data.BlockData; import org.bukkit.block.data.type.Leaves; import com.volmit.iris.Iris; @@ -9,33 +10,33 @@ import com.volmit.iris.object.IrisDimension; public class B { - private static final FastBlockData AIR = FastBlockData.of(Material.AIR); - private static final KMap bdc = new KMap<>(); + private static final BlockData AIR = Material.AIR.createBlockData(); + private static final KMap bdc = new KMap<>(); private static final KList nulls = new KList<>(); private static final KList canPlaceOn = new KList<>(); - private static final KList decorant = new KList<>(); + private static final KList decorant = new KList<>(); private static final IrisDimension defaultCompat = new IrisDimension(); private static final KMap solid = new KMap<>(); - private static final KMap types = new KMap<>(); - private static final KMap typesb = new KMap<>(); + private static final KMap types = new KMap<>(); + private static final KMap typesb = new KMap<>(); private static IrisLock lock = new IrisLock("Typelock"); - public static FastBlockData get(String bd) + public static BlockData get(String bd) { return getBlockData(bd); } - public static boolean isWater(FastBlockData b) + public static boolean isWater(BlockData b) { return b.getMaterial().equals(Material.WATER); } - public static FastBlockData getAir() + public static BlockData getAir() { return AIR; } - public static KMap getBdc() + public static KMap getBdc() { return bdc; } @@ -50,7 +51,7 @@ public class B return canPlaceOn; } - public static KList getDecorant() + public static KList getDecorant() { return decorant; } @@ -65,12 +66,12 @@ public class B return solid; } - public static KMap getTypes() + public static KMap getTypes() { return types; } - public static KMap getTypesb() + public static KMap getTypesb() { return typesb; } @@ -93,7 +94,7 @@ public class B try { - return FastBlockData.of(Material.valueOf(k)); + return Material.valueOf(k); } catch(Throwable e) @@ -101,8 +102,8 @@ public class B } - return FastBlockData.of(defaultCompat.resolveItem(bdx)); - }).getType(); + return defaultCompat.resolveItem(bdx); + }); } public static Material getMaterialOrNull(String bdx) @@ -120,7 +121,7 @@ public class B } } - public static boolean isSolid(FastBlockData mat) + public static boolean isSolid(BlockData mat) { return isSolid(mat.getMaterial()); } @@ -130,14 +131,14 @@ public class B return mat.isSolid(); } - public static FastBlockData mat(String bd) + public static BlockData mat(String bd) { return getBlockData(bd); } - public static FastBlockData getBlockData(String bd) + public static BlockData getBlockData(String bd) { - return getBlockData(bd, defaultCompat).optimize(); + return getBlockData(bd, defaultCompat); } public static String[] getBlockTypes() @@ -180,18 +181,18 @@ public class B return bt.toArray(new String[bt.size()]); } - public static FastBlockData getBlockData(String bdxf, IrisDimension resolver) + public static BlockData getBlockData(String bdxf, IrisDimension resolver) { try { String bd = bdxf.trim(); - FastBlockData fff = bdc.get(bd); + BlockData fff = bdc.get(bd); if(fff != null) { return fff.clone(); } - FastBlockData bdx = parseBlockData(bd); + BlockData bdx = parseBlockData(bd); if(bdx == null) { @@ -202,7 +203,7 @@ public class B { Iris.warn("Unknown Block Data '" + bd + "'"); nulls.add(bd); - return bdx; + return AIR; } if(resolver.isPreventLeafDecay() && bdx instanceof Leaves) @@ -223,11 +224,11 @@ public class B return AIR; } - public static FastBlockData parseBlockDataOrNull(String ix) + public static BlockData parseBlockDataOrNull(String ix) { try { - FastBlockData bx = FastBlockData.of(Bukkit.createBlockData(ix)); + BlockData bx = Bukkit.createBlockData(ix); if(bx != null) { @@ -246,7 +247,7 @@ public class B try { - return FastBlockData.of(Material.valueOf(i)); + return Material.valueOf(i).createBlockData(); } catch(Throwable e) @@ -257,11 +258,11 @@ public class B return null; } - public static FastBlockData parseBlockData(String ix) + public static BlockData parseBlockData(String ix) { try { - FastBlockData bx = FastBlockData.of(Bukkit.createBlockData(ix)); + BlockData bx = Bukkit.createBlockData(ix); if(bx != null) { @@ -280,7 +281,7 @@ public class B try { - return FastBlockData.of(Material.valueOf(i)); + return Material.valueOf(i).createBlockData(); } catch(Throwable e) @@ -291,137 +292,137 @@ public class B return AIR; } - public static boolean isStorage(FastBlockData mat) + public static boolean isStorage(BlockData mat) { // @builder - return mat.matEquals(B.mat("CHEST")) - || mat.matEquals(B.mat("TRAPPED_CHEST")) - || mat.matEquals(B.mat("SHULKER_BOX")) - || mat.matEquals(B.mat("WHITE_SHULKER_BOX")) - || mat.matEquals(B.mat("ORANGE_SHULKER_BOX")) - || mat.matEquals(B.mat("MAGENTA_SHULKER_BOX")) - || mat.matEquals(B.mat("LIGHT_BLUE_SHULKER_BOX")) - || mat.matEquals(B.mat("YELLOW_SHULKER_BOX")) - || mat.matEquals(B.mat("LIME_SHULKER_BOX")) - || mat.matEquals(B.mat("PINK_SHULKER_BOX")) - || mat.matEquals(B.mat("GRAY_SHULKER_BOX")) - || mat.matEquals(B.mat("LIGHT_GRAY_SHULKER_BOX")) - || mat.matEquals(B.mat("CYAN_SHULKER_BOX")) - || mat.matEquals(B.mat("PURPLE_SHULKER_BOX")) - || mat.matEquals(B.mat("BLUE_SHULKER_BOX")) - || mat.matEquals(B.mat("BROWN_SHULKER_BOX")) - || mat.matEquals(B.mat("GREEN_SHULKER_BOX")) - || mat.matEquals(B.mat("RED_SHULKER_BOX")) - || mat.matEquals(B.mat("BLACK_SHULKER_BOX")) - || mat.matEquals(B.mat("BARREL")) - || mat.matEquals(B.mat("DISPENSER")) - || mat.matEquals(B.mat("DROPPER")) - || mat.matEquals(B.mat("HOPPER")) - || mat.matEquals(B.mat("FURNACE")) - || mat.matEquals(B.mat("BLAST_FURNACE")) - || mat.matEquals(B.mat("SMOKER")); + return mat.getMaterial().equals(B.mat("CHEST").getMaterial()) + || mat.getMaterial().equals(B.mat("TRAPPED_CHEST").getMaterial()) + || mat.getMaterial().equals(B.mat("SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("WHITE_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("ORANGE_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("MAGENTA_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("LIGHT_BLUE_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("YELLOW_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("LIME_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("PINK_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("GRAY_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("LIGHT_GRAY_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("CYAN_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("PURPLE_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("BLUE_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("BROWN_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("GREEN_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("RED_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("BLACK_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("BARREL").getMaterial()) + || mat.getMaterial().equals(B.mat("DISPENSER").getMaterial()) + || mat.getMaterial().equals(B.mat("DROPPER").getMaterial()) + || mat.getMaterial().equals(B.mat("HOPPER").getMaterial()) + || mat.getMaterial().equals(B.mat("FURNACE").getMaterial()) + || mat.getMaterial().equals(B.mat("BLAST_FURNACE").getMaterial()) + || mat.getMaterial().equals(B.mat("SMOKER").getMaterial()); //@done } - public static boolean isStorageChest(FastBlockData mat) + public static boolean isStorageChest(BlockData mat) { // @builder - return mat.matEquals(B.mat("CHEST")) - || mat.matEquals(B.mat("TRAPPED_CHEST")) - || mat.matEquals(B.mat("SHULKER_BOX")) - || mat.matEquals(B.mat("WHITE_SHULKER_BOX")) - || mat.matEquals(B.mat("ORANGE_SHULKER_BOX")) - || mat.matEquals(B.mat("MAGENTA_SHULKER_BOX")) - || mat.matEquals(B.mat("LIGHT_BLUE_SHULKER_BOX")) - || mat.matEquals(B.mat("YELLOW_SHULKER_BOX")) - || mat.matEquals(B.mat("LIME_SHULKER_BOX")) - || mat.matEquals(B.mat("PINK_SHULKER_BOX")) - || mat.matEquals(B.mat("GRAY_SHULKER_BOX")) - || mat.matEquals(B.mat("LIGHT_GRAY_SHULKER_BOX")) - || mat.matEquals(B.mat("CYAN_SHULKER_BOX")) - || mat.matEquals(B.mat("PURPLE_SHULKER_BOX")) - || mat.matEquals(B.mat("BLUE_SHULKER_BOX")) - || mat.matEquals(B.mat("BROWN_SHULKER_BOX")) - || mat.matEquals(B.mat("GREEN_SHULKER_BOX")) - || mat.matEquals(B.mat("RED_SHULKER_BOX")) - || mat.matEquals(B.mat("BLACK_SHULKER_BOX")) - || mat.matEquals(B.mat("BARREL")) - || mat.matEquals(B.mat("DISPENSER")) - || mat.matEquals(B.mat("DROPPER")) - || mat.matEquals(B.mat("HOPPER")); + return mat.getMaterial().equals(B.mat("CHEST").getMaterial()) + || mat.getMaterial().equals(B.mat("TRAPPED_CHEST").getMaterial()) + || mat.getMaterial().equals(B.mat("SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("WHITE_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("ORANGE_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("MAGENTA_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("LIGHT_BLUE_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("YELLOW_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("LIME_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("PINK_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("GRAY_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("LIGHT_GRAY_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("CYAN_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("PURPLE_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("BLUE_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("BROWN_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("GREEN_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("RED_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("BLACK_SHULKER_BOX").getMaterial()) + || mat.getMaterial().equals(B.mat("BARREL").getMaterial()) + || mat.getMaterial().equals(B.mat("DISPENSER").getMaterial()) + || mat.getMaterial().equals(B.mat("DROPPER").getMaterial()) + || mat.getMaterial().equals(B.mat("HOPPER").getMaterial()); //@done } - public static boolean isLit(FastBlockData mat) + public static boolean isLit(BlockData mat) { // @builder - return mat.matEquals(B.mat("GLOWSTONE")) - || mat.matEquals(B.mat("END_ROD")) - || mat.matEquals(B.mat("SOUL_SAND")) - || mat.matEquals(B.mat("TORCH")) - || mat.getType().equals(Material.REDSTONE_TORCH) - || mat.matEquals(B.mat("SOUL_TORCH")) - || mat.getType().equals(Material.REDSTONE_WALL_TORCH) - || mat.getType().equals(Material.WALL_TORCH) - || mat.matEquals(B.mat("SOUL_WALL_TORCH")) - || mat.matEquals(B.mat("LANTERN")) - || mat.getType().equals(Material.JACK_O_LANTERN) - || mat.getType().equals(Material.REDSTONE_LAMP) - || mat.getType().equals(Material.MAGMA_BLOCK) - || mat.matEquals(B.mat("SHROOMLIGHT")) - || mat.matEquals(B.mat("SEA_LANTERN")) - || mat.matEquals(B.mat("SOUL_LANTERN")) - || mat.getType().equals(Material.FIRE) - || mat.matEquals(B.mat("SOUL_FIRE")) - || mat.matEquals(B.mat("SEA_PICKLE")) - || mat.getType().equals(Material.BREWING_STAND) - || mat.getType().equals(Material.REDSTONE_ORE); + return mat.getMaterial().equals(B.mat("GLOWSTONE").getMaterial()) + || mat.getMaterial().equals(B.mat("END_ROD").getMaterial()) + || mat.getMaterial().equals(B.mat("SOUL_SAND").getMaterial()) + || mat.getMaterial().equals(B.mat("TORCH").getMaterial()) + || mat.getMaterial().equals(Material.REDSTONE_TORCH) + || mat.getMaterial().equals(B.mat("SOUL_TORCH").getMaterial()) + || mat.getMaterial().equals(Material.REDSTONE_WALL_TORCH) + || mat.getMaterial().equals(Material.WALL_TORCH) + || mat.getMaterial().equals(B.mat("SOUL_WALL_TORCH").getMaterial()) + || mat.getMaterial().equals(B.mat("LANTERN").getMaterial()) + || mat.getMaterial().equals(Material.JACK_O_LANTERN) + || mat.getMaterial().equals(Material.REDSTONE_LAMP) + || mat.getMaterial().equals(Material.MAGMA_BLOCK) + || mat.getMaterial().equals(B.mat("SHROOMLIGHT").getMaterial()) + || mat.getMaterial().equals(B.mat("SEA_LANTERN").getMaterial()) + || mat.getMaterial().equals(B.mat("SOUL_LANTERN").getMaterial()) + || mat.getMaterial().equals(Material.FIRE) + || mat.getMaterial().equals(B.mat("SOUL_FIRE").getMaterial()) + || mat.getMaterial().equals(B.mat("SEA_PICKLE").getMaterial()) + || mat.getMaterial().equals(Material.BREWING_STAND) + || mat.getMaterial().equals(Material.REDSTONE_ORE); //@done } - public static boolean isUpdatable(FastBlockData mat) + public static boolean isUpdatable(BlockData mat) { return isLit(mat) || isStorage(mat); } - public static boolean isFoliage(FastBlockData d) + public static boolean isFoliage(BlockData d) { if(isFluid(d) || isAir(d) || isSolid(d)) { return false; } - FastBlockData mat = d; + BlockData mat = d; // @builder - return mat.getType().equals(Material.POPPY) - || mat.getType().equals(Material.DANDELION) - || mat.matEquals(B.mat("CORNFLOWER")) - || mat.matEquals(B.mat("SWEET_BERRY_BUSH")) - || mat.matEquals(B.mat("CRIMSON_ROOTS")) - || mat.matEquals(B.mat("WARPED_ROOTS")) - || mat.matEquals(B.mat("NETHER_SPROUTS")) - || mat.matEquals(B.mat("ALLIUM")) - || mat.matEquals(B.mat("AZURE_BLUET")) - || mat.matEquals(B.mat("BLUE_ORCHID")) - || mat.matEquals(B.mat("POPPY")) - || mat.matEquals(B.mat("DANDELION")) - || mat.matEquals(B.mat("OXEYE_DAISY")) - || mat.matEquals(B.mat("LILY_OF_THE_VALLEY")) - || mat.matEquals(B.mat("WITHER_ROSE")) - || mat.getType().equals(Material.DARK_OAK_SAPLING) - || mat.getType().equals(Material.ACACIA_SAPLING) - || mat.getType().equals(Material.JUNGLE_SAPLING) - || mat.getType().equals(Material.BIRCH_SAPLING) - || mat.getType().equals(Material.SPRUCE_SAPLING) - || mat.getType().equals(Material.OAK_SAPLING) - || mat.getType().equals(Material.ORANGE_TULIP) - || mat.getType().equals(Material.PINK_TULIP) - || mat.getType().equals(Material.RED_TULIP) - || mat.getType().equals(Material.WHITE_TULIP) - || mat.getType().equals(Material.FERN) - || mat.getType().equals(Material.LARGE_FERN) - || mat.getType().equals(Material.GRASS) - || mat.getType().equals(Material.TALL_GRASS); + return mat.getMaterial().equals(Material.POPPY) + || mat.getMaterial().equals(Material.DANDELION) + || mat.getMaterial().equals(B.mat("CORNFLOWER").getMaterial()) + || mat.getMaterial().equals(B.mat("SWEET_BERRY_BUSH").getMaterial()) + || mat.getMaterial().equals(B.mat("CRIMSON_ROOTS").getMaterial()) + || mat.getMaterial().equals(B.mat("WARPED_ROOTS").getMaterial()) + || mat.getMaterial().equals(B.mat("NETHER_SPROUTS").getMaterial()) + || mat.getMaterial().equals(B.mat("ALLIUM").getMaterial()) + || mat.getMaterial().equals(B.mat("AZURE_BLUET").getMaterial()) + || mat.getMaterial().equals(B.mat("BLUE_ORCHID").getMaterial()) + || mat.getMaterial().equals(B.mat("POPPY").getMaterial()) + || mat.getMaterial().equals(B.mat("DANDELION").getMaterial()) + || mat.getMaterial().equals(B.mat("OXEYE_DAISY").getMaterial()) + || mat.getMaterial().equals(B.mat("LILY_OF_THE_VALLEY").getMaterial()) + || mat.getMaterial().equals(B.mat("WITHER_ROSE").getMaterial()) + || mat.getMaterial().equals(Material.DARK_OAK_SAPLING) + || mat.getMaterial().equals(Material.ACACIA_SAPLING) + || mat.getMaterial().equals(Material.JUNGLE_SAPLING) + || mat.getMaterial().equals(Material.BIRCH_SAPLING) + || mat.getMaterial().equals(Material.SPRUCE_SAPLING) + || mat.getMaterial().equals(Material.OAK_SAPLING) + || mat.getMaterial().equals(Material.ORANGE_TULIP) + || mat.getMaterial().equals(Material.PINK_TULIP) + || mat.getMaterial().equals(Material.RED_TULIP) + || mat.getMaterial().equals(Material.WHITE_TULIP) + || mat.getMaterial().equals(Material.FERN) + || mat.getMaterial().equals(Material.LARGE_FERN) + || mat.getMaterial().equals(Material.GRASS) + || mat.getMaterial().equals(Material.TALL_GRASS); //@done } @@ -472,7 +473,11 @@ public class B } } - if(onto.equals(Material.ACACIA_LEAVES) || onto.equals(Material.BIRCH_LEAVES) || onto.equals(Material.DARK_OAK_LEAVES) || onto.equals(Material.JUNGLE_LEAVES) || onto.equals(Material.OAK_LEAVES) || onto.equals(Material.SPRUCE_LEAVES)) + if(onto.equals(Material.ACACIA_LEAVES) || onto.equals(Material.BIRCH_LEAVES) + || onto.equals(Material.DARK_OAK_LEAVES) + || onto.equals(Material.JUNGLE_LEAVES) + || onto.equals(Material.OAK_LEAVES) + || onto.equals(Material.SPRUCE_LEAVES)) { if(!mat.isSolid()) { @@ -486,15 +491,66 @@ public class B return true; } - public static boolean isDecorant(FastBlockData m) + public static boolean isDecorant(BlockData m) { if(decorant.contains(m)) { return true; } - // @NoArgsConstructor - boolean str = m.getType().equals(Material.GRASS) || m.getType().equals(Material.TALL_GRASS) || m.equals(B.mat("CORNFLOWER")) || m.getType().equals(Material.SUNFLOWER) || m.getType().equals(Material.CHORUS_FLOWER) || m.getType().equals(Material.POPPY) || m.getType().equals(Material.DANDELION) || m.getType().equals(Material.OXEYE_DAISY) || m.getType().equals(Material.ORANGE_TULIP) || m.getType().equals(Material.PINK_TULIP) || m.getType().equals(Material.RED_TULIP) || m.getType().equals(Material.WHITE_TULIP) || m.getType().equals(Material.LILAC) || m.getType().equals(Material.DEAD_BUSH) || m.equals(B.mat("SWEET_BERRY_BUSH")) || m.getType().equals(Material.ROSE_BUSH) || m.equals(B.mat("WITHER_ROSE")) || m.getType().equals(Material.ALLIUM) || m.getType().equals(Material.BLUE_ORCHID) || m.equals(B.mat("LILY_OF_THE_VALLEY")) || m.equals(B.mat("CRIMSON_FUNGUS")) || m.equals(B.mat("WARPED_FUNGUS")) || m.getType().equals(Material.RED_MUSHROOM) || m.getType().equals(Material.BROWN_MUSHROOM) || m.equals(B.mat("CRIMSON_ROOTS")) || m.equals(B.mat("AZURE_BLUET")) || m.equals(B.mat("WEEPING_VINES")) || m.equals(B.mat("WEEPING_VINES_PLANT")) || m.equals(B.mat("WARPED_ROOTS")) || m.equals(B.mat("NETHER_SPROUTS")) || m.equals(B.mat("TWISTING_VINES")) || m.equals(B.mat("TWISTING_VINES_PLANT")) || m.getType().equals(Material.SUGAR_CANE) || m.getType().equals(Material.WHEAT) || m.getType().equals(Material.POTATOES) || m.getType().equals(Material.CARROTS) || m.getType().equals(Material.BEETROOTS) || m.getType().equals(Material.NETHER_WART) || m.equals(B.mat("SEA_PICKLE")) || m.equals(B.mat("SEAGRASS")) || m.equals(B.mat("ACACIA_BUTTON")) || m.equals(B.mat("BIRCH_BUTTON")) || m.equals(B.mat("CRIMSON_BUTTON")) || m.equals(B.mat("DARK_OAK_BUTTON")) || m.equals(B.mat("JUNGLE_BUTTON")) || m.equals(B.mat("OAK_BUTTON")) || m.equals(B.mat("POLISHED_BLACKSTONE_BUTTON")) || m.equals(B.mat("SPRUCE_BUTTON")) || m.equals(B.mat("STONE_BUTTON")) || m.equals(B.mat("WARPED_BUTTON")) || m.getType().equals(Material.TORCH) || m.equals(B.mat("SOUL_TORCH")); + // @builder + boolean str = m.getMaterial().equals(Material.GRASS) + || m.getMaterial().equals(Material.TALL_GRASS) + || m.equals(B.mat("CORNFLOWER")) + || m.getMaterial().equals(Material.SUNFLOWER) + || m.getMaterial().equals(Material.CHORUS_FLOWER) + || m.getMaterial().equals(Material.POPPY) + || m.getMaterial().equals(Material.DANDELION) + || m.getMaterial().equals(Material.OXEYE_DAISY) + || m.getMaterial().equals(Material.ORANGE_TULIP) + || m.getMaterial().equals(Material.PINK_TULIP) + || m.getMaterial().equals(Material.RED_TULIP) + || m.getMaterial().equals(Material.WHITE_TULIP) + || m.getMaterial().equals(Material.LILAC) + || m.getMaterial().equals(Material.DEAD_BUSH) + || m.equals(B.mat("SWEET_BERRY_BUSH")) + || m.getMaterial().equals(Material.ROSE_BUSH) + || m.equals(B.mat("WITHER_ROSE")) + || m.getMaterial().equals(Material.ALLIUM) + || m.getMaterial().equals(Material.BLUE_ORCHID) + || m.equals(B.mat("LILY_OF_THE_VALLEY")) + || m.equals(B.mat("CRIMSON_FUNGUS")) + || m.equals(B.mat("WARPED_FUNGUS")) + || m.getMaterial().equals(Material.RED_MUSHROOM) + || m.getMaterial().equals(Material.BROWN_MUSHROOM) + || m.equals(B.mat("CRIMSON_ROOTS")) + || m.equals(B.mat("AZURE_BLUET")) + || m.equals(B.mat("WEEPING_VINES")) + || m.equals(B.mat("WEEPING_VINES_PLANT")) + || m.equals(B.mat("WARPED_ROOTS")) + || m.equals(B.mat("NETHER_SPROUTS")) + || m.equals(B.mat("TWISTING_VINES")) + || m.equals(B.mat("TWISTING_VINES_PLANT")) + || m.getMaterial().equals(Material.SUGAR_CANE) + || m.getMaterial().equals(Material.WHEAT) + || m.getMaterial().equals(Material.POTATOES) + || m.getMaterial().equals(Material.CARROTS) + || m.getMaterial().equals(Material.BEETROOTS) + || m.getMaterial().equals(Material.NETHER_WART) + || m.equals(B.mat("SEA_PICKLE")) + || m.equals(B.mat("SEAGRASS")) + || m.equals(B.mat("ACACIA_BUTTON")) + || m.equals(B.mat("BIRCH_BUTTON")) + || m.equals(B.mat("CRIMSON_BUTTON")) + || m.equals(B.mat("DARK_OAK_BUTTON")) + || m.equals(B.mat("JUNGLE_BUTTON")) + || m.equals(B.mat("OAK_BUTTON")) + || m.equals(B.mat("POLISHED_BLACKSTONE_BUTTON")) + || m.equals(B.mat("SPRUCE_BUTTON")) + || m.equals(B.mat("STONE_BUTTON")) + || m.equals(B.mat("WARPED_BUTTON")) + || m.getMaterial().equals(Material.TORCH) + || m.equals(B.mat("SOUL_TORCH")); //@done if(str) @@ -506,13 +562,13 @@ public class B return false; } - public static KList getBlockData(KList find) + public static KList getBlockData(KList find) { - KList b = new KList<>(); + KList b = new KList<>(); for(String i : find) { - FastBlockData bd = getBlockData(i); + BlockData bd = getBlockData(i); if(bd != null) { @@ -523,22 +579,22 @@ public class B return b; } - public static boolean isFoliagePlantable(FastBlockData d) + public static boolean isFoliagePlantable(BlockData d) { return d.getMaterial().equals(Material.GRASS_BLOCK) || d.getMaterial().equals(Material.DIRT) || d.getMaterial().equals(Material.COARSE_DIRT) || d.getMaterial().equals(Material.PODZOL); } - public static boolean isFluid(FastBlockData d) + public static boolean isFluid(BlockData d) { return d.getMaterial().equals(Material.WATER) || d.getMaterial().equals(Material.LAVA); } - public static boolean isAirOrFluid(FastBlockData d) + public static boolean isAirOrFluid(BlockData d) { return isAir(d) || isFluid(d); } - public static boolean isAir(FastBlockData d) + public static boolean isAir(BlockData d) { if(d == null) { diff --git a/src/main/java/com/volmit/iris/util/IObjectPlacer.java b/src/main/java/com/volmit/iris/util/IObjectPlacer.java index 95e8a58d4..10a7eef07 100644 --- a/src/main/java/com/volmit/iris/util/IObjectPlacer.java +++ b/src/main/java/com/volmit/iris/util/IObjectPlacer.java @@ -1,14 +1,16 @@ package com.volmit.iris.util; +import org.bukkit.block.data.BlockData; + public interface IObjectPlacer { public int getHighest(int x, int z); public int getHighest(int x, int z, boolean ignoreFluid); - public void set(int x, int y, int z, FastBlockData d); + public void set(int x, int y, int z, BlockData d); - public FastBlockData get(int x, int y, int z); + public BlockData get(int x, int y, int z); public boolean isPreventingDecay(); diff --git a/src/main/java/com/volmit/iris/util/IPostBlockAccess.java b/src/main/java/com/volmit/iris/util/IPostBlockAccess.java index eee6924e9..631d341ad 100644 --- a/src/main/java/com/volmit/iris/util/IPostBlockAccess.java +++ b/src/main/java/com/volmit/iris/util/IPostBlockAccess.java @@ -1,12 +1,13 @@ package com.volmit.iris.util; +import org.bukkit.block.data.BlockData; import org.bukkit.generator.ChunkGenerator.ChunkData; public interface IPostBlockAccess { - public FastBlockData getPostBlock(int x, int y, int z, int currentPostX, int currentPostZ, ChunkData currentData); + public BlockData getPostBlock(int x, int y, int z, int currentPostX, int currentPostZ, ChunkData currentData); - public void setPostBlock(int x, int y, int z, FastBlockData d, int currentPostX, int currentPostZ, ChunkData currentData); + public void setPostBlock(int x, int y, int z, BlockData d, int currentPostX, int currentPostZ, ChunkData currentData); public int highestTerrainOrFluidBlock(int x, int z); diff --git a/src/main/java/com/volmit/iris/util/IrisPostBlockFilter.java b/src/main/java/com/volmit/iris/util/IrisPostBlockFilter.java index 6705399c6..9aa830cde 100644 --- a/src/main/java/com/volmit/iris/util/IrisPostBlockFilter.java +++ b/src/main/java/com/volmit/iris/util/IrisPostBlockFilter.java @@ -1,6 +1,7 @@ package com.volmit.iris.util; import org.bukkit.Material; +import org.bukkit.block.data.BlockData; import org.bukkit.block.data.Levelled; import org.bukkit.block.data.Waterlogged; import org.bukkit.block.data.type.Slab; @@ -32,13 +33,13 @@ public abstract class IrisPostBlockFilter implements IPostBlockAccess public abstract void onPost(int x, int z, int currentPostX, int currentPostZ, ChunkData currentData, KList q); @Override - public FastBlockData getPostBlock(int x, int y, int z, int currentPostX, int currentPostZ, ChunkData currentData) + public BlockData getPostBlock(int x, int y, int z, int currentPostX, int currentPostZ, ChunkData currentData) { return gen.getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); } @Override - public void setPostBlock(int x, int y, int z, FastBlockData d, int currentPostX, int currentPostZ, ChunkData currentData) + public void setPostBlock(int x, int y, int z, BlockData d, int currentPostX, int currentPostZ, ChunkData currentData) { gen.setPostBlock(x, y, z, d, currentPostX, currentPostZ, currentData); } @@ -62,62 +63,62 @@ public abstract class IrisPostBlockFilter implements IPostBlockAccess public boolean isAir(int x, int y, int z, int currentPostX, int currentPostZ, ChunkData currentData) { - FastBlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); + BlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); return d.getMaterial().equals(Material.AIR) || d.getMaterial().equals(Material.CAVE_AIR); } public boolean hasGravity(int x, int y, int z, int currentPostX, int currentPostZ, ChunkData currentData) { - FastBlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); + BlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); return d.getMaterial().equals(Material.SAND) || d.getMaterial().equals(Material.RED_SAND) || d.getMaterial().equals(Material.BLACK_CONCRETE_POWDER) || d.getMaterial().equals(Material.BLUE_CONCRETE_POWDER) || d.getMaterial().equals(Material.BROWN_CONCRETE_POWDER) || d.getMaterial().equals(Material.CYAN_CONCRETE_POWDER) || d.getMaterial().equals(Material.GRAY_CONCRETE_POWDER) || d.getMaterial().equals(Material.GREEN_CONCRETE_POWDER) || d.getMaterial().equals(Material.LIGHT_BLUE_CONCRETE_POWDER) || d.getMaterial().equals(Material.LIGHT_GRAY_CONCRETE_POWDER) || d.getMaterial().equals(Material.LIME_CONCRETE_POWDER) || d.getMaterial().equals(Material.MAGENTA_CONCRETE_POWDER) || d.getMaterial().equals(Material.ORANGE_CONCRETE_POWDER) || d.getMaterial().equals(Material.PINK_CONCRETE_POWDER) || d.getMaterial().equals(Material.PURPLE_CONCRETE_POWDER) || d.getMaterial().equals(Material.RED_CONCRETE_POWDER) || d.getMaterial().equals(Material.WHITE_CONCRETE_POWDER) || d.getMaterial().equals(Material.YELLOW_CONCRETE_POWDER); } public boolean isSolid(int x, int y, int z, int currentPostX, int currentPostZ, ChunkData currentData) { - FastBlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); + BlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); return d.getMaterial().isSolid(); } public boolean isSolidNonSlab(int x, int y, int z, int currentPostX, int currentPostZ, ChunkData currentData) { - FastBlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); - return d.getMaterial().isSolid() && !(d.getBlockData() instanceof Slab); + BlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); + return d.getMaterial().isSolid() && !(d instanceof Slab); } public boolean isAirOrWater(int x, int y, int z, int currentPostX, int currentPostZ, ChunkData currentData) { - FastBlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); + BlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); return d.getMaterial().equals(Material.WATER) || d.getMaterial().equals(Material.AIR) || d.getMaterial().equals(Material.CAVE_AIR); } public boolean isSlab(int x, int y, int z, int currentPostX, int currentPostZ, ChunkData currentData) { - FastBlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); - return d.getBlockData() instanceof Slab; + BlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); + return d instanceof Slab; } public boolean isSnowLayer(int x, int y, int z, int currentPostX, int currentPostZ, ChunkData currentData) { - FastBlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); + BlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); return d.getMaterial().equals(Material.SNOW); } public boolean isWater(int x, int y, int z, int currentPostX, int currentPostZ, ChunkData currentData) { - FastBlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); + BlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); return d.getMaterial().equals(Material.WATER); } public boolean isWaterOrWaterlogged(int x, int y, int z, int currentPostX, int currentPostZ, ChunkData currentData) { - FastBlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); - return d.getMaterial().equals(Material.WATER) || (d.getBlockData() instanceof Waterlogged && ((Waterlogged) d.getBlockData()).isWaterlogged()); + BlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); + return d.getMaterial().equals(Material.WATER) || (d instanceof Waterlogged && ((Waterlogged) d).isWaterlogged()); } public boolean isLiquid(int x, int y, int z, int currentPostX, int currentPostZ, ChunkData currentData) { - FastBlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); - return d.getBlockData() instanceof Levelled; + BlockData d = getPostBlock(x, y, z, currentPostX, currentPostZ, currentData); + return d instanceof Levelled; } @Override diff --git a/src/main/java/com/volmit/iris/util/ParallaxSection.java b/src/main/java/com/volmit/iris/util/ParallaxSection.java index 6d1a63262..9ff1284a8 100644 --- a/src/main/java/com/volmit/iris/util/ParallaxSection.java +++ b/src/main/java/com/volmit/iris/util/ParallaxSection.java @@ -20,7 +20,7 @@ public class ParallaxSection implements Writable public ParallaxSection() { updates = new KSet(); - this.block = new DataPalette(B.get("AIR").getBlockData()) + this.block = new DataPalette(B.get("AIR")) { @Override public void writeType(BlockData t, DataOutputStream o) throws IOException @@ -31,7 +31,7 @@ public class ParallaxSection implements Writable @Override public BlockData readType(DataInputStream i) throws IOException { - return B.get(i.readUTF()).getBlockData(); + return B.get(i.readUTF()); } }; } @@ -55,7 +55,7 @@ public class ParallaxSection implements Writable { block.set(x, y, z, d); - if(B.isUpdatable(FastBlockData.of(d))) + if(B.isUpdatable(d)) { update(x, y, z); } diff --git a/src/main/java/com/volmit/iris/util/SKConversion.java b/src/main/java/com/volmit/iris/util/SKConversion.java index 5a94a183c..4343dfac8 100644 --- a/src/main/java/com/volmit/iris/util/SKConversion.java +++ b/src/main/java/com/volmit/iris/util/SKConversion.java @@ -30,7 +30,7 @@ public class SKConversion { for(int k = clipboard.getMinimumPoint().getBlockZ(); k <= clipboard.getMaximumPoint().getBlockZ(); k++) { - o.setUnsigned(i - clipboard.getMinimumPoint().getBlockX(), j - clipboard.getMinimumPoint().getBlockY(), k - clipboard.getMinimumPoint().getBlockZ(), FastBlockData.of(BukkitAdapter.adapt(clipboard.getFullBlock(BlockVector3.at(i, j, k))))); + o.setUnsigned(i - clipboard.getMinimumPoint().getBlockX(), j - clipboard.getMinimumPoint().getBlockY(), k - clipboard.getMinimumPoint().getBlockZ(), BukkitAdapter.adapt(clipboard.getFullBlock(BlockVector3.at(i, j, k)))); } } }