ModernLifePatch/src-source/main/java/com/dairymoose/modernlife/blocks/AbstractPanelBlock.java
2024-10-26 09:40:21 +08:00

57 lines
2.4 KiB
Java

package com.dairymoose.modernlife.blocks;
import javax.annotation.Nullable;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Mirror;
import net.minecraft.world.level.block.Rotation;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.AttachFace;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.level.block.state.properties.DirectionProperty;
import net.minecraft.world.level.block.state.properties.EnumProperty;
import net.minecraft.world.phys.shapes.Shapes;
import net.minecraft.world.phys.shapes.VoxelShape;
/* loaded from: outputsrg.jar:com/dairymoose/modernlife/blocks/AbstractPanelBlock.class */
public class AbstractPanelBlock extends Block {
public static final EnumProperty<AttachFace> FACE = BlockStateProperties.ATTACH_FACE;
public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING;
public AbstractPanelBlock(Properties p_i48440_1_) {
super(p_i48440_1_);
}
public BlockState rotate(BlockState state, Rotation rotation) {
return (BlockState) state.setValue(FACING, rotation.rotate(state.getValue(FACING)));
}
public BlockState mirror(BlockState state, Mirror mirror) {
return state.rotate(mirror.getRotation(state.getValue(FACING)));
}
@Deprecated
public VoxelShape getOcclusionShape(BlockState p_196247_1_, BlockGetter p_196247_2_, BlockPos p_196247_3_) {
return Shapes.empty();
}
@Nullable
public BlockState getStateForPlacement(BlockPlaceContext p_196258_1_) {
Direction horDir = p_196258_1_.getHorizontalDirection();
Direction clickedFace = p_196258_1_.getClickedFace();
p_196258_1_.getClickedPos();
p_196258_1_.isInside();
AttachFace attach = AttachFace.WALL;
if (clickedFace == Direction.UP) {
attach = AttachFace.FLOOR;
} else if (clickedFace == Direction.DOWN) {
attach = AttachFace.CEILING;
}
return (BlockState) ((BlockState) defaultBlockState().setValue(FACE, attach)).setValue(FACING, horDir.getOpposite());
}
}