9
0
mirror of https://github.com/VolmitSoftware/Iris.git synced 2025-12-29 20:19:06 +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

@@ -5,17 +5,36 @@ import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
import com.volmit.iris.Iris;
import com.volmit.iris.object.IrisDimension;
public class BlockDataTools
public class B
{
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 IrisDimension defaultCompat = new IrisDimension();
public static BlockData get(String bd)
{
return getBlockData(bd);
}
public static Material mat(String bd)
{
return getBlockData(bd).getMaterial();
}
public static BlockData getBlockData(String bd)
{
return getBlockData(bd, defaultCompat);
}
public static BlockData getBlockData(String bdxf, IrisDimension resolver)
{
try
{
String bd = bdxf.trim();
if(bdc.containsKey(bd))
{
return bdc.get(bd).clone();
@@ -23,6 +42,11 @@ public class BlockDataTools
BlockData bdx = parseBlockData(bd);
if(bdx == null)
{
bdx = resolver.resolve(bd);
}
if(bdx == null)
{
Iris.warn("Unknown Block Data '" + bd + "'");
@@ -37,7 +61,7 @@ public class BlockDataTools
catch(Throwable e)
{
Iris.warn("Unknown Block Data '" + bd + "'");
Iris.warn("Unknown Block Data '" + bdxf + "'");
}
return AIR;
@@ -86,7 +110,7 @@ public class BlockDataTools
public static boolean isLit(Material mat)
{
if(mat.equals(Material.GLOWSTONE) || mat.equals(Material.TORCH) || mat.equals(Material.REDSTONE_TORCH) || mat.equals(Material.SOUL_TORCH) || mat.equals(Material.REDSTONE_WALL_TORCH) || mat.equals(Material.WALL_TORCH) || mat.equals(Material.SOUL_WALL_TORCH) || mat.equals(Material.LANTERN) || mat.equals(Material.JACK_O_LANTERN) || mat.equals(Material.REDSTONE_LAMP) || mat.equals(Material.MAGMA_BLOCK) || mat.equals(Material.SEA_LANTERN) || mat.equals(Material.SOUL_LANTERN) || mat.equals(Material.FIRE) || mat.equals(Material.SOUL_FIRE) || mat.equals(Material.SEA_PICKLE) || mat.equals(Material.BREWING_STAND) || mat.equals(Material.REDSTONE_ORE))
if(mat.equals(B.mat("GLOWSTONE")) || mat.equals(B.mat("TORCH")) || mat.equals(Material.REDSTONE_TORCH) || mat.equals(B.mat("SOUL_TORCH")) || mat.equals(Material.REDSTONE_WALL_TORCH) || mat.equals(Material.WALL_TORCH) || mat.equals(B.mat("SOUL_WALL_TORCH")) || mat.equals(B.mat("LANTERN")) || mat.equals(Material.JACK_O_LANTERN) || mat.equals(Material.REDSTONE_LAMP) || mat.equals(Material.MAGMA_BLOCK) || mat.equals(B.mat("SEA_LANTERN")) || mat.equals(B.mat("SOUL_LANTERN")) || mat.equals(Material.FIRE) || mat.equals(B.mat("SOUL_FIRE")) || mat.equals(B.mat("SEA_PICKLE")) || mat.equals(Material.BREWING_STAND) || mat.equals(Material.REDSTONE_ORE))
{
return true;
}
@@ -96,7 +120,7 @@ public class BlockDataTools
public static boolean canPlaceOnto(Material mat, Material onto)
{
if(onto.equals(Material.AIR) || onto.equals(Material.CAVE_AIR))
if(onto.equals(Material.AIR) || onto.equals(B.mat("CAVE_AIR")))
{
return false;
}
@@ -114,9 +138,9 @@ public class BlockDataTools
}
}
if(onto.equals(Material.STONE) || onto.equals(Material.GRAVEL) || onto.equals(Material.GRAVEL) || onto.equals(Material.ANDESITE) || onto.equals(Material.GRANITE) || onto.equals(Material.DIORITE) || onto.equals(Material.BLACKSTONE) || onto.equals(Material.BASALT))
if(onto.equals(Material.STONE) || onto.equals(Material.GRAVEL) || onto.equals(Material.GRAVEL) || onto.equals(Material.ANDESITE) || onto.equals(Material.GRANITE) || onto.equals(Material.DIORITE) || onto.equals(B.mat("BLACKSTONE")) || onto.equals(B.mat("BASALT")))
{
if(mat.equals(Material.POPPY) || mat.equals(Material.DANDELION) || mat.equals(Material.CORNFLOWER) || mat.equals(Material.ORANGE_TULIP) || mat.equals(Material.PINK_TULIP) || mat.equals(Material.RED_TULIP) || mat.equals(Material.WHITE_TULIP) || mat.equals(Material.FERN) || mat.equals(Material.LARGE_FERN) || mat.equals(Material.GRASS) || mat.equals(Material.TALL_GRASS))
if(mat.equals(Material.POPPY) || mat.equals(Material.DANDELION) || mat.equals(B.mat("CORNFLOWER")) || mat.equals(Material.ORANGE_TULIP) || mat.equals(Material.PINK_TULIP) || mat.equals(Material.RED_TULIP) || mat.equals(Material.WHITE_TULIP) || mat.equals(Material.FERN) || mat.equals(Material.LARGE_FERN) || mat.equals(Material.GRASS) || mat.equals(Material.TALL_GRASS))
{
return false;
}
@@ -138,7 +162,7 @@ public class BlockDataTools
//@builder
return m.equals(Material.GRASS)
|| m.equals(Material.TALL_GRASS)
|| m.equals(Material.CORNFLOWER)
|| m.equals(B.mat("CORNFLOWER"))
|| m.equals(Material.SUNFLOWER)
|| m.equals(Material.CHORUS_FLOWER)
|| m.equals(Material.POPPY)
@@ -150,44 +174,44 @@ public class BlockDataTools
|| m.equals(Material.WHITE_TULIP)
|| m.equals(Material.LILAC)
|| m.equals(Material.DEAD_BUSH)
|| m.equals(Material.SWEET_BERRY_BUSH)
|| m.equals(B.mat("SWEET_BERRY_BUSH"))
|| m.equals(Material.ROSE_BUSH)
|| m.equals(Material.WITHER_ROSE)
|| m.equals(B.mat("WITHER_ROSE"))
|| m.equals(Material.ALLIUM)
|| m.equals(Material.BLUE_ORCHID)
|| m.equals(Material.LILY_OF_THE_VALLEY)
|| m.equals(Material.CRIMSON_FUNGUS)
|| m.equals(Material.WARPED_FUNGUS)
|| m.equals(B.mat("LILY_OF_THE_VALLEY"))
|| m.equals(B.mat("CRIMSON_FUNGUS"))
|| m.equals(B.mat("WARPED_FUNGUS"))
|| m.equals(Material.RED_MUSHROOM)
|| m.equals(Material.BROWN_MUSHROOM)
|| m.equals(Material.CRIMSON_ROOTS)
|| m.equals(Material.AZURE_BLUET)
|| m.equals(Material.WEEPING_VINES)
|| m.equals(Material.WEEPING_VINES_PLANT)
|| m.equals(Material.WARPED_ROOTS)
|| m.equals(Material.NETHER_SPROUTS)
|| m.equals(Material.TWISTING_VINES)
|| m.equals(Material.TWISTING_VINES_PLANT)
|| 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.equals(Material.SUGAR_CANE)
|| m.equals(Material.WHEAT)
|| m.equals(Material.POTATOES)
|| m.equals(Material.CARROTS)
|| m.equals(Material.BEETROOTS)
|| m.equals(Material.NETHER_WART)
|| m.equals(Material.SEA_PICKLE)
|| m.equals(Material.SEAGRASS)
|| m.equals(Material.ACACIA_BUTTON)
|| m.equals(Material.BIRCH_BUTTON)
|| m.equals(Material.CRIMSON_BUTTON)
|| m.equals(Material.DARK_OAK_BUTTON)
|| m.equals(Material.JUNGLE_BUTTON)
|| m.equals(Material.OAK_BUTTON)
|| m.equals(Material.POLISHED_BLACKSTONE_BUTTON)
|| m.equals(Material.SPRUCE_BUTTON)
|| m.equals(Material.STONE_BUTTON)
|| m.equals(Material.WARPED_BUTTON)
|| 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.equals(Material.TORCH)
|| m.equals(Material.SOUL_TORCH);
|| m.equals(B.mat("SOUL_TORCH"));
//@done
}
}

View File

@@ -1,5 +1,6 @@
package com.volmit.iris.util;
@SuppressWarnings("hiding")
@FunctionalInterface
public interface Consumer2<A, B>
{

View File

@@ -1,5 +1,6 @@
package com.volmit.iris.util;
@SuppressWarnings("hiding")
@FunctionalInterface
public interface Consumer3<A, B, C>
{

View File

@@ -1,5 +1,6 @@
package com.volmit.iris.util;
@SuppressWarnings("hiding")
@FunctionalInterface
public interface Function2<A, B, R>
{

View File

@@ -1,5 +1,6 @@
package com.volmit.iris.util;
@SuppressWarnings("hiding")
@FunctionalInterface
public interface Function3<A, B, C, R>
{

View File

@@ -1,5 +1,6 @@
package com.volmit.iris.util;
@SuppressWarnings("hiding")
@FunctionalInterface
public interface Function4<A, B, C, D, R>
{