diff --git a/buildnumber.txt b/buildnumber.txt index 0e0946fd..6a5e6d92 100644 --- a/buildnumber.txt +++ b/buildnumber.txt @@ -1 +1 @@ -68 +69 diff --git a/info.txt b/info.txt index 2fe8d486..078fdcb2 100644 --- a/info.txt +++ b/info.txt @@ -61,3 +61,4 @@ x AssemblyLine_v0.2.4.64.jar AssemblyLine_v0.2.4.64_api.zip @ AssemblyLine_v0.2.4.66.jar AssemblyLine_v0.2.4.66_api.zip @ AssemblyLine_v0.2.4.67.jar AssemblyLine_v0.2.4.67_api.zip * AssemblyLine_v0.2.4.68.jar AssemblyLine_v0.2.4.68_api.zip +@ AssemblyLine_v0.2.5.69.jar AssemblyLine_v0.2.5.69_api.zip diff --git a/src/minecraft/assemblyline/client/render/RenderArmbot.java b/src/minecraft/assemblyline/client/render/RenderArmbot.java index 31b8f571..d2bed03a 100644 --- a/src/minecraft/assemblyline/client/render/RenderArmbot.java +++ b/src/minecraft/assemblyline/client/render/RenderArmbot.java @@ -19,8 +19,8 @@ import assemblyline.common.machine.armbot.TileEntityArmbot; public class RenderArmbot extends TileEntitySpecialRenderer { - public static final ModelArmbot MODEL = new ModelArmbot(); - public static final String TEXTURE = "armbot.png"; + public static final ModelArmbot MODEL = new ModelArmbot(); + public static final String TEXTURE = "armbot.png"; @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float var8) @@ -46,24 +46,26 @@ public class RenderArmbot extends TileEntitySpecialRenderer GL11.glPushMatrix(); GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); GL11.glScalef(1.0F, -1F, -1F); - + MODEL.render(0.0625f, ((TileEntityArmbot) tileEntity).renderYaw, ((TileEntityArmbot) tileEntity).renderPitch); - - //debug render - /*GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GL11.glColor4f(1f, 1f, 1f, 0.25f); - MODEL.render(0.0625f, ((TileEntityArmbot) tileEntity).rotationYaw, ((TileEntityArmbot) tileEntity).rotationPitch); - GL11.glColor4f(1f, 1f, 1f, 1f);*/ - + + // debug render + /* + * GL11.glEnable(GL11.GL_BLEND); GL11.glEnable(GL11.GL_ALPHA_TEST); + * GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glColor4f(1f, + * 1f, 1f, 0.25f); MODEL.render(0.0625f, ((TileEntityArmbot) tileEntity).rotationYaw, + * ((TileEntityArmbot) tileEntity).rotationPitch); GL11.glColor4f(1f, 1f, 1f, 1f); + */ + Vector3 handPos = ((TileEntityArmbot) tileEntity).getHandPosition(); handPos.subtract(new Vector3(tileEntity)); GL11.glPushMatrix(); GL11.glRotatef(180, 0, 0, 1); + for (Entity entity : ((TileEntityArmbot) tileEntity).grabbedEntities) { - if (entity != null && entity instanceof EntityItem) // items don't move right, so we render them manually + if (entity != null && entity instanceof EntityItem) // items don't move right, so we + // render them manually { EntityItem item = (EntityItem) entity; item.age = 0; diff --git a/src/minecraft/assemblyline/common/machine/belt/BlockConveyorBelt.java b/src/minecraft/assemblyline/common/machine/belt/BlockConveyorBelt.java index d5f809fe..fb3261b8 100644 --- a/src/minecraft/assemblyline/common/machine/belt/BlockConveyorBelt.java +++ b/src/minecraft/assemblyline/common/machine/belt/BlockConveyorBelt.java @@ -241,7 +241,7 @@ public class BlockConveyorBelt extends BlockMachine TileEntityConveyorBelt tileEntity = (TileEntityConveyorBelt) world.getBlockTileEntity(x, y, z); tileEntity.updatePowerTransferRange(); - if (tileEntity.isRunning()) + if (tileEntity.isRunning() && !world.isBlockIndirectlyGettingPowered(x, y, z)) { float acceleration = tileEntity.acceleration; float maxSpeed = tileEntity.maxSpeed; diff --git a/src/minecraft/assemblyline/common/machine/belt/TileEntityConveyorBelt.java b/src/minecraft/assemblyline/common/machine/belt/TileEntityConveyorBelt.java index 494fbf69..1c1966e4 100644 --- a/src/minecraft/assemblyline/common/machine/belt/TileEntityConveyorBelt.java +++ b/src/minecraft/assemblyline/common/machine/belt/TileEntityConveyorBelt.java @@ -117,9 +117,9 @@ public class TileEntityConveyorBelt extends TileEntityAssemblyNetwork implements PacketManager.sendPacketToClients(this.getDescriptionPacket()); } - if (this.isRunning()) + if (this.isRunning() && !this.worldObj.isBlockIndirectlyGettingPowered(this.xCoord, this.yCoord, this.zCoord)) { - if (this.ticks % 10 == 0 && this.worldObj.isRemote && this.worldObj.getBlockId(xCoord - 1, yCoord, zCoord) != AssemblyLine.blockConveyorBelt.blockID && this.worldObj.getBlockId(xCoord, yCoord, zCoord - 1) != AssemblyLine.blockConveyorBelt.blockID) + if (this.ticks % 10 == 0 && this.worldObj.isRemote && this.worldObj.getBlockId(this.xCoord - 1, this.yCoord, this.zCoord) != AssemblyLine.blockConveyorBelt.blockID && this.worldObj.getBlockId(xCoord, yCoord, zCoord - 1) != AssemblyLine.blockConveyorBelt.blockID) { this.worldObj.playSound(this.xCoord, this.yCoord, this.zCoord, "assemblyline.conveyor", 0.5f, 0.7f, true); } @@ -278,31 +278,34 @@ public class TileEntityConveyorBelt extends TileEntityAssemblyNetwork implements public int getAnimationFrame() { - TileEntity te = null; - te = this.worldObj.getBlockTileEntity(this.xCoord - 1, this.yCoord, this.zCoord); - - if (te != null) + if (!this.worldObj.isBlockIndirectlyGettingPowered(this.xCoord, this.yCoord, this.zCoord)) { - if (te instanceof TileEntityConveyorBelt) + TileEntity te = null; + te = this.worldObj.getBlockTileEntity(this.xCoord - 1, this.yCoord, this.zCoord); + + if (te != null) { - if (((TileEntityConveyorBelt) te).getSlant() == this.slantType) - return ((TileEntityConveyorBelt) te).getAnimationFrame(); + if (te instanceof TileEntityConveyorBelt) + { + if (((TileEntityConveyorBelt) te).getSlant() == this.slantType) + return ((TileEntityConveyorBelt) te).getAnimationFrame(); + } + } - } + te = this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord - 1); - te = this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord - 1); - - if (te != null) - { - if (te instanceof TileEntityConveyorBelt) + if (te != null) { - if (((TileEntityConveyorBelt) te).getSlant() == this.slantType) - return ((TileEntityConveyorBelt) te).getAnimationFrame(); + if (te instanceof TileEntityConveyorBelt) + { + if (((TileEntityConveyorBelt) te).getSlant() == this.slantType) + return ((TileEntityConveyorBelt) te).getAnimationFrame(); + } + } - } - + return this.animFrame; } diff --git a/src/minecraft/assemblyline/common/machine/command/CommandPlace.java b/src/minecraft/assemblyline/common/machine/command/CommandPlace.java index 18667152..601978ba 100644 --- a/src/minecraft/assemblyline/common/machine/command/CommandPlace.java +++ b/src/minecraft/assemblyline/common/machine/command/CommandPlace.java @@ -5,6 +5,7 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; +import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.IPlantable; import universalelectricity.core.vector.Vector3; @@ -44,19 +45,27 @@ public class CommandPlace extends Command else if (itemStack.getItem() instanceof IPlantable) { IPlantable plantable = ((IPlantable) itemStack.getItem()); - int blockID = plantable.getPlantID(this.world, serachPosition.intX(), serachPosition.intY(), serachPosition.intZ()); - int blockMetadata = plantable.getPlantMetadata(this.world, serachPosition.intX(), serachPosition.intY(), serachPosition.intZ()); + Block blockBelow = Block.blocksList[Vector3.add(serachPosition, new Vector3(0, -1, 0)).getBlockID(this.world)]; - if (!world.setBlockAndMetadataWithNotify(serachPosition.intX(), serachPosition.intY(), serachPosition.intZ(), blockID, blockMetadata)) { return false; } - - if (world.getBlockId(serachPosition.intX(), serachPosition.intY(), serachPosition.intZ()) == blockID) + if (blockBelow != null) { - Block.blocksList[blockID].onBlockPlacedBy(world, serachPosition.intX(), serachPosition.intY(), serachPosition.intZ(), null); - Block.blocksList[blockID].onPostBlockPlaced(world, serachPosition.intX(), serachPosition.intY(), serachPosition.intZ(), blockMetadata); - } + if (blockBelow.canSustainPlant(this.world, serachPosition.intX(), serachPosition.intY(), serachPosition.intZ(), ForgeDirection.UP, plantable)) + { + int blockID = plantable.getPlantID(this.world, serachPosition.intX(), serachPosition.intY(), serachPosition.intZ()); + int blockMetadata = plantable.getPlantMetadata(this.world, serachPosition.intX(), serachPosition.intY(), serachPosition.intZ()); - this.tileEntity.grabbedEntities.remove(entity); - return false; + if (this.world.setBlockAndMetadataWithNotify(serachPosition.intX(), serachPosition.intY(), serachPosition.intZ(), blockID, blockMetadata)) + { + if (this.world.getBlockId(serachPosition.intX(), serachPosition.intY(), serachPosition.intZ()) == blockID) + { + Block.blocksList[blockID].onBlockPlacedBy(world, serachPosition.intX(), serachPosition.intY(), serachPosition.intZ(), null); + Block.blocksList[blockID].onPostBlockPlaced(world, serachPosition.intX(), serachPosition.intY(), serachPosition.intZ(), blockMetadata); + this.tileEntity.grabbedEntities.remove(entity); + return false; + } + } + } + } } } }