buildcraft/common/buildcraft/transport/TransportProxyClient.java
2015-09-20 11:20:30 +02:00

81 lines
3.4 KiB
Java

/**
* Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
* <p/>
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
package buildcraft.transport;
import net.minecraft.client.renderer.GLAllocation;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.client.registry.RenderingRegistry;
import net.minecraftforge.client.MinecraftForgeClient;
import buildcraft.BuildCraftTransport;
import buildcraft.transport.render.FacadeItemRenderer;
import buildcraft.transport.render.GateItemRenderer;
import buildcraft.transport.render.PipeItemRenderer;
import buildcraft.transport.render.PipeRendererTESR;
import buildcraft.transport.render.PipeRendererWorld;
import buildcraft.transport.render.PipeTransportFluidsRenderer;
import buildcraft.transport.render.PipeTransportItemsRenderer;
import buildcraft.transport.render.PipeTransportPowerRenderer;
import buildcraft.transport.render.PipeTransportRenderer;
import buildcraft.transport.render.PlugItemRenderer;
import buildcraft.transport.render.TileEntityPickupFX;
public class TransportProxyClient extends TransportProxy {
public static final PipeItemRenderer pipeItemRenderer = new PipeItemRenderer();
public static final PipeRendererWorld pipeWorldRenderer = new PipeRendererWorld();
public static final FacadeItemRenderer facadeItemRenderer = new FacadeItemRenderer();
public static final PlugItemRenderer plugItemRenderer = new PlugItemRenderer();
public static final GateItemRenderer gateItemRenderer = new GateItemRenderer();
@Override
public void registerTileEntities() {
super.registerTileEntities();
ClientRegistry.bindTileEntitySpecialRenderer(TileGenericPipe.class, PipeRendererTESR.INSTANCE);
}
@Override
public void obsidianPipePickup(World world, EntityItem item, TileEntity tile) {
FMLClientHandler.instance().getClient().effectRenderer.addEffect(new TileEntityPickupFX(world, item, tile));
}
@Override
public void clearDisplayList(int displayList) {
GLAllocation.deleteDisplayLists(displayList);
}
@Override
public void registerRenderers() {
for (Item itemPipe : BlockGenericPipe.pipes.keySet()) {
MinecraftForgeClient.registerItemRenderer(itemPipe, pipeItemRenderer);
}
MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.facadeItem, facadeItemRenderer);
MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.plugItem, plugItemRenderer);
MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeGate, gateItemRenderer);
PipeTransportRenderer.RENDERER_MAP.put(PipeTransportItems.class, new PipeTransportItemsRenderer());
PipeTransportRenderer.RENDERER_MAP.put(PipeTransportFluids.class, new PipeTransportFluidsRenderer());
PipeTransportRenderer.RENDERER_MAP.put(PipeTransportPower.class, new PipeTransportPowerRenderer());
TransportProxy.pipeModel = RenderingRegistry.getNextAvailableRenderId();
RenderingRegistry.registerBlockHandler(pipeWorldRenderer);
}
@Override
public void setIconProviderFromPipe(ItemPipe item, Pipe<?> dummyPipe) {
item.setPipesIcons(dummyPipe.getIconProvider());
}
}