Make "powered" cable display handle more edge cases
This commit is contained in:
parent
f9bd671e88
commit
5813a3ad65
@ -233,6 +233,7 @@ class EnergyCableGraph : GraphNodeList<EnergyCableBlockEntity.Node, EnergyCableG
|
|||||||
private var lastTick = 0
|
private var lastTick = 0
|
||||||
private var lastPoweredStatus = 0
|
private var lastPoweredStatus = 0
|
||||||
private var lastPoweredSwitchFrequency = 0
|
private var lastPoweredSwitchFrequency = 0
|
||||||
|
private var poweredStatusFlightTicks = 4
|
||||||
|
|
||||||
private fun updateBlockstates(): Boolean {
|
private fun updateBlockstates(): Boolean {
|
||||||
if (nodes.isEmpty()) return false
|
if (nodes.isEmpty()) return false
|
||||||
@ -245,7 +246,7 @@ class EnergyCableGraph : GraphNodeList<EnergyCableBlockEntity.Node, EnergyCableG
|
|||||||
val newState = transferredLastTick.isPositive
|
val newState = transferredLastTick.isPositive
|
||||||
val numState = if (newState) 1 else -1
|
val numState = if (newState) 1 else -1
|
||||||
|
|
||||||
if (numState != lastPoweredStatus || true) {
|
if (numState != lastPoweredStatus || --poweredStatusFlightTicks > 0) {
|
||||||
lastPoweredStatus = numState
|
lastPoweredStatus = numState
|
||||||
nodes.forEach { if (it.segment === this) it.updatePoweredState(newState) }
|
nodes.forEach { if (it.segment === this) it.updatePoweredState(newState) }
|
||||||
}
|
}
|
||||||
@ -395,6 +396,7 @@ class EnergyCableGraph : GraphNodeList<EnergyCableBlockEntity.Node, EnergyCableG
|
|||||||
}
|
}
|
||||||
|
|
||||||
lastPoweredStatus = 0
|
lastPoweredStatus = 0
|
||||||
|
poweredStatusFlightTicks = 4
|
||||||
paths.forEach { it.nodes.addAll(nodes) }
|
paths.forEach { it.nodes.addAll(nodes) }
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user