mirror of
https://github.com/TeamMidnightDust/Decorative.git
synced 2025-12-17 05:25:09 +01:00
Let's take a shower
- Shower heads are now working with Polymer
This commit is contained in:
@@ -3,7 +3,9 @@ package eu.midnightdust.motschen.decorative.block;
|
|||||||
import com.mojang.serialization.MapCodec;
|
import com.mojang.serialization.MapCodec;
|
||||||
import eu.midnightdust.motschen.decorative.block.blockentity.ShowerHeadBlockEntity;
|
import eu.midnightdust.motschen.decorative.block.blockentity.ShowerHeadBlockEntity;
|
||||||
import eu.midnightdust.motschen.decorative.init.BlockEntities;
|
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.factorytools.api.block.FactoryBlock;
|
||||||
|
import eu.pb4.polymer.virtualentity.api.ElementHolder;
|
||||||
import net.minecraft.block.AbstractBlock;
|
import net.minecraft.block.AbstractBlock;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockEntityProvider;
|
import net.minecraft.block.BlockEntityProvider;
|
||||||
@@ -19,6 +21,8 @@ import net.minecraft.block.entity.BlockEntityTicker;
|
|||||||
import net.minecraft.block.entity.BlockEntityType;
|
import net.minecraft.block.entity.BlockEntityType;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.ItemPlacementContext;
|
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.BlockSoundGroup;
|
||||||
import net.minecraft.sound.SoundCategory;
|
import net.minecraft.sound.SoundCategory;
|
||||||
import net.minecraft.sound.SoundEvents;
|
import net.minecraft.sound.SoundEvents;
|
||||||
@@ -37,7 +41,7 @@ import net.minecraft.world.WorldView;
|
|||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
public class ShowerHead extends BlockWithEntity implements BlockEntityProvider, FactoryBlock {
|
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;
|
public static final BooleanProperty POWERED = DoorBlock.POWERED;
|
||||||
private static final VoxelShape NORTH_SHAPE;
|
private static final VoxelShape NORTH_SHAPE;
|
||||||
private static final VoxelShape EAST_SHAPE;
|
private static final VoxelShape EAST_SHAPE;
|
||||||
@@ -131,5 +135,14 @@ public class ShowerHead extends BlockWithEntity implements BlockEntityProvider,
|
|||||||
public BlockState getPolymerBlockState(BlockState state) {
|
public BlockState getPolymerBlockState(BlockState state) {
|
||||||
return Blocks.BARRIER.getDefaultState();
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package eu.midnightdust.motschen.decorative.polymer.model;
|
|||||||
import eu.midnightdust.motschen.decorative.block.FireHydrant;
|
import eu.midnightdust.motschen.decorative.block.FireHydrant;
|
||||||
import eu.midnightdust.motschen.decorative.block.Guardrail;
|
import eu.midnightdust.motschen.decorative.block.Guardrail;
|
||||||
import eu.midnightdust.motschen.decorative.block.PoolSprinkler;
|
import eu.midnightdust.motschen.decorative.block.PoolSprinkler;
|
||||||
|
import eu.midnightdust.motschen.decorative.block.ShowerHead;
|
||||||
import eu.midnightdust.motschen.decorative.config.DecorativeConfig;
|
import eu.midnightdust.motschen.decorative.config.DecorativeConfig;
|
||||||
import eu.pb4.factorytools.api.resourcepack.BaseItemProvider;
|
import eu.pb4.factorytools.api.resourcepack.BaseItemProvider;
|
||||||
import eu.pb4.factorytools.api.virtualentity.BlockModel;
|
import eu.pb4.factorytools.api.virtualentity.BlockModel;
|
||||||
@@ -22,11 +23,13 @@ public class ItemDisplayDirectionalModel extends BlockModel {
|
|||||||
public static ItemStack FIRE_HYDRANT;
|
public static ItemStack FIRE_HYDRANT;
|
||||||
public static ItemStack GUARDRAIL;
|
public static ItemStack GUARDRAIL;
|
||||||
public static ItemStack POOL_SPRINKLER;
|
public static ItemStack POOL_SPRINKLER;
|
||||||
|
public static ItemStack SHOWER_HEAD;
|
||||||
|
|
||||||
public static void initModels() {
|
public static void initModels() {
|
||||||
FIRE_HYDRANT = BaseItemProvider.requestModel(id("block/fire_hydrant"));
|
FIRE_HYDRANT = BaseItemProvider.requestModel(id("block/fire_hydrant"));
|
||||||
GUARDRAIL = BaseItemProvider.requestModel(id("block/guardrail"));
|
GUARDRAIL = BaseItemProvider.requestModel(id("block/guardrail"));
|
||||||
POOL_SPRINKLER = BaseItemProvider.requestModel(id("block/pool_sprinkler"));
|
POOL_SPRINKLER = BaseItemProvider.requestModel(id("block/pool_sprinkler"));
|
||||||
|
SHOWER_HEAD = BaseItemProvider.requestModel(id("block/shower_head"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public ItemDisplayDirectionalModel(BlockState state) {
|
public ItemDisplayDirectionalModel(BlockState state) {
|
||||||
@@ -50,11 +53,13 @@ public class ItemDisplayDirectionalModel extends BlockModel {
|
|||||||
public ItemStack getModel(BlockState state) {
|
public ItemStack getModel(BlockState state) {
|
||||||
if (state.getBlock() instanceof FireHydrant) return FIRE_HYDRANT;
|
if (state.getBlock() instanceof FireHydrant) return FIRE_HYDRANT;
|
||||||
else if (state.getBlock() instanceof PoolSprinkler) return POOL_SPRINKLER;
|
else if (state.getBlock() instanceof PoolSprinkler) return POOL_SPRINKLER;
|
||||||
|
else if (state.getBlock() instanceof ShowerHead) return SHOWER_HEAD;
|
||||||
else return GUARDRAIL;
|
else return GUARDRAIL;
|
||||||
}
|
}
|
||||||
public float getRotation(BlockState state) {
|
public float getRotation(BlockState state) {
|
||||||
if (state.getBlock() instanceof FireHydrant) return state.get(FireHydrant.FACING).getHorizontal() * -90;
|
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 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;
|
else return state.get(Guardrail.FACING).getHorizontal() * -90;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user