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() {
|
||||
super.recalculateQuickCraftRemaining()
|
||||
}
|
||||
|
@ -1782,6 +1782,14 @@ open class EditablePanel<out S : Screen> @JvmOverloads constructor(
|
||||
protected open fun beforeRemoved() {}
|
||||
protected open fun onRemoved() {}
|
||||
|
||||
internal fun markRemoved() {
|
||||
if (!isRemoved) {
|
||||
isRemoved = true
|
||||
onRemoved()
|
||||
children.forEach { it.markRemoved() }
|
||||
}
|
||||
}
|
||||
|
||||
fun remove() {
|
||||
if (isRemoved) {
|
||||
return
|
||||
|
Loading…
Reference in New Issue
Block a user