mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-12-31 04:46:40 +00:00
Block Compat
This commit is contained in:
@@ -3,7 +3,7 @@ package com.volmit.iris.object;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||
import com.volmit.iris.util.BlockDataTools;
|
||||
import com.volmit.iris.util.B;
|
||||
import com.volmit.iris.util.CNG;
|
||||
import com.volmit.iris.util.Desc;
|
||||
import com.volmit.iris.util.DontObfuscate;
|
||||
@@ -145,7 +145,7 @@ public class IrisBiomeDecorator
|
||||
KList<BlockData> blockData = new KList<>();
|
||||
for(String i : palette)
|
||||
{
|
||||
BlockData bx = BlockDataTools.getBlockData(i);
|
||||
BlockData bx = B.getBlockData(i);
|
||||
if(bx != null)
|
||||
{
|
||||
blockData.add(bx);
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.volmit.iris.object;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||
import com.volmit.iris.util.BlockDataTools;
|
||||
import com.volmit.iris.util.B;
|
||||
import com.volmit.iris.util.CNG;
|
||||
import com.volmit.iris.util.Desc;
|
||||
import com.volmit.iris.util.DontObfuscate;
|
||||
@@ -103,7 +103,7 @@ public class IrisBiomePaletteLayer
|
||||
KList<BlockData> blockData = new KList<>();
|
||||
for(String ix : palette)
|
||||
{
|
||||
BlockData bx = BlockDataTools.getBlockData(ix);
|
||||
BlockData bx = B.getBlockData(ix);
|
||||
if(bx != null)
|
||||
{
|
||||
blockData.add(bx);
|
||||
|
||||
@@ -2,8 +2,9 @@ package com.volmit.iris.object;
|
||||
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||
import com.volmit.iris.util.BlockDataTools;
|
||||
import com.volmit.iris.util.B;
|
||||
import com.volmit.iris.util.Desc;
|
||||
import com.volmit.iris.util.DontObfuscate;
|
||||
|
||||
@@ -22,8 +23,8 @@ public class IrisCompatabilityFilter
|
||||
@DontObfuscate
|
||||
private boolean exact = false;
|
||||
|
||||
private transient AtomicCache<BlockData> findData = new AtomicCache<>();
|
||||
private transient AtomicCache<BlockData> replaceData = new AtomicCache<>();
|
||||
private transient AtomicCache<BlockData> findData = new AtomicCache<>(true);
|
||||
private transient AtomicCache<BlockData> replaceData = new AtomicCache<>(true);
|
||||
|
||||
public IrisCompatabilityFilter(String when, String supplement)
|
||||
{
|
||||
@@ -44,11 +45,18 @@ public class IrisCompatabilityFilter
|
||||
|
||||
public BlockData getFind()
|
||||
{
|
||||
return findData.aquire(() -> BlockDataTools.getBlockData(when));
|
||||
return findData.aquire(() -> B.getBlockData(when));
|
||||
}
|
||||
|
||||
public BlockData getReplace()
|
||||
{
|
||||
return replaceData.aquire(() -> BlockDataTools.getBlockData(supplement));
|
||||
return replaceData.aquire(() ->
|
||||
{
|
||||
BlockData b = B.getBlockData(supplement);
|
||||
|
||||
Iris.warn("Compat: Using " + supplement + " in place of " + when + " since this server doesnt support '" + supplement + "'");
|
||||
|
||||
return b;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import org.bukkit.util.BlockVector;
|
||||
|
||||
import com.volmit.iris.gen.TerrainChunkGenerator;
|
||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||
import com.volmit.iris.util.BlockDataTools;
|
||||
import com.volmit.iris.util.B;
|
||||
import com.volmit.iris.util.Desc;
|
||||
import com.volmit.iris.util.DontObfuscate;
|
||||
import com.volmit.iris.util.KList;
|
||||
@@ -114,7 +114,7 @@ public class IrisDepositGenerator
|
||||
|
||||
for(String ix : palette)
|
||||
{
|
||||
BlockData bx = BlockDataTools.getBlockData(ix);
|
||||
BlockData bx = B.getBlockData(ix);
|
||||
|
||||
if(bx != null)
|
||||
{
|
||||
@@ -178,7 +178,7 @@ public class IrisDepositGenerator
|
||||
|
||||
BlockData b = data.getBlockData(nx, ny, nz);
|
||||
|
||||
if(b.getMaterial().equals(Material.ICE) || b.getMaterial().equals(Material.SAND) || b.getMaterial().equals(Material.RED_SAND) || !b.getMaterial().isSolid())
|
||||
if(b.getMaterial().equals(Material.ICE) || b.getMaterial().equals(Material.PACKED_ICE) || b.getMaterial().equals(B.mat("BLUE_ICE")) || b.getMaterial().equals(B.mat("FROSTED_ICE")) || b.getMaterial().equals(Material.SAND) || b.getMaterial().equals(Material.RED_SAND) || !b.getMaterial().isSolid())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import org.bukkit.util.BlockVector;
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.gen.PostBlockChunkGenerator;
|
||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||
import com.volmit.iris.util.BlockDataTools;
|
||||
import com.volmit.iris.util.B;
|
||||
import com.volmit.iris.util.CNG;
|
||||
import com.volmit.iris.util.ChunkPosition;
|
||||
import com.volmit.iris.util.Desc;
|
||||
@@ -250,15 +250,49 @@ public class IrisDimension extends IrisRegistrant
|
||||
});
|
||||
}
|
||||
|
||||
private KList<IrisCompatabilityFilter> getDefaultCompatability()
|
||||
public static KList<IrisCompatabilityFilter> getDefaultCompatability()
|
||||
{
|
||||
KList<IrisCompatabilityFilter> filters = new KList<>();
|
||||
|
||||
// Below 1.16
|
||||
// TODO MORE
|
||||
filters.add(new IrisCompatabilityFilter("WEEPING_VINES", "NETHER_FENCE"));
|
||||
filters.add(new IrisCompatabilityFilter("WEEPING_VINES_PLANT", "NETHER_FENCE"));
|
||||
filters.add(new IrisCompatabilityFilter("WARPED_WART_BLOCK", "NETHER_WART_BLOCK"));
|
||||
filters.add(new IrisCompatabilityFilter("TWISTING_VINES", "BAMBOO"));
|
||||
filters.add(new IrisCompatabilityFilter("TWISTING_VINES_PLANT", "BAMBOO"));
|
||||
filters.add(new IrisCompatabilityFilter("TARGET", "COBBLESTONE"));
|
||||
filters.add(new IrisCompatabilityFilter("SOUL_SOIL", "SOULSAND"));
|
||||
filters.add(new IrisCompatabilityFilter("SOUL_TORCH", "TORCH"));
|
||||
filters.add(new IrisCompatabilityFilter("SOUL_LANTERN", "LANTERN"));
|
||||
filters.add(new IrisCompatabilityFilter("SOUL_FIRE", "FIRE"));
|
||||
filters.add(new IrisCompatabilityFilter("SOUL_CAMPFIRE", "CAMPFIRE"));
|
||||
filters.add(new IrisCompatabilityFilter("SHROOMLIGHT", "GLOWSTONE"));
|
||||
filters.add(new IrisCompatabilityFilter("RESPAWN_ANCHOR", "OBSIDIAN"));
|
||||
filters.add(new IrisCompatabilityFilter("NETHER_SPROUTS", "RED_MUSHROOM"));
|
||||
filters.add(new IrisCompatabilityFilter("NETHER_GOLD_ORE", "GOLD_ORE"));
|
||||
filters.add(new IrisCompatabilityFilter("LODESTONE", "STONE"));
|
||||
filters.add(new IrisCompatabilityFilter("STRIPPED_WARPED_HYPHAE", "BROWN_MUSHROOM_BLOCK"));
|
||||
filters.add(new IrisCompatabilityFilter("STRIPPED_CRIMSON_HYPHAE", "RED_MUSHROOM_BLOCK"));
|
||||
filters.add(new IrisCompatabilityFilter("WARPED_HYPHAE", "MUSHROOM_STEM"));
|
||||
filters.add(new IrisCompatabilityFilter("CRIMSON_HYPHAE", "RED_MUSHROOM_BLOCK"));
|
||||
filters.add(new IrisCompatabilityFilter("GILDED_BLACKSTONE", "COBBLESTONE"));
|
||||
filters.add(new IrisCompatabilityFilter("CRYING_OBSIDIAN", "OBSIDIAN"));
|
||||
filters.add(new IrisCompatabilityFilter("STRIPPED_WARPED_STEM", "MUSHROOM_STEM"));
|
||||
filters.add(new IrisCompatabilityFilter("STRIPPED_CRIMSON_STEM", "MUSHROOM_STEM"));
|
||||
filters.add(new IrisCompatabilityFilter("WARPED_STEM", "MUSHROOM_STEM"));
|
||||
filters.add(new IrisCompatabilityFilter("CRIMSON_STEM", "MUSHROOM_STEM"));
|
||||
filters.add(new IrisCompatabilityFilter("CRIMSON_ROOTS", "RED_MUSHROOM"));
|
||||
filters.add(new IrisCompatabilityFilter("WARPED_ROOTS", "BROWN_MUSHROOM"));
|
||||
filters.add(new IrisCompatabilityFilter("CRIMSON_PLANKS", "OAK_PLANKS"));
|
||||
filters.add(new IrisCompatabilityFilter("WARPED_PLANKS", "OAK_PLANKS"));
|
||||
filters.add(new IrisCompatabilityFilter("WARPED_NYLIUM", "MYCELIUM"));
|
||||
filters.add(new IrisCompatabilityFilter("CRIMSON_NYLIUM", "MYCELIUM"));
|
||||
filters.add(new IrisCompatabilityFilter("WARPED_FUNGUS", "BROWN_MUSHROOM"));
|
||||
filters.add(new IrisCompatabilityFilter("CRIMSON_FUNGUS", "RED_MUSHROOM"));
|
||||
filters.add(new IrisCompatabilityFilter("CRACKED_NETHER_BRICKS", "NETHER_BRICKS"));
|
||||
filters.add(new IrisCompatabilityFilter("CHISELED_NETHER_BRICKS", "NETHER_BRICKS"));
|
||||
filters.add(new IrisCompatabilityFilter("NETHER_FENCE", "LEGACY_NETHER_FENCE"));
|
||||
filters.add(new IrisCompatabilityFilter("CHAIN", "LEGACY_NETHER_FENCE"));
|
||||
filters.add(new IrisCompatabilityFilter("CHAIN", "IRON_BARS"));
|
||||
filters.add(new IrisCompatabilityFilter("NETHERITE_BLOCK", "QUARTZ_BLOCK"));
|
||||
filters.add(new IrisCompatabilityFilter("BLACKSTONE", "COBBLESTONE"));
|
||||
filters.add(new IrisCompatabilityFilter("BASALT", "STONE"));
|
||||
@@ -272,6 +306,7 @@ public class IrisDimension extends IrisRegistrant
|
||||
|
||||
// Below 1.14
|
||||
filters.add(new IrisCompatabilityFilter("GRANITE_WALL", "COBBLESTONE_WALL"));
|
||||
filters.add(new IrisCompatabilityFilter("BLUE_ICE", "PACKED_ICE"));
|
||||
filters.add(new IrisCompatabilityFilter("DIORITE_WALL", "COBBLESTONE_WALL"));
|
||||
filters.add(new IrisCompatabilityFilter("ANDESITE_WALL", "COBBLESTONE_WALL"));
|
||||
filters.add(new IrisCompatabilityFilter("SWEET_BERRY_BUSH", "GRASS"));
|
||||
@@ -351,7 +386,6 @@ public class IrisDimension extends IrisRegistrant
|
||||
filters.add(new IrisCompatabilityFilter("BAMBOO", "BIRCH_FENCE"));
|
||||
filters.add(new IrisCompatabilityFilter("BAMBOO_SAPLING", "BIRCH_SAPLING"));
|
||||
filters.add(new IrisCompatabilityFilter("POTTED_BAMBOO", "POTTED_BIRCH_SAPLING"));
|
||||
filters.add(new IrisCompatabilityFilter("*", "STONE"));
|
||||
|
||||
return filters;
|
||||
}
|
||||
@@ -370,9 +404,6 @@ public class IrisDimension extends IrisRegistrant
|
||||
{
|
||||
KList<IrisPostProcessor> p = new KList<IrisPostProcessor>();
|
||||
|
||||
p.add(new IrisPostProcessor("nib-smoother"));
|
||||
p.add(new IrisPostProcessor("floating-block-remover"));
|
||||
p.add(new IrisPostProcessor("pothole-filler"));
|
||||
p.add(new IrisPostProcessor("wall-painter"));
|
||||
p.add(new IrisPostProcessor("slabber"));
|
||||
p.add(new IrisPostProcessor("waterlogger", 1));
|
||||
@@ -430,7 +461,7 @@ public class IrisDimension extends IrisRegistrant
|
||||
KList<BlockData> rockData = new KList<>();
|
||||
for(String ix : rockPalette)
|
||||
{
|
||||
BlockData bx = BlockDataTools.getBlockData(ix);
|
||||
BlockData bx = B.getBlockData(ix);
|
||||
if(bx != null)
|
||||
{
|
||||
rockData.add(bx);
|
||||
@@ -491,7 +522,7 @@ public class IrisDimension extends IrisRegistrant
|
||||
KList<BlockData> fluidData = new KList<>();
|
||||
for(String ix : fluidPalette)
|
||||
{
|
||||
BlockData bx = BlockDataTools.getBlockData(ix);
|
||||
BlockData bx = B.getBlockData(ix);
|
||||
if(bx != null)
|
||||
{
|
||||
fluidData.add(bx);
|
||||
@@ -610,4 +641,17 @@ public class IrisDimension extends IrisRegistrant
|
||||
return new ChunkPosition(x, z);
|
||||
});
|
||||
}
|
||||
|
||||
public BlockData resolve(String bd)
|
||||
{
|
||||
for(IrisCompatabilityFilter i : getCompatability())
|
||||
{
|
||||
if(i.getWhen().equalsIgnoreCase(bd))
|
||||
{
|
||||
return i.getReplace();
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ import org.bukkit.block.data.BlockData;
|
||||
import org.bukkit.block.data.type.Leaves;
|
||||
import org.bukkit.util.BlockVector;
|
||||
|
||||
import com.volmit.iris.util.BlockDataTools;
|
||||
import com.volmit.iris.util.B;
|
||||
import com.volmit.iris.util.ChunkPosition;
|
||||
import com.volmit.iris.util.IObjectPlacer;
|
||||
import com.volmit.iris.util.KMap;
|
||||
@@ -29,8 +29,8 @@ import lombok.EqualsAndHashCode;
|
||||
public class IrisObject extends IrisRegistrant
|
||||
{
|
||||
private static final Material SNOW = Material.SNOW;
|
||||
private static final BlockData AIR = BlockDataTools.getBlockData("CAVE_AIR");
|
||||
private static final BlockData[] SNOW_LAYERS = new BlockData[] {BlockDataTools.getBlockData("minecraft:snow[layers=1]"), BlockDataTools.getBlockData("minecraft:snow[layers=2]"), BlockDataTools.getBlockData("minecraft:snow[layers=3]"), BlockDataTools.getBlockData("minecraft:snow[layers=4]"), BlockDataTools.getBlockData("minecraft:snow[layers=5]"), BlockDataTools.getBlockData("minecraft:snow[layers=6]"), BlockDataTools.getBlockData("minecraft:snow[layers=7]"), BlockDataTools.getBlockData("minecraft:snow[layers=8]")};
|
||||
private static final BlockData AIR = B.getBlockData("CAVE_AIR");
|
||||
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]")};
|
||||
private KMap<BlockVector, BlockData> blocks;
|
||||
private int w;
|
||||
private int d;
|
||||
@@ -66,7 +66,7 @@ public class IrisObject extends IrisRegistrant
|
||||
|
||||
for(int i = 0; i < s; i++)
|
||||
{
|
||||
blocks.put(new BlockVector(din.readShort(), din.readShort(), din.readShort()), BlockDataTools.getBlockData(din.readUTF()));
|
||||
blocks.put(new BlockVector(din.readShort(), din.readShort(), din.readShort()), B.getBlockData(din.readUTF()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.volmit.iris.object;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||
import com.volmit.iris.util.BlockDataTools;
|
||||
import com.volmit.iris.util.B;
|
||||
import com.volmit.iris.util.Desc;
|
||||
import com.volmit.iris.util.DontObfuscate;
|
||||
|
||||
@@ -32,11 +32,11 @@ public class IrisObjectReplace
|
||||
|
||||
public BlockData getFind()
|
||||
{
|
||||
return findData.aquire(() -> BlockDataTools.getBlockData(find));
|
||||
return findData.aquire(() -> B.getBlockData(find));
|
||||
}
|
||||
|
||||
public BlockData getReplace()
|
||||
{
|
||||
return replaceData.aquire(() -> BlockDataTools.getBlockData(replace));
|
||||
return replaceData.aquire(() -> B.getBlockData(replace));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user