2013-08-02 02:48:07 +02:00
|
|
|
package resonantinduction;
|
|
|
|
|
2013-08-04 05:03:15 +02:00
|
|
|
import net.minecraft.client.gui.GuiScreen;
|
2013-08-02 02:48:07 +02:00
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
2013-08-04 01:43:10 +02:00
|
|
|
import net.minecraft.tileentity.TileEntity;
|
2013-08-02 02:48:07 +02:00
|
|
|
import net.minecraft.world.World;
|
2013-08-03 06:42:45 +02:00
|
|
|
import net.minecraftforge.common.MinecraftForge;
|
2013-08-04 17:56:31 +02:00
|
|
|
import resonantinduction.battery.TileEntityBattery;
|
2013-08-03 04:18:03 +02:00
|
|
|
import resonantinduction.contractor.TileEntityEMContractor;
|
2013-08-02 05:07:56 +02:00
|
|
|
import resonantinduction.fx.FXElectricBolt;
|
2013-08-05 22:21:58 +02:00
|
|
|
import resonantinduction.gui.GuiBattery;
|
|
|
|
import resonantinduction.gui.GuiMultimeter;
|
2013-08-04 01:43:10 +02:00
|
|
|
import resonantinduction.multimeter.TileEntityMultimeter;
|
2013-08-02 03:52:12 +02:00
|
|
|
import resonantinduction.render.BlockRenderingHandler;
|
2013-08-04 17:56:31 +02:00
|
|
|
import resonantinduction.render.RenderBattery;
|
2013-08-03 04:18:03 +02:00
|
|
|
import resonantinduction.render.RenderEMContractor;
|
2013-08-04 03:38:12 +02:00
|
|
|
import resonantinduction.render.RenderMultimeter;
|
2013-08-02 02:57:56 +02:00
|
|
|
import resonantinduction.render.RenderTesla;
|
2013-08-07 01:46:08 +02:00
|
|
|
import resonantinduction.render.RenderWire;
|
2013-08-02 02:57:56 +02:00
|
|
|
import resonantinduction.tesla.TileEntityTesla;
|
2013-08-07 01:46:08 +02:00
|
|
|
import resonantinduction.wire.TileEntityWire;
|
2013-08-07 00:47:34 +02:00
|
|
|
import universalelectricity.core.vector.Vector3;
|
2013-08-03 04:55:29 +02:00
|
|
|
import cpw.mods.fml.client.FMLClientHandler;
|
2013-08-02 02:57:56 +02:00
|
|
|
import cpw.mods.fml.client.registry.ClientRegistry;
|
2013-08-02 03:52:12 +02:00
|
|
|
import cpw.mods.fml.client.registry.RenderingRegistry;
|
|
|
|
import cpw.mods.fml.relauncher.Side;
|
|
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
2013-08-02 02:48:07 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @author Calclavia
|
|
|
|
*
|
|
|
|
*/
|
2013-08-02 03:52:12 +02:00
|
|
|
@SideOnly(Side.CLIENT)
|
2013-08-02 02:48:07 +02:00
|
|
|
public class ClientProxy extends CommonProxy
|
|
|
|
{
|
2013-08-02 02:57:56 +02:00
|
|
|
@Override
|
|
|
|
public void registerRenderers()
|
|
|
|
{
|
2013-08-03 06:42:45 +02:00
|
|
|
MinecraftForge.EVENT_BUS.register(SoundHandler.INSTANCE);
|
|
|
|
|
2013-08-02 03:52:12 +02:00
|
|
|
RenderingRegistry.registerBlockHandler(BlockRenderingHandler.INSTANCE);
|
2013-08-07 05:34:06 +02:00
|
|
|
|
2013-08-02 02:57:56 +02:00
|
|
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTesla.class, new RenderTesla());
|
2013-08-04 03:38:12 +02:00
|
|
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMultimeter.class, new RenderMultimeter());
|
2013-08-03 04:18:03 +02:00
|
|
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEMContractor.class, new RenderEMContractor());
|
2013-08-04 17:56:31 +02:00
|
|
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBattery.class, new RenderBattery());
|
2013-08-07 01:46:08 +02:00
|
|
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWire.class, new RenderWire());
|
2013-08-02 02:57:56 +02:00
|
|
|
}
|
|
|
|
|
2013-08-02 02:48:07 +02:00
|
|
|
@Override
|
|
|
|
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
|
|
|
|
{
|
2013-08-04 01:43:10 +02:00
|
|
|
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
|
|
|
|
|
|
|
|
if (tileEntity instanceof TileEntityMultimeter)
|
|
|
|
{
|
|
|
|
return new GuiMultimeter(player.inventory, ((TileEntityMultimeter) tileEntity));
|
|
|
|
}
|
2013-08-05 04:32:28 +02:00
|
|
|
else if (tileEntity instanceof TileEntityBattery)
|
|
|
|
{
|
|
|
|
return new GuiBattery(player.inventory, ((TileEntityBattery) tileEntity));
|
|
|
|
}
|
2013-08-05 19:36:31 +02:00
|
|
|
|
2013-08-02 02:48:07 +02:00
|
|
|
return null;
|
|
|
|
}
|
2013-08-05 19:36:31 +02:00
|
|
|
|
2013-08-04 05:03:15 +02:00
|
|
|
@Override
|
|
|
|
public boolean isPaused()
|
|
|
|
{
|
2013-08-05 19:36:31 +02:00
|
|
|
if (FMLClientHandler.instance().getClient().isSingleplayer() && !FMLClientHandler.instance().getClient().getIntegratedServer().getPublic())
|
2013-08-04 05:03:15 +02:00
|
|
|
{
|
|
|
|
GuiScreen screen = FMLClientHandler.instance().getClient().currentScreen;
|
2013-08-05 19:36:31 +02:00
|
|
|
|
|
|
|
if (screen != null)
|
2013-08-04 05:03:15 +02:00
|
|
|
{
|
2013-08-05 19:36:31 +02:00
|
|
|
if (screen.doesGuiPauseGame())
|
2013-08-04 05:03:15 +02:00
|
|
|
{
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2013-08-05 19:36:31 +02:00
|
|
|
|
2013-08-04 05:03:15 +02:00
|
|
|
return false;
|
|
|
|
}
|
2013-08-02 02:48:07 +02:00
|
|
|
|
2013-08-08 04:22:58 +02:00
|
|
|
@Override
|
|
|
|
public boolean isFancy()
|
|
|
|
{
|
|
|
|
return FMLClientHandler.instance().getClient().gameSettings.fancyGraphics;
|
|
|
|
}
|
|
|
|
|
2013-08-02 04:19:01 +02:00
|
|
|
@Override
|
|
|
|
public void renderElectricShock(World world, Vector3 start, Vector3 target, float r, float g, float b)
|
|
|
|
{
|
2013-08-03 04:55:29 +02:00
|
|
|
if (world.isRemote)
|
|
|
|
{
|
|
|
|
FMLClientHandler.instance().getClient().effectRenderer.addEffect(new FXElectricBolt(world, start, target).setColor(r, g, b));
|
|
|
|
}
|
2013-08-02 04:19:01 +02:00
|
|
|
}
|
2013-08-02 02:48:07 +02:00
|
|
|
}
|