Mark panels removed when screen is removed
This commit is contained in:
parent
82d46f4cf4
commit
2766a444d6
@ -466,6 +466,11 @@ abstract class MatteryScreen<T : MatteryMenu>(menu: T, inventory: Inventory, tit
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onClose() {
|
||||||
|
super.onClose()
|
||||||
|
panels.forEach { it.markRemoved() }
|
||||||
|
}
|
||||||
|
|
||||||
public override fun recalculateQuickCraftRemaining() {
|
public override fun recalculateQuickCraftRemaining() {
|
||||||
super.recalculateQuickCraftRemaining()
|
super.recalculateQuickCraftRemaining()
|
||||||
}
|
}
|
||||||
|
@ -1782,6 +1782,14 @@ open class EditablePanel<out S : Screen> @JvmOverloads constructor(
|
|||||||
protected open fun beforeRemoved() {}
|
protected open fun beforeRemoved() {}
|
||||||
protected open fun onRemoved() {}
|
protected open fun onRemoved() {}
|
||||||
|
|
||||||
|
internal fun markRemoved() {
|
||||||
|
if (!isRemoved) {
|
||||||
|
isRemoved = true
|
||||||
|
onRemoved()
|
||||||
|
children.forEach { it.markRemoved() }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun remove() {
|
fun remove() {
|
||||||
if (isRemoved) {
|
if (isRemoved) {
|
||||||
return
|
return
|
||||||
|
Loading…
Reference in New Issue
Block a user