BloodMagic/src/main/java/WayofTime/bloodmagic/BloodMagic.java

125 lines
4.7 KiB
Java
Raw Normal View History

package WayofTime.bloodmagic;
2018-02-15 07:38:57 +00:00
import WayofTime.bloodmagic.api.BloodMagicPlugin;
import WayofTime.bloodmagic.api.IBloodMagicPlugin;
import WayofTime.bloodmagic.core.registry.OrbRegistry;
import WayofTime.bloodmagic.ritual.RitualManager;
2017-08-16 04:30:48 +00:00
import WayofTime.bloodmagic.client.gui.GuiHandler;
2017-01-02 08:10:28 +00:00
import WayofTime.bloodmagic.command.CommandBloodMagic;
2017-08-16 23:39:57 +00:00
import WayofTime.bloodmagic.core.RegistrarBloodMagic;
2017-08-16 04:30:48 +00:00
import WayofTime.bloodmagic.core.RegistrarBloodMagicItems;
import WayofTime.bloodmagic.meteor.MeteorConfigHandler;
2017-08-16 04:30:48 +00:00
import WayofTime.bloodmagic.network.BloodMagicPacketHandler;
import WayofTime.bloodmagic.proxy.CommonProxy;
import WayofTime.bloodmagic.registry.*;
import WayofTime.bloodmagic.structures.ModDungeons;
import WayofTime.bloodmagic.util.PluginUtil;
2017-08-16 04:30:48 +00:00
import WayofTime.bloodmagic.util.handler.IMCHandler;
import com.google.common.collect.Lists;
2016-08-20 21:16:07 +00:00
import net.minecraft.creativetab.CreativeTabs;
2016-12-13 03:56:36 +00:00
import net.minecraft.item.ItemStack;
2016-08-20 21:16:07 +00:00
import net.minecraft.launchwrapper.Launch;
import net.minecraftforge.common.config.Configuration;
2016-08-20 21:16:07 +00:00
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fml.common.Loader;
2016-08-20 21:16:07 +00:00
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.*;
2016-08-20 21:16:07 +00:00
import net.minecraftforge.fml.common.network.NetworkRegistry;
import org.apache.commons.lang3.tuple.Pair;
2017-08-16 04:30:48 +00:00
import java.io.File;
import java.util.List;
@Mod(modid = BloodMagic.MODID, name = BloodMagic.NAME, version = BloodMagic.VERSION, dependencies = BloodMagic.DEPEND, guiFactory = "WayofTime.bloodmagic.client.gui.GuiBloodMagicConfig$Factory")
2017-08-16 04:30:48 +00:00
public class BloodMagic {
public static final String MODID = "bloodmagic";
public static final String NAME = "Blood Magic: Alchemical Wizardry";
public static final String VERSION = "@VERSION@";
public static final String DEPEND = "required-after:guideapi;";
public static final boolean IS_DEV = (Boolean) Launch.blackboard.get("fml.deobfuscatedEnvironment");
public static final List<Pair<IBloodMagicPlugin, BloodMagicPlugin>> PLUGINS = Lists.newArrayList();
public static final RitualManager RITUAL_MANAGER = new RitualManager(new Configuration(new File(Loader.instance().getConfigDir(), MODID + "/" + "rituals.cfg")));
2017-08-16 04:30:48 +00:00
public static final CreativeTabs TAB_BM = new CreativeTabs(MODID + ".creativeTab") {
2014-10-13 20:33:20 +00:00
@Override
2017-08-16 04:30:48 +00:00
public ItemStack getTabIconItem() {
2017-08-16 23:39:57 +00:00
return OrbRegistry.getOrbStack(RegistrarBloodMagic.ORB_WEAK);
2014-10-13 20:33:20 +00:00
}
};
2017-08-16 04:30:48 +00:00
public static CreativeTabs TAB_TOMES = new CreativeTabs(MODID + ".creativeTabTome") {
@Override
2017-08-16 04:30:48 +00:00
public ItemStack getTabIconItem() {
return new ItemStack(RegistrarBloodMagicItems.UPGRADE_TOME);
}
@Override
2017-08-16 04:30:48 +00:00
public boolean hasSearchBar() {
return true;
}
2017-08-16 04:24:59 +00:00
}.setNoTitle().setBackgroundImageName("item_search.png");
2016-06-05 19:31:35 +00:00
@SidedProxy(serverSide = "WayofTime.bloodmagic.proxy.CommonProxy", clientSide = "WayofTime.bloodmagic.proxy.ClientProxy")
public static CommonProxy proxy;
@Mod.Instance(BloodMagic.MODID)
public static BloodMagic instance;
2017-08-16 04:30:48 +00:00
static {
FluidRegistry.enableUniversalBucket();
}
private File configDir;
@Mod.EventHandler
2017-08-16 04:30:48 +00:00
public void preInit(FMLPreInitializationEvent event) {
configDir = new File(event.getModConfigurationDirectory(), "bloodmagic");
PLUGINS.addAll(PluginUtil.gatherPlugins(event.getAsmData()));
PluginUtil.injectAPIInstances(PluginUtil.gatherInjections(event.getAsmData()));
ModTranquilityHandlers.init();
2016-08-20 21:16:07 +00:00
ModDungeons.init();
RITUAL_MANAGER.discover(event.getAsmData());
2015-10-30 05:22:08 +00:00
proxy.preInit();
}
@Mod.EventHandler
2017-08-16 04:30:48 +00:00
public void init(FMLInitializationEvent event) {
2015-11-28 01:15:19 +00:00
BloodMagicPacketHandler.init();
PluginUtil.handlePluginStep(PluginUtil.RegistrationStep.PLUGIN_REGISTER);
2015-10-30 23:54:59 +00:00
2015-11-07 16:51:41 +00:00
ModRecipes.init();
ModRituals.initHarvestHandlers();
ModRituals.initCuttingFluids();
MeteorConfigHandler.init(new File(configDir, "meteors"));
ModArmourTrackers.init();
2016-01-01 17:08:17 +00:00
NetworkRegistry.INSTANCE.registerGuiHandler(BloodMagic.instance, new GuiHandler());
ModCorruptionBlocks.init();
proxy.init();
}
@Mod.EventHandler
2017-08-16 04:30:48 +00:00
public void postInit(FMLPostInitializationEvent event) {
2015-12-29 00:09:51 +00:00
ModRecipes.addCompressionHandlers();
proxy.postInit();
2014-12-14 00:17:38 +00:00
}
2016-01-30 22:58:37 +00:00
@Mod.EventHandler
2017-08-16 04:30:48 +00:00
public void modMapping(FMLModIdMappingEvent event) {
}
@Mod.EventHandler
2017-08-16 04:30:48 +00:00
public void serverStarting(FMLServerStartingEvent event) {
event.registerServerCommand(new CommandBloodMagic());
}
2016-01-30 22:58:37 +00:00
@Mod.EventHandler
2017-08-16 04:30:48 +00:00
public void onIMCRecieved(FMLInterModComms.IMCEvent event) {
2016-02-15 23:01:03 +00:00
IMCHandler.handleIMC(event);
2016-01-30 22:58:37 +00:00
}
}