diff --git a/src/main/java/ru/dbotthepony/mc/otm/block/BlockPatternStorage.java b/src/main/java/ru/dbotthepony/mc/otm/block/BlockPatternStorage.java index d0a981d8c..e136e8330 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/block/BlockPatternStorage.java +++ b/src/main/java/ru/dbotthepony/mc/otm/block/BlockPatternStorage.java @@ -2,10 +2,14 @@ package ru.dbotthepony.mc.otm.block; 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.EntityBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; import ru.dbotthepony.mc.otm.block.entity.BlockEntityPatternStorage; @@ -15,12 +19,40 @@ import javax.annotation.Nullable; import java.util.List; public class BlockPatternStorage extends BlockMatteryRotatable implements EntityBlock { + public static final BooleanProperty[] PATTERN_STORAGE_DISKS_PROPS = new BooleanProperty[] { + BooleanProperty.create("disk_0"), + BooleanProperty.create("disk_1"), + BooleanProperty.create("disk_2"), + BooleanProperty.create("disk_3"), + BooleanProperty.create("disk_4"), + BooleanProperty.create("disk_5"), + BooleanProperty.create("disk_6"), + BooleanProperty.create("disk_7"), + }; + @Nullable @Override public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { return new BlockEntityPatternStorage(blockPos, blockState); } + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(PATTERN_STORAGE_DISKS_PROPS); + super.createBlockStateDefinition(builder); + } + + @Nullable + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + var state = super.getStateForPlacement(context); + + for (var prop : PATTERN_STORAGE_DISKS_PROPS) + state.setValue(prop, Math.random() > 0.5); + + return state; + } + private static final List SHAPES; static {