package com.eloraam.redpower; import com.eloraam.redpower.base.BlockAppliance; import com.eloraam.redpower.base.BlockMicro; import com.eloraam.redpower.base.ContainerAdvBench; import com.eloraam.redpower.base.ContainerAlloyFurnace; import com.eloraam.redpower.base.ContainerBag; import com.eloraam.redpower.base.ContainerBusId; import com.eloraam.redpower.base.GuiAdvBench; import com.eloraam.redpower.base.GuiAlloyFurnace; import com.eloraam.redpower.base.GuiBag; import com.eloraam.redpower.base.GuiBusId; import com.eloraam.redpower.base.ItemBag; import com.eloraam.redpower.base.ItemDrawplate; import com.eloraam.redpower.base.ItemDyeIndigo; import com.eloraam.redpower.base.ItemHandsaw; import com.eloraam.redpower.base.ItemMicro; import com.eloraam.redpower.base.ItemPlan; import com.eloraam.redpower.base.ItemScrewdriver; import com.eloraam.redpower.base.RecipeBag; import com.eloraam.redpower.base.RenderAdvBench; import com.eloraam.redpower.base.RenderAlloyFurnace; import com.eloraam.redpower.base.TileAdvBench; import com.eloraam.redpower.base.TileAlloyFurnace; import com.eloraam.redpower.core.AchieveLib; import com.eloraam.redpower.core.BlockMultiblock; import com.eloraam.redpower.core.CoreLib; import com.eloraam.redpower.core.CoverLib; import com.eloraam.redpower.core.CraftLib; import com.eloraam.redpower.core.IRedbusConnectable; import com.eloraam.redpower.core.ItemExtended; import com.eloraam.redpower.core.ItemParts; import com.eloraam.redpower.core.OreStack; import com.eloraam.redpower.core.RenderLib; import com.eloraam.redpower.core.TileCovered; import com.eloraam.redpower.core.TileMultiblock; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.inventory.InventoryBasic; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; import net.minecraft.stats.AchievementList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.client.event.TextureStitchEvent.Pre; import net.minecraftforge.common.AchievementPage; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.oredict.OreDictionary; @Mod( modid = "RedPowerBase", name = "RedPower Base", version = RedPowerBase.VERSION, dependencies = "required-after:RedPowerCore" ) public class RedPowerBase implements IGuiHandler { public static final String VERSION = "{VERSION}"; @Instance("RedPowerBase") public static RedPowerBase instance; public static BlockAppliance blockAppliance; public static Item itemHandsawIron; public static Item itemHandsawDiamond; public static ItemParts itemLumar; public static ItemParts itemResource; public static ItemStack itemRuby; public static ItemStack itemGreenSapphire; public static ItemStack itemSapphire; public static ItemStack itemIngotSilver; public static ItemStack itemIngotTin; public static ItemStack itemIngotCopper; public static ItemStack itemIngotTungsten; public static ItemStack itemDustTungsten; public static ItemStack itemDustSilver; public static ItemStack itemNikolite; public static ItemParts itemAlloy; public static ItemStack itemIngotRed; public static ItemStack itemIngotBlue; public static ItemStack itemIngotBrass; public static ItemStack itemBouleSilicon; public static ItemStack itemWaferSilicon; public static ItemStack itemWaferBlue; public static ItemStack itemWaferRed; public static ItemStack itemTinplate; public static ItemStack itemFineCopper; public static ItemStack itemFineIron; public static ItemStack itemCopperCoil; public static ItemStack itemMotor; public static ItemStack itemCanvas; public static ItemParts itemNugget; public static ItemStack itemNuggetIron; public static ItemStack itemNuggetSilver; public static ItemStack itemNuggetTin; public static ItemStack itemNuggetCopper; public static ItemStack itemNuggetTungsten; public static Item itemDyeIndigo; public static BlockMicro blockMicro; public static BlockMultiblock blockMultiblock; public static ItemScrewdriver itemScrewdriver; public static Item itemDrawplateDiamond; public static Item itemPlanBlank; public static Item itemPlanFull; public static Item itemBag; @SideOnly(Side.CLIENT) public static IIcon projectTableTop; @SideOnly(Side.CLIENT) public static IIcon projectTableBottom; @SideOnly(Side.CLIENT) public static IIcon projectTableFront; @SideOnly(Side.CLIENT) public static IIcon projectTableSide; @SideOnly(Side.CLIENT) public static IIcon alloyFurnaceVert; @SideOnly(Side.CLIENT) public static IIcon alloyFurnaceSide; @SideOnly(Side.CLIENT) public static IIcon alloyFurnaceFront; @SideOnly(Side.CLIENT) public static IIcon alloyFurnaceFrontOn; public static void initBaseItems() { itemLumar = new ItemParts(); itemLumar.setCreativeTab(CreativeTabs.tabMaterials); for (int color = 0; color < 16; ++color) { itemLumar.addItem( color, "rpbase:lumar/" + color, "item.rplumar." + CoreLib.rawColorNames[color] ); ItemStack dye = new ItemStack(Items.dye, 1, 15 - color); GameRegistry.addShapelessRecipe( new ItemStack(itemLumar, 2, color), new Object[] { Items.redstone, dye, dye, Items.glowstone_dust } ); } itemResource = new ItemParts(); itemAlloy = new ItemParts(); itemResource.setCreativeTab(CreativeTabs.tabMaterials); itemAlloy.setCreativeTab(CreativeTabs.tabMaterials); itemResource.addItem(0, "rpbase:ruby", "item.ruby"); itemResource.addItem(1, "rpbase:greenSapphire", "item.greenSapphire"); itemResource.addItem(2, "rpbase:sapphire", "item.sapphire"); itemResource.addItem(3, "rpbase:silverIngot", "item.ingotSilver"); itemResource.addItem(4, "rpbase:tinIngot", "item.ingotTin"); itemResource.addItem(5, "rpbase:copperIngot", "item.ingotCopper"); itemResource.addItem(6, "rpbase:nikolite", "item.nikolite"); itemResource.addItem(7, "rpbase:ingotTungsten", "item.ingotTungsten"); itemResource.addItem(8, "rpbase:dustTungsten", "item.dustTungsten"); itemResource.addItem(9, "rpbase:dustSilver", "item.dustSilver"); itemAlloy.addItem(0, "rpbase:ingotRed", "item.ingotRed"); itemAlloy.addItem(1, "rpbase:ingotBlue", "item.ingotBlue"); itemAlloy.addItem(2, "rpbase:ingotBrass", "item.ingotBrass"); itemAlloy.addItem(3, "rpbase:bouleSilicon", "item.bouleSilicon"); itemAlloy.addItem(4, "rpbase:waferSilicon", "item.waferSilicon"); itemAlloy.addItem(5, "rpbase:waferBlue", "item.waferBlue"); itemAlloy.addItem(6, "rpbase:waferRed", "item.waferRed"); itemAlloy.addItem(7, "rpbase:tinPlate", "item.tinplate"); itemAlloy.addItem(8, "rpbase:fineCopper", "item.finecopper"); itemAlloy.addItem(9, "rpbase:fineIron", "item.fineiron"); itemAlloy.addItem(10, "rpbase:copperCoil", "item.coppercoil"); itemAlloy.addItem(11, "rpbase:btMotor", "item.btmotor"); itemAlloy.addItem(12, "rpbase:canvas", "item.rpcanvas"); itemRuby = new ItemStack(itemResource, 1, 0); itemGreenSapphire = new ItemStack(itemResource, 1, 1); itemSapphire = new ItemStack(itemResource, 1, 2); itemIngotSilver = new ItemStack(itemResource, 1, 3); itemIngotTin = new ItemStack(itemResource, 1, 4); itemIngotCopper = new ItemStack(itemResource, 1, 5); itemNikolite = new ItemStack(itemResource, 1, 6); itemIngotTungsten = new ItemStack(itemResource, 1, 7); itemDustTungsten = new ItemStack(itemResource, 1, 8); itemDustSilver = new ItemStack(itemResource, 1, 9); itemIngotRed = new ItemStack(itemAlloy, 1, 0); itemIngotBlue = new ItemStack(itemAlloy, 1, 1); itemIngotBrass = new ItemStack(itemAlloy, 1, 2); itemBouleSilicon = new ItemStack(itemAlloy, 1, 3); itemWaferSilicon = new ItemStack(itemAlloy, 1, 4); itemWaferBlue = new ItemStack(itemAlloy, 1, 5); itemWaferRed = new ItemStack(itemAlloy, 1, 6); itemTinplate = new ItemStack(itemAlloy, 1, 7); itemFineCopper = new ItemStack(itemAlloy, 1, 8); itemFineIron = new ItemStack(itemAlloy, 1, 9); itemCopperCoil = new ItemStack(itemAlloy, 1, 10); itemMotor = new ItemStack(itemAlloy, 1, 11); itemCanvas = new ItemStack(itemAlloy, 1, 12); itemNugget = new ItemParts(); itemNugget.setCreativeTab(CreativeTabs.tabMaterials); itemNugget.addItem(0, "rpbase:nuggetIron", "item.nuggetIron"); itemNugget.addItem(1, "rpbase:nuggetSilver", "item.nuggetSilver"); itemNugget.addItem(2, "rpbase:nuggetTin", "item.nuggetTin"); itemNugget.addItem(3, "rpbase:nuggetCopper", "item.nuggetCopper"); itemNugget.addItem(4, "rpbase:nuggetTungsten", "item.nuggetTungsten"); itemNuggetIron = new ItemStack(itemNugget, 1, 0); itemNuggetSilver = new ItemStack(itemNugget, 1, 1); itemNuggetTin = new ItemStack(itemNugget, 1, 2); itemNuggetCopper = new ItemStack(itemNugget, 1, 3); itemNuggetTungsten = new ItemStack(itemNugget, 1, 4); itemDrawplateDiamond = new ItemDrawplate(); itemDrawplateDiamond.setUnlocalizedName("drawplateDiamond") .setMaxDamage(255) .setTextureName("rpbase:diamondDrawplate"); GameRegistry.registerItem(itemDrawplateDiamond, "drawplateDiamond"); itemBag = new ItemBag(); GameRegistry.addRecipe( new ItemStack(itemBag, 1, 0), new Object[] { "CCC", "C C", "CCC", 'C', itemCanvas } ); for (int color = 1; color < 16; ++color) { GameRegistry.addRecipe( new ItemStack(itemBag, 1, color), new Object[] { "CCC", "CDC", "CCC", 'C', itemCanvas, 'D', new ItemStack(Items.dye, 1, 15 - color) } ); } GameRegistry.registerItem(itemLumar, "lumar"); GameRegistry.registerItem(itemResource, "resource"); OreDictionary.registerOre("gemRuby", itemRuby); OreDictionary.registerOre("gemGreenSapphire", itemGreenSapphire); OreDictionary.registerOre("gemSapphire", itemSapphire); OreDictionary.registerOre("ingotTin", itemIngotTin); OreDictionary.registerOre("ingotCopper", itemIngotCopper); OreDictionary.registerOre("ingotSilver", itemIngotSilver); OreDictionary.registerOre("ingotTungsten", itemIngotTungsten); OreDictionary.registerOre("dustNikolite", itemNikolite); OreDictionary.registerOre("dustTungsten", itemDustTungsten); GameRegistry.registerItem(itemAlloy, "alloy"); OreDictionary.registerOre("ingotBrass", itemIngotBrass); GameRegistry.registerItem(itemNugget, "nugget"); OreDictionary.registerOre("nuggetIron", itemNuggetIron); OreDictionary.registerOre("nuggetSilver", itemNuggetSilver); OreDictionary.registerOre("nuggetTin", itemNuggetTin); OreDictionary.registerOre("nuggetCopper", itemNuggetCopper); OreDictionary.registerOre("nuggetTungsten", itemNuggetTungsten); GameRegistry.registerItem(itemBag, "canvasBag"); } public static void initIndigo() { itemDyeIndigo = new ItemDyeIndigo(); GameRegistry.registerItem(itemDyeIndigo, "dyeIndigo"); OreDictionary.registerOre("dyeBlue", new ItemStack(itemDyeIndigo)); GameRegistry.addShapelessRecipe( new ItemStack(Blocks.wool, 1, 11), new Object[] { itemDyeIndigo, Blocks.wool } ); GameRegistry.addShapelessRecipe( new ItemStack(Items.dye, 2, 12), new Object[] { itemDyeIndigo, new ItemStack(Items.dye, 1, 15) } ); GameRegistry.addShapelessRecipe( new ItemStack(Items.dye, 2, 6), new Object[] { itemDyeIndigo, new ItemStack(Items.dye, 1, 2) } ); GameRegistry.addShapelessRecipe( new ItemStack(Items.dye, 2, 5), new Object[] { itemDyeIndigo, new ItemStack(Items.dye, 1, 1) } ); GameRegistry.addShapelessRecipe( new ItemStack(Items.dye, 3, 13), new Object[] { itemDyeIndigo, new ItemStack(Items.dye, 1, 1), new ItemStack(Items.dye, 1, 9) } ); GameRegistry.addShapelessRecipe( new ItemStack(Items.dye, 4, 13), new Object[] { itemDyeIndigo, new ItemStack(Items.dye, 1, 1), new ItemStack(Items.dye, 1, 1), new ItemStack(Items.dye, 1, 15) } ); CraftLib.addShapelessOreRecipe( new ItemStack(itemLumar, 2, 11), Items.redstone, "dyeBlue", "dyeBlue", Items.glowstone_dust ); CraftLib.addOreRecipe( new ItemStack(itemBag, 1, 11), "CCC", "CDC", "CCC", 'C', itemCanvas, 'D', "dyeBlue" ); itemPlanBlank = new Item().setTextureName("rpbase:planBlank"); itemPlanBlank.setUnlocalizedName("planBlank"); itemPlanBlank.setCreativeTab(CreativeTabs.tabMisc); GameRegistry.addShapelessRecipe( new ItemStack(itemPlanBlank), new Object[] { Items.paper, itemDyeIndigo } ); GameRegistry.registerItem(itemPlanBlank, "planBlank"); itemPlanFull = new ItemPlan(); GameRegistry.registerItem(itemPlanFull, "planFull"); } public static void initAlloys() { CraftLib.addAlloyResult( itemIngotRed, new ItemStack(Items.redstone, 4), new ItemStack(Items.iron_ingot, 1) ); CraftLib.addAlloyResult( itemIngotRed, new ItemStack(Items.redstone, 4), new OreStack("ingotCopper") ); CraftLib.addAlloyResult( CoreLib.copyStack(itemIngotBrass, 4), new OreStack("ingotTin"), new OreStack("ingotCopper", 3) ); CraftLib.addAlloyResult( CoreLib.copyStack(itemTinplate, 4), new OreStack("ingotTin"), new ItemStack(Items.iron_ingot, 2) ); CraftLib.addAlloyResult( itemIngotBlue, new OreStack("ingotSilver"), new OreStack("dustNikolite", 4) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 3), new ItemStack(Blocks.rail, 8) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 3), new ItemStack(Items.bucket, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 5), new ItemStack(Items.minecart, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 6), new ItemStack(Items.iron_door, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 3), new ItemStack(Blocks.iron_bars, 8) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 31), new ItemStack(Blocks.anvil, 1, 0) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 31), new ItemStack(Blocks.anvil, 1, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 31), new ItemStack(Blocks.anvil, 1, 2) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 2), new ItemStack(Items.iron_sword, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 3), new ItemStack(Items.iron_pickaxe, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 3), new ItemStack(Items.iron_axe, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 1), new ItemStack(Items.iron_shovel, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 2), new ItemStack(Items.iron_hoe, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.gold_ingot, 2), new ItemStack(Items.golden_sword, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.gold_ingot, 3), new ItemStack(Items.golden_pickaxe, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.gold_ingot, 3), new ItemStack(Items.golden_axe, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.gold_ingot, 1), new ItemStack(Items.golden_shovel, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.gold_ingot, 2), new ItemStack(Items.golden_hoe, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 5), new ItemStack(Items.iron_helmet, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 8), new ItemStack(Items.iron_chestplate, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 7), new ItemStack(Items.iron_leggings, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 4), new ItemStack(Items.iron_boots, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 5), new ItemStack(Items.iron_horse_armor, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.gold_ingot, 5), new ItemStack(Items.golden_helmet, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.gold_ingot, 8), new ItemStack(Items.golden_chestplate, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.gold_ingot, 7), new ItemStack(Items.golden_leggings, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.gold_ingot, 4), new ItemStack(Items.golden_boots, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.gold_ingot, 5), new ItemStack(Items.golden_horse_armor, 1) ); CraftLib.addAlloyResult( new ItemStack(Items.gold_ingot, 1), new ItemStack(Items.gold_nugget, 9) ); CraftLib.addAlloyResult( new ItemStack(Items.iron_ingot, 1), CoreLib.copyStack(itemNuggetIron, 9) ); CraftLib.addAlloyResult(itemIngotSilver, CoreLib.copyStack(itemNuggetSilver, 9)); CraftLib.addAlloyResult(itemIngotCopper, CoreLib.copyStack(itemNuggetCopper, 9)); CraftLib.addAlloyResult(itemIngotTin, CoreLib.copyStack(itemNuggetTin, 9)); CraftLib.addAlloyResult( itemIngotTungsten, CoreLib.copyStack(itemNuggetTungsten, 9) ); CraftLib.addAlloyResult(itemIngotCopper, itemFineCopper); CraftLib.addAlloyResult(new ItemStack(Items.iron_ingot, 1), itemFineIron); CraftLib.addAlloyResult( itemBouleSilicon, new ItemStack(Items.coal, 8, 0), new ItemStack(Blocks.sand, 8) ); CraftLib.addAlloyResult( itemBouleSilicon, new ItemStack(Items.coal, 8, 1), new ItemStack(Blocks.sand, 8) ); CraftLib.addAlloyResult( itemWaferBlue, CoreLib.copyStack(itemWaferSilicon, 1), new OreStack("dustNikolite", 4) ); CraftLib.addAlloyResult( itemWaferRed, CoreLib.copyStack(itemWaferSilicon, 1), new ItemStack(Items.redstone, 4) ); } public static void initMicroblocks() { blockMicro = new BlockMicro(); blockMicro.setBlockName("rpwire"); GameRegistry.registerBlock(blockMicro, ItemMicro.class, "microblock"); blockMicro.addTileEntityMapping(0, TileCovered::new); CoverLib.blockCoverPlate = blockMicro; } public static void initCoverMaterials() { CoverLib.addMaterial(0, 1, Blocks.cobblestone, "cobble"); CoverLib.addMaterial(1, 1, Blocks.stone, "stone"); CoverLib.addMaterial(2, 0, Blocks.planks, "planks"); CoverLib.addMaterial(3, 1, Blocks.sandstone, "sandstone"); CoverLib.addMaterial(4, 1, Blocks.mossy_cobblestone, "moss"); CoverLib.addMaterial(5, 1, Blocks.brick_block, "brick"); CoverLib.addMaterial(6, 2, Blocks.obsidian, "obsidian"); CoverLib.addMaterial(7, 1, true, Blocks.glass, "glass"); CoverLib.addMaterial(8, 0, Blocks.dirt, "dirt"); CoverLib.addMaterial(9, 0, Blocks.clay, "clay"); CoverLib.addMaterial(10, 0, Blocks.bookshelf, "books"); CoverLib.addMaterial(11, 0, Blocks.netherrack, "netherrack"); CoverLib.addMaterial(12, 0, Blocks.log, 0, "wood"); CoverLib.addMaterial(13, 0, Blocks.log, 1, "wood1"); CoverLib.addMaterial(14, 0, Blocks.log, 2, "wood2"); CoverLib.addMaterial(15, 0, Blocks.soul_sand, "soul"); CoverLib.addMaterial(16, 1, Blocks.stone_slab, "slab"); CoverLib.addMaterial(17, 1, Blocks.iron_block, "iron"); CoverLib.addMaterial(18, 1, Blocks.gold_block, "gold"); CoverLib.addMaterial(19, 2, Blocks.diamond_block, "diamond"); CoverLib.addMaterial(20, 1, Blocks.lapis_block, "lapis"); CoverLib.addMaterial(21, 0, Blocks.snow, "snow"); CoverLib.addMaterial(22, 0, Blocks.pumpkin, "pumpkin"); CoverLib.addMaterial(23, 1, Blocks.stonebrick, 0, "stonebrick"); CoverLib.addMaterial(24, 1, Blocks.stonebrick, 1, "stonebrick1"); CoverLib.addMaterial(25, 1, Blocks.stonebrick, 2, "stonebrick2"); CoverLib.addMaterial(26, 1, Blocks.nether_brick, "netherbrick"); CoverLib.addMaterial(27, 1, Blocks.stonebrick, 3, "stonebrick3"); CoverLib.addMaterial(28, 0, Blocks.planks, 1, "planks1"); CoverLib.addMaterial(29, 0, Blocks.planks, 2, "planks2"); CoverLib.addMaterial(30, 0, Blocks.planks, 3, "planks3"); CoverLib.addMaterial(31, 1, Blocks.sandstone, 1, "sandstone1"); for (int color = 0; color < 16; ++color) { CoverLib.addMaterial( 32 + color, 0, Blocks.wool, color, "wool." + CoreLib.rawColorNames[color] ); } CoverLib.addMaterial(64, 1, Blocks.sandstone, 2, "sandstone2"); CoverLib.addMaterial(65, 0, Blocks.log, 3, "wood3"); } public static void initAchievements() { AchieveLib.registerAchievement( "rpMakeAlloy", 0, 0, new ItemStack(blockAppliance, 1, 0), AchievementList.buildFurnace ); AchieveLib.registerAchievement( "rpMakeSaw", 4, 0, new ItemStack(itemHandsawDiamond), AchievementList.diamonds ); AchieveLib.registerAchievement("rpIngotRed", 2, 2, itemIngotRed, "rpMakeAlloy"); AchieveLib.registerAchievement("rpIngotBlue", 2, 4, itemIngotBlue, "rpMakeAlloy"); AchieveLib.registerAchievement( "rpIngotBrass", 2, 6, itemIngotBrass, "rpMakeAlloy" ); AchieveLib.registerAchievement( "rpAdvBench", -2, 0, new ItemStack(blockAppliance, 1, 3), AchievementList.buildWorkBench ); AchieveLib.addCraftingAchievement( new ItemStack(blockAppliance, 1, 0), "rpMakeAlloy" ); AchieveLib.addCraftingAchievement( new ItemStack(blockAppliance, 1, 3), "rpAdvBench" ); AchieveLib.addCraftingAchievement(new ItemStack(itemHandsawDiamond), "rpMakeSaw"); AchieveLib.addAlloyAchievement(itemIngotRed, "rpIngotRed"); AchieveLib.addAlloyAchievement(itemIngotBlue, "rpIngotBlue"); AchieveLib.addAlloyAchievement(itemIngotBrass, "rpIngotBrass"); AchievementPage.registerAchievementPage(AchieveLib.achievepage); } public static void initBlocks() { blockMultiblock = new BlockMultiblock(); GameRegistry.registerBlock(blockMultiblock, "multiblock"); GameRegistry.registerTileEntity(TileMultiblock.class, "RPMulti"); blockAppliance = new BlockAppliance(); GameRegistry.registerBlock(blockAppliance, ItemExtended.class, "appliance"); GameRegistry.registerTileEntity(TileAlloyFurnace.class, "RPAFurnace"); blockAppliance.addTileEntityMapping(0, TileAlloyFurnace::new); blockAppliance.setBlockName(0, "rpafurnace"); GameRegistry.addRecipe( new ItemStack(blockAppliance, 1, 0), new Object[] { "BBB", "B B", "BBB", 'B', Blocks.brick_block } ); GameRegistry.registerTileEntity(TileAdvBench.class, "RPAdvBench"); blockAppliance.addTileEntityMapping(3, TileAdvBench::new); blockAppliance.setBlockName(3, "rpabench"); CraftLib.addOreRecipe( new ItemStack(blockAppliance, 1, 3), "SSS", "WTW", "WCW", 'S', Blocks.stone, 'W', "plankWood", 'T', Blocks.crafting_table, 'C', Blocks.chest ); itemHandsawIron = new ItemHandsaw(0); itemHandsawIron.setUnlocalizedName("handsawIron"); itemHandsawIron.setTextureName("rpworld:handsawIron"); itemHandsawIron.setMaxDamage(320); GameRegistry.registerItem(itemHandsawIron, "ironHandshaw"); itemHandsawDiamond = new ItemHandsaw(2); itemHandsawDiamond.setUnlocalizedName("handsawDiamond"); itemHandsawDiamond.setTextureName("rpworld:handsawDiamond"); itemHandsawDiamond.setMaxDamage(1280); GameRegistry.registerItem(itemHandsawDiamond, "diamondHandshaw"); GameRegistry.addRecipe( new ItemStack(itemHandsawIron, 1), new Object[] { "WWW", " II", " II", 'I', Items.iron_ingot, 'W', Items.stick } ); GameRegistry.addRecipe( new ItemStack(itemHandsawDiamond, 1), new Object[] { "WWW", " II", " DD", 'I', Items.iron_ingot, 'D', Items.diamond, 'W', Items.stick } ); GameRegistry.addShapelessRecipe( CoreLib.copyStack(itemWaferSilicon, 16), new Object[] { itemBouleSilicon, new ItemStack(itemHandsawDiamond, 1, 32767) } ); itemScrewdriver = new ItemScrewdriver(); GameRegistry.addRecipe( new ItemStack(itemScrewdriver, 1), new Object[] { "I ", " W", 'I', Items.iron_ingot, 'W', Items.stick } ); GameRegistry.registerItem(itemScrewdriver, "screwdriver"); GameRegistry.addRecipe( new ItemStack(itemDrawplateDiamond, 1), new Object[] { " I ", "IDI", " I ", 'I', new ItemStack(blockMicro, 1, 5649), 'D', new ItemStack(blockMicro, 1, 4115) } ); GameRegistry.addShapelessRecipe( itemFineIron, new Object[] { Items.iron_ingot, new ItemStack(itemDrawplateDiamond, 1, 32767) } ); CraftLib.addShapelessOreRecipe( itemFineCopper, "ingotCopper", new ItemStack(itemDrawplateDiamond, 1, 32767) ); GameRegistry.addRecipe( CoreLib.copyStack(itemNuggetIron, 9), new Object[] { "I", 'I', Items.iron_ingot } ); CraftLib.addOreRecipe( CoreLib.copyStack(itemNuggetCopper, 9), "I", 'I', "ingotCopper" ); CraftLib.addOreRecipe(CoreLib.copyStack(itemNuggetTin, 9), "I", 'I', "ingotTin"); CraftLib.addOreRecipe( CoreLib.copyStack(itemNuggetSilver, 9), "I", 'I', "ingotSilver" ); CraftLib.addOreRecipe( CoreLib.copyStack(itemNuggetTungsten, 9), "I", 'I', "ingotTungsten" ); GameRegistry.addRecipe( new ItemStack(Items.iron_ingot, 1, 0), new Object[] { "III", "III", "III", 'I', itemNuggetIron } ); GameRegistry.addRecipe( itemIngotSilver, new Object[] { "III", "III", "III", 'I', itemNuggetSilver } ); GameRegistry.addRecipe( itemIngotTin, new Object[] { "III", "III", "III", 'I', itemNuggetTin } ); GameRegistry.addRecipe( itemIngotCopper, new Object[] { "III", "III", "III", 'I', itemNuggetCopper } ); GameRegistry.addRecipe( itemIngotTungsten, new Object[] { "III", "III", "III", 'I', itemNuggetTungsten } ); GameRegistry.addRecipe( itemCanvas, new Object[] { "SSS", "SWS", "SSS", 'S', Items.string, 'W', Items.stick } ); GameRegistry.addRecipe( new ItemStack(Items.diamond, 2), new Object[] { "D", 'D', new ItemStack(blockMicro, 1, 4115) } ); GameRegistry.addRecipe( new ItemStack(Items.diamond, 1), new Object[] { "D", 'D', new ItemStack(blockMicro, 1, 19) } ); GameRegistry.addRecipe( new ItemStack(Items.iron_ingot, 2), new Object[] { "I", 'I', new ItemStack(blockMicro, 1, 4113) } ); GameRegistry.addRecipe( new ItemStack(Items.iron_ingot, 1), new Object[] { "I", 'I', new ItemStack(blockMicro, 1, 17) } ); } @EventHandler public void preInit(FMLPreInitializationEvent event) { if (FMLCommonHandler.instance().getSide().isClient()) { MinecraftForge.EVENT_BUS.register(instance); } } @EventHandler public void load(FMLInitializationEvent event) { initBaseItems(); initAlloys(); initIndigo(); initMicroblocks(); initCoverMaterials(); initBlocks(); initAchievements(); CraftingManager.getInstance().getRecipeList().add(new RecipeBag()); if (FMLCommonHandler.instance().getSide().isClient()) { this.registerRenderers(); } NetworkRegistry.INSTANCE.registerGuiHandler(instance, instance); } @EventHandler public void postInit(FMLPostInitializationEvent event) {} @SideOnly(Side.CLIENT) public void registerRenderers() { RenderLib.setRenderer(blockAppliance, 0, RenderAlloyFurnace::new); RenderLib.setRenderer(blockAppliance, 3, RenderAdvBench::new); ClientRegistry.bindTileEntitySpecialRenderer( TileAlloyFurnace.class, new RenderAlloyFurnace(blockAppliance) ); ClientRegistry.bindTileEntitySpecialRenderer( TileAdvBench.class, new RenderAdvBench(blockAppliance) ); } @SideOnly(Side.CLIENT) @SubscribeEvent public void onTextureStitch(Pre evt) { TextureMap map = evt.map; if (map.getTextureType() == 0) { projectTableTop = map.registerIcon("rpbase:projectTableTop"); projectTableBottom = map.registerIcon("rpbase:projectTableBottom"); projectTableFront = map.registerIcon("rpbase:projectTableFront"); projectTableSide = map.registerIcon("rpbase:projectTableSide"); alloyFurnaceVert = map.registerIcon("rpbase:alloyFurnaceVert"); alloyFurnaceSide = map.registerIcon("rpbase:alloyFurnaceSide"); alloyFurnaceFront = map.registerIcon("rpbase:alloyFurnaceFront"); alloyFurnaceFrontOn = map.registerIcon("rpbase:alloyFurnaceFrontOn"); } } public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { switch (ID) { case 1: return new GuiAlloyFurnace( player.inventory, CoreLib.getGuiTileEntity(world, x, y, z, TileAlloyFurnace.class) ); case 2: return new GuiAdvBench( player.inventory, CoreLib.getGuiTileEntity(world, x, y, z, TileAdvBench.class) ); case 3: return new GuiBusId( player.inventory, new IRedbusConnectable.Dummy(), CoreLib.getGuiTileEntity(world, x, y, z, TileEntity.class) ); case 4: return new GuiBag(player.inventory, new InventoryBasic("", true, 27)); default: return null; } } public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { switch (ID) { case 1: return new ContainerAlloyFurnace( player.inventory, CoreLib.getTileEntity(world, x, y, z, TileAlloyFurnace.class) ); case 2: return new ContainerAdvBench( player.inventory, CoreLib.getTileEntity(world, x, y, z, TileAdvBench.class) ); case 3: return new ContainerBusId( player.inventory, CoreLib.getTileEntity(world, x, y, z, IRedbusConnectable.class) ); case 4: ItemStack heldItem = player.getHeldItem(); return new ContainerBag( player.inventory, ItemBag.getBagInventory(heldItem, player), heldItem ); default: return null; } } }