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