9
0
mirror of https://github.com/VolmitSoftware/Iris.git synced 2025-12-30 04:29:05 +00:00

Revert "Revert "Block Compat""

This reverts commit 05ab44d50b.
This commit is contained in:
Daniel Mills
2020-08-06 15:58:21 -04:00
parent 05ab44d50b
commit 4207330dcf
24 changed files with 212 additions and 1573 deletions

View File

@@ -23,7 +23,7 @@ import org.bukkit.generator.ChunkGenerator;
import com.volmit.iris.Iris;
import com.volmit.iris.IrisContext;
import com.volmit.iris.IrisMetrics;
import com.volmit.iris.util.BlockDataTools;
import com.volmit.iris.util.B;
import com.volmit.iris.util.CNG;
import com.volmit.iris.util.ChronoLatch;
import com.volmit.iris.util.J;
@@ -220,12 +220,12 @@ public abstract class ContextualChunkGenerator extends ChunkGenerator implements
if(j == i || j + i == 16)
{
c.setBlock(i, h, j, BlockDataTools.getBlockData("RED_TERRACOTTA"));
c.setBlock(i, h, j, B.getBlockData("RED_TERRACOTTA"));
}
else
{
c.setBlock(i, h, j, BlockDataTools.getBlockData("BLACK_TERRACOTTA"));
c.setBlock(i, h, j, B.getBlockData("BLACK_TERRACOTTA"));
}
}
}
@@ -245,12 +245,12 @@ public abstract class ContextualChunkGenerator extends ChunkGenerator implements
if(j == i || j + i == 16)
{
c.setBlock(i, h, j, BlockDataTools.getBlockData("BLUE_TERRACOTTA"));
c.setBlock(i, h, j, B.getBlockData("BLUE_TERRACOTTA"));
}
else
{
c.setBlock(i, h, j, BlockDataTools.getBlockData("WHITE_TERRACOTTA"));
c.setBlock(i, h, j, B.getBlockData("WHITE_TERRACOTTA"));
}
}
}

View File

@@ -8,6 +8,7 @@ import com.volmit.iris.object.InferredType;
import com.volmit.iris.object.IrisBiome;
import com.volmit.iris.object.IrisDimension;
import com.volmit.iris.object.IrisRegion;
import com.volmit.iris.util.B;
import com.volmit.iris.util.BiomeResult;
import lombok.Data;
@@ -19,7 +20,7 @@ public abstract class DimensionChunkGenerator extends ContextualChunkGenerator
{
protected final String dimensionName;
protected static final BlockData AIR = Material.AIR.createBlockData();
protected static final BlockData CAVE_AIR = Material.CAVE_AIR.createBlockData();
protected static final BlockData CAVE_AIR = B.get("CAVE_AIR");
protected static final BlockData BEDROCK = Material.BEDROCK.createBlockData();
public DimensionChunkGenerator(String dimensionName)

View File

@@ -18,7 +18,7 @@ import com.volmit.iris.object.IrisDepositGenerator;
import com.volmit.iris.object.IrisRegion;
import com.volmit.iris.util.BiomeMap;
import com.volmit.iris.util.BiomeResult;
import com.volmit.iris.util.BlockDataTools;
import com.volmit.iris.util.B;
import com.volmit.iris.util.CaveResult;
import com.volmit.iris.util.HeightMap;
import com.volmit.iris.util.IrisLock;
@@ -323,7 +323,7 @@ public abstract class TerrainChunkGenerator extends ParallelChunkGenerator
if(d != null)
{
if(!BlockDataTools.canPlaceOnto(d.getMaterial(), block.getMaterial()))
if(!B.canPlaceOnto(d.getMaterial(), block.getMaterial()))
{
continue;
}
@@ -332,7 +332,7 @@ public abstract class TerrainChunkGenerator extends ParallelChunkGenerator
{
if(!block.getMaterial().equals(Material.SAND) && !block.getMaterial().equals(Material.RED_SAND))
{
sliver.set(k, BlockDataTools.getBlockData("RED_SAND"));
sliver.set(k, B.getBlockData("RED_SAND"));
}
}
@@ -340,7 +340,7 @@ public abstract class TerrainChunkGenerator extends ParallelChunkGenerator
{
if(!block.getMaterial().equals(Material.FARMLAND))
{
sliver.set(k, BlockDataTools.getBlockData("FARMLAND"));
sliver.set(k, B.getBlockData("FARMLAND"));
}
}
@@ -392,7 +392,7 @@ public abstract class TerrainChunkGenerator extends ParallelChunkGenerator
if(d != null)
{
if(!BlockDataTools.canPlaceOnto(d.getMaterial(), block.getMaterial()))
if(!B.canPlaceOnto(d.getMaterial(), block.getMaterial()))
{
continue;
}
@@ -401,7 +401,7 @@ public abstract class TerrainChunkGenerator extends ParallelChunkGenerator
{
if(!block.getMaterial().equals(Material.SAND) && !block.getMaterial().equals(Material.RED_SAND))
{
sliver.set(k, BlockDataTools.getBlockData("SAND"));
sliver.set(k, B.getBlockData("SAND"));
}
}

View File

@@ -9,13 +9,15 @@ public class AtomicCache<T>
{
private transient volatile T t;
private transient volatile long a;
private boolean nullSupport;
private transient volatile int validations;
private final IrisLock check;
private final IrisLock time;
private final IrisLock write;
public AtomicCache()
public AtomicCache(boolean nullSupport)
{
this.nullSupport = nullSupport;
check = new IrisLock("Check");
write = new IrisLock("Write");
time = new IrisLock("Time");
@@ -24,6 +26,11 @@ public class AtomicCache<T>
t = null;
}
public AtomicCache()
{
this(false);
}
public void reset()
{
check.lock();
@@ -36,8 +43,43 @@ public class AtomicCache<T>
check.unlock();
}
public T aquireNullex(Supplier<T> t)
{
if(validations > 1000)
{
return this.t;
}
if(M.ms() - a > 1000)
{
validations++;
return this.t;
}
check.lock();
write.lock();
this.t = t.get();
time.lock();
if(a == -1)
{
a = M.ms();
}
time.unlock();
write.unlock();
check.unlock();
return this.t;
}
public T aquire(Supplier<T> t)
{
if(nullSupport)
{
return aquireNullex(t);
}
if(this.t != null && validations > 1000)
{
return this.t;
@@ -55,7 +97,7 @@ public class AtomicCache<T>
check.lock();
if(this.t == null)
if(this.t != null)
{
write.lock();
this.t = t.get();

View File

@@ -11,7 +11,7 @@ import org.bukkit.generator.ChunkGenerator.BiomeGrid;
import org.bukkit.generator.ChunkGenerator.ChunkData;
import com.volmit.iris.object.IrisBiome;
import com.volmit.iris.util.BlockDataTools;
import com.volmit.iris.util.B;
import com.volmit.iris.util.HeightMap;
import com.volmit.iris.util.IrisLock;
import com.volmit.iris.util.KList;
@@ -23,7 +23,7 @@ import lombok.Data;
@Data
public class AtomicSliver
{
public static final BlockData AIR = BlockDataTools.getBlockData("AIR");
public static final BlockData AIR = B.getBlockData("AIR");
private KMap<Integer, BlockData> block;
private KMap<Integer, IrisBiome> truebiome;
private KMap<Integer, Biome> biome;
@@ -75,7 +75,7 @@ public class AtomicSliver
lock.unlock();
modified = true;
if(d.getMaterial().equals(Material.AIR) || d.getMaterial().equals(Material.CAVE_AIR))
if(d.getMaterial().equals(Material.AIR) || d.getMaterial().equals(B.mat("CAVE_AIR")))
{
return;
}
@@ -181,7 +181,7 @@ public class AtomicSliver
for(int i = 0; i < p; i++)
{
palette.add(BlockDataTools.getBlockData(din.readUTF()));
palette.add(B.getBlockData(din.readUTF()));
}
for(int i = 0; i <= h; i++)

View File

@@ -5,7 +5,7 @@ import org.bukkit.block.data.BlockData;
import com.volmit.iris.gen.DimensionChunkGenerator;
import com.volmit.iris.gen.atomics.AtomicSliver;
import com.volmit.iris.util.BlockDataTools;
import com.volmit.iris.util.B;
import com.volmit.iris.util.CNG;
import com.volmit.iris.util.CaveResult;
import com.volmit.iris.util.FastNoise;
@@ -18,8 +18,8 @@ import com.volmit.iris.util.FastNoise.NoiseType;
public class GenLayerCave extends GenLayer
{
public static final BlockData CAVE_AIR = BlockDataTools.getBlockData("CAVE_AIR");
public static final BlockData AIR = BlockDataTools.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 CNG gincline;
private CNG shuffle;
@@ -174,7 +174,7 @@ public class GenLayerCave extends GenLayer
public boolean canAir(Material m)
{
return (m.isSolid() || (BlockDataTools.isDecorant(m)) || m.equals(Material.AIR) || m.equals(Material.CAVE_AIR)) && !m.equals(Material.BEDROCK);
return (m.isSolid() || (B.isDecorant(m)) || m.equals(Material.AIR) || m.equals(B.mat("CAVE_AIR"))) && !m.equals(Material.BEDROCK);
}
public boolean canWater(Material m)

View File

@@ -3,13 +3,13 @@ package com.volmit.iris.gen.post;
import org.bukkit.block.data.BlockData;
import com.volmit.iris.gen.PostBlockChunkGenerator;
import com.volmit.iris.util.BlockDataTools;
import com.volmit.iris.util.B;
import com.volmit.iris.util.IrisPostBlockFilter;
@Post("floating-block-remover")
public class PostFloatingNibDeleter extends IrisPostBlockFilter
{
private static final BlockData AIR = BlockDataTools.getBlockData("AIR");
private static final BlockData AIR = B.getBlockData("AIR");
public PostFloatingNibDeleter(PostBlockChunkGenerator gen, int phase)
{

View File

@@ -5,13 +5,13 @@ import org.bukkit.block.data.BlockData;
import org.bukkit.block.data.Waterlogged;
import com.volmit.iris.gen.PostBlockChunkGenerator;
import com.volmit.iris.util.BlockDataTools;
import com.volmit.iris.util.B;
import com.volmit.iris.util.IrisPostBlockFilter;
@Post("waterlogger")
public class PostWaterlogger extends IrisPostBlockFilter
{
private static final BlockData WATER = BlockDataTools.getBlockData("WATER");
private static final BlockData WATER = B.getBlockData("WATER");
public PostWaterlogger(PostBlockChunkGenerator gen, int phase)
{

View File

@@ -1,40 +0,0 @@
package com.volmit.iris.gen.standalone;
import org.bukkit.block.Biome;
import org.bukkit.generator.ChunkGenerator.BiomeGrid;
import com.volmit.iris.util.BiomeStorage;
public class StandaloneBiomeGrid implements BiomeGrid
{
private final BiomeStorage storage;
public StandaloneBiomeGrid()
{
storage = new BiomeStorage();
}
@Override
public Biome getBiome(int x, int z)
{
throw new UnsupportedOperationException("Use GetBiome x, y, z");
}
@Override
public Biome getBiome(int x, int y, int z)
{
return storage.getBiome(x, y, z);
}
@Override
public void setBiome(int arg0, int arg1, Biome arg2)
{
throw new UnsupportedOperationException("Use SetBiome x, y, z, b");
}
@Override
public void setBiome(int x, int y, int z, Biome b)
{
storage.setBiome(x, y, z, b);
}
}

View File

@@ -1,81 +0,0 @@
package com.volmit.iris.gen.standalone;
import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
import org.bukkit.generator.ChunkGenerator.ChunkData;
import org.bukkit.material.MaterialData;
import com.volmit.iris.gen.atomics.AtomicSliverMap;
@SuppressWarnings("deprecation")
public class StandaloneChunkData extends AtomicSliverMap implements ChunkData
{
@Override
public BlockData getBlockData(int x, int y, int z)
{
return getSliver(x, z).get(y);
}
@Override
public byte getData(int x, int y, int z)
{
throw new UnsupportedOperationException("Use getBlockData");
}
@Override
public int getMaxHeight()
{
return 256;
}
@Override
public Material getType(int x, int y, int z)
{
return getBlockData(x, y, z).getMaterial();
}
@Deprecated
@Override
public MaterialData getTypeAndData(int x, int y, int z)
{
throw new UnsupportedOperationException("Use GetBlockData");
}
@Override
public void setBlock(int x, int y, int z, Material arg3)
{
setBlock(x, y, z, arg3.createBlockData());
}
@Deprecated
@Override
public void setBlock(int arg0, int arg1, int arg2, MaterialData arg3)
{
throw new UnsupportedOperationException("Use SetBlock (bd)");
}
@Override
public void setBlock(int x, int y, int z, BlockData b)
{
getSliver(x, z).set(y, b);
}
@Override
public void setRegion(int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, Material arg6)
{
throw new UnsupportedOperationException("Use SetBlock (bd)");
}
@Deprecated
@Override
public void setRegion(int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, MaterialData arg6)
{
throw new UnsupportedOperationException("Use SetBlock (bd)");
}
@Override
public void setRegion(int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, BlockData arg6)
{
throw new UnsupportedOperationException("Use SetBlock (bd)");
}
}