ActuallyAdditions/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/DirectionalBlock.java

51 lines
1.9 KiB
Java
Raw Normal View History

package de.ellpeck.actuallyadditions.mod.blocks.base;
2024-03-02 21:23:08 +01:00
import net.minecraft.core.Direction;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.level.block.state.properties.DirectionProperty;
/**
* Wrapper for Directional block states extending from our base blocks. It's not super nice but it'll do.
*/
public abstract class DirectionalBlock extends BlockBase {
public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING;
public DirectionalBlock(Properties properties) {
super(properties);
}
@Override
2024-03-02 21:23:08 +01:00
public BlockState getStateForPlacement(BlockPlaceContext context) {
2022-01-02 17:58:59 +01:00
return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite());
}
@Override
2024-03-02 21:23:08 +01:00
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
builder.add(FACING);
}
public abstract static class Container extends BlockContainerBase {
public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING;
public Container(Properties properties) {
super(properties);
this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH));
}
@Override
2024-03-02 21:23:08 +01:00
public BlockState getStateForPlacement(BlockPlaceContext context) {
2022-01-02 17:58:59 +01:00
return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite());
}
@Override
2024-03-02 21:23:08 +01:00
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
builder.add(FACING);
}
}
}