mffs/src/main/java/mffs/ClientProxy.java

132 lines
5.5 KiB
Java

package mffs;
import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import mffs.gui.GuiBiometricIdentifier;
import mffs.gui.GuiCoercionDeriver;
import mffs.gui.GuiForceFieldProjector;
import mffs.gui.GuiForceManipulator;
import mffs.gui.GuiFortronCapacitor;
import mffs.gui.GuiInterdictionMatrix;
import mffs.render.FXBeam;
import mffs.render.FXHologram;
import mffs.render.FXHologramMoving;
import mffs.render.RenderBlockHandler;
import mffs.render.RenderCoercionDeriver;
import mffs.render.RenderForceField;
import mffs.render.RenderForceFieldProjector;
import mffs.render.RenderForceManipulator;
import mffs.render.RenderFortronCapacitor;
import mffs.render.RenderIDCard;
import mffs.tileentity.TileEntityBiometricIdentifier;
import mffs.tileentity.TileEntityCoercionDeriver;
import mffs.tileentity.TileEntityForceFieldProjector;
import mffs.tileentity.TileEntityForceManipulator;
import mffs.tileentity.TileEntityFortronCapacitor;
import mffs.tileentity.TileEntityInterdictionMatrix;
import net.minecraft.client.particle.EntityFX;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.client.IItemRenderer;
import net.minecraftforge.client.MinecraftForgeClient;
import universalelectricity.core.vector.Vector3;
public class ClientProxy extends CommonProxy {
@Override
public void init() {
super.init();
RenderingRegistry.registerBlockHandler(
(ISimpleBlockRenderingHandler) new RenderBlockHandler());
RenderingRegistry.registerBlockHandler(
(ISimpleBlockRenderingHandler) new RenderForceField());
MinecraftForgeClient.registerItemRenderer(
ModularForceFieldSystem.itemCardID, (IItemRenderer) new RenderIDCard());
ClientRegistry.bindTileEntitySpecialRenderer(
TileEntityFortronCapacitor.class,
(TileEntitySpecialRenderer) new RenderFortronCapacitor());
ClientRegistry.bindTileEntitySpecialRenderer(
TileEntityCoercionDeriver.class,
(TileEntitySpecialRenderer) new RenderCoercionDeriver());
ClientRegistry.bindTileEntitySpecialRenderer(
TileEntityForceManipulator.class,
(TileEntitySpecialRenderer) new RenderForceManipulator());
ClientRegistry.bindTileEntitySpecialRenderer(
TileEntityForceFieldProjector.class,
(TileEntitySpecialRenderer) new RenderForceFieldProjector());
}
@Override
public World getClientWorld() {
return (World)FMLClientHandler.instance().getClient().theWorld;
}
@Override
public Object getClientGuiElement(final int ID, final EntityPlayer player,
final World world, final int x, final int y,
final int z) {
final TileEntity tileEntity = world.getTileEntity(x, y, z);
if (tileEntity != null) {
if (tileEntity.getClass() == TileEntityFortronCapacitor.class) {
return new GuiFortronCapacitor(player,
(TileEntityFortronCapacitor)tileEntity);
}
if (tileEntity.getClass() == TileEntityForceFieldProjector.class) {
return new GuiForceFieldProjector(
player, (TileEntityForceFieldProjector)tileEntity);
}
if (tileEntity.getClass() == TileEntityCoercionDeriver.class) {
return new GuiCoercionDeriver(player,
(TileEntityCoercionDeriver)tileEntity);
}
if (tileEntity.getClass() == TileEntityBiometricIdentifier.class) {
return new GuiBiometricIdentifier(
player, (TileEntityBiometricIdentifier)tileEntity);
}
if (tileEntity.getClass() == TileEntityInterdictionMatrix.class) {
return new GuiInterdictionMatrix(
player, (TileEntityInterdictionMatrix)tileEntity);
}
if (tileEntity.getClass() == TileEntityForceManipulator.class) {
return new GuiForceManipulator(player,
(TileEntityForceManipulator)tileEntity);
}
}
return null;
}
@Override
public boolean isOp(final String username) {
return false;
}
@Override
public void renderBeam(final World world, final Vector3 position,
final Vector3 target, final float red,
final float green, final float blue, final int age) {
FMLClientHandler.instance().getClient().effectRenderer.addEffect(
(EntityFX) new FXBeam(world, position, target, red, green, blue, age));
}
@Override
public void renderHologram(final World world, final Vector3 position,
final float red, final float green,
final float blue, final int age,
final Vector3 targetPosition) {
FMLClientHandler.instance().getClient().effectRenderer.addEffect(
(EntityFX) new FXHologram(world, position, red, green, blue, age)
.setTarget(targetPosition));
}
@Override
public void renderHologramMoving(final World world, final Vector3 position,
final float red, final float green,
final float blue, final int age) {
FMLClientHandler.instance().getClient().effectRenderer.addEffect((
EntityFX) new FXHologramMoving(world, position, red, green, blue, age));
}
}