From 9f8e7693a871993baf6064bf991639a3f47df3b5 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sun, 23 Mar 2025 01:28:06 +0700 Subject: [PATCH] Add IEnhancedContainer specific optimization --- .../ru/dbotthepony/mc/otm/core/util/LootTableUtils.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/core/util/LootTableUtils.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/core/util/LootTableUtils.kt index ae0a0a1be..8821690ee 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/core/util/LootTableUtils.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/core/util/LootTableUtils.kt @@ -9,6 +9,7 @@ import net.minecraft.world.item.ItemStack import net.minecraft.world.level.storage.loot.LootParams import net.minecraft.world.level.storage.loot.LootTable import org.apache.logging.log4j.LogManager +import ru.dbotthepony.mc.otm.container.IEnhancedContainer import ru.dbotthepony.mc.otm.container.get import ru.dbotthepony.mc.otm.container.set import ru.dbotthepony.mc.otm.core.isNotEmpty @@ -105,9 +106,14 @@ private fun shuffle(items: MutableList, emptySlotCount: Int, random: fun LootTable.fill(params: LootParams, random: RandomSource, container: Container, rounds: Int = 1) { val emptySlots = IntArrayList() - for (i in 0 until container.containerSize) - if (container[i].isEmpty) + if (container is IEnhancedContainer<*>) { + for (i in container.emptySlotIndexIterator()) emptySlots.add(i) + } else { + for (i in 0 until container.containerSize) + if (container[i].isEmpty) + emptySlots.add(i) + } emptySlots.shuffle(random)