parent
4dc132a8ec
commit
2b50109fd5
@ -18,6 +18,7 @@ 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.SetItemCountFunction
|
||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSet
|
||||
@ -93,7 +94,7 @@ class LootTables(generator: DataGenerator) : LootTableProvider(generator) {
|
||||
|
||||
override fun validate(map: MutableMap<ResourceLocation, LootTable>, validationtracker: ValidationContext) {}
|
||||
|
||||
fun createSlabItemTable(block: Block) {
|
||||
fun createSlabItemTable(block: Block, configurator: LootPoolSingletonContainer.Builder<*>.() -> Unit = {}) {
|
||||
builder(LootContextParamSets.BLOCK, block.lootTable) {
|
||||
withPool(
|
||||
LootPool.lootPool().setRolls(ConstantValue.exactly(1.0f)).add(
|
||||
@ -106,14 +107,16 @@ class LootTables(generator: DataGenerator) : LootTableProvider(generator) {
|
||||
.hasProperty(SlabBlock.TYPE, SlabType.DOUBLE)
|
||||
)
|
||||
)
|
||||
)
|
||||
).also(configurator)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun createSlabItemTable(block: Collection<Block>) {
|
||||
block.forEach(this::createSlabItemTable)
|
||||
fun createSlabItemTable(blocks: Collection<Block>, configurator: LootPoolSingletonContainer.Builder<*>.() -> Unit = {}) {
|
||||
for (block in blocks) {
|
||||
createSlabItemTable(block, configurator)
|
||||
}
|
||||
}
|
||||
|
||||
fun blockProvider(block: Block, provider: () -> LootTable.Builder) {
|
||||
@ -141,13 +144,23 @@ class LootTables(generator: DataGenerator) : LootTableProvider(generator) {
|
||||
fun dropsSelf(vararg blocks: Block) {
|
||||
for (block in blocks) {
|
||||
singleLootPool(LootContextParamSets.BLOCK, block.lootTable) {
|
||||
add(LootItem.lootTableItem(block))
|
||||
item(block) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun dropsSelf(blocks: Collection<Block>) {
|
||||
blocks.forEach(this::dropsSelf)
|
||||
fun dropsSelf(block: Block, configurator: LootPoolSingletonContainer.Builder<*>.() -> Unit = {}) {
|
||||
singleLootPool(LootContextParamSets.BLOCK, block.lootTable) {
|
||||
item(block, configurator)
|
||||
}
|
||||
}
|
||||
|
||||
fun dropsSelf(blocks: Collection<Block>, configurator: LootPoolSingletonContainer.Builder<*>.() -> Unit = {}) {
|
||||
for (block in blocks) {
|
||||
singleLootPool(LootContextParamSets.BLOCK, block.lootTable) {
|
||||
item(block, configurator)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun tile(block: Block, f: (CopyNbtFunction.Builder) -> Unit = {}) {
|
||||
|
@ -7,6 +7,7 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties
|
||||
import net.minecraft.world.level.block.state.properties.DoubleBlockHalf
|
||||
import net.minecraft.world.level.storage.loot.entries.LootItem
|
||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets
|
||||
import net.minecraft.world.level.storage.loot.predicates.ExplosionCondition
|
||||
import ru.dbotthepony.mc.otm.block.entity.ChemicalGeneratorBlockEntity
|
||||
import ru.dbotthepony.mc.otm.block.entity.EnergyCounterBlockEntity
|
||||
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity.Companion.ENERGY_KEY
|
||||
@ -22,45 +23,45 @@ import ru.dbotthepony.mc.otm.registry.MItems
|
||||
import ru.dbotthepony.mc.otm.registry.MRegistry
|
||||
|
||||
fun addLootTables(lootTables: LootTables) {
|
||||
lootTables.dropsSelf(MRegistry.DECORATIVE_CRATE.allBlocks.values)
|
||||
lootTables.dropsSelf(MRegistry.DECORATIVE_CRATE.allBlocks.values) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
|
||||
lootTables.dropsSelf(MRegistry.CARGO_CRATES.allBlocks.values)
|
||||
lootTables.dropsSelf(MRegistry.INDUSTRIAL_GLASS.allBlocks.values)
|
||||
lootTables.dropsSelf(MRegistry.INDUSTRIAL_GLASS_PANE.allBlocks.values)
|
||||
lootTables.dropsSelf(MRegistry.TRITANIUM_BLOCK.allBlocks.values)
|
||||
lootTables.dropsSelf(MRegistry.TRITANIUM_WALL.allBlocks.values)
|
||||
lootTables.dropsSelf(MRegistry.TRITANIUM_STAIRS.allBlocks.values)
|
||||
lootTables.dropsSelf(MRegistry.CARGO_CRATES.allBlocks.values) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MRegistry.INDUSTRIAL_GLASS.allBlocks.values) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MRegistry.INDUSTRIAL_GLASS_PANE.allBlocks.values) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MRegistry.TRITANIUM_BLOCK.allBlocks.values) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MRegistry.TRITANIUM_WALL.allBlocks.values) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MRegistry.TRITANIUM_STAIRS.allBlocks.values) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.createSlabItemTable(MRegistry.TRITANIUM_SLAB.allBlocks.values)
|
||||
lootTables.dropsSelf(MRegistry.VENT.allBlocks.values)
|
||||
lootTables.dropsSelf(MRegistry.VENT_ALTERNATIVE.allBlocks.values)
|
||||
lootTables.dropsSelf(MRegistry.FLOOR_TILES.blocks.values)
|
||||
lootTables.dropsSelf(MRegistry.UNREFINED_FLOOR_TILES.blocks.values)
|
||||
lootTables.dropsSelf(MRegistry.TRITANIUM_STRIPED_BLOCK.flatBlocks)
|
||||
lootTables.dropsSelf(MRegistry.TRITANIUM_STRIPED_STAIRS.flatBlocks)
|
||||
lootTables.dropsSelf(MRegistry.TRITANIUM_STRIPED_WALL.flatBlocks)
|
||||
lootTables.createSlabItemTable(MRegistry.TRITANIUM_STRIPED_SLAB.flatBlocks)
|
||||
lootTables.dropsSelf(MRegistry.VENT.allBlocks.values) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MRegistry.VENT_ALTERNATIVE.allBlocks.values) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MRegistry.FLOOR_TILES.blocks.values) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MRegistry.UNREFINED_FLOOR_TILES.blocks.values) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MRegistry.TRITANIUM_STRIPED_BLOCK.flatBlocks) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MRegistry.TRITANIUM_STRIPED_STAIRS.flatBlocks) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MRegistry.TRITANIUM_STRIPED_WALL.flatBlocks) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.createSlabItemTable(MRegistry.TRITANIUM_STRIPED_SLAB.flatBlocks) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
|
||||
lootTables.dropsSelf(MRegistry.FLOOR_TILES_STAIRS.blocks.values)
|
||||
lootTables.createSlabItemTable(MRegistry.FLOOR_TILES_SLAB.blocks.values)
|
||||
lootTables.dropsSelf(MRegistry.FLOOR_TILES_STAIRS.blocks.values) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.createSlabItemTable(MRegistry.FLOOR_TILES_SLAB.blocks.values) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
|
||||
lootTables.dropsSelf(MBlocks.CARBON_FIBRE_BLOCK)
|
||||
lootTables.dropsSelf(MBlocks.TRITANIUM_RAW_BLOCK)
|
||||
lootTables.dropsSelf(MBlocks.TRITANIUM_STRIPED_BLOCK)
|
||||
lootTables.dropsSelf(MBlocks.TRITANIUM_STRIPED_WALL)
|
||||
lootTables.dropsSelf(MBlocks.TRITANIUM_STRIPED_STAIRS)
|
||||
lootTables.createSlabItemTable(MBlocks.TRITANIUM_STRIPED_SLAB)
|
||||
lootTables.dropsSelf(MBlocks.MATTER_CABLE)
|
||||
lootTables.dropsSelf(MBlocks.CARBON_FIBRE_BLOCK) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MBlocks.TRITANIUM_RAW_BLOCK) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MBlocks.TRITANIUM_STRIPED_BLOCK) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MBlocks.TRITANIUM_STRIPED_WALL) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MBlocks.TRITANIUM_STRIPED_STAIRS) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.createSlabItemTable(MBlocks.TRITANIUM_STRIPED_SLAB) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MBlocks.MATTER_CABLE) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MBlocks.GRAVITATION_STABILIZER)
|
||||
lootTables.dropsOther(MBlocks.GRAVITATION_STABILIZER_LENS, MBlocks.GRAVITATION_STABILIZER)
|
||||
|
||||
lootTables.dropsSelf(MBlocks.LABORATORY_LAMP)
|
||||
lootTables.dropsSelf(MBlocks.LABORATORY_LAMP_INVERTED)
|
||||
lootTables.dropsSelf(MBlocks.DANGER_STRIPE_BLOCK)
|
||||
lootTables.dropsSelf(MBlocks.METAL_BEAM)
|
||||
lootTables.dropsSelf(MBlocks.TRITANIUM_INGOT_BLOCK)
|
||||
lootTables.dropsSelf(MBlocks.LABORATORY_LAMP) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MBlocks.LABORATORY_LAMP_INVERTED) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MBlocks.DANGER_STRIPE_BLOCK) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MBlocks.METAL_BEAM) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MBlocks.TRITANIUM_INGOT_BLOCK) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
|
||||
lootTables.dropsSelf(MBlocks.TRITANIUM_TRAPDOOR)
|
||||
lootTables.dropsSelf(MRegistry.TRITANIUM_PRESSURE_PLATE.allBlocks.values)
|
||||
lootTables.dropsSelf(MBlocks.TRITANIUM_TRAPDOOR) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
lootTables.dropsSelf(MRegistry.TRITANIUM_PRESSURE_PLATE.allBlocks.values) { condition(ExplosionCondition.survivesExplosion()) }
|
||||
|
||||
lootTables.block(MBlocks.PHANTOM_ATTRACTOR) {
|
||||
item(MBlocks.PHANTOM_ATTRACTOR) {
|
||||
@ -68,6 +69,8 @@ fun addLootTables(lootTables: LootTables) {
|
||||
this[BlockStateProperties.DOUBLE_BLOCK_HALF] = DoubleBlockHalf.LOWER
|
||||
}
|
||||
}
|
||||
|
||||
condition(ExplosionCondition.survivesExplosion())
|
||||
}
|
||||
|
||||
lootTables.block(MBlocks.TRITANIUM_DOOR) {
|
||||
@ -76,6 +79,8 @@ fun addLootTables(lootTables: LootTables) {
|
||||
this[BlockStateProperties.DOUBLE_BLOCK_HALF] = DoubleBlockHalf.LOWER
|
||||
}
|
||||
}
|
||||
|
||||
condition(ExplosionCondition.survivesExplosion())
|
||||
}
|
||||
|
||||
lootTables.builder(LootContextParamSets.ADVANCEMENT_ENTITY, modLocation("research_all_android")) {
|
||||
|
Loading…
Reference in New Issue
Block a user