Files
Mekanism-Community-Edition/common/mekanism/client/ClientProxy.java
T

481 lines
20 KiB
Java
Raw Normal View History

2012-11-05 14:29:04 -05:00
package mekanism.client;
2012-08-15 16:41:41 -04:00
2013-07-20 12:10:14 -04:00
import java.io.File;
2013-04-14 11:55:51 -04:00
import java.util.HashMap;
2013-04-13 10:33:37 -04:00
2013-12-11 20:24:37 -05:00
import mekanism.client.gui.GuiChemicalFormulator;
2013-12-13 07:02:13 -05:00
import mekanism.client.gui.GuiChemicalInfuser;
import mekanism.client.gui.GuiCombiner;
2013-10-30 15:22:43 -04:00
import mekanism.client.gui.GuiConfiguration;
import mekanism.client.gui.GuiCredits;
import mekanism.client.gui.GuiCrusher;
2013-12-09 20:52:49 -05:00
import mekanism.client.gui.GuiDictionary;
2013-11-19 18:16:26 -05:00
import mekanism.client.gui.GuiDigitalMiner;
import mekanism.client.gui.GuiDynamicTank;
import mekanism.client.gui.GuiElectricChest;
import mekanism.client.gui.GuiElectricPump;
import mekanism.client.gui.GuiEnergizedSmelter;
import mekanism.client.gui.GuiEnergyCube;
import mekanism.client.gui.GuiEnrichmentChamber;
import mekanism.client.gui.GuiFactory;
import mekanism.client.gui.GuiGasTank;
import mekanism.client.gui.GuiMetallurgicInfuser;
import mekanism.client.gui.GuiOsmiumCompressor;
import mekanism.client.gui.GuiPasswordEnter;
import mekanism.client.gui.GuiPasswordModify;
import mekanism.client.gui.GuiPortableTeleporter;
import mekanism.client.gui.GuiPurificationChamber;
import mekanism.client.gui.GuiRobitCrafting;
import mekanism.client.gui.GuiRobitInventory;
import mekanism.client.gui.GuiRobitMain;
import mekanism.client.gui.GuiRobitRepair;
import mekanism.client.gui.GuiRobitSmelting;
import mekanism.client.gui.GuiRotaryCondensentrator;
import mekanism.client.gui.GuiTeleporter;
2013-08-26 18:57:08 -04:00
import mekanism.client.render.MekanismRenderer;
2013-10-03 00:10:20 +01:00
import mekanism.client.render.RenderPartTransmitter;
import mekanism.client.render.RenderTickHandler;
2013-08-26 18:57:08 -04:00
import mekanism.client.render.block.BasicRenderingHandler;
import mekanism.client.render.block.MachineRenderingHandler;
import mekanism.client.render.block.TransmitterRenderingHandler;
import mekanism.client.render.entity.RenderBalloon;
2013-11-03 11:38:36 -05:00
import mekanism.client.render.entity.RenderObsidianTNTPrimed;
2013-08-26 18:57:08 -04:00
import mekanism.client.render.entity.RenderRobit;
import mekanism.client.render.item.ItemRenderingHandler;
2013-11-11 19:27:36 -05:00
import mekanism.client.render.tileentity.RenderBin;
2013-08-26 18:57:08 -04:00
import mekanism.client.render.tileentity.RenderChargepad;
import mekanism.client.render.tileentity.RenderConfigurableMachine;
2013-11-20 20:28:06 -05:00
import mekanism.client.render.tileentity.RenderDigitalMiner;
2013-08-26 18:57:08 -04:00
import mekanism.client.render.tileentity.RenderDynamicTank;
import mekanism.client.render.tileentity.RenderElectricChest;
import mekanism.client.render.tileentity.RenderElectricPump;
import mekanism.client.render.tileentity.RenderEnergyCube;
2013-11-03 11:38:36 -05:00
import mekanism.client.render.tileentity.RenderGasTank;
import mekanism.client.render.tileentity.RenderLogisticalSorter;
2013-08-26 18:57:08 -04:00
import mekanism.client.render.tileentity.RenderLogisticalTransporter;
import mekanism.client.render.tileentity.RenderMechanicalPipe;
import mekanism.client.render.tileentity.RenderMetallurgicInfuser;
2013-11-03 11:38:36 -05:00
import mekanism.client.render.tileentity.RenderObsidianTNT;
2013-08-26 18:57:08 -04:00
import mekanism.client.render.tileentity.RenderPressurizedTube;
import mekanism.client.render.tileentity.RenderRotaryCondensentrator;
2013-12-07 17:06:11 -05:00
import mekanism.client.render.tileentity.RenderTeleporter;
2013-08-26 18:57:08 -04:00
import mekanism.client.render.tileentity.RenderUniversalCable;
import mekanism.client.sound.Sound;
import mekanism.client.sound.SoundHandler;
2012-11-05 14:29:04 -05:00
import mekanism.common.CommonProxy;
import mekanism.common.EntityBalloon;
2012-11-05 14:29:04 -05:00
import mekanism.common.EntityObsidianTNT;
2013-05-19 18:43:01 -04:00
import mekanism.common.EntityRobit;
2013-04-12 21:32:43 -04:00
import mekanism.common.IElectricChest;
import mekanism.common.IInvConfiguration;
2012-11-05 14:29:04 -05:00
import mekanism.common.Mekanism;
2013-11-27 16:17:10 -05:00
import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.inventory.InventoryElectricChest;
import mekanism.common.item.ItemPortableTeleporter;
import mekanism.common.tileentity.TileEntityAdvancedElectricMachine;
import mekanism.common.tileentity.TileEntityAdvancedFactory;
2013-11-11 19:27:36 -05:00
import mekanism.common.tileentity.TileEntityBin;
import mekanism.common.tileentity.TileEntityChargepad;
2013-12-11 20:24:37 -05:00
import mekanism.common.tileentity.TileEntityChemicalFormulator;
2013-12-13 07:02:13 -05:00
import mekanism.common.tileentity.TileEntityChemicalInfuser;
import mekanism.common.tileentity.TileEntityCombiner;
import mekanism.common.tileentity.TileEntityCrusher;
import mekanism.common.tileentity.TileEntityDigitalMiner;
import mekanism.common.tileentity.TileEntityDiversionTransporter;
import mekanism.common.tileentity.TileEntityDynamicTank;
import mekanism.common.tileentity.TileEntityDynamicValve;
import mekanism.common.tileentity.TileEntityElectricChest;
import mekanism.common.tileentity.TileEntityElectricMachine;
import mekanism.common.tileentity.TileEntityElectricPump;
import mekanism.common.tileentity.TileEntityEliteFactory;
import mekanism.common.tileentity.TileEntityEnergizedSmelter;
import mekanism.common.tileentity.TileEntityEnergyCube;
import mekanism.common.tileentity.TileEntityEnrichmentChamber;
import mekanism.common.tileentity.TileEntityFactory;
import mekanism.common.tileentity.TileEntityGasTank;
import mekanism.common.tileentity.TileEntityLogisticalSorter;
import mekanism.common.tileentity.TileEntityLogisticalTransporter;
import mekanism.common.tileentity.TileEntityMechanicalPipe;
import mekanism.common.tileentity.TileEntityMetallurgicInfuser;
2013-11-03 11:38:36 -05:00
import mekanism.common.tileentity.TileEntityObsidianTNT;
import mekanism.common.tileentity.TileEntityOsmiumCompressor;
import mekanism.common.tileentity.TileEntityPressurizedTube;
import mekanism.common.tileentity.TileEntityPurificationChamber;
import mekanism.common.tileentity.TileEntityRotaryCondensentrator;
import mekanism.common.tileentity.TileEntityTeleporter;
import mekanism.common.tileentity.TileEntityUniversalCable;
2013-07-20 12:10:14 -04:00
import net.minecraft.client.Minecraft;
2012-12-20 16:53:39 -05:00
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
2013-01-20 20:15:59 -05:00
import net.minecraft.item.ItemStack;
2012-12-20 16:53:39 -05:00
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
2012-08-15 16:41:41 -04:00
import net.minecraftforge.client.MinecraftForgeClient;
2013-02-14 13:26:13 -05:00
import net.minecraftforge.common.Configuration;
2012-12-20 16:53:39 -05:00
import cpw.mods.fml.client.FMLClientHandler;
2012-12-23 14:46:11 -05:00
import cpw.mods.fml.client.registry.ClientRegistry;
2013-10-14 12:44:07 -04:00
import cpw.mods.fml.client.registry.KeyBindingRegistry;
2012-12-20 16:53:39 -05:00
import cpw.mods.fml.client.registry.RenderingRegistry;
2013-04-13 10:33:37 -04:00
import cpw.mods.fml.common.network.NetworkRegistry;
2013-12-07 17:06:11 -05:00
import cpw.mods.fml.common.registry.GameRegistry;
2012-12-20 16:53:39 -05:00
import cpw.mods.fml.common.registry.TickRegistry;
import cpw.mods.fml.relauncher.Side;
2013-04-13 10:33:37 -04:00
import cpw.mods.fml.relauncher.SideOnly;
2012-08-15 16:41:41 -04:00
/**
2012-11-05 14:29:04 -05:00
* Client proxy for the Mekanism mod.
2012-08-15 16:41:41 -04:00
* @author AidanBrady
*
*/
2013-04-13 10:33:37 -04:00
@SideOnly(Side.CLIENT)
2012-08-15 16:41:41 -04:00
public class ClientProxy extends CommonProxy
{
2013-04-28 15:23:08 -04:00
public static int MACHINE_RENDER_ID = RenderingRegistry.getNextAvailableRenderId();
2013-03-25 12:00:45 -04:00
public static int TRANSMITTER_RENDER_ID = RenderingRegistry.getNextAvailableRenderId();
2013-04-28 15:23:08 -04:00
public static int BASIC_RENDER_ID = RenderingRegistry.getNextAvailableRenderId();
2012-11-28 10:33:34 -05:00
2013-02-14 13:26:13 -05:00
@Override
public void loadConfiguration()
{
super.loadConfiguration();
Mekanism.configuration.load();
MekanismClient.enableSounds = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "EnableSounds", true).getBoolean(true);
MekanismClient.fancyUniversalCableRender = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "FancyUniversalCableRender", true).getBoolean(true);
2013-12-12 23:08:16 -05:00
MekanismClient.baseSoundVolume = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "SoundVolume", 1.0D).getDouble(1.0D);
2013-04-13 10:33:37 -04:00
Mekanism.configuration.save();
2013-02-14 13:26:13 -05:00
}
2012-11-06 10:44:14 -05:00
@Override
2012-08-30 19:27:35 -04:00
public int getArmorIndex(String string)
{
return RenderingRegistry.addNewArmourRendererPrefix(string);
}
2013-04-13 10:33:37 -04:00
@Override
public void registerSound(Object obj)
2013-04-13 10:33:37 -04:00
{
if(MekanismClient.enableSounds && Minecraft.getMinecraft().sndManager.sndSystem != null)
2013-04-13 10:33:37 -04:00
{
synchronized(MekanismClient.audioHandler.sounds)
2013-04-28 15:23:08 -04:00
{
MekanismClient.audioHandler.register(obj);
2013-04-28 15:23:08 -04:00
}
2013-04-13 10:33:37 -04:00
}
}
@Override
public void unregisterSound(TileEntity tileEntity)
{
if(MekanismClient.enableSounds && Minecraft.getMinecraft().sndManager.sndSystem != null)
2013-04-13 10:33:37 -04:00
{
synchronized(MekanismClient.audioHandler.sounds)
2013-04-13 10:33:37 -04:00
{
if(MekanismClient.audioHandler.getFrom(tileEntity) != null)
2013-04-28 15:23:08 -04:00
{
MekanismClient.audioHandler.getFrom(tileEntity).remove();
2013-04-28 15:23:08 -04:00
}
2013-04-13 10:33:37 -04:00
}
}
}
2013-04-12 21:32:43 -04:00
@Override
public void openElectricChest(EntityPlayer entityplayer, int id, int windowId, boolean isBlock, int x, int y, int z)
{
TileEntityElectricChest tileEntity = (TileEntityElectricChest)entityplayer.worldObj.getBlockTileEntity(x, y, z);
if(id == 0)
{
if(isBlock)
{
FMLClientHandler.instance().displayGuiScreen(entityplayer, new GuiElectricChest(entityplayer.inventory, tileEntity));
entityplayer.openContainer.windowId = windowId;
}
else {
FMLClientHandler.instance().getClient().sndManager.playSoundFX("random.chestopen", 1.0F, 1.0F);
ItemStack stack = entityplayer.getCurrentEquippedItem();
2013-04-19 15:43:00 -04:00
2013-11-27 16:17:10 -05:00
if(stack != null && stack.getItem() instanceof IElectricChest && MachineType.get(stack) == MachineType.ELECTRIC_CHEST)
2013-04-12 21:32:43 -04:00
{
2013-04-19 15:43:00 -04:00
InventoryElectricChest inventory = new InventoryElectricChest(entityplayer);
2013-04-12 21:32:43 -04:00
FMLClientHandler.instance().displayGuiScreen(entityplayer, new GuiElectricChest(entityplayer.inventory, inventory));
entityplayer.openContainer.windowId = windowId;
}
}
}
else if(id == 1)
{
if(isBlock)
{
FMLClientHandler.instance().displayGuiScreen(entityplayer, new GuiPasswordEnter(tileEntity));
}
else {
ItemStack stack = entityplayer.getCurrentEquippedItem();
2013-11-12 22:43:06 -05:00
2013-11-27 16:17:10 -05:00
if(stack != null && stack.getItem() instanceof IElectricChest && MachineType.get(stack) == MachineType.ELECTRIC_CHEST)
2013-04-12 21:32:43 -04:00
{
FMLClientHandler.instance().displayGuiScreen(entityplayer, new GuiPasswordEnter(stack));
}
}
}
else if(id == 2)
{
if(isBlock)
{
FMLClientHandler.instance().displayGuiScreen(entityplayer, new GuiPasswordModify(tileEntity));
}
else {
ItemStack stack = entityplayer.getCurrentEquippedItem();
2013-11-12 22:43:06 -05:00
2013-11-27 16:17:10 -05:00
if(stack != null && stack.getItem() instanceof IElectricChest && MachineType.get(stack) == MachineType.ELECTRIC_CHEST)
2013-04-12 21:32:43 -04:00
{
FMLClientHandler.instance().displayGuiScreen(entityplayer, new GuiPasswordModify(stack));
}
}
}
}
2012-12-23 14:46:11 -05:00
@Override
public void registerSpecialTileEntities()
{
2013-05-23 13:30:12 -04:00
ClientRegistry.registerTileEntity(TileEntityEnrichmentChamber.class, "EnrichmentChamber", new RenderConfigurableMachine());
ClientRegistry.registerTileEntity(TileEntityOsmiumCompressor.class, "OsmiumCompressor", new RenderConfigurableMachine());
ClientRegistry.registerTileEntity(TileEntityCombiner.class, "Combiner", new RenderConfigurableMachine());
ClientRegistry.registerTileEntity(TileEntityCrusher.class, "Crusher", new RenderConfigurableMachine());
ClientRegistry.registerTileEntity(TileEntityFactory.class, "SmeltingFactory", new RenderConfigurableMachine());
ClientRegistry.registerTileEntity(TileEntityAdvancedFactory.class, "AdvancedSmeltingFactory", new RenderConfigurableMachine());
ClientRegistry.registerTileEntity(TileEntityEliteFactory.class, "UltimateSmeltingFactory", new RenderConfigurableMachine());
ClientRegistry.registerTileEntity(TileEntityPurificationChamber.class, "PurificationChamber", new RenderConfigurableMachine());
ClientRegistry.registerTileEntity(TileEntityEnergizedSmelter.class, "EnergizedSmelter", new RenderConfigurableMachine());
2013-04-05 16:26:48 -04:00
ClientRegistry.registerTileEntity(TileEntityMetallurgicInfuser.class, "MetallurgicInfuser", new RenderMetallurgicInfuser());
2013-11-03 11:38:36 -05:00
ClientRegistry.registerTileEntity(TileEntityObsidianTNT.class, "ObsidianTNT", new RenderObsidianTNT());
ClientRegistry.registerTileEntity(TileEntityGasTank.class, "GasTank", new RenderGasTank());
ClientRegistry.registerTileEntity(TileEntityEnergyCube.class, "EnergyCube", new RenderEnergyCube());
2013-02-21 22:03:54 -05:00
ClientRegistry.registerTileEntity(TileEntityPressurizedTube.class, "PressurizedTube", new RenderPressurizedTube());
2013-03-25 12:00:45 -04:00
ClientRegistry.registerTileEntity(TileEntityUniversalCable.class, "UniversalCable", new RenderUniversalCable());
2013-04-05 16:26:48 -04:00
ClientRegistry.registerTileEntity(TileEntityElectricPump.class, "ElectricPump", new RenderElectricPump());
2013-04-12 20:25:21 -04:00
ClientRegistry.registerTileEntity(TileEntityElectricChest.class, "ElectricChest", new RenderElectricChest());
2013-04-17 22:40:11 -04:00
ClientRegistry.registerTileEntity(TileEntityMechanicalPipe.class, "MechanicalPipe", new RenderMechanicalPipe());
2013-04-28 15:23:08 -04:00
ClientRegistry.registerTileEntity(TileEntityDynamicTank.class, "DynamicTank", new RenderDynamicTank());
ClientRegistry.registerTileEntity(TileEntityDynamicValve.class, "DynamicValve", new RenderDynamicTank());
2013-05-19 18:43:01 -04:00
ClientRegistry.registerTileEntity(TileEntityChargepad.class, "Chargepad", new RenderChargepad());
2013-08-05 23:58:44 -04:00
ClientRegistry.registerTileEntity(TileEntityLogisticalTransporter.class, "LogisticalTransporter", new RenderLogisticalTransporter());
2013-11-23 15:01:18 -05:00
ClientRegistry.registerTileEntity(TileEntityDiversionTransporter.class, "DiversionTransporter", new RenderLogisticalTransporter());
ClientRegistry.registerTileEntity(TileEntityLogisticalSorter.class, "LogisticalSorter", new RenderLogisticalSorter());
2013-11-11 19:27:36 -05:00
ClientRegistry.registerTileEntity(TileEntityBin.class, "Bin", new RenderBin());
2013-11-20 20:28:06 -05:00
ClientRegistry.registerTileEntity(TileEntityDigitalMiner.class, "DigitalMiner", new RenderDigitalMiner());
ClientRegistry.registerTileEntity(TileEntityRotaryCondensentrator.class, "RotaryCondensentrator", new RenderRotaryCondensentrator());
2013-12-07 17:06:11 -05:00
ClientRegistry.registerTileEntity(TileEntityTeleporter.class, "MekanismTeleporter", new RenderTeleporter());
2012-12-23 14:46:11 -05:00
}
2012-11-06 10:44:14 -05:00
@Override
2012-08-15 16:41:41 -04:00
public void registerRenderInformation()
2013-12-12 23:08:16 -05:00
{
2013-10-03 00:10:20 +01:00
RenderPartTransmitter.init();
2012-08-15 16:41:41 -04:00
//Register entity rendering handlers
2013-11-03 11:38:36 -05:00
RenderingRegistry.registerEntityRenderingHandler(EntityObsidianTNT.class, new RenderObsidianTNTPrimed());
2013-05-19 18:43:01 -04:00
RenderingRegistry.registerEntityRenderingHandler(EntityRobit.class, new RenderRobit());
RenderingRegistry.registerEntityRenderingHandler(EntityBalloon.class, new RenderBalloon());
2012-11-21 10:14:35 -05:00
2012-11-28 10:33:34 -05:00
//Register item handler
2013-11-12 22:43:06 -05:00
ItemRenderingHandler handler = new ItemRenderingHandler();
MinecraftForgeClient.registerItemRenderer(Mekanism.energyCubeID, handler);
MinecraftForgeClient.registerItemRenderer(Mekanism.machineBlockID, handler);
2013-11-27 16:17:10 -05:00
MinecraftForgeClient.registerItemRenderer(Mekanism.machineBlock2ID, handler);
2013-11-12 22:43:06 -05:00
MinecraftForgeClient.registerItemRenderer(Mekanism.Robit.itemID, handler);
MinecraftForgeClient.registerItemRenderer(Mekanism.WalkieTalkie.itemID, handler);
MinecraftForgeClient.registerItemRenderer(Mekanism.gasTankID, handler);
MinecraftForgeClient.registerItemRenderer(Mekanism.obsidianTNTID, handler);
MinecraftForgeClient.registerItemRenderer(Mekanism.basicBlockID, handler);
2013-12-05 15:50:38 -05:00
MinecraftForgeClient.registerItemRenderer(Mekanism.Jetpack.itemID, handler);
2013-12-12 23:36:55 -05:00
MinecraftForgeClient.registerItemRenderer(Mekanism.PartTransmitter.itemID, handler);
2013-12-15 16:07:30 -05:00
MinecraftForgeClient.registerItemRenderer(Mekanism.GasMask.itemID, handler);
MinecraftForgeClient.registerItemRenderer(Mekanism.ScubaTank.itemID, handler);
2013-12-20 13:27:54 -05:00
MinecraftForgeClient.registerItemRenderer(Mekanism.Balloon.itemID, handler);
2012-12-23 14:46:11 -05:00
2013-02-21 22:03:54 -05:00
//Register block handlers
2013-05-19 18:43:01 -04:00
RenderingRegistry.registerBlockHandler(new MachineRenderingHandler());
RenderingRegistry.registerBlockHandler(new TransmitterRenderingHandler());
2013-04-28 15:23:08 -04:00
RenderingRegistry.registerBlockHandler(new BasicRenderingHandler());
2012-11-28 10:33:34 -05:00
System.out.println("[Mekanism] Render registrations complete.");
2012-08-15 16:41:41 -04:00
}
2012-11-06 10:44:14 -05:00
@Override
2012-08-15 16:41:41 -04:00
public GuiScreen getClientGui(int ID, EntityPlayer player, World world, int x, int y, int z)
{
2012-11-15 15:04:12 -05:00
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
2012-08-15 16:41:41 -04:00
switch(ID)
{
2013-12-09 20:52:49 -05:00
case 0:
return new GuiDictionary(player.inventory);
2012-09-25 15:15:47 -04:00
case 1:
2012-08-15 16:41:41 -04:00
return new GuiCredits();
2012-09-25 15:15:47 -04:00
case 2:
2013-11-19 18:16:26 -05:00
return new GuiDigitalMiner(player.inventory, (TileEntityDigitalMiner)tileEntity);
2012-09-25 15:15:47 -04:00
case 3:
2013-01-23 15:42:45 -05:00
return new GuiEnrichmentChamber(player.inventory, (TileEntityElectricMachine)tileEntity);
2012-09-25 15:15:47 -04:00
case 4:
2013-02-26 20:21:30 -05:00
return new GuiOsmiumCompressor(player.inventory, (TileEntityAdvancedElectricMachine)tileEntity);
2012-09-25 15:15:47 -04:00
case 5:
2013-01-23 15:42:45 -05:00
return new GuiCombiner(player.inventory, (TileEntityAdvancedElectricMachine)tileEntity);
2012-09-25 15:15:47 -04:00
case 6:
2013-01-23 15:42:45 -05:00
return new GuiCrusher(player.inventory, (TileEntityElectricMachine)tileEntity);
2012-09-25 15:15:47 -04:00
case 7:
return new GuiRotaryCondensentrator(player.inventory, (TileEntityRotaryCondensentrator)tileEntity);
2012-10-02 14:39:40 -04:00
case 8:
2012-11-28 10:33:34 -05:00
return new GuiEnergyCube(player.inventory, (TileEntityEnergyCube)tileEntity);
2012-10-28 18:18:23 -04:00
case 9:
2013-11-30 12:29:49 -05:00
return new GuiConfiguration(player, (IInvConfiguration)tileEntity);
2012-11-25 10:45:00 -05:00
case 10:
2012-11-21 10:14:35 -05:00
return new GuiGasTank(player.inventory, (TileEntityGasTank)tileEntity);
2012-12-19 15:23:55 -05:00
case 11:
2013-03-20 11:14:26 -04:00
return new GuiFactory(player.inventory, (TileEntityFactory)tileEntity);
2012-12-20 16:53:39 -05:00
case 12:
return new GuiMetallurgicInfuser(player.inventory, (TileEntityMetallurgicInfuser)tileEntity);
2013-01-20 20:15:59 -05:00
case 13:
return new GuiTeleporter(player.inventory, (TileEntityTeleporter)tileEntity);
case 14:
ItemStack itemStack = player.getCurrentEquippedItem();
2013-12-09 07:19:16 -05:00
2013-01-20 20:15:59 -05:00
if(itemStack != null && itemStack.getItem() instanceof ItemPortableTeleporter)
{
return new GuiPortableTeleporter(player, itemStack);
}
2013-01-23 15:42:45 -05:00
case 15:
return new GuiPurificationChamber(player.inventory, (TileEntityAdvancedElectricMachine)tileEntity);
2013-03-20 16:28:45 -04:00
case 16:
return new GuiEnergizedSmelter(player.inventory, (TileEntityElectricMachine)tileEntity);
2013-04-03 15:37:26 -04:00
case 17:
return new GuiElectricPump(player.inventory, (TileEntityElectricPump)tileEntity);
2013-04-28 15:23:08 -04:00
case 18:
return new GuiDynamicTank(player.inventory, (TileEntityDynamicTank)tileEntity);
2013-04-12 20:25:21 -04:00
case 19:
return new GuiPasswordEnter((TileEntityElectricChest)tileEntity);
case 20:
return new GuiPasswordModify((TileEntityElectricChest)tileEntity);
2013-05-19 18:43:01 -04:00
case 21:
EntityRobit robit = (EntityRobit)world.getEntityByID(x);
2013-12-09 07:19:16 -05:00
2013-05-19 18:43:01 -04:00
if(robit != null)
{
return new GuiRobitMain(player.inventory, robit);
}
case 22:
return new GuiRobitCrafting(player.inventory, world, x);
case 23:
EntityRobit robit1 = (EntityRobit)world.getEntityByID(x);
2013-12-09 07:19:16 -05:00
2013-05-19 18:43:01 -04:00
if(robit1 != null)
{
return new GuiRobitInventory(player.inventory, robit1);
}
2013-05-20 13:51:18 -04:00
case 24:
EntityRobit robit2 = (EntityRobit)world.getEntityByID(x);
2013-12-09 07:19:16 -05:00
2013-05-20 13:51:18 -04:00
if(robit2 != null)
{
return new GuiRobitSmelting(player.inventory, robit2);
}
2013-05-20 15:06:10 -04:00
case 25:
return new GuiRobitRepair(player.inventory, world, x);
2013-12-11 20:24:37 -05:00
case 29:
return new GuiChemicalFormulator(player.inventory, (TileEntityChemicalFormulator)tileEntity);
2013-12-13 07:02:13 -05:00
case 30:
return new GuiChemicalInfuser(player.inventory, (TileEntityChemicalInfuser)tileEntity);
2012-08-15 16:41:41 -04:00
}
2013-05-19 18:43:01 -04:00
2012-08-15 16:41:41 -04:00
return null;
}
2013-05-14 11:34:26 -04:00
@Override
public void doTankAnimation(TileEntityDynamicTank tileEntity)
{
new ThreadTankSparkle(tileEntity).start();
}
2012-11-06 10:44:14 -05:00
@Override
2013-04-13 10:33:37 -04:00
public void loadUtilities()
2012-08-15 16:41:41 -04:00
{
2013-04-13 10:33:37 -04:00
super.loadUtilities();
2013-01-20 20:15:59 -05:00
2012-08-15 16:41:41 -04:00
TickRegistry.registerTickHandler(new ClientTickHandler(), Side.CLIENT);
2013-05-14 11:34:26 -04:00
TickRegistry.registerTickHandler(new RenderTickHandler(), Side.CLIENT);
2013-04-13 10:33:37 -04:00
NetworkRegistry.instance().registerConnectionHandler(new ClientConnectionHandler());
2013-10-14 12:44:07 -04:00
KeyBindingRegistry.registerKeyBinding(new MekanismKeyHandler());
2013-12-07 17:06:11 -05:00
GameRegistry.registerPlayerTracker(new ClientPlayerTracker());
2012-08-15 16:41:41 -04:00
}
2012-11-05 10:52:56 -05:00
2012-11-06 10:44:14 -05:00
@Override
2012-11-05 10:52:56 -05:00
public void loadSoundHandler()
{
if(MekanismClient.enableSounds)
2013-02-14 13:26:13 -05:00
{
MekanismClient.audioHandler = new SoundHandler();
2013-02-14 13:26:13 -05:00
}
2012-11-05 10:52:56 -05:00
}
2012-12-30 16:34:45 -05:00
@Override
public void unloadSoundHandler()
{
if(MekanismClient.enableSounds)
2012-12-30 16:34:45 -05:00
{
if(MekanismClient.audioHandler != null)
2012-12-30 16:34:45 -05:00
{
synchronized(MekanismClient.audioHandler.sounds)
2013-04-28 15:23:08 -04:00
{
HashMap<Object, Sound> sounds = new HashMap<Object, Sound>();
sounds.putAll(MekanismClient.audioHandler.sounds);
2013-04-28 15:23:08 -04:00
for(Sound sound : sounds.values())
{
sound.remove();
}
MekanismClient.audioHandler.sounds.clear();
2013-04-28 15:23:08 -04:00
}
}
}
}
@Override
public void preInit()
{
MekanismRenderer.init();
}
@Override
public double getReach(EntityPlayer player)
{
return Minecraft.getMinecraft().playerController.getBlockReachDistance();
}
2013-04-28 15:23:08 -04:00
@Override
public boolean isPaused()
{
if(FMLClientHandler.instance().getClient().isSingleplayer() && !FMLClientHandler.instance().getClient().getIntegratedServer().getPublic())
{
GuiScreen screen = FMLClientHandler.instance().getClient().currentScreen;
if(screen != null && screen.doesGuiPauseGame())
2013-04-28 15:23:08 -04:00
{
return true;
2012-12-30 16:34:45 -05:00
}
}
2013-04-28 15:23:08 -04:00
return false;
2012-12-30 16:34:45 -05:00
}
2013-07-20 12:10:14 -04:00
@Override
public File getMinecraftDir()
{
return Minecraft.getMinecraft().mcDataDir;
}
2012-08-15 16:41:41 -04:00
}