package atomicscience; import atomicscience.api.BlockRadioactive; import atomicscience.api.ISteamReceptor; import atomicscience.api.Plasma; import atomicscience.api.poison.PoisonRadiation; import atomicscience.api.poison.PotionRadiation; import atomicscience.fanwusu.BAccelerator; import atomicscience.fanwusu.BFulminationGenerator; import atomicscience.fanwusu.EMatter; import atomicscience.fanwusu.FulminationEventHandler; import atomicscience.fanwusu.ItAntimatterCell; import atomicscience.fanwusu.TAccelerator; import atomicscience.fanwusu.TFulminationGenerator; import atomicscience.fenlie.BCentrifuge; import atomicscience.fenlie.BControlRod; import atomicscience.fenlie.BFissionReactor; import atomicscience.fenlie.BNuclearBoiler; import atomicscience.fenlie.BReactorTap; import atomicscience.fenlie.BSiren; import atomicscience.fenlie.BUraniumOre; import atomicscience.fenlie.ItRadioactive; import atomicscience.fenlie.ItStrangeMatter; import atomicscience.fenlie.ItUranium; import atomicscience.fenlie.TCentrifuge; import atomicscience.fenlie.TFissionReactor; import atomicscience.fenlie.TNuclearBoiler; import atomicscience.fenlie.TReactorTap; import atomicscience.hecheng.BElectromagnet; import atomicscience.hecheng.BElectromagnetGlass; import atomicscience.hecheng.BFusionReactor; import atomicscience.hecheng.BPlasma; import atomicscience.hecheng.IBAccelerator; import atomicscience.hecheng.IBPlasma; import atomicscience.hecheng.IBSiren; import atomicscience.hecheng.TElectromagnet; import atomicscience.hecheng.TFusionReactor; import atomicscience.jiqi.BChemicalExtractor; import atomicscience.jiqi.BFunnel; import atomicscience.jiqi.BThermometer; import atomicscience.jiqi.BTurbine; import atomicscience.jiqi.ItHazmatSuite; import atomicscience.jiqi.ItThermometer; import atomicscience.jiqi.TChemicalExtractor; import atomicscience.jiqi.TFunnel; import atomicscience.jiqi.TThermometer; import atomicscience.jiqi.TTurbine; import atomicscience.wujian.ItBreederFuel; import atomicscience.wujian.ItCell; import atomicscience.wujian.ItFissileFuel; import calclavia.lib.UniversalRecipes; import cpw.mods.fml.common.Loader; 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.Mod.Metadata; import cpw.mods.fml.common.ModMetadata; import cpw.mods.fml.common.SidedProxy; 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.NetworkRegistry; import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import java.util.Arrays; import java.util.logging.Logger; import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemArmor.ArmorMaterial; import net.minecraft.item.ItemBucket; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.client.event.TextureStitchEvent.Post; import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.ForgeChunkManager.Ticket; import net.minecraftforge.common.ForgeChunkManager.Type; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.util.EnumHelper; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe; import universalelectricity.core.item.ElectricItemHelper; import universalelectricity.core.item.ItemElectric; import universalelectricity.core.vector.Vector3; import universalelectricity.prefab.TranslationHelper; import universalelectricity.prefab.ore.OreGenBase; import universalelectricity.prefab.ore.OreGenReplaceStone; import universalelectricity.prefab.ore.OreGenerator; @Mod(modid = "AtomicScience", name = "Atomic Science", version = "0.6.2", dependencies = "required-after:basiccomponents") public class AtomicScience { public static Configuration CONFIGURATION = new Configuration(Loader.instance().getConfigDir(), "AtomicScience.cfg"); public static final String ID = "AtomicScience"; public static final String CHANNEL = "AtomicScience"; public static final String PREFIX = "atomicscience:"; @Instance("AtomicScience") public static AtomicScience instance; @SidedProxy(clientSide = "atomicscience.ClientProxy", serverSide = "atomicscience.CommonProxy") public static CommonProxy proxy; @Metadata("AtomicScience") public static ModMetadata metadata; public static final String WEN_JIAN_NO_SLASH = "atomicscience/"; public static final String WEN_JIAN = "/atomicscience/"; public static final String DIR = "/mods/atomicscience/"; public static final String TEXTURE_WEN_JIAN = "/mods/atomicscience/textures/"; public static final String SHI_MIAN_WEN_JIAN = "/mods/atomicscience/textures/gui/"; public static final String BLOCK_WEN_JIAN = "/mods/atomicscience/textures/blocks/"; public static final String ITEM_WEN_JIAN = "/mods/atomicscience/textures/items/"; public static final String MODEL_WEN_JIAN = "/mods/atomicscience/textures/models/"; // private static final String YU_YAN_WEN_JIAN = "/mods/atomicscience/yuyan/"; private static final String[] YU_YAN = new String[] {"en_US"}; public static float WOLUN_MULTIPLIER_OUTPUT = 30.0F; public static boolean ALLOW_LAYERED_TURBINES = true; public static boolean ALLOW_TOXIC_WASTE = true; public static boolean ALLOW_RADIOACTIVE_ORES = true; public static final int BLOCK_ID_PREFIX = 3768; public static final int ENTITY_ID_PREFIX = 49; public static Block blockRadioactive; public static Block bCentrifuge; public static Block bTurbine; public static Block bNuclearBoiler; public static Block bControlRod; public static Block bThermometer; public static Block bFusionReactor; public static BPlasma bPlasma; public static Block bElectromagnet; public static Block bChemicalExtractor; public static Block bSiren; public static Block bElectromagnetGlass; public static Block bFunnel; public static Block bAccelerator; public static Block bAutoBuilder; public static Block bFulminationGenerator; public static Block bAtomicAssembler; public static Block bFissionReactor; public static Block bReactorTap; public static final int ITEM_ID_PREFIX = 13768; public static Item itCell; public static Item itCellUranium; public static Item itCellBreederFuel; public static Item itCellStrangeMatter; public static Item itCellAntimatter; public static Item itCellDeuterium; public static Item itCellWater; public static Item itBucketToxic; public static Block bUraniumOre; public static Item itYellowcake; public static Item itUranium; public static ItemElectric itWenDuBiao; public static Item itHazmatHelmet; public static Item itHazmatChestplate; public static Item itHazmanLeggings; public static Item itHazmatBoots; public static Block bToxicWaste; public static Fluid FLUID_URANIUM_HEXAFLOURIDE; public static Fluid FLUID_STEAM; public static Fluid FLUID_TOXIC_WASTE; public static final ArmorMaterial hazmatArmorMaterial = EnumHelper.addArmorMaterial("HAZMAT", 0, new int[] {0, 0, 0, 0}, 0); public static OreGenBase uraniumOreGeneration; public static int URANIUM_HEXAFLOURIDE_RATIO = 200; public static int STEAM_RATIO = 40; // public static final String QIZI_FAN_WU_SU_BAO_ZHA = // FlagRegistry.registerFlag("ban_antimatter_power"); public static final Logger LOGGER = Logger.getLogger("AtomicScience"); @EventHandler public void preInit(FMLPreInitializationEvent event) { instance = this; MinecraftForge.EVENT_BUS.register(this); AtomicScience.CONFIGURATION.load(); WOLUN_MULTIPLIER_OUTPUT = (float)AtomicScience.CONFIGURATION .get("general", "Turbine Output Multiplier", (double)WOLUN_MULTIPLIER_OUTPUT) .getDouble((double)WOLUN_MULTIPLIER_OUTPUT); ALLOW_LAYERED_TURBINES = AtomicScience.CONFIGURATION .get("general", "Allow Layered Turbines", ALLOW_LAYERED_TURBINES) .getBoolean(ALLOW_LAYERED_TURBINES); ALLOW_TOXIC_WASTE = AtomicScience.CONFIGURATION .get("general", "Allow Toxic Waste", ALLOW_TOXIC_WASTE) .getBoolean(ALLOW_TOXIC_WASTE); ALLOW_RADIOACTIVE_ORES = AtomicScience.CONFIGURATION .get("general", "Allow Radioactive Ores", ALLOW_RADIOACTIVE_ORES) .getBoolean(ALLOW_RADIOACTIVE_ORES); PoisonRadiation.disabled = AtomicScience.CONFIGURATION .get("general", "Disable Radiation", PoisonRadiation.disabled) .getBoolean(PoisonRadiation.disabled); URANIUM_HEXAFLOURIDE_RATIO = AtomicScience.CONFIGURATION .get("general", "Uranium Hexafluoride Ratio", URANIUM_HEXAFLOURIDE_RATIO) .getInt(URANIUM_HEXAFLOURIDE_RATIO); STEAM_RATIO = AtomicScience.CONFIGURATION.get("general", "Steam Ratio", STEAM_RATIO) .getInt(STEAM_RATIO); PotionRadiation.INSTANCE.getId(); blockRadioactive = (new BlockRadioactive() .setBlockName("atomicscience:radioactive") .setCreativeTab(TabAS.INSTANCE)); bUraniumOre = new BUraniumOre(); bCentrifuge = new BCentrifuge(); bFissionReactor = new BFissionReactor(); bTurbine = new BTurbine(); bNuclearBoiler = new BNuclearBoiler(); bControlRod = new BControlRod(); bThermometer = new BThermometer(); bFusionReactor = new BFusionReactor(); bPlasma = new BPlasma(); bElectromagnet = new BElectromagnet(); bChemicalExtractor = new BChemicalExtractor(); bSiren = new BSiren(); bElectromagnetGlass = new BElectromagnetGlass(); bFunnel = new BFunnel(); bAccelerator = new BAccelerator(); bAutoBuilder = new BAutoBuilder(); bFulminationGenerator = new BFulminationGenerator(); bAtomicAssembler = new BAtomicAssembler(); bReactorTap = new BReactorTap(); itHazmatHelmet = (new ItHazmatSuite( hazmatArmorMaterial, proxy.getArmorIndex("hazmat"), 0)) .setUnlocalizedName("atomicscience:hazmatMask"); itHazmatChestplate = (new ItHazmatSuite(hazmatArmorMaterial, proxy.getArmorIndex("hazmat"), 1)) .setUnlocalizedName("atomicscience:hazmatBody"); itHazmanLeggings = (new ItHazmatSuite(hazmatArmorMaterial, proxy.getArmorIndex("hazmat"), 2)) .setUnlocalizedName("atomicscience:hazmatLeggings"); itHazmatBoots = (new ItHazmatSuite(hazmatArmorMaterial, proxy.getArmorIndex("hazmat"), 3)) .setUnlocalizedName("atomicscience:hazmatBoots"); itWenDuBiao = new ItThermometer(1); itCell = new ItCell("cellEmpty"); itCellUranium = new ItFissileFuel(); itCellDeuterium = new ItCell("cellDeuterium"); itCellStrangeMatter = new ItStrangeMatter(); itCellAntimatter = new ItAntimatterCell(); itCellWater = new ItCell("cellWater"); itCellBreederFuel = new ItBreederFuel(); itYellowcake = new ItRadioactive("yellowcake"); itUranium = new ItUranium(0); FLUID_URANIUM_HEXAFLOURIDE = getOrRegisterFluid("uranium_hexafluoride"); FLUID_STEAM = getOrRegisterFluid("steam"); FLUID_TOXIC_WASTE = getOrRegisterFluid("toxic_waste"); bToxicWaste = (new BToxicWaste("toxicWaste")).setCreativeTab((CreativeTabs)null); itBucketToxic = (new ItemBucket(bToxicWaste)) .setCreativeTab(TabAS.INSTANCE) .setUnlocalizedName("atomicscience:bucketToxicWaste") .setContainerItem(Items.bucket); FluidContainerRegistry.registerFluidContainer(new FluidContainerData( new FluidStack(FLUID_TOXIC_WASTE, 1000), new ItemStack(itBucketToxic), new ItemStack(Items.bucket))); NetworkRegistry.INSTANCE.registerGuiHandler(this, proxy); GameRegistry.registerBlock(blockRadioactive, "blockRadioactive"); GameRegistry.registerBlock(bUraniumOre, "bUraniumOre"); GameRegistry.registerBlock(bCentrifuge, "bCentrifuge"); GameRegistry.registerBlock(bFissionReactor, "bFissionReactor"); GameRegistry.registerBlock(bTurbine, "bTurbine"); GameRegistry.registerBlock(bNuclearBoiler, "bNuclearBoiler"); GameRegistry.registerBlock(bControlRod, "bControlRod"); GameRegistry.registerBlock(bThermometer, "bThermometer"); GameRegistry.registerBlock(bFusionReactor, "bFusionReactor"); GameRegistry.registerBlock(bPlasma, IBPlasma.class, "bPlasma"); GameRegistry.registerBlock(bElectromagnet, "bElectromagnet"); GameRegistry.registerBlock(bChemicalExtractor, "bChemicalExtractor"); GameRegistry.registerBlock(bSiren, IBSiren.class, "bSiren"); GameRegistry.registerBlock(bElectromagnetGlass, "bElectromagnetGlass"); GameRegistry.registerBlock(bFunnel, "bFunnel"); GameRegistry.registerBlock(bAccelerator, IBAccelerator.class, "bAccelerator"); GameRegistry.registerBlock(bAutoBuilder, "bAutoBuilder"); GameRegistry.registerBlock(bFulminationGenerator, "bFulminationGenerator"); GameRegistry.registerBlock(bAtomicAssembler, "bAtomicAssembler"); GameRegistry.registerBlock(bToxicWaste, "bToxicWaste"); GameRegistry.registerBlock(bReactorTap, "bReactorTap"); uraniumOreGeneration = new OreGenReplaceStone("Uranium Ore", "oreUranium", new ItemStack(bUraniumOre), 0, 25, 9, 3, "pickaxe", 2); if (OreDictionary.getOres("oreUranium").size() > 1 && AtomicScience.CONFIGURATION .get("general", "Auto Disable Uranium If Exist", false) .getBoolean(false)) { LOGGER.fine( "Disabled Uranium Generation. Detected another uranium being generated: " + OreDictionary.getOres("oreUranium").size()); } else { uraniumOreGeneration.enable(AtomicScience.CONFIGURATION); OreGenerator.addOre(uraniumOreGeneration); LOGGER.fine("Added Atomic Science uranium to ore generator."); } AtomicScience.CONFIGURATION.save(); MinecraftForge.EVENT_BUS.register(itCellAntimatter); MinecraftForge.EVENT_BUS.register(FulminationEventHandler.INSTANCE); OreDictionary.registerOre("ingotUranium", itUranium); OreDictionary.registerOre("breederUranium", new ItemStack(itUranium, 1, 1)); OreDictionary.registerOre("blockRadioactive", blockRadioactive); OreDictionary.registerOre("cellEmpty", itCell); OreDictionary.registerOre("cellUranium", itCellUranium); OreDictionary.registerOre("cellDeuterium", itCellDeuterium); OreDictionary.registerOre("cellWater", itCellWater); OreDictionary.registerOre("strangeMatter", itCellStrangeMatter); OreDictionary.registerOre("antimatterMilligram", new ItemStack(itCellAntimatter, 1, 0)); OreDictionary.registerOre("antimatterGram", new ItemStack(itCellAntimatter, 1, 1)); FluidContainerRegistry.registerFluidContainer(new FluidContainerData( new FluidStack(FluidRegistry.WATER, 1000), new ItemStack(itCellWater), new ItemStack(itCell))); ForgeChunkManager.setForcedChunkLoadingCallback(this, (tickets, world) -> { for (Ticket ticket : tickets) { if (ticket.getType() == Type.ENTITY && ticket.getEntity() != null && ticket.getEntity() instanceof EMatter) { ((EMatter)ticket.getEntity()).youPiao = ticket; } } }); Plasma.blockPlasma = bPlasma; GameRegistry.registerTileEntity(TCentrifuge.class, "ASCentrifuge"); GameRegistry.registerTileEntity(TFusionReactor.class, "ASFusionReactor"); GameRegistry.registerTileEntity(TTurbine.class, "ASTurbine"); GameRegistry.registerTileEntity(TNuclearBoiler.class, "ASNuclearBoiler"); GameRegistry.registerTileEntity(TThermometer.class, "ASThermometer"); GameRegistry.registerTileEntity(TElectromagnet.class, "ASElectromagnet"); GameRegistry.registerTileEntity(TChemicalExtractor.class, "ASChemicalExtractor"); GameRegistry.registerTileEntity(TFunnel.class, "ASFunnel"); GameRegistry.registerTileEntity(TAccelerator.class, "ASAccelerator"); GameRegistry.registerTileEntity(TFulminationGenerator.class, "ASFulminationGenerator"); GameRegistry.registerTileEntity(TAtomicAssembler.class, "ASAtomicAssembler"); GameRegistry.registerTileEntity(TAutoBuilder.class, "ASAutoBuilder"); GameRegistry.registerTileEntity(TFissionReactor.class, "ASFissionReactor"); GameRegistry.registerTileEntity(TReactorTap.class, "ASReactorTap"); proxy.preInit(); } @EventHandler public void load(FMLInitializationEvent evt) { metadata.modId = "AtomicScience"; metadata.name = "Atomic Science"; metadata.description = "Electricity generation is always a burden. That\'s why we are here to bring in high tech nuclear power to solve all your electricity-lack problems. With our fission reactors, fusion reactors, and antimatter generators, you won\'t be lacking electricity ever again!"; metadata.url = "http://www.universalelectricity.com/atomicscience"; metadata.logoFile = "/as_logo.png"; metadata.version = "0.6.2.117"; metadata.authorList = Arrays.asList(new String[] {"Calclavia"}); metadata.credits = "Please visit the website."; metadata.autogenerated = false; LOGGER.fine( "Loaded Languages: " + TranslationHelper.loadLanguages("/mods/atomicscience/yuyan/", YU_YAN)); } @EventHandler public void postInit(FMLPostInitializationEvent event) { UniversalRecipes.init(); if (Loader.isModLoaded("IC2")) { OreDictionary.registerOre("cellEmpty", itCell); GameRegistry.addRecipe(new ShapelessOreRecipe( itYellowcake, GameRegistry.findItem("IC2", "reactorUraniumSimple"))); Item ic2FluidCell = GameRegistry.findItem("IC2", "itemFluidCell"); GameRegistry.addRecipe(new ShapelessOreRecipe(ic2FluidCell, itCell)); GameRegistry.addRecipe(new ShapelessOreRecipe(itCell, "cellEmpty")); } GameRegistry.addRecipe(new ShapelessOreRecipe( new ItemStack(itCellAntimatter, 1, 1), itCellAntimatter, itCellAntimatter, itCellAntimatter, itCellAntimatter, itCellAntimatter, itCellAntimatter, itCellAntimatter, itCellAntimatter)); GameRegistry.addRecipe(new ShapelessOreRecipe( new ItemStack(itCellAntimatter, 8, 0), new Object[] {new ItemStack(itCellAntimatter, 1, 1)})); GameRegistry.addRecipe(new ShapedOreRecipe( new ItemStack(bFunnel, 2), " B ", "B B", "B B", 'B', "ingotBronze")); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(bFunnel, 2), " B ", "B B", "B B", 'B', "ingotIron")); GameRegistry.addRecipe(new ShapedOreRecipe( bAtomicAssembler, "CCC", "SXS", "SSS", 'X', bCentrifuge, 'C', "calclavia:CIRCUIT_T3", 'S', "plateSteel")); GameRegistry.addRecipe(new ShapedOreRecipe( bFulminationGenerator, "OSO", "SCS", "OSO", 'O', Blocks.obsidian, 'C', "calclavia:CIRCUIT_T2", 'S', "plateSteel")); GameRegistry.addRecipe(new ShapedOreRecipe( bAccelerator, "SCS", "CMC", "SCS", 'M', "calclavia:MOTOR", 'C', "calclavia:CIRCUIT_T3", 'S', "plateSteel")); GameRegistry.addRecipe(new ShapelessOreRecipe( bElectromagnetGlass, new Object[] {bElectromagnet, Blocks.glass})); GameRegistry.addRecipe(new ShapedOreRecipe( bCentrifuge, new Object[] {"BSB", "MCM", "BSB", Character.valueOf('C'), "calclavia:CIRCUIT_T2", Character.valueOf('S'), "plateSteel", Character.valueOf('B'), "ingotBronze", Character.valueOf('M'), "calclavia:MOTOR"})); GameRegistry.addRecipe(new ShapedOreRecipe( bNuclearBoiler, new Object[] {"S S", "FBF", "SMS", Character.valueOf('F'), Blocks.furnace, Character.valueOf('S'), "plateSteel", Character.valueOf('B'), Items.bucket, Character.valueOf('M'), "calclavia:MOTOR"})); GameRegistry.addRecipe(new ShapedOreRecipe( bChemicalExtractor, new Object[] {"BSB", "MCM", "BSB", Character.valueOf('C'), "calclavia:CIRCUIT_T3", Character.valueOf('S'), "plateSteel", Character.valueOf('B'), "ingotBronze", Character.valueOf('M'), "calclavia:MOTOR"})); GameRegistry.addRecipe(new ShapedOreRecipe( new ItemStack(bSiren, 2), new Object[] {"NPN", Character.valueOf('N'), Blocks.noteblock, Character.valueOf('P'), "plateBronze"})); GameRegistry.addRecipe(new ShapedOreRecipe( bFissionReactor, new Object[] {"SCS", "MEM", "SCS", Character.valueOf('E'), "cellEmpty", Character.valueOf('C'), "calclavia:CIRCUIT_T2", Character.valueOf('S'), "plateSteel", Character.valueOf('M'), "calclavia:MOTOR"})); GameRegistry.addRecipe(new ShapedOreRecipe( bFusionReactor, new Object[] {"CPC", "PFP", "CPC", Character.valueOf('P'), "plateSteel", Character.valueOf('F'), bFissionReactor, Character.valueOf('C'), "calclavia:CIRCUIT_T3"})); GameRegistry.addRecipe(new ShapedOreRecipe( bTurbine, new Object[] {" B ", "BMB", " B ", Character.valueOf('B'), "plateBronze", Character.valueOf('M'), "calclavia:MOTOR"})); GameRegistry.addRecipe(new ShapedOreRecipe( bReactorTap, new Object[] {"SBS", "TMT", "SBS", Character.valueOf('S'), "plateBronze", Character.valueOf('T'), "ingotBronze", Character.valueOf('M'), "calclavia:MOTOR", Character.valueOf('B'), Items.bucket})); GameRegistry.addRecipe(new ShapedOreRecipe( new ItemStack(itCell, 16), new Object[] {" T ", "TGT", " T ", Character.valueOf('T'), "ingotTin", Character.valueOf('G'), Blocks.glass})); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(itCellWater), itCell, Items.water_bucket)); GameRegistry.addRecipe(new ShapedOreRecipe( ElectricItemHelper.getUncharged(new ItemStack(itWenDuBiao)), new Object[] {"SSS", "GCG", "GSG", Character.valueOf('S'), "ingotSteel", Character.valueOf('G'), Blocks.glass, Character.valueOf('C'), "calclavia:CIRCUIT_T1"})); GameRegistry.addRecipe(new ShapedOreRecipe( bThermometer, new Object[] {"SSS", "SWS", "SSS", Character.valueOf('S'), "ingotSteel", Character.valueOf('W'), ElectricItemHelper.getUncharged( new ItemStack(itWenDuBiao))})); GameRegistry.addRecipe(new ShapedOreRecipe( bControlRod, new Object[] {"I", "I", "I", Character.valueOf('I'), Items.iron_ingot})); GameRegistry.addRecipe(new ShapedOreRecipe( itCellUranium, new Object[] {"CUC", "CUC", "CUC", Character.valueOf('U'), "ingotUranium", Character.valueOf('C'), "cellEmpty"})); GameRegistry.addRecipe(new ShapedOreRecipe( itCellBreederFuel, new Object[] {"CUC", "CUC", "CUC", Character.valueOf('U'), "breederUranium", Character.valueOf('C'), "cellEmpty"})); GameRegistry.addRecipe(new ShapedOreRecipe( new ItemStack(bElectromagnet, 2), new Object[] {"BBB", "BMB", "BBB", Character.valueOf('B'), "ingotBronze", Character.valueOf('M'), "calclavia:MOTOR"})); GameRegistry.addRecipe(new ShapedOreRecipe( new ItemStack(bElectromagnet, 2), new Object[] {"BBB", "BMB", "BBB", Character.valueOf('B'), "ingotIron", Character.valueOf('M'), "calclavia:MOTOR"})); GameRegistry.addRecipe(new ShapedOreRecipe( itHazmatHelmet, new Object[] {"SSS", "BAB", "SCS", Character.valueOf('A'), Items.leather_helmet, Character.valueOf('C'), "calclavia:CIRCUIT_T1", Character.valueOf('S'), Blocks.wool})); GameRegistry.addRecipe(new ShapedOreRecipe( itHazmatChestplate, new Object[] {"SSS", "BAB", "SCS", Character.valueOf('A'), Items.leather, Character.valueOf('C'), "calclavia:CIRCUIT_T1", Character.valueOf('S'), Blocks.wool})); GameRegistry.addRecipe(new ShapedOreRecipe( itHazmanLeggings, new Object[] {"SSS", "BAB", "SCS", Character.valueOf('A'), Items.leather_leggings, Character.valueOf('C'), "calclavia:CIRCUIT_T1", Character.valueOf('S'), Blocks.wool})); GameRegistry.addRecipe(new ShapedOreRecipe( itHazmatBoots, new Object[] {"SSS", "BAB", "SCS", Character.valueOf('A'), Items.leather_boots, Character.valueOf('C'), "calclavia:CIRCUIT_T1", Character.valueOf('S'), Blocks.wool})); EntityRegistry.registerGlobalEntityID( EMatter.class, "ASParticle", EntityRegistry.findGlobalUniqueEntityId()); EntityRegistry.registerModEntity(EMatter.class, "ASParticle", 49, this, 80, 3, true); proxy.init(); AtomicScience.CONFIGURATION.load(); if (Loader.isModLoaded("IC2") && AtomicScience.CONFIGURATION .get("general", "Disable IC2 Uranium Compression (Recommended)", true) .getBoolean(true)) { try { // TODO: WTF // if (Recipes.compressor != null) { // Map e = Recipes.compressor.getRecipes(); // Iterator it = e.entrySet().iterator(); // int i = 0; // while (it.hasNext()) { // Entry entry = (Entry)it.next(); // if (isUraniumOre((ItemStack)entry.getKey())) { // ++i; // it.remove(); // } // } // LOGGER.fine( // "Removed " + i + // " IC2 uranium compression recipe, use centrifuge instead."); // } } catch (Exception var6) { LOGGER.fine("Failed to remove IC2 compressor recipes."); var6.printStackTrace(); } } AtomicScience.CONFIGURATION.save(); } public static boolean isCell(ItemStack itemStack) { return is(itemStack, "cellEmpty"); } public static boolean isCellWater(ItemStack itemStack) { return is(itemStack, "cellWater"); } public static boolean isUraniumOre(ItemStack itemStack) { return is(itemStack, "dropUranium", "oreUranium"); } public static boolean isFusionFuel(ItemStack itemStack) { return is(itemStack, "molecule_1d", "molecule_1h2", "cellDeuterium"); } public static boolean is(ItemStack itemStack, String... names) { if (itemStack != null && names != null && names.length > 0) { String name = OreDictionary.getOreName(OreDictionary.getOreID(itemStack)); String[] arr$ = names; int len$ = names.length; for (int i$ = 0; i$ < len$; ++i$) { String compareName = arr$[i$]; if (name.equals(compareName)) { return true; } } } return false; } public static void boilWater(World worldObj, Vector3 pos, int height, int rpm) { Block blockID = pos.getBlock(worldObj); if (blockID == Blocks.flowing_water || blockID == Blocks.water) { if (!ALLOW_LAYERED_TURBINES) { height = 1; } if (worldObj.rand.nextInt(80) == 0) { worldObj.playSoundEffect( pos.x + 0.5D, pos.y + 0.5D, pos.z + 0.5D, "liquid.lava", 0.5F, 2.1F + (worldObj.rand.nextFloat() - worldObj.rand.nextFloat()) * 0.85F); } if (worldObj.rand.nextInt(40) == 0) { worldObj.playSoundEffect( pos.x + 0.5D, pos.y + 0.5D, pos.z + 0.5D, "liquid.lavapop", 0.5F, 2.6F + (worldObj.rand.nextFloat() - worldObj.rand.nextFloat()) * 0.8F); } worldObj.spawnParticle("bubble", pos.x + 0.5D, pos.y + 0.20000000298023224D, pos.z + 0.5D, 0.0D, 0.0D, 0.0D); if (worldObj.rand.nextInt(5) == 0) { worldObj.spawnParticle("smoke", pos.x + 0.5D, pos.y + 0.5D, pos.z + 0.5D, 0.0D, 0.0D, 0.0D); } for (int i = 1; i <= height; ++i) { TileEntity tileEntity = worldObj.getTileEntity(pos.intX(), pos.intY() + i, pos.intZ()); if (tileEntity != null && tileEntity instanceof ISteamReceptor) { ((ISteamReceptor)tileEntity).onReceiveSteam(rpm); rpm /= 2; } } } } @SubscribeEvent @SideOnly(Side.CLIENT) public void textureHook(Post event) { // TODO: WTF // if (event.map == Minecraft.getMinecraft().renderEngine.field_94155_m) { FLUID_URANIUM_HEXAFLOURIDE.setIcons( event.map.registerIcon("atomicscience:uraniumHexafluoride")); // TODO: might override railcraft icon? FLUID_STEAM.setIcons(event.map.registerIcon("atomicscience:steam")); FLUID_TOXIC_WASTE.setIcons( event.map.registerIcon("atomicscience:toxicWaste")); } // TODO: WTF // @EventHandler public void serverStarting(FMLServerStartingEvent event) { // FlagRegistry.registerModFlag( // "ModFlags", new ModFlag(NBTFileLoader.loadData("ModFlags"))); // ICommandManager commandManager = FMLCommonHandler.instance() // .getMinecraftServerInstance() // .getCommandManager(); // ServerCommandManager serverCommandManager = // (ServerCommandManager)commandManager; // serverCommandManager.registerCommand( // new CommandFlag(FlagRegistry.getModFlag("ModFlags"))); // } // TODO: WTF // @ForgeSubscribe // public void worldSave(Save evt) { // if (!evt.world.isRemote) { // NBTFileLoader.saveData("ModFlags", // FlagRegistry.getModFlag("ModFlags").getNBT()); // } // } public static int getLiquidAmount(FluidStack liquid) { return liquid != null ? liquid.amount : 0; } static Fluid getOrRegisterFluid(String id) { FluidRegistry.registerFluid(new Fluid(id)); return FluidRegistry.getFluid(id); } }