mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-12-28 03:29:06 +00:00
REMOVE FBD
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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<ItemStack> drops = new KList<>();
|
||||
boolean skipParents = false;
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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<FastBlockData> layers = biome.generateLayers(rx, rz, getMasterRandom(), height, height - getFluidHeight(), getData());
|
||||
KList<FastBlockData> cavernLayers = null;
|
||||
KList<FastBlockData> 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<BlockData> layers = biome.generateLayers(rx, rz, getMasterRandom(), height, height - getFluidHeight(), getData());
|
||||
KList<BlockData> cavernLayers = null;
|
||||
KList<BlockData> 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<Integer> cavernHeights = new KList<>();
|
||||
@@ -314,9 +315,9 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider
|
||||
}
|
||||
}
|
||||
|
||||
KList<FastBlockData> floor = caveBiome.generateLayers(wx, wz, rockRandom, i.getFloor() - 2, i.getFloor() - 2, getData());
|
||||
KList<FastBlockData> 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<BlockData> floor = caveBiome.generateLayers(wx, wz, rockRandom, i.getFloor() - 2, i.getFloor() - 2, getData());
|
||||
KList<BlockData> 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)
|
||||
{
|
||||
|
||||
@@ -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<Byte> 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<FastBlockData> palette = new KList<FastBlockData>();
|
||||
KList<BlockData> palette = new KList<BlockData>();
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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<CaveResult> EMPTY = new KList<>();
|
||||
private final FastNoiseDouble gg;
|
||||
|
||||
@@ -55,7 +52,7 @@ public class GenLayerCave extends GenLayer
|
||||
public void generateCave(KList<CaveResult> result, double wxx, double wzz, int x, int z, AtomicSliver data, IrisCaveLayer layer, int seed)
|
||||
{
|
||||
double scale = layer.getCaveZoom();
|
||||
Function<Integer, FastBlockData> fluid = (height) ->
|
||||
Function<Integer, BlockData> 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<Integer, FastBlockData> caveFluid)
|
||||
public boolean dig(int x, int y, int z, AtomicSliver data, Function<Integer, BlockData> 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)
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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<IrisObject> 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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,6 @@ public class BlockDataHunkIOAdapter extends PaletteHunkIOAdapter<BlockData> {
|
||||
|
||||
@Override
|
||||
public BlockData read(DataInputStream din) throws IOException {
|
||||
return B.get(din.readUTF()).getBlockData();
|
||||
return B.get(din.readUTF());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,12 +36,12 @@ public class ChunkHunkView implements Hunk<BlockData>
|
||||
@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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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<FastBlockData> generateLayers(double wx, double wz, RNG random, int maxDepth, int height, IrisDataManager rdata)
|
||||
public KList<BlockData> generateLayers(double wx, double wz, RNG random, int maxDepth, int height, IrisDataManager rdata)
|
||||
{
|
||||
if(isLockLayers())
|
||||
{
|
||||
return generateLockedLayers(wx, wz, random, maxDepth, height, rdata);
|
||||
}
|
||||
|
||||
KList<FastBlockData> data = new KList<>();
|
||||
KList<BlockData> data = new KList<>();
|
||||
|
||||
if(maxDepth <= 0)
|
||||
{
|
||||
@@ -400,10 +401,10 @@ public class IrisBiome extends IrisRegistrant implements IRare
|
||||
return data;
|
||||
}
|
||||
|
||||
public KList<FastBlockData> generateLockedLayers(double wx, double wz, RNG random, int maxDepthf, int height, IrisDataManager rdata)
|
||||
public KList<BlockData> generateLockedLayers(double wx, double wz, RNG random, int maxDepthf, int height, IrisDataManager rdata)
|
||||
{
|
||||
KList<FastBlockData> data = new KList<>();
|
||||
KList<FastBlockData> real = new KList<>();
|
||||
KList<BlockData> data = new KList<>();
|
||||
KList<BlockData> 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<FastBlockData> generateSeaLayers(double wx, double wz, RNG random, int maxDepth, IrisDataManager rdata)
|
||||
public KList<BlockData> generateSeaLayers(double wx, double wz, RNG random, int maxDepth, IrisDataManager rdata)
|
||||
{
|
||||
KList<FastBlockData> data = new KList<>();
|
||||
KList<BlockData> 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())
|
||||
{
|
||||
|
||||
@@ -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<IrisBlockData> palette = new KList<IrisBlockData>().qadd(new IrisBlockData("GRASS_BLOCK"));
|
||||
|
||||
private final transient AtomicCache<KList<FastBlockData>> blockData = new AtomicCache<>();
|
||||
private final transient AtomicCache<KList<BlockData>> blockData = new AtomicCache<>();
|
||||
private final transient AtomicCache<CNG> layerGenerator = new AtomicCache<>();
|
||||
private final transient AtomicCache<CNG> 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<FastBlockData> getBlockData(IrisDataManager data)
|
||||
public KList<BlockData> getBlockData(IrisDataManager data)
|
||||
{
|
||||
return blockData.aquire(() ->
|
||||
{
|
||||
KList<FastBlockData> blockData = new KList<>();
|
||||
KList<BlockData> 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++)
|
||||
|
||||
@@ -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<String, Object> data = new KMap<>();
|
||||
|
||||
private final transient AtomicCache<FastBlockData> blockdata = new AtomicCache<>();
|
||||
private final transient AtomicCache<BlockData> blockdata = new AtomicCache<>();
|
||||
private final transient AtomicCache<String> 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)
|
||||
{
|
||||
|
||||
@@ -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<KList<FastBlockData>> data = new AtomicCache<>();
|
||||
private final transient AtomicCache<KList<BlockData>> data = new AtomicCache<>();
|
||||
|
||||
public boolean shouldDropFor(FastBlockData data, IrisDataManager rdata)
|
||||
public boolean shouldDropFor(BlockData data, IrisDataManager rdata)
|
||||
{
|
||||
KList<FastBlockData> list = this.data.aquire(() ->
|
||||
KList<BlockData> list = this.data.aquire(() ->
|
||||
{
|
||||
KList<FastBlockData> b = new KList<>();
|
||||
KList<BlockData> 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()))
|
||||
{
|
||||
|
||||
@@ -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<FastBlockData> fluidData = new AtomicCache<>();
|
||||
private final transient AtomicCache<BlockData> 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)
|
||||
{
|
||||
|
||||
@@ -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<IrisCompatabilityBlockFilter> blockFilters = new KList<>();
|
||||
private KList<IrisCompatabilityItemFilter> itemFilters = new KList<>();
|
||||
private transient KMap<String, FastBlockData> blockResolves = new KMap<>();
|
||||
private transient KMap<String, BlockData> blockResolves = new KMap<>();
|
||||
private transient KMap<String, Material> 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();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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<FastBlockData> findData = new AtomicCache<>(true);
|
||||
private final transient AtomicCache<FastBlockData> replaceData = new AtomicCache<>(true);
|
||||
private final transient AtomicCache<BlockData> findData = new AtomicCache<>(true);
|
||||
private final transient AtomicCache<BlockData> 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)
|
||||
{
|
||||
|
||||
@@ -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<CNG> layerGenerator = new AtomicCache<>();
|
||||
private final transient AtomicCache<CNG> varianceGenerator = new AtomicCache<>();
|
||||
private final transient AtomicCache<CNG> heightGenerator = new AtomicCache<>();
|
||||
private final transient AtomicCache<KList<FastBlockData>> blockData = new AtomicCache<>();
|
||||
private final transient AtomicCache<KList<FastBlockData>> blockDataTops = new AtomicCache<>();
|
||||
private final transient AtomicCache<KList<BlockData>> blockData = new AtomicCache<>();
|
||||
private final transient AtomicCache<KList<BlockData>> 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<FastBlockData> getBlockData(IrisDataManager data)
|
||||
public KList<BlockData> getBlockData(IrisDataManager data)
|
||||
{
|
||||
return blockData.aquire(() ->
|
||||
{
|
||||
KList<FastBlockData> blockData = new KList<>();
|
||||
KList<BlockData> 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<FastBlockData> getBlockDataTops(IrisDataManager data)
|
||||
public KList<BlockData> getBlockDataTops(IrisDataManager data)
|
||||
{
|
||||
return blockDataTops.aquire(() ->
|
||||
{
|
||||
KList<FastBlockData> blockDataTops = new KList<>();
|
||||
KList<BlockData> blockDataTops = new KList<>();
|
||||
for(IrisBlockData i : topPalette)
|
||||
{
|
||||
FastBlockData bx = i.getBlockData(data);
|
||||
BlockData bx = i.getBlockData(data);
|
||||
if(bx != null)
|
||||
{
|
||||
blockDataTops.add(bx);
|
||||
|
||||
@@ -86,7 +86,7 @@ public class IrisDepositGenerator
|
||||
private int varience = 3;
|
||||
|
||||
private final transient AtomicCache<KList<IrisObject>> objects = new AtomicCache<>();
|
||||
private final transient AtomicCache<KList<FastBlockData>> blockData = new AtomicCache<>();
|
||||
private final transient AtomicCache<KList<BlockData>> 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<FastBlockData> getBlockData(IrisDataManager rdata)
|
||||
public KList<BlockData> getBlockData(IrisDataManager rdata)
|
||||
{
|
||||
return blockData.aquire(() ->
|
||||
{
|
||||
KList<FastBlockData> blockData = new KList<>();
|
||||
KList<BlockData> 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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -505,7 +505,7 @@ public class IrisDimension extends IrisRegistrant
|
||||
});
|
||||
}
|
||||
|
||||
public FastBlockData resolveBlock(String bd)
|
||||
public BlockData resolveBlock(String bd)
|
||||
{
|
||||
return Iris.compat.getBlock(bd);
|
||||
}
|
||||
|
||||
@@ -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<IrisBlockData> palette = new KList<IrisBlockData>().qadd(new IrisBlockData("STONE"));
|
||||
|
||||
private final transient AtomicCache<KList<FastBlockData>> blockData = new AtomicCache<>();
|
||||
private final transient AtomicCache<KList<BlockData>> blockData = new AtomicCache<>();
|
||||
private final transient AtomicCache<CNG> layerGenerator = new AtomicCache<>();
|
||||
private final transient AtomicCache<CNG> 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<FastBlockData> getBlockData(IrisDataManager rdata)
|
||||
public KList<BlockData> getBlockData(IrisDataManager rdata)
|
||||
{
|
||||
return blockData.aquire(() ->
|
||||
{
|
||||
KList<FastBlockData> blockData = new KList<>();
|
||||
KList<BlockData> 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++)
|
||||
|
||||
@@ -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<BlockVector, FastBlockData> blocks;
|
||||
private KMap<BlockVector, BlockData> 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<BlockVector, FastBlockData> d = blocks.copy();
|
||||
KMap<BlockVector, BlockData> 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<BlockVector, FastBlockData> v = blocks.copy();
|
||||
KMap<BlockVector, BlockData> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<CNG> replaceGen = new AtomicCache<>();
|
||||
private final transient AtomicCache<KList<FastBlockData>> findData = new AtomicCache<>();
|
||||
private final transient AtomicCache<KList<FastBlockData>> replaceData = new AtomicCache<>();
|
||||
private final transient AtomicCache<KList<BlockData>> findData = new AtomicCache<>();
|
||||
private final transient AtomicCache<KList<BlockData>> replaceData = new AtomicCache<>();
|
||||
|
||||
public KList<FastBlockData> getFind(IrisDataManager rdata)
|
||||
public KList<BlockData> getFind(IrisDataManager rdata)
|
||||
{
|
||||
return findData.aquire(() ->
|
||||
{
|
||||
KList<FastBlockData> b = new KList<>();
|
||||
KList<BlockData> 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);
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<String, FastBlockData> bdc = new KMap<>();
|
||||
private static final BlockData AIR = Material.AIR.createBlockData();
|
||||
private static final KMap<String, BlockData> bdc = new KMap<>();
|
||||
private static final KList<String> nulls = new KList<>();
|
||||
private static final KList<String> canPlaceOn = new KList<>();
|
||||
private static final KList<FastBlockData> decorant = new KList<>();
|
||||
private static final KList<BlockData> decorant = new KList<>();
|
||||
private static final IrisDimension defaultCompat = new IrisDimension();
|
||||
private static final KMap<Material, Boolean> solid = new KMap<>();
|
||||
private static final KMap<String, FastBlockData> types = new KMap<>();
|
||||
private static final KMap<String, FastBlockData> typesb = new KMap<>();
|
||||
private static final KMap<String, BlockData> types = new KMap<>();
|
||||
private static final KMap<String, Material> 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<String, FastBlockData> getBdc()
|
||||
public static KMap<String, BlockData> getBdc()
|
||||
{
|
||||
return bdc;
|
||||
}
|
||||
@@ -50,7 +51,7 @@ public class B
|
||||
return canPlaceOn;
|
||||
}
|
||||
|
||||
public static KList<FastBlockData> getDecorant()
|
||||
public static KList<BlockData> getDecorant()
|
||||
{
|
||||
return decorant;
|
||||
}
|
||||
@@ -65,12 +66,12 @@ public class B
|
||||
return solid;
|
||||
}
|
||||
|
||||
public static KMap<String, FastBlockData> getTypes()
|
||||
public static KMap<String, BlockData> getTypes()
|
||||
{
|
||||
return types;
|
||||
}
|
||||
|
||||
public static KMap<String, FastBlockData> getTypesb()
|
||||
public static KMap<String, Material> 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<FastBlockData> getBlockData(KList<String> find)
|
||||
public static KList<BlockData> getBlockData(KList<String> find)
|
||||
{
|
||||
KList<FastBlockData> b = new KList<>();
|
||||
KList<BlockData> 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)
|
||||
{
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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<Runnable> 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
|
||||
|
||||
@@ -20,7 +20,7 @@ public class ParallaxSection implements Writable
|
||||
public ParallaxSection()
|
||||
{
|
||||
updates = new KSet<Short>();
|
||||
this.block = new DataPalette<BlockData>(B.get("AIR").getBlockData())
|
||||
this.block = new DataPalette<BlockData>(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);
|
||||
}
|
||||
|
||||
@@ -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))));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user