diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/cable/EnergyCableBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/cable/EnergyCableBlockEntity.kt index 32e30d3ef..d7c3b5018 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/cable/EnergyCableBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/cable/EnergyCableBlockEntity.kt @@ -1,6 +1,7 @@ package ru.dbotthepony.mc.otm.block.entity.cable import net.minecraft.core.BlockPos +import net.minecraft.core.Direction import net.minecraft.world.level.Level import net.minecraft.world.level.block.Block import net.minecraft.world.level.block.state.BlockState @@ -53,17 +54,11 @@ class EnergyCableBlockEntity(blockPos: BlockPos, blockState: BlockState) : Matte } ru.dbotthepony.mc.otm.onceServer { - val newState = blockState.setValue(CableBlock.MAPPING_CONNECTION_PROP[blockRotation.side2Dir(side)]!!, true) - - if (newState !== blockState) - level?.setBlock(blockPos, newState, Block.UPDATE_CLIENTS) + updateBlockState(blockRotation.side2Dir(side), true) } } else { ru.dbotthepony.mc.otm.onceServer { - val newState = blockState.setValue(CableBlock.MAPPING_CONNECTION_PROP[blockRotation.side2Dir(side)]!!, false) - - if (newState !== blockState) - level?.setBlock(blockPos, newState, Block.UPDATE_CLIENTS) + updateBlockState(blockRotation.side2Dir(side), false) } } } @@ -98,23 +93,24 @@ class EnergyCableBlockEntity(blockPos: BlockPos, blockState: BlockState) : Matte override fun onNeighbour(link: Link) { if (link is DirectionLink) { - val newState = blockState.setValue(CableBlock.MAPPING_CONNECTION_PROP[link.direction]!!, true) - - if (newState !== blockState && SERVER_IS_LIVE) - level?.setBlock(blockPos, newState, Block.UPDATE_CLIENTS) + updateBlockState(link.direction, true) } } override fun onUnNeighbour(link: Link) { if (link is DirectionLink) { - val newState = blockState.setValue(CableBlock.MAPPING_CONNECTION_PROP[link.direction]!!, false) - - if (newState !== blockState && SERVER_IS_LIVE) - level?.setBlock(blockPos, newState, Block.UPDATE_CLIENTS) + updateBlockState(link.direction, false) } } } + private fun updateBlockState(side: Direction, status: Boolean) { + val newState = blockState.setValue(CableBlock.MAPPING_CONNECTION_PROP[side]!!, status) + + if (newState !== blockState && SERVER_IS_LIVE) + level?.setBlock(blockPos, newState, Block.UPDATE_CLIENTS) + } + override val blockRotation: BlockRotation get() = BlockRotation.NORTH