diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTables.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTables.kt index d822fca24..b85e6a88e 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTables.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTables.kt @@ -4,7 +4,6 @@ import com.mojang.datafixers.util.Pair import it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap import it.unimi.dsi.fastutil.objects.Reference2ObjectArrayMap import it.unimi.dsi.fastutil.objects.Reference2ObjectFunction -import it.unimi.dsi.fastutil.objects.ReferenceArraySet import net.minecraft.advancements.critereon.StatePropertiesPredicate import net.minecraft.data.DataGenerator import net.minecraft.data.loot.LootTableProvider @@ -43,6 +42,15 @@ inline fun singleLootPool(f: (LootPool.Builder) -> Unit): LootTable.Builder { } inline fun LootTable.Builder.lootPool(configurator: LootPool.Builder.() -> Unit): LootTable.Builder = withPool(LootPool.lootPool().also(configurator)) +inline fun LootPool.Builder.item(item: ItemLike, configurator: LootPoolSingletonContainer.Builder<*>.() -> Unit) { + add(LootItem.lootTableItem(item).also(configurator)) +} + +fun LootPool.Builder.setRolls(count: Int): LootPool.Builder = setRolls(ConstantValue.exactly(count.toFloat())) +fun LootPool.Builder.setRolls(count: Float): LootPool.Builder = setRolls(ConstantValue.exactly(count)) + +fun LootPool.Builder.setRolls(min: Int, max: Int): LootPool.Builder = setRolls(UniformGenerator.between(min.toFloat(), max.toFloat())) +fun LootPool.Builder.setRolls(min: Float, max: Float): LootPool.Builder = setRolls(UniformGenerator.between(min, max)) fun > T.setCount(count: Int): T { apply(SetItemCountFunction.setCount(ConstantValue.exactly(count.toFloat()))) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTablesChests.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTablesChests.kt index ac7e928ec..423fc171d 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTablesChests.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTablesChests.kt @@ -10,11 +10,11 @@ import ru.dbotthepony.mc.otm.registry.MItems fun addChestLootTables(loot: LootTables) { loot.builder(LootContextParamSets.CHEST, modLocation("food_box")) { lootPool { - add(LootItem.lootTableItem(Items.PACKED_ICE).setCount(minimal = 1, maximal = 3)) - add(LootItem.lootTableItem(MItems.NUTRIENT_PASTE).setCount(minimal = 1, maximal = 2)) - add(LootItem.lootTableItem(Items.SNOWBALL).setCount(minimal = 1, maximal = 5)) + item(Items.PACKED_ICE) { setCount(minimal = 1, maximal = 3) } + item(MItems.NUTRIENT_PASTE) { setCount(minimal = 1, maximal = 2) } + item(Items.SNOWBALL) { setCount(minimal = 1, maximal = 5) } - setRolls(ConstantValue.exactly(3f)) + setRolls(3) } } }