9
0
mirror of https://github.com/VolmitSoftware/Iris.git synced 2026-01-04 15:41:30 +00:00

REMOVE FBD

This commit is contained in:
Daniel Mills
2020-10-28 01:28:52 -04:00
parent f1856afa77
commit 6ff583a916
44 changed files with 491 additions and 425 deletions

View File

@@ -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)
{

View File

@@ -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();

View File

@@ -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);

View File

@@ -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

View File

@@ -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);
}

View File

@@ -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))));
}
}
}