Update loot tables api
This commit is contained in:
parent
78211dce2b
commit
0b3a9221f7
@ -1,13 +1,14 @@
|
|||||||
package ru.dbotthepony.mc.otm.datagen.loot
|
package ru.dbotthepony.mc.otm.datagen.loot
|
||||||
|
|
||||||
import com.mojang.datafixers.util.Pair
|
import com.mojang.datafixers.util.Pair
|
||||||
import it.unimi.dsi.fastutil.objects.ObjectArraySet
|
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.advancements.critereon.StatePropertiesPredicate
|
||||||
import net.minecraft.data.DataGenerator
|
import net.minecraft.data.DataGenerator
|
||||||
import net.minecraft.data.loot.BlockLoot
|
|
||||||
import net.minecraft.data.loot.LootTableProvider
|
import net.minecraft.data.loot.LootTableProvider
|
||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
import net.minecraft.util.valueproviders.UniformInt
|
|
||||||
import net.minecraft.world.level.ItemLike
|
import net.minecraft.world.level.ItemLike
|
||||||
import net.minecraft.world.level.block.Block
|
import net.minecraft.world.level.block.Block
|
||||||
import net.minecraft.world.level.block.SlabBlock
|
import net.minecraft.world.level.block.SlabBlock
|
||||||
@ -18,7 +19,6 @@ 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.LootItem
|
||||||
import net.minecraft.world.level.storage.loot.entries.LootPoolSingletonContainer
|
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.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.functions.SetItemCountFunction
|
||||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSet
|
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.parameters.LootContextParamSets
|
||||||
@ -28,7 +28,7 @@ import net.minecraft.world.level.storage.loot.providers.number.ConstantValue
|
|||||||
import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator
|
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.MatteryBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryWorkerBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.MatteryWorkerBlockEntity
|
||||||
import java.util.*
|
import ru.dbotthepony.mc.otm.core.registryName
|
||||||
import java.util.function.BiConsumer
|
import java.util.function.BiConsumer
|
||||||
import java.util.function.Consumer
|
import java.util.function.Consumer
|
||||||
import java.util.function.Supplier
|
import java.util.function.Supplier
|
||||||
@ -38,11 +38,11 @@ private typealias LootTableCallback = Consumer<LootTableSaver>
|
|||||||
private typealias LootTableCallbackProvider = Supplier<LootTableCallback>
|
private typealias LootTableCallbackProvider = Supplier<LootTableCallback>
|
||||||
private typealias LootTuple = Pair<LootTableCallbackProvider, LootContextParamSet>
|
private typealias LootTuple = Pair<LootTableCallbackProvider, LootContextParamSet>
|
||||||
|
|
||||||
fun singleLootPool(f: (LootPool.Builder) -> Unit): LootTable.Builder {
|
inline fun singleLootPool(f: (LootPool.Builder) -> Unit): LootTable.Builder {
|
||||||
return LootTable.lootTable().withPool(LootPool.lootPool().also(f))
|
return LootTable.lootTable().withPool(LootPool.lootPool().also(f))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun LootTable.Builder.lootPool(configurator: LootPool.Builder.() -> Unit): LootTable.Builder = withPool(LootPool.lootPool().also(configurator))
|
inline fun LootTable.Builder.lootPool(configurator: LootPool.Builder.() -> Unit): LootTable.Builder = withPool(LootPool.lootPool().also(configurator))
|
||||||
|
|
||||||
fun <T : LootPoolSingletonContainer.Builder<*>> T.setCount(count: Int): T {
|
fun <T : LootPoolSingletonContainer.Builder<*>> T.setCount(count: Int): T {
|
||||||
apply(SetItemCountFunction.setCount(ConstantValue.exactly(count.toFloat())))
|
apply(SetItemCountFunction.setCount(ConstantValue.exactly(count.toFloat())))
|
||||||
@ -88,21 +88,37 @@ private val poweredMatterWorker = arrayOf(
|
|||||||
)
|
)
|
||||||
|
|
||||||
class LootTables(generator: DataGenerator) : LootTableProvider(generator) {
|
class LootTables(generator: DataGenerator) : LootTableProvider(generator) {
|
||||||
private val providers = LinkedList<LootTuple>()
|
private val providersTable = Reference2ObjectArrayMap<LootContextParamSet, Object2ObjectArrayMap<ResourceLocation, () -> LootTable.Builder>>()
|
||||||
|
|
||||||
|
fun builder(context: LootContextParamSet, id: ResourceLocation, provider: LootTable.Builder.() -> Unit) {
|
||||||
|
provider(context, id) {
|
||||||
|
LootTable.lootTable().also(provider)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun provider(context: LootContextParamSet, id: ResourceLocation, provider: () -> LootTable.Builder) {
|
||||||
|
check(providersTable
|
||||||
|
.computeIfAbsent(context, Reference2ObjectFunction { Object2ObjectArrayMap() })
|
||||||
|
.put(id, provider) == null) { "Duplicate loot pool entry for $id" }
|
||||||
|
}
|
||||||
|
|
||||||
override fun getTables(): List<LootTuple> {
|
override fun getTables(): List<LootTuple> {
|
||||||
return providers
|
return providersTable.entries.stream().map { entry ->
|
||||||
|
Pair.of(LootTableCallbackProvider {
|
||||||
|
LootTableCallback {
|
||||||
|
for ((id, callback) in entry.value) {
|
||||||
|
it.accept(id, callback.invoke())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, entry.key)
|
||||||
|
}.toList()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun validate(map: MutableMap<ResourceLocation, LootTable>, validationtracker: ValidationContext) {}
|
override fun validate(map: MutableMap<ResourceLocation, LootTable>, validationtracker: ValidationContext) {}
|
||||||
|
|
||||||
fun block(provider: LootTableCallback) {
|
|
||||||
providers.add(Pair(Supplier { provider }, LootContextParamSets.BLOCK))
|
|
||||||
}
|
|
||||||
|
|
||||||
fun createSlabItemTable(block: Block) {
|
fun createSlabItemTable(block: Block) {
|
||||||
provider(LootContextParamSets.BLOCK) {
|
builder(LootContextParamSets.BLOCK, block.lootTable) {
|
||||||
it.accept(block.lootTable, LootTable.lootTable().withPool(
|
withPool(
|
||||||
LootPool.lootPool().setRolls(ConstantValue.exactly(1.0f)).add(
|
LootPool.lootPool().setRolls(ConstantValue.exactly(1.0f)).add(
|
||||||
LootItem.lootTableItem(block).apply(
|
LootItem.lootTableItem(block).apply(
|
||||||
SetItemCountFunction.setCount(
|
SetItemCountFunction.setCount(
|
||||||
@ -115,7 +131,7 @@ class LootTables(generator: DataGenerator) : LootTableProvider(generator) {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
))
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,48 +139,34 @@ class LootTables(generator: DataGenerator) : LootTableProvider(generator) {
|
|||||||
block.forEach(this::createSlabItemTable)
|
block.forEach(this::createSlabItemTable)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun blockSimple(block: Block, provider: (LootPool.Builder) -> Unit) {
|
fun blockProvider(block: Block, provider: () -> LootTable.Builder) {
|
||||||
block {
|
provider(LootContextParamSets.BLOCK, block.registryName!!, provider)
|
||||||
it.accept(block.lootTable, singleLootPool(provider::invoke))
|
}
|
||||||
|
|
||||||
|
fun block(block: Block, provider: LootPool.Builder.() -> Unit) {
|
||||||
|
builder(LootContextParamSets.BLOCK, block.registryName!!) {
|
||||||
|
lootPool(provider)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun provider(context: LootContextParamSet, provider: LootTableCallback) {
|
fun singleLootPool(context: LootContextParamSet, id: ResourceLocation, block: LootPool.Builder.() -> Unit) {
|
||||||
providers.add(Pair(Supplier { provider }, context))
|
builder(context, id) {
|
||||||
}
|
withPool(LootPool.lootPool().also(block))
|
||||||
|
|
||||||
fun provider(context: LootContextParamSet, id: ResourceLocation, block: LootTable.Builder.() -> Unit) {
|
|
||||||
providers.add(Pair(Supplier { Consumer { it.accept(id, LootTable.lootTable().also(block)) } }, context))
|
|
||||||
}
|
|
||||||
|
|
||||||
private val seenStuff = ObjectArraySet<Any>()
|
|
||||||
|
|
||||||
fun dropsSelf(block: Block) {
|
|
||||||
if (!seenStuff.add(block)) {
|
|
||||||
throw IllegalStateException("Already seen $block")
|
|
||||||
}
|
|
||||||
|
|
||||||
block {
|
|
||||||
it.accept(block.lootTable, singleLootPool {
|
|
||||||
it.add(LootItem.lootTableItem(block))
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun dropsOther(block: Block, other: ItemLike) {
|
fun dropsOther(block: Block, other: ItemLike) {
|
||||||
if (!seenStuff.add(block)) {
|
singleLootPool(LootContextParamSets.BLOCK, block.lootTable) {
|
||||||
throw IllegalStateException("Already seen $block")
|
add(LootItem.lootTableItem(other))
|
||||||
}
|
|
||||||
|
|
||||||
block {
|
|
||||||
it.accept(block.lootTable, singleLootPool {
|
|
||||||
it.add(LootItem.lootTableItem(other))
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun dropsSelf(vararg blocks: Block) {
|
fun dropsSelf(vararg blocks: Block) {
|
||||||
blocks.forEach(this::dropsSelf)
|
for (block in blocks) {
|
||||||
|
singleLootPool(LootContextParamSets.BLOCK, block.lootTable) {
|
||||||
|
add(LootItem.lootTableItem(block))
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun dropsSelf(blocks: Collection<Block>) {
|
fun dropsSelf(blocks: Collection<Block>) {
|
||||||
@ -172,19 +174,13 @@ class LootTables(generator: DataGenerator) : LootTableProvider(generator) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun tile(block: Block, f: (CopyNbtFunction.Builder) -> Unit = {}) {
|
fun tile(block: Block, f: (CopyNbtFunction.Builder) -> Unit = {}) {
|
||||||
if (!seenStuff.add(block)) {
|
singleLootPool(LootContextParamSets.BLOCK, block.lootTable) {
|
||||||
throw IllegalStateException("Already seen $block")
|
add(LootItem.lootTableItem(block).also {
|
||||||
}
|
|
||||||
|
|
||||||
block {
|
|
||||||
it.accept(block.lootTable, singleLootPool {
|
|
||||||
it.add(LootItem.lootTableItem(block).also {
|
|
||||||
it.apply(CopyNbtFunction.copyData(ContextNbtProvider.BLOCK_ENTITY).also {
|
it.apply(CopyNbtFunction.copyData(ContextNbtProvider.BLOCK_ENTITY).also {
|
||||||
it.copy("Name", "BlockEntityTag.Name")
|
it.copy("Name", "BlockEntityTag.Name")
|
||||||
f(it)
|
f(it)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import ru.dbotthepony.mc.otm.datagen.modLocation
|
|||||||
import ru.dbotthepony.mc.otm.registry.MItems
|
import ru.dbotthepony.mc.otm.registry.MItems
|
||||||
|
|
||||||
fun addChestLootTables(loot: LootTables) {
|
fun addChestLootTables(loot: LootTables) {
|
||||||
loot.provider(LootContextParamSets.CHEST, modLocation("food_box")) {
|
loot.builder(LootContextParamSets.CHEST, modLocation("food_box")) {
|
||||||
lootPool {
|
lootPool {
|
||||||
add(LootItem.lootTableItem(Items.PACKED_ICE).setCount(minimal = 1, maximal = 3))
|
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(MItems.NUTRIENT_PASTE).setCount(minimal = 1, maximal = 2))
|
||||||
|
@ -2,14 +2,10 @@ package ru.dbotthepony.mc.otm.datagen.loot
|
|||||||
|
|
||||||
import net.minecraft.advancements.critereon.StatePropertiesPredicate
|
import net.minecraft.advancements.critereon.StatePropertiesPredicate
|
||||||
import net.minecraft.data.loot.BlockLoot
|
import net.minecraft.data.loot.BlockLoot
|
||||||
import net.minecraft.world.item.DyeColor
|
|
||||||
import net.minecraft.world.item.ItemStack
|
|
||||||
import net.minecraft.world.item.Items
|
import net.minecraft.world.item.Items
|
||||||
import net.minecraft.world.level.block.state.properties.BlockStateProperties
|
import net.minecraft.world.level.block.state.properties.BlockStateProperties
|
||||||
import net.minecraft.world.level.block.state.properties.DoubleBlockHalf
|
import net.minecraft.world.level.block.state.properties.DoubleBlockHalf
|
||||||
import net.minecraft.world.level.storage.loot.LootContext
|
|
||||||
import net.minecraft.world.level.storage.loot.entries.LootItem
|
import net.minecraft.world.level.storage.loot.entries.LootItem
|
||||||
import net.minecraft.world.level.storage.loot.entries.LootPoolEntries
|
|
||||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets
|
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.predicates.LootItemBlockStatePropertyCondition
|
||||||
import ru.dbotthepony.mc.otm.block.entity.ChemicalGeneratorBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.ChemicalGeneratorBlockEntity
|
||||||
@ -67,56 +63,56 @@ fun addLootTables(lootTables: LootTables) {
|
|||||||
lootTables.dropsSelf(MBlocks.TRITANIUM_TRAPDOOR)
|
lootTables.dropsSelf(MBlocks.TRITANIUM_TRAPDOOR)
|
||||||
lootTables.dropsSelf(MRegistry.TRITANIUM_PRESSURE_PLATE.allBlocks.values)
|
lootTables.dropsSelf(MRegistry.TRITANIUM_PRESSURE_PLATE.allBlocks.values)
|
||||||
|
|
||||||
lootTables.blockSimple(MBlocks.PHANTOM_ATTRACTOR) {
|
lootTables.block(MBlocks.PHANTOM_ATTRACTOR) {
|
||||||
it.add(LootItem.lootTableItem(MBlocks.PHANTOM_ATTRACTOR)
|
add(LootItem.lootTableItem(MBlocks.PHANTOM_ATTRACTOR)
|
||||||
.`when`(LootItemBlockStatePropertyCondition
|
.`when`(LootItemBlockStatePropertyCondition
|
||||||
.hasBlockStateProperties(MBlocks.PHANTOM_ATTRACTOR)
|
.hasBlockStateProperties(MBlocks.PHANTOM_ATTRACTOR)
|
||||||
.setProperties(StatePropertiesPredicate.Builder.properties()
|
.setProperties(StatePropertiesPredicate.Builder.properties()
|
||||||
.hasProperty(BlockStateProperties.DOUBLE_BLOCK_HALF, DoubleBlockHalf.LOWER))))
|
.hasProperty(BlockStateProperties.DOUBLE_BLOCK_HALF, DoubleBlockHalf.LOWER))))
|
||||||
}
|
}
|
||||||
|
|
||||||
lootTables.provider(LootContextParamSets.ADVANCEMENT_ENTITY) {
|
lootTables.builder(LootContextParamSets.ADVANCEMENT_ENTITY, modLocation("research_all_android")) {
|
||||||
it.accept(modLocation("research_all_android"), singleLootPool {
|
lootPool {
|
||||||
it.add(LootItem.lootTableItem(MItems.ExosuitUpgrades.INVENTORY_UPGRADE_HUGE))
|
add(LootItem.lootTableItem(MItems.ExosuitUpgrades.INVENTORY_UPGRADE_HUGE))
|
||||||
})
|
}
|
||||||
|
}
|
||||||
|
|
||||||
it.accept(modLocation("tritanium_block3"), singleLootPool {
|
lootTables.builder(LootContextParamSets.ADVANCEMENT_ENTITY, modLocation("tritanium_block3")) {
|
||||||
it.add(LootItem.lootTableItem(Items.WHITE_DYE).setQuality(8))
|
lootPool { add(LootItem.lootTableItem(Items.WHITE_DYE).setCount(8)) }
|
||||||
it.add(LootItem.lootTableItem(Items.ORANGE_DYE).setQuality(8))
|
lootPool { add(LootItem.lootTableItem(Items.ORANGE_DYE).setCount(8)) }
|
||||||
it.add(LootItem.lootTableItem(Items.MAGENTA_DYE).setQuality(8))
|
lootPool { add(LootItem.lootTableItem(Items.MAGENTA_DYE).setCount(8)) }
|
||||||
it.add(LootItem.lootTableItem(Items.LIGHT_BLUE_DYE).setQuality(8))
|
lootPool { add(LootItem.lootTableItem(Items.LIGHT_BLUE_DYE).setCount(8)) }
|
||||||
it.add(LootItem.lootTableItem(Items.YELLOW_DYE).setQuality(8))
|
lootPool { add(LootItem.lootTableItem(Items.YELLOW_DYE).setCount(8)) }
|
||||||
it.add(LootItem.lootTableItem(Items.LIME_DYE).setQuality(8))
|
lootPool { add(LootItem.lootTableItem(Items.LIME_DYE).setCount(8)) }
|
||||||
it.add(LootItem.lootTableItem(Items.PINK_DYE).setQuality(8))
|
lootPool { add(LootItem.lootTableItem(Items.PINK_DYE).setCount(8)) }
|
||||||
it.add(LootItem.lootTableItem(Items.GRAY_DYE).setQuality(8))
|
lootPool { add(LootItem.lootTableItem(Items.GRAY_DYE).setCount(8)) }
|
||||||
it.add(LootItem.lootTableItem(Items.LIGHT_GRAY_DYE).setQuality(8))
|
lootPool { add(LootItem.lootTableItem(Items.LIGHT_GRAY_DYE).setCount(8)) }
|
||||||
it.add(LootItem.lootTableItem(Items.CYAN_DYE).setQuality(8))
|
lootPool { add(LootItem.lootTableItem(Items.CYAN_DYE).setCount(8)) }
|
||||||
it.add(LootItem.lootTableItem(Items.PURPLE_DYE).setQuality(8))
|
lootPool { add(LootItem.lootTableItem(Items.PURPLE_DYE).setCount(8)) }
|
||||||
it.add(LootItem.lootTableItem(Items.BLUE_DYE).setQuality(8))
|
lootPool { add(LootItem.lootTableItem(Items.BLUE_DYE).setCount(8)) }
|
||||||
it.add(LootItem.lootTableItem(Items.BROWN_DYE).setQuality(8))
|
lootPool { add(LootItem.lootTableItem(Items.BROWN_DYE).setCount(8)) }
|
||||||
it.add(LootItem.lootTableItem(Items.GREEN_DYE).setQuality(8))
|
lootPool { add(LootItem.lootTableItem(Items.GREEN_DYE).setCount(8)) }
|
||||||
it.add(LootItem.lootTableItem(Items.RED_DYE).setQuality(8))
|
lootPool { add(LootItem.lootTableItem(Items.RED_DYE).setCount(8)) }
|
||||||
it.add(LootItem.lootTableItem(Items.BLACK_DYE).setQuality(8))
|
lootPool { add(LootItem.lootTableItem(Items.BLACK_DYE).setCount(8)) }
|
||||||
})
|
}
|
||||||
|
|
||||||
it.accept(modLocation("tritanium_block4"), singleLootPool {
|
lootTables.builder(LootContextParamSets.ADVANCEMENT_ENTITY, modLocation("tritanium_block4")) {
|
||||||
it.add(LootItem.lootTableItem(Items.WHITE_DYE).setQuality(64))
|
lootPool { add(LootItem.lootTableItem(Items.WHITE_DYE).setCount(64)) }
|
||||||
it.add(LootItem.lootTableItem(Items.ORANGE_DYE).setQuality(64))
|
lootPool { add(LootItem.lootTableItem(Items.ORANGE_DYE).setCount(64)) }
|
||||||
it.add(LootItem.lootTableItem(Items.MAGENTA_DYE).setQuality(64))
|
lootPool { add(LootItem.lootTableItem(Items.MAGENTA_DYE).setCount(64)) }
|
||||||
it.add(LootItem.lootTableItem(Items.LIGHT_BLUE_DYE).setQuality(64))
|
lootPool { add(LootItem.lootTableItem(Items.LIGHT_BLUE_DYE).setCount(64)) }
|
||||||
it.add(LootItem.lootTableItem(Items.YELLOW_DYE).setQuality(64))
|
lootPool { add(LootItem.lootTableItem(Items.YELLOW_DYE).setCount(64)) }
|
||||||
it.add(LootItem.lootTableItem(Items.LIME_DYE).setQuality(64))
|
lootPool { add(LootItem.lootTableItem(Items.LIME_DYE).setCount(64)) }
|
||||||
it.add(LootItem.lootTableItem(Items.PINK_DYE).setQuality(64))
|
lootPool { add(LootItem.lootTableItem(Items.PINK_DYE).setCount(64)) }
|
||||||
it.add(LootItem.lootTableItem(Items.GRAY_DYE).setQuality(64))
|
lootPool { add(LootItem.lootTableItem(Items.GRAY_DYE).setCount(64)) }
|
||||||
it.add(LootItem.lootTableItem(Items.LIGHT_GRAY_DYE).setQuality(64))
|
lootPool { add(LootItem.lootTableItem(Items.LIGHT_GRAY_DYE).setCount(64)) }
|
||||||
it.add(LootItem.lootTableItem(Items.CYAN_DYE).setQuality(64))
|
lootPool { add(LootItem.lootTableItem(Items.CYAN_DYE).setCount(64)) }
|
||||||
it.add(LootItem.lootTableItem(Items.PURPLE_DYE).setQuality(64))
|
lootPool { add(LootItem.lootTableItem(Items.PURPLE_DYE).setCount(64)) }
|
||||||
it.add(LootItem.lootTableItem(Items.BLUE_DYE).setQuality(64))
|
lootPool { add(LootItem.lootTableItem(Items.BLUE_DYE).setCount(64)) }
|
||||||
it.add(LootItem.lootTableItem(Items.BROWN_DYE).setQuality(64))
|
lootPool { add(LootItem.lootTableItem(Items.BROWN_DYE).setCount(64)) }
|
||||||
it.add(LootItem.lootTableItem(Items.GREEN_DYE).setQuality(64))
|
lootPool { add(LootItem.lootTableItem(Items.GREEN_DYE).setCount(64)) }
|
||||||
it.add(LootItem.lootTableItem(Items.RED_DYE).setQuality(64))
|
lootPool { add(LootItem.lootTableItem(Items.RED_DYE).setCount(64)) }
|
||||||
it.add(LootItem.lootTableItem(Items.BLACK_DYE).setQuality(64))
|
lootPool { add(LootItem.lootTableItem(Items.BLACK_DYE).setCount(64)) }
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
lootTables.tile(MBlocks.ENERGY_SERVO)
|
lootTables.tile(MBlocks.ENERGY_SERVO)
|
||||||
@ -156,7 +152,7 @@ fun addLootTables(lootTables: LootTables) {
|
|||||||
lootTables.poweredTile(MBlocks.MATTER_BOTTLER,
|
lootTables.poweredTile(MBlocks.MATTER_BOTTLER,
|
||||||
TileNbtCopy(MATTER_STORAGE_KEY), TileNbtCopy(MatterBottlerBlockEntity.IS_BOTTLING_KEY))
|
TileNbtCopy(MATTER_STORAGE_KEY), TileNbtCopy(MatterBottlerBlockEntity.IS_BOTTLING_KEY))
|
||||||
|
|
||||||
lootTables.block {
|
lootTables.blockProvider(MBlocks.TRITANIUM_DOOR) {
|
||||||
it.accept(MBlocks.TRITANIUM_DOOR.lootTable, BlockLoot.createDoorTable(MBlocks.TRITANIUM_DOOR))
|
BlockLoot.createDoorTable(MBlocks.TRITANIUM_DOOR)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user