From 2951f0f4e39a9ac98cda8e2228ab58362eb700d6 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sat, 14 May 2022 17:23:08 +0700 Subject: [PATCH] Fix storage had no it's own entity type --- .../ru/dbotthepony/mc/otm/block/entity/Cables.kt | 10 +++++++--- .../mc/otm/graph/storage/StorageNetworkGraph.kt | 4 ++-- .../ru/dbotthepony/mc/otm/registry/MBlockEntities.kt | 1 + 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/Cables.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/Cables.kt index 1610f95e3..ec09011a8 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/Cables.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/Cables.kt @@ -74,7 +74,7 @@ class MatterCableBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : } class StorageCableBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : - BlockEntity(MBlockEntities.MATTER_CABLE, p_155229_, p_155230_), IStorageGraphNode, GraphNodeListener { + BlockEntity(MBlockEntities.STORAGE_CABLE, p_155229_, p_155230_), IStorageGraphNode, GraphNodeListener { private var valid = true private val resolverNode = LazyOptional.of { this } @@ -111,12 +111,16 @@ class StorageCableBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : override fun onNeighbour(node: Graph6Node<*>, direction: Direction) { val newState = blockState.setValue(CableBlock.MAPPING_CONNECTION_PROP[direction.ordinal], true) - if (newState !== blockState) level!!.setBlock(blockPos, newState, Block.UPDATE_CLIENTS) + + if (newState !== blockState && !SERVER_IS_DYING) + level!!.setBlock(blockPos, newState, Block.UPDATE_CLIENTS) } override fun onUnNeighbour(node: Graph6Node<*>, direction: Direction) { val newState = blockState.setValue(CableBlock.MAPPING_CONNECTION_PROP[direction.ordinal], false) - if (newState !== blockState) level!!.setBlock(blockPos, newState, Block.UPDATE_CLIENTS) + + if (newState !== blockState && !SERVER_IS_DYING) + level!!.setBlock(blockPos, newState, Block.UPDATE_CLIENTS) } override fun setRemoved() { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/graph/storage/StorageNetworkGraph.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/graph/storage/StorageNetworkGraph.kt index f40fd67b2..107b83c68 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/graph/storage/StorageNetworkGraph.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/graph/storage/StorageNetworkGraph.kt @@ -69,7 +69,7 @@ class StorageNetworkGraph(private val level: Level) : Abstract6Graph? { @@ -84,7 +84,7 @@ class StorageNetworkGraph(private val level: Level) : Abstract6Graph? { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlockEntities.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlockEntities.kt index 1af8bd6fb..803948b75 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlockEntities.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlockEntities.kt @@ -23,6 +23,7 @@ object MBlockEntities { val MATTER_DECOMPOSER: BlockEntityType<*> by registry.register(MNames.MATTER_DECOMPOSER) { BlockEntityType.Builder.of(::MatterDecomposerBlockEntity, MBlocks.MATTER_DECOMPOSER).build(null) } val MATTER_CAPACITOR_BANK: BlockEntityType<*> by registry.register(MNames.MATTER_CAPACITOR_BANK) { BlockEntityType.Builder.of(::MatterCapacitorBankBlockEntity, MBlocks.MATTER_CAPACITOR_BANK).build(null) } val MATTER_CABLE: BlockEntityType<*> by registry.register(MNames.MATTER_CABLE) { BlockEntityType.Builder.of(::MatterCableBlockEntity, MBlocks.MATTER_CABLE).build(null) } + val STORAGE_CABLE: BlockEntityType<*> by registry.register(MNames.STORAGE_CABLE) { BlockEntityType.Builder.of(::StorageCableBlockEntity, MBlocks.STORAGE_CABLE).build(null) } val PATTERN_STORAGE: BlockEntityType<*> by registry.register(MNames.PATTERN_STORAGE) { BlockEntityType.Builder.of(::PatternStorageBlockEntity, MBlocks.PATTERN_STORAGE).build(null) } val MATTER_SCANNER: BlockEntityType<*> by registry.register(MNames.MATTER_SCANNER) { BlockEntityType.Builder.of(::MatterScannerBlockEntity, MBlocks.MATTER_SCANNER).build(null) } val MATTER_PANEL: BlockEntityType<*> by registry.register(MNames.MATTER_PANEL) { BlockEntityType.Builder.of(::MatterPanelBlockEntity, MBlocks.MATTER_PANEL).build(null) }