package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.old.base; import com.drmangotea.createindustry.registry.TFMGBlockEntities; import com.drmangotea.createindustry.registry.TFMGShapes; import com.simibubi.create.content.equipment.wrench.IWrenchable; import com.simibubi.create.foundation.block.IBE; import net.minecraft.core.BlockPos; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.HorizontalDirectionalBlock; import net.minecraft.world.level.block.Mirror; import net.minecraft.world.level.block.Rotation; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; public class PumpjackBaseBlock extends HorizontalDirectionalBlock implements IWrenchable, IBE { public PumpjackBaseBlock(Properties p_i48440_1_) { super(p_i48440_1_); } @Override public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) { return TFMGShapes.PUMPJACK_BASE; } public BlockState rotate(BlockState p_54540_, Rotation p_54541_) { return p_54540_.setValue(HorizontalDirectionalBlock.FACING, p_54541_.rotate(p_54540_.getValue(HorizontalDirectionalBlock.FACING))); } public BlockState mirror(BlockState p_54537_, Mirror p_54538_) { return p_54537_.rotate(p_54538_.getRotation(p_54537_.getValue(HorizontalDirectionalBlock.FACING))); } protected void createBlockStateDefinition(StateDefinition.Builder p_54543_) { p_54543_.add(HorizontalDirectionalBlock.FACING); } @Override public BlockState getStateForPlacement(BlockPlaceContext context) { return this.defaultBlockState().setValue(HorizontalDirectionalBlock.FACING, context.getHorizontalDirection().getOpposite()); } @Override public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean isMoving) { world.removeBlockEntity(pos); } @Override public Class getBlockEntityClass() { return PumpjackBaseBlockEntity.class; } @Override public BlockEntityType getBlockEntityType() { return TFMGBlockEntities.PUMPJACK_BASE.get(); } }