add PipeTransportRenderer map
This commit is contained in:
parent
f958df297c
commit
05b5a847bd
|
@ -217,11 +217,9 @@ public abstract class Pipe<T extends PipeTransport> implements IDropControlInven
|
|||
|
||||
public void updateSignalState() {
|
||||
for (PipeWire c : PipeWire.values()) {
|
||||
if (!wireSet[c.ordinal()]) {
|
||||
return;
|
||||
if (wireSet[c.ordinal()]) {
|
||||
updateSignalState(c);
|
||||
}
|
||||
|
||||
updateSignalState(c);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,6 @@ import buildcraft.core.lib.utils.BitSetUtils;
|
|||
import buildcraft.transport.render.PipeTransportRenderer;
|
||||
|
||||
public abstract class PipeTransport {
|
||||
public final PipeTransportRenderer renderer;
|
||||
public TileGenericPipe container;
|
||||
|
||||
protected boolean[] inputsOpen = new boolean[ForgeDirection.VALID_DIRECTIONS.length];
|
||||
|
@ -34,12 +33,8 @@ public abstract class PipeTransport {
|
|||
inputsOpen[b] = true;
|
||||
outputsOpen[b] = true;
|
||||
}
|
||||
|
||||
renderer = createTransportRenderer();
|
||||
}
|
||||
|
||||
public abstract PipeTransportRenderer createTransportRenderer();
|
||||
|
||||
public abstract IPipeTile.PipeType getPipeType();
|
||||
|
||||
public World getWorld() {
|
||||
|
|
|
@ -190,11 +190,6 @@ public class PipeTransportFluids extends PipeTransport implements IFluidHandler,
|
|||
travelDelay = MathUtils.clamp(Math.round(16F / (flowRate / BuildCraftTransport.pipeFluidsBaseFlowRate)), 1, MAX_TRAVEL_DELAY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PipeTransportRenderer createTransportRenderer() {
|
||||
return new PipeTransportFluidsRenderer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize() {
|
||||
super.initialize();
|
||||
|
|
|
@ -55,11 +55,6 @@ public class PipeTransportItems extends PipeTransport implements IDebuggable {
|
|||
return IPipeTile.PipeType.ITEM;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PipeTransportRenderer createTransportRenderer() {
|
||||
return new PipeTransportItemsRenderer();
|
||||
}
|
||||
|
||||
public void readjustSpeed(TravelingItem item) {
|
||||
PipeEventItem.AdjustSpeed event = new PipeEventItem.AdjustSpeed(container.pipe, item);
|
||||
container.pipe.eventBus.handleEvent(PipeEventItem.AdjustSpeed.class, event);
|
||||
|
|
|
@ -83,11 +83,6 @@ public class PipeTransportPower extends PipeTransport implements IDebuggable {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public PipeTransportRenderer createTransportRenderer() {
|
||||
return new PipeTransportPowerRenderer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPipeTile.PipeType getPipeType() {
|
||||
return IPipeTile.PipeType.POWER;
|
||||
|
|
|
@ -12,15 +12,8 @@ import net.minecraft.tileentity.TileEntity;
|
|||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import buildcraft.api.transport.IPipeTile;
|
||||
import buildcraft.transport.render.PipeTransportRenderer;
|
||||
import buildcraft.transport.render.PipeTransportStructureRenderer;
|
||||
|
||||
public class PipeTransportStructure extends PipeTransport {
|
||||
@Override
|
||||
public PipeTransportRenderer createTransportRenderer() {
|
||||
return new PipeTransportStructureRenderer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPipeTile.PipeType getPipeType() {
|
||||
return IPipeTile.PipeType.STRUCTURE;
|
||||
|
|
|
@ -24,6 +24,10 @@ 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;
|
||||
|
||||
|
@ -60,6 +64,10 @@ public class TransportProxyClient extends TransportProxy {
|
|||
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);
|
||||
|
|
|
@ -63,8 +63,10 @@ public class PipeRendererTESR extends TileEntitySpecialRenderer {
|
|||
renderGatesWires(pipe, x, y, z);
|
||||
renderPluggables(pipe, x, y, z);
|
||||
|
||||
PipeTransportRenderer renderer = pipe.pipe.transport.renderer;
|
||||
renderer.render(renderer.useServerTileIfPresent() ? (Pipe) (((IPipeTile) CoreProxy.proxy.getServerTile(pipe)).getPipe()) : pipe.pipe, x, y, z, f);
|
||||
PipeTransportRenderer renderer = PipeTransportRenderer.RENDERER_MAP.get(pipe.pipe.transport.getClass());
|
||||
if (renderer != null) {
|
||||
renderer.render(renderer.useServerTileIfPresent() ? (Pipe) (((IPipeTile) CoreProxy.proxy.getServerTile(pipe)).getPipe()) : pipe.pipe, x, y, z, f);
|
||||
}
|
||||
}
|
||||
|
||||
private void renderGatesWires(TileGenericPipe pipe, double x, double y, double z) {
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package buildcraft.transport.render;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
|
@ -9,6 +11,8 @@ import buildcraft.transport.Pipe;
|
|||
import buildcraft.transport.PipeTransport;
|
||||
|
||||
public abstract class PipeTransportRenderer<T extends PipeTransport> {
|
||||
public static final Map<Class<? extends PipeTransport>, PipeTransportRenderer> RENDERER_MAP = new HashMap<Class<? extends PipeTransport>, PipeTransportRenderer>();
|
||||
|
||||
public boolean useServerTileIfPresent() {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
package buildcraft.transport.render;
|
||||
|
||||
import buildcraft.transport.Pipe;
|
||||
import buildcraft.transport.PipeTransportStructure;
|
||||
|
||||
public class PipeTransportStructureRenderer extends PipeTransportRenderer<PipeTransportStructure> {
|
||||
@Override
|
||||
public void render(Pipe<PipeTransportStructure> pipe, double x, double y, double z, float f) {
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue