Files
TinkersConstruct/src/main/java/tconstruct/TConstruct.java
T

247 lines
9.4 KiB
Java
Raw Normal View History

package tconstruct;
2014-11-11 17:01:15 -05:00
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;
2014-09-22 16:02:16 +02:00
import cpw.mods.fml.common.event.*;
2014-11-11 17:01:15 -05:00
import cpw.mods.fml.common.network.NetworkCheckHandler;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.VillagerRegistry;
import cpw.mods.fml.relauncher.Side;
2014-08-05 22:09:57 -04:00
import mantle.pulsar.config.ForgeCFG;
import mantle.pulsar.control.PulseManager;
2014-09-09 18:30:15 +10:00
import net.minecraft.world.gen.structure.MapGenStructureIO;
import net.minecraftforge.common.MinecraftForge;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import tconstruct.achievements.AchievementEvents;
import tconstruct.achievements.TAchievements;
2014-08-20 14:53:02 -05:00
import tconstruct.api.TConstructAPI;
2014-06-30 14:57:06 -08:00
import tconstruct.armor.TinkerArmor;
import tconstruct.armor.player.TPlayerHandler;
import tconstruct.armor.player.TPlayerStats;
2014-02-05 10:28:54 -05:00
import tconstruct.common.TProxyCommon;
import tconstruct.library.TConstructCreativeTab;
import tconstruct.library.TConstructRegistry;
import tconstruct.library.crafting.Detailing;
import tconstruct.library.crafting.LiquidCasting;
2014-06-30 14:57:06 -08:00
import tconstruct.mechworks.TinkerMechworks;
2014-06-04 21:44:48 -08:00
import tconstruct.mechworks.landmine.behavior.Behavior;
import tconstruct.mechworks.landmine.behavior.stackCombo.SpecialStackHandler;
import tconstruct.plugins.fmp.TinkerFMP;
2014-08-05 22:09:57 -04:00
import tconstruct.plugins.ic2.TinkerIC2;
import tconstruct.plugins.imc.TinkerAE2;
import tconstruct.plugins.imc.TinkerBuildCraft;
import tconstruct.plugins.imc.TinkerMystcraft;
import tconstruct.plugins.TinkerThaumcraft;
2014-08-05 22:09:57 -04:00
import tconstruct.plugins.mfr.TinkerMFR;
import tconstruct.plugins.te4.TinkerTE4;
import tconstruct.plugins.waila.TinkerWaila;
2014-06-30 14:57:06 -08:00
import tconstruct.smeltery.TinkerSmeltery;
import tconstruct.tools.TinkerTools;
2014-02-05 10:28:54 -05:00
import tconstruct.util.EnvironmentChecks;
2014-09-22 16:02:16 +02:00
import tconstruct.util.IMCHandler;
import tconstruct.util.config.DimensionBlacklist;
import tconstruct.util.config.PHConstruct;
2014-07-21 12:52:39 -08:00
import tconstruct.util.network.PacketPipeline;
2014-10-05 20:14:56 +02:00
import tconstruct.weaponry.TinkerWeaponry;
2014-06-04 21:44:48 -08:00
import tconstruct.world.TinkerWorld;
import tconstruct.world.gen.SlimeIslandGen;
2014-11-11 17:01:15 -05:00
import tconstruct.world.village.*;
import java.util.Map;
import java.util.Random;
2014-02-16 14:23:50 -05:00
/**
* TConstruct, the tool mod. Craft your tools with style, then modify until the
* original is gone!
*
* @author mDiyo
*/
@Mod(modid = "TConstruct", name = "TConstruct", version = "${version}",
2014-12-18 17:19:41 +01:00
dependencies = "required-after:Forge@[10.13.1.1217,);required-after:Mantle@[1.7.10-0.3.2,);after:MineFactoryReloaded;after:NotEnoughItems;after:Waila;after:ThermalExpansion;after:ThermalFoundation")
public class TConstruct
{
2014-08-16 02:17:52 -08:00
public static final String modVersion = "${version}";
/** The value of one ingot in millibuckets */
public static final int ingotLiquidValue = 144;
2013-11-04 00:33:39 +01:00
public static final int oreLiquidValue = ingotLiquidValue * 2;
public static final int blockLiquidValue = ingotLiquidValue * 9;
public static final int chunkLiquidValue = ingotLiquidValue / 2;
public static final int nuggetLiquidValue = ingotLiquidValue / 9;
public static final int stoneLiquidValue = ingotLiquidValue/8;
2013-11-04 00:33:39 +01:00
public static final int liquidUpdateAmount = 6;
public static final String modID = "TConstruct";
public static final Logger logger = LogManager.getLogger(modID);
2014-06-30 14:57:06 -08:00
public static final PacketPipeline packetPipeline = new PacketPipeline();
public static Random random = new Random();
2014-10-23 14:53:14 +10:30
/* Instance of this mod, used for grabbing prototype fields */
@Instance(modID)
public static TConstruct instance;
2014-06-30 14:57:06 -08:00
/* Proxies for sides, used for graphics processing and client controls */
@SidedProxy(clientSide = "tconstruct.client.TProxyClient", serverSide = "tconstruct.common.TProxyCommon")
public static TProxyCommon proxy;
2014-06-30 14:57:06 -08:00
/* Loads modules in a way that doesn't clutter the @Mod list */
public static PulseManager pulsar = new PulseManager(modID, new ForgeCFG("TinkersModules", "Modules: Disabling these will disable a chunk of the mod"));
2014-02-05 09:11:06 -05:00
public TConstruct()
{
if (Loader.isModLoaded("Natura"))
{
logger.info("Natura, what are we going to do tomorrow night?");
LogManager.getLogger("Natura").info("TConstruct, we're going to take over the world!");
}
else
{
logger.info("Preparing to take over the world");
}
2013-10-22 20:09:21 +01:00
EnvironmentChecks.verifyEnvironmentSanity();
}
//Force the client and server to have or not have this mod
@NetworkCheckHandler()
public boolean matchModVersions (Map<String, String> remoteVersions, Side side)
{
return remoteVersions.containsKey("TConstruct") && modVersion.equals(remoteVersions.get("TConstruct"));
}
@EventHandler
public void preInit (FMLPreInitializationEvent event)
{
2014-06-30 14:57:06 -08:00
PHConstruct.initProps(event.getModConfigurationDirectory());
pulsar.registerPulse(new TinkerWorld());
pulsar.registerPulse(new TinkerTools());
pulsar.registerPulse(new TinkerSmeltery());
pulsar.registerPulse(new TinkerMechworks());
pulsar.registerPulse(new TinkerArmor());
2014-10-05 20:14:56 +02:00
pulsar.registerPulse(new TinkerWeaponry());
pulsar.registerPulse(new TinkerThaumcraft());
2014-08-05 22:09:57 -04:00
pulsar.registerPulse(new TinkerWaila());
pulsar.registerPulse(new TinkerBuildCraft());
pulsar.registerPulse(new TinkerAE2());
pulsar.registerPulse(new TinkerIC2());
pulsar.registerPulse(new TinkerMystcraft());
pulsar.registerPulse(new TinkerMFR());
pulsar.registerPulse(new TinkerTE4());
pulsar.registerPulse(new TinkerFMP());
/*pulsar.registerPulse(new TinkerPrayers());
pulsar.registerPulse(new TinkerCropify());*/
2014-02-05 09:11:06 -05:00
TConstructRegistry.materialTab = new TConstructCreativeTab("TConstructMaterials");
TConstructRegistry.toolTab = new TConstructCreativeTab("TConstructTools");
TConstructRegistry.partTab = new TConstructCreativeTab("TConstructParts");
TConstructRegistry.blockTab = new TConstructCreativeTab("TConstructBlocks");
TConstructRegistry.equipableTab = new TConstructCreativeTab("TConstructEquipables");
TConstructRegistry.weaponryTab = new TConstructCreativeTab("TConstructWeaponry");
tableCasting = new LiquidCasting();
basinCasting = new LiquidCasting();
chiselDetailing = new Detailing();
2014-06-04 21:44:48 -08:00
//GameRegistry.registerFuelHandler(content);
playerTracker = new TPlayerHandler();
2014-02-16 14:23:50 -05:00
// GameRegistry.registerPlayerTracker(playerTracker);
FMLCommonHandler.instance().bus().register(playerTracker);
MinecraftForge.EVENT_BUS.register(playerTracker);
2014-06-30 14:57:06 -08:00
NetworkRegistry.INSTANCE.registerGuiHandler(TConstruct.instance, proxy);
2014-02-05 09:11:06 -05:00
2014-06-30 14:57:06 -08:00
pulsar.preInit(event);
2014-09-09 18:30:15 +10:00
if (PHConstruct.achievementsEnabled)
{
TAchievements.addDefaultAchievements();
}
if (PHConstruct.addToVillages)
{
// adds to the villager spawner egg
VillagerRegistry.instance().registerVillagerId(78943);
// moved down, not needed if 'addToVillages' is false
VillagerRegistry.instance().registerVillageTradeHandler(78943, new TVillageTrades());
VillagerRegistry.instance().registerVillageCreationHandler(new VillageToolStationHandler());
VillagerRegistry.instance().registerVillageCreationHandler(new VillageSmelteryHandler());
MapGenStructureIO.func_143031_a(ComponentToolWorkshop.class, "TConstruct:ToolWorkshopStructure");
MapGenStructureIO.func_143031_a(ComponentSmeltery.class, "TConstruct:SmelteryStructure");
}
2014-09-09 18:30:15 +10:00
TConstructAPI.PROP_NAME = TPlayerStats.PROP_NAME;
}
@EventHandler
public void init (FMLInitializationEvent event)
{
2014-02-05 09:11:06 -05:00
packetPipeline.initalise();
2013-08-31 05:13:31 -07:00
if (event.getSide() == Side.CLIENT)
{
2014-06-25 21:01:20 -04:00
//MinecraftForge.EVENT_BUS.register(new EventCloakRender());
2013-08-31 05:13:31 -07:00
}
2013-11-30 17:06:50 +00:00
DimensionBlacklist.getBadBimensions();
2014-06-04 21:44:48 -08:00
GameRegistry.registerWorldGenerator(new SlimeIslandGen(TinkerWorld.slimePool, 2), 2);
2013-11-16 16:34:38 +00:00
2014-06-30 14:57:06 -08:00
pulsar.init(event);
}
@EventHandler
2014-06-30 14:57:06 -08:00
public void postInit (FMLPostInitializationEvent event)
{
2014-01-28 20:50:29 +11:00
packetPipeline.postInitialise();
2013-08-31 05:13:31 -07:00
Behavior.registerBuiltInBehaviors();
SpecialStackHandler.registerBuiltInStackHandlers();
2013-11-16 16:34:38 +00:00
2014-06-30 14:57:06 -08:00
proxy.initialize();
pulsar.postInit(event);
2014-09-09 18:30:15 +10:00
if (PHConstruct.achievementsEnabled)
{
TAchievements.registerAchievementPane();
MinecraftForge.EVENT_BUS.register(new AchievementEvents());
}
}
2014-09-22 16:02:16 +02:00
/* IMC Mod Support */
@EventHandler
public void handleIMC(FMLInterModComms.IMCEvent e)
{
IMCHandler.processIMC(e.getMessages());
}
@EventHandler
public void loadComplete(FMLLoadCompleteEvent evt)
{
IMCHandler.processIMC(FMLInterModComms.fetchRuntimeMessages(this));
}
public static LiquidCasting getTableCasting ()
{
return tableCasting;
}
public static LiquidCasting getBasinCasting ()
{
return basinCasting;
}
public static Detailing getChiselDetailing ()
{
return chiselDetailing;
}
public static TPlayerHandler playerTracker;
public static LiquidCasting tableCasting;
public static LiquidCasting basinCasting;
public static Detailing chiselDetailing;
}