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
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