diff --git a/src/main/java/eu/midnightdust/motschen/decorative/block/ShowerHead.java b/src/main/java/eu/midnightdust/motschen/decorative/block/ShowerHead.java index b1d1947..2ea08c7 100755 --- a/src/main/java/eu/midnightdust/motschen/decorative/block/ShowerHead.java +++ b/src/main/java/eu/midnightdust/motschen/decorative/block/ShowerHead.java @@ -3,7 +3,9 @@ package eu.midnightdust.motschen.decorative.block; import com.mojang.serialization.MapCodec; import eu.midnightdust.motschen.decorative.block.blockentity.ShowerHeadBlockEntity; import eu.midnightdust.motschen.decorative.init.BlockEntities; +import eu.midnightdust.motschen.decorative.polymer.model.ItemDisplayDirectionalModel; import eu.pb4.factorytools.api.block.FactoryBlock; +import eu.pb4.polymer.virtualentity.api.ElementHolder; import net.minecraft.block.AbstractBlock; import net.minecraft.block.Block; import net.minecraft.block.BlockEntityProvider; @@ -19,6 +21,8 @@ import net.minecraft.block.entity.BlockEntityTicker; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemPlacementContext; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.server.world.ServerWorld; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; @@ -37,7 +41,7 @@ import net.minecraft.world.WorldView; import org.jetbrains.annotations.Nullable; public class ShowerHead extends BlockWithEntity implements BlockEntityProvider, FactoryBlock { - private static final DirectionProperty FACING = HorizontalFacingBlock.FACING; + public static final DirectionProperty FACING = HorizontalFacingBlock.FACING; public static final BooleanProperty POWERED = DoorBlock.POWERED; private static final VoxelShape NORTH_SHAPE; private static final VoxelShape EAST_SHAPE; @@ -131,5 +135,14 @@ public class ShowerHead extends BlockWithEntity implements BlockEntityProvider, public BlockState getPolymerBlockState(BlockState state) { return Blocks.BARRIER.getDefaultState(); } + @Override + public BlockState getPolymerBreakEventBlockState(BlockState state, ServerPlayerEntity player) { + return Blocks.IRON_BLOCK.getDefaultState(); + } + + @Override + public @Nullable ElementHolder createElementHolder(ServerWorld world, BlockPos pos, BlockState initialBlockState) { + return new ItemDisplayDirectionalModel(initialBlockState); + } } diff --git a/src/main/java/eu/midnightdust/motschen/decorative/polymer/model/ItemDisplayDirectionalModel.java b/src/main/java/eu/midnightdust/motschen/decorative/polymer/model/ItemDisplayDirectionalModel.java index a83f994..349d4dd 100644 --- a/src/main/java/eu/midnightdust/motschen/decorative/polymer/model/ItemDisplayDirectionalModel.java +++ b/src/main/java/eu/midnightdust/motschen/decorative/polymer/model/ItemDisplayDirectionalModel.java @@ -3,6 +3,7 @@ package eu.midnightdust.motschen.decorative.polymer.model; import eu.midnightdust.motschen.decorative.block.FireHydrant; import eu.midnightdust.motschen.decorative.block.Guardrail; import eu.midnightdust.motschen.decorative.block.PoolSprinkler; +import eu.midnightdust.motschen.decorative.block.ShowerHead; import eu.midnightdust.motschen.decorative.config.DecorativeConfig; import eu.pb4.factorytools.api.resourcepack.BaseItemProvider; import eu.pb4.factorytools.api.virtualentity.BlockModel; @@ -22,11 +23,13 @@ public class ItemDisplayDirectionalModel extends BlockModel { public static ItemStack FIRE_HYDRANT; public static ItemStack GUARDRAIL; public static ItemStack POOL_SPRINKLER; + public static ItemStack SHOWER_HEAD; public static void initModels() { FIRE_HYDRANT = BaseItemProvider.requestModel(id("block/fire_hydrant")); GUARDRAIL = BaseItemProvider.requestModel(id("block/guardrail")); POOL_SPRINKLER = BaseItemProvider.requestModel(id("block/pool_sprinkler")); + SHOWER_HEAD = BaseItemProvider.requestModel(id("block/shower_head")); } public ItemDisplayDirectionalModel(BlockState state) { @@ -50,11 +53,13 @@ public class ItemDisplayDirectionalModel extends BlockModel { public ItemStack getModel(BlockState state) { if (state.getBlock() instanceof FireHydrant) return FIRE_HYDRANT; else if (state.getBlock() instanceof PoolSprinkler) return POOL_SPRINKLER; + else if (state.getBlock() instanceof ShowerHead) return SHOWER_HEAD; else return GUARDRAIL; } public float getRotation(BlockState state) { if (state.getBlock() instanceof FireHydrant) return state.get(FireHydrant.FACING).getHorizontal() * -90; else if (state.getBlock() instanceof PoolSprinkler) return state.get(PoolSprinkler.FACING).getHorizontal() * -90; + else if (state.getBlock() instanceof ShowerHead) return state.get(ShowerHead.FACING).getHorizontal() * -90 + 90; else return state.get(Guardrail.FACING).getHorizontal() * -90; } }