diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt index b5fc409a3..3c4bcc0cf 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt @@ -3,6 +3,7 @@ package ru.dbotthepony.mc.otm.client.screen import com.mojang.blaze3d.systems.RenderSystem import it.unimi.dsi.fastutil.ints.Int2ObjectFunction import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap +import it.unimi.dsi.fastutil.objects.ObjectArrayList import net.minecraft.ChatFormatting import net.minecraft.client.gui.Font import net.minecraft.client.gui.GuiGraphics @@ -54,6 +55,7 @@ import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget import ru.dbotthepony.mc.otm.menu.widget.ProfiledLevelGaugeWidget import java.util.* import kotlin.collections.ArrayDeque +import kotlin.collections.ArrayList import kotlin.collections.List import kotlin.collections.MutableSet import kotlin.collections.isNotEmpty @@ -471,7 +473,7 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit override fun onClose() { super.onClose() - panels.forEach { it.markRemoved() } + ObjectArrayList(panels).forEach { it.markRemoved() } } public override fun recalculateQuickCraftRemaining() { @@ -506,7 +508,7 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit var click = false var focusKilled = false - for (panel in panels) { + for (panel in ObjectArrayList(panels)) { if (click || !panel.mouseClickedChecked(x, y, button)) { focusKilled = panel.killFocus() || focusKilled } else { @@ -525,7 +527,7 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit private var lastDragSlot: Slot? = null override fun mouseDragged(x: Double, y: Double, button: Int, xDelta: Double, yDelta: Double): Boolean { - for (panel in panels) { + for (panel in ObjectArrayList(panels)) { if (panel.mouseDraggedChecked(x, y, button, xDelta, yDelta)) { if (returnSlot != null) { super.mouseDragged(x, y, button, xDelta, yDelta) @@ -553,7 +555,7 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit } } - for (panel in panels) { + for (panel in ObjectArrayList(panels)) { if (panel.mouseReleasedChecked(p_97812_, p_97813_, p_97814_)) { if (returnSlot != null) { super.mouseReleased(p_97812_, p_97813_, p_97814_) @@ -569,7 +571,7 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit } override fun mouseScrolled(mouseX: Double, mouseY: Double, scrollX: Double, scrollY: Double): Boolean { - for (panel in panels) { + for (panel in ObjectArrayList(panels)) { if (panel.mouseScrolledChecked(mouseX, mouseY, scrollY)) { return true } @@ -579,7 +581,7 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit } override fun keyReleased(p_94715_: Int, p_94716_: Int, p_94717_: Int): Boolean { - for (panel in panels) { + for (panel in ObjectArrayList(panels)) { if (panel.keyReleased(p_94715_, p_94716_, p_94717_)) { return true } @@ -589,7 +591,7 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit } override fun charTyped(p_94683_: Char, p_94684_: Int): Boolean { - for (panel in panels) { + for (panel in ObjectArrayList(panels)) { if (panel.charTyped(p_94683_, p_94684_)) { return true } @@ -599,7 +601,7 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit } override fun keyPressed(key: Int, scancode: Int, mods: Int): Boolean { - for (panel in panels) { + for (panel in ObjectArrayList(panels)) { if (panel.keyPressed(key, scancode, mods)) { if (returnSlot != null) { super.keyPressed(key, scancode, mods)