Make "powered" cable display handle more edge cases

This commit is contained in:
DBotThePony 2025-02-11 18:13:19 +07:00
parent f9bd671e88
commit 5813a3ad65
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

@ -233,6 +233,7 @@ class EnergyCableGraph : GraphNodeList<EnergyCableBlockEntity.Node, EnergyCableG
private var lastTick = 0
private var lastPoweredStatus = 0
private var lastPoweredSwitchFrequency = 0
private var poweredStatusFlightTicks = 4
private fun updateBlockstates(): Boolean {
if (nodes.isEmpty()) return false
@ -245,7 +246,7 @@ class EnergyCableGraph : GraphNodeList<EnergyCableBlockEntity.Node, EnergyCableG
val newState = transferredLastTick.isPositive
val numState = if (newState) 1 else -1
if (numState != lastPoweredStatus || true) {
if (numState != lastPoweredStatus || --poweredStatusFlightTicks > 0) {
lastPoweredStatus = numState
nodes.forEach { if (it.segment === this) it.updatePoweredState(newState) }
}
@ -395,6 +396,7 @@ class EnergyCableGraph : GraphNodeList<EnergyCableBlockEntity.Node, EnergyCableG
}
lastPoweredStatus = 0
poweredStatusFlightTicks = 4
paths.forEach { it.nodes.addAll(nodes) }
return result
}