From 835f1343294ebd665096bdb817e200d426afbac0 Mon Sep 17 00:00:00 2001 From: Frank Date: Sat, 17 Jun 2023 12:23:01 +0200 Subject: [PATCH] [Fix] Missing mineable definition for base block types (quiqueck/BetterEnd#224) --- ...MetalBarsBlock.java => BaseBarsBlock.java} | 18 +++++++++-- .../betterx/bclib/blocks/BaseChainBlock.java | 14 ++++++++- .../bclib/blocks/BaseFurnaceBlock.java | 13 +++++++- .../betterx/bclib/blocks/BasePathBlock.java | 9 +++++- .../betterx/bclib/blocks/StalactiteBlock.java | 14 ++++++++- .../blocks/signs/BaseHangingSignBlock.java | 30 +++++++++++++++++++ .../signs/BaseWallHangingSignBlock.java | 14 +++++++++ .../bclib/blocks/signs/BaseWallSignBlock.java | 3 +- .../complexmaterials/set/wood/BarStool.java | 2 +- .../complexmaterials/set/wood/Chair.java | 2 +- .../complexmaterials/set/wood/Taburet.java | 2 +- .../bclib/furniture/block/BaseBarStool.java | 29 +++++++++++++++++- .../bclib/furniture/block/BaseChair.java | 28 ++++++++++++++++- .../bclib/furniture/block/BaseTaburet.java | 29 +++++++++++++++++- 14 files changed, 193 insertions(+), 14 deletions(-) rename src/main/java/org/betterx/bclib/blocks/{BaseMetalBarsBlock.java => BaseBarsBlock.java} (90%) diff --git a/src/main/java/org/betterx/bclib/blocks/BaseMetalBarsBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseBarsBlock.java similarity index 90% rename from src/main/java/org/betterx/bclib/blocks/BaseMetalBarsBlock.java rename to src/main/java/org/betterx/bclib/blocks/BaseBarsBlock.java index 0177eeb0..efffcbc4 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseMetalBarsBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseBarsBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.behaviours.interfaces.BehaviourMetal; import org.betterx.bclib.client.models.BasePatterns; import org.betterx.bclib.client.models.ModelsHelper; import org.betterx.bclib.client.models.PatternsHelper; @@ -29,12 +30,12 @@ import java.util.Map; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public class BaseMetalBarsBlock extends IronBarsBlock implements BlockModelProvider, RenderLayerProvider { - public BaseMetalBarsBlock(Block source) { +public abstract class BaseBarsBlock extends IronBarsBlock implements BlockModelProvider, RenderLayerProvider, BehaviourMetal { + public BaseBarsBlock(Block source) { this(Properties.copy(source).strength(5.0F, 6.0F).noOcclusion()); } - public BaseMetalBarsBlock(BlockBehaviour.Properties properties) { + public BaseBarsBlock(BlockBehaviour.Properties properties) { super(properties); } @@ -126,4 +127,15 @@ public class BaseMetalBarsBlock extends IronBarsBlock implements BlockModelProvi public BCLRenderLayer getRenderLayer() { return BCLRenderLayer.CUTOUT; } + + public static class Metal extends BaseBarsBlock implements BehaviourMetal { + + public Metal(Block source) { + super(source); + } + + public Metal(Properties properties) { + super(properties); + } + } } diff --git a/src/main/java/org/betterx/bclib/blocks/BaseChainBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseChainBlock.java index 45fdc7aa..790e1a89 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseChainBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseChainBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.behaviours.interfaces.BehaviourMetal; import org.betterx.bclib.client.models.BasePatterns; import org.betterx.bclib.client.models.ModelsHelper; import org.betterx.bclib.client.models.PatternsHelper; @@ -28,7 +29,7 @@ import java.util.Map; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public class BaseChainBlock extends ChainBlock implements BlockModelProvider, RenderLayerProvider { +public abstract class BaseChainBlock extends ChainBlock implements BlockModelProvider, RenderLayerProvider { public BaseChainBlock(MapColor color) { this(Properties.copy(Blocks.CHAIN).mapColor(color)); } @@ -73,4 +74,15 @@ public class BaseChainBlock extends ChainBlock implements BlockModelProvider, Re public BCLRenderLayer getRenderLayer() { return BCLRenderLayer.CUTOUT; } + + public static class Metal extends BaseChainBlock implements BehaviourMetal { + + public Metal(MapColor color) { + super(color); + } + + public Metal(Properties properties) { + super(properties); + } + } } diff --git a/src/main/java/org/betterx/bclib/blocks/BaseFurnaceBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseFurnaceBlock.java index b2e4cb0d..e8b2da4d 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseFurnaceBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseFurnaceBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.behaviours.interfaces.BehaviourStone; import org.betterx.bclib.blockentities.BaseFurnaceBlockEntity; import org.betterx.bclib.client.models.BasePatterns; import org.betterx.bclib.client.models.ModelsHelper; @@ -40,7 +41,7 @@ import java.util.Map; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public class BaseFurnaceBlock extends FurnaceBlock implements BlockModelProvider, RenderLayerProvider { +public abstract class BaseFurnaceBlock extends FurnaceBlock implements BlockModelProvider, RenderLayerProvider { public BaseFurnaceBlock(Block source) { this(Properties.copy(source).lightLevel(state -> state.getValue(LIT) ? 13 : 0)); } @@ -143,4 +144,14 @@ public class BaseFurnaceBlock extends FurnaceBlock implements BlockModelProvider AbstractFurnaceBlockEntity::serverTick ); } + + public static class Stone extends BaseFurnaceBlock implements BehaviourStone { + public Stone(Block source) { + super(source); + } + + public Stone(BlockBehaviour.Properties properties) { + super(properties); + } + } } diff --git a/src/main/java/org/betterx/bclib/blocks/BasePathBlock.java b/src/main/java/org/betterx/bclib/blocks/BasePathBlock.java index 5fdea577..af5ebee2 100644 --- a/src/main/java/org/betterx/bclib/blocks/BasePathBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BasePathBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.behaviours.interfaces.BehaviourStone; import org.betterx.bclib.client.models.BasePatterns; import org.betterx.bclib.client.models.ModelsHelper; import org.betterx.bclib.client.models.PatternsHelper; @@ -32,7 +33,7 @@ import java.util.Map; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public class BasePathBlock extends BaseBlockNotFull { +public abstract class BasePathBlock extends BaseBlockNotFull { private static final VoxelShape SHAPE = box(0, 0, 0, 16, 15, 16); private Block baseBlock; @@ -100,4 +101,10 @@ public class BasePathBlock extends BaseBlockNotFull { registerBlockModel(stateId, modelId, blockState, modelCache); return ModelsHelper.createRandomTopModel(modelId); } + + public static class Stone extends BasePathBlock implements BehaviourStone { + public Stone(Block source) { + super(source); + } + } } diff --git a/src/main/java/org/betterx/bclib/blocks/StalactiteBlock.java b/src/main/java/org/betterx/bclib/blocks/StalactiteBlock.java index 9e524f52..f0c15bab 100644 --- a/src/main/java/org/betterx/bclib/blocks/StalactiteBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/StalactiteBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.behaviours.interfaces.BehaviourStone; import org.betterx.bclib.client.models.BasePatterns; import org.betterx.bclib.client.models.ModelsHelper; import org.betterx.bclib.client.models.PatternsHelper; @@ -45,7 +46,7 @@ import java.util.Optional; import org.jetbrains.annotations.Nullable; @SuppressWarnings("deprecation") -public class StalactiteBlock extends BaseBlockNotFull implements SimpleWaterloggedBlock, LiquidBlockContainer, RenderLayerProvider { +public abstract class StalactiteBlock extends BaseBlockNotFull implements SimpleWaterloggedBlock, LiquidBlockContainer, RenderLayerProvider { public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; public static final BooleanProperty IS_FLOOR = BlockProperties.IS_FLOOR; public static final IntegerProperty SIZE = BlockProperties.SIZE; @@ -251,6 +252,17 @@ public class StalactiteBlock extends BaseBlockNotFull implements SimpleWaterlogg return BCLRenderLayer.CUTOUT; } + public static class Stone extends StalactiteBlock implements BehaviourStone { + + public Stone(Block source) { + super(source); + } + + public Stone(Properties properties) { + super(properties); + } + } + static { float end = 2F / 8F; float start = 5F / 8F; diff --git a/src/main/java/org/betterx/bclib/blocks/signs/BaseHangingSignBlock.java b/src/main/java/org/betterx/bclib/blocks/signs/BaseHangingSignBlock.java index 32d608f2..c08bab57 100644 --- a/src/main/java/org/betterx/bclib/blocks/signs/BaseHangingSignBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/signs/BaseHangingSignBlock.java @@ -1,6 +1,8 @@ package org.betterx.bclib.blocks.signs; import org.betterx.bclib.behaviours.BehaviourBuilders; +import org.betterx.bclib.behaviours.interfaces.BehaviourMetal; +import org.betterx.bclib.behaviours.interfaces.BehaviourStone; import org.betterx.bclib.behaviours.interfaces.BehaviourWood; import org.betterx.bclib.complexmaterials.BCLWoodTypeWrapper; import org.betterx.bclib.interfaces.BlockModelProvider; @@ -68,6 +70,34 @@ public abstract class BaseHangingSignBlock extends CeilingHangingSignBlock imple } } + public static class Stone extends BaseHangingSignBlock implements BehaviourStone { + public Stone(WoodType type) { + this(type, MapColor.WOOD, true); + } + + public Stone(BCLWoodTypeWrapper type) { + this(type.type, type.color, type.flammable); + } + + public Stone(WoodType type, MapColor color, boolean flammable) { + super(type, color, flammable, BaseWallHangingSignBlock.Stone::new); + } + } + + public static class Metal extends BaseHangingSignBlock implements BehaviourMetal { + public Metal(WoodType type) { + this(type, MapColor.WOOD, true); + } + + public Metal(BCLWoodTypeWrapper type) { + this(type.type, type.color, type.flammable); + } + + public Metal(WoodType type, MapColor color, boolean flammable) { + super(type, color, flammable, BaseWallHangingSignBlock.Stone::new); + } + } + public static BaseHangingSignBlock from(WoodType type) { return new BaseHangingSignBlock.Wood(type); } diff --git a/src/main/java/org/betterx/bclib/blocks/signs/BaseWallHangingSignBlock.java b/src/main/java/org/betterx/bclib/blocks/signs/BaseWallHangingSignBlock.java index af8abef9..9fb84e9d 100644 --- a/src/main/java/org/betterx/bclib/blocks/signs/BaseWallHangingSignBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/signs/BaseWallHangingSignBlock.java @@ -1,5 +1,7 @@ package org.betterx.bclib.blocks.signs; +import org.betterx.bclib.behaviours.interfaces.BehaviourMetal; +import org.betterx.bclib.behaviours.interfaces.BehaviourStone; import org.betterx.bclib.behaviours.interfaces.BehaviourWood; import org.betterx.bclib.interfaces.TagProvider; @@ -30,4 +32,16 @@ public abstract class BaseWallHangingSignBlock extends WallHangingSignBlock impl super(properties, woodType); } } + + public static class Stone extends BaseWallHangingSignBlock implements BehaviourStone { + public Stone(Properties properties, WoodType woodType) { + super(properties, woodType); + } + } + + public static class Metal extends BaseWallHangingSignBlock implements BehaviourMetal { + public Metal(Properties properties, WoodType woodType) { + super(properties, woodType); + } + } } diff --git a/src/main/java/org/betterx/bclib/blocks/signs/BaseWallSignBlock.java b/src/main/java/org/betterx/bclib/blocks/signs/BaseWallSignBlock.java index 4a09bcf4..14fed92d 100644 --- a/src/main/java/org/betterx/bclib/blocks/signs/BaseWallSignBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/signs/BaseWallSignBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks.signs; +import org.betterx.bclib.behaviours.interfaces.BehaviourWood; import org.betterx.bclib.interfaces.TagProvider; import net.minecraft.tags.BlockTags; @@ -21,7 +22,7 @@ public abstract class BaseWallSignBlock extends WallSignBlock implements TagProv blockTags.add(BlockTags.WALL_SIGNS); } - public static class Wood extends BaseWallSignBlock { + public static class Wood extends BaseWallSignBlock implements BehaviourWood { public Wood(Properties properties, WoodType woodType) { super(properties, woodType); } diff --git a/src/main/java/org/betterx/bclib/complexmaterials/set/wood/BarStool.java b/src/main/java/org/betterx/bclib/complexmaterials/set/wood/BarStool.java index 66729e04..dc77e460 100644 --- a/src/main/java/org/betterx/bclib/complexmaterials/set/wood/BarStool.java +++ b/src/main/java/org/betterx/bclib/complexmaterials/set/wood/BarStool.java @@ -36,7 +36,7 @@ public class BarStool extends SimpleMaterialSlot { protected @NotNull Block createBlock( WoodenComplexMaterial parentMaterial, BlockBehaviour.Properties settings ) { - return new BaseBarStool(parentMaterial.getBlock(WoodSlots.SLAB)); + return new BaseBarStool.Wood(parentMaterial.getBlock(WoodSlots.SLAB)); } @Override diff --git a/src/main/java/org/betterx/bclib/complexmaterials/set/wood/Chair.java b/src/main/java/org/betterx/bclib/complexmaterials/set/wood/Chair.java index 0b4f1d17..e654669b 100644 --- a/src/main/java/org/betterx/bclib/complexmaterials/set/wood/Chair.java +++ b/src/main/java/org/betterx/bclib/complexmaterials/set/wood/Chair.java @@ -41,7 +41,7 @@ public class Chair extends SimpleMaterialSlot { protected @NotNull Block createBlock( WoodenComplexMaterial parentMaterial, BlockBehaviour.Properties settings ) { - return new BaseChair(parentMaterial.getBlock(WoodSlots.SLAB)); + return new BaseChair.Wood(parentMaterial.getBlock(WoodSlots.SLAB)); } @Override diff --git a/src/main/java/org/betterx/bclib/complexmaterials/set/wood/Taburet.java b/src/main/java/org/betterx/bclib/complexmaterials/set/wood/Taburet.java index 0c402e33..1e602e04 100644 --- a/src/main/java/org/betterx/bclib/complexmaterials/set/wood/Taburet.java +++ b/src/main/java/org/betterx/bclib/complexmaterials/set/wood/Taburet.java @@ -41,7 +41,7 @@ public class Taburet extends SimpleMaterialSlot { protected @NotNull Block createBlock( WoodenComplexMaterial parentMaterial, BlockBehaviour.Properties settings ) { - return new BaseTaburet(parentMaterial.getBlock(WoodSlots.SLAB)); + return new BaseTaburet.Wood(parentMaterial.getBlock(WoodSlots.SLAB)); } @Override diff --git a/src/main/java/org/betterx/bclib/furniture/block/BaseBarStool.java b/src/main/java/org/betterx/bclib/furniture/block/BaseBarStool.java index 07343fdb..ef4c90ed 100644 --- a/src/main/java/org/betterx/bclib/furniture/block/BaseBarStool.java +++ b/src/main/java/org/betterx/bclib/furniture/block/BaseBarStool.java @@ -1,5 +1,10 @@ package org.betterx.bclib.furniture.block; +import org.betterx.bclib.behaviours.BehaviourHelper; +import org.betterx.bclib.behaviours.interfaces.BehaviourMetal; +import org.betterx.bclib.behaviours.interfaces.BehaviourStone; +import org.betterx.bclib.behaviours.interfaces.BehaviourWood; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.block.Block; @@ -7,7 +12,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; -public class BaseBarStool extends AbstractChair { +public abstract class BaseBarStool extends AbstractChair { private static final VoxelShape SHAPE = Block.box(4, 0, 4, 12, 16, 12); public BaseBarStool(Block block) { @@ -18,4 +23,26 @@ public class BaseBarStool extends AbstractChair { public VoxelShape getShape(BlockState state, BlockGetter view, BlockPos pos, CollisionContext ePos) { return SHAPE; } + + public static class Wood extends BaseBarStool implements BehaviourWood { + public Wood(Block block) { + super(block); + } + } + + public static class Stone extends BaseBarStool implements BehaviourStone { + public Stone(Block block) { + super(block); + } + } + + public static class Metal extends BaseBarStool implements BehaviourMetal { + public Metal(Block block) { + super(block); + } + } + + public static BaseBarStool from(Block source) { + return BehaviourHelper.from(source, Wood::new, Stone::new, Metal::new); + } } \ No newline at end of file diff --git a/src/main/java/org/betterx/bclib/furniture/block/BaseChair.java b/src/main/java/org/betterx/bclib/furniture/block/BaseChair.java index 683b863e..46104541 100644 --- a/src/main/java/org/betterx/bclib/furniture/block/BaseChair.java +++ b/src/main/java/org/betterx/bclib/furniture/block/BaseChair.java @@ -1,5 +1,9 @@ package org.betterx.bclib.furniture.block; +import org.betterx.bclib.behaviours.BehaviourHelper; +import org.betterx.bclib.behaviours.interfaces.BehaviourMetal; +import org.betterx.bclib.behaviours.interfaces.BehaviourStone; +import org.betterx.bclib.behaviours.interfaces.BehaviourWood; import org.betterx.bclib.util.BlocksHelper; import net.minecraft.core.BlockPos; @@ -27,7 +31,7 @@ import net.minecraft.world.phys.shapes.VoxelShape; import java.util.Collections; import java.util.List; -public class BaseChair extends AbstractChair { +public abstract class BaseChair extends AbstractChair { private static final VoxelShape SHAPE_BOTTOM = box(3, 0, 3, 13, 16, 13); private static final VoxelShape SHAPE_TOP = box(3, 0, 3, 13, 6, 13); private static final VoxelShape COLLIDER = box(3, 0, 3, 13, 10, 13); @@ -114,4 +118,26 @@ public class BaseChair extends AbstractChair { } super.playerWillDestroy(world, pos, state, player); } + + public static class Wood extends BaseChair implements BehaviourWood { + public Wood(Block block) { + super(block); + } + } + + public static class Stone extends BaseChair implements BehaviourStone { + public Stone(Block block) { + super(block); + } + } + + public static class Metal extends BaseChair implements BehaviourMetal { + public Metal(Block block) { + super(block); + } + } + + public static BaseChair from(Block source) { + return BehaviourHelper.from(source, Wood::new, Stone::new, Metal::new); + } } diff --git a/src/main/java/org/betterx/bclib/furniture/block/BaseTaburet.java b/src/main/java/org/betterx/bclib/furniture/block/BaseTaburet.java index 4fbb9eca..d662cc58 100644 --- a/src/main/java/org/betterx/bclib/furniture/block/BaseTaburet.java +++ b/src/main/java/org/betterx/bclib/furniture/block/BaseTaburet.java @@ -1,5 +1,10 @@ package org.betterx.bclib.furniture.block; +import org.betterx.bclib.behaviours.BehaviourHelper; +import org.betterx.bclib.behaviours.interfaces.BehaviourMetal; +import org.betterx.bclib.behaviours.interfaces.BehaviourStone; +import org.betterx.bclib.behaviours.interfaces.BehaviourWood; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.block.Block; @@ -7,7 +12,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; -public class BaseTaburet extends AbstractChair { +public abstract class BaseTaburet extends AbstractChair { private static final VoxelShape SHAPE = Block.box(2, 0, 2, 14, 10, 14); public BaseTaburet(Block block) { @@ -18,4 +23,26 @@ public class BaseTaburet extends AbstractChair { public VoxelShape getShape(BlockState state, BlockGetter view, BlockPos pos, CollisionContext ePos) { return SHAPE; } + + public static class Wood extends BaseTaburet implements BehaviourWood { + public Wood(Block block) { + super(block); + } + } + + public static class Stone extends BaseTaburet implements BehaviourStone { + public Stone(Block block) { + super(block); + } + } + + public static class Metal extends BaseTaburet implements BehaviourMetal { + public Metal(Block block) { + super(block); + } + } + + public static BaseTaburet from(Block source) { + return BehaviourHelper.from(source, Wood::new, Stone::new, Metal::new); + } }