test code for blockstates of pattern storage

This commit is contained in:
DBotThePony 2021-08-18 15:25:35 +07:00
parent 778d1310b9
commit 8a6e51d804
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

@ -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<Block, BlockState> 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<VoxelShape> SHAPES;
static {