/* * This file is part of Matter Overdrive * Copyright (c) 2015., Simeon Radivoev, All rights reserved. * * Matter Overdrive is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Matter Overdrive is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Matter Overdrive. If not, see <http://www.gnu.org/licenses>. */ package matteroverdrive.init; import matteroverdrive.MatterOverdrive; import matteroverdrive.Reference; import matteroverdrive.handler.ConfigurationHandler; import matteroverdrive.handler.MatterEntry; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class MatterOverdriveMatter { public static void init(ConfigurationHandler config) { } public static void registerBasic(ConfigurationHandler c) { registerBasicItems(c); registerBasicBlocks(c); registerBasicCompoundItems(c); } public static void registerFromConfig(ConfigurationHandler c) { MatterOverdrive.matterRegistry.loadNewItemsFromConfig(c); } public static void registerBlacklistFromConfig(ConfigurationHandler c) { MatterOverdrive.matterRegistry.loadBlacklistFromConfig(c); MatterOverdrive.matterRegistry.loadModBlacklistFromConfig(c); } public static void registerBasicBlocks(ConfigurationHandler c) { reg(c,Blocks.dirt, 1,3); reg(c,Blocks.grass,1,3); reg(c,"blockWool", 2); reg(c,"blockCloth", 2); reg(c,"blockGlass", 5); reg(c,"cobblestone", 1); reg(c,"logWood", 16); reg(c,"sand", 2); reg(c,Blocks.gravel, 2); reg(c,"sandstone",4); reg(c,Blocks.clay,4); reg(c,Blocks.cactus,4); reg(c,"plankWood",4); reg(c, Blocks.end_stone, 6); reg(c,"stone",1); reg(c,Blocks.soul_sand,4); reg(c,Blocks.snow,2); reg(c,Blocks.pumpkin,2); reg(c,Blocks.obsidian,16); reg(c,"treeLeaves",1); reg(c,Blocks.mycelium,5); reg(c,Blocks.ice,3); reg(c,Blocks.packed_ice,4); reg(c,"blockGlass",3); reg(c,"paneGlass",1); reg(c,Blocks.bedrock,1024); reg(c,Blocks.sponge,8); reg(c,Blocks.vine,1); reg(c,Blocks.tallgrass,1); reg(c,Blocks.mossy_cobblestone,2); reg(c,Blocks.netherrack,1); reg(c,Blocks.clay,3,16); reg(c, Blocks.hardened_clay, 3); reg(c,Blocks.stonebrick,2,4); reg(c,Blocks.skull,8,5); reg(c,Blocks.cobblestone_wall,1); reg(c,Blocks.web,1); //region flowers reg(c,Blocks.red_flower,1,9); reg(c,Blocks.yellow_flower,1); reg(c,Blocks.brown_mushroom,1); reg(c,Blocks.brown_mushroom_block,1); reg(c,Blocks.red_mushroom,1); reg(c,Blocks.red_mushroom_block,1); reg(c,Blocks.deadbush,1); reg(c,Blocks.waterlily,1); reg(c,"treeSapling",2); reg(c,Blocks.double_plant,1,6); //endregion } public static void registerBasicItems(ConfigurationHandler c) { reg(c, Items.apple, 1); reg(c, Items.arrow, 1); reg(c, Items.baked_potato, 1); reg(c, Items.beef, 2); reg(c, Items.blaze_rod, 4); reg(c, Items.bone, 2); reg(c, "cropCarrot", 1); reg(c, Items.clay_ball, 1); reg(c, Items.coal, 8); reg(c,new ItemStack(Items.coal,1,1),5); reg(c, Items.egg, 1); reg(c, new ItemStack(Items.dye,1,3), 1); reg(c,new ItemStack(Items.dye,1,0),1); reg(c, Items.ender_pearl, 8); reg(c, Items.feather, 1); reg(c, Items.fermented_spider_eye, 1); reg(c, Items.flint, 1); reg(c, Items.fish, 1,4); reg(c, Items.ghast_tear, 8); reg(c, "nuggetGold", 4); reg(c, Items.gunpowder, 2); reg(c, Items.melon, 1); reg(c, "cropWheat", 1); reg(c, Items.wheat_seeds, 1); reg(c, Items.sugar, 1); reg(c, Items.string, 1); reg(c, "stickWood", 1); reg(c, "dustRedstone", 4); reg(c, "dustGlowstone", 2); reg(c, Items.spider_eye, 1); reg(c, Items.saddle, 18); reg(c, Items.reeds, 1); reg(c, "cropPotato", 1); reg(c, Items.leather, 3); reg(c, Items.pumpkin_seeds, 1); reg(c, Items.porkchop, 2); reg(c, Items.cooked_porkchop, 4); reg(c, Items.paper, 1); reg(c, Items.lava_bucket, 24 + 96); reg(c, Items.water_bucket, 12 + 96); reg(c, Items.milk_bucket, 12 + 96); reg(c, "ingotBrickNether", 1); reg(c, Items.nether_wart, 3); reg(c, Items.nether_star, 1024); reg(c,Items.iron_horse_armor,32 * 5); reg(c,Items.golden_horse_armor,42 * 5); reg(c,Items.diamond_horse_armor,256 * 5); reg(c,Items.experience_bottle,32); reg(c, "slimeball", 2); reg(c, "record", 4); reg(c, Items.chicken, 2); reg(c, Items.cooked_chicken, 3); reg(c, Items.rotten_flesh, 1); reg(c, "dustSaltpeter", 2); reg(c, "dustSulfur", 2); reg(c,Items.name_tag,32); reg(c,"itemSkull",16); reg(c,Items.glass_bottle,3); reg(c,"silicon",2); //region Gems reg(c, "gemDiamond", 256); reg(c, "gemQuartz", 3); reg(c, "gemLapis", 4); reg(c, "gemEmerald", 256); reg(c,"gemRuby",64); reg(c,"gemRupee",64); reg(c,"gemSapphire",64); //endregion //region Ingots reg(c, "ingotBrick", 2); reg(c, "ingotIron", 32); reg(c, "ingotGold", 42); reg(c,"ingotTin", 28); reg(c, "ingotCopper", 28); reg(c, "ingotAluminum", 26); reg(c, "ingotSilver", 30); reg(c, "ingotLead", 32); reg(c, "ingotNickel", 32); reg(c, "ingotInvar", 38); reg(c, "ingotPlatinum", 64); reg(c, "ingotBronze", 28); reg(c,"ingotRedAlloy",24); reg(c,"ingotUranium",64); reg(c,"ingotZinc",30); reg(c,"ingotQuartz",24); reg(c,"ingotSteel",38); //endregion //region Plants reg(c,Items.reeds,1); //endregion //region dyes reg(c,new ItemStack(Items.dye,1,2),1); reg(c,new ItemStack(Items.dye,1,3),1); //endregion //region rouge android parts reg(c,new ItemStack(MatterOverdriveItems.androidParts,1, Reference.BIONIC_HEAD),64 * 5); reg(c,new ItemStack(MatterOverdriveItems.androidParts,1,Reference.BIONIC_ARMS),64 * 6); reg(c,new ItemStack(MatterOverdriveItems.androidParts,1,Reference.BIONIC_LEGS),64 * 6); reg(c,new ItemStack(MatterOverdriveItems.androidParts,1,Reference.BIONIC_CHEST),64 * 9); //endregion //region Matter Overdrive Basic Items reg(c, MatterOverdriveItems.emergency_ration, 3); reg(c, MatterOverdriveItems.earl_gray_tea, 2); reg(c, MatterOverdriveItems.romulan_ale, 2); reg(c, new ItemStack(MatterOverdriveItems.androidPill, 1, 1), 64); reg(c,new ItemStack(MatterOverdriveItems.androidPill,1,2),32); //endregion } public static void registerBasicCompoundItems(ConfigurationHandler c) { reg(c,"dustObsidian",0,Blocks.obsidian); reg(c,"dustCharcoal",0,new ItemStack(Items.coal,1,1)); reg(c,"dustCoal",0,Items.coal); reg(c,"dustDiamond",0,"gemDiamond"); reg(c,"dustFlour",0,"cropWheat"); reg(c,"dustNetherQuartz",0,"oreQuartz"); reg(c,"gemGreenSapphire",0,"gemEmerald"); reg(c,"dustEmerald",0,"gemEmerald"); //region dusts reg(c,"dustIron",0,"ingotIron"); reg(c, "dustGold", 0,"ingotGold"); reg(c, "dustTin", 0,"ingotTin"); reg(c,"dustCopper",0,"ingotCopper"); reg(c, "dustAluminum", 0,"ingotAluminum"); reg(c, "dustSilver", 0,"ingotSilver"); reg(c, "dustLead", 0,"ingotLead"); reg(c, "dustNickel", 0,"ingotNickel"); reg(c, "dustInvar", 0,"ingotInvar"); reg(c, "dustPlatinum", 0,"ingotPlatinum"); reg(c,"dustBronze",0,"ingotBronze"); //endregion //region Ore regOre(c, "oreDiamond", 2, "gemDiamond"); regOre(c, "oreEmerald", 2, "gemEmerald"); regOre(c,"oreCoal",2,Items.coal); regOre(c, "oreRedstone", 4, "dustRedstone"); regOre(c, "oreLapis", 4, "gemLapis"); regOre(c, "oreIron", 2, "ingotIron"); regOre(c, "oreGold", 2, "ingotGold"); regOre(c, "oreQuartz", 2, "gemQuartz"); regOre(c, "oreTin", 2, "ingotTin"); regOre(c,"oreSilver",2,"ingotSilver"); regOre(c,"oreLead",2,"ingorLead"); regOre(c,"oreCopper",2,"ingotCopper"); regOre(c,"oreNikel",2,"ingotNikel"); regOre(c,"oreAluminum",2,"ingotAluminum"); regOre(c,"oreUranium",2,"ingotUranium"); regOre(c,"oreRuby",2,"gemRuby"); regOre(c,"oreZinc",2,"ingotZinc"); regOre(c,"oreQuartz",2,"ingotQuartz"); //endregion //region ender io reg(c,"enderio.electricalSteel",0,"ingotIron","silicon","dustCoal"); reg(c,"enderio.energeticAlloy",0,"dustRedstone","ingotGold","dustGlowstone"); reg(c,"enderio.phasedGold",0,"enderio.energeticAlloy",Items.ender_pearl); reg(c,"enderio.redstoneAlloy",0,"silicon","dustRedstone"); reg(c,"enderio.conductiveIron",0,"ingotIron","dustRedstone"); reg(c,"enderio.phasedIron",0,Items.ender_pearl,"ingotIron"); reg(c,"enderio.darkSteel",0,"ingotIron","dustCoal",Blocks.obsidian); reg(c,"enderio.soularium",0,Blocks.soul_sand,"ingotGold"); reg(c,"enderio.silicon",0,"silicon"); reg(c,"enderio.conduitBinder",1); //endregion } private static void reg(ConfigurationHandler c,String name,int matter) { MatterOverdrive.matterRegistry.register(name,matter); } private static void regOre(ConfigurationHandler c,String name,int multiply,String ingot) { MatterEntry entry = MatterOverdrive.matterRegistry.getEntry(ingot); if (entry != null) { MatterOverdrive.matterRegistry.register(name,entry.getMatter()*multiply); } } private static void regOre(ConfigurationHandler c,String name,int multiply,Item ingot) { MatterEntry entry = MatterOverdrive.matterRegistry.getEntry(ingot); if (entry != null) { MatterOverdrive.matterRegistry.register(name,entry.getMatter()*multiply); } } private static void reg(ConfigurationHandler c,String name,int matter,Object... items) { for (int i = 0;i < items.length;i++) { MatterEntry entry = null; if (items[i] instanceof String) { entry = MatterOverdrive.matterRegistry.getEntry((String)items[i]); }else if (items[i] instanceof Item) { entry = MatterOverdrive.matterRegistry.getEntry((Item)items[i]); }else if (items[i] instanceof Block) { entry = MatterOverdrive.matterRegistry.getEntry((Block)items[i]); }else if (items[i] instanceof ItemStack) { entry = MatterOverdrive.matterRegistry.getEntry((ItemStack)items[i]); } if (entry != null) { matter+= entry.getMatter(); } } if (matter > 0) { reg(c,name,matter); } } private static void reg(ConfigurationHandler c,ItemStack itemStack,int matter) { MatterOverdrive.matterRegistry.register(itemStack,matter); MatterOverdrive.matterRegistry.basicEntries++; } private static void reg(ConfigurationHandler c,Block block,int matter) { reg(c,block,matter,1); } private static void reg(ConfigurationHandler c,Block block,int matter,int subItems) { for (int i = 0;i < subItems;i++) { String key = MatterOverdrive.matterRegistry.getKey(new ItemStack(Item.getItemFromBlock(block), 1, i)); if (key != null) { MatterOverdrive.matterRegistry.register(key, matter); MatterOverdrive.matterRegistry.basicEntries++; } } } private static void reg(ConfigurationHandler c,Item item,int matter){reg(c,item,matter,1);} private static void reg(ConfigurationHandler c,Item item,int matter,int subItems) { for (int i = 0;i < subItems;i++) { String key = MatterOverdrive.matterRegistry.getKey(new ItemStack(item, 1, i)); if (key != null) { MatterOverdrive.matterRegistry.register(key, matter); MatterOverdrive.matterRegistry.basicEntries++; } } } }