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)