equivalent-exchange-3/src/main/java/com/pahimar/ee3/EquivalentExchange3.java

200 lines
6 KiB
Java
Raw Normal View History

2013-09-11 14:20:15 +02:00
package com.pahimar.ee3;
2023-01-03 17:47:36 +01:00
import java.io.File;
import com.pahimar.ee3.api.exchange.IEnergyValueRegistry;
import com.pahimar.ee3.array.AlchemyArrayRegistry;
import com.pahimar.ee3.blacklist.BlacklistRegistry;
import com.pahimar.ee3.command.CommandEE;
import com.pahimar.ee3.exchange.EMCRegistry;
import com.pahimar.ee3.exchange.EnergyValueRegistry;
import com.pahimar.ee3.handler.*;
2014-07-25 03:05:04 +02:00
import com.pahimar.ee3.init.*;
import com.pahimar.ee3.knowledge.PlayerKnowledgeRegistry;
2014-04-29 03:24:31 +02:00
import com.pahimar.ee3.network.PacketHandler;
2013-12-21 23:16:55 +01:00
import com.pahimar.ee3.proxy.IProxy;
import com.pahimar.ee3.recipe.AludelRecipeManager;
import com.pahimar.ee3.recipe.RecipeRegistry;
import com.pahimar.ee3.reference.Files;
import com.pahimar.ee3.reference.Messages;
import com.pahimar.ee3.reference.Reference;
import com.pahimar.ee3.test.EETestSuite;
import com.pahimar.ee3.test.EnergyValueTestSuite;
import com.pahimar.ee3.test.VanillaTestSuite;
import com.pahimar.ee3.util.FluidHelper;
import com.pahimar.ee3.util.LogHelper;
import com.pahimar.ee3.util.SerializationHelper;
import com.pahimar.ee3.util.TileEntityDataHelper;
import cpw.mods.fml.common.Loader;
2013-09-11 14:20:15 +02:00
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.*;
2013-09-11 14:20:15 +02:00
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import moze_intel.projecte.api.ProjectEAPI;
import moze_intel.projecte.api.proxy.IEMCProxy;
2023-01-03 17:47:36 +01:00
@Mod(
modid = Reference.MOD_ID,
name = Reference.MOD_NAME,
certificateFingerprint = Reference.FINGERPRINT,
version = Reference.MOD_VERSION,
dependencies = Reference.DEPENDENCIES,
guiFactory = Reference.GUI_FACTORY_CLASS
)
public class EquivalentExchange3 {
@Instance(Reference.MOD_ID)
2013-09-11 14:20:15 +02:00
public static EquivalentExchange3 instance;
2023-01-03 17:47:36 +01:00
@SidedProxy(
clientSide = Reference.CLIENT_PROXY_CLASS,
serverSide = Reference.SERVER_PROXY_CLASS
)
2013-12-21 23:16:55 +01:00
public static IProxy proxy;
2013-09-11 14:20:15 +02:00
public static IEnergyValueRegistry REGISTRY;
2013-09-11 14:20:15 +02:00
@EventHandler
public void invalidFingerprint(FMLFingerprintViolationEvent event) {
if (Reference.FINGERPRINT.equals("@FINGERPRINT@")) {
LogHelper.info(Messages.NO_FINGERPRINT_MESSAGE);
2023-01-03 17:47:36 +01:00
} else {
LogHelper.warn(Messages.INVALID_FINGERPRINT_MESSAGE);
}
2013-09-11 14:20:15 +02:00
}
@EventHandler
2016-05-19 01:51:55 +02:00
public void onServerStarting(FMLServerStartingEvent event) {
Files.updateFileReferences();
2016-05-19 01:51:55 +02:00
SerializationHelper.initModDataDirectories();
event.registerServerCommand(new CommandEE());
}
2013-09-11 14:20:15 +02:00
@EventHandler
2016-05-19 01:51:55 +02:00
public void preInit(FMLPreInitializationEvent event) {
if (Loader.isModLoaded("ProjectE")) {
IEMCProxy proxy = ProjectEAPI.getEMCProxy();
REGISTRY = new EMCRegistry(proxy);
} else {
REGISTRY = EnergyValueRegistry.INSTANCE;
}
ConfigurationHandler.init(event.getSuggestedConfigurationFile());
Files.init(event);
2014-05-23 00:35:31 +02:00
PacketHandler.init();
proxy.registerKeybindings();
2013-09-11 14:20:15 +02:00
ModItems.init();
2014-04-02 04:47:08 +02:00
ModBlocks.init();
FluidHelper.registerFluids();
EnergyValues.init();
2014-07-25 03:05:04 +02:00
AlchemyArrays.registerAlchemyArrays();
2013-09-11 14:20:15 +02:00
}
@EventHandler
2016-05-19 01:51:55 +02:00
public void init(FMLInitializationEvent event) {
2013-09-11 14:20:15 +02:00
// Register the GUI Handler
2014-03-28 02:34:47 +01:00
NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler());
2013-09-11 14:20:15 +02:00
// Initialize the blacklist registry
BlacklistRegistry.INSTANCE.load();
// Initialize mod tile entities
2014-10-16 22:26:11 +02:00
TileEntities.init();
// Initialize custom rendering and pre-load textures (Client only)
proxy.initRenderingAndTextures();
// Register the Items Event Handler
2014-05-23 00:35:31 +02:00
proxy.registerEventHandlers();
2013-09-11 14:20:15 +02:00
CraftingHandler.init();
Recipes.init();
RecipesTransmutationStone.init();
// Register our fuels
GameRegistry.registerFuelHandler(new FuelHandler());
2014-10-06 01:29:54 +02:00
// Register the Waila data provider
2023-01-03 17:47:36 +01:00
FMLInterModComms.sendMessage(
"Waila",
"register",
"com.pahimar.ee3.waila.WailaDataProvider.callbackRegister"
);
2013-09-11 14:20:15 +02:00
}
@EventHandler
public void postInit(FMLPostInitializationEvent event) {
Abilities.init();
// Initialize our test files
new VanillaTestSuite().build().save();
new EETestSuite().build().save();
2013-09-11 14:20:15 +02:00
}
@EventHandler
public void onServerStopping(FMLServerStoppingEvent event) {
WorldEventHandler.hasInitilialized = false;
EnergyValueRegistry.INSTANCE.save();
PlayerKnowledgeRegistry.INSTANCE.saveAll();
BlacklistRegistry.INSTANCE.saveAll();
}
@EventHandler
2016-05-19 01:51:55 +02:00
public void handleMissingMappingEvent(FMLMissingMappingsEvent event) {
for (FMLMissingMappingsEvent.MissingMapping mapping : event.get()) {
if (mapping.type == GameRegistry.Type.ITEM) {
if (mapping.name.equals("EE3:alchemicalTome")) {
mapping.remap(ModItems.alchenomicon);
}
}
}
}
2023-01-03 17:47:36 +01:00
public IEnergyValueRegistry getEnergyValueRegistry() {
return REGISTRY;
}
2023-01-03 17:47:36 +01:00
public RecipeRegistry getRecipeRegistry() {
return RecipeRegistry.INSTANCE;
}
2023-01-03 17:47:36 +01:00
public AludelRecipeManager getAludelRecipeManager() {
return AludelRecipeManager.getInstance();
}
public BlacklistRegistry getBlacklistRegistry() {
return BlacklistRegistry.INSTANCE;
}
2023-01-03 17:47:36 +01:00
public AlchemyArrayRegistry getAlchemyArrayRegistry() {
return AlchemyArrayRegistry.getInstance();
}
public PlayerKnowledgeRegistry getPlayerKnowledgeRegistry() {
return PlayerKnowledgeRegistry.INSTANCE;
}
2023-01-03 17:47:36 +01:00
public TileEntityDataHelper getTileEntityDataHelper() {
return TileEntityDataHelper.getInstance();
}
2023-01-03 17:47:36 +01:00
public void runEnergyValueTestSuite(File file) {
runEnergyValueTestSuite(file, false);
}
public void runEnergyValueTestSuite(File file, boolean strict) {
new EnergyValueTestSuite(file).run(strict);
}
2013-09-11 14:20:15 +02:00
}