Add setCount helper method to loot container builder
This commit is contained in:
parent
ac2a7e0746
commit
23532400bf
@ -7,6 +7,7 @@ import net.minecraft.data.DataGenerator
|
||||
import net.minecraft.data.loot.BlockLoot
|
||||
import net.minecraft.data.loot.LootTableProvider
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.util.valueproviders.UniformInt
|
||||
import net.minecraft.world.level.ItemLike
|
||||
import net.minecraft.world.level.block.Block
|
||||
import net.minecraft.world.level.block.SlabBlock
|
||||
@ -15,13 +16,16 @@ import net.minecraft.world.level.storage.loot.LootPool
|
||||
import net.minecraft.world.level.storage.loot.LootTable
|
||||
import net.minecraft.world.level.storage.loot.ValidationContext
|
||||
import net.minecraft.world.level.storage.loot.entries.LootItem
|
||||
import net.minecraft.world.level.storage.loot.entries.LootPoolSingletonContainer
|
||||
import net.minecraft.world.level.storage.loot.functions.CopyNbtFunction
|
||||
import net.minecraft.world.level.storage.loot.functions.LootItemFunctions
|
||||
import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction
|
||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSet
|
||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets
|
||||
import net.minecraft.world.level.storage.loot.predicates.LootItemBlockStatePropertyCondition
|
||||
import net.minecraft.world.level.storage.loot.providers.nbt.ContextNbtProvider
|
||||
import net.minecraft.world.level.storage.loot.providers.number.ConstantValue
|
||||
import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator
|
||||
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity
|
||||
import ru.dbotthepony.mc.otm.block.entity.MatteryWorkerBlockEntity
|
||||
import java.util.*
|
||||
@ -40,6 +44,21 @@ fun singleLootPool(f: (LootPool.Builder) -> Unit): LootTable.Builder {
|
||||
|
||||
fun LootTable.Builder.lootPool(configurator: LootPool.Builder.() -> Unit): LootTable.Builder = withPool(LootPool.lootPool().also(configurator))
|
||||
|
||||
fun <T : LootPoolSingletonContainer.Builder<*>> T.setCount(count: Int): T {
|
||||
apply(SetItemCountFunction.setCount(ConstantValue.exactly(count.toFloat())))
|
||||
return this
|
||||
}
|
||||
|
||||
fun <T : LootPoolSingletonContainer.Builder<*>> T.setCount(minimal: Int, maximal: Int): T {
|
||||
apply(SetItemCountFunction.setCount(UniformGenerator.between(minimal.toFloat(), maximal.toFloat())))
|
||||
return this
|
||||
}
|
||||
|
||||
fun <T : LootPoolSingletonContainer.Builder<*>> T.setCount(minimal: Float, maximal: Float): T {
|
||||
apply(SetItemCountFunction.setCount(UniformGenerator.between(minimal.toFloat(), maximal.toFloat())))
|
||||
return this
|
||||
}
|
||||
|
||||
data class NbtCopy(val source: String, val destination: String, val strategy: CopyNbtFunction.MergeStrategy = CopyNbtFunction.MergeStrategy.REPLACE)
|
||||
|
||||
fun TileNbtCopy(source: String, strategy: CopyNbtFunction.MergeStrategy = CopyNbtFunction.MergeStrategy.REPLACE): NbtCopy {
|
||||
|
Loading…
Reference in New Issue
Block a user