electrodynamics/src/main/java/resonantinduction/ClientProxy.java

101 lines
3.1 KiB
Java
Raw Normal View History

2013-08-02 02:48:07 +02:00
package resonantinduction;
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-12-23 09:18:45 +01:00
import net.minecraftforge.client.MinecraftForgeClient;
2013-08-03 06:42:45 +02:00
import net.minecraftforge.common.MinecraftForge;
2013-12-23 14:40:20 +01:00
import resonantinduction.battery.RenderBattery;
import resonantinduction.battery.TileBattery;
2013-08-02 05:07:56 +02:00
import resonantinduction.fx.FXElectricBolt;
2013-08-05 22:21:58 +02:00
import resonantinduction.gui.GuiMultimeter;
2013-12-23 13:45:37 +01:00
import resonantinduction.levitator.RenderLevitator;
2013-12-23 14:40:20 +01:00
import resonantinduction.levitator.TileEMLevitator;
2013-12-23 09:18:45 +01:00
import resonantinduction.multimeter.PartMultimeter;
import resonantinduction.multimeter.RenderRIItem;
2013-08-02 03:52:12 +02:00
import resonantinduction.render.BlockRenderingHandler;
2013-12-23 14:40:20 +01:00
import resonantinduction.tesla.RenderTesla;
import resonantinduction.tesla.TileTesla;
2013-12-20 14:59:52 +01:00
import universalelectricity.api.vector.Vector3;
2013-12-23 09:51:24 +01:00
import codechicken.multipart.TMultiPart;
import codechicken.multipart.TileMultipart;
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);
MinecraftForgeClient.registerItemRenderer(ResonantInduction.itemMultimeter.itemID, RenderRIItem.INSTANCE);
MinecraftForgeClient.registerItemRenderer(ResonantInduction.itemTransformer.itemID, RenderRIItem.INSTANCE);
2013-12-23 14:40:20 +01:00
ClientRegistry.bindTileEntitySpecialRenderer(TileTesla.class, new RenderTesla());
ClientRegistry.bindTileEntitySpecialRenderer(TileEMLevitator.class, new RenderLevitator());
ClientRegistry.bindTileEntitySpecialRenderer(TileBattery.class, new RenderBattery());
2013-08-02 02:57:56 +02:00
}
2013-08-02 02:48:07 +02:00
@Override
2013-12-23 09:51:24 +01:00
public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z)
2013-08-02 02:48:07 +02:00
{
2013-08-04 01:43:10 +02:00
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
2013-12-23 09:51:24 +01:00
if (tileEntity instanceof TileMultipart)
{
TMultiPart part = ((TileMultipart) tileEntity).partMap(id);
if (part instanceof PartMultimeter)
{
return new GuiMultimeter(player.inventory, (PartMultimeter) part);
}
}
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
@Override
public boolean isPaused()
{
2013-08-05 19:36:31 +02:00
if (FMLClientHandler.instance().getClient().isSingleplayer() && !FMLClientHandler.instance().getClient().getIntegratedServer().getPublic())
{
GuiScreen screen = FMLClientHandler.instance().getClient().currentScreen;
2013-08-05 19:36:31 +02:00
if (screen != null)
{
2013-08-05 19:36:31 +02:00
if (screen.doesGuiPauseGame())
{
return true;
}
}
}
2013-08-05 19:36:31 +02:00
return false;
}
2013-08-02 02:48:07 +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, boolean split)
2013-08-02 04:19:01 +02:00
{
2013-08-03 04:55:29 +02:00
if (world.isRemote)
{
FMLClientHandler.instance().getClient().effectRenderer.addEffect(new FXElectricBolt(world, start, target, split).setColor(r, g, b));
2013-08-03 04:55:29 +02:00
}
2013-08-02 04:19:01 +02:00
}
2013-08-02 02:48:07 +02:00
}