From b4bd4c1e082b2ee8c4486b070869b928f2717281 Mon Sep 17 00:00:00 2001 From: SpaceToad Date: Sat, 15 Mar 2014 16:59:47 +0100 Subject: [PATCH] made progress in path marker implementation, for #1490 --- common/buildcraft/BuildCraftCore.java | 3 - common/buildcraft/api/core/Position.java | 4 + common/buildcraft/builders/BlockBuilder.java | 13 +- .../builders/BuilderProxyClient.java | 1 + .../buildcraft/builders/RenderPathMarker.java | 72 +++++++++++ common/buildcraft/builders/TileBuilder.java | 121 +++++++----------- .../buildcraft/builders/TilePathMarker.java | 74 ++++++----- common/buildcraft/core/EntityPowerLaser.java | 54 -------- common/buildcraft/core/LaserData.java | 7 +- .../core/proxy/CoreProxyClient.java | 9 +- common/buildcraft/core/render/RenderBox.java | 2 +- .../buildcraft/core/render/RenderLaser.java | 4 +- 12 files changed, 191 insertions(+), 173 deletions(-) create mode 100755 common/buildcraft/builders/RenderPathMarker.java delete mode 100644 common/buildcraft/core/EntityPowerLaser.java diff --git a/common/buildcraft/BuildCraftCore.java b/common/buildcraft/BuildCraftCore.java index c020ad1f..799e9315 100644 --- a/common/buildcraft/BuildCraftCore.java +++ b/common/buildcraft/BuildCraftCore.java @@ -49,7 +49,6 @@ import buildcraft.core.CoreIconProvider; import buildcraft.core.CreativeTabBuildCraft; import buildcraft.core.DefaultProps; import buildcraft.core.EntityEnergyLaser; -import buildcraft.core.EntityPowerLaser; import buildcraft.core.InterModComms; import buildcraft.core.ItemBuildCraft; import buildcraft.core.ItemRobot; @@ -304,10 +303,8 @@ public class BuildCraftCore extends BuildCraftMod { EntityRegistry.registerModEntity(EntityRobotPicker.class, "bcRobotPicker", EntityIds.ROBOT_PICKER, instance, 50, 1, true); EntityRegistry.registerModEntity(EntityRobotBuilder.class, "bcRobotBuilder", EntityIds.ROBOT_BUILDER, instance, 50, 1, true); EntityRegistry.registerModEntity(EntityRobotUrbanism.class, "bcRobotUrbanism", EntityIds.ROBOT_URBANISM, instance, 50, 1, true); - EntityRegistry.registerModEntity(EntityPowerLaser.class, "bcLaser", EntityIds.LASER, instance, 50, 1, true); EntityRegistry.registerModEntity(EntityEnergyLaser.class, "bcEnergyLaser", EntityIds.ENERGY_LASER, instance, 50, 1, true); EntityList.classToStringMapping.remove(EntityRobotBuilder.class); - EntityList.classToStringMapping.remove(EntityPowerLaser.class); EntityList.classToStringMapping.remove(EntityEnergyLaser.class); EntityList.stringToClassMapping.remove("BuildCraft|Core.bcRobot"); EntityList.stringToClassMapping.remove("BuildCraft|Core.bcLaser"); diff --git a/common/buildcraft/api/core/Position.java b/common/buildcraft/api/core/Position.java index d3496069..5724cdd9 100644 --- a/common/buildcraft/api/core/Position.java +++ b/common/buildcraft/api/core/Position.java @@ -11,10 +11,14 @@ package buildcraft.api.core; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; +import buildcraft.core.network.NetworkData; public class Position { + @NetworkData public double x, y, z; + + @NetworkData public ForgeDirection orientation; public Position(double ci, double cj, double ck) { diff --git a/common/buildcraft/builders/BlockBuilder.java b/common/buildcraft/builders/BlockBuilder.java index f90ebdd9..bf85ec97 100644 --- a/common/buildcraft/builders/BlockBuilder.java +++ b/common/buildcraft/builders/BlockBuilder.java @@ -48,11 +48,13 @@ public class BlockBuilder extends BlockContainer { @Override public IIcon getIcon(int i, int j) { - if (j == 0 && i == 3) + if (j == 0 && i == 3) { return blockTextureFront; + } - if (i == j) + if (i == j) { return blockTextureFront; + } switch (i) { case 1: @@ -66,8 +68,9 @@ public class BlockBuilder extends BlockContainer { public boolean onBlockActivated(World world, int i, int j, int k, EntityPlayer entityplayer, int par6, float par7, float par8, float par9) { // Drop through if the player is sneaking - if (entityplayer.isSneaking()) + if (entityplayer.isSneaking()) { return false; + } Item equipped = entityplayer.getCurrentEquippedItem() != null ? entityplayer.getCurrentEquippedItem().getItem() : null; if (equipped instanceof IToolWrench && ((IToolWrench) equipped).canWrench(entityplayer, i, j, k)) { @@ -92,14 +95,14 @@ public class BlockBuilder extends BlockContainer { world.markBlockForUpdate(i, j, k); ((IToolWrench) equipped).wrenchUsed(entityplayer, i, j, k); + return true; } else { - if (!world.isRemote) { entityplayer.openGui(BuildCraftBuilders.instance, GuiIds.BUILDER, world, i, j, k); } - return true; + return true; } } diff --git a/common/buildcraft/builders/BuilderProxyClient.java b/common/buildcraft/builders/BuilderProxyClient.java index 7b522b2f..5b86b447 100644 --- a/common/buildcraft/builders/BuilderProxyClient.java +++ b/common/buildcraft/builders/BuilderProxyClient.java @@ -25,5 +25,6 @@ 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(TilePathMarker.class, new RenderPathMarker()); } } diff --git a/common/buildcraft/builders/RenderPathMarker.java b/common/buildcraft/builders/RenderPathMarker.java new file mode 100755 index 00000000..5f4abed9 --- /dev/null +++ b/common/buildcraft/builders/RenderPathMarker.java @@ -0,0 +1,72 @@ +/** + * 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.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; + +import org.lwjgl.opengl.GL11; + +import buildcraft.core.DefaultProps; +import buildcraft.core.EntityLaser; +import buildcraft.core.LaserData; +import buildcraft.core.render.RenderLaser; + +public class RenderPathMarker extends TileEntitySpecialRenderer { + + private ModelBase model = new ModelBase() { + }; + private ModelRenderer box; + + private static final ResourceLocation CHAMBER_TEXTURE = new ResourceLocation(DefaultProps.TEXTURE_PATH_BLOCKS + "/chamber2.png"); + + public RenderPathMarker() { + box = new ModelRenderer(model, 0, 1); + box.addBox(-8F, -8F, -8F, 16, 4, 16); + box.rotationPointX = 8; + box.rotationPointY = 8; + box.rotationPointZ = 8; + } + + @Override + public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) { + TilePathMarker marker = (TilePathMarker) tileentity; + + if (marker != 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 : marker.lasers) { + 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 c1127f33..0bb02ccd 100644 --- a/common/buildcraft/builders/TileBuilder.java +++ b/common/buildcraft/builders/TileBuilder.java @@ -21,19 +21,17 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; import buildcraft.BuildCraftBuilders; import buildcraft.api.blueprints.SchematicToBuild; +import buildcraft.api.core.Position; import buildcraft.api.core.SafeTimeTracker; import buildcraft.api.gates.IAction; -import buildcraft.api.power.IPowerReceptor; -import buildcraft.api.power.PowerHandler; -import buildcraft.api.power.PowerHandler.PowerReceiver; -import buildcraft.api.power.PowerHandler.Type; +import buildcraft.api.mj.MjBattery; import buildcraft.core.BlockIndex; import buildcraft.core.Box; import buildcraft.core.Box.Kind; -import buildcraft.core.EntityLaser; import buildcraft.core.IBoxProvider; import buildcraft.core.IBuilderInventory; import buildcraft.core.IMachine; +import buildcraft.core.LaserData; import buildcraft.core.TileBuildCraft; import buildcraft.core.blueprints.Blueprint; import buildcraft.core.blueprints.BlueprintBase; @@ -48,8 +46,7 @@ import buildcraft.core.network.RPCSide; import buildcraft.core.robots.EntityRobot; import buildcraft.core.utils.Utils; -public class TileBuilder extends TileBuildCraft implements IBuilderInventory, - IPowerReceptor, IMachine, IBoxProvider { +public class TileBuilder extends TileBuildCraft implements IBuilderInventory, IMachine, IBoxProvider { private final ItemStack items[] = new ItemStack[28]; @@ -58,11 +55,10 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, @NetworkData public Box box = new Box(); - private PowerHandler powerHandler; - private LinkedList path; - private LinkedList pathLasers; + @NetworkData + private LinkedList pathLasers; private EntityRobot builderRobot; @@ -70,6 +66,9 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, private SafeTimeTracker debugBuildTracker = new SafeTimeTracker(5); + @MjBattery (maxReceivedPerCycle = 25) + public double mjStored = 0; + private class PathIterator { public Iterator currentIterator; @@ -192,9 +191,6 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, public TileBuilder() { super(); - powerHandler = new PowerHandler(this, Type.MACHINE); - powerHandler.configure(25, 25, 25, 25); - box.kind = Kind.STRIPES; } @@ -240,22 +236,20 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, } public void createLasersForPath() { - /*pathLasers = new LinkedList(); + pathLasers = new LinkedList(); BlockIndex previous = null; for (BlockIndex b : path) { if (previous != null) { - EntityPowerLaser laser = new EntityPowerLaser(worldObj, new Position(previous.i + 0.5, previous.j + 0.5, previous.k + 0.5), new Position( + LaserData laser = new LaserData(new Position(previous.x + 0.5, + previous.y + 0.5, previous.z + 0.5), new Position( b.x + 0.5, b.y + 0.5, b.z + 0.5)); - laser.setTexture(DefaultProps.TEXTURE_PATH_ENTITIES + "/laser_1.png"); - laser.show(); - worldObj.spawnEntityInWorld(laser); pathLasers.add(laser); } previous = b; - }*/ + } } public BptBuilderBase instanciateBluePrint(int x, int y, int z, ForgeDirection o) { @@ -302,41 +296,6 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, return result; } - @Override - public void doWork(PowerHandler workProvider) { - if (worldObj.isRemote) { - return; - } - - if (done) { - return; - //}// else if (builderRobot != null && !builderRobot.readyToBuild()) { - // return; - } else if (powerHandler.useEnergy(25, 25, true) < 25) { - return; - } - - iterateBpt(); - - /* Temp fix to make Builders impotent as the World Destroyers they are - if (bluePrintBuilder != null && !bluePrintBuilder.done) { - if (!box.isInitialized()) { - box.initialize(bluePrintBuilder); - } - - if (builderRobot == null) { - builderRobot = new EntityRobot(worldObj, box); - worldObj.spawnEntityInWorld(builderRobot); - } - - box.createLasers(worldObj, LaserKind.Stripes); - - builderRobot.scheduleContruction(bluePrintBuilder.getNextBlock(worldObj, new SurroundingInventory(worldObj, xCoord, yCoord, zCoord)), - bluePrintBuilder.getContext()); - } - */ - } - public void iterateBpt() { if (items[0] == null || !(items[0].getItem() instanceof ItemBlueprint)) { if (bluePrintBuilder != null) { @@ -543,8 +502,6 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, builderRobot.setDead(); builderRobot = null; } - - cleanPathLasers(); } @Override @@ -579,9 +536,42 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, builderRobot = null; } - if (!worldObj.isRemote) { - debugForceBlueprintCompletion(); + if (worldObj.isRemote) { + return; } + + iterateBpt(); + debugForceBlueprintCompletion(); + + if (done) { + return; + //}// else if (builderRobot != null && !builderRobot.readyToBuild()) { + // return; + } else if (mjStored < 25) { + return; + } + + + + /* Temp fix to make Builders impotent as the World Destroyers they are + if (bluePrintBuilder != null && !bluePrintBuilder.done) { + if (!box.isInitialized()) { + box.initialize(bluePrintBuilder); + } + + if (builderRobot == null) { + builderRobot = new EntityRobot(worldObj, box); + worldObj.spawnEntityInWorld(builderRobot); + } + + box.createLasers(worldObj, LaserKind.Stripes); + + builderRobot.scheduleContruction(bluePrintBuilder.getNextBlock(worldObj, new SurroundingInventory(worldObj, xCoord, yCoord, zCoord)), + bluePrintBuilder.getContext()); + } + */ + + mjStored = 0; } @Override @@ -599,16 +589,6 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, return true; } - public void cleanPathLasers() { - if (pathLasers != null) { - for (EntityLaser laser : pathLasers) { - laser.setDead(); - } - - pathLasers = null; - } - } - public boolean isBuildingBlueprint() { return getStackInSlot(0) != null && getStackInSlot(0).getItem() instanceof ItemBlueprint; } @@ -674,11 +654,6 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, return new Box (this).extendToEncompass(box).getBoundingBox(); } - @Override - public PowerReceiver getPowerReceiver(ForgeDirection side) { - return powerHandler.getPowerReceiver(); - } - public void debugForceBlueprintCompletion () { if (!debugBuildTracker.markTimeIfDelay(worldObj)) { return; diff --git a/common/buildcraft/builders/TilePathMarker.java b/common/buildcraft/builders/TilePathMarker.java index 8ba7ad6b..fdd0e677 100644 --- a/common/buildcraft/builders/TilePathMarker.java +++ b/common/buildcraft/builders/TilePathMarker.java @@ -8,15 +8,6 @@ */ package buildcraft.builders; -import buildcraft.BuildCraftBuilders; -import buildcraft.api.core.Position; -import buildcraft.core.BlockIndex; -import buildcraft.core.EntityLaser; -import buildcraft.core.EntityPowerLaser; -import buildcraft.core.network.PacketUpdate; -import buildcraft.core.network.NetworkData; -import buildcraft.core.proxy.CoreProxy; - import java.io.IOException; import java.util.Iterator; import java.util.LinkedList; @@ -25,18 +16,30 @@ import java.util.TreeSet; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import buildcraft.api.core.Position; +import buildcraft.core.BlockIndex; +import buildcraft.core.LaserData; +import buildcraft.core.network.NetworkData; +import buildcraft.core.network.PacketUpdate; public class TilePathMarker extends TileMarker { - public EntityLaser lasers[] = new EntityLaser[2]; public int x0, y0, z0, x1, y1, z1; public boolean loadLink0 = false, loadLink1 = false; - public @NetworkData - boolean tryingToConnect = false; + + @NetworkData + public LaserData lasers[] = new LaserData [2]; + + @NetworkData + public boolean tryingToConnect = false; + public TilePathMarker links[] = new TilePathMarker[2]; - public static int searchSize = 64; // TODO: this should be moved to default props + + // TODO: this should be moved to default props // A list with the pathMarkers that aren't fully connected // It only contains markers within the loaded chunks + public static int searchSize = 64; + private static LinkedList availableMarkers = new LinkedList(); public boolean isFullyConnected() { @@ -47,7 +50,7 @@ public class TilePathMarker extends TileMarker { return links[0] == pathMarker || links[1] == pathMarker; } - public void connect(TilePathMarker marker, EntityLaser laser) { + public void connect(TilePathMarker marker, LaserData laser) { if (lasers[0] == null) { lasers[0] = laser; links[0] = marker; @@ -62,26 +65,29 @@ public class TilePathMarker extends TileMarker { } public void createLaserAndConnect(TilePathMarker pathMarker) { - if (worldObj.isRemote) { return; } - EntityPowerLaser laser = new EntityPowerLaser(worldObj, new Position(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5), new Position(pathMarker.xCoord + 0.5, - pathMarker.yCoord + 0.5, pathMarker.zCoord + 0.5)); - laser.show(); + LaserData laser = new LaserData + (new Position(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5), + new Position(pathMarker.xCoord + 0.5, pathMarker.yCoord + 0.5, pathMarker.zCoord + 0.5)); - laser.setTexture(0); - worldObj.spawnEntityInWorld(laser); + LaserData laser2 = new LaserData (laser.head, laser.tail); + laser2.isVisible = false; connect(pathMarker, laser); - pathMarker.connect(this, laser); + pathMarker.connect(this, laser2); } - // Searches the availableMarkers list for the nearest available that is within searchSize + /** + * Searches the availableMarkers list for the nearest available that is + * within searchSize + */ private TilePathMarker findNearestAvailablePathMarker() { TilePathMarker nearestAvailable = null; - double nearestDistance = 0, distance; // The initialization of nearestDistance is only to make the compiler shut up + // The initialization of nearestDistance is only to make the compiler shut up + double nearestDistance = 0, distance; for (TilePathMarker t : availableMarkers) { if (t == this || t == this.links[0] || t == this.links[1] || t.getWorldObj().provider.dimensionId != this.getWorldObj().provider.dimensionId) { @@ -110,7 +116,9 @@ public class TilePathMarker extends TileMarker { return; } - tryingToConnect = !tryingToConnect; // Allow the user to stop the path marker from searching for new path markers to connect + // Allow the user to stop the path marker from searching for new path markers to connect + tryingToConnect = !tryingToConnect; + sendNetworkUpdate(); } @@ -127,9 +135,13 @@ public class TilePathMarker extends TileMarker { if (nearestPathMarker != null) { createLaserAndConnect(nearestPathMarker); - tryingToConnect = false; - sendNetworkUpdate(); } + + tryingToConnect = false; + + sendNetworkUpdate(); + getWorld().markBlockRangeForRenderUpdate(xCoord, yCoord, zCoord, + xCoord, yCoord, zCoord); } } @@ -164,14 +176,12 @@ public class TilePathMarker extends TileMarker { public void invalidate() { super.invalidate(); - if (lasers[0] != null) { + if (links[0] != null) { links[0].unlink(this); - lasers[0].setDead(); } - if (lasers[1] != null) { + if (links[1] != null) { links[1].unlink(this); - lasers[1].setDead(); } availableMarkers.remove(this); @@ -205,6 +215,8 @@ public class TilePathMarker extends TileMarker { loadLink1 = false; } + + sendNetworkUpdate(); } private void unlink(TilePathMarker tile) { @@ -221,6 +233,8 @@ public class TilePathMarker extends TileMarker { if (!isFullyConnected() && !availableMarkers.contains(this) && !worldObj.isRemote) { availableMarkers.add(this); } + + sendNetworkUpdate(); } @Override diff --git a/common/buildcraft/core/EntityPowerLaser.java b/common/buildcraft/core/EntityPowerLaser.java deleted file mode 100644 index 57b6fa3a..00000000 --- a/common/buildcraft/core/EntityPowerLaser.java +++ /dev/null @@ -1,54 +0,0 @@ -/** - * 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.core; - -import buildcraft.api.core.Position; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; - -public class EntityPowerLaser extends EntityLaser { - - private byte texture; - - public EntityPowerLaser(World world) { - super(world); - } - - public EntityPowerLaser(World world, Position head, Position tail) { - super(world, head, tail); - } - - @Override - protected void entityInit() { - super.entityInit(); - dataWatcher.addObject(15, (byte) 0); - } - - @Override - public ResourceLocation getTexture() { - return LASER_TEXTURES[texture]; - } - - public void setTexture(int texture) { - this.texture = (byte) texture; - needsUpdate = true; - } - - @Override - protected void updateDataClient() { - super.updateDataClient(); - texture = dataWatcher.getWatchableObjectByte(15); - } - - @Override - protected void updateDataServer() { - super.updateDataServer(); - dataWatcher.updateObject(15, texture); - } -} diff --git a/common/buildcraft/core/LaserData.java b/common/buildcraft/core/LaserData.java index e906df15..823815a9 100755 --- a/common/buildcraft/core/LaserData.java +++ b/common/buildcraft/core/LaserData.java @@ -10,13 +10,18 @@ package buildcraft.core; import net.minecraft.nbt.NBTTagCompound; import buildcraft.api.core.Position; +import buildcraft.core.network.NetworkData; public class LaserData { + @NetworkData public Position head = new Position (0, 0, 0), tail = new Position(0, 0, 0); + + @NetworkData + public boolean isVisible = true; + public double renderSize = 0; public double angleY = 0; public double angleZ = 0; - public boolean isVisible = true; public double wavePosition = 0; public int laserTexAnimation = 0; diff --git a/common/buildcraft/core/proxy/CoreProxyClient.java b/common/buildcraft/core/proxy/CoreProxyClient.java index 7ed61d38..abdd4072 100644 --- a/common/buildcraft/core/proxy/CoreProxyClient.java +++ b/common/buildcraft/core/proxy/CoreProxyClient.java @@ -30,10 +30,8 @@ import buildcraft.BuildCraftCore; import buildcraft.api.core.LaserKind; import buildcraft.core.EntityBlock; import buildcraft.core.EntityEnergyLaser; -import buildcraft.core.EntityPowerLaser; import buildcraft.core.render.RenderEnergyLaser; import buildcraft.core.render.RenderEntityBlock; -import buildcraft.core.render.RenderLaser; import buildcraft.core.render.RenderRobot; import buildcraft.core.render.RenderingEntityBlocks; import buildcraft.core.render.RenderingMarkers; @@ -73,16 +71,18 @@ public class CoreProxyClient extends CoreProxy { @SuppressWarnings("rawtypes") @Override public void feedSubBlocks(Block block, CreativeTabs tab, List itemList) { - if (block == null) + if (block == null) { return; + } block.getSubBlocks(Item.getItemFromBlock(block), tab, itemList); } @Override public String getItemDisplayName(ItemStack stack) { - if (stack.getItem() == null) + if (stack.getItem() == null) { return ""; + } return stack.getDisplayName(); } @@ -111,7 +111,6 @@ public class CoreProxyClient extends CoreProxy { @Override public void initializeEntityRendering() { RenderingRegistry.registerEntityRenderingHandler(EntityBlock.class, RenderEntityBlock.INSTANCE); - RenderingRegistry.registerEntityRenderingHandler(EntityPowerLaser.class, new RenderLaser()); RenderingRegistry.registerEntityRenderingHandler(EntityEnergyLaser.class, new RenderEnergyLaser()); RenderingRegistry.registerEntityRenderingHandler(EntityRobot.class, new RenderRobot()); RenderingRegistry.registerEntityRenderingHandler(EntityRobotBuilder.class, new RenderRobot()); diff --git a/common/buildcraft/core/render/RenderBox.java b/common/buildcraft/core/render/RenderBox.java index d74c6a96..6b58ac0c 100755 --- a/common/buildcraft/core/render/RenderBox.java +++ b/common/buildcraft/core/render/RenderBox.java @@ -27,7 +27,7 @@ public class RenderBox { for (LaserData l : box.lasersData) { l.update(); GL11.glPushMatrix(); - GL11.glTranslated(l.head.x + 0.5F, l.head.y + 0.5F, l.head.z + 0.5F); + GL11.glTranslated(0.5F, 0.5F, 0.5F); RenderLaser.doRenderLaser(t, l, texture); GL11.glPopMatrix(); } diff --git a/common/buildcraft/core/render/RenderLaser.java b/common/buildcraft/core/render/RenderLaser.java index 38124756..20122c84 100644 --- a/common/buildcraft/core/render/RenderLaser.java +++ b/common/buildcraft/core/render/RenderLaser.java @@ -99,8 +99,9 @@ public class RenderLaser extends Render { } private void doRender(EntityLaser laser, double x, double y, double z, float f, float f1) { - if (!laser.isVisible() || laser.getTexture() == null) + if (!laser.isVisible() || laser.getTexture() == null) { return; + } GL11.glPushMatrix(); GL11.glPushAttrib(GL11.GL_ENABLE_BIT); @@ -166,6 +167,7 @@ public class RenderLaser extends Render { GL11.glPushMatrix(); + GL11.glTranslated(laser.head.x, laser.head.y, laser.head.z); laser.update(); GL11.glRotatef((float) laser.angleZ, 0, 1, 0);