/**
* Copyright (c) Lambda Innovation Team, 2013
* 版权许可:LambdaCraft 制作小组, 2013.
* http://lambdacraft.cn/
*
* The mod is open-source. It is distributed under the terms of the
* Lambda Innovation Open Source License. It grants rights to read, modify, compile
* or run the code. It does *NOT* grant the right to redistribute this software
* or its modifications in any form, binary or source, except if expressively
* granted by the copyright holder.
*
* 本Mod是完全开源的,你允许参考、使用、引用其中的任何代码段,但不允许将其用于商业用途,在引用的时候,必须注明原作者。
*/
package cn.dawn47;
import net.minecraft.command.CommandHandler;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.config.Configuration;
import org.apache.logging.log4j.Logger;
import cn.annoreg.core.RegistrationManager;
import cn.annoreg.core.RegistrationMod;
import cn.annoreg.mc.RegMessageHandler;
import cn.dawn47.core.events.DWEventListener;
import cn.dawn47.core.misc.DWCreativeTab;
import cn.dawn47.core.proxy.DWGeneralProps;
import cn.liutils.ripple.ScriptProgram;
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.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import cpw.mods.fml.common.registry.EntityRegistry;
/**
* @author WeAthFolD
*
*/
@Mod(modid = "dawn47", name = "Dawn47", version = Dawn47.VERSION)
@RegistrationMod(pkg = "cn.dawn47.", res = "dawn47", prefix = "dw_")
public class Dawn47 {
public static final String VERSION = "1.0beta1";
@Instance("dawn47")
public static Dawn47 INSTANCE;
public static CreativeTabs cct = new DWCreativeTab("dawn47");
/**
* 日志
*/
public static Logger log = FMLLog.getLogger();
public static Configuration config;
@RegMessageHandler.WrapperInstance
public static SimpleNetworkWrapper netHandler;
public static ScriptProgram script;
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
config = new Configuration(event.getSuggestedConfigurationFile());
log.info("Starting Dawn47 " + VERSION);
log.info("Copyright (c) Lambda Innovation & The Ancient Stone, 2013-2016");
log.info("http://www.li-dev.cn/");
script = new ScriptProgram();
String scripts[] = { "generic" };
for(String s : scripts) {
script.loadScript(new ResourceLocation("dawn47:scripts/" + s + ".r"));
}
netHandler = NetworkRegistry.INSTANCE.newSimpleChannel(DWGeneralProps.NET_CHANNEL);
MinecraftForge.EVENT_BUS.register(new DWEventListener());
RegistrationManager.INSTANCE.registerAll(this, "PreInit");
}
/**
* 加载(方块、物品、网络处理、其他)
*
* @param Init
*/
@EventHandler
public void init(FMLInitializationEvent Init) {
RegistrationManager.INSTANCE.registerAll(this, "Init");
}
private int nextEntityID = -1;
protected void registerEntity(Class<? extends Entity> entClass, String entName) {
EntityRegistry.registerModEntity(entClass, entName, ++nextEntityID, this, 48, 3, true);
}
protected void registerEntity(Class<? extends Entity> entClass, String entName, int trackingRange, int updateFreq, boolean velUpdate) {
EntityRegistry.registerModEntity(entClass, entName, ++nextEntityID, this, trackingRange, updateFreq, velUpdate);
}
private static int nextId = 0;
public static int getNextNetID() {
return nextId++;
}
@EventHandler
public void postInit(FMLPostInitializationEvent Init) {
RegistrationManager.INSTANCE.registerAll(this, "PostInit");
}
@EventHandler
public void serverStarting(FMLServerStartingEvent event) {
CommandHandler commandManager = (CommandHandler) event.getServer()
.getCommandManager();
RegistrationManager.INSTANCE.registerAll(this, "StartServer");
}
}