generated from tilera/1710mod
676 lines
31 KiB
Java
676 lines
31 KiB
Java
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);
|
|
}
|
|
}
|