Java 类net.minecraft.world.storage.loot.LootPool 实例源码

项目:pnc-repressurized    文件:EventHandlerPneumaticCraft.java   
@SubscribeEvent
public void onLootTableLoad(LootTableLoadEvent event) {
    if (ConfigHandler.general.enableDungeonLoot) {
        String prefix = "minecraft:chests/";
        String name = event.getName().toString();
        if (name.startsWith(prefix)) {
            String file = name.substring(name.indexOf(prefix) + prefix.length());
            switch (file) {
                case "abandoned_mineshaft":
                case "desert_pyramid":
                case "jungle_temple":
                case "simple_dungeon":
                case "spawn_bonus_chest":
                case "stronghold_corridor":
                case "village_blacksmith":
                    LootEntry entry = new LootEntryTable(RL("inject/simple_dungeon_loot"), 1, 0,  new LootCondition[0], "pneumaticcraft_inject_entry");
                    LootPool pool = new LootPool(new LootEntry[]{entry}, new LootCondition[0], new RandomValueRange(1), new RandomValueRange(0, 1), "pneumaticcraft_inject_pool");
                    event.getTable().addPool(pool);
                    break;
                default:
                    break;
            }
        }
    }
}
项目:FirstAid    文件:EventHandler.java   
@SubscribeEvent
public static void onLootTableLoad(LootTableLoadEvent event) {
    ResourceLocation tableName = event.getName();
    LootPool pool = null;
    int bandage = 0, plaster = 0, morphine = 0;
    if (tableName.equals(LootTableList.CHESTS_SPAWN_BONUS_CHEST)) {
        pool = event.getTable().getPool("main");
        bandage = 8;
        plaster = 16;
        morphine = 4;
    } else if (tableName.equals(LootTableList.CHESTS_STRONGHOLD_CORRIDOR) || tableName.equals(LootTableList.CHESTS_STRONGHOLD_CROSSING) || tableName.equals(LootTableList.CHESTS_ABANDONED_MINESHAFT)) {
        pool = event.getTable().getPool("main");
        bandage = 20;
        plaster = 24;
        morphine = 8;
    }

    if (pool != null) {
        pool.addEntry(new LootEntryItem(FirstAidItems.BANDAGE, bandage, 0, new SetCount[]{new SetCount(new LootCondition[0], new RandomValueRange(1, 3))}, new LootCondition[0], FirstAid.MODID + "bandage"));
        pool.addEntry(new LootEntryItem(FirstAidItems.PLASTER, plaster, 0, new SetCount[]{new SetCount(new LootCondition[0], new RandomValueRange(1, 5))}, new LootCondition[0], FirstAid.MODID + "plaster"));
        pool.addEntry(new LootEntryItem(FirstAidItems.MORPHINE, morphine, 0, new SetCount[]{new SetCount(new LootCondition[0], new RandomValueRange(1, 2))}, new LootCondition[0], FirstAid.MODID + "morphine"));
    }
}
项目:CrystalMod    文件:EventHandler.java   
@SubscribeEvent
public void onLootLoad(LootTableLoadEvent event) {
    if (Config.enhancementBookLootLocationList.contains(event.getName())) {
        String lootPoolId = LootHelper.VANILLA_LOOT_POOL_ID;            
        LootHelper.createPoolIfNotExists(event.getTable(), lootPoolId);
        final LootPool lootPool = event.getTable().getPool(lootPoolId);
        lootPool.addEntry(customLootEnhancementBook);
    }
    //TODO Rework this to only be caught in cold biomes
    /*if(event.getName() == LootTableList.GAMEPLAY_FISHING_FISH){
        String lootPoolId = LootHelper.VANILLA_LOOT_POOL_ID;            
        LootHelper.createPoolIfNotExists(event.getTable(), lootPoolId);
        final LootPool lootPool = event.getTable().getPool(lootPoolId);
        lootPool.addEntry(customLootWhiteFish);            
    }*/
}
项目:Cyclic    文件:LootTableModule.java   
@SubscribeEvent
public void onLootTableLoad(LootTableLoadEvent event) {
  LootPool main = event.getTable().getPool(LOOTPOOLNAME);
  if (main == null) {
    //create my own.  EX: mobs that have no drops (bats) also have empty loot table, so i have to inject an entry in the table before I fill it
    event.getTable().addPool(new LootPool(new LootEntry[0], new LootCondition[0], new RandomValueRange(1F, 2F), new RandomValueRange(1F, 1F), LOOTPOOLNAME));
    main = event.getTable().getPool(LOOTPOOLNAME);
    if (main == null) {
      ModCyclic.logger.error("could not insert Loot Pool for table :" + event.getName().toString());
      return;
    }
  }
  if (enableChestLoot) {
    onLootChestTableLoad(main, event);
  }
}
项目:Loot-Slash-Conquer    文件:EventLoadLootTable.java   
@SubscribeEvent
public void onLootTableLoad(LootTableLoadEvent event)
{   
    if (event.getName() == ModLootTables.common_chest)
    {
        event.setTable(new CustomLootTable(new LootPool[] { event.getTable().getPool("main") }));
    }

    if (event.getName() == ModLootTables.uncommon_chest)
    {
        event.setTable(new CustomLootTable(new LootPool[] { event.getTable().getPool("main") }));
    }

    if (event.getName() == ModLootTables.rare_chest)
    {
        event.setTable(new CustomLootTable(new LootPool[] { event.getTable().getPool("main") }));
    }

    if (event.getName() == ModLootTables.legendary_chest)
    {
        event.setTable(new CustomLootTable(new LootPool[] { event.getTable().getPool("main") }));
    }

    if (event.getName() == ModLootTables.exotic_chest)
    {
        event.setTable(new CustomLootTable(new LootPool[] { event.getTable().getPool("main") }));
    }

    changeVanillaTables(event);
}
项目:Loot-Slash-Conquer    文件:EventLoadLootTable.java   
private static void addPool(LootTable table)
{
    LootEntry common = new LootEntryTable(new ResourceLocation("lootslashconquer:chests/common_chest"), 60, 1, new LootCondition[0], "common");
    LootEntry uncommon = new LootEntryTable(new ResourceLocation("lootslashconquer:chests/uncommon_chest"), 25, 1, new LootCondition[0], "uncommon");
    LootEntry rare = new LootEntryTable(new ResourceLocation("lootslashconquer:chests/rare_chest"), 10, 1, new LootCondition[0], "rare");
    LootEntry legendary = new LootEntryTable(new ResourceLocation("lootslashconquer:chests/legendary_chest"), 5, 1, new LootCondition[0], "legendary");
    LootEntry exotic = new LootEntryTable(new ResourceLocation("lootslashconquer:chests/exotic_chest"), 2, 1, new LootCondition[0], "exotic");

    LootPool pool = new LootPool(new LootEntry[] { common, uncommon, rare, legendary, exotic }, new LootCondition[0], new RandomValueRange(0, 1), new RandomValueRange(0), "loot");

    table.addPool(pool);
}
项目:BetterThanWeagles    文件:EventHandlerLootTables.java   
@SubscribeEvent
public static void lootLoaded(LootTableLoadEvent event)
{
    if (event.getName().equals(LootTableList.CHESTS_SIMPLE_DUNGEON))
    {
        LootTable customTable = event.getLootTableManager().getLootTableFromLocation(new ResourceLocation(BetterThanWeagles.MODID, "custom/simple_dungeon_chest"));
        LootPool customPool = customTable.getPool("weagles");
        event.getTable().addPool(customPool);
    }
}
项目:Randores2    文件:RandoresLoot.java   
@SubscribeEvent
public void addTables(LootTableLoadEvent event){
    String name = event.getName().toString();
    if(Randores.getConfigObj().getModules().isDungeonLoot()) {
        if (is(name, chests)) {
            event.getTable().addPool(new LootPool(new LootEntry[] {new RandoresLootEntry(1, 2, true, 10, 20, new LootCondition[0], "randores_flexible_loot_entry")}, new LootCondition[0], new RandomValueRange(1), new RandomValueRange(0, 1), "randores_flexible_pool"));
        } else if (name.contains("end_city_treasure")) {
            event.getTable().addPool(new LootPool(new LootEntry[] {new RandoresLootEntry(1, 5, true, 20, 50, new LootCondition[0], "randores_flexible_loot_entry")}, new LootCondition[0], new RandomValueRange(1), new RandomValueRange(0, 1), "randores_flexible_pool"));
        } else if (name.contains("spawn_bonus_chest")) {
            event.getTable().addPool(new LootPool(new LootEntry[] {new RandoresLootEntry(1, 1, false, 0, 0, new LootCondition[0], "randores_flexible_loot_entry")}, new LootCondition[0], new RandomValueRange(1), new RandomValueRange(0, 1), "randores_flexible_pool"));
        }
    }
}
项目:EndermanEvolution    文件:ModEvents.java   
@SubscribeEvent
public void onLootTablesLoaded(LootTableLoadEvent event) {
    if ((event.getName().equals(LootTableList.CHESTS_ABANDONED_MINESHAFT)) || (event.getName().equals(LootTableList.CHESTS_SIMPLE_DUNGEON)) || (event.getName().equals(LootTableList.CHESTS_DESERT_PYRAMID)) || (event.getName().equals(LootTableList.CHESTS_NETHER_BRIDGE)) || (event.getName().equals(LootTableList.CHESTS_STRONGHOLD_LIBRARY)) || (event.getName().equals(LootTableList.CHESTS_END_CITY_TREASURE))) {
        LootPool mainPool = event.getTable().getPool("main");
        if (mainPool != null) {
            if (event.getName().equals(LootTableList.CHESTS_ABANDONED_MINESHAFT) || event.getName().equals(LootTableList.CHESTS_NETHER_BRIDGE) || event.getName().equals(LootTableList.CHESTS_SIMPLE_DUNGEON)) {
                mainPool.addEntry(new LootEntryItem(ModItems.FRIENDER_PEARL, 10, 0, new LootFunction[] {}, new LootCondition[0], ModGlobals.MODID + ":friender_pearl_loot"));
            }
        }
    }

}
项目:BetterBeginningsReborn    文件:BBEventHandler.java   
private static void replaceCookedWithCharred(LootPool targetPool, Item targetItem, ItemStack replacementStack, int minCount, int maxCount)
   {
List<LootFunction> charredFunctions = Lists.newArrayList();
if(replacementStack.getItemDamage() != 0) charredFunctions.add(LootUtil.createSetMetadata(replacementStack.getItemDamage()));
if(replacementStack.getTagCompound() != null) charredFunctions.add(LootUtil.createSetNBT(replacementStack.getTagCompound()));
charredFunctions.add(LootUtil.createCountFunction(minCount, maxCount));
charredFunctions.add(LootUtil.createLootingFunc(0, 1));

LootCondition notOnFire = new EntityHasProperty(new EntityProperty[] {new EntityOnFire(false)}, EntityTarget.THIS);
LootCondition onFire = new EntityHasProperty(new EntityProperty[] {new EntityOnFire(true)}, EntityTarget.THIS);

targetPool.removeEntry(targetItem.getRegistryName().toString());
targetPool.addEntry(new LootEntryItem(targetItem, 1, 1, new LootFunction[] {LootUtil.createCountFunction(1, 3), LootUtil.createLootingFunc(0, 1)}, new LootCondition[] {notOnFire}, targetItem.getRegistryName().toString()));
targetPool.addEntry(new LootEntryItem(replacementStack.getItem(), 1, 1, charredFunctions.toArray(new LootFunction[charredFunctions.size()]), new LootCondition[] {onFire}, ModMain.MODID + ":charred_+" + targetItem.getRegistryName().getResourcePath().toString()));
   }
项目:BetterBeginningsReborn    文件:BBEventHandler.java   
private void removeSmeltFunction(LootPool pool, Item targetItem, Item replacement, int minCount, int maxCount)
   {
LootCondition notOnFire = new EntityHasProperty(new EntityProperty[] {new EntityOnFire(false)}, EntityTarget.THIS);
LootCondition onFire = new EntityHasProperty(new EntityProperty[] {new EntityOnFire(true)}, EntityTarget.THIS);

pool.removeEntry(targetItem.getRegistryName().toString());
pool.addEntry(new LootEntryItem(targetItem, 1, 1, new LootFunction[] {LootUtil.createCountFunction(1, 3), LootUtil.createLootingFunc(0, 1)}, new LootCondition[] {notOnFire}, targetItem.getRegistryName().toString()));
pool.addEntry(new LootEntryItem(replacement, 1, 1, new LootFunction[] {LootUtil.createCountFunction(1, 3), LootUtil.createLootingFunc(0, 1)}, new LootCondition[] {onFire}, replacement.getRegistryName().toString()));
   }
项目:NemesisSystem    文件:LootHandler.java   
@SubscribeEvent
public void lootTableLoad(final LootTableLoadEvent event) {
    if (NemesisConfig.DISCOVERY_ENABLED && isLootTarget(event)) {

        // TODO improve roll settings

        String name = LOOT_TABLE.toString();
        LootEntry entry = new LootEntryTable(LOOT_TABLE, 1, 0, new LootCondition[0], name);

        RandomValueRange rolls = new RandomValueRange(0, 1);
        LootPool pool = new LootPool(new LootEntry[] { entry }, new LootCondition[0], rolls, rolls, name);
        event.getTable().addPool(pool);
    }
}
项目:runesofwizardry-classics    文件:LootUtils.java   
/**
 * Converts a LootTable to a list of possible drops, only looks for Item and metadata.
 * @param table the loot table to get items from
 * @return a LinkedList of the stacks in the loot table
 */
public static List<ItemStack> tableToItemStacks(LootTable table){
    List<ItemStack> stacks = new LinkedList<>();
    for(LootPool p:getPools(table)){
        for(LootEntry entry:getEntries(p)){
            if(entry instanceof LootEntryItem){
                LootEntryItem ei = (LootEntryItem)entry;
                Item item = getItem(ei);
                LootFunction[] functs = getFunctions(ei);
                boolean metaSet = false;
                for(LootFunction func:functs){
                    if(func instanceof SetMetadata){
                        metaSet=true;
                        RandomValueRange range = (RandomValueRange)ReflectionHelper.getPrivateValue(SetMetadata.class, (SetMetadata)func, "metaRange","field_186573_b");
                        int meta = MathHelper.floor(range.getMin());
                        stacks.add(new ItemStack(item,1,meta));
                    }
                }
                if(!metaSet)stacks.add(new ItemStack(item));
            }
            /* won't bother with this case for now
            else if(entry instanceof LootEntryTable){
                //restart with that table
                ResourceLocation location = (ResourceLocation) ReflectionHelper.getPrivateValue(LootEntryTable.class, (LootEntryTable)entry, "table","field_186371_a");
            }
            */
        }
    }
    return stacks;
}
项目:MobHunter    文件:LootHandler.java   
@SubscribeEvent
public static void addLoot(LootTableLoadEvent event)
{
    if(event.getName().equals(LootTableList.GAMEPLAY_FISHING_FISH))
    {
        //Add fishable fish
        LootPool pool = event.getTable().getPool("main");
        for(Map.Entry<Item, Integer> entry : MHItems.FISHABLE.entrySet())
            addLoot(pool, entry.getKey(), entry.getValue());
    }
}
项目:Minecraft-Flux    文件:MCFluxEvents.java   
@SubscribeEvent
public static void onLootTableLoad(LootTableLoadEvent e) {
    final ResourceLocation rl = e.getName();
    if (rl.equals(LootTableList.CHESTS_VILLAGE_BLACKSMITH) || rl.equals(LootTableList.CHESTS_ABANDONED_MINESHAFT) || rl.equals(LootTableList.CHESTS_JUNGLE_TEMPLE)) {
        final LootTable lt = e.getTable();
        LootPool lp = lt.getPool("pool0");
        if (lp == null)
            lp = lt.getPool("main");
        if (lp != null) {
            lp.addEntry(new LootEntryItem(MCFluxResources.UPCHIP, 20, 0, new LootFunction[0], new LootCondition[0], "mcflux:loot/upchip"));
        }
    }
}
项目:Loot-Tables    文件:LootTablesMod.java   
@SubscribeEvent
public void onLootTablesLoaded (LootTableLoadEvent event) {

    // Checks to see if the loot table being loaded is the basic dungeon chest.
    if (event.getName().equals(LootTableList.CHESTS_SIMPLE_DUNGEON)) {

        // Gets pool2 from the loot table. This pool is where common loot like zombie flesh
        // bones and string goes.
        final LootPool pool2 = event.getTable().getPool("pool2");

        // Makes sure the pool has not been deleted.
        if (pool2 != null) {

            // Adds cookies to the loot pool. Has a weight of 10 and spawns in stacks of 1
            // to 5.
            pool2.addEntry(new LootEntryItem(Items.COOKIE, 10, 0, new LootFunction[] { new SetCount(new LootCondition[0], new RandomValueRange(1, 5)) }, new LootCondition[0], "tutorial:cookie"));

            // Adds Lime Green Dye to the loot pool. Has a weight of 10.
            pool2.addEntry(new LootEntryItem(Items.DYE, 10, 0, new LootFunction[] { new SetDamage(new LootCondition[0], new RandomValueRange(10, 10)) }, new LootCondition[0], "tutorial:dyes"));
        }
    }

    // Checks to see if the loot table being loaded is for the mob we are looking for
    if (event.getName().equals(LootTableList.ENTITIES_PIG)) {

        // Gets main from the loot table. This pool is where the basic drops like porkchop are.
        final LootPool main = event.getTable().getPool("main");

        // Makes sure that the main pool actually exists. It can be deleted by other mods.
        if (main != null) {

            // Adds a carrot to the pool. Carrots will now drop just as often as pork chops.
            main.addEntry(new LootEntryItem(Items.CARROT, 1, 0, new LootFunction[0], new LootCondition[0], "tutorial:carrot"));

            // Adds an apple to the loot pool. This entry is only used if the pig was killed by a player.
            main.addEntry(new LootEntryItem(Items.APPLE, 1, 0, new LootFunction[0], new LootCondition[] { new KilledByPlayer(false)}, "tutorial:player"));
        }
    }
}
项目:AdditionalLootTables    文件:ALTEventHandler.java   
@SubscribeEvent(priority= EventPriority.NORMAL)
public void onLootLoad(LootTableLoadEvent event){
    if(event.getName().getResourceDomain().equals("minecraft") == false) return; // loot table from another mod (too fancy for ALT)
    String categoryAndEntry = event.getName().getResourcePath(); // e.g. "chests/abandoned_mineshaft"
    if(categoryAndEntry.contains("/") == false) return; // not valid
    // category is "chests" or "entities"
    String category = categoryAndEntry.substring(0,categoryAndEntry.indexOf('/'));
    // entry is the name of the loot table (e.g. "abandoned_mineshaft")
    String entry = categoryAndEntry.substring(categoryAndEntry.indexOf('/')+1,categoryAndEntry.length());
    final Map<String, Map<String, List<LootPool>>> additional_loot = AdditionalLootTables.getAdditionalLootTables();
    if(additional_loot.containsKey(category)
            && additional_loot.get(category).containsKey(entry)){
        List<LootPool> pools = additional_loot.get(category).get(entry);
        if(pools == null || pools.isEmpty()) return; // nothing to add
        if(event.getTable() == null) {
            // table was removed by another mod
            FMLLog.info("%s: creating new loot table %s", MODID, event.getName());
            event.setTable(new LootTable(pools.toArray(new LootPool[pools.size()])));
        } else {
            // table exists, add pools to it
            FMLLog.info("%s: adding more loot to loot table %s", MODID, event.getName());
            for (LootPool pool : pools) {
                event.getTable().addPool(pool);
            }
        }
    }
}
项目:Dark-Utilities    文件:FeatureEnchantedRing.java   
@SubscribeEvent
public void onLootTableLoad (LootTableLoadEvent event) {

    if (allowDungeonLoot && event.getName().equals(LootTableList.CHESTS_NETHER_BRIDGE)) {

        final LootPool main = event.getTable().getPool("main");

        if (main != null) {
            main.addEntry(new LootEntryItem(itemRing, weight, 0, new LootFunction[] { new SetDamage(new LootCondition[0], new RandomValueRange(0, ItemRing.varients.length - 1)) }, new LootCondition[0], "darkutils:nether_rings"));
        }
    }
}
项目:Dark-Utilities    文件:FeatureMaterial.java   
@SubscribeEvent
public void onLootTableLoad (LootTableLoadEvent event) {

    final LootTable table = event.getTable();

    if (skeletonDropDust && event.getName().equals(LootTableList.ENTITIES_WITHER_SKELETON)) {

        final LootPool pool1 = table.getPool("pool1");

        if (pool1 != null) {
            pool1.addEntry(new LootEntryItem(itemMaterial, dustDropWeight, 0, new LootFunction[0], new LootCondition[0], DarkUtils.MOD_ID + ":wither_dust"));
        }
    }
}
项目:Culinary-Cultivation    文件:FishingLootEvent.java   
@SubscribeEvent
public static void onLootLoading(LootTableLoadEvent event) {
    if (event.getName().toString().equals("minecraft:gameplay/fishing")) {
        LootPool pool = event.getTable().getPool("main");
        if (pool != null) {
            for (String name : LOOT_TABLES) {
                LootEntry entry = pool.getEntry("minecraft:" + name);
                pool.addEntry(getEntry(MOD_ID + "_" + name.replace(FISHING, ""), name, getVanillaQuality(entry), getVanillaWeight(entry)));
            }
        }
    }
}
项目:Cyclic    文件:LootTableModule.java   
private void onLootChestTableLoad(LootPool main, LootTableLoadEvent event) {
  if (event.getName() == LootTableList.CHESTS_SPAWN_BONUS_CHEST) {
    fillBonusChest(main);
  }
  else if (event.getName() == LootTableList.CHESTS_IGLOO_CHEST) {
    fillIglooChest(main);
  }
  else if (event.getName() == LootTableList.CHESTS_END_CITY_TREASURE) {
    fillEndCityChest(main);
  }
  else if (chests.contains(event.getName())) { // every other pool 
    fillGenericChest(main);
  }
}
项目:Cyclic    文件:LootTableModule.java   
private void fillPoolFromMap(LootPool main, Map<Item, Integer> map) {
  synchronized (map) {
    for (Map.Entry<Item, Integer> entry : map.entrySet()) {
      addLoot(main, entry.getKey(), entry.getValue());
    }
  }
}
项目:Allomancy    文件:CommonEventHandler.java   
@SubscribeEvent
public void onLootTableLoad(LootTableLoadEvent event) {
    String name = event.getName().toString();
    if (name.startsWith("minecraft:chests/simple_dungeon") || name.startsWith("minecraft:chests/desert_pyramid") || name.startsWith("minecraft:chests/jungle_temple")) {
        event.getTable().addPool(new LootPool(new LootEntry[] { new LootEntryTable(new ResourceLocation(Allomancy.MODID, "inject/lerasium"), 1, 0, new LootCondition[0], "allomancy_inject_entry") }, new LootCondition[0], new RandomValueRange(1),
                new RandomValueRange(0, 1), "allomancy_inject_pool"));
    }
}
项目:Loot-Slash-Conquer    文件:CustomLootTable.java   
public CustomLootTable(LootPool[] poolsIn) 
{
    super(poolsIn);
}
项目:Mods    文件:TF2EventsCommon.java   
public static LootPool getLootPool(ResourceLocation res){
    return new LootPool(new LootEntry[]{new LootEntryTable(res, 1, 0, new LootCondition[0], "combined")},
            new LootCondition[0], new RandomValueRange(1), new RandomValueRange(0), "combined");
}
项目:BetterBeginningsReborn    文件:BBEventHandler.java   
@SubscribeEvent
   public void onLootTableLoad(LootTableLoadEvent e)
   {
Worldgen.addLoot(e.getTable(), e.getName());
if (BBConfig.moreBones)
{
    if(e.getName().equals(LootTableList.ENTITIES_SKELETON))
    {
    LootPool pool1 = e.getTable().getPool("pool1");
    pool1.removeEntry("minecraft:bone");
    pool1.addEntry(new LootEntryItem(Items.BONE, 1, 1, new LootFunction[] {LootUtil.createCountFunction(1, 3), LootUtil.createLootingFunc(0, 1)}, LootUtil.NO_CONDITIONS, Items.BONE.getRegistryName().toString()));
    }
}
if (BBConfig.flamingAnimalsDropCharredMeat)
{
    if(e.getName().equals(LootTableList.ENTITIES_COW))
    {
    replaceCookedWithCharred(e.getTable().getPool("pool1"), Items.BEEF, new ItemStack(RegisterItems.charredMeat, 1, ItemCharredMeat.META_MEAT), 1, 3);
    }
    else if(e.getName().equals(LootTableList.ENTITIES_PIG))
    {
    replaceCookedWithCharred(e.getTable().getPool("main"), Items.PORKCHOP, new ItemStack(RegisterItems.charredMeat, 1, ItemCharredMeat.META_MEAT), 1, 3);
    }
    else if(e.getName().equals(LootTableList.ENTITIES_CHICKEN))
    {
    replaceCookedWithCharred(e.getTable().getPool("pool1"), Items.CHICKEN, new ItemStack(RegisterItems.charredMeat, 1, ItemCharredMeat.META_CHICKEN), 1, 1);
    }
    else if(e.getName().equals(LootTableList.ENTITIES_SHEEP))
    {
    replaceCookedWithCharred(e.getTable().getPool("main"), Items.MUTTON, new ItemStack(RegisterItems.charredMeat, 1, ItemCharredMeat.META_MUTTON), 1, 2);
    }
    else if(e.getName().equals(LootTableList.ENTITIES_RABBIT))
    {
    replaceCookedWithCharred(e.getTable().getPool("pool1"), Items.RABBIT, new ItemStack(RegisterItems.charredMeat, 1, ItemCharredMeat.META_RABBIT), 0, 1);
    }
}
else
{
    if(e.getName().equals(LootTableList.ENTITIES_COW))
    {
    removeSmeltFunction(e.getTable().getPool("pool1"), Items.BEEF, Items.COOKED_BEEF, 1, 3);
    }
    else if(e.getName().equals(LootTableList.ENTITIES_PIG))
    {
    removeSmeltFunction(e.getTable().getPool("main"), Items.PORKCHOP, Items.COOKED_PORKCHOP, 1, 3);
    }
    else if(e.getName().equals(LootTableList.ENTITIES_CHICKEN))
    {
    removeSmeltFunction(e.getTable().getPool("pool1"), Items.CHICKEN, Items.COOKED_CHICKEN, 1, 1);
    }
    else if(e.getName().equals(LootTableList.ENTITIES_SHEEP))
    {
    removeSmeltFunction(e.getTable().getPool("main"), Items.MUTTON, Items.COOKED_MUTTON, 1, 2);
    }
    else if(e.getName().equals(LootTableList.ENTITIES_RABBIT))
    {
    removeSmeltFunction(e.getTable().getPool("pool1"), Items.RABBIT, Items.COOKED_RABBIT, 0, 1);
    }
}
if(e.getName().equals(LootTableList.ENTITIES_SPIDER) || e.getName().equals(LootTableList.ENTITIES_CAVE_SPIDER))
{
    if (!BBConfig.spidersDropString)
    {
    e.getTable().getPool("main").removeEntry("minecraft:string");
    }
    e.getTable().getPool("main").addEntry(new LootEntryItem(RegisterItems.silk, 1, 1, new LootFunction[] {LootUtil.createCountFunction(2, 4), LootUtil.createLootingFunc(0, 1)}, LootUtil.NO_CONDITIONS, RegisterItems.silk.getRegistryName().toString()));
}
   }
项目:runesofwizardry-classics    文件:LootUtils.java   
public static List<LootPool> getPools(LootTable table)
{
    return ReflectionHelper.getPrivateValue(LootTable.class, table, "pools", "field_186466_c");
}
项目:runesofwizardry-classics    文件:LootUtils.java   
public static List<LootEntry> getEntries(LootPool pool)
{
    return ReflectionHelper.getPrivateValue(LootPool.class, pool, "lootEntries", "field_186453_a");
}
项目:CrystalMod    文件:LootHelper.java   
public static void createPoolIfNotExists(LootTable lootTable, String poolId) {
    if (poolId.equals(VANILLA_LOOT_POOL_ID) || lootTable.getPool(poolId) != null) return;
    lootTable.addPool(new LootPool(new LootEntry[] {}, new LootCondition[] {}, new RandomValueRange(1), new RandomValueRange(0), poolId));
}
项目:MobHunter    文件:LootHandler.java   
private static void addLoot(LootPool pool, Item item, int weight)
{
    pool.addEntry(new LootEntryItem(item, weight, 0, new LootFunction[0], new LootCondition[0], Reference.MOD_ID + item.getUnlocalizedName()));
}
项目:Cyclic    文件:LootTableModule.java   
private void fillEndCityChest(LootPool main) {
  fillPoolFromMap(main, LootTableRegistry.endCityChest);
}
项目:Cyclic    文件:LootTableModule.java   
private void fillGenericChest(LootPool main) {
  fillPoolFromMap(main, LootTableRegistry.genericChest);
}
项目:Cyclic    文件:LootTableModule.java   
private void fillIglooChest(LootPool main) {
  fillPoolFromMap(main, LootTableRegistry.iglooChest);
}
项目:Cyclic    文件:LootTableModule.java   
private void fillBonusChest(LootPool main) {
  fillPoolFromMap(main, LootTableRegistry.bonusChest);
}
项目:Cyclic    文件:LootTableModule.java   
private void addLoot(LootPool main, Item item, int rando) {
  if (item != null) {//shortcut fix bc of new module config system that can delete items   
    main.addEntry(new LootEntryItem(item, rando, 0, new LootFunction[0], new LootCondition[0], Const.MODRES + item.getUnlocalizedName()));
  }
}
项目:Bookshelf    文件:AutoRegistry.java   
@SubscribeEvent
public void onTableLoaded (LootTableLoadEvent event) {

    for (final LootBuilder builder : this.helper.getLootTableEntries().get(event.getName())) {

        final LootPool pool = event.getTable().getPool(builder.getPool());

        if (pool != null) {

            pool.addEntry(builder.build());
        }

        else {

            Constants.LOG.info("The mod {} tried to add loot to {} but the pool was not found. {}", this.helper.getModid(), event.getName(), builder.toString());
        }
    }
}
项目:OpenBlocks    文件:LootHandler.java   
private static LootPool createPool(ResourceLocation injectionEntry) {
    return new LootPool(new LootEntry[] { loadEntry(injectionEntry) }, new LootCondition[0], new RandomValueRange(1), new RandomValueRange(0, 1), "openmods_inject_pool");
}