Package erogenousbeef.bigreactors.common

Source Code of erogenousbeef.bigreactors.common.CommonProxy

package erogenousbeef.bigreactors.common;

import java.util.Calendar;

import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraftforge.client.event.TextureStitchEvent;
import cofh.api.modhelpers.ThermalExpansionHelper;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import erogenousbeef.bigreactors.api.registry.Reactants;
import erogenousbeef.bigreactors.common.data.StandardReactants;
import erogenousbeef.bigreactors.common.item.ItemIngot;
import erogenousbeef.bigreactors.gui.BigReactorsGUIHandler;
import erogenousbeef.bigreactors.net.CommonPacketHandler;
import erogenousbeef.bigreactors.utils.intermod.IMCHelper;
import erogenousbeef.bigreactors.utils.intermod.ModHelperBase;
import erogenousbeef.bigreactors.utils.intermod.ModHelperComputerCraft;
import erogenousbeef.bigreactors.utils.intermod.ModHelperMekanism;
import erogenousbeef.core.multiblock.MultiblockServerTickHandler;

public class CommonProxy {

  public void preInit() {
  }

  public void init() {
    BigReactors.registerTileEntities();
   
    CommonPacketHandler.init();

    NetworkRegistry.INSTANCE.registerGuiHandler(BRLoader.instance, new BigReactorsGUIHandler());
    BigReactors.tickHandler = new BigReactorsTickHandler();
    FMLCommonHandler.instance().bus().register(BigReactors.tickHandler);
        FMLCommonHandler.instance().bus().register(new MultiblockServerTickHandler());
   
    sendInterModAPIMessages();

    if(Loader.isModLoaded("VersionChecker")) {
      FMLInterModComms.sendRuntimeMessage(BRLoader.MOD_ID, "VersionChecker", "addVersionCheck", "http://big-reactors.com/version.json");
    }
  }

  private void sendInterModAPIMessages() {
    ItemIngot ingotGeneric = BigReactors.ingotGeneric;
    ItemStack yelloriteOre   = new ItemStack(BigReactors.blockYelloriteOre, 1);

    final int YELLORIUM = 0;
   
    String[] names = ItemIngot.MATERIALS;
    ItemStack[] ingots = new ItemStack[names.length];
    ItemStack[] dusts = new ItemStack[names.length];
   
    for(int i = 0; i < names.length; i++) {
      ingots[i] = ingotGeneric.getIngotItem(names[i]);
      dusts[i] = ingotGeneric.getDustItem(names[i]);
    }
   
    ItemStack doubledYelloriumDust = null;
    if(dusts[YELLORIUM] != null) {
      doubledYelloriumDust = dusts[YELLORIUM].copy();
      doubledYelloriumDust.stackSize = 2;
    }

    if(Loader.isModLoaded("ThermalExpansion")) {
      ItemStack sandStack = new ItemStack(Blocks.sand, 1);
      ItemStack doubleYellorium = ingots[YELLORIUM].copy();
      doubleYellorium.stackSize = 2;

      // TODO: Remove ThermalExpansionHelper once addSmelterRecipe and addPulverizerRecipe aren't broken
      if(ingots[YELLORIUM] != null) {
        ThermalExpansionHelper.addFurnaceRecipe(400, yelloriteOre, ingots[YELLORIUM]);
        ThermalExpansionHelper.addSmelterRecipe(1600, yelloriteOre, sandStack, doubleYellorium);
      }

      if(doubledYelloriumDust != null) {
        ThermalExpansionHelper.addPulverizerRecipe(4000, yelloriteOre, doubledYelloriumDust);
        ThermalExpansionHelper.addSmelterRecipe(200, doubledYelloriumDust, sandStack, doubleYellorium);
      }

      for(int i = 0; i < ingots.length; i++) {
        if(ingots[i] == null || dusts[i] == null) { continue; }

        ThermalExpansionHelper.addPulverizerRecipe(2400, ingots[i], dusts[i]);
        ThermalExpansionHelper.addSmelterRecipe(200, doubledYelloriumDust, sandStack, doubleYellorium);

        ItemStack doubleDust = dusts[i].copy();
        doubleDust.stackSize = 2;
        ItemStack doubleIngot = ingots[i].copy();
        doubleIngot.stackSize = 2;

        ThermalExpansionHelper.addSmelterRecipe(200, doubleDust, sandStack, doubleIngot);
      }
    } // END: IsModLoaded - ThermalExpansion
   
    if(Loader.isModLoaded("MineFactoryReloaded")) {
      // Add yellorite to yellow focus list.
      IMCHelper.MFR.addOreToMiningLaserFocus(yelloriteOre, 2);
           
            // Make Yellorite the 'preferred' ore for lime focus
            IMCHelper.MFR.setMiningLaserFocusPreferredOre(yelloriteOre, 9);
    } // END: IsModLoaded - MineFactoryReloaded
   
    if(Loader.isModLoaded("appliedenergistics2")) {
      if(doubledYelloriumDust != null) {
        IMCHelper.AE2.addGrinderRecipe(yelloriteOre, doubledYelloriumDust, 4);
      }
   
      for(int i = 0; i < ingots.length; i++) {
        if(ingots[i] == null || dusts[i] == null) { continue; }
        IMCHelper.AE2.addGrinderRecipe(ingots[i], dusts[i], 2);
      }
    } // END: IsModLoaded - AE2
  }

  public void postInit() {
    BRConfig.CONFIGURATION.load();
    boolean autoAddUranium = BRConfig.CONFIGURATION.get("Compatibility", "autoAddUranium",
                              true,
                              "If true, automatically adds all "
                              +"unregistered ingots found as clones"
                              +"of standard yellorium fuel").getBoolean(true);
    if(autoAddUranium) {
      Reactants.registerSolid("ingotUranium", StandardReactants.yellorium);
    }

    BRConfig.CONFIGURATION.save();
   
    registerWithOtherMods();
   
    // Easter Egg - Check if today is valentine's day. If so, change all particles to hearts.
    Calendar calendar = Calendar.getInstance();
    BigReactors.isValentinesDay = (calendar.get(Calendar.MONTH) == 2 && calendar.get(Calendar.DAY_OF_MONTH) == 14);
  }
 
  @SideOnly(Side.CLIENT)
  @SubscribeEvent
  public void registerIcons(TextureStitchEvent.Pre event) {
  }
 
  @SideOnly(Side.CLIENT)
  @SubscribeEvent
  public void setIcons(TextureStitchEvent.Post event) {
  }
 
  /// Mod Interoperability ///
  void registerWithOtherMods() {
    ModHelperBase modHelper;
   
    ModHelperBase.detectMods();
   
    modHelper = new ModHelperComputerCraft();
    modHelper.register();
   
    modHelper = new ModHelperMekanism();
    modHelper.register();
  }
}
TOP

Related Classes of erogenousbeef.bigreactors.common.CommonProxy

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.