From ba90c60cd209900d79c47d157d940d437409f87f Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Mon, 30 Jan 2023 16:05:26 +0700 Subject: [PATCH] Use getShapeForEachState --- .../mc/otm/block/decorative/EngineBlock.kt | 2 +- .../mc/otm/block/matter/MatterBottlerBlock.kt | 29 +++++---------- .../block/matter/MatterCapacitorBankBlock.kt | 34 ++++++------------ .../otm/block/matter/MatterDecomposerBlock.kt | 27 +++++--------- .../otm/block/matter/MatterRecyclerBlock.kt | 31 +++++----------- .../otm/block/matter/MatterReplicatorBlock.kt | 31 +++++----------- .../mc/otm/block/matter/MatterScannerBlock.kt | 31 +++++----------- .../otm/block/matter/PatternStorageBlock.kt | 29 +++++---------- .../mc/otm/block/storage/DriveRackBlock.kt | 27 +++++--------- .../mc/otm/block/storage/DriveViewerBlock.kt | 28 +++++---------- .../mc/otm/block/storage/ItemMonitorBlock.kt | 27 +++++--------- .../mc/otm/block/storage/StorageBusBlock.kt | 6 ++-- .../mc/otm/block/storage/StorageInterfaces.kt | 9 ++--- .../storage/StoragePowerSupplierBlock.kt | 31 +++++----------- .../mc/otm/block/tech/BatteryBankBlock.kt | 36 +++++++------------ .../otm/block/tech/ChemicalGeneratorBlock.kt | 27 +++++--------- .../mc/otm/block/tech/EnergyServoBlock.kt | 31 +++++----------- .../otm/block/tech/PhantomAttractorBlock.kt | 15 ++++---- .../mc/otm/block/tech/PlatePressBlock.kt | 31 +++++----------- 19 files changed, 156 insertions(+), 326 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/decorative/EngineBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/decorative/EngineBlock.kt index 9590835f8..4cb0533ff 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/decorative/EngineBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/decorative/EngineBlock.kt @@ -18,7 +18,7 @@ class EngineBlock : RotatableMatteryBlock(Properties.of(Material.METAL, DyeColor } private val shapes = getShapeForEachState { - BlockShapes.ENGINE.rotateFromNorth(it[rotationProperty].front).computeShape() + BlockShapes.ENGINE.rotateFromNorth(it[rotationProperty]).computeShape() } override fun getShape( diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterBottlerBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterBottlerBlock.kt index 9fbe19b32..9ff19bded 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterBottlerBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterBottlerBlock.kt @@ -18,6 +18,7 @@ import net.minecraft.world.phys.shapes.VoxelShape import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.WorkerState import ru.dbotthepony.mc.otm.block.entity.matter.MatterBottlerBlockEntity +import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.math.facingOne import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes @@ -51,35 +52,23 @@ class MatterBottlerBlock : RotatableMatteryBlock(), EntityBlock { .setValue(SLOT_PROPERTIES[2], false) } + private val shapes = getShapeForEachState { BlockShapes.MATTER_BOTTLER.rotateFromSouth(it[rotationProperty]).computeShape() } + + @Suppress("override_deprecation") override fun getShape( - p_60555_: BlockState, - p_60556_: BlockGetter, - p_60557_: BlockPos, - p_60558_: CollisionContext + state: BlockState, + blockGetter: BlockGetter, + pos: BlockPos, + context: CollisionContext ): VoxelShape { - return SHAPES[p_60555_.facingOne.ordinal] + return shapes[state]!! } companion object { - private val SHAPES: List - val SLOT_PROPERTIES = arrayOf( BooleanProperty.create("bottle_0"), BooleanProperty.create("bottle_1"), BooleanProperty.create("bottle_2") ) - - init { - val def = BlockShapes.MATTER_BOTTLER.computeShape() - - SHAPES = listOf( - def, - def, - def, - BlockShapes.MATTER_BOTTLER.rotateFromSouth(Direction.NORTH).computeShape(), - BlockShapes.MATTER_BOTTLER.rotateFromSouth(Direction.WEST).computeShape(), - BlockShapes.MATTER_BOTTLER.rotateFromSouth(Direction.EAST).computeShape() - ) - } } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterCapacitorBankBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterCapacitorBankBlock.kt index 354c80bf3..5744a0a02 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterCapacitorBankBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterCapacitorBankBlock.kt @@ -14,7 +14,7 @@ import net.minecraft.world.phys.shapes.VoxelShape import ru.dbotthepony.mc.otm.block.tech.BatteryBankBlock import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.matter.MatterCapacitorBankBlockEntity -import ru.dbotthepony.mc.otm.core.math.facingOne +import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.shapes.BlockShapes class MatterCapacitorBankBlock : RotatableMatteryBlock(), EntityBlock { @@ -32,33 +32,19 @@ class MatterCapacitorBankBlock : RotatableMatteryBlock(), EntityBlock { } override fun createBlockStateDefinition(builder: StateDefinition.Builder) { - builder.add(*BatteryBankBlock.BATTERY_SLOTS_PROPS) + BatteryBankBlock.BATTERY_SLOTS_PROPS.forEach(builder::add) super.createBlockStateDefinition(builder) } + private val shapes = getShapeForEachState { BlockShapes.MATTER_CAPACITOR_BANK.rotateFromSouth(it[rotationProperty]).computeShape() } + + @Suppress("override_deprecation") override fun getShape( - p_60555_: BlockState, - p_60556_: BlockGetter, - p_60557_: BlockPos, - p_60558_: CollisionContext + state: BlockState, + blockGetter: BlockGetter, + pos: BlockPos, + context: CollisionContext ): VoxelShape { - return SHAPES[p_60555_.facingOne.ordinal] - } - - companion object { - private val SHAPES: List - - init { - val def = BlockShapes.MATTER_CAPACITOR_BANK.computeShape() - - SHAPES = listOf( - def, - def, - def, - BlockShapes.MATTER_CAPACITOR_BANK.rotateFromSouth(Direction.NORTH).computeShape(), - BlockShapes.MATTER_CAPACITOR_BANK.rotateFromSouth(Direction.WEST).computeShape(), - BlockShapes.MATTER_CAPACITOR_BANK.rotateFromSouth(Direction.EAST).computeShape() - ) - } + return shapes[state]!! } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterDecomposerBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterDecomposerBlock.kt index d9f7f955d..6cc72cd37 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterDecomposerBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterDecomposerBlock.kt @@ -18,6 +18,7 @@ import net.minecraft.world.phys.shapes.CollisionContext import net.minecraft.world.phys.shapes.VoxelShape import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.WorkerState +import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.math.facingOne import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes @@ -45,25 +46,15 @@ class MatterDecomposerBlock : RotatableMatteryBlock(), EntityBlock { builder.add(WorkerState.WORKER_STATE) } + private val shapes = getShapeForEachState { BlockShapes.MATTER_DECOMPOSER.rotateFromSouth(it[rotationProperty]).computeShape() } + + @Suppress("override_deprecation") override fun getShape( - p_60555_: BlockState, - p_60556_: BlockGetter, - p_60557_: BlockPos, - p_60558_: CollisionContext + state: BlockState, + blockGetter: BlockGetter, + pos: BlockPos, + context: CollisionContext ): VoxelShape { - return SHAPES[p_60555_.facingOne.ordinal] - } - - companion object { - private val def = BlockShapes.MATTER_DECOMPOSER.computeShape() - - private val SHAPES: List = listOf( - def, - def, - def, - BlockShapes.MATTER_DECOMPOSER.rotateFromSouth(Direction.NORTH).computeShape(), - BlockShapes.MATTER_DECOMPOSER.rotateFromSouth(Direction.WEST).computeShape(), - BlockShapes.MATTER_DECOMPOSER.rotateFromSouth(Direction.EAST).computeShape() - ) + return shapes[state]!! } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterRecyclerBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterRecyclerBlock.kt index e1e4d406a..ff528be42 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterRecyclerBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterRecyclerBlock.kt @@ -16,6 +16,7 @@ import net.minecraft.world.phys.shapes.VoxelShape import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.matter.MatterRecyclerBlockEntity import ru.dbotthepony.mc.otm.block.entity.WorkerState +import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.math.facingOne import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes @@ -41,29 +42,15 @@ class MatterRecyclerBlock : RotatableMatteryBlock(), EntityBlock { return BlockEntityTicker { _, _, _, tile -> if (tile is MatterRecyclerBlockEntity) tile.tick() } } + private val shapes = getShapeForEachState { BlockShapes.MATTER_RECYCLER.rotateFromSouth(it[rotationProperty]).computeShape() } + + @Suppress("override_deprecation") override fun getShape( - p_60555_: BlockState, - p_60556_: BlockGetter, - p_60557_: BlockPos, - p_60558_: CollisionContext + state: BlockState, + blockGetter: BlockGetter, + pos: BlockPos, + context: CollisionContext ): VoxelShape { - return SHAPES[p_60555_.facingOne.ordinal] - } - - companion object { - private val SHAPES: Array - - init { - val def = BlockShapes.MATTER_RECYCLER.computeShape() - - SHAPES = arrayOf( - def, - def, - def, - BlockShapes.MATTER_RECYCLER.rotateFromSouth(Direction.NORTH).computeShape(), - BlockShapes.MATTER_RECYCLER.rotateFromSouth(Direction.WEST).computeShape(), - BlockShapes.MATTER_RECYCLER.rotateFromSouth(Direction.EAST).computeShape() - ) - } + return shapes[state]!! } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterReplicatorBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterReplicatorBlock.kt index 9219a2cec..cdbc0338f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterReplicatorBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterReplicatorBlock.kt @@ -16,6 +16,7 @@ import net.minecraft.world.phys.shapes.VoxelShape import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.matter.MatterReplicatorBlockEntity import ru.dbotthepony.mc.otm.block.entity.WorkerState +import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.math.facingOne import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes @@ -41,29 +42,15 @@ class MatterReplicatorBlock : RotatableMatteryBlock(), EntityBlock { builder.add(WorkerState.WORKER_STATE) } + private val shapes = getShapeForEachState { BlockShapes.MATTER_REPLICATOR.rotateFromSouth(it[rotationProperty]).computeShape() } + + @Suppress("override_deprecation") override fun getShape( - p_60555_: BlockState, - p_60556_: BlockGetter, - p_60557_: BlockPos, - p_60558_: CollisionContext + state: BlockState, + blockGetter: BlockGetter, + pos: BlockPos, + context: CollisionContext ): VoxelShape { - return SHAPES[p_60555_.facingOne.ordinal] - } - - companion object { - private val SHAPES: Array - - init { - val def = BlockShapes.MATTER_REPLICATOR.computeShape() - - SHAPES = arrayOf( - def, - def, - def, - BlockShapes.MATTER_REPLICATOR.rotateFromSouth(Direction.NORTH).computeShape(), - BlockShapes.MATTER_REPLICATOR.rotateFromSouth(Direction.WEST).computeShape(), - BlockShapes.MATTER_REPLICATOR.rotateFromSouth(Direction.EAST).computeShape() - ) - } + return shapes[state]!! } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterScannerBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterScannerBlock.kt index 352d218ba..8122e0499 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterScannerBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/MatterScannerBlock.kt @@ -16,6 +16,7 @@ import net.minecraft.world.phys.shapes.VoxelShape import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.matter.MatterScannerBlockEntity import ru.dbotthepony.mc.otm.block.entity.WorkerState +import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.math.facingOne import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes @@ -41,29 +42,15 @@ class MatterScannerBlock : RotatableMatteryBlock(), EntityBlock { builder.add(WorkerState.WORKER_STATE) } + private val shapes = getShapeForEachState { BlockShapes.MATTER_SCANNER.rotateFromSouth(it[rotationProperty]).computeShape() } + + @Suppress("override_deprecation") override fun getShape( - p_60555_: BlockState, - p_60556_: BlockGetter, - p_60557_: BlockPos, - p_60558_: CollisionContext + state: BlockState, + blockGetter: BlockGetter, + pos: BlockPos, + context: CollisionContext ): VoxelShape { - return SHAPES[p_60555_.facingOne.ordinal] - } - - companion object { - private val SHAPES: Array - - init { - val def = BlockShapes.MATTER_SCANNER.computeShape() - - SHAPES = arrayOf( - def, - def, - def, - BlockShapes.MATTER_SCANNER.rotateFromSouth(Direction.NORTH).computeShape(), - BlockShapes.MATTER_SCANNER.rotateFromSouth(Direction.WEST).computeShape(), - BlockShapes.MATTER_SCANNER.rotateFromSouth(Direction.EAST).computeShape() - ) - } + return shapes[state]!! } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/PatternStorageBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/PatternStorageBlock.kt index cb2a17a62..838e134b2 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/PatternStorageBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/matter/PatternStorageBlock.kt @@ -16,6 +16,7 @@ import net.minecraft.world.phys.shapes.CollisionContext import net.minecraft.world.phys.shapes.VoxelShape import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.matter.PatternStorageBlockEntity +import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.math.facingOne import ru.dbotthepony.mc.otm.shapes.BlockShapes @@ -57,13 +58,16 @@ class PatternStorageBlock : RotatableMatteryBlock(), EntityBlock { super.onRemove(oldBlockState, level, blockPos, newBlockState, movedByPiston) } + private val shapes = getShapeForEachState { BlockShapes.PATTERN_STORAGE.rotateFromSouth(it[rotationProperty]).computeShape() } + + @Suppress("override_deprecation") override fun getShape( - p_60555_: BlockState, - p_60556_: BlockGetter, - p_60557_: BlockPos, - p_60558_: CollisionContext + state: BlockState, + blockGetter: BlockGetter, + pos: BlockPos, + context: CollisionContext ): VoxelShape { - return SHAPES[p_60555_.facingOne.ordinal] + return shapes[state]!! } companion object { @@ -77,20 +81,5 @@ class PatternStorageBlock : RotatableMatteryBlock(), EntityBlock { BooleanProperty.create("disk_6") as BooleanProperty, BooleanProperty.create("disk_7") as BooleanProperty ) - - private val SHAPES: List - - init { - val def = BlockShapes.PATTERN_STORAGE.computeShape() - - SHAPES = listOf( - def, - def, - def, - BlockShapes.PATTERN_STORAGE.rotateFromSouth(Direction.NORTH).computeShape(), - BlockShapes.PATTERN_STORAGE.rotateFromSouth(Direction.WEST).computeShape(), - BlockShapes.PATTERN_STORAGE.rotateFromSouth(Direction.EAST).computeShape() - ) - } } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/DriveRackBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/DriveRackBlock.kt index 0b5f87892..8025cc3e0 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/DriveRackBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/DriveRackBlock.kt @@ -18,6 +18,7 @@ import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.block.entity.storage.DriveRackBlockEntity import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.math.facingOne import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes @@ -49,25 +50,15 @@ class DriveRackBlock : RotatableMatteryBlock(), EntityBlock { MatteryPoweredBlockEntity.appendHoverText(p_49816_, p_49817_, p_49818_, p_49819_) } + private val shapes = getShapeForEachState { BlockShapes.DRIVE_RACK.rotateFromSouth(it[rotationProperty]).computeShape() } + + @Suppress("override_deprecation") override fun getShape( - p_60555_: BlockState, - p_60556_: BlockGetter, - p_60557_: BlockPos, - p_60558_: CollisionContext + state: BlockState, + blockGetter: BlockGetter, + pos: BlockPos, + context: CollisionContext ): VoxelShape { - return SHAPES[p_60555_.facingOne.ordinal] - } - - companion object { - private val def = BlockShapes.DRIVE_RACK.computeShape() - - private val SHAPES: List = listOf( - def, - def, - def, - BlockShapes.DRIVE_RACK.rotateFromSouth(Direction.NORTH).computeShape(), - BlockShapes.DRIVE_RACK.rotateFromSouth(Direction.WEST).computeShape(), - BlockShapes.DRIVE_RACK.rotateFromSouth(Direction.EAST).computeShape() - ) + return shapes[state]!! } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/DriveViewerBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/DriveViewerBlock.kt index 4e1c2007b..e42de611d 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/DriveViewerBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/DriveViewerBlock.kt @@ -23,6 +23,7 @@ import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.block.entity.storage.DriveViewerBlockEntity import ru.dbotthepony.mc.otm.block.entity.WorkerState import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.math.facingOne import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes @@ -64,30 +65,19 @@ class DriveViewerBlock : RotatableMatteryBlock(), EntityBlock { return super.getStateForPlacement(context)!!.setValue(DRIVE_PRESENT, false) } + private val shapes = getShapeForEachState { BlockShapes.DRIVE_VIEWER.rotateFromSouth(it[rotationProperty]).computeShape() } + + @Suppress("override_deprecation") override fun getShape( - p_60555_: BlockState, - p_60556_: BlockGetter, - p_60557_: BlockPos, - p_60558_: CollisionContext + state: BlockState, + blockGetter: BlockGetter, + pos: BlockPos, + context: CollisionContext ): VoxelShape { - return SHAPES[p_60555_.facingOne.ordinal] + return shapes[state]!! } companion object { val DRIVE_PRESENT: BooleanProperty = BooleanProperty.create("drive") - private val SHAPES: Array - - init { - val def = BlockShapes.DRIVE_VIEWER.computeShape() - - SHAPES = arrayOf( - def, - def, - def, - BlockShapes.DRIVE_VIEWER.rotateFromSouth(Direction.NORTH).computeShape(), - BlockShapes.DRIVE_VIEWER.rotateFromSouth(Direction.WEST).computeShape(), - BlockShapes.DRIVE_VIEWER.rotateFromSouth(Direction.EAST).computeShape() - ) - } } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/ItemMonitorBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/ItemMonitorBlock.kt index 5a8566257..a89ed8983 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/ItemMonitorBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/ItemMonitorBlock.kt @@ -18,6 +18,7 @@ import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.block.entity.storage.ItemMonitorBlockEntity import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.math.facingOne import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes @@ -49,25 +50,15 @@ class ItemMonitorBlock : RotatableMatteryBlock(), EntityBlock { MatteryPoweredBlockEntity.appendHoverText(p_49816_, p_49817_, p_49818_, p_49819_) } + private val shapes = getShapeForEachState { BlockShapes.ITEM_MONITOR.rotateFromSouth(it[rotationProperty]).computeShape() } + + @Suppress("override_deprecation") override fun getShape( - p_60555_: BlockState, - p_60556_: BlockGetter, - p_60557_: BlockPos, - p_60558_: CollisionContext + state: BlockState, + blockGetter: BlockGetter, + pos: BlockPos, + context: CollisionContext ): VoxelShape { - return SHAPES[p_60555_.facingOne.ordinal] - } - - companion object { - private val def = BlockShapes.ITEM_MONITOR.computeShape() - - private val SHAPES: List = listOf( - def, - def, - def, - BlockShapes.ITEM_MONITOR.rotateFromSouth(Direction.NORTH).computeShape(), - BlockShapes.ITEM_MONITOR.rotateFromSouth(Direction.WEST).computeShape(), - BlockShapes.ITEM_MONITOR.rotateFromSouth(Direction.EAST).computeShape() - ) + return shapes[state]!! } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StorageBusBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StorageBusBlock.kt index d5f054f7f..21ea4a630 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StorageBusBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StorageBusBlock.kt @@ -24,9 +24,11 @@ import ru.dbotthepony.mc.otm.block.StorageCableBlock import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.block.entity.storage.StorageBusBlockEntity import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.math.BlockRotation import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom import ru.dbotthepony.mc.otm.core.math.facingTwo +import ru.dbotthepony.mc.otm.core.math.rotationTwo import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes import ru.dbotthepony.mc.otm.core.math.unaryMinus @@ -98,7 +100,7 @@ class StorageBusBlock : RotatableMatteryBlock(), EntityBlock { finalShape = Shapes.joinUnoptimized(finalShape, shapes[i], BooleanOp.OR) } - finalShape = Shapes.joinUnoptimized(finalShape, BlockShapes.STORAGE_BUS.rotateFromNorth(it.facingTwo).computeShape(), BooleanOp.OR) + finalShape = Shapes.joinUnoptimized(finalShape, BlockShapes.STORAGE_BUS.rotateFromNorth(it[rotationProperty]).computeShape(), BooleanOp.OR) return@getShapeForEachState finalShape } @@ -110,7 +112,7 @@ class StorageBusBlock : RotatableMatteryBlock(), EntityBlock { p_60557_: BlockPos, p_60558_: CollisionContext ): VoxelShape { - return shapes[p_60555_] ?: BlockShapes.STORAGE_BUS.computeShape() + return shapes[p_60555_]!! } @Suppress("OVERRIDE_DEPRECATION") diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StorageInterfaces.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StorageInterfaces.kt index 9d333a0db..b3c1bd366 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StorageInterfaces.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StorageInterfaces.kt @@ -25,6 +25,7 @@ import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.block.entity.storage.StorageExporterBlockEntity import ru.dbotthepony.mc.otm.block.entity.storage.StorageImporterBlockEntity import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.math.BlockRotation import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom import ru.dbotthepony.mc.otm.core.math.facingTwo @@ -99,7 +100,7 @@ class StorageImporterBlock : RotatableMatteryBlock(), EntityBlock { finalShape = Shapes.joinUnoptimized(finalShape, shapes[i], BooleanOp.OR) } - finalShape = Shapes.joinUnoptimized(finalShape, BlockShapes.STORAGE_IMPORTER.rotateFromNorth(it.facingTwo).computeShape(), BooleanOp.OR) + finalShape = Shapes.joinUnoptimized(finalShape, BlockShapes.STORAGE_IMPORTER.rotateFromNorth(it[rotationProperty]).computeShape(), BooleanOp.OR) return@getShapeForEachState finalShape } @@ -111,7 +112,7 @@ class StorageImporterBlock : RotatableMatteryBlock(), EntityBlock { p_60557_: BlockPos, p_60558_: CollisionContext ): VoxelShape { - return shapes[p_60555_] ?: BlockShapes.STORAGE_BUS.computeShape() + return shapes[p_60555_]!! } @Suppress("OVERRIDE_DEPRECATION") @@ -203,7 +204,7 @@ class StorageExporterBlock : RotatableMatteryBlock(), EntityBlock { finalShape = Shapes.joinUnoptimized(finalShape, shapes[i], BooleanOp.OR) } - finalShape = Shapes.joinUnoptimized(finalShape, BlockShapes.STORAGE_EXPORTER.rotateFromNorth(it.facingTwo).computeShape(), BooleanOp.OR) + finalShape = Shapes.joinUnoptimized(finalShape, BlockShapes.STORAGE_EXPORTER.rotateFromNorth(it[rotationProperty]).computeShape(), BooleanOp.OR) return@getShapeForEachState finalShape } @@ -215,7 +216,7 @@ class StorageExporterBlock : RotatableMatteryBlock(), EntityBlock { p_60557_: BlockPos, p_60558_: CollisionContext ): VoxelShape { - return shapes[p_60555_] ?: BlockShapes.STORAGE_BUS.computeShape() + return shapes[p_60555_]!! } @Suppress("OVERRIDE_DEPRECATION") diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StoragePowerSupplierBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StoragePowerSupplierBlock.kt index 2aad23266..d3b4810d8 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StoragePowerSupplierBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StoragePowerSupplierBlock.kt @@ -18,6 +18,7 @@ import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.block.entity.storage.StoragePowerSupplierBlockEntity import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.math.facingOne import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes @@ -49,29 +50,15 @@ class StoragePowerSupplierBlock : RotatableMatteryBlock(), EntityBlock { MatteryPoweredBlockEntity.appendHoverText(p_49816_, p_49817_, p_49818_, p_49819_) } + private val shapes = getShapeForEachState { BlockShapes.STORAGE_POWER_SUPPLIER.rotateFromSouth(it[rotationProperty]).computeShape() } + + @Suppress("override_deprecation") override fun getShape( - p_60555_: BlockState, - p_60556_: BlockGetter, - p_60557_: BlockPos, - p_60558_: CollisionContext + state: BlockState, + blockGetter: BlockGetter, + pos: BlockPos, + context: CollisionContext ): VoxelShape { - return SHAPES[p_60555_.facingOne.ordinal] - } - - companion object { - private val SHAPES: Array - - init { - val def = BlockShapes.STORAGE_POWER_SUPPLIER.computeShape() - - SHAPES = arrayOf( - def, - def, - def, - BlockShapes.STORAGE_POWER_SUPPLIER.rotateFromSouth(Direction.NORTH).computeShape(), - BlockShapes.STORAGE_POWER_SUPPLIER.rotateFromSouth(Direction.WEST).computeShape(), - BlockShapes.STORAGE_POWER_SUPPLIER.rotateFromSouth(Direction.EAST).computeShape() - ) - } + return shapes[state]!! } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/BatteryBankBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/BatteryBankBlock.kt index 03c2186ef..b0d6f9df3 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/BatteryBankBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/BatteryBankBlock.kt @@ -1,5 +1,6 @@ package ru.dbotthepony.mc.otm.block.tech +import com.google.common.collect.ImmutableList import net.minecraft.MethodsReturnNonnullByDefault import javax.annotation.ParametersAreNonnullByDefault import net.minecraft.world.level.block.EntityBlock @@ -11,7 +12,6 @@ import net.minecraft.world.level.block.entity.BlockEntityType import net.minecraft.world.level.block.entity.BlockEntityTicker import net.minecraft.world.level.block.state.StateDefinition import net.minecraft.core.BlockPos -import net.minecraft.core.Direction import ru.dbotthepony.mc.otm.block.entity.tech.BatteryBankBlockEntity import net.minecraft.world.level.BlockGetter import net.minecraft.world.level.Level @@ -19,7 +19,7 @@ import net.minecraft.world.level.block.Block import net.minecraft.world.phys.shapes.CollisionContext import net.minecraft.world.phys.shapes.VoxelShape import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock -import ru.dbotthepony.mc.otm.core.math.facingOne +import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.oncePre import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes @@ -48,7 +48,7 @@ class BatteryBankBlock : RotatableMatteryBlock(), EntityBlock { } override fun createBlockStateDefinition(builder: StateDefinition.Builder) { - builder.add(*BATTERY_SLOTS_PROPS) + BATTERY_SLOTS_PROPS.forEach(builder::add) super.createBlockStateDefinition(builder) } @@ -56,13 +56,16 @@ class BatteryBankBlock : RotatableMatteryBlock(), EntityBlock { return BatteryBankBlockEntity(blockPos, blockState) } + private val shapes = getShapeForEachState { BlockShapes.BATTERY_BANK.rotateFromSouth(it[rotationProperty]).computeShape() } + + @Suppress("override_deprecation") override fun getShape( - p_60555_: BlockState, - p_60556_: BlockGetter, - p_60557_: BlockPos, - p_60558_: CollisionContext + state: BlockState, + blockGetter: BlockGetter, + pos: BlockPos, + context: CollisionContext ): VoxelShape { - return SHAPES[p_60555_.facingOne.ordinal] + return shapes[state]!! } override fun faceToPlayer(context: BlockPlaceContext): Boolean { @@ -83,7 +86,7 @@ class BatteryBankBlock : RotatableMatteryBlock(), EntityBlock { } companion object { - val BATTERY_SLOTS_PROPS = arrayOf( + val BATTERY_SLOTS_PROPS: ImmutableList = ImmutableList.of( BooleanProperty.create("battery_0") as BooleanProperty, BooleanProperty.create("battery_1") as BooleanProperty, BooleanProperty.create("battery_2") as BooleanProperty, @@ -97,20 +100,5 @@ class BatteryBankBlock : RotatableMatteryBlock(), EntityBlock { BooleanProperty.create("battery_10") as BooleanProperty, BooleanProperty.create("battery_11") as BooleanProperty, ) - - private val SHAPES: List - - init { - val def = BlockShapes.BATTERY_BANK.computeShape() - - SHAPES = java.util.List.of( - def, - def, - def, - BlockShapes.BATTERY_BANK.rotateFromSouth(Direction.NORTH).computeShape(), - BlockShapes.BATTERY_BANK.rotateFromSouth(Direction.WEST).computeShape(), - BlockShapes.BATTERY_BANK.rotateFromSouth(Direction.EAST).computeShape() - ) - } } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/ChemicalGeneratorBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/ChemicalGeneratorBlock.kt index c80a29b8a..53c02ebcc 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/ChemicalGeneratorBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/ChemicalGeneratorBlock.kt @@ -27,6 +27,7 @@ import ru.dbotthepony.mc.otm.capability.energy.GeneratorEnergyStorage import ru.dbotthepony.mc.otm.capability.energy.ItemEnergyStorageImpl import ru.dbotthepony.mc.otm.container.MatteryContainer import ru.dbotthepony.mc.otm.core.TranslatableComponent +import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.math.facingOne import ru.dbotthepony.mc.otm.core.nbt.map import ru.dbotthepony.mc.otm.oncePre @@ -95,25 +96,15 @@ class ChemicalGeneratorBlock : RotatableMatteryBlock(), EntityBlock { } } + private val shapes = getShapeForEachState { BlockShapes.CHEMICAL_GENERATOR.rotateFromSouth(it[rotationProperty]).computeShape() } + + @Suppress("override_deprecation") override fun getShape( - p_60555_: BlockState, - p_60556_: BlockGetter, - p_60557_: BlockPos, - p_60558_: CollisionContext + state: BlockState, + blockGetter: BlockGetter, + pos: BlockPos, + context: CollisionContext ): VoxelShape { - return SHAPES[p_60555_.facingOne.ordinal] - } - - companion object { - private val def = BlockShapes.CHEMICAL_GENERATOR.computeShape() - - private val SHAPES: List = listOf( - def, - def, - def, - BlockShapes.CHEMICAL_GENERATOR.rotateFromSouth(Direction.NORTH).computeShape(), - BlockShapes.CHEMICAL_GENERATOR.rotateFromSouth(Direction.WEST).computeShape(), - BlockShapes.CHEMICAL_GENERATOR.rotateFromSouth(Direction.EAST).computeShape() - ) + return shapes[state]!! } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/EnergyServoBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/EnergyServoBlock.kt index fbce75b0d..4287fb226 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/EnergyServoBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/EnergyServoBlock.kt @@ -15,6 +15,7 @@ import net.minecraft.world.phys.shapes.CollisionContext import net.minecraft.world.phys.shapes.VoxelShape import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.tech.EnergyServoBlockEntity +import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.math.facingOne import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes @@ -36,29 +37,15 @@ class EnergyServoBlock : RotatableMatteryBlock(Properties.of(Material.METAL, Mat return null } + private val shapes = getShapeForEachState { BlockShapes.ENERGY_SERVO.rotateFromSouth(it[rotationProperty]).computeShape() } + + @Suppress("override_deprecation") override fun getShape( - p_60555_: BlockState, - p_60556_: BlockGetter, - p_60557_: BlockPos, - p_60558_: CollisionContext + state: BlockState, + blockGetter: BlockGetter, + pos: BlockPos, + context: CollisionContext ): VoxelShape { - return SHAPES[p_60555_.facingOne.ordinal] - } - - companion object { - private val SHAPES: Array - - init { - val def = BlockShapes.ENERGY_SERVO.computeShape() - - SHAPES = arrayOf( - def, - def, - def, - BlockShapes.ENERGY_SERVO.rotateFromSouth(Direction.NORTH).computeShape(), - BlockShapes.ENERGY_SERVO.rotateFromSouth(Direction.WEST).computeShape(), - BlockShapes.ENERGY_SERVO.rotateFromSouth(Direction.EAST).computeShape() - ) - } + return shapes[state]!! } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/PhantomAttractorBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/PhantomAttractorBlock.kt index 5dfbb2667..37ea605c0 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/PhantomAttractorBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/PhantomAttractorBlock.kt @@ -30,6 +30,7 @@ import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.math.facingOne import ru.dbotthepony.mc.otm.core.math.minus import ru.dbotthepony.mc.otm.core.math.plus +import ru.dbotthepony.mc.otm.core.math.rotationOne import ru.dbotthepony.mc.otm.once import ru.dbotthepony.mc.otm.registry.MBlocks import ru.dbotthepony.mc.otm.shapes.BlockShapes @@ -86,15 +87,13 @@ class PhantomAttractorBlock : RotatableMatteryBlock(Properties.of(Material.METAL } } - private val shapes by lazy { - getShapeForEachState { - val shape = when (it[BlockStateProperties.DOUBLE_BLOCK_HALF]!!) { - DoubleBlockHalf.UPPER -> BlockShapes.PHANTOM_ATTRACTOR_TOP.moveY(-1.0) - DoubleBlockHalf.LOWER -> BlockShapes.PHANTOM_ATTRACTOR_BOTTOM - } - - shape.rotateFromSouth(it.facingOne).computeShape() + private val shapes = getShapeForEachState { + val shape = when (it[BlockStateProperties.DOUBLE_BLOCK_HALF]!!) { + DoubleBlockHalf.UPPER -> BlockShapes.PHANTOM_ATTRACTOR_TOP.moveY(-1.0) + DoubleBlockHalf.LOWER -> BlockShapes.PHANTOM_ATTRACTOR_BOTTOM } + + shape.rotateFromSouth(it[rotationProperty]).computeShape() } override fun getShape( diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/PlatePressBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/PlatePressBlock.kt index 8ae695002..ab7427e98 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/PlatePressBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/PlatePressBlock.kt @@ -20,6 +20,7 @@ import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.MatteryWorkerBlockEntity import ru.dbotthepony.mc.otm.block.entity.tech.PlatePressBlockEntity import ru.dbotthepony.mc.otm.block.entity.WorkerState +import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.math.facingOne import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes @@ -55,29 +56,15 @@ class PlatePressBlock(properties: Properties = DEFAULT_PROPERTIES) : RotatableMa MatteryWorkerBlockEntity.appendHoverText(p_49816_, p_49817_, p_49818_, p_49819_) } + private val shapes = getShapeForEachState { BlockShapes.PLATE_PRESS_IDLE.rotateFromSouth(it[rotationProperty]).computeShape() } + + @Suppress("override_deprecation") override fun getShape( - p_60555_: BlockState, - p_60556_: BlockGetter, - p_60557_: BlockPos, - p_60558_: CollisionContext + state: BlockState, + blockGetter: BlockGetter, + pos: BlockPos, + context: CollisionContext ): VoxelShape { - return SHAPES[p_60555_.facingOne.ordinal] - } - - companion object { - private val SHAPES: Array - - init { - val def = BlockShapes.PLATE_PRESS_IDLE.computeShape() - - SHAPES = arrayOf( - def, - def, - def, - BlockShapes.PLATE_PRESS_IDLE.rotateFromSouth(Direction.NORTH).computeShape(), - BlockShapes.PLATE_PRESS_IDLE.rotateFromSouth(Direction.WEST).computeShape(), - BlockShapes.PLATE_PRESS_IDLE.rotateFromSouth(Direction.EAST).computeShape() - ) - } + return shapes[state]!! } }