This commit is contained in:
DBotThePony 2023-12-29 16:41:56 +07:00
parent 35e0bc65da
commit d5f1d3cde0
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

@ -1,6 +1,7 @@
package ru.dbotthepony.mc.otm.block.entity.cable package ru.dbotthepony.mc.otm.block.entity.cable
import net.minecraft.core.BlockPos import net.minecraft.core.BlockPos
import net.minecraft.core.Direction
import net.minecraft.world.level.Level import net.minecraft.world.level.Level
import net.minecraft.world.level.block.Block import net.minecraft.world.level.block.Block
import net.minecraft.world.level.block.state.BlockState import net.minecraft.world.level.block.state.BlockState
@ -53,17 +54,11 @@ class EnergyCableBlockEntity(blockPos: BlockPos, blockState: BlockState) : Matte
} }
ru.dbotthepony.mc.otm.onceServer { ru.dbotthepony.mc.otm.onceServer {
val newState = blockState.setValue(CableBlock.MAPPING_CONNECTION_PROP[blockRotation.side2Dir(side)]!!, true) updateBlockState(blockRotation.side2Dir(side), true)
if (newState !== blockState)
level?.setBlock(blockPos, newState, Block.UPDATE_CLIENTS)
} }
} else { } else {
ru.dbotthepony.mc.otm.onceServer { ru.dbotthepony.mc.otm.onceServer {
val newState = blockState.setValue(CableBlock.MAPPING_CONNECTION_PROP[blockRotation.side2Dir(side)]!!, false) updateBlockState(blockRotation.side2Dir(side), false)
if (newState !== blockState)
level?.setBlock(blockPos, newState, Block.UPDATE_CLIENTS)
} }
} }
} }
@ -98,22 +93,23 @@ class EnergyCableBlockEntity(blockPos: BlockPos, blockState: BlockState) : Matte
override fun onNeighbour(link: Link) { override fun onNeighbour(link: Link) {
if (link is DirectionLink) { if (link is DirectionLink) {
val newState = blockState.setValue(CableBlock.MAPPING_CONNECTION_PROP[link.direction]!!, true) updateBlockState(link.direction, true)
if (newState !== blockState && SERVER_IS_LIVE)
level?.setBlock(blockPos, newState, Block.UPDATE_CLIENTS)
} }
} }
override fun onUnNeighbour(link: Link) { override fun onUnNeighbour(link: Link) {
if (link is DirectionLink) { if (link is DirectionLink) {
val newState = blockState.setValue(CableBlock.MAPPING_CONNECTION_PROP[link.direction]!!, false) 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) if (newState !== blockState && SERVER_IS_LIVE)
level?.setBlock(blockPos, newState, Block.UPDATE_CLIENTS) level?.setBlock(blockPos, newState, Block.UPDATE_CLIENTS)
} }
}
}
override val blockRotation: BlockRotation override val blockRotation: BlockRotation
get() = BlockRotation.NORTH get() = BlockRotation.NORTH