powerconverters/src/main/java/covers1624/powerconverters/PowerConverters.java
2023-06-16 22:17:05 +02:00

233 lines
10 KiB
Java

package covers1624.powerconverters;
import java.util.Iterator;
import java.util.Set;
import covers1624.powerconverters.grid.GridTickHandler;
import covers1624.powerconverters.handler.ConfigurationHandler;
import covers1624.powerconverters.handler.PCEventHandler;
import covers1624.powerconverters.handler.PCGUIHandler;
import covers1624.powerconverters.init.ModBlocks;
import covers1624.powerconverters.init.ModItems;
import covers1624.powerconverters.init.PowerSystems;
import covers1624.powerconverters.init.Recipes;
import covers1624.powerconverters.init.WorldGenerators;
import covers1624.powerconverters.net.EnergyBridgeSyncPacket;
import covers1624.powerconverters.net.PacketPipeline;
import covers1624.powerconverters.net.RecipeSyncPacket;
import covers1624.powerconverters.proxy.IPCProxy;
import covers1624.powerconverters.updatechecker.UpdateManager;
import covers1624.powerconverters.util.LogHelper;
import covers1624.powerconverters.util.RFHelper;
import cpw.mods.fml.common.FMLCommonHandler;
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.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLMissingMappingsEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry.Type;
import cpw.mods.fml.relauncher.ReflectionHelper;
import net.minecraft.item.Item;
import net.minecraft.launchwrapper.Launch;
import net.minecraft.launchwrapper.LaunchClassLoader;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fluids.FluidRegistry;
@Mod(
modid = "PowerConverters3",
name = "Power Converters 3",
version = "1.7.10-2.11",
dependencies
= "after:BuildCraft|Energy;after:factorization;after:IC2;after:Railcraft;after:ThermalExpansion",
guiFactory = "covers1624.powerconverters.gui.PCGuiFactory"
)
public class PowerConverters {
@SidedProxy(
clientSide = "covers1624.powerconverters.proxy.ProxyClient",
serverSide = "covers1624.powerconverters.proxy.ProxyServer"
)
public static IPCProxy proxy;
@Instance("Power Converters")
public static PowerConverters instance;
private static ConfigurationHandler configHandler;
public static int steamId = -1;
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
checkClassLoader();
instance = this;
LogHelper.info("PowerConverters PreInitialization Started.");
LogHelper.trace("Checking For RF API...");
RFHelper.init();
LogHelper.trace("Initializing Configuration File");
configHandler = new ConfigurationHandler(event.getSuggestedConfigurationFile());
LogHelper.trace("Registering Update Manager");
UpdateManager updateManager = new UpdateManager();
FMLCommonHandler.instance().bus().register(updateManager);
LogHelper.trace("Registering Event Handlers.");
PCEventHandler eventHandler = new PCEventHandler();
MinecraftForge.EVENT_BUS.register(eventHandler);
FMLCommonHandler.instance().bus().register(eventHandler);
LogHelper.trace("Initializing PowerSystems");
PowerSystems.init();
LogHelper.trace("Initializing ChargeHandlers");
PowerSystems.initChargeHandlers();
LogHelper.info("PowerConverters PreInitialization Finished.");
}
@EventHandler
public void init(FMLInitializationEvent event) {
LogHelper.info("PowerConverters Core Initialization Started.");
LogHelper.trace("Initializing PacketPipeline");
PacketPipeline.INSTANCE.initalise();
PacketPipeline.INSTANCE.registerPacket(RecipeSyncPacket.class);
PacketPipeline.INSTANCE.registerPacket(EnergyBridgeSyncPacket.class);
MinecraftForge.EVENT_BUS.register(GridTickHandler.energy);
FMLCommonHandler.instance().bus().register(GridTickHandler.energy);
LogHelper.trace("Registering Gui Handler.");
NetworkRegistry.INSTANCE.registerGuiHandler(this, new PCGUIHandler());
LogHelper.trace("Registering Blocks.");
ModBlocks.init();
LogHelper.trace("Registering Items.");
ModItems.init();
LogHelper.trace("Registering World Generators.");
WorldGenerators.init();
LogHelper.trace("Registering Client Rendering.");
proxy.initRendering();
if (!ConfigurationHandler.useTechRebornRecipes
&& !ConfigurationHandler.useThermalExpansionRecipes) {
LogHelper.trace("Registering Default Recipes.");
Recipes.initDefaults();
}
Recipes.setDefaultRecipes(Recipes.getCurrentRecipes());
if (Loader.isModLoaded("Waila")) {
LogHelper.trace("Regestering Waila Module.");
FMLInterModComms.sendMessage(
"Waila",
"register",
"covers1624.powerconverters.waila.WailaModule.callBackRegister"
);
}
LogHelper.info("PowerConverters Core Initialization Finished.");
}
@EventHandler
public void postInit(FMLPostInitializationEvent event) {
LogHelper.info("PowerConverters PostInitialization Started.");
LogHelper.trace(
"PostInitializing PacketPipeline. ALL PACKETS SHOULD BE REGISTERED BY NOW!"
);
PacketPipeline.INSTANCE.postInitialise();
if (FluidRegistry.isFluidRegistered("steam")) {
steamId = FluidRegistry.getFluidID("steam");
}
LogHelper.trace("PowerConverters PostInitialization Finished.");
}
@EventHandler
public void missingMapping(FMLMissingMappingsEvent event) {
Iterator i$ = event.getAll().iterator();
while (i$.hasNext()) {
FMLMissingMappingsEvent.MissingMapping mapping
= (FMLMissingMappingsEvent.MissingMapping) i$.next();
if (mapping.type == Type.BLOCK) {
if (mapping.name.equals("PowerConverters:tile.powerconverters.conduit")) {
LogHelper.warn("REMAPPING BLOCK: " + mapping.name);
mapping.remap(ModBlocks.conduitBlock);
}
if (mapping.name.equals("PowerConverters:tile.powerconverters.rf")) {
LogHelper.warn("REMAPPING BLOCK: " + mapping.name);
mapping.remap(ModBlocks.converterBlockRedstoneFlux);
}
if (mapping.name.equals("PowerConverters:tile.powerconverters.ic2")) {
LogHelper.warn("REMAPPING BLOCK: " + mapping.name);
mapping.remap(ModBlocks.converterBlockIndustrialCraft);
}
if (mapping.name.equals("PowerConverters:tile.powerconverters.fz")) {
LogHelper.warn("REMAPPING BLOCK: " + mapping.name);
mapping.remap(ModBlocks.converterBlockFactorization);
}
if (mapping.name.equals("PowerConverters:tile.powerconverters.steam")) {
LogHelper.warn("REMAPPING BLOCK: " + mapping.name);
mapping.remap(ModBlocks.converterBlockSteam);
}
if (mapping.name.equals("PowerConverters:tile.powerconverters.common")) {
LogHelper.warn("REMAPPING BLOCK: " + mapping.name);
mapping.remap(ModBlocks.converterBlockCommon);
}
}
if (mapping.type == Type.ITEM) {
if (mapping.name.equals("PowerConverters:debugItem")) {
LogHelper.warn("REMAPPING ITEM: " + mapping.name);
mapping.remap(ModItems.debugItem);
}
if (mapping.name.equals("PowerConverters:tile.powerconverters.conduit")) {
LogHelper.warn("REMAPPING ITEM: " + mapping.name);
mapping.remap(Item.getItemFromBlock(ModBlocks.conduitBlock));
}
if (mapping.name.equals("PowerConverters:tile.powerconverters.rf")) {
LogHelper.warn("REMAPPING ITEM: " + mapping.name);
mapping.remap(
Item.getItemFromBlock(ModBlocks.converterBlockRedstoneFlux)
);
}
if (mapping.name.equals("PowerConverters:tile.powerconverters.ic2")) {
LogHelper.warn("REMAPPING ITEM: " + mapping.name);
mapping.remap(
Item.getItemFromBlock(ModBlocks.converterBlockIndustrialCraft)
);
}
if (mapping.name.equals("PowerConverters:tile.powerconverters.fz")) {
LogHelper.warn("REMAPPING ITEM: " + mapping.name);
mapping.remap(
Item.getItemFromBlock(ModBlocks.converterBlockFactorization)
);
}
if (mapping.name.equals("PowerConverters:tile.powerconverters.steam")) {
LogHelper.warn("REMAPPING ITEM: " + mapping.name);
mapping.remap(Item.getItemFromBlock(ModBlocks.converterBlockSteam));
}
if (mapping.name.equals("PowerConverters:tile.powerconverters.common")) {
LogHelper.warn("REMAPPING ITEM: " + mapping.name);
mapping.remap(Item.getItemFromBlock(ModBlocks.converterBlockCommon));
}
}
}
}
private static void checkClassLoader() {
Set transformerExceptions = (Set) ReflectionHelper.getPrivateValue(
LaunchClassLoader.class,
Launch.classLoader,
new String[] { "transformerExceptions" }
);
if (!transformerExceptions.contains("covers1624.powerconverters.")) {
LogHelper.fatal(
"PowerConverters has detected that it has been removed from the transformerExceptions list, this could cause unknown issues. I Will provide no support for PowerConverters in this state."
);
}
}
}