package buildcraftAdditions;
import buildcraftAdditions.api.item.BCAItemManager;
import buildcraftAdditions.api.item.dust.IDust;
import buildcraftAdditions.api.recipe.BCARecipeManager;
import buildcraftAdditions.compat.ModuleManager;
import buildcraftAdditions.compat.imc.IMCHandler;
import buildcraftAdditions.compat.imc.IMCSender;
import buildcraftAdditions.config.ConfigurationHandler;
import buildcraftAdditions.core.GuiHandler;
import buildcraftAdditions.core.SpecialListMananger;
import buildcraftAdditions.creative.TabBCAdditions;
import buildcraftAdditions.creative.TabCanisters;
import buildcraftAdditions.creative.TabDusts;
import buildcraftAdditions.items.dust.DustManager;
import buildcraftAdditions.items.dust.DustTypes;
import buildcraftAdditions.listeners.EventListener;
import buildcraftAdditions.networking.PacketHandler;
import buildcraftAdditions.proxy.CommonProxy;
import buildcraftAdditions.recipe.duster.DusterRecipeManager;
import buildcraftAdditions.recipe.refinery.CoolingTowerRecipeManager;
import buildcraftAdditions.recipe.refinery.RefineryRecipeManager;
import buildcraftAdditions.reference.ArmorLoader;
import buildcraftAdditions.reference.BlockLoader;
import buildcraftAdditions.reference.ItemLoader;
import buildcraftAdditions.reference.Variables;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.*;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.ShapedOreRecipe;
import net.minecraftforge.oredict.ShapelessOreRecipe;
/**
* Copyright (c) 2014-2015, AEnterprise
* http://buildcraftadditions.wordpress.com/
* Buildcraft Additions is distributed under the terms of GNU GPL v3.0
* Please check the contents of the license located in
* http://buildcraftadditions.wordpress.com/wiki/licensing-stuff/
*/
@Mod(modid = Variables.MOD.ID, name = Variables.MOD.NAME, version = "@MODVERSION@", guiFactory = "buildcraftAdditions.config.GuiFactory", dependencies = "required-after:BuildCraft|Core;required-after:eureka;before:zCraftingManager;required-after:Forge@[10.13.2.1236,);", acceptedMinecraftVersions = "1.7.10")
public class BuildcraftAdditions {
public static final CreativeTabs bcadditions = new TabBCAdditions();
public static final CreativeTabs bcaCannisters = new TabCanisters();
public static final CreativeTabs bcaDusts = new TabDusts();
@Mod.Instance(Variables.MOD.ID)
public static BuildcraftAdditions instance;
@SidedProxy(clientSide = "buildcraftAdditions.proxy.ClientProxy", serverSide = "buildcraftAdditions.proxy.CommonProxy")
public static CommonProxy proxy;
public ModuleManager manager = new ModuleManager();
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
manager.setupModules();
ConfigurationHandler.init(event.getSuggestedConfigurationFile());
PacketHandler.init();
BlockLoader.loadBlocks();
ItemLoader.loadItems();
ArmorLoader.loadArmor();
proxy.registerEntities();
SpecialListMananger.init();
BCARecipeManager.duster = new DusterRecipeManager();
BCARecipeManager.cooling = new CoolingTowerRecipeManager();
BCARecipeManager.refinery = new RefineryRecipeManager();
BCAItemManager.dusts = new DustManager();
OreDictionary.registerOre("rodBlaze", Items.blaze_rod);
OreDictionary.registerOre("dustBlaze", Items.blaze_powder);
OreDictionary.registerOre("materialSnowball", Items.snowball);
OreDictionary.registerOre("blockSand", Blocks.sand);
OreDictionary.registerOre("blockSoulSand", Blocks.soul_sand);
manager.preInit(event);
}
@Mod.EventHandler
public void load(FMLInitializationEvent event) {
proxy.registerRenderers();
NetworkRegistry.INSTANCE.registerGuiHandler(instance, GuiHandler.INSTANCE);
FMLCommonHandler.instance().bus().register(new EventListener.FML());
MinecraftForge.EVENT_BUS.register(new EventListener.Forge());
proxy.addListeners();
IMCSender.sendMessages();
BlockLoader.registerTileEntities();
int meta = 1;
BCAItemManager.dusts.addDust(meta++, "Iron", 0xD2CEC9, DustTypes.METAL_DUST);
BCAItemManager.dusts.addDust(meta++, "Gold", 0xF8DF17, DustTypes.METAL_DUST);
BCAItemManager.dusts.addDust(meta, "Diamond", 0x13ECFC, DustTypes.GEM_DUST);
meta = 55;
BCAItemManager.dusts.addDust(meta++, "Emerald", 0x00B038, DustTypes.GEM_DUST);
BCAItemManager.dusts.addDust(meta++, "Coal", 0x1B1B1B, new DustTypes.SimpleDustAlwaysValid(new ItemStack(Items.coal)));
BCAItemManager.dusts.addDust(meta++, "Charcoal", 0x53493A, new DustTypes.SimpleDustAlwaysValid(new ItemStack(Items.coal, 1, 1)));
BCAItemManager.dusts.addDust(meta++, "Obsidian", 0x171124, new DustTypes.SimpleDustAlwaysValid(new ItemStack(Blocks.obsidian), 4));
BCAItemManager.dusts.addDust(meta++, "EnderPearl", 0x105E51, new DustTypes.SimpleDustAlwaysValid(new ItemStack(Items.ender_pearl)));
BCAItemManager.dusts.addDust(meta, "NetherQuartz", 0xDBCCBF, new DustTypes.SimpleDustAlwaysValid(new ItemStack(Items.coal, 1, 1)));
meta = 83;
BCAItemManager.dusts.addDust(meta, "GildedRedMetal", 0xFF6E1B, new DustTypes.DustAlwaysValid());
BCARecipeManager.duster.addRecipe("oreRedstone", new ItemStack(Items.redstone, 10));
BCARecipeManager.duster.addRecipe("oreCoal", new ItemStack(Items.coal, 2));
BCARecipeManager.duster.addRecipe("oreLapis", new ItemStack(Items.dye, 12, 4));
BCARecipeManager.duster.addRecipe("oreQuartz", new ItemStack(Items.quartz, 2));
BCARecipeManager.duster.addRecipe("stone", new ItemStack(Blocks.gravel));
BCARecipeManager.duster.addRecipe("cobblestone", new ItemStack(Blocks.sand));
BCARecipeManager.duster.addRecipe("oreDiamond", new ItemStack(Items.diamond, 2));
BCARecipeManager.duster.addRecipe("oreEmerald", new ItemStack(Items.emerald, 2));
BCARecipeManager.duster.addRecipe("rodBlaze", new ItemStack(Items.blaze_powder, 4));
manager.init(event);
BlockLoader.addRecipes();
ItemLoader.addRecipes();
ArmorLoader.addRecipes();
}
@Mod.EventHandler
public void postInit(FMLPostInitializationEvent event) {
manager.postInit(event);
}
@Mod.EventHandler
public void doneLoading(FMLLoadCompleteEvent event) {
IMCHandler.handleIMC(FMLInterModComms.fetchRuntimeMessages(this));
manager.doneLoadingEvent(event);
for (IDust dust : BCAItemManager.dusts.getDusts())
if (dust != null)
dust.getDustType().register(dust.getMeta(), dust.getName(), dust.getDustStack());
if (OreDictionary.getOres("dustGold").isEmpty() || OreDictionary.getOres("dustIron").isEmpty()) {
GameRegistry.addRecipe(new ShapelessOreRecipe(ItemLoader.gildedRedMetalIngot, "ingotGold", "ingotGold", "ingotGold", "ingotIron", "ingotIron", "dustRedstone"));
GameRegistry.addRecipe(new ShapedOreRecipe(ItemLoader.conductivePlateRaw, "DD", "DD", 'D', "ingotGildedRedMetal"));
} else {
ItemStack dust = BCAItemManager.dusts.getDust("GildedRedMetal").getDustStack().copy();
dust.stackSize = 6;
GameRegistry.addRecipe(new ShapelessOreRecipe(dust, "dustGold", "dustGold", "dustGold", "dustIron", "dustIron", "dustRedstone"));
GameRegistry.addRecipe(new ShapedOreRecipe(ItemLoader.conductivePlateRaw, "DD", "DD", 'D', "dustGildedRedMetal"));
}
}
@Mod.EventHandler
public void onIMC(FMLInterModComms.IMCEvent event) {
IMCHandler.handleIMC(event.getMessages());
}
@Mod.EventHandler
public void remap(FMLMissingMappingsEvent event) {
for (FMLMissingMappingsEvent.MissingMapping mapping : event.get()) {
if (mapping.name.equals(Variables.MOD.ID + ":condictuvePlateRaw")) {
mapping.remap(ItemLoader.conductivePlateRaw);
} else if (mapping.name.equals(Variables.MOD.ID + ":PowerCapsuleTier1")) {
mapping.remap(ItemLoader.powerCapsuleTier1);
} else if (mapping.name.equals(Variables.MOD.ID + ":backpackstandGhost")) {
mapping.remap(BlockLoader.backpackStandGhost);
} else if (mapping.name.equals(Variables.MOD.ID + ":blankUpgrade")) {
mapping.remap(ItemLoader.blankUpgrade);
} else if (mapping.name.equals(Variables.MOD.ID + ":condictuvePlate")) {
mapping.remap(ItemLoader.conductivePlate);
} else if (mapping.name.equals(Variables.MOD.ID + ":toolUpgradeChaisaw")) {
mapping.remap(ItemLoader.toolUpgradeChainsaw);
} else if (mapping.name.equals(Variables.MOD.ID + ":ingotGildedRedMetal")) {
mapping.remap(ItemLoader.gildedRedMetalIngot);
} else if (mapping.name.equals(Variables.MOD.ID + ":itemKineticMultiTool")) {
mapping.remap(ItemLoader.kineticMultiTool);
} else if (mapping.name.equals(Variables.MOD.ID + ":robotDebugTool")) {
mapping.ignore();
} else if (mapping.name.contains("converter")) {
mapping.ignore();
}
}
}
}