@@ -48,23 +48,25 @@ data class BreakInfo(
4848
4949 // Pre Processing
5050 var shouldProgress = false
51- var rebreakPotential by OneSetPerTick (value = RebreakHandler .RebreakPotential .None , throwOnLimitBreach = true )
52- var swapInfo by OneSetPerTick (value = SwapInfo .EMPTY , throwOnLimitBreach = true )
53- var swapStack: ItemStack by OneSetPerTick (ItemStack .EMPTY , true )
51+ var rebreakPotential by OneSetPerTick (value = RebreakHandler .RebreakPotential .None , throwOnLimitBreach = true ).linkLifetime()
52+ var swapInfo by OneSetPerTick (value = SwapInfo .EMPTY , throwOnLimitBreach = true ).linkLifetime()
53+ var swapStack: ItemStack by OneSetPerTick (ItemStack .EMPTY , true ).linkLifetime()
5454
5555 // BreakInfo Specific
56- var updatedThisTick by OneSetPerTick (false , resetAfterTick = true ).apply { set(true ) }
57- var updatedPreProcessingThisTick by OneSetPerTick (value = false , throwOnLimitBreach = true , resetAfterTick = true )
58- var progressedThisTick by OneSetPerTick (value = false , throwOnLimitBreach = true , resetAfterTick = true )
56+ var updatedThisTick by OneSetPerTick (false , resetAfterTick = true ).apply { set(true ) }.linkLifetime()
57+ var updatedPreProcessingThisTick by OneSetPerTick (value = false , throwOnLimitBreach = true , resetAfterTick = true ).linkLifetime()
58+ var progressedThisTick by OneSetPerTick (value = false , throwOnLimitBreach = true , resetAfterTick = true ).linkLifetime()
5959
6060 // Processing
6161 var breaking = false
6262 var abandoned = false
63- var breakingTicks by OneSetPerTick (0 , true )
64- var soundsCooldown by OneSetPerTick (0f , true )
63+ var breakingTicks by OneSetPerTick (0 , true ).linkLifetime()
64+ var soundsCooldown by OneSetPerTick (0f , true ).linkLifetime()
6565 var vanillaInstantBreakable = false
6666 val rebreakable get() = ! vanillaInstantBreakable && type == Primary
6767
68+ val oneSetPerTickSet = mutableSetOf<OneSetPerTick <* >>()
69+
6870 enum class BreakType (
6971 override val displayName : String ,
7072 override val description : String
@@ -173,4 +175,7 @@ data class BreakInfo(
173175 }
174176
175177 override fun toString () = " $type , ${context.cachedState} , ${context.blockPos} "
178+
179+ private fun <T : Any > OneSetPerTick<T>.linkLifetime () =
180+ apply { oneSetPerTickSet.add(this ) }
176181}
0 commit comments