From 6784271ac77b365000a6fef3bd6da728243b9bd5 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Thu, 28 Dec 2023 19:59:15 +0700 Subject: [PATCH] Fix shapegen for storage bus --- .../ru/dbotthepony/mc/otm/block/Cables.kt | 12 +++++----- .../mc/otm/block/storage/StorageBusBlock.kt | 11 +--------- .../mc/otm/block/storage/StorageInterfaces.kt | 22 ++----------------- 3 files changed, 9 insertions(+), 36 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/Cables.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/Cables.kt index f79fe47de..9adb59906 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/Cables.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/Cables.kt @@ -49,9 +49,11 @@ abstract class CableBlock(properties: Properties) : Block(properties) { } protected fun generateShapes(halfCoreSize: Double): ImmutableMap { - val core = Shapes.box(0.5 - halfCoreSize, 0.5 - halfCoreSize, 0.5 - halfCoreSize, 0.5 + halfCoreSize, 0.5 + halfCoreSize, 0.5 + halfCoreSize) + return getShapeForEachState { getShapeFor(it, halfCoreSize) } + } - return getShapeForEachState { + companion object { + fun getShapeFor(it: BlockState, halfCoreSize: Double): VoxelShape { val shapes = ArrayList() if (it.getValue(CONNECTION_SOUTH)) @@ -72,16 +74,14 @@ abstract class CableBlock(properties: Properties) : Block(properties) { if (it.getValue(CONNECTION_WEST)) shapes.add(Shapes.box(0.0, 0.5 - halfCoreSize, 0.5 - halfCoreSize, 0.5 - halfCoreSize, 0.5 + halfCoreSize, 0.5 + halfCoreSize)) - var finalShape = core + var finalShape = Shapes.box(0.5 - halfCoreSize, 0.5 - halfCoreSize, 0.5 - halfCoreSize, 0.5 + halfCoreSize, 0.5 + halfCoreSize, 0.5 + halfCoreSize) for (shape in shapes) finalShape = Shapes.join(finalShape, shape, BooleanOp.OR) - return@getShapeForEachState finalShape + return finalShape } - } - companion object { val CONNECTION_SOUTH: BooleanProperty = BooleanProperty.create("connect_south") val CONNECTION_WEST: BooleanProperty = BooleanProperty.create("connect_west") val CONNECTION_EAST: BooleanProperty = BooleanProperty.create("connect_east") 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 1fb0b65d7..73e66b896 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 @@ -90,16 +90,7 @@ class StorageBusBlock : RotatableMatteryBlock(), EntityBlock { } private val shapes = getShapeForEachState { - val shapes = StorageCableBlock.getShapeFor(it) - var finalShape = shapes[0] - - for (i in 1 until shapes.size) { - finalShape = Shapes.joinUnoptimized(finalShape, shapes[i], BooleanOp.OR) - } - - finalShape = Shapes.joinUnoptimized(finalShape, BlockShapes.STORAGE_BUS.rotateFromNorth(it[rotationProperty]).computeShape(), BooleanOp.OR) - - return@getShapeForEachState finalShape + Shapes.joinUnoptimized(CableBlock.getShapeFor(it, 0.185), BlockShapes.STORAGE_BUS.rotateFromNorth(it[rotationProperty]).computeShape(), BooleanOp.OR) } @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 54ee44c87..bf45778be 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 @@ -91,16 +91,7 @@ class StorageImporterBlock : RotatableMatteryBlock(), EntityBlock { } private val shapes = getShapeForEachState { - val shapes = StorageCableBlock.getShapeFor(it) - var finalShape = shapes[0] - - for (i in 1 until shapes.size) { - finalShape = Shapes.joinUnoptimized(finalShape, shapes[i], BooleanOp.OR) - } - - finalShape = Shapes.joinUnoptimized(finalShape, BlockShapes.STORAGE_IMPORTER.rotateFromNorth(it[rotationProperty]).computeShape(), BooleanOp.OR) - - return@getShapeForEachState finalShape + Shapes.joinUnoptimized(CableBlock.getShapeFor(it, 0.185), BlockShapes.STORAGE_IMPORTER.rotateFromNorth(it[rotationProperty]).computeShape(), BooleanOp.OR) } @Suppress("OVERRIDE_DEPRECATION") @@ -173,16 +164,7 @@ class StorageExporterBlock : RotatableMatteryBlock(), EntityBlock { } private val shapes = getShapeForEachState { - val shapes = StorageCableBlock.getShapeFor(it) - var finalShape = shapes[0] - - for (i in 1 until shapes.size) { - finalShape = Shapes.joinUnoptimized(finalShape, shapes[i], BooleanOp.OR) - } - - finalShape = Shapes.joinUnoptimized(finalShape, BlockShapes.STORAGE_EXPORTER.rotateFromNorth(it[rotationProperty]).computeShape(), BooleanOp.OR) - - return@getShapeForEachState finalShape + Shapes.joinUnoptimized(CableBlock.getShapeFor(it, 0.185), BlockShapes.STORAGE_EXPORTER.rotateFromNorth(it[rotationProperty]).computeShape(), BooleanOp.OR) } @Suppress("OVERRIDE_DEPRECATION")