diff --git a/common/src/main/java/net/blay09/mods/kleeslabs/BlockBreakHandler.java b/common/src/main/java/net/blay09/mods/kleeslabs/BlockBreakHandler.java index a95053c..9f69235 100644 --- a/common/src/main/java/net/blay09/mods/kleeslabs/BlockBreakHandler.java +++ b/common/src/main/java/net/blay09/mods/kleeslabs/BlockBreakHandler.java @@ -2,8 +2,10 @@ import net.blay09.mods.balm.api.Balm; import net.blay09.mods.balm.api.event.BreakBlockEvent; -import net.blay09.mods.kleeslabs.converter.SlabConverter; +import net.blay09.mods.kleeslabs.converter.HorizontalSlabConverter; +import net.blay09.mods.kleeslabs.converter.VerticalSlabConverter; import net.blay09.mods.kleeslabs.registry.SlabRegistry; +import net.minecraft.core.Direction; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.item.Item; @@ -28,7 +30,8 @@ public static void onBreakBlock(BreakBlockEvent event) { } BlockHitResult rayTraceResult = rayTrace(event.getPlayer(), Balm.getHooks().getBlockReachDistance(event.getPlayer())); - Vec3 hitVec = rayTraceResult.getType() == BlockHitResult.Type.BLOCK ? rayTraceResult.getLocation() : null; + final var hitSide = rayTraceResult.getDirection(); + var hitVec = rayTraceResult.getType() == BlockHitResult.Type.BLOCK ? rayTraceResult.getLocation() : null; // Relativize the hit vector around the player position if (hitVec != null) { @@ -36,22 +39,39 @@ public static void onBreakBlock(BreakBlockEvent event) { } BlockState state = event.getState(); - SlabConverter slabConverter = SlabRegistry.getSlabConverter(state); + final var slabConverter = SlabRegistry.getSlabConverter(state); if (slabConverter == null || !slabConverter.isDoubleSlab(state)) { return; } + SlabType hit; SlabType stay; - if (hitVec != null && hitVec.y > 0.5f) { - hit = SlabType.TOP; - stay = SlabType.BOTTOM; + BlockState dropState; + BlockState newState; + + if (slabConverter instanceof HorizontalSlabConverter horizontalSlabConverter) { + if (hitVec != null && hitVec.y > 0.5f) { + hit = SlabType.TOP; + stay = SlabType.BOTTOM; + } else { + stay = SlabType.TOP; + hit = SlabType.BOTTOM; + } + + dropState = horizontalSlabConverter.getSingleSlab(event.getState(), event.getLevel(), event.getPos(), event.getPlayer(), hit); + newState = horizontalSlabConverter.getSingleSlab(event.getState(), event.getLevel(), event.getPos(), event.getPlayer(), stay); + } else if (slabConverter instanceof VerticalSlabConverter verticalSlabConverter) { + if (hitSide.getAxis() != Direction.Axis.Y) { + dropState = verticalSlabConverter.getSingleSlab(event.getState(), event.getLevel(), event.getPos(), event.getPlayer(), hitSide.getOpposite()); + newState = verticalSlabConverter.getSingleSlab(event.getState(), event.getLevel(), event.getPos(), event.getPlayer(), hitSide); + } else { + return; + } } else { - stay = SlabType.TOP; - hit = SlabType.BOTTOM; + return; } - BlockState dropState = slabConverter.getSingleSlab(event.getState(), event.getLevel(), event.getPos(), event.getPlayer(), hit); Level level = event.getLevel(); if (!level.isClientSide() && event.getPlayer().hasCorrectToolForDrops(dropState) && !event.getPlayer().getAbilities().instabuild) { Item slabItem = Item.byBlock(dropState.getBlock()); @@ -61,13 +81,16 @@ public static void onBreakBlock(BreakBlockEvent event) { double xOffset = level.getRandom().nextFloat() * scale + 1f - scale * 0.5; double yOffset = level.getRandom().nextFloat() * scale + 1f - scale * 0.5; double zOffset = level.getRandom().nextFloat() * scale + 1f - scale * 0.5; - ItemEntity entityItem = new ItemEntity(level, event.getPos().getX() + xOffset, event.getPos().getY() + yOffset, event.getPos().getZ() + zOffset, itemStack); + ItemEntity entityItem = new ItemEntity(level, + event.getPos().getX() + xOffset, + event.getPos().getY() + yOffset, + event.getPos().getZ() + zOffset, + itemStack); entityItem.setPickUpDelay(10); level.addFreshEntity(entityItem); } } - BlockState newState = slabConverter.getSingleSlab(event.getState(), event.getLevel(), event.getPos(), event.getPlayer(), stay); event.getLevel().setBlock(event.getPos(), newState, 1 | 2); event.setCanceled(true); } diff --git a/common/src/main/java/net/blay09/mods/kleeslabs/KleeSlabs.java b/common/src/main/java/net/blay09/mods/kleeslabs/KleeSlabs.java index 861f523..2f9b8c0 100644 --- a/common/src/main/java/net/blay09/mods/kleeslabs/KleeSlabs.java +++ b/common/src/main/java/net/blay09/mods/kleeslabs/KleeSlabs.java @@ -3,21 +3,14 @@ import net.blay09.mods.balm.api.Balm; import net.blay09.mods.balm.api.event.BreakBlockEvent; import net.blay09.mods.balm.api.event.PlayerLoginEvent; -import net.blay09.mods.balm.api.event.client.ClientStartedEvent; import net.blay09.mods.balm.api.event.server.ServerStartedEvent; -import net.blay09.mods.kleeslabs.network.KleeSlabsRegistryMessage; import net.blay09.mods.kleeslabs.network.ModNetworking; -import net.blay09.mods.kleeslabs.registry.SlabRegistry; -import net.blay09.mods.kleeslabs.registry.SlabRegistryData; import net.blay09.mods.kleeslabs.registry.json.JsonCompatLoader; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.player.Player; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import java.util.ArrayList; -import java.util.List; - public class KleeSlabs { public static final String MOD_ID = "kleeslabs"; diff --git a/common/src/main/java/net/blay09/mods/kleeslabs/SlabDumpHandler.java b/common/src/main/java/net/blay09/mods/kleeslabs/SlabDumpHandler.java index 94e3987..7f077c5 100644 --- a/common/src/main/java/net/blay09/mods/kleeslabs/SlabDumpHandler.java +++ b/common/src/main/java/net/blay09/mods/kleeslabs/SlabDumpHandler.java @@ -21,18 +21,31 @@ public static void onServerStarted(ServerStartedEvent event) { } public static void dumpSlabs() { - Map> slabsByMod = BuiltInRegistries.BLOCK.keySet() + final var slabsByMod = BuiltInRegistries.BLOCK.keySet() .stream() .filter(itemName -> itemName.getPath().endsWith("_slab") && !itemName.getPath().contains("vertical")) .collect(Collectors.groupingBy(ResourceLocation::getNamespace)); + final var verticalSlabsByMod = BuiltInRegistries.BLOCK.keySet() + .stream() + .filter(itemName -> itemName.getPath().endsWith("_slab") && itemName.getPath().contains("vertical")) + .collect(Collectors.groupingBy(ResourceLocation::getNamespace)); - for (Map.Entry> slabs : slabsByMod.entrySet()) { - String slabsOutput = slabs.getValue().stream() + for (final var slabs : slabsByMod.entrySet()) { + final var slabsOutput = slabs.getValue().stream() .map(ResourceLocation::getPath) .map(it -> "\"" + it + "\"") .sorted() .collect(Collectors.joining(",\n")); log.info("Slabs from mod {}:\n{}", slabs.getKey(), slabsOutput); } + + for (final var verticalSlabs : verticalSlabsByMod.entrySet()) { + final var slabsOutput = verticalSlabs.getValue().stream() + .map(ResourceLocation::getPath) + .map(it -> "\"" + it + "\"") + .sorted() + .collect(Collectors.joining(",\n")); + log.info("Vertical slabs from mod {}:\n{}", verticalSlabs.getKey(), slabsOutput); + } } } diff --git a/common/src/main/java/net/blay09/mods/kleeslabs/client/KleeSlabsClient.java b/common/src/main/java/net/blay09/mods/kleeslabs/client/KleeSlabsClient.java index 597cf78..dea82b6 100644 --- a/common/src/main/java/net/blay09/mods/kleeslabs/client/KleeSlabsClient.java +++ b/common/src/main/java/net/blay09/mods/kleeslabs/client/KleeSlabsClient.java @@ -5,7 +5,7 @@ import net.blay09.mods.balm.api.Balm; import net.blay09.mods.balm.api.event.client.BlockHighlightDrawEvent; import net.blay09.mods.kleeslabs.KleeSlabs; -import net.blay09.mods.kleeslabs.converter.SlabConverter; +import net.blay09.mods.kleeslabs.converter.HorizontalSlabConverter; import net.blay09.mods.kleeslabs.registry.SlabRegistry; import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; @@ -40,8 +40,8 @@ private static void onDrawBlockHighlight(BlockHighlightDrawEvent event) { BlockPos pos = hitResult.getBlockPos(); BlockState state = player.level().getBlockState(pos); - SlabConverter slabConverter = SlabRegistry.getSlabConverter(state); - if (slabConverter != null && slabConverter.isDoubleSlab(state)) { + final var slabConverter = SlabRegistry.getSlabConverter(state); + if (slabConverter instanceof HorizontalSlabConverter && slabConverter.isDoubleSlab(state)) { AABB halfAABB = new AABB(pos.getX(), pos.getY(), pos.getZ(), pos.getX() + 1, pos.getY() + 0.5, pos.getZ() + 1); if (hitResult.getLocation().y - (double) pos.getY() > 0.5) { halfAABB = halfAABB.move(0, 0.5, 0); diff --git a/common/src/main/java/net/blay09/mods/kleeslabs/converter/DefaultSlabConverter.java b/common/src/main/java/net/blay09/mods/kleeslabs/converter/DefaultSlabConverter.java index 4f34468..49a0a48 100644 --- a/common/src/main/java/net/blay09/mods/kleeslabs/converter/DefaultSlabConverter.java +++ b/common/src/main/java/net/blay09/mods/kleeslabs/converter/DefaultSlabConverter.java @@ -7,7 +7,7 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.SlabType; -public class DefaultSlabConverter implements SlabConverter { +public class DefaultSlabConverter implements HorizontalSlabConverter { public static final SlabConverter INSTANCE = new DefaultSlabConverter(); diff --git a/common/src/main/java/net/blay09/mods/kleeslabs/converter/HorizontalSlabConverter.java b/common/src/main/java/net/blay09/mods/kleeslabs/converter/HorizontalSlabConverter.java new file mode 100644 index 0000000..ae74dc9 --- /dev/null +++ b/common/src/main/java/net/blay09/mods/kleeslabs/converter/HorizontalSlabConverter.java @@ -0,0 +1,11 @@ +package net.blay09.mods.kleeslabs.converter; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.SlabType; + +public interface HorizontalSlabConverter extends SlabConverter { + BlockState getSingleSlab(BlockState state, Level level, BlockPos pos, Player player, SlabType slabType); +} diff --git a/common/src/main/java/net/blay09/mods/kleeslabs/converter/QuarkVerticalSlabConverter.java b/common/src/main/java/net/blay09/mods/kleeslabs/converter/QuarkVerticalSlabConverter.java new file mode 100644 index 0000000..5f394ea --- /dev/null +++ b/common/src/main/java/net/blay09/mods/kleeslabs/converter/QuarkVerticalSlabConverter.java @@ -0,0 +1,46 @@ +package net.blay09.mods.kleeslabs.converter; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.util.StringRepresentable; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.Property; + +import java.util.Optional; + +public class QuarkVerticalSlabConverter implements VerticalSlabConverter { + + @Override + public BlockState getSingleSlab(BlockState state, Level level, BlockPos pos, Player player, Direction direction) { + if (direction.getAxis() == Direction.Axis.Y) { + return state; + } + + return locateProperty(state, "type") + .flatMap(property -> withLocateValue(state, property, direction.getSerializedName())) + .orElse(state); + } + + private > Optional withLocateValue(BlockState state, Property property, String valueName) { + return property.getValue(valueName).map(value -> state.setValue(property, value)); + } + + private Optional> locateProperty(BlockState state, String name) { + for (final var property : state.getProperties()) { + if (property.getName().equals(name) && StringRepresentable.class.isAssignableFrom(property.getValueClass())) { + return Optional.of(property); + } + } + return Optional.empty(); + } + + @Override + public boolean isDoubleSlab(BlockState state) { + return locateProperty(state, "type").map(state::getValue) + .map(value -> ((StringRepresentable) value).getSerializedName()) + .map(name -> name.equals("double")) + .orElse(false); + } +} diff --git a/common/src/main/java/net/blay09/mods/kleeslabs/converter/SimpleSlabConverter.java b/common/src/main/java/net/blay09/mods/kleeslabs/converter/SimpleSlabConverter.java deleted file mode 100644 index a538466..0000000 --- a/common/src/main/java/net/blay09/mods/kleeslabs/converter/SimpleSlabConverter.java +++ /dev/null @@ -1,25 +0,0 @@ -package net.blay09.mods.kleeslabs.converter; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.BlockStateProperties; -import net.minecraft.world.level.block.state.properties.SlabType; - -@Deprecated -public class SimpleSlabConverter implements SlabConverter { - - private final Block singleSlab; - - public SimpleSlabConverter(Block singleSlab) { - this.singleSlab = singleSlab; - } - - @Override - public BlockState getSingleSlab(BlockState state, Level level, BlockPos pos, Player player, SlabType slabType) { - return singleSlab.defaultBlockState().setValue(BlockStateProperties.SLAB_TYPE, slabType); - } - -} diff --git a/common/src/main/java/net/blay09/mods/kleeslabs/converter/SlabConverter.java b/common/src/main/java/net/blay09/mods/kleeslabs/converter/SlabConverter.java index b5b867f..1095d5d 100644 --- a/common/src/main/java/net/blay09/mods/kleeslabs/converter/SlabConverter.java +++ b/common/src/main/java/net/blay09/mods/kleeslabs/converter/SlabConverter.java @@ -1,16 +1,7 @@ package net.blay09.mods.kleeslabs.converter; -import net.minecraft.core.BlockPos; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.SlabType; public interface SlabConverter { - BlockState getSingleSlab(BlockState state, Level level, BlockPos pos, Player player, SlabType slabType); - - default boolean isDoubleSlab(BlockState state) { - return true; - } - + boolean isDoubleSlab(BlockState state); } diff --git a/common/src/main/java/net/blay09/mods/kleeslabs/converter/SmartSlabConverter.java b/common/src/main/java/net/blay09/mods/kleeslabs/converter/SmartSlabConverter.java index f6e5f11..19516a4 100644 --- a/common/src/main/java/net/blay09/mods/kleeslabs/converter/SmartSlabConverter.java +++ b/common/src/main/java/net/blay09/mods/kleeslabs/converter/SmartSlabConverter.java @@ -3,24 +3,16 @@ import net.minecraft.core.BlockPos; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.Property; import net.minecraft.world.level.block.state.properties.SlabType; @Deprecated -public class SmartSlabConverter implements SlabConverter { - - private final Block singleSlab; - - public SmartSlabConverter(Block singleSlab) { - this.singleSlab = singleSlab; - } - +public class SmartSlabConverter implements HorizontalSlabConverter { @Override public BlockState getSingleSlab(BlockState state, Level level, BlockPos pos, Player player, SlabType slabType) { - BlockState newState = singleSlab.defaultBlockState(); + BlockState newState = state.getBlock().defaultBlockState(); for (Property property : state.getProperties()) { if (newState.getProperties().contains(property)) { newState = copyProperty(state, newState, property); diff --git a/common/src/main/java/net/blay09/mods/kleeslabs/converter/SmarterSlabConverter.java b/common/src/main/java/net/blay09/mods/kleeslabs/converter/SmarterSlabConverter.java deleted file mode 100644 index f3ffea8..0000000 --- a/common/src/main/java/net/blay09/mods/kleeslabs/converter/SmarterSlabConverter.java +++ /dev/null @@ -1,67 +0,0 @@ -package net.blay09.mods.kleeslabs.converter; - -import net.minecraft.core.BlockPos; -import net.minecraft.util.StringRepresentable; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.Property; -import net.minecraft.world.level.block.state.properties.SlabType; - -import java.util.Optional; - -@Deprecated -public class SmarterSlabConverter implements SlabConverter { - - private Block slabBlock; - - public SmarterSlabConverter(Block slabBlock) { - this.slabBlock = slabBlock; - } - - @Override - public BlockState getSingleSlab(BlockState state, Level level, BlockPos pos, Player player, SlabType slabType) { - BlockState newState = slabBlock.defaultBlockState(); - for (Property property : state.getProperties()) { - if (property.getName().equals("half")) { - newState = getHalfBlockState(newState, property, slabType); - } else { - newState = copyProperty(state, newState, property); - } - } - - return newState; - } - - @Override - public boolean isDoubleSlab(BlockState state) { - for (Property property : state.getProperties()) { - if (property.getName().equals("half")) { - StringRepresentable value = (StringRepresentable) state.getValue(property); - if (value.getSerializedName().equals("full")) { - return true; - } - } - } - - return false; - } - - private > BlockState copyProperty(BlockState sourceState, BlockState targetState, Property property) { - return targetState.setValue(property, sourceState.getValue(property)); - } - - private > BlockState getHalfBlockState(BlockState state, Property property, SlabType slabType) { - Optional parsedValue = Optional.empty(); - if (slabType == SlabType.BOTTOM) { - parsedValue = property.getValue("bottom"); - } else if (slabType == SlabType.TOP) { - parsedValue = property.getValue("top"); - } - - return parsedValue.map(t -> state.setValue(property, t)).orElse(state); - - } - -} diff --git a/common/src/main/java/net/blay09/mods/kleeslabs/converter/VerticalSlabConverter.java b/common/src/main/java/net/blay09/mods/kleeslabs/converter/VerticalSlabConverter.java new file mode 100644 index 0000000..73c0651 --- /dev/null +++ b/common/src/main/java/net/blay09/mods/kleeslabs/converter/VerticalSlabConverter.java @@ -0,0 +1,11 @@ +package net.blay09.mods.kleeslabs.converter; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; + +public interface VerticalSlabConverter extends SlabConverter { + BlockState getSingleSlab(BlockState state, Level level, BlockPos pos, Player player, Direction direction); +} diff --git a/common/src/main/java/net/blay09/mods/kleeslabs/registry/SlabRegistry.java b/common/src/main/java/net/blay09/mods/kleeslabs/registry/SlabRegistry.java index fd731a6..494729f 100644 --- a/common/src/main/java/net/blay09/mods/kleeslabs/registry/SlabRegistry.java +++ b/common/src/main/java/net/blay09/mods/kleeslabs/registry/SlabRegistry.java @@ -25,12 +25,12 @@ public static void registerSlabConverter(Block doubleSlab, SlabConverter convert public static void registerSlab(SlabRegistryData data) { try { - Constructor constructor = data.getConverterClass().getConstructor(Block.class); - SlabConverter converter = (SlabConverter) constructor.newInstance(data.getSingleSlab()); + Constructor constructor = data.getConverterClass().getConstructor(); + final var converter = (SlabConverter) constructor.newInstance(); registerSlabConverter(data.getDoubleSlab(), converter); slabRegistry.add(data); } catch (NoSuchMethodException e) { - KleeSlabs.logger.error("Slab converter class does not have a constructor that takes a Block argument: {}", data.getConverterClass()); + KleeSlabs.logger.error("Slab converter class does not have a no-arg constructor: {}", data.getConverterClass()); } catch (IllegalAccessException | InstantiationException | InvocationTargetException e) { KleeSlabs.logger.error("Slab converter class constructor invocation failed: {}", data.getConverterClass(), e); } diff --git a/common/src/main/resources/data/kleeslabs/kleeslabs_compat/concreteextends.json b/common/src/main/resources/data/kleeslabs/kleeslabs_compat/concreteextends.json deleted file mode 100644 index eca4eb4..0000000 --- a/common/src/main/resources/data/kleeslabs/kleeslabs_compat/concreteextends.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "modid": "concreteplus", - "converter": "SimpleSlabConverter", - "pattern_search": "concrete_slab_(.+)", - "pattern_replace": "concrete_doubleslab_$1", - "pattern_slabs": [ - "concrete_slab_white", - "concrete_slab_orange", - "concrete_slab_magenta", - "concrete_slab_light_blue", - "concrete_slab_yellow", - "concrete_slab_lime", - "concrete_slab_pink", - "concrete_slab_gray", - "concrete_slab_silver", - "concrete_slab_cyan", - "concrete_slab_purple", - "concrete_slab_blue", - "concrete_slab_brown", - "concrete_slab_green", - "concrete_slab_red", - "concrete_slab_black" - ] -} \ No newline at end of file diff --git a/common/src/main/resources/data/kleeslabs/kleeslabs_compat/erebus.json b/common/src/main/resources/data/kleeslabs/kleeslabs_compat/erebus.json deleted file mode 100644 index 22878eb..0000000 --- a/common/src/main/resources/data/kleeslabs/kleeslabs_compat/erebus.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "modid": "erebus", - "converter": "SmarterSlabConverter", - "slabs": [ - "slab_umberstone", - "slab_umbercobble", - "slab_umbercobble_mossy", - "slab_umbercobble_webbed", - "slab_umberstone_bricks", - "slab_umbertile_smooth", - "slab_umbertile_smooth_small", - "slab_umberpaver", - "slab_umberpaver_mossy", - "slab_umberpaver_webbed", - "slab_amber", - "slab_amber_bricks", - "slab_planks_petrified_wood", - "slab_mud_bricks", - "slab_mir_bricks", - "slab_planks_eucalyptus", - "slab_planks_mahogany", - "slab_planks_baobab", - "slab_planks_mossbark", - "slab_planks_asper", - "slab_planks_cypress", - "slab_planks_balsam", - "slab_planks_bamboo", - "slab_planks_white", - "slab_planks_rotten", - "slab_planks_marshwood", - "slab_planks_scorched", - "slab_planks_varnished" - ] -} \ No newline at end of file diff --git a/common/src/main/resources/data/kleeslabs/kleeslabs_compat/quark_vertical.json b/common/src/main/resources/data/kleeslabs/kleeslabs_compat/quark_vertical.json new file mode 100644 index 0000000..70d08f9 --- /dev/null +++ b/common/src/main/resources/data/kleeslabs/kleeslabs_compat/quark_vertical.json @@ -0,0 +1,128 @@ +{ + "modid": "quark", + "converter": "QuarkVerticalSlabConverter", + "slabs": [ + "acacia_vertical_slab", + "ancient_planks_vertical_slab", + "andesite_bricks_vertical_slab", + "andesite_vertical_slab", + "azalea_planks_vertical_slab", + "bamboo_mosaic_vertical_slab", + "bamboo_vertical_slab", + "birch_vertical_slab", + "black_shingles_vertical_slab", + "blackstone_bricks_vertical_slab", + "blackstone_vertical_slab", + "blossom_planks_vertical_slab", + "blue_nether_bricks_vertical_slab", + "blue_shingles_vertical_slab", + "brick_vertical_slab", + "brown_shingles_vertical_slab", + "calcite_bricks_vertical_slab", + "calcite_vertical_slab", + "cherry_vertical_slab", + "cobbled_deepslate_vertical_slab", + "cobblestone_bricks_vertical_slab", + "cobblestone_vertical_slab", + "crimson_vertical_slab", + "cut_copper_vertical_slab", + "cut_red_sandstone_vertical_slab", + "cut_sandstone_vertical_slab", + "cut_soul_sandstone_vertical_slab", + "cyan_shingles_vertical_slab", + "dark_oak_vertical_slab", + "dark_prismarine_vertical_slab", + "deepslate_brick_vertical_slab", + "deepslate_tile_vertical_slab", + "diorite_bricks_vertical_slab", + "diorite_vertical_slab", + "dirt_bricks_vertical_slab", + "dripstone_block_vertical_slab", + "dripstone_bricks_vertical_slab", + "duskbound_block_vertical_slab", + "end_stone_brick_vertical_slab", + "exposed_cut_copper_vertical_slab", + "granite_bricks_vertical_slab", + "granite_vertical_slab", + "gray_shingles_vertical_slab", + "green_shingles_vertical_slab", + "iron_plate_vertical_slab", + "jasper_bricks_vertical_slab", + "jasper_vertical_slab", + "jungle_vertical_slab", + "light_blue_shingles_vertical_slab", + "light_gray_shingles_vertical_slab", + "lime_shingles_vertical_slab", + "limestone_bricks_vertical_slab", + "limestone_vertical_slab", + "magenta_shingles_vertical_slab", + "mangrove_vertical_slab", + "midori_block_vertical_slab", + "mossy_cobblestone_bricks_vertical_slab", + "mossy_cobblestone_vertical_slab", + "mossy_stone_brick_vertical_slab", + "mud_brick_vertical_slab", + "myalite_bricks_vertical_slab", + "myalite_vertical_slab", + "nether_brick_vertical_slab", + "netherrack_bricks_vertical_slab", + "oak_vertical_slab", + "orange_shingles_vertical_slab", + "oxidized_cut_copper_vertical_slab", + "permafrost_bricks_vertical_slab", + "permafrost_vertical_slab", + "pink_shingles_vertical_slab", + "polished_andesite_vertical_slab", + "polished_blackstone_brick_vertical_slab", + "polished_blackstone_vertical_slab", + "polished_calcite_vertical_slab", + "polished_deepslate_vertical_slab", + "polished_diorite_vertical_slab", + "polished_dripstone_vertical_slab", + "polished_granite_vertical_slab", + "polished_jasper_vertical_slab", + "polished_limestone_vertical_slab", + "polished_myalite_vertical_slab", + "polished_shale_vertical_slab", + "polished_tuff_vertical_slab", + "prismarine_brick_vertical_slab", + "prismarine_vertical_slab", + "purple_shingles_vertical_slab", + "purpur_vertical_slab", + "quartz_vertical_slab", + "raw_copper_bricks_vertical_slab", + "raw_gold_bricks_vertical_slab", + "raw_iron_bricks_vertical_slab", + "red_nether_brick_vertical_slab", + "red_sandstone_bricks_vertical_slab", + "red_sandstone_vertical_slab", + "red_shingles_vertical_slab", + "rusty_iron_plate_vertical_slab", + "sandstone_bricks_vertical_slab", + "sandstone_vertical_slab", + "shale_bricks_vertical_slab", + "shale_vertical_slab", + "shingles_vertical_slab", + "smooth_quartz_vertical_slab", + "smooth_red_sandstone_vertical_slab", + "smooth_sandstone_vertical_slab", + "smooth_soul_sandstone_vertical_slab", + "smooth_stone_vertical_slab", + "soul_sandstone_bricks_vertical_slab", + "soul_sandstone_vertical_slab", + "spruce_vertical_slab", + "stone_brick_vertical_slab", + "stone_vertical_slab", + "thatch_vertical_slab", + "tuff_bricks_vertical_slab", + "tuff_vertical_slab", + "warped_vertical_slab", + "waxed_cut_copper_vertical_slab", + "waxed_exposed_cut_copper_vertical_slab", + "waxed_oxidized_cut_copper_vertical_slab", + "waxed_weathered_cut_copper_vertical_slab", + "weathered_cut_copper_vertical_slab", + "white_shingles_vertical_slab", + "yellow_shingles_vertical_slab" + ] +} \ No newline at end of file diff --git a/common/src/main/resources/data/kleeslabs/kleeslabs_compat/thebetweenlands.json b/common/src/main/resources/data/kleeslabs/kleeslabs_compat/thebetweenlands.json deleted file mode 100644 index d0b1c49..0000000 --- a/common/src/main/resources/data/kleeslabs/kleeslabs_compat/thebetweenlands.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "modid": "thebetweenlands", - "converter": "SmarterSlabConverter", - "slabs": [ - "cragrock_slab", - "pitstone_slab", - "betweenstone_slab", - "smooth_pitstone_slab", - "tar_solid_slab", - "temple_brick_slab", - "betweenstone_brick_slab", - "mud_brick_slab", - "cragrock_brick_slab", - "limestone_brick_slab", - "limestone_slab", - "smooth_betweenstone_slab", - "smooth_cragrock_slab", - "polished_limestone_slab", - "pitstone_brick_slab", - "mossy_betweenstone_brick_slab", - "mossy_smooth_betweenstone_slab", - "cracked_betweenstone_brick_slab", - "weedwood_plank_slab", - "rubber_tree_plank_slab", - "giant_root_plank_slab", - "thatch_slab" - ] -} \ No newline at end of file