diff --git a/common/buildcraft/builders/BuilderProxyClient.java b/common/buildcraft/builders/BuilderProxyClient.java index 5b86b447..36939e4c 100644 --- a/common/buildcraft/builders/BuilderProxyClient.java +++ b/common/buildcraft/builders/BuilderProxyClient.java @@ -24,7 +24,7 @@ public class BuilderProxyClient extends BuilderProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileArchitect.class, new RenderBoxProvider()); ClientRegistry.bindTileEntitySpecialRenderer(TileFiller.class, new RenderBoxProvider()); - ClientRegistry.bindTileEntitySpecialRenderer(TileBuilder.class, new RenderBoxProvider()); + ClientRegistry.bindTileEntitySpecialRenderer(TileBuilder.class, new RenderBuilder()); ClientRegistry.bindTileEntitySpecialRenderer(TilePathMarker.class, new RenderPathMarker()); } } diff --git a/common/buildcraft/builders/RenderBuilder.java b/common/buildcraft/builders/RenderBuilder.java new file mode 100755 index 00000000..c393af68 --- /dev/null +++ b/common/buildcraft/builders/RenderBuilder.java @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team + * http://www.mod-buildcraft.com + * + * 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.builders; + +import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; +import net.minecraft.tileentity.TileEntity; + +import org.lwjgl.opengl.GL11; + +import buildcraft.builders.urbanism.RenderBoxProvider; +import buildcraft.core.EntityLaser; +import buildcraft.core.LaserData; +import buildcraft.core.render.RenderLaser; + +public class RenderBuilder extends RenderBoxProvider { + + @Override + public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) { + super.renderTileEntityAt(tileentity, x, y, z, f); + + TileBuilder builder = (TileBuilder) tileentity; + + if (builder != null) { + GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_ENABLE_BIT); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + + GL11.glTranslated(x, y, z); + GL11.glTranslated(-tileentity.xCoord, -tileentity.yCoord, -tileentity.zCoord); + + for (LaserData laser : builder.pathLasers) { + if (laser != null) { + GL11.glPushMatrix(); + RenderLaser + .doRenderLaser( + TileEntityRendererDispatcher.instance.field_147553_e, + laser, EntityLaser.LASER_TEXTURES[3]); + GL11.glPopMatrix(); + } + } + + //GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + GL11.glPopMatrix(); + } + } + +} diff --git a/common/buildcraft/builders/TileBuilder.java b/common/buildcraft/builders/TileBuilder.java index 0bb02ccd..2ac5f429 100644 --- a/common/buildcraft/builders/TileBuilder.java +++ b/common/buildcraft/builders/TileBuilder.java @@ -58,7 +58,7 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, IM private LinkedList path; @NetworkData - private LinkedList pathLasers; + public LinkedList pathLasers = new LinkedList (); private EntityRobot builderRobot; @@ -224,12 +224,14 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, IM } } - if (path != null && pathLasers == null) { + if (path != null && pathLasers.size() == 0) { path.getFirst().x = xCoord; path.getFirst().y = yCoord; path.getFirst().z = zCoord; createLasersForPath(); + + sendNetworkUpdate(); } iterateBpt();