package mcjty.rftools.blocks.environmental;
import cpw.mods.fml.common.registry.GameRegistry;
import mcjty.lib.container.GenericItemBlock;
import mcjty.rftools.RFTools;
import mcjty.rftools.blocks.ModBlocks;
import mcjty.rftools.blocks.dimletconstruction.DimletConstructionConfiguration;
import mcjty.rftools.blocks.dimletconstruction.DimletConstructionSetup;
import mcjty.rftools.crafting.NBTMatchingRecipe;
import mcjty.rftools.items.envmodules.*;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import java.util.HashMap;
import java.util.Map;
public class EnvironmentalSetup {
public static EnvironmentalControllerBlock environmentalControllerBlock;
public static RegenerationEModuleItem regenerationEModuleItem;
public static RegenerationPlusEModuleItem regenerationPlusEModuleItem;
public static SpeedEModuleItem speedEModuleItem;
public static SpeedPlusEModuleItem speedPlusEModuleItem;
public static HasteEModuleItem hasteEModuleItem;
public static HastePlusEModuleItem hastePlusEModuleItem;
public static SaturationEModuleItem saturationEModuleItem;
public static SaturationPlusEModuleItem saturationPlusEModuleItem;
public static FeatherFallingEModuleItem featherFallingEModuleItem;
public static FeatherFallingPlusEModuleItem featherFallingPlusEModuleItem;
public static FlightEModuleItem flightEModuleItem;
public static PeacefulEModuleItem peacefulEModuleItem;
public static WaterBreathingEModuleItem waterBreathingEModuleItem;
public static NightVisionEModuleItem nightVisionEModuleItem;
public static BlindnessEModuleItem blindnessEModuleItem;
public static WeaknessEModuleItem weaknessEModuleItem;
public static PoisonEModuleItem poisonEModuleItem;
public static SlownessEModuleItem slownessEModuleItem;
public static void setupBlocks() {
environmentalControllerBlock = new EnvironmentalControllerBlock();
GameRegistry.registerBlock(environmentalControllerBlock, GenericItemBlock.class, "environmentalControllerBlock");
GameRegistry.registerTileEntity(EnvironmentalControllerTileEntity.class, "EnvironmentalControllerTileEntity");
}
public static void setupItems() {
regenerationEModuleItem = new RegenerationEModuleItem();
regenerationEModuleItem.setUnlocalizedName("RegenerationEModule");
regenerationEModuleItem.setCreativeTab(RFTools.tabRfTools);
regenerationEModuleItem.setTextureName(RFTools.MODID + ":envmodules/regenerationEModuleItem");
GameRegistry.registerItem(regenerationEModuleItem, "regenerationEModuleItem");
regenerationPlusEModuleItem = new RegenerationPlusEModuleItem();
regenerationPlusEModuleItem.setUnlocalizedName("RegenerationPlusEModule");
regenerationPlusEModuleItem.setCreativeTab(RFTools.tabRfTools);
regenerationPlusEModuleItem.setTextureName(RFTools.MODID + ":envmodules/regenerationPlusEModuleItem");
GameRegistry.registerItem(regenerationPlusEModuleItem, "regenerationPlusEModuleItem");
speedEModuleItem = new SpeedEModuleItem();
speedEModuleItem.setUnlocalizedName("SpeedEModule");
speedEModuleItem.setCreativeTab(RFTools.tabRfTools);
speedEModuleItem.setTextureName(RFTools.MODID + ":envmodules/speedEModuleItem");
GameRegistry.registerItem(speedEModuleItem, "speedEModuleItem");
speedPlusEModuleItem = new SpeedPlusEModuleItem();
speedPlusEModuleItem.setUnlocalizedName("SpeedPlusEModule");
speedPlusEModuleItem.setCreativeTab(RFTools.tabRfTools);
speedPlusEModuleItem.setTextureName(RFTools.MODID + ":envmodules/speedPlusEModuleItem");
GameRegistry.registerItem(speedPlusEModuleItem, "speedPlusEModuleItem");
hasteEModuleItem = new HasteEModuleItem();
hasteEModuleItem.setUnlocalizedName("HasteEModule");
hasteEModuleItem.setCreativeTab(RFTools.tabRfTools);
hasteEModuleItem.setTextureName(RFTools.MODID + ":envmodules/hasteEModuleItem");
GameRegistry.registerItem(hasteEModuleItem, "hasteEModuleItem");
hastePlusEModuleItem = new HastePlusEModuleItem();
hastePlusEModuleItem.setUnlocalizedName("HastePlusEModule");
hastePlusEModuleItem.setCreativeTab(RFTools.tabRfTools);
hastePlusEModuleItem.setTextureName(RFTools.MODID + ":envmodules/hastePlusEModuleItem");
GameRegistry.registerItem(hastePlusEModuleItem, "hastePlusEModuleItem");
saturationEModuleItem = new SaturationEModuleItem();
saturationEModuleItem.setUnlocalizedName("SaturationEModule");
saturationEModuleItem.setCreativeTab(RFTools.tabRfTools);
saturationEModuleItem.setTextureName(RFTools.MODID + ":envmodules/saturationEModuleItem");
GameRegistry.registerItem(saturationEModuleItem, "saturationEModuleItem");
saturationPlusEModuleItem = new SaturationPlusEModuleItem();
saturationPlusEModuleItem.setUnlocalizedName("SaturationPlusEModule");
saturationPlusEModuleItem.setCreativeTab(RFTools.tabRfTools);
saturationPlusEModuleItem.setTextureName(RFTools.MODID + ":envmodules/saturationPlusEModuleItem");
GameRegistry.registerItem(saturationPlusEModuleItem, "saturationPlusEModuleItem");
featherFallingEModuleItem = new FeatherFallingEModuleItem();
featherFallingEModuleItem.setUnlocalizedName("FeatherFallingEModule");
featherFallingEModuleItem.setCreativeTab(RFTools.tabRfTools);
featherFallingEModuleItem.setTextureName(RFTools.MODID + ":envmodules/featherfallingEModuleItem");
GameRegistry.registerItem(featherFallingEModuleItem, "featherFallingEModuleItem");
featherFallingPlusEModuleItem = new FeatherFallingPlusEModuleItem();
featherFallingPlusEModuleItem.setUnlocalizedName("FeatherFallingPlusEModule");
featherFallingPlusEModuleItem.setCreativeTab(RFTools.tabRfTools);
featherFallingPlusEModuleItem.setTextureName(RFTools.MODID + ":envmodules/featherfallingPlusEModuleItem");
GameRegistry.registerItem(featherFallingPlusEModuleItem, "featherFallingPlusEModuleItem");
flightEModuleItem = new FlightEModuleItem();
flightEModuleItem.setUnlocalizedName("FlightEModule");
flightEModuleItem.setCreativeTab(RFTools.tabRfTools);
flightEModuleItem.setTextureName(RFTools.MODID + ":envmodules/flightEModuleItem");
GameRegistry.registerItem(flightEModuleItem, "flightEModuleItem");
peacefulEModuleItem = new PeacefulEModuleItem();
peacefulEModuleItem.setUnlocalizedName("PeacefulEModule");
peacefulEModuleItem.setCreativeTab(RFTools.tabRfTools);
peacefulEModuleItem.setTextureName(RFTools.MODID + ":envmodules/peacefulEModuleItem");
GameRegistry.registerItem(peacefulEModuleItem, "peacefulEModuleItem");
waterBreathingEModuleItem = new WaterBreathingEModuleItem();
waterBreathingEModuleItem.setUnlocalizedName("WaterBreathingEModule");
waterBreathingEModuleItem.setCreativeTab(RFTools.tabRfTools);
waterBreathingEModuleItem.setTextureName(RFTools.MODID + ":envmodules/waterBreathingEModuleItem");
GameRegistry.registerItem(waterBreathingEModuleItem, "waterBreathingEModuleItem");
nightVisionEModuleItem = new NightVisionEModuleItem();
nightVisionEModuleItem.setUnlocalizedName("NightVisionEModule");
nightVisionEModuleItem.setCreativeTab(RFTools.tabRfTools);
nightVisionEModuleItem.setTextureName(RFTools.MODID + ":envmodules/nightVisionEModuleItem");
GameRegistry.registerItem(nightVisionEModuleItem, "nightVisionEModuleItem");
blindnessEModuleItem = new BlindnessEModuleItem();
blindnessEModuleItem.setUnlocalizedName("BlindnessEModule");
blindnessEModuleItem.setCreativeTab(RFTools.tabRfTools);
blindnessEModuleItem.setTextureName(RFTools.MODID + ":envmodules/blindnessEModuleItem");
GameRegistry.registerItem(blindnessEModuleItem, "blindnessEModuleItem");
weaknessEModuleItem = new WeaknessEModuleItem();
weaknessEModuleItem.setUnlocalizedName("WeaknessEModule");
weaknessEModuleItem.setCreativeTab(RFTools.tabRfTools);
weaknessEModuleItem.setTextureName(RFTools.MODID + ":envmodules/weaknessEModuleItem");
GameRegistry.registerItem(weaknessEModuleItem, "weaknessEModuleItem");
poisonEModuleItem = new PoisonEModuleItem();
poisonEModuleItem.setUnlocalizedName("PoisonEModule");
poisonEModuleItem.setCreativeTab(RFTools.tabRfTools);
poisonEModuleItem.setTextureName(RFTools.MODID + ":envmodules/poisonEModuleItem");
GameRegistry.registerItem(poisonEModuleItem, "poisonEModuleItem");
slownessEModuleItem = new SlownessEModuleItem();
slownessEModuleItem.setUnlocalizedName("SlownessEModule");
slownessEModuleItem.setCreativeTab(RFTools.tabRfTools);
slownessEModuleItem.setTextureName(RFTools.MODID + ":envmodules/slownessEModuleItem");
GameRegistry.registerItem(slownessEModuleItem, "slownessEModuleItem");
}
public static void setupCrafting() {
GameRegistry.addRecipe(new ItemStack(environmentalControllerBlock), "oDo", "GMI", "oEo", 'o', Items.ender_pearl, 'M', ModBlocks.machineFrame,
'D', Blocks.diamond_block, 'E', Blocks.emerald_block, 'G', Blocks.gold_block, 'I', Blocks.iron_block);
Object inkSac = Item.itemRegistry.getObjectById(351);
String[] syringeMatcher = new String[] { "level", "mobName" };
String[] pickMatcher = new String[] { "ench" };
ItemStack ironGolemSyringe = createMobSyringe("Iron Golem");
ItemStack ghastSyringe = createMobSyringe("Ghast");
ItemStack chickenSyringe = createMobSyringe("Chicken");
ItemStack batSyringe = createMobSyringe("Bat");
ItemStack horseSyringe = createMobSyringe("Horse");
ItemStack zombieSyringe = createMobSyringe("Zombie");
ItemStack squidSyringe = createMobSyringe("Squid");
ItemStack caveSpiderSyringe = createMobSyringe("Cave Spider");
ItemStack diamondPick = createEnchantedItem(Items.diamond_pickaxe, Enchantment.efficiency.effectId, 3);
ItemStack reds = new ItemStack(Items.redstone);
ItemStack gold = new ItemStack(Items.gold_ingot);
ItemStack ink = new ItemStack((Item) inkSac);
ItemStack obsidian = new ItemStack(Blocks.obsidian);
ItemStack lapis = new ItemStack(Items.dye, 1, 4);
GameRegistry.addRecipe(new NBTMatchingRecipe(3, 3,
new ItemStack[] {null, chickenSyringe, null, reds, gold, reds, null, ink, null},
new String[][] {null, syringeMatcher, null, null, null, null, null, null, null},
new ItemStack(featherFallingEModuleItem)));
GameRegistry.addRecipe(new NBTMatchingRecipe(3, 3,
new ItemStack[] {null, ironGolemSyringe, null, reds, gold, reds, null, ink, null},
new String[][] {null, syringeMatcher, null, null, null, null, null, null, null},
new ItemStack(regenerationEModuleItem)));
GameRegistry.addRecipe(new NBTMatchingRecipe(3, 3,
new ItemStack[] {null, horseSyringe, null, reds, gold, reds, null, ink, null},
new String[][] {null, syringeMatcher, null, null, null, null, null, null, null},
new ItemStack(speedEModuleItem)));
GameRegistry.addRecipe(new NBTMatchingRecipe(3, 3, new ItemStack[] {null, diamondPick, null, reds, gold, reds, null, ink, null},
new String[][] {null, pickMatcher, null, null, null, null, null, null, null},
new ItemStack(hasteEModuleItem)));
GameRegistry.addRecipe(new NBTMatchingRecipe(3, 3,
new ItemStack[] {null, zombieSyringe, null, reds, gold, reds, null, ink, null},
new String[][] {null, syringeMatcher, null, null, null, null, null, null, null},
new ItemStack(saturationEModuleItem)));
GameRegistry.addRecipe(new NBTMatchingRecipe(3, 3,
new ItemStack[] {null, ghastSyringe, null, reds, gold, reds, null, ink, null},
new String[][] {null, syringeMatcher, null, null, null, null, null, null, null},
new ItemStack(flightEModuleItem)));
GameRegistry.addRecipe(new NBTMatchingRecipe(3, 3,
new ItemStack[] {null, squidSyringe, null, reds, gold, reds, null, ink, null},
new String[][] {null, syringeMatcher, null, null, null, null, null, null, null},
new ItemStack(waterBreathingEModuleItem)));
GameRegistry.addRecipe(new NBTMatchingRecipe(3, 3,
new ItemStack[] {null, caveSpiderSyringe, null, reds, gold, reds, null, ink, null},
new String[][] {null, syringeMatcher, null, null, null, null, null, null, null},
new ItemStack(nightVisionEModuleItem)));
GameRegistry.addRecipe(new NBTMatchingRecipe(2, 2,
new ItemStack[]{new ItemStack(regenerationEModuleItem), ironGolemSyringe, ironGolemSyringe, null},
new String[][] {null, syringeMatcher, syringeMatcher, null},
new ItemStack(regenerationPlusEModuleItem)));
GameRegistry.addRecipe(new NBTMatchingRecipe(2, 2,
new ItemStack[]{new ItemStack(speedEModuleItem), horseSyringe, horseSyringe, null},
new String[][] {null, syringeMatcher, syringeMatcher, null},
new ItemStack(speedPlusEModuleItem)));
GameRegistry.addRecipe(new NBTMatchingRecipe(2, 2,
new ItemStack[]{new ItemStack(hasteEModuleItem), diamondPick, null, null},
new String[][] {null, pickMatcher, null, null},
new ItemStack(hastePlusEModuleItem)));
GameRegistry.addRecipe(new NBTMatchingRecipe(2, 2,
new ItemStack[]{new ItemStack(saturationEModuleItem), zombieSyringe, zombieSyringe, null},
new String[][] {null, syringeMatcher, syringeMatcher, null},
new ItemStack(saturationPlusEModuleItem)));
GameRegistry.addRecipe(new NBTMatchingRecipe(2, 2,
new ItemStack[]{new ItemStack(featherFallingEModuleItem), chickenSyringe, batSyringe, null},
new String[][] {null, syringeMatcher, syringeMatcher, null},
new ItemStack(featherFallingPlusEModuleItem)));
GameRegistry.addRecipe(new ItemStack(peacefulEModuleItem, 1), " p ", "rgr", " i ", 'p', DimletConstructionSetup.peaceEssenceItem,
'r', reds, 'g', gold, 'i', ink);
if (EnvironmentalConfiguration.blindnessAvailable) {
GameRegistry.addRecipe(new NBTMatchingRecipe(3, 3,
new ItemStack[]{null, squidSyringe, null, lapis, obsidian, lapis, null, ink, null},
new String[][]{null, syringeMatcher, null, null, null, null, null, null, null},
new ItemStack(blindnessEModuleItem)));
}
if (EnvironmentalConfiguration.weaknessAvailable) {
GameRegistry.addRecipe(new NBTMatchingRecipe(3, 3,
new ItemStack[]{null, batSyringe, null, lapis, obsidian, lapis, null, ink, null},
new String[][]{null, syringeMatcher, null, null, null, null, null, null, null},
new ItemStack(weaknessEModuleItem)));
}
if (EnvironmentalConfiguration.poisonAvailable) {
GameRegistry.addRecipe(new NBTMatchingRecipe(3, 3,
new ItemStack[]{null, caveSpiderSyringe, null, lapis, obsidian, lapis, null, ink, null},
new String[][]{null, syringeMatcher, null, null, null, null, null, null, null},
new ItemStack(poisonEModuleItem)));
}
if (EnvironmentalConfiguration.slownessAvailable) {
GameRegistry.addRecipe(new NBTMatchingRecipe(3, 3,
new ItemStack[]{null, new ItemStack(Items.clock), null, lapis, obsidian, lapis, null, ink, null},
new String[][]{null, syringeMatcher, null, null, null, null, null, null, null},
new ItemStack(slownessEModuleItem)));
}
}
public static ItemStack createEnchantedItem(Item item, int effectId, int amount) {
ItemStack stack = new ItemStack(item);
Map enchant = new HashMap();
enchant.put(effectId, amount);
EnchantmentHelper.setEnchantments(enchant, stack);
return stack;
}
public static ItemStack createMobSyringe(String mobName) {
ItemStack syringe = new ItemStack(DimletConstructionSetup.syringeItem);
NBTTagCompound tagCompound = new NBTTagCompound();
tagCompound.setString("mobName", mobName);
tagCompound.setInteger("level", DimletConstructionConfiguration.maxMobInjections);
syringe.setTagCompound(tagCompound);
return syringe;
}
}