127 lines
4.4 KiB
Java
127 lines
4.4 KiB
Java
package resonantinduction.core;
|
|
|
|
import java.util.logging.Logger;
|
|
|
|
import net.minecraft.block.Block;
|
|
import net.minecraftforge.common.MinecraftForge;
|
|
import net.minecraftforge.fluids.Fluid;
|
|
import net.minecraftforge.fluids.FluidRegistry;
|
|
|
|
import org.modstats.ModstatInfo;
|
|
import org.modstats.Modstats;
|
|
|
|
import resonantinduction.core.handler.FluidEventHandler;
|
|
import resonantinduction.core.handler.LinkEventHandler;
|
|
import resonantinduction.core.prefab.part.PacketMultiPart;
|
|
import resonantinduction.core.resource.ResourceGenerator;
|
|
import resonantinduction.core.resource.fluid.BlockFluidMixture;
|
|
import resonantinduction.core.resource.fluid.TileFluidMixture;
|
|
import resonantinduction.core.resource.item.ItemDust;
|
|
import calclavia.lib.multiblock.link.BlockMulti;
|
|
import calclavia.lib.multiblock.link.TileMultiBlockPart;
|
|
import calclavia.lib.network.PacketHandler;
|
|
import calclavia.lib.network.PacketTile;
|
|
import calclavia.lib.utility.LanguageUtility;
|
|
import cpw.mods.fml.common.FMLLog;
|
|
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.ModMetadata;
|
|
import cpw.mods.fml.common.SidedProxy;
|
|
import cpw.mods.fml.common.event.FMLInitializationEvent;
|
|
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
|
|
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
|
import cpw.mods.fml.common.network.NetworkMod;
|
|
import cpw.mods.fml.common.network.NetworkRegistry;
|
|
import cpw.mods.fml.common.registry.GameRegistry;
|
|
|
|
/**
|
|
* The core module of Resonant Induction
|
|
*
|
|
* @author Calclavia
|
|
*/
|
|
@Mod(modid = ResonantInduction.ID, name = ResonantInduction.NAME, version = Reference.VERSION, dependencies = "required-after:CalclaviaCore;before:IC2")
|
|
@NetworkMod(channels = Reference.CHANNEL, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketHandler.class)
|
|
@ModstatInfo(prefix = "resonantin")
|
|
public class ResonantInduction
|
|
{
|
|
/** Mod Information */
|
|
public static final String ID = "ResonantInduction|Core";
|
|
public static final String NAME = Reference.NAME + " Core";
|
|
|
|
@Instance(ID)
|
|
public static ResonantInduction INSTANCE;
|
|
|
|
@SidedProxy(clientSide = "resonantinduction.core.ClientProxy", serverSide = "resonantinduction.core.CommonProxy")
|
|
public static CommonProxy proxy;
|
|
|
|
@Mod.Metadata(ID)
|
|
public static ModMetadata metadata;
|
|
|
|
public static final Logger LOGGER = Logger.getLogger(Reference.NAME);
|
|
|
|
/** Packets */
|
|
public static final PacketTile PACKET_TILE = new PacketTile(Reference.CHANNEL);
|
|
public static final PacketMultiPart PACKET_MULTIPART = new PacketMultiPart(Reference.CHANNEL);
|
|
|
|
/**
|
|
* Blocks and Items
|
|
*/
|
|
public static BlockMulti blockMulti;
|
|
|
|
public static ItemDust itemDust;
|
|
public static Block blockFluidMixture;
|
|
|
|
public static Fluid MIXTURE = null;
|
|
|
|
@EventHandler
|
|
public void preInit(FMLPreInitializationEvent evt)
|
|
{
|
|
ResonantInduction.LOGGER.setParent(FMLLog.getLogger());
|
|
NetworkRegistry.instance().registerGuiHandler(this, proxy);
|
|
Modstats.instance().getReporter().registerMod(this);
|
|
Settings.load();
|
|
|
|
// Register Forge Events
|
|
MinecraftForge.EVENT_BUS.register(ResourceGenerator.INSTANCE);
|
|
MinecraftForge.EVENT_BUS.register(new LinkEventHandler());
|
|
MinecraftForge.EVENT_BUS.register(new FluidEventHandler());
|
|
|
|
Settings.CONFIGURATION.load();
|
|
|
|
blockMulti = new BlockMulti(Settings.getNextBlockID()).setPacketType(PACKET_TILE);
|
|
|
|
MIXTURE = new Fluid("mixture");
|
|
FluidRegistry.registerFluid(MIXTURE);
|
|
blockFluidMixture = new BlockFluidMixture(Settings.getNextBlockID(), MIXTURE);
|
|
|
|
// Items
|
|
itemDust = new ItemDust(Settings.getNextItemID());
|
|
GameRegistry.registerItem(itemDust, itemDust.getUnlocalizedName());
|
|
|
|
GameRegistry.registerTileEntity(TileMultiBlockPart.class, "TileEntityMultiBlockPart");
|
|
GameRegistry.registerBlock(blockMulti, "blockMulti");
|
|
|
|
GameRegistry.registerBlock(blockFluidMixture, blockFluidMixture.getUnlocalizedName());
|
|
GameRegistry.registerTileEntity(TileFluidMixture.class, blockFluidMixture.getUnlocalizedName());
|
|
|
|
Settings.CONFIGURATION.save();
|
|
}
|
|
|
|
@EventHandler
|
|
public void init(FMLInitializationEvent evt)
|
|
{
|
|
// Load Languages
|
|
ResonantInduction.LOGGER.fine("Languages Loaded:" + LanguageUtility.loadLanguages(Reference.LANGUAGE_DIRECTORY, Reference.LANGUAGES));
|
|
// Set Mod Metadata
|
|
Settings.setModMetadata(metadata, ID, NAME);
|
|
}
|
|
|
|
@EventHandler
|
|
public void postInit(FMLPostInitializationEvent evt)
|
|
{
|
|
// Generate Dusts
|
|
ResourceGenerator.generateDusts();
|
|
}
|
|
|
|
}
|