adds datagen for block and entity loot
This commit is contained in:
@@ -0,0 +1,224 @@
|
||||
package net.cmr.jurassicrevived.datagen;
|
||||
|
||||
import net.cmr.jurassicrevived.block.ModBlocks;
|
||||
import net.cmr.jurassicrevived.item.ModItems;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.enchantment.Enchantment;
|
||||
import net.minecraft.world.item.enchantment.Enchantments;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.storage.loot.LootTable;
|
||||
import net.minecraft.world.level.storage.loot.entries.LootItem;
|
||||
import net.minecraft.world.level.storage.loot.functions.ApplyBonusCount;
|
||||
import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction;
|
||||
import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator;
|
||||
|
||||
public class ModBlockLootTableProvider {
|
||||
|
||||
public interface BlockLootHelper {
|
||||
void dropSelf(Block block);
|
||||
void add(Block block, LootTable.Builder builder);
|
||||
LootTable.Builder createMultipleOreDrops(Block block, Item item, float minDrops, float maxDrops);
|
||||
LootTable.Builder createPotFlowerItemTable(Block block);
|
||||
}
|
||||
|
||||
public static void registerBlockLootTables(BlockLootHelper helper) {
|
||||
helper.dropSelf(ModBlocks.CAT_PLUSHIE.get());
|
||||
helper.dropSelf(ModBlocks.TRASH_CAN.get());
|
||||
helper.dropSelf(ModBlocks.BENCH.get());
|
||||
helper.dropSelf(ModBlocks.CHARRED_TERRACOTTA.get());
|
||||
helper.dropSelf(ModBlocks.FENCE_LIGHT.get());
|
||||
helper.dropSelf(ModBlocks.LIGHT_POST.get());
|
||||
helper.dropSelf(ModBlocks.GYPSUM_COBBLESTONE.get());
|
||||
helper.dropSelf(ModBlocks.GYPSUM_STONE_BRICKS.get());
|
||||
helper.dropSelf(ModBlocks.SMOOTH_GYPSUM_STONE.get());
|
||||
helper.dropSelf(ModBlocks.CHISELED_GYPSUM_STONE.get());
|
||||
helper.dropSelf(ModBlocks.GYPSUM_BRICK_STAIRS.get());
|
||||
helper.dropSelf(ModBlocks.GYPSUM_BRICK_SLAB.get());
|
||||
helper.dropSelf(ModBlocks.GYPSUM_BRICK_WALL.get());
|
||||
helper.dropSelf(ModBlocks.STONE_FOSSIL.get());
|
||||
helper.dropSelf(ModBlocks.DEEPSLATE_FOSSIL.get());
|
||||
helper.dropSelf(ModBlocks.LOW_SECURITY_FENCE_POLE.get());
|
||||
helper.dropSelf(ModBlocks.LOW_SECURITY_FENCE_WIRE.get());
|
||||
helper.dropSelf(ModBlocks.MEDIUM_SECURITY_FENCE_POLE.get());
|
||||
helper.dropSelf(ModBlocks.MEDIUM_SECURITY_FENCE_WIRE.get());
|
||||
helper.dropSelf(ModBlocks.ITEM_PIPE.get());
|
||||
helper.dropSelf(ModBlocks.FLUID_PIPE.get());
|
||||
helper.dropSelf(ModBlocks.POWER_PIPE.get());
|
||||
|
||||
helper.add(ModBlocks.GYPSUM_STONE.get(),
|
||||
helper.createMultipleOreDrops(ModBlocks.GYPSUM_STONE.get(), ModBlocks.GYPSUM_COBBLESTONE.get().asItem(),1, 1));
|
||||
helper.add(ModBlocks.AMBER_ORE.get(),
|
||||
helper.createMultipleOreDrops(ModBlocks.AMBER_ORE.get(), ModItems.MOSQUITO_IN_AMBER.get(),1, 1));
|
||||
helper.add(ModBlocks.DEEPSLATE_ICE_SHARD_ORE.get(),
|
||||
helper.createMultipleOreDrops(ModBlocks.DEEPSLATE_ICE_SHARD_ORE.get(), ModItems.FROZEN_LEECH.get(),1, 1));
|
||||
|
||||
helper.dropSelf(ModBlocks.REINFORCED_STONE.get());
|
||||
helper.dropSelf(ModBlocks.REINFORCED_STONE_BRICKS.get());
|
||||
helper.dropSelf(ModBlocks.CHISELED_REINFORCED_STONE.get());
|
||||
helper.dropSelf(ModBlocks.REINFORCED_BRICK_STAIRS.get());
|
||||
helper.dropSelf(ModBlocks.REINFORCED_BRICK_SLAB.get());
|
||||
helper.dropSelf(ModBlocks.REINFORCED_BRICK_WALL.get());
|
||||
|
||||
helper.dropSelf(ModBlocks.APATOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.ALBERTOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.BRACHIOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.CERATOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.DILOPHOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.TRICERATOPS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.SPINOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.OURANOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.PARASAUROLOPHUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INDOMINUS_REX_EGG.get());
|
||||
helper.dropSelf(ModBlocks.GALLIMIMUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.DIPLODOCUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.COMPSOGNATHUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.TYRANNOSAURUS_REX_EGG.get());
|
||||
helper.dropSelf(ModBlocks.VELOCIRAPTOR_EGG.get());
|
||||
helper.dropSelf(ModBlocks.BARYONYX_EGG.get());
|
||||
helper.dropSelf(ModBlocks.CARNOTAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.CONCAVENATOR_EGG.get());
|
||||
helper.dropSelf(ModBlocks.DEINONYCHUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.EDMONTOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.GIGANOTOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.GUANLONG_EGG.get());
|
||||
helper.dropSelf(ModBlocks.HERRERASAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.MAJUNGASAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.PROCOMPSOGNATHUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.PROTOCERATOPS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.RUGOPS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.SHANTUNGOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.STEGOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.STYRACOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.THERIZINOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.DISTORTUS_REX_EGG.get());
|
||||
helper.dropSelf(ModBlocks.ALLOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.ALVAREZSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.ANKYLOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.ARAMBOURGIANIA_EGG.get());
|
||||
helper.dropSelf(ModBlocks.CARCHARODONTOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.CEARADACTYLUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.CHASMOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.COELOPHYSIS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.COELURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.CORYTHOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.DIMORPHODON_EGG.get());
|
||||
helper.dropSelf(ModBlocks.DRYOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.GEOSTERNBERGIA_EGG.get());
|
||||
helper.dropSelf(ModBlocks.GUIDRACO_EGG.get());
|
||||
helper.dropSelf(ModBlocks.HADROSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.HYPSILOPHODON_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INDORAPTOR_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INOSTRANCEVIA_EGG.get());
|
||||
helper.dropSelf(ModBlocks.LAMBEOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.LUDODACTYLUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.MAMENCHISAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.METRIACANTHOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.MOGANOPTERUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.NYCTOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.ORNITHOLESTES_EGG.get());
|
||||
helper.dropSelf(ModBlocks.ORNITHOMIMUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.OVIRAPTOR_EGG.get());
|
||||
helper.dropSelf(ModBlocks.PACHYCEPHALOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.PROCERATOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.PTERANODON_EGG.get());
|
||||
helper.dropSelf(ModBlocks.PTERODAUSTRO_EGG.get());
|
||||
helper.dropSelf(ModBlocks.QUETZALCOATLUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.RAJASAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.SEGISAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.TAPEJARA_EGG.get());
|
||||
helper.dropSelf(ModBlocks.TITANOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.TROODON_EGG.get());
|
||||
helper.dropSelf(ModBlocks.TROPEOGNATHUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.TUPUXUARA_EGG.get());
|
||||
helper.dropSelf(ModBlocks.UTAHRAPTOR_EGG.get());
|
||||
helper.dropSelf(ModBlocks.ZHENYUANOPTERUS_EGG.get());
|
||||
|
||||
helper.dropSelf(ModBlocks.INCUBATED_APATOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_ALBERTOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_BRACHIOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_CERATOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_DILOPHOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_TRICERATOPS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_SPINOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_OURANOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_PARASAUROLOPHUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_INDOMINUS_REX_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_GALLIMIMUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_DIPLODOCUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_COMPSOGNATHUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_TYRANNOSAURUS_REX_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_VELOCIRAPTOR_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_BARYONYX_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_CARNOTAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_CONCAVENATOR_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_DEINONYCHUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_EDMONTOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_GIGANOTOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_GUANLONG_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_HERRERASAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_MAJUNGASAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_PROCOMPSOGNATHUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_PROTOCERATOPS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_RUGOPS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_SHANTUNGOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_STEGOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_STYRACOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_THERIZINOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_DISTORTUS_REX_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_ALLOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_ALVAREZSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_ANKYLOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_ARAMBOURGIANIA_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_CARCHARODONTOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_CEARADACTYLUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_CHASMOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_COELOPHYSIS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_COELURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_CORYTHOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_DIMORPHODON_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_DRYOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_GEOSTERNBERGIA_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_GUIDRACO_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_HADROSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_HYPSILOPHODON_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_INDORAPTOR_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_INOSTRANCEVIA_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_LAMBEOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_LUDODACTYLUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_MAMENCHISAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_METRIACANTHOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_MOGANOPTERUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_NYCTOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_ORNITHOLESTES_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_ORNITHOMIMUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_OVIRAPTOR_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_PACHYCEPHALOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_PROCERATOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_PTERANODON_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_PTERODAUSTRO_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_QUETZALCOATLUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_RAJASAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_SEGISAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_TAPEJARA_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_TITANOSAURUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_TROODON_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_TROPEOGNATHUS_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_TUPUXUARA_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_UTAHRAPTOR_EGG.get());
|
||||
helper.dropSelf(ModBlocks.INCUBATED_ZHENYUANOPTERUS_EGG.get());
|
||||
|
||||
helper.dropSelf(ModBlocks.ROYAL_FERN.get());
|
||||
helper.add(ModBlocks.POTTED_ROYAL_FERN.get(), helper.createPotFlowerItemTable(ModBlocks.ROYAL_FERN.get()));
|
||||
|
||||
helper.dropSelf(ModBlocks.HORSETAIL_FERN.get());
|
||||
helper.add(ModBlocks.POTTED_HORSETAIL_FERN.get(), helper.createPotFlowerItemTable(ModBlocks.HORSETAIL_FERN.get()));
|
||||
|
||||
helper.dropSelf(ModBlocks.WESTERN_SWORD_FERN.get());
|
||||
helper.add(ModBlocks.POTTED_WESTERN_SWORD_FERN.get(), helper.createPotFlowerItemTable(ModBlocks.WESTERN_SWORD_FERN.get()));
|
||||
|
||||
helper.dropSelf(ModBlocks.ONYCHIOPSIS.get());
|
||||
helper.add(ModBlocks.POTTED_ONYCHIOPSIS.get(), helper.createPotFlowerItemTable(ModBlocks.ONYCHIOPSIS.get()));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,500 @@
|
||||
package net.cmr.jurassicrevived.datagen;
|
||||
|
||||
import net.cmr.jurassicrevived.entity.ModEntities;
|
||||
import net.cmr.jurassicrevived.item.ModItems;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.level.storage.loot.LootPool;
|
||||
import net.minecraft.world.level.storage.loot.LootTable;
|
||||
import net.minecraft.world.level.storage.loot.entries.LootItem;
|
||||
import net.minecraft.world.level.storage.loot.providers.number.ConstantValue;
|
||||
|
||||
public class ModEntityLootTableProvider {
|
||||
|
||||
public interface EntityLootHelper {
|
||||
void add(EntityType<?> type, LootTable.Builder builder);
|
||||
}
|
||||
|
||||
public static void registerEntityLootTables(EntityLootHelper helper) {
|
||||
helper.add(ModEntities.FDUCK.get(), LootTable.lootTable());
|
||||
helper.add(ModEntities.CHICKENOSAURUS.get(), LootTable.lootTable());
|
||||
|
||||
// Albertosaurus
|
||||
helper.add(ModEntities.ALBERTOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_ALBERTOSAURUS_SKULL.get()))));
|
||||
|
||||
// Apatosaurus
|
||||
helper.add(ModEntities.APATOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_APATOSAURUS_SKULL.get()))));
|
||||
|
||||
// Baryonyx
|
||||
helper.add(ModEntities.BARYONYX.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_BARYONYX_SKULL.get()))));
|
||||
|
||||
// Brachiosaurus
|
||||
helper.add(ModEntities.BRACHIOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_BRACHIOSAURUS_SKULL.get()))));
|
||||
|
||||
// Carnotaurus
|
||||
helper.add(ModEntities.CARNOTAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_CARNOTAURUS_SKULL.get()))));
|
||||
|
||||
// Ceratosaurus
|
||||
helper.add(ModEntities.CERATOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_CERATOSAURUS_SKULL.get()))));
|
||||
|
||||
// Compsognathus
|
||||
helper.add(ModEntities.COMPSOGNATHUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_COMPSOGNATHUS_SKULL.get()))));
|
||||
|
||||
// Concavenator
|
||||
helper.add(ModEntities.CONCAVENATOR.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_CONCAVENATOR_SKULL.get()))));
|
||||
|
||||
// Deinonychus
|
||||
helper.add(ModEntities.DEINONYCHUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_DEINONYCHUS_SKULL.get()))));
|
||||
|
||||
// Dilophosaurus
|
||||
helper.add(ModEntities.DILOPHOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_DILOPHOSAURUS_SKULL.get()))));
|
||||
|
||||
// Diplodocus
|
||||
helper.add(ModEntities.DIPLODOCUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_DIPLODOCUS_SKULL.get()))));
|
||||
|
||||
// D Rex -> Distortus Rex
|
||||
helper.add(ModEntities.DISTORTUS_REX.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_DISTORTUS_REX_SKULL.get()))));
|
||||
|
||||
// Edmontosaurus
|
||||
helper.add(ModEntities.EDMONTOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_EDMONTOSAURUS_SKULL.get()))));
|
||||
|
||||
// Gallimimus
|
||||
helper.add(ModEntities.GALLIMIMUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_GALLIMIMUS_SKULL.get()))));
|
||||
|
||||
// Giganotosaurus
|
||||
helper.add(ModEntities.GIGANOTOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_GIGANOTOSAURUS_SKULL.get()))));
|
||||
|
||||
// Guanlong
|
||||
helper.add(ModEntities.GUANLONG.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_GUANLONG_SKULL.get()))));
|
||||
|
||||
// Herrerasaurus
|
||||
helper.add(ModEntities.HERRERASAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_HERRERASAURUS_SKULL.get()))));
|
||||
|
||||
// Indominus Rex
|
||||
helper.add(ModEntities.INDOMINUS_REX.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_INDOMINUS_REX_SKULL.get()))));
|
||||
|
||||
// Majungasaurus
|
||||
helper.add(ModEntities.MAJUNGASAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_MAJUNGASAURUS_SKULL.get()))));
|
||||
|
||||
// Ouranosaurus
|
||||
helper.add(ModEntities.OURANOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_OURANOSAURUS_SKULL.get()))));
|
||||
|
||||
// Parasaurolophus
|
||||
helper.add(ModEntities.PARASAUROLOPHUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_PARASAUROLOPHUS_SKULL.get()))));
|
||||
|
||||
// Procompsognathus
|
||||
helper.add(ModEntities.PROCOMPSOGNATHUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_PROCOMPSOGNATHUS_SKULL.get()))));
|
||||
|
||||
// Protoceratops
|
||||
helper.add(ModEntities.PROTOCERATOPS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_PROTOCERATOPS_SKULL.get()))));
|
||||
|
||||
// Rugops
|
||||
helper.add(ModEntities.RUGOPS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_RUGOPS_SKULL.get()))));
|
||||
|
||||
// Shantungosaurus
|
||||
helper.add(ModEntities.SHANTUNGOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_SHANTUNGOSAURUS_SKULL.get()))));
|
||||
|
||||
// Spinosaurus
|
||||
helper.add(ModEntities.SPINOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_SPINOSAURUS_SKULL.get()))));
|
||||
|
||||
// Stegosaurus
|
||||
helper.add(ModEntities.STEGOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_STEGOSAURUS_SKULL.get()))));
|
||||
|
||||
// Styracosaurus
|
||||
helper.add(ModEntities.STYRACOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_STYRACOSAURUS_SKULL.get()))));
|
||||
|
||||
// Therizinosaurus
|
||||
helper.add(ModEntities.THERIZINOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_THERIZINOSAURUS_SKULL.get()))));
|
||||
|
||||
// Triceratops
|
||||
helper.add(ModEntities.TRICERATOPS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_TRICERATOPS_SKULL.get()))));
|
||||
|
||||
// Tyrannosaurus Rex
|
||||
helper.add(ModEntities.TYRANNOSAURUS_REX.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_TYRANNOSAURUS_REX_SKULL.get()))));
|
||||
|
||||
// Velociraptor
|
||||
helper.add(ModEntities.VELOCIRAPTOR.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_VELOCIRAPTOR_SKULL.get()))));
|
||||
|
||||
helper.add(ModEntities.ALLOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_ALLOSAURUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.ALVAREZSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_ALVAREZSAURUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.ANKYLOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_ANKYLOSAURUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.ARAMBOURGIANIA.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_ARAMBOURGIANIA_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.CARCHARODONTOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_CARCHARODONTOSAURUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.CEARADACTYLUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_CEARADACTYLUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.CHASMOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_CHASMOSAURUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.COELOPHYSIS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_COELOPHYSIS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.COELURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_COELURUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.CORYTHOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_CORYTHOSAURUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.DIMORPHODON.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_DIMORPHODON_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.DRYOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_DRYOSAURUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.GEOSTERNBERGIA.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_GEOSTERNBERGIA_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.GUIDRACO.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_GUIDRACO_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.HADROSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_HADROSAURUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.HYPSILOPHODON.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_HYPSILOPHODON_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.INDORAPTOR.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_INDORAPTOR_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.INOSTRANCEVIA.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_INOSTRANCEVIA_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.LAMBEOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_LAMBEOSAURUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.LUDODACTYLUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_LUDODACTYLUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.MAMENCHISAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_MAMENCHISAURUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.METRIACANTHOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_METRIACANTHOSAURUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.MOGANOPTERUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_MOGANOPTERUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.NYCTOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_NYCTOSAURUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.ORNITHOLESTES.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_ORNITHOLESTES_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.ORNITHOMIMUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_ORNITHOMIMUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.OVIRAPTOR.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_OVIRAPTOR_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.PACHYCEPHALOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_PACHYCEPHALOSAURUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.PROCERATOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_PROCERATOSAURUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.PTERANODON.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_PTERANODON_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.PTERODAUSTRO.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_PTERODAUSTRO_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.QUETZALCOATLUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_QUETZALCOATLUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.RAJASAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_RAJASAURUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.SEGISAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_SEGISAURUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.TAPEJARA.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_TAPEJARA_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.TITANOSAURUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_TITANOSAURUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.TROODON.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_TROODON_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.TROPEOGNATHUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_TROPEOGNATHUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.TUPUXUARA.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_TUPUXUARA_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.UTAHRAPTOR.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_UTAHRAPTOR_SKULL.get()))
|
||||
)
|
||||
);
|
||||
|
||||
helper.add(ModEntities.ZHENYUANOPTERUS.get(), LootTable.lootTable()
|
||||
.withPool(LootPool.lootPool()
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(ModItems.FRESH_ZHENYUANOPTERUS_SKULL.get()))
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -11,5 +11,7 @@ public class DataGenerators implements DataGeneratorEntrypoint {
|
||||
pack.addProvider(FabricModModelProvider::new);
|
||||
pack.addProvider(FabricBlockTagProvider::new);
|
||||
pack.addProvider(FabricItemTagProvider::new);
|
||||
pack.addProvider(FabricBlockLootTableProvider::new);
|
||||
pack.addProvider(FabricEntityLootTableProvider::new);
|
||||
}
|
||||
}
|
||||
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
package net.cmr.jurassicrevived.datagen;
|
||||
|
||||
import net.cmr.jurassicrevived.block.ModBlocks;
|
||||
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.enchantment.Enchantment;
|
||||
import net.minecraft.world.item.enchantment.Enchantments;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.storage.loot.LootTable;
|
||||
import net.minecraft.world.level.storage.loot.entries.LootItem;
|
||||
import net.minecraft.world.level.storage.loot.functions.ApplyBonusCount;
|
||||
import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction;
|
||||
import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
public class FabricBlockLootTableProvider extends net.fabricmc.fabric.api.datagen.v1.provider.FabricBlockLootTableProvider implements ModBlockLootTableProvider.BlockLootHelper {
|
||||
|
||||
//? if >1.20.1 {
|
||||
/*public FabricBlockLootTableProvider(FabricDataOutput dataOutput, CompletableFuture<HolderLookup.Provider> registryLookup) {
|
||||
super(dataOutput, registryLookup);
|
||||
}
|
||||
*///?} else {
|
||||
public FabricBlockLootTableProvider(FabricDataOutput dataOutput) {
|
||||
super(dataOutput);
|
||||
}
|
||||
//?}
|
||||
|
||||
@Override
|
||||
public void generate() {
|
||||
ModBlockLootTableProvider.registerBlockLootTables(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dropSelf(Block block) {
|
||||
super.dropSelf(block);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void add(Block block, LootTable.Builder builder) {
|
||||
super.add(block, builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LootTable.Builder createMultipleOreDrops(Block block, Item item, float minDrops, float maxDrops) {
|
||||
//? if >1.20.1 {
|
||||
/*HolderLookup.RegistryLookup<Enchantment> registrylookup = this.registries.lookupOrThrow(Registries.ENCHANTMENT);
|
||||
return this.createSilkTouchDispatchTable(block, this.applyExplosionDecay(block,
|
||||
LootItem.lootTableItem(item)
|
||||
.apply(SetItemCountFunction.setCount(UniformGenerator.between(minDrops, maxDrops)))
|
||||
.apply(ApplyBonusCount.addOreBonusCount(registrylookup.getOrThrow(Enchantments.FORTUNE)))));
|
||||
*///?} else {
|
||||
return this.createSilkTouchDispatchTable(block, this.applyExplosionDecay(block,
|
||||
LootItem.lootTableItem(item)
|
||||
.apply(SetItemCountFunction.setCount(UniformGenerator.between(minDrops, maxDrops)))
|
||||
.apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE))));
|
||||
//?}
|
||||
}
|
||||
|
||||
@Override
|
||||
public LootTable.Builder createPotFlowerItemTable(Block block) {
|
||||
return super.createPotFlowerItemTable(block);
|
||||
}
|
||||
}
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
package net.cmr.jurassicrevived.datagen;
|
||||
|
||||
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
|
||||
import net.fabricmc.fabric.api.datagen.v1.provider.SimpleFabricLootTableProvider;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.level.storage.loot.LootTable;
|
||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
public class FabricEntityLootTableProvider extends SimpleFabricLootTableProvider implements ModEntityLootTableProvider.EntityLootHelper {
|
||||
|
||||
//? if >1.20.1 {
|
||||
/*public FabricEntityLootTableProvider(FabricDataOutput output, CompletableFuture<HolderLookup.Provider> registryLookup) {
|
||||
super(output, registryLookup, LootContextParamSets.ENTITY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generate(BiConsumer<ResourceKey<LootTable>, LootTable.Builder> biConsumer) {
|
||||
this.currentBiConsumer = biConsumer;
|
||||
ModEntityLootTableProvider.registerEntityLootTables(this);
|
||||
this.currentBiConsumer = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void add(EntityType<?> type, LootTable.Builder builder) {
|
||||
if (currentBiConsumer != null) {
|
||||
currentBiConsumer.accept(type.getDefaultLootTable(), builder);
|
||||
}
|
||||
}
|
||||
|
||||
private BiConsumer<ResourceKey<LootTable>, LootTable.Builder> currentBiConsumer;
|
||||
*///?} else {
|
||||
public FabricEntityLootTableProvider(FabricDataOutput output) {
|
||||
super(output, LootContextParamSets.ENTITY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generate(BiConsumer<ResourceLocation, LootTable.Builder> biConsumer) {
|
||||
this.currentBiConsumer = biConsumer;
|
||||
ModEntityLootTableProvider.registerEntityLootTables(this);
|
||||
this.currentBiConsumer = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void add(EntityType<?> type, LootTable.Builder builder) {
|
||||
if (currentBiConsumer != null) {
|
||||
currentBiConsumer.accept(type.getDefaultLootTable(), builder);
|
||||
}
|
||||
}
|
||||
|
||||
private BiConsumer<ResourceLocation, LootTable.Builder> currentBiConsumer;
|
||||
//?}
|
||||
}
|
||||
@@ -4,12 +4,16 @@ import net.cmr.jurassicrevived.Constants;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.data.DataGenerator;
|
||||
import net.minecraft.data.PackOutput;
|
||||
import net.minecraft.data.loot.LootTableProvider;
|
||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets;
|
||||
import net.minecraftforge.common.data.BlockTagsProvider;
|
||||
import net.minecraftforge.common.data.ExistingFileHelper;
|
||||
import net.minecraftforge.data.event.GatherDataEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
@Mod.EventBusSubscriber(modid = Constants.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||
@@ -28,5 +32,12 @@ public class DataGenerators {
|
||||
BlockTagsProvider blockTagsProvider = new ForgeBlockTagProvider(packOutput, lookupProvider, existingFileHelper);
|
||||
generator.addProvider(event.includeServer(), blockTagsProvider);
|
||||
generator.addProvider(event.includeServer(), new ForgeItemTagProvider(packOutput, lookupProvider, blockTagsProvider.contentsGetter(), existingFileHelper));
|
||||
|
||||
generator.addProvider(event.includeServer(), new LootTableProvider(packOutput, Collections.emptySet(),
|
||||
List.of(
|
||||
new LootTableProvider.SubProviderEntry(ForgeBlockLootTableProvider::new, LootContextParamSets.BLOCK),
|
||||
new LootTableProvider.SubProviderEntry(ForgeEntityLootTableProvider::new, LootContextParamSets.ENTITY)
|
||||
)
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
package net.cmr.jurassicrevived.datagen;
|
||||
|
||||
import net.cmr.jurassicrevived.block.ModBlocks;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.data.loot.BlockLootSubProvider;
|
||||
import net.minecraft.world.flag.FeatureFlags;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.enchantment.Enchantments;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.storage.loot.LootTable;
|
||||
import net.minecraft.world.level.storage.loot.entries.LootItem;
|
||||
import net.minecraft.world.level.storage.loot.functions.ApplyBonusCount;
|
||||
import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction;
|
||||
import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.StreamSupport;
|
||||
|
||||
public class ForgeBlockLootTableProvider extends BlockLootSubProvider implements ModBlockLootTableProvider.BlockLootHelper {
|
||||
public ForgeBlockLootTableProvider() {
|
||||
super(Set.of(), FeatureFlags.REGISTRY.allFlags());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void generate() {
|
||||
ModBlockLootTableProvider.registerBlockLootTables(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dropSelf(Block block) {
|
||||
super.dropSelf(block);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void add(Block block, LootTable.Builder builder) {
|
||||
super.add(block, builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LootTable.Builder createMultipleOreDrops(Block block, Item item, float minDrops, float maxDrops) {
|
||||
return this.createSilkTouchDispatchTable(block, this.applyExplosionDecay(block,
|
||||
LootItem.lootTableItem(item)
|
||||
.apply(SetItemCountFunction.setCount(UniformGenerator.between(minDrops, maxDrops)))
|
||||
.apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE))));
|
||||
}
|
||||
|
||||
@Override
|
||||
public LootTable.Builder createPotFlowerItemTable(Block block) {
|
||||
return super.createPotFlowerItemTable(block);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Iterable<Block> getKnownBlocks() {
|
||||
return StreamSupport.stream(ModBlocks.BLOCKS.spliterator(), false)
|
||||
.map(dev.architectury.registry.registries.RegistrySupplier::get)
|
||||
.toList();
|
||||
}
|
||||
}
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
package net.cmr.jurassicrevived.datagen;
|
||||
|
||||
import net.cmr.jurassicrevived.entity.ModEntities;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.data.loot.EntityLootSubProvider;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.flag.FeatureFlags;
|
||||
import net.minecraft.world.level.storage.loot.LootTable;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
import java.util.stream.StreamSupport;
|
||||
|
||||
public class ForgeEntityLootTableProvider extends EntityLootSubProvider implements ModEntityLootTableProvider.EntityLootHelper {
|
||||
|
||||
public ForgeEntityLootTableProvider() {
|
||||
super(FeatureFlags.REGISTRY.allFlags());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generate() {
|
||||
ModEntityLootTableProvider.registerEntityLootTables(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void add(EntityType<?> type, LootTable.Builder builder) {
|
||||
super.add(type, builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @NotNull Stream<EntityType<?>> getKnownEntityTypes() {
|
||||
return StreamSupport.stream(ModEntities.ENTITIES.spliterator(), false)
|
||||
.map(dev.architectury.registry.registries.RegistrySupplier::get);
|
||||
}
|
||||
}
|
||||
@@ -4,12 +4,16 @@ import net.cmr.jurassicrevived.Constants;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.data.DataGenerator;
|
||||
import net.minecraft.data.PackOutput;
|
||||
import net.minecraft.data.loot.LootTableProvider;
|
||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets;
|
||||
import net.neoforged.bus.api.SubscribeEvent;
|
||||
import net.neoforged.fml.common.EventBusSubscriber;
|
||||
import net.neoforged.neoforge.common.data.BlockTagsProvider;
|
||||
import net.neoforged.neoforge.common.data.ExistingFileHelper;
|
||||
import net.neoforged.neoforge.data.event.GatherDataEvent;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
@EventBusSubscriber(modid = Constants.MOD_ID)
|
||||
@@ -28,5 +32,15 @@ public class DataGenerators {
|
||||
BlockTagsProvider blockTagsProvider = new NeoForgeBlockTagProvider(packOutput, lookupProvider, existingFileHelper);
|
||||
generator.addProvider(event.includeServer(), blockTagsProvider);
|
||||
generator.addProvider(event.includeServer(), new NeoForgeItemTagProvider(packOutput, lookupProvider, blockTagsProvider.contentsGetter(), existingFileHelper));
|
||||
|
||||
generator.addProvider(event.includeServer(), new LootTableProvider(packOutput, Collections.emptySet(),
|
||||
List.of(
|
||||
new LootTableProvider.SubProviderEntry(NeoForgeBlockLootTableProvider::new, LootContextParamSets.BLOCK),
|
||||
new LootTableProvider.SubProviderEntry(NeoForgeEntityLootTableProvider::new, LootContextParamSets.ENTITY)
|
||||
),
|
||||
lookupProvider
|
||||
));
|
||||
|
||||
generator.addProvider(event.includeServer(), new NeoForgeGlobalLootModifierProvider(packOutput));
|
||||
}
|
||||
}
|
||||
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
package net.cmr.jurassicrevived.datagen;
|
||||
|
||||
import net.cmr.jurassicrevived.block.ModBlocks;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.data.loot.BlockLootSubProvider;
|
||||
import net.minecraft.world.flag.FeatureFlags;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.enchantment.Enchantment;
|
||||
import net.minecraft.world.item.enchantment.Enchantments;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.storage.loot.LootTable;
|
||||
import net.minecraft.world.level.storage.loot.entries.LootItem;
|
||||
import net.minecraft.world.level.storage.loot.functions.ApplyBonusCount;
|
||||
import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction;
|
||||
import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.StreamSupport;
|
||||
|
||||
public class NeoForgeBlockLootTableProvider extends BlockLootSubProvider implements ModBlockLootTableProvider.BlockLootHelper {
|
||||
protected NeoForgeBlockLootTableProvider(HolderLookup.Provider provider) {
|
||||
super(Set.of(), FeatureFlags.REGISTRY.allFlags(), provider);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void generate() {
|
||||
ModBlockLootTableProvider.registerBlockLootTables(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dropSelf(Block block) {
|
||||
super.dropSelf(block);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void add(Block block, LootTable.Builder builder) {
|
||||
super.add(block, builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LootTable.Builder createMultipleOreDrops(Block block, Item item, float minDrops, float maxDrops) {
|
||||
HolderLookup.RegistryLookup<Enchantment> registrylookup = this.registries.lookupOrThrow(Registries.ENCHANTMENT);
|
||||
return this.createSilkTouchDispatchTable(block, this.applyExplosionDecay(block,
|
||||
LootItem.lootTableItem(item)
|
||||
.apply(SetItemCountFunction.setCount(UniformGenerator.between(minDrops, maxDrops)))
|
||||
.apply(ApplyBonusCount.addOreBonusCount(registrylookup.getOrThrow(Enchantments.FORTUNE)))));
|
||||
}
|
||||
|
||||
@Override
|
||||
public LootTable.Builder createPotFlowerItemTable(Block block) {
|
||||
return super.createPotFlowerItemTable(block);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Iterable<Block> getKnownBlocks() {
|
||||
return StreamSupport.stream(ModBlocks.BLOCKS.spliterator(), false)
|
||||
.map(dev.architectury.registry.registries.RegistrySupplier::get)
|
||||
.toList();
|
||||
}
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
package net.cmr.jurassicrevived.datagen;
|
||||
|
||||
import net.cmr.jurassicrevived.entity.ModEntities;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.data.loot.EntityLootSubProvider;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.flag.FeatureFlags;
|
||||
import net.minecraft.world.level.storage.loot.LootTable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
import java.util.stream.StreamSupport;
|
||||
|
||||
public class NeoForgeEntityLootTableProvider extends EntityLootSubProvider implements ModEntityLootTableProvider.EntityLootHelper {
|
||||
|
||||
public NeoForgeEntityLootTableProvider(HolderLookup.Provider provider) {
|
||||
super(FeatureFlags.REGISTRY.allFlags(), provider);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generate() {
|
||||
ModEntityLootTableProvider.registerEntityLootTables(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void add(EntityType<?> type, LootTable.Builder builder) {
|
||||
super.add(type, builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @NotNull Stream<EntityType<?>> getKnownEntityTypes() {
|
||||
return StreamSupport.stream(ModEntities.ENTITIES.spliterator(), false)
|
||||
.map(dev.architectury.registry.registries.RegistrySupplier::get);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user