ModularPowersuits/src/main/java/net/machinemuse/powersuits/common/proxy/CommonProxy.java

85 lines
3.5 KiB
Java

package net.machinemuse.powersuits.common.proxy;
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.NetworkRegistry;
import cpw.mods.fml.common.registry.EntityRegistry;
import net.machinemuse.powersuits.common.Config;
import net.machinemuse.powersuits.common.MPSGuiHandler;
import net.machinemuse.powersuits.common.ModCompatibility;
import net.machinemuse.powersuits.common.ModularPowersuits;
import net.machinemuse.powersuits.entity.EntityLuxCapacitor;
import net.machinemuse.powersuits.entity.EntityPlasmaBolt;
import net.machinemuse.powersuits.entity.EntitySpinningBlade;
import net.machinemuse.powersuits.event.HarvestEventHandler;
import net.machinemuse.powersuits.event.MovementManager;
import net.machinemuse.powersuits.network.packets.MPSPacketList;
import net.machinemuse.powersuits.powermodule.tool.TerminalHandler;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.config.Configuration;
import java.io.File;
/**
* Common side of the proxy. Provides functions which
* the ClientProxy and ServerProxy will override if the behaviour is different for client and
* server, and keeps some common behaviour.
*
* @author MachineMuse
*
* Ported to Java by lehjr on 11/14/16.
*/
public abstract class CommonProxy {
public void preInit(FMLPreInitializationEvent event) {
File newConfig = new File(event.getModConfigurationDirectory() + "/machinemuse/powersuits.cfg");
Config.init(new Configuration(newConfig));
Config.setConfigFolderBase(event.getModConfigurationDirectory());
registerEvents();
}
public void init(FMLInitializationEvent event) {
Config.loadPowerModules();
Config.getMaximumArmorPerPiece();
Config.getMaximumFlyingSpeedmps();
Config.useMouseWheel();
Config.useGraphicalMeters();
Config.getSalvageChance();
Config.baseMaxHeat();
Config.allowConflictingKeybinds();
Config.fontAntiAliasing();
Config.useCustomFonts();
Config.glowMultiplier();
Config.useShaders();
Config.getWeightCapacity();
Config.keybindHUDon();
Config.keybindHUDx();
Config.toggleModuleSpam();
EntityRegistry.registerModEntity(EntityPlasmaBolt.class, "entityPlasmaBolt", 2477, ModularPowersuits.getInstance(), 64, 20, true);
EntityRegistry.registerModEntity(EntitySpinningBlade.class, "entitySpinningBlade", 2478, ModularPowersuits.getInstance(), 64, 20, true);
EntityRegistry.registerModEntity(EntityLuxCapacitor.class, "entityLuxCapacitor", 2479, ModularPowersuits.getInstance(), 64, 20, true);
registerHandlers();
registerRenderers();
MPSPacketList.registerPackets();
NetworkRegistry.INSTANCE.registerGuiHandler(ModularPowersuits.getInstance(), MPSGuiHandler.getInstance());
TerminalHandler.registerHandler();
}
public void postInit(FMLPostInitializationEvent event) {
ModCompatibility.registerModSpecificModules();
Config.extractRecipes();
Config.addCustomInstallCosts();
Config.getConfig().save();
}
public void registerEvents() {
MinecraftForge.EVENT_BUS.register(new HarvestEventHandler());
MinecraftForge.EVENT_BUS.register(new MovementManager());
}
public abstract void registerHandlers();
public abstract void registerRenderers();
public abstract void sendModeChange(int dMode, String newMode);
}