/* * Copyright (c) CovertJaguar, 2014 http://railcraft.info * * This code is the property of CovertJaguar * and may only be used with explicit written * permission unless otherwise specified on the * license page at http://railcraft.info/wiki/info:license. */ package mods.railcraft.common.plugins.forge; import net.minecraft.item.ItemStack; import net.minecraft.util.WeightedRandomChestContent; import net.minecraftforge.common.ChestGenHooks; import mods.railcraft.common.core.RailcraftConfig; import mods.railcraft.common.util.misc.Game; import net.minecraft.init.Items; /** * * @author CovertJaguar <http://www.railcraft.info> */ public class LootPlugin { public static final String WORKSHOP = "railcraft:workshop"; public static void init() { LootPlugin.increaseLootGen(1, 2, ChestGenHooks.MINESHAFT_CORRIDOR, ChestGenHooks.VILLAGE_BLACKSMITH); LootPlugin.increaseLootGen(10, 16, WORKSHOP); addLootWorkshop(new ItemStack(Items.coal), 8, 16, "fuel.coal"); } public static void increaseLootGen(int min, int max, String... locations) { for (String location : locations) { ChestGenHooks lootInfo = ChestGenHooks.getInfo(location); lootInfo.setMin(lootInfo.getMin() + min); lootInfo.setMax(lootInfo.getMax() + max); } } public static void addLoot(ItemStack loot, int minStack, int maxStack, String tag, String... locations) { if (loot == null) { if (Game.IS_DEBUG) throw new RuntimeException("Invalid Loot"); return; } WeightedRandomChestContent contents = new WeightedRandomChestContent(loot, minStack, maxStack, RailcraftConfig.getLootChance(tag)); addLoot(contents, locations); } public static void addLoot(WeightedRandomChestContent loot, String... locations) { for (String location : locations) { ChestGenHooks.addItem(location, loot); } } public static void addLootWarrior(ItemStack loot, int minStack, int maxStack, String tag) { addLoot(loot, minStack, maxStack, tag, ChestGenHooks.VILLAGE_BLACKSMITH, ChestGenHooks.DUNGEON_CHEST, ChestGenHooks.PYRAMID_DESERT_CHEST, ChestGenHooks.PYRAMID_JUNGLE_CHEST, ChestGenHooks.STRONGHOLD_CORRIDOR, ChestGenHooks.STRONGHOLD_CROSSING); } public static void addLootRailway(ItemStack loot, int minStack, int maxStack, String tag) { addLoot(loot, minStack, maxStack, tag, ChestGenHooks.MINESHAFT_CORRIDOR, WORKSHOP); } public static void addLootWorkshop(ItemStack loot, int minStack, int maxStack, String tag) { addLoot(loot, minStack, maxStack, tag, WORKSHOP); } public static void addLootTool(ItemStack loot, int minStack, int maxStack, String tag) { addLoot(loot, minStack, maxStack, tag, ChestGenHooks.MINESHAFT_CORRIDOR, ChestGenHooks.VILLAGE_BLACKSMITH); } }