package com.pam.harvestcraft.loottables;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
import com.pam.harvestcraft.HarvestCraft;
import com.pam.harvestcraft.blocks.CropRegistry;
import com.pam.harvestcraft.item.ItemRegistry;
import net.minecraft.item.Item;
import net.minecraft.world.storage.loot.LootEntryItem;
import net.minecraft.world.storage.loot.LootTableList;
import net.minecraft.world.storage.loot.RandomValueRange;
import net.minecraft.world.storage.loot.conditions.KilledByPlayer;
import net.minecraft.world.storage.loot.conditions.LootCondition;
import net.minecraft.world.storage.loot.functions.LootFunction;
import net.minecraft.world.storage.loot.functions.SetCount;
public class LootHelper {
public static final Set<CustomLootPool> additionalLootPools = new HashSet<CustomLootPool>();
static {
// LootTable for GAMEPLAY_FISHING_JUNK
final ArrayList<LootEntryItem> gameplayFishingJunkEntries = new ArrayList<LootEntryItem>();
gameplayFishingJunkEntries.add(createLootEntryItem(CropRegistry.getFood(CropRegistry.SEAWEED), 10, 0));
additionalLootPools.add(new CustomLootPool(
LootTableList.GAMEPLAY_FISHING_JUNK,
gameplayFishingJunkEntries, false));
// LootTable for GAMEPLAY_FISHING_FISH
final ArrayList<LootEntryItem> gameplayFishingFishEntries = new ArrayList<LootEntryItem>();
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.anchovyrawItem, 25, 0));
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.bassrawItem, 25, 0));
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.carprawItem, 25, 0));
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.catfishrawItem, 25, 0));
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.charrrawItem, 25, 0));
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.eelrawItem, 25, 0));
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.greenheartfishItem, 25, 0));
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.grouperrawItem, 25, 0));
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.herringrawItem, 25, 0));
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.jellyfishrawItem, 25, 0));
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.mudfishrawItem, 25, 0));
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.octopusrawItem, 25, 0));
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.perchrawItem, 25, 0));
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.snapperrawItem, 25, 0));
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.tilapiarawItem, 25, 0));
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.troutrawItem, 25, 0));
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.tunarawItem, 25, 0));
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.walleyerawItem, 25, 0));
gameplayFishingFishEntries.add(createLootEntryItem(ItemRegistry.sardinerawItem, 25, 0));
additionalLootPools.add(new CustomLootPool(
LootTableList.GAMEPLAY_FISHING_FISH,
gameplayFishingFishEntries, false));
// LootTable for SQUIDS
if (HarvestCraft.config.squiddropCalamari) {
final ArrayList<LootEntryItem> squidEntries = new ArrayList<LootEntryItem>();
squidEntries.add(createLootEntryItem(ItemRegistry.calamarirawItem, 50, 0,
new LootFunction[]{new SetCount(new LootCondition[]{}, new RandomValueRange(1, 2))},
new KilledByPlayer(false)));
additionalLootPools.add(new CustomLootPool(
LootTableList.ENTITIES_SQUID,
squidEntries, true));
}
}
private static LootEntryItem createLootEntryItem(Item item, int weight, int quality) {
return createLootEntryItem(item, weight, quality, new LootFunction[]{});
}
private static LootEntryItem createLootEntryItem(Item item, int weight, int quality, LootFunction[] lootFunctions, LootCondition... lootConditions) {
return new LootEntryItem(item, weight, quality, lootFunctions, lootConditions, "harvestcraft." + item.getUnlocalizedName());
}
}