From 07dfc35e0e764f6f623cede43bf982fb467db36b Mon Sep 17 00:00:00 2001 From: Eloraam Date: Wed, 28 Sep 2011 23:35:31 +0000 Subject: [PATCH] Fixed TileEntities, bumped version number. --- .../net/minecraft/src/forge/ForgeHooks.java | 4 +- forge/minecraft.patch | 783 ++++++++++++++---- 2 files changed, 603 insertions(+), 184 deletions(-) diff --git a/forge/forge_common/net/minecraft/src/forge/ForgeHooks.java b/forge/forge_common/net/minecraft/src/forge/ForgeHooks.java index 647f19505b..c6030ac91a 100644 --- a/forge/forge_common/net/minecraft/src/forge/ForgeHooks.java +++ b/forge/forge_common/net/minecraft/src/forge/ForgeHooks.java @@ -138,8 +138,8 @@ public class ForgeHooks { } public static final int majorVersion=1; - public static final int minorVersion=0; - public static final int revisionVersion=6; + public static final int minorVersion=1; + public static final int revisionVersion=0; static { System.out.printf("MinecraftForge V%d.%d.%d Initialized\n",majorVersion,minorVersion,revisionVersion); } diff --git a/forge/minecraft.patch b/forge/minecraft.patch index ae7a7c9e85..4553da4d8f 100644 --- a/forge/minecraft.patch +++ b/forge/minecraft.patch @@ -1,6 +1,6 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockButton.java ../src_work/minecraft/net/minecraft/src/BlockButton.java ---- ../src_base/minecraft/net/minecraft/src/BlockButton.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/BlockButton.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/BlockButton.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/BlockButton.java 2011-09-26 15:46:46.000000000 -0400 @@ -41,36 +41,36 @@ public boolean canPlaceBlockOnSide(World world, int i, int j, int k, int l) @@ -119,8 +119,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockButt flag = true; } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockChest.java ../src_work/minecraft/net/minecraft/src/BlockChest.java ---- ../src_base/minecraft/net/minecraft/src/BlockChest.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/BlockChest.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/BlockChest.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/BlockChest.java 2011-09-26 15:46:46.000000000 -0400 @@ -423,23 +423,23 @@ { return true; @@ -150,9 +150,34 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockChes { return true; } +diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockContainer.java ../src_work/minecraft/net/minecraft/src/BlockContainer.java +--- ../src_base/minecraft/net/minecraft/src/BlockContainer.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/BlockContainer.java 2011-09-28 18:22:54.000000000 -0400 +@@ -26,7 +26,7 @@ + public void onBlockAdded(World world, int i, int j, int k) + { + super.onBlockAdded(world, i, j, k); +- world.setBlockTileEntity(i, j, k, getBlockEntity()); ++ world.setBlockTileEntity(i, j, k, getBlockEntity(world.getBlockMetadata(i,j,k))); + } + + public void onBlockRemoval(World world, int i, int j, int k) +@@ -37,6 +37,12 @@ + + public abstract TileEntity getBlockEntity(); + ++ /* FORGE: Metadata-sensitive version, to fix 1.8.1 regression. ++ */ ++ public TileEntity getBlockEntity(int md) { ++ return getBlockEntity(); ++ } ++ + public void playBlock(World world, int i, int j, int k, int l, int i1) + { + super.playBlock(world, i, j, k, l, i1); diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockDoor.java ../src_work/minecraft/net/minecraft/src/BlockDoor.java ---- ../src_base/minecraft/net/minecraft/src/BlockDoor.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/BlockDoor.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/BlockDoor.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/BlockDoor.java 2011-09-26 15:46:46.000000000 -0400 @@ -178,7 +178,7 @@ world.setBlockWithNotify(i, j, k, 0); flag = true; @@ -172,8 +197,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockDoor } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Block.java ../src_work/minecraft/net/minecraft/src/Block.java ---- ../src_base/minecraft/net/minecraft/src/Block.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/Block.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/Block.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/Block.java 2011-09-26 15:46:46.000000000 -0400 @@ -4,6 +4,7 @@ package net.minecraft.src; @@ -332,8 +357,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Block.jav { try diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockLadder.java ../src_work/minecraft/net/minecraft/src/BlockLadder.java ---- ../src_base/minecraft/net/minecraft/src/BlockLadder.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/BlockLadder.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/BlockLadder.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/BlockLadder.java 2011-09-26 15:46:46.000000000 -0400 @@ -63,6 +63,11 @@ return super.getSelectedBoundingBoxFromPool(world, i, j, k); } @@ -417,8 +442,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockLadd flag = true; } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockLever.java ../src_work/minecraft/net/minecraft/src/BlockLever.java ---- ../src_base/minecraft/net/minecraft/src/BlockLever.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/BlockLever.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/BlockLever.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/BlockLever.java 2011-09-26 15:46:46.000000000 -0400 @@ -40,44 +40,44 @@ public boolean canPlaceBlockOnSide(World world, int i, int j, int k, int l) @@ -538,8 +563,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockLeve flag = true; } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockPressurePlate.java ../src_work/minecraft/net/minecraft/src/BlockPressurePlate.java ---- ../src_base/minecraft/net/minecraft/src/BlockPressurePlate.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/BlockPressurePlate.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/BlockPressurePlate.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/BlockPressurePlate.java 2011-09-26 15:46:46.000000000 -0400 @@ -46,7 +46,8 @@ public boolean canPlaceBlockAt(World world, int i, int j, int k) @@ -561,8 +586,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockPres flag = true; } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockRail.java ../src_work/minecraft/net/minecraft/src/BlockRail.java ---- ../src_base/minecraft/net/minecraft/src/BlockRail.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/BlockRail.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/BlockRail.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/BlockRail.java 2011-09-26 15:46:46.000000000 -0400 @@ -16,12 +16,12 @@ public static final boolean isRailBlockAt(World world, int i, int j, int k) { @@ -617,8 +642,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockRail flag = true; } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockRedstoneRepeater.java ../src_work/minecraft/net/minecraft/src/BlockRedstoneRepeater.java ---- ../src_base/minecraft/net/minecraft/src/BlockRedstoneRepeater.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/BlockRedstoneRepeater.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/BlockRedstoneRepeater.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/BlockRedstoneRepeater.java 2011-09-26 15:46:46.000000000 -0400 @@ -27,7 +27,7 @@ public boolean canPlaceBlockAt(World world, int i, int j, int k) @@ -638,8 +663,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockReds return false; } else diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockRedstoneWire.java ../src_work/minecraft/net/minecraft/src/BlockRedstoneWire.java ---- ../src_base/minecraft/net/minecraft/src/BlockRedstoneWire.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/BlockRedstoneWire.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/BlockRedstoneWire.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/BlockRedstoneWire.java 2011-09-26 15:46:46.000000000 -0400 @@ -3,6 +3,7 @@ // Decompiler options: packimports(3) braces deadcode @@ -669,8 +694,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockReds { return true; diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockTorch.java ../src_work/minecraft/net/minecraft/src/BlockTorch.java ---- ../src_base/minecraft/net/minecraft/src/BlockTorch.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/BlockTorch.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/BlockTorch.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/BlockTorch.java 2011-09-26 15:46:46.000000000 -0400 @@ -41,24 +41,24 @@ private boolean func_31032_h(World world, int i, int j, int k) @@ -774,8 +799,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockTorc flag = true; } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockTrapDoor.java ../src_work/minecraft/net/minecraft/src/BlockTrapDoor.java ---- ../src_base/minecraft/net/minecraft/src/BlockTrapDoor.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/BlockTrapDoor.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/BlockTrapDoor.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/BlockTrapDoor.java 2011-09-26 15:46:46.000000000 -0400 @@ -147,7 +147,7 @@ { j1--; @@ -811,8 +836,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockTrap + public static boolean disableValidation=false; } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Chunk.java ../src_work/minecraft/net/minecraft/src/Chunk.java ---- ../src_base/minecraft/net/minecraft/src/Chunk.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/Chunk.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/Chunk.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/Chunk.java 2011-09-28 19:16:54.000000000 -0400 @@ -3,6 +3,7 @@ // Decompiler options: packimports(3) braces deadcode @@ -950,6 +975,15 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Chunk.jav blocks[i << 11 | k << 7 | j] = (byte)(byte0 & 0xff); if(l1 != 0 && !worldObj.multiplayerWorld) { +@@ -380,7 +364,7 @@ + TileEntity tileentity = getChunkBlockTileEntity(i, j, k); + if(tileentity == null) + { +- tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity(); ++ tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity(i1); + worldObj.setBlockTileEntity(i, j, k, tileentity); + } + if(tileentity != null) @@ -410,8 +394,6 @@ field_35845_c[i1] = -999; } @@ -975,7 +1009,53 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Chunk.jav blocks[i << 11 | k << 7 | j] = (byte)(byte0 & 0xff); if(k1 != 0) { -@@ -777,8 +764,6 @@ +@@ -452,7 +439,7 @@ + TileEntity tileentity = getChunkBlockTileEntity(i, j, k); + if(tileentity == null) + { +- tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity(); ++ tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity(0); + worldObj.setBlockTileEntity(i, j, k, tileentity); + } + if(tileentity != null) +@@ -603,7 +590,7 @@ + } + if(tileentity == null) + { +- tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity(); ++ tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity(getBlockMetadata(i,j,k)); + worldObj.setBlockTileEntity(xPosition * 16 + i, j, zPosition * 16 + k, tileentity); + } + tileentity = (TileEntity)chunkTileEntityMap.get(chunkposition); +@@ -618,6 +605,18 @@ + } + } + ++ /* FORGE: Used to remove only invalid TileEntities */ ++ public void cleanChunkBlockTileEntity(int i, int j, int k) ++ { ++ ChunkPosition chunkposition = new ChunkPosition(i, j, k); ++ if(isChunkLoaded) ++ { ++ TileEntity tileentity = (TileEntity)chunkTileEntityMap.get(chunkposition); ++ if(tileentity!=null && tileentity.isInvalid()) ++ chunkTileEntityMap.remove(chunkposition); ++ } ++ } ++ + public void addTileEntity(TileEntity tileentity) + { + int i = tileentity.xCoord - xPosition * 16; +@@ -626,7 +625,7 @@ + setChunkBlockTileEntity(i, j, k, tileentity); + if(isChunkLoaded) + { +- worldObj.loadedTileEntityList.add(tileentity); ++ worldObj.addTileEntity(tileentity); + } + } + +@@ -777,8 +776,6 @@ { for(int l2 = k; l2 < j1; l2++) { @@ -984,7 +1064,7 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Chunk.jav int l3 = l1 << 11 | l2 << 7 | j; int l4 = i1 - j; System.arraycopy(abyte0, k1, blocks, l3, l4); -@@ -792,8 +777,6 @@ +@@ -792,8 +789,6 @@ { for(int i3 = k; i3 < j1; i3++) { @@ -993,7 +1073,7 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Chunk.jav int i4 = (i2 << 11 | i3 << 7 | j) >> 1; int i5 = (i1 - j) / 2; System.arraycopy(abyte0, k1, data.data, i4, i5); -@@ -806,8 +789,6 @@ +@@ -806,8 +801,6 @@ { for(int j3 = k; j3 < j1; j3++) { @@ -1002,7 +1082,7 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Chunk.jav int j4 = (j2 << 11 | j3 << 7 | j) >> 1; int j5 = (i1 - j) / 2; System.arraycopy(abyte0, k1, blocklightMap.data, j4, j5); -@@ -820,8 +801,6 @@ +@@ -820,8 +813,6 @@ { for(int k3 = k; k3 < j1; k3++) { @@ -1011,7 +1091,7 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Chunk.jav int k4 = (k2 << 11 | k3 << 7 | j) >> 1; int k5 = (i1 - j) / 2; System.arraycopy(abyte0, k1, skylightMap.data, k4, k5); -@@ -880,7 +859,6 @@ +@@ -880,7 +871,6 @@ int l = field_35845_c[k]; if(l == -999) { @@ -1020,8 +1100,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Chunk.jav for(l = -1; i1 > 0 && l == -1;) { diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/EffectRenderer.java ../src_work/minecraft/net/minecraft/src/EffectRenderer.java ---- ../src_base/minecraft/net/minecraft/src/EffectRenderer.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/EffectRenderer.java 2011-09-26 15:34:24.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/EffectRenderer.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/EffectRenderer.java 2011-09-26 15:46:46.000000000 -0400 @@ -7,6 +7,9 @@ import java.util.*; import org.lwjgl.opengl.GL11; @@ -1169,8 +1249,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/EffectRen private Random rand; } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/EntityLiving.java ../src_work/minecraft/net/minecraft/src/EntityLiving.java ---- ../src_base/minecraft/net/minecraft/src/EntityLiving.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/EntityLiving.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/EntityLiving.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/EntityLiving.java 2011-09-26 15:46:46.000000000 -0400 @@ -624,7 +624,9 @@ int i = MathHelper.floor_double(posX); int j = MathHelper.floor_double(boundingBox.minY); @@ -1183,8 +1263,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/EntityLiv public void writeEntityToNBT(NBTTagCompound nbttagcompound) diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/EntityPlayer.java ../src_work/minecraft/net/minecraft/src/EntityPlayer.java ---- ../src_base/minecraft/net/minecraft/src/EntityPlayer.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/EntityPlayer.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/EntityPlayer.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/EntityPlayer.java 2011-09-26 15:46:46.000000000 -0400 @@ -4,6 +4,10 @@ package net.minecraft.src; @@ -1260,8 +1340,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/EntityPla { if(isPlayerSleeping() || !isEntityAlive()) diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/EntityRenderer.java ../src_work/minecraft/net/minecraft/src/EntityRenderer.java ---- ../src_base/minecraft/net/minecraft/src/EntityRenderer.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/EntityRenderer.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/EntityRenderer.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/EntityRenderer.java 2011-09-26 15:46:46.000000000 -0400 @@ -4,6 +4,7 @@ package net.minecraft.src; @@ -1297,8 +1377,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/EntityRen } renderRainSnow(f); diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Explosion.java ../src_work/minecraft/net/minecraft/src/Explosion.java ---- ../src_base/minecraft/net/minecraft/src/Explosion.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/Explosion.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/Explosion.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/Explosion.java 2011-09-26 15:46:46.000000000 -0400 @@ -5,6 +5,7 @@ package net.minecraft.src; @@ -1327,8 +1407,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Explosion if(f1 > 0.0F) { diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/FurnaceRecipes.java ../src_work/minecraft/net/minecraft/src/FurnaceRecipes.java ---- ../src_base/minecraft/net/minecraft/src/FurnaceRecipes.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/FurnaceRecipes.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/FurnaceRecipes.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/FurnaceRecipes.java 2011-09-26 15:46:46.000000000 -0400 @@ -6,6 +6,7 @@ import java.util.HashMap; @@ -1386,8 +1466,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/FurnaceRe } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemBlock.java ../src_work/minecraft/net/minecraft/src/ItemBlock.java ---- ../src_base/minecraft/net/minecraft/src/ItemBlock.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/ItemBlock.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/ItemBlock.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/ItemBlock.java 2011-09-26 15:46:46.000000000 -0400 @@ -62,7 +62,7 @@ { return false; @@ -1398,8 +1478,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemBlock return false; } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemBucket.java ../src_work/minecraft/net/minecraft/src/ItemBucket.java ---- ../src_base/minecraft/net/minecraft/src/ItemBucket.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/ItemBucket.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/ItemBucket.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/ItemBucket.java 2011-09-26 15:46:46.000000000 -0400 @@ -6,6 +6,8 @@ import java.util.Random; @@ -1422,8 +1502,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemBucke { world.setBlockWithNotify(i, j, k, 0); diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemDye.java ../src_work/minecraft/net/minecraft/src/ItemDye.java ---- ../src_base/minecraft/net/minecraft/src/ItemDye.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/ItemDye.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/ItemDye.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/ItemDye.java 2011-09-26 15:46:46.000000000 -0400 @@ -35,7 +35,7 @@ public boolean onItemUse(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l) @@ -1434,8 +1514,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemDye.j return false; } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemFlintAndSteel.java ../src_work/minecraft/net/minecraft/src/ItemFlintAndSteel.java ---- ../src_base/minecraft/net/minecraft/src/ItemFlintAndSteel.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/ItemFlintAndSteel.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/ItemFlintAndSteel.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/ItemFlintAndSteel.java 2011-09-26 15:46:46.000000000 -0400 @@ -46,7 +46,7 @@ { i++; @@ -1446,8 +1526,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemFlint return false; } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemHoe.java ../src_work/minecraft/net/minecraft/src/ItemHoe.java ---- ../src_base/minecraft/net/minecraft/src/ItemHoe.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/ItemHoe.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/ItemHoe.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/ItemHoe.java 2011-09-26 15:46:46.000000000 -0400 @@ -21,7 +21,7 @@ public boolean onItemUse(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l) @@ -1458,8 +1538,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemHoe.j return false; } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Item.java ../src_work/minecraft/net/minecraft/src/Item.java ---- ../src_base/minecraft/net/minecraft/src/Item.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/Item.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/Item.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/Item.java 2011-09-26 15:46:46.000000000 -0400 @@ -76,6 +76,13 @@ return 1.0F; } @@ -1475,8 +1555,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Item.java { return itemstack; diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemRedstone.java ../src_work/minecraft/net/minecraft/src/ItemRedstone.java ---- ../src_base/minecraft/net/minecraft/src/ItemRedstone.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/ItemRedstone.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/ItemRedstone.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/ItemRedstone.java 2011-09-26 15:46:46.000000000 -0400 @@ -50,7 +50,7 @@ return false; } @@ -1487,8 +1567,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemRedst return false; } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemReed.java ../src_work/minecraft/net/minecraft/src/ItemReed.java ---- ../src_base/minecraft/net/minecraft/src/ItemReed.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/ItemReed.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/ItemReed.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/ItemReed.java 2011-09-26 15:46:46.000000000 -0400 @@ -52,7 +52,7 @@ i++; } @@ -1499,8 +1579,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemReed. return false; } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemRenderer.java ../src_work/minecraft/net/minecraft/src/ItemRenderer.java ---- ../src_base/minecraft/net/minecraft/src/ItemRenderer.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/ItemRenderer.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/ItemRenderer.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/ItemRenderer.java 2011-09-26 15:46:46.000000000 -0400 @@ -5,6 +5,10 @@ package net.minecraft.src; @@ -1542,8 +1622,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemRende Tessellator tessellator = Tessellator.instance; int i = entityliving.getItemIcon(itemstack); diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemSeeds.java ../src_work/minecraft/net/minecraft/src/ItemSeeds.java ---- ../src_base/minecraft/net/minecraft/src/ItemSeeds.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/ItemSeeds.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/ItemSeeds.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/ItemSeeds.java 2011-09-26 15:46:46.000000000 -0400 @@ -24,7 +24,7 @@ { return false; @@ -1554,8 +1634,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemSeeds return false; } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemTool.java ../src_work/minecraft/net/minecraft/src/ItemTool.java ---- ../src_base/minecraft/net/minecraft/src/ItemTool.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/ItemTool.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/ItemTool.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/ItemTool.java 2011-09-26 15:46:46.000000000 -0400 @@ -4,6 +4,8 @@ package net.minecraft.src; @@ -1591,8 +1671,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemTool. protected EnumToolMaterial toolMaterial; } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/MovingObjectPosition.java ../src_work/minecraft/net/minecraft/src/MovingObjectPosition.java ---- ../src_base/minecraft/net/minecraft/src/MovingObjectPosition.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/MovingObjectPosition.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/MovingObjectPosition.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/MovingObjectPosition.java 2011-09-26 15:46:46.000000000 -0400 @@ -35,4 +35,7 @@ public int sideHit; public Vec3D hitVec; @@ -1602,8 +1682,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/MovingObj + public int subHit=-1; } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/PlayerController.java ../src_work/minecraft/net/minecraft/src/PlayerController.java ---- ../src_base/minecraft/net/minecraft/src/PlayerController.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/PlayerController.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/PlayerController.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/PlayerController.java 2011-09-26 15:46:46.000000000 -0400 @@ -3,6 +3,7 @@ // Decompiler options: packimports(3) braces deadcode @@ -1621,8 +1701,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/PlayerCon return true; } else diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/PlayerControllerMP.java ../src_work/minecraft/net/minecraft/src/PlayerControllerMP.java ---- ../src_base/minecraft/net/minecraft/src/PlayerControllerMP.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/PlayerControllerMP.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/PlayerControllerMP.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/PlayerControllerMP.java 2011-09-26 15:46:46.000000000 -0400 @@ -4,6 +4,9 @@ package net.minecraft.src; @@ -1679,8 +1759,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/PlayerCon } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/PlayerControllerSP.java ../src_work/minecraft/net/minecraft/src/PlayerControllerSP.java ---- ../src_base/minecraft/net/minecraft/src/PlayerControllerSP.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/PlayerControllerSP.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/PlayerControllerSP.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/PlayerControllerSP.java 2011-09-26 15:46:46.000000000 -0400 @@ -3,6 +3,8 @@ // Decompiler options: packimports(3) braces deadcode @@ -1744,8 +1824,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/PlayerCon } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/RenderBlocks.java ../src_work/minecraft/net/minecraft/src/RenderBlocks.java ---- ../src_base/minecraft/net/minecraft/src/RenderBlocks.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/RenderBlocks.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/RenderBlocks.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/RenderBlocks.java 2011-09-26 15:46:46.000000000 -0400 @@ -2980,7 +2980,7 @@ colorBlueTopRight *= f27; int j2 = block.getBlockTexture(blockAccess, i, j, k, 2); @@ -1819,8 +1899,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/RenderBlo tessellator.setColorOpaque_F(f12 * f, f15 * f1, f18 * f2); renderSouthFace(block, i, j, k, 38); diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/RenderEngine.java ../src_work/minecraft/net/minecraft/src/RenderEngine.java ---- ../src_base/minecraft/net/minecraft/src/RenderEngine.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/RenderEngine.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/RenderEngine.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/RenderEngine.java 2011-09-26 15:46:46.000000000 -0400 @@ -128,6 +128,9 @@ } try @@ -1832,8 +1912,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/RenderEng GLAllocation.generateTextureNames(singleIntBuffer); int i = singleIntBuffer.get(0); diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/RenderGlobal.java ../src_work/minecraft/net/minecraft/src/RenderGlobal.java ---- ../src_base/minecraft/net/minecraft/src/RenderGlobal.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/RenderGlobal.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/RenderGlobal.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/RenderGlobal.java 2011-09-26 15:46:46.000000000 -0400 @@ -1635,8 +1635,8 @@ } @@ -1857,8 +1937,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/RenderGlo private boolean occlusionEnabled; private int cloudOffsetX; diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/RenderItem.java ../src_work/minecraft/net/minecraft/src/RenderItem.java ---- ../src_base/minecraft/net/minecraft/src/RenderItem.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/RenderItem.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/RenderItem.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/RenderItem.java 2011-09-26 15:46:46.000000000 -0400 @@ -4,6 +4,10 @@ package net.minecraft.src; @@ -1972,8 +2052,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/RenderIte int k1 = Item.itemsList[i].getColorFromDamage(j); float f = (float)(k1 >> 16 & 0xff) / 255F; diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/RenderPlayer.java ../src_work/minecraft/net/minecraft/src/RenderPlayer.java ---- ../src_base/minecraft/net/minecraft/src/RenderPlayer.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/RenderPlayer.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/RenderPlayer.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/RenderPlayer.java 2011-09-26 15:46:46.000000000 -0400 @@ -4,6 +4,7 @@ package net.minecraft.src; @@ -1999,8 +2079,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/RenderPla modelbiped.bipedHead.showModel = i == 0; modelbiped.bipedHeadwear.showModel = i == 0; diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/SlotCrafting.java ../src_work/minecraft/net/minecraft/src/SlotCrafting.java ---- ../src_base/minecraft/net/minecraft/src/SlotCrafting.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/SlotCrafting.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/SlotCrafting.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/SlotCrafting.java 2011-09-26 15:46:46.000000000 -0400 @@ -3,6 +3,7 @@ // Decompiler options: packimports(3) braces deadcode @@ -2018,8 +2098,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/SlotCraft { ItemStack itemstack1 = craftMatrix.getStackInSlot(i); diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Tessellator.java ../src_work/minecraft/net/minecraft/src/Tessellator.java ---- ../src_base/minecraft/net/minecraft/src/Tessellator.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/Tessellator.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/Tessellator.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/Tessellator.java 2011-09-26 15:46:46.000000000 -0400 @@ -5,6 +5,7 @@ package net.minecraft.src; @@ -2207,8 +2287,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Tessellat + } } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/TileEntityFurnace.java ../src_work/minecraft/net/minecraft/src/TileEntityFurnace.java ---- ../src_base/minecraft/net/minecraft/src/TileEntityFurnace.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/TileEntityFurnace.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/TileEntityFurnace.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/TileEntityFurnace.java 2011-09-26 15:46:46.000000000 -0400 @@ -196,7 +196,7 @@ { return false; @@ -2234,8 +2314,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/TileEntit furnaceItemStacks[2].stackSize++; } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/TileEntity.java ../src_work/minecraft/net/minecraft/src/TileEntity.java ---- ../src_base/minecraft/net/minecraft/src/TileEntity.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/TileEntity.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/TileEntity.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/TileEntity.java 2011-09-26 15:46:46.000000000 -0400 @@ -61,6 +61,13 @@ { } @@ -2251,8 +2331,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/TileEntit { TileEntity tileentity = null; diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/TileEntityRendererPiston.java ../src_work/minecraft/net/minecraft/src/TileEntityRendererPiston.java ---- ../src_base/minecraft/net/minecraft/src/TileEntityRendererPiston.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/TileEntityRendererPiston.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/TileEntityRendererPiston.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/TileEntityRendererPiston.java 2011-09-26 15:46:46.000000000 -0400 @@ -4,6 +4,7 @@ package net.minecraft.src; @@ -2278,8 +2358,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/TileEntit } } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/World.java ../src_work/minecraft/net/minecraft/src/World.java ---- ../src_base/minecraft/net/minecraft/src/World.java 2011-09-23 19:09:32.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/World.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/World.java 2011-09-26 15:46:44.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/World.java 2011-09-28 19:01:50.000000000 -0400 @@ -336,7 +336,10 @@ public boolean isAirBlock(int i, int j, int k) @@ -2292,7 +2372,63 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/World.jav } public boolean blockExists(int i, int j, int k) -@@ -1684,7 +1687,10 @@ +@@ -1476,7 +1479,7 @@ + Chunk chunk = getChunkFromChunkCoords(tileentity.xCoord >> 4, tileentity.zCoord >> 4); + if(chunk != null) + { +- chunk.removeChunkBlockTileEntity(tileentity.xCoord & 0xf, tileentity.yCoord, tileentity.zCoord & 0xf); ++ chunk.cleanChunkBlockTileEntity(tileentity.xCoord & 0xf, tileentity.yCoord, tileentity.zCoord & 0xf); + } + } + } +@@ -1503,16 +1506,16 @@ + { + loadedTileEntityList.add(tileentity1); + } ++ } else { + if(chunkExists(tileentity1.xCoord >> 4, tileentity1.zCoord >> 4)) + { + Chunk chunk1 = getChunkFromChunkCoords(tileentity1.xCoord >> 4, tileentity1.zCoord >> 4); + if(chunk1 != null) + { +- chunk1.setChunkBlockTileEntity(tileentity1.xCoord & 0xf, tileentity1.yCoord, tileentity1.zCoord & 0xf, tileentity1); ++ chunk1.cleanChunkBlockTileEntity(tileentity1.xCoord & 0xf, tileentity1.yCoord, tileentity1.zCoord & 0xf); + } + } +- markBlockNeedsUpdate(tileentity1.xCoord, tileentity1.yCoord, tileentity1.zCoord); +- } ++ } + } while(true); + addedTileEntityList.clear(); + } +@@ -1520,13 +1523,19 @@ + + public void addTileEntity(Collection collection) + { +- if(scanningTileEntities) +- { +- addedTileEntityList.addAll(collection); +- } else +- { +- loadedTileEntityList.addAll(collection); +- } ++ List dest=scanningTileEntities ? addedTileEntityList : ++ loadedTileEntityList; ++ for(Object ob : collection) { ++ TileEntity te=(TileEntity)ob; ++ if(te.canUpdate()) dest.add(te); ++ } ++ } ++ ++ /* FORGE: Used as a bugfix */ ++ public void addTileEntity(TileEntity te) { ++ List dest=scanningTileEntities ? addedTileEntityList : ++ loadedTileEntityList; ++ if(te.canUpdate()) dest.add(te); + } + + public void updateEntity(Entity entity) +@@ -1684,7 +1693,10 @@ if(j2 == Block.fire.blockID || j2 == Block.lavaMoving.blockID || j2 == Block.lavaStill.blockID) { return true; @@ -2304,7 +2440,65 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/World.jav } } -@@ -1977,13 +1983,18 @@ +@@ -1917,44 +1929,23 @@ + + public void setBlockTileEntity(int i, int j, int k, TileEntity tileentity) + { +- if(tileentity != null && !tileentity.isInvalid()) +- { +- if(scanningTileEntities) +- { +- tileentity.xCoord = i; +- tileentity.yCoord = j; +- tileentity.zCoord = k; +- addedTileEntityList.add(tileentity); +- } else +- { +- loadedTileEntityList.add(tileentity); +- Chunk chunk = getChunkFromChunkCoords(i >> 4, k >> 4); +- if(chunk != null) +- { +- chunk.setChunkBlockTileEntity(i & 0xf, j, k & 0xf, tileentity); +- } +- } +- } ++ if(tileentity==null || tileentity.isInvalid()) ++ return; ++ List dest=scanningTileEntities ? addedTileEntityList : ++ loadedTileEntityList; ++ if(tileentity.canUpdate()) dest.add(tileentity); ++ Chunk chunk = getChunkFromChunkCoords(i >> 4, k >> 4); ++ if(chunk != null) { ++ chunk.setChunkBlockTileEntity(i & 0xf, j, k & 0xf, tileentity); ++ } + } + + public void removeBlockTileEntity(int i, int j, int k) + { +- TileEntity tileentity = getBlockTileEntity(i, j, k); +- if(tileentity != null && scanningTileEntities) +- { +- tileentity.invalidate(); +- } else +- { +- if(tileentity != null) +- { +- loadedTileEntityList.remove(tileentity); +- } +- Chunk chunk = getChunkFromChunkCoords(i >> 4, k >> 4); +- if(chunk != null) +- { +- chunk.removeChunkBlockTileEntity(i & 0xf, j, k & 0xf); +- } +- } ++ Chunk chunk = getChunkFromChunkCoords(i >> 4, k >> 4); ++ if(chunk != null) { ++ chunk.removeChunkBlockTileEntity(i & 0xf, j, k & 0xf); ++ } + } + + public void func_35455_a(TileEntity tileentity) +@@ -1977,13 +1968,18 @@ public boolean isBlockNormalCube(int i, int j, int k) { Block block = Block.blocksList[getBlockId(i, j, k)]; @@ -2330,7 +2524,7 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/World.jav } public void saveWorldIndirectly(IProgressUpdate iprogressupdate) -@@ -2308,7 +2319,7 @@ +@@ -2308,7 +2304,7 @@ private int func_35458_d(int i, int j, int k, int l, int i1, int j1) { @@ -2339,7 +2533,7 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/World.jav int l1 = getSavedLightValue(EnumSkyBlock.Block, j - 1, k, l) - j1; int i2 = getSavedLightValue(EnumSkyBlock.Block, j + 1, k, l) - j1; int j2 = getSavedLightValue(EnumSkyBlock.Block, j, k - 1, l) - j1; -@@ -2679,6 +2690,7 @@ +@@ -2679,6 +2675,7 @@ { block = null; } @@ -2347,7 +2541,7 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/World.jav return i > 0 && block == null && block1.canPlaceBlockOnSide(this, j, k, l, i1); } -@@ -3193,7 +3205,7 @@ +@@ -3193,7 +3190,7 @@ public int field_27172_i; public boolean editingBlocks; private long lockTimestamp; @@ -2357,8 +2551,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/World.jav public Random rand; public boolean isNewWorld; diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/WorldRenderer.java ../src_work/minecraft/net/minecraft/src/WorldRenderer.java ---- ../src_base/minecraft/net/minecraft/src/WorldRenderer.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft/net/minecraft/src/WorldRenderer.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft/net/minecraft/src/WorldRenderer.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/WorldRenderer.java 2011-09-26 15:46:46.000000000 -0400 @@ -4,6 +4,8 @@ package net.minecraft.src; @@ -2435,8 +2629,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/WorldRend - } } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/BlockButton.java ../src_work/minecraft_server/net/minecraft/src/BlockButton.java ---- ../src_base/minecraft_server/net/minecraft/src/BlockButton.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/BlockButton.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/BlockButton.java 2011-09-26 15:46:46.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/BlockButton.java 2011-09-26 15:46:46.000000000 -0400 @@ -41,36 +41,36 @@ public boolean canPlaceBlockOnSide(World world, int i, int j, int k, int l) @@ -2555,8 +2749,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Bl flag = true; } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/BlockChest.java ../src_work/minecraft_server/net/minecraft/src/BlockChest.java ---- ../src_base/minecraft_server/net/minecraft/src/BlockChest.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/BlockChest.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/BlockChest.java 2011-09-26 15:46:46.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/BlockChest.java 2011-09-26 15:46:46.000000000 -0400 @@ -328,23 +328,23 @@ { return true; @@ -2586,9 +2780,34 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Bl { return true; } +diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/BlockContainer.java ../src_work/minecraft_server/net/minecraft/src/BlockContainer.java +--- ../src_base/minecraft_server/net/minecraft/src/BlockContainer.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/BlockContainer.java 2011-09-28 18:22:50.000000000 -0400 +@@ -26,7 +26,7 @@ + public void onBlockAdded(World world, int i, int j, int k) + { + super.onBlockAdded(world, i, j, k); +- world.setBlockTileEntity(i, j, k, getBlockEntity()); ++ world.setBlockTileEntity(i, j, k, getBlockEntity(world.getBlockMetadata(i,j,k))); + } + + public void onBlockRemoval(World world, int i, int j, int k) +@@ -37,6 +37,12 @@ + + public abstract TileEntity getBlockEntity(); + ++ /* FORGE: Metadata-sensitive version, to fix 1.8.1 regression. ++ */ ++ public TileEntity getBlockEntity(int md) { ++ return getBlockEntity(); ++ } ++ + public void playBlock(World world, int i, int j, int k, int l, int i1) + { + super.playBlock(world, i, j, k, l, i1); diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/BlockDoor.java ../src_work/minecraft_server/net/minecraft/src/BlockDoor.java ---- ../src_base/minecraft_server/net/minecraft/src/BlockDoor.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/BlockDoor.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/BlockDoor.java 2011-09-26 15:46:46.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/BlockDoor.java 2011-09-26 15:46:46.000000000 -0400 @@ -167,7 +167,7 @@ world.setBlockWithNotify(i, j, k, 0); flag = true; @@ -2608,8 +2827,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Bl } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Block.java ../src_work/minecraft_server/net/minecraft/src/Block.java ---- ../src_base/minecraft_server/net/minecraft/src/Block.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/Block.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/Block.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/Block.java 2011-09-26 15:46:46.000000000 -0400 @@ -3,6 +3,7 @@ // Decompiler options: packimports(3) braces deadcode @@ -2751,8 +2970,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Bl { try diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/BlockLadder.java ../src_work/minecraft_server/net/minecraft/src/BlockLadder.java ---- ../src_base/minecraft_server/net/minecraft/src/BlockLadder.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/BlockLadder.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/BlockLadder.java 2011-09-26 15:46:46.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/BlockLadder.java 2011-09-26 15:46:46.000000000 -0400 @@ -40,6 +40,11 @@ return super.getCollisionBoundingBoxFromPool(world, i, j, k); } @@ -2836,8 +3055,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Bl flag = true; } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/BlockLever.java ../src_work/minecraft_server/net/minecraft/src/BlockLever.java ---- ../src_base/minecraft_server/net/minecraft/src/BlockLever.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/BlockLever.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/BlockLever.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/BlockLever.java 2011-09-26 15:46:46.000000000 -0400 @@ -35,44 +35,44 @@ public boolean canPlaceBlockOnSide(World world, int i, int j, int k, int l) @@ -2957,8 +3176,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Bl flag = true; } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/BlockPressurePlate.java ../src_work/minecraft_server/net/minecraft/src/BlockPressurePlate.java ---- ../src_base/minecraft_server/net/minecraft/src/BlockPressurePlate.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/BlockPressurePlate.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/BlockPressurePlate.java 2011-09-26 15:46:46.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/BlockPressurePlate.java 2011-09-26 15:46:46.000000000 -0400 @@ -46,7 +46,8 @@ public boolean canPlaceBlockAt(World world, int i, int j, int k) @@ -2980,8 +3199,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Bl flag = true; } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/BlockRail.java ../src_work/minecraft_server/net/minecraft/src/BlockRail.java ---- ../src_base/minecraft_server/net/minecraft/src/BlockRail.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/BlockRail.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/BlockRail.java 2011-09-26 15:46:46.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/BlockRail.java 2011-09-26 15:46:46.000000000 -0400 @@ -16,12 +16,12 @@ public static final boolean isRailBlockAt(World world, int i, int j, int k) { @@ -3036,8 +3255,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Bl flag = true; } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/BlockRedstoneRepeater.java ../src_work/minecraft_server/net/minecraft/src/BlockRedstoneRepeater.java ---- ../src_base/minecraft_server/net/minecraft/src/BlockRedstoneRepeater.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/BlockRedstoneRepeater.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/BlockRedstoneRepeater.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/BlockRedstoneRepeater.java 2011-09-26 15:46:46.000000000 -0400 @@ -27,7 +27,7 @@ public boolean canPlaceBlockAt(World world, int i, int j, int k) @@ -3057,8 +3276,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Bl return false; } else diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/BlockRedstoneWire.java ../src_work/minecraft_server/net/minecraft/src/BlockRedstoneWire.java ---- ../src_base/minecraft_server/net/minecraft/src/BlockRedstoneWire.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/BlockRedstoneWire.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/BlockRedstoneWire.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/BlockRedstoneWire.java 2011-09-26 15:46:46.000000000 -0400 @@ -3,6 +3,7 @@ // Decompiler options: packimports(3) braces deadcode @@ -3088,8 +3307,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Bl { return true; diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/BlockTorch.java ../src_work/minecraft_server/net/minecraft/src/BlockTorch.java ---- ../src_base/minecraft_server/net/minecraft/src/BlockTorch.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/BlockTorch.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/BlockTorch.java 2011-09-26 15:46:46.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/BlockTorch.java 2011-09-26 15:46:46.000000000 -0400 @@ -36,24 +36,24 @@ private boolean canPlaceTorchOn(World world, int i, int j, int k) @@ -3193,8 +3412,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Bl flag = true; } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/BlockTrapDoor.java ../src_work/minecraft_server/net/minecraft/src/BlockTrapDoor.java ---- ../src_base/minecraft_server/net/minecraft/src/BlockTrapDoor.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/BlockTrapDoor.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/BlockTrapDoor.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/BlockTrapDoor.java 2011-09-26 15:46:46.000000000 -0400 @@ -130,7 +130,7 @@ { j1--; @@ -3230,8 +3449,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Bl + public static boolean disableValidation=false; } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Chunk.java ../src_work/minecraft_server/net/minecraft/src/Chunk.java ---- ../src_base/minecraft_server/net/minecraft/src/Chunk.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/Chunk.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/Chunk.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/Chunk.java 2011-09-28 18:18:34.000000000 -0400 @@ -3,6 +3,7 @@ // Decompiler options: packimports(3) braces deadcode @@ -3331,6 +3550,15 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Ch blocks[i << 11 | k << 7 | j] = (byte)(byte0 & 0xff); if(l1 != 0 && !worldObj.singleplayerWorld) { +@@ -354,7 +345,7 @@ + TileEntity tileentity = getChunkBlockTileEntity(i, j, k); + if(tileentity == null) + { +- tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity(); ++ tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity(i1); + worldObj.setBlockTileEntity(i, j, k, tileentity); + } + if(tileentity != null) @@ -384,8 +375,6 @@ field_35637_c[i1] = -999; } @@ -3356,7 +3584,53 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Ch blocks[i << 11 | k << 7 | j] = (byte)(byte0 & 0xff); if(k1 != 0) { -@@ -766,8 +760,6 @@ +@@ -426,7 +420,7 @@ + TileEntity tileentity = getChunkBlockTileEntity(i, j, k); + if(tileentity == null) + { +- tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity(); ++ tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity(0); + worldObj.setBlockTileEntity(i, j, k, tileentity); + } + if(tileentity != null) +@@ -577,7 +571,7 @@ + } + if(tileentity == null) + { +- tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity(); ++ tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity(getBlockMetadata(i,j,k)); + worldObj.setBlockTileEntity(xPosition * 16 + i, j, zPosition * 16 + k, tileentity); + } + tileentity = (TileEntity)chunkTileEntityMap.get(chunkposition); +@@ -592,6 +586,18 @@ + } + } + ++ /* FORGE: Used to remove only invalid TileEntities */ ++ public void cleanChunkBlockTileEntity(int i, int j, int k) ++ { ++ ChunkPosition chunkposition = new ChunkPosition(i, j, k); ++ if(isChunkLoaded) ++ { ++ TileEntity tileentity = (TileEntity)chunkTileEntityMap.get(chunkposition); ++ if(tileentity!=null && tileentity.isInvalid()) ++ chunkTileEntityMap.remove(chunkposition); ++ } ++ } ++ + public void addTileEntity(TileEntity tileentity) + { + int i = tileentity.xCoord - xPosition * 16; +@@ -600,7 +606,7 @@ + setChunkBlockTileEntity(i, j, k, tileentity); + if(isChunkLoaded) + { +- worldObj.loadedTileEntityList.add(tileentity); ++ worldObj.addTileEntity(tileentity); + } + } + +@@ -766,8 +772,6 @@ { for(int k3 = k; k3 < j1; k3++) { @@ -3365,7 +3639,7 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Ch int k4 = k2 << 11 | k3 << 7 | j; int k5 = i1 - j; System.arraycopy(blocks, k4, abyte0, k1, k5); -@@ -780,8 +772,6 @@ +@@ -780,8 +784,6 @@ { for(int l3 = k; l3 < j1; l3++) { @@ -3374,7 +3648,7 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Ch int l4 = (l2 << 11 | l3 << 7 | j) >> 1; int l5 = (i1 - j) / 2; System.arraycopy(data.data, l4, abyte0, k1, l5); -@@ -794,8 +784,6 @@ +@@ -794,8 +796,6 @@ { for(int i4 = k; i4 < j1; i4++) { @@ -3383,7 +3657,7 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Ch int i5 = (i3 << 11 | i4 << 7 | j) >> 1; int i6 = (i1 - j) / 2; System.arraycopy(blocklightMap.data, i5, abyte0, k1, i6); -@@ -808,8 +796,6 @@ +@@ -808,8 +808,6 @@ { for(int j4 = k; j4 < j1; j4++) { @@ -3392,7 +3666,7 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Ch int j5 = (j3 << 11 | j4 << 7 | j) >> 1; int j6 = (i1 - j) / 2; System.arraycopy(skylightMap.data, j5, abyte0, k1, j6); -@@ -857,7 +843,6 @@ +@@ -857,7 +855,6 @@ int l = field_35637_c[k]; if(l == -999) { @@ -3401,8 +3675,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Ch for(l = -1; i1 > 0 && l == -1;) { diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/EntityLiving.java ../src_work/minecraft_server/net/minecraft/src/EntityLiving.java ---- ../src_base/minecraft_server/net/minecraft/src/EntityLiving.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/EntityLiving.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/EntityLiving.java 2011-09-26 15:46:46.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/EntityLiving.java 2011-09-26 15:46:46.000000000 -0400 @@ -600,7 +600,9 @@ int i = MathHelper.floor_double(posX); int j = MathHelper.floor_double(boundingBox.minY); @@ -3415,8 +3689,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/En public void writeEntityToNBT(NBTTagCompound nbttagcompound) diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/EntityPlayer.java ../src_work/minecraft_server/net/minecraft/src/EntityPlayer.java ---- ../src_base/minecraft_server/net/minecraft/src/EntityPlayer.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/EntityPlayer.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/EntityPlayer.java 2011-09-26 15:46:46.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/EntityPlayer.java 2011-09-26 15:46:46.000000000 -0400 @@ -6,6 +6,10 @@ import java.util.*; @@ -3492,8 +3766,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/En { if(isPlayerSleeping() || !isEntityAlive()) diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Explosion.java ../src_work/minecraft_server/net/minecraft/src/Explosion.java ---- ../src_base/minecraft_server/net/minecraft/src/Explosion.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/Explosion.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/Explosion.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/Explosion.java 2011-09-26 15:46:46.000000000 -0400 @@ -3,6 +3,7 @@ // Decompiler options: packimports(3) braces deadcode @@ -3521,8 +3795,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Ex if(f1 > 0.0F) { diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/FurnaceRecipes.java ../src_work/minecraft_server/net/minecraft/src/FurnaceRecipes.java ---- ../src_base/minecraft_server/net/minecraft/src/FurnaceRecipes.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/FurnaceRecipes.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/FurnaceRecipes.java 2011-09-26 15:46:46.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/FurnaceRecipes.java 2011-09-26 15:46:46.000000000 -0400 @@ -6,6 +6,7 @@ import java.util.HashMap; @@ -3580,8 +3854,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Fu } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/ItemBlock.java ../src_work/minecraft_server/net/minecraft/src/ItemBlock.java ---- ../src_base/minecraft_server/net/minecraft/src/ItemBlock.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/ItemBlock.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/ItemBlock.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/ItemBlock.java 2011-09-26 15:46:46.000000000 -0400 @@ -62,7 +62,7 @@ { return false; @@ -3592,8 +3866,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/It return false; } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/ItemBucket.java ../src_work/minecraft_server/net/minecraft/src/ItemBucket.java ---- ../src_base/minecraft_server/net/minecraft/src/ItemBucket.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/ItemBucket.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/ItemBucket.java 2011-09-26 15:46:46.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/ItemBucket.java 2011-09-26 15:46:46.000000000 -0400 @@ -6,6 +6,8 @@ import java.util.Random; @@ -3617,8 +3891,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/It { return itemstack; diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/ItemDye.java ../src_work/minecraft_server/net/minecraft/src/ItemDye.java ---- ../src_base/minecraft_server/net/minecraft/src/ItemDye.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/ItemDye.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/ItemDye.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/ItemDye.java 2011-09-26 15:46:46.000000000 -0400 @@ -29,7 +29,7 @@ public boolean onItemUse(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l) @@ -3629,8 +3903,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/It return false; } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/ItemFlintAndSteel.java ../src_work/minecraft_server/net/minecraft/src/ItemFlintAndSteel.java ---- ../src_base/minecraft_server/net/minecraft/src/ItemFlintAndSteel.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/ItemFlintAndSteel.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/ItemFlintAndSteel.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/ItemFlintAndSteel.java 2011-09-26 15:46:46.000000000 -0400 @@ -46,7 +46,7 @@ { i++; @@ -3641,8 +3915,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/It return false; } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/ItemHoe.java ../src_work/minecraft_server/net/minecraft/src/ItemHoe.java ---- ../src_base/minecraft_server/net/minecraft/src/ItemHoe.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/ItemHoe.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/ItemHoe.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/ItemHoe.java 2011-09-26 15:46:46.000000000 -0400 @@ -21,7 +21,7 @@ public boolean onItemUse(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l) @@ -3653,8 +3927,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/It return false; } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/ItemInWorldManager.java ../src_work/minecraft_server/net/minecraft/src/ItemInWorldManager.java ---- ../src_base/minecraft_server/net/minecraft/src/ItemInWorldManager.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/ItemInWorldManager.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/ItemInWorldManager.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/ItemInWorldManager.java 2011-09-26 15:46:46.000000000 -0400 @@ -3,7 +3,8 @@ // Decompiler options: packimports(3) braces deadcode @@ -3736,8 +4010,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/It } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Item.java ../src_work/minecraft_server/net/minecraft/src/Item.java ---- ../src_base/minecraft_server/net/minecraft/src/Item.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/Item.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/Item.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/Item.java 2011-09-26 15:46:46.000000000 -0400 @@ -66,6 +66,13 @@ return 1.0F; } @@ -3753,8 +4027,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/It { return itemstack; diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/ItemRedstone.java ../src_work/minecraft_server/net/minecraft/src/ItemRedstone.java ---- ../src_base/minecraft_server/net/minecraft/src/ItemRedstone.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/ItemRedstone.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/ItemRedstone.java 2011-09-26 15:46:46.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/ItemRedstone.java 2011-09-26 15:46:46.000000000 -0400 @@ -50,7 +50,7 @@ return false; } @@ -3765,8 +4039,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/It return false; } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/ItemReed.java ../src_work/minecraft_server/net/minecraft/src/ItemReed.java ---- ../src_base/minecraft_server/net/minecraft/src/ItemReed.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/ItemReed.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/ItemReed.java 2011-09-26 15:46:46.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/ItemReed.java 2011-09-26 15:46:46.000000000 -0400 @@ -52,7 +52,7 @@ i++; } @@ -3777,8 +4051,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/It return false; } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/ItemSeeds.java ../src_work/minecraft_server/net/minecraft/src/ItemSeeds.java ---- ../src_base/minecraft_server/net/minecraft/src/ItemSeeds.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/ItemSeeds.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/ItemSeeds.java 2011-09-26 15:46:46.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/ItemSeeds.java 2011-09-26 15:46:46.000000000 -0400 @@ -24,7 +24,7 @@ { return false; @@ -3789,8 +4063,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/It return false; } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/ItemTool.java ../src_work/minecraft_server/net/minecraft/src/ItemTool.java ---- ../src_base/minecraft_server/net/minecraft/src/ItemTool.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/ItemTool.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/ItemTool.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/ItemTool.java 2011-09-26 15:46:46.000000000 -0400 @@ -4,6 +4,8 @@ package net.minecraft.src; @@ -3826,8 +4100,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/It protected EnumToolMaterial toolMaterial; } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/MovingObjectPosition.java ../src_work/minecraft_server/net/minecraft/src/MovingObjectPosition.java ---- ../src_base/minecraft_server/net/minecraft/src/MovingObjectPosition.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/MovingObjectPosition.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/MovingObjectPosition.java 2011-09-26 15:46:46.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/MovingObjectPosition.java 2011-09-26 15:46:46.000000000 -0400 @@ -35,4 +35,7 @@ public int sideHit; public Vec3D hitVec; @@ -3837,16 +4111,17 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Mo + public int subHit=-1; } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/PlayerInstance.java ../src_work/minecraft_server/net/minecraft/src/PlayerInstance.java ---- ../src_base/minecraft_server/net/minecraft/src/PlayerInstance.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/PlayerInstance.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/PlayerInstance.java 2011-09-26 15:46:46.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/PlayerInstance.java 2011-09-28 18:52:36.000000000 -0400 @@ -168,12 +168,11 @@ sendPacketToPlayersInInstance(new Packet52MultiBlockChange(chunkX, chunkZ, blocksToUpdate, numBlocksToUpdate, worldserver)); for(int k = 0; k < numBlocksToUpdate; k++) { - int j1 = chunkX * 16 + (numBlocksToUpdate >> 12 & 0xf); -+ int j1 = chunkX * 16 + (blocksToUpdate[k] >> 12 & 0xf); - int i2 = numBlocksToUpdate & 0xff; +- int i2 = numBlocksToUpdate & 0xff; - int k2 = chunkZ * 16 + (numBlocksToUpdate >> 8 & 0xf); ++ int j1 = chunkX * 16 + (blocksToUpdate[k] >> 12 & 0xf); ++ int i2 = blocksToUpdate[k] & 0xff; + int k2 = chunkZ * 16 + (blocksToUpdate[k] >> 8 & 0xf); if(Block.isBlockContainer[worldserver.getBlockId(j1, i2, k2)]) { @@ -3855,8 +4130,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Pl } } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/SlotCrafting.java ../src_work/minecraft_server/net/minecraft/src/SlotCrafting.java ---- ../src_base/minecraft_server/net/minecraft/src/SlotCrafting.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/SlotCrafting.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/SlotCrafting.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/SlotCrafting.java 2011-09-26 15:46:46.000000000 -0400 @@ -3,7 +3,7 @@ // Decompiler options: packimports(3) braces deadcode @@ -3875,8 +4150,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Sl { ItemStack itemstack1 = craftMatrix.getStackInSlot(i); diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/TileEntityFurnace.java ../src_work/minecraft_server/net/minecraft/src/TileEntityFurnace.java ---- ../src_base/minecraft_server/net/minecraft/src/TileEntityFurnace.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/TileEntityFurnace.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/TileEntityFurnace.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/TileEntityFurnace.java 2011-09-26 15:46:46.000000000 -0400 @@ -176,7 +176,7 @@ { return false; @@ -3902,8 +4177,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Ti furnaceItemStacks[2].stackSize++; } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/TileEntity.java ../src_work/minecraft_server/net/minecraft/src/TileEntity.java ---- ../src_base/minecraft_server/net/minecraft/src/TileEntity.java 2011-09-23 19:09:34.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/TileEntity.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/TileEntity.java 2011-09-26 15:46:46.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/TileEntity.java 2011-09-26 15:46:46.000000000 -0400 @@ -61,6 +61,13 @@ { } @@ -3919,8 +4194,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Ti { TileEntity tileentity = null; diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/World.java ../src_work/minecraft_server/net/minecraft/src/World.java ---- ../src_base/minecraft_server/net/minecraft/src/World.java 2011-09-23 19:09:33.000000000 -0400 -+++ ../src_work/minecraft_server/net/minecraft/src/World.java 2011-09-23 19:09:34.000000000 -0400 +--- ../src_base/minecraft_server/net/minecraft/src/World.java 2011-09-26 15:46:45.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/World.java 2011-09-28 19:01:54.000000000 -0400 @@ -183,7 +183,11 @@ public boolean isAirBlock(int i, int j, int k) @@ -3934,7 +4209,61 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Wo } public boolean blockExists(int i, int j, int k) -@@ -1372,6 +1376,9 @@ +@@ -1124,7 +1128,7 @@ + Chunk chunk = getChunkFromChunkCoords(tileentity.xCoord >> 4, tileentity.zCoord >> 4); + if(chunk != null) + { +- chunk.removeChunkBlockTileEntity(tileentity.xCoord & 0xf, tileentity.yCoord, tileentity.zCoord & 0xf); ++ chunk.cleanChunkBlockTileEntity(tileentity.xCoord & 0xf, tileentity.yCoord, tileentity.zCoord & 0xf); + } + } + } +@@ -1151,15 +1155,15 @@ + { + loadedTileEntityList.add(tileentity1); + } ++ } else { + if(chunkExists(tileentity1.xCoord >> 4, tileentity1.zCoord >> 4)) + { + Chunk chunk1 = getChunkFromChunkCoords(tileentity1.xCoord >> 4, tileentity1.zCoord >> 4); + if(chunk1 != null) + { +- chunk1.setChunkBlockTileEntity(tileentity1.xCoord & 0xf, tileentity1.yCoord, tileentity1.zCoord & 0xf, tileentity1); ++ chunk1.cleanChunkBlockTileEntity(tileentity1.xCoord & 0xf, tileentity1.yCoord, tileentity1.zCoord & 0xf); + } + } +- markBlockNeedsUpdate(tileentity1.xCoord, tileentity1.yCoord, tileentity1.zCoord); + } + } while(true); + field_34901_P.clear(); +@@ -1168,13 +1172,19 @@ + + public void addTileEntity(Collection collection) + { +- if(scanningTileEntities) +- { +- field_34901_P.addAll(collection); +- } else +- { +- loadedTileEntityList.addAll(collection); +- } ++ List dest=scanningTileEntities ? field_34901_P : ++ loadedTileEntityList; ++ for(Object ob : collection) { ++ TileEntity te=(TileEntity)ob; ++ if(te.canUpdate()) dest.add(te); ++ } ++ } ++ ++ /* FORGE: Used as a bugfix */ ++ public void addTileEntity(TileEntity te) { ++ List dest=scanningTileEntities ? field_34901_P : ++ loadedTileEntityList; ++ if(te.canUpdate()) dest.add(te); + } + + public void updateEntity(Entity entity) +@@ -1372,6 +1382,9 @@ if(j2 == Block.fire.blockID || j2 == Block.lavaMoving.blockID || j2 == Block.lavaStill.blockID) { return true; @@ -3944,7 +4273,65 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Wo } } -@@ -1650,13 +1657,18 @@ +@@ -1590,44 +1603,23 @@ + + public void setBlockTileEntity(int i, int j, int k, TileEntity tileentity) + { +- if(tileentity != null && !tileentity.isInvalid()) +- { +- if(scanningTileEntities) +- { +- tileentity.xCoord = i; +- tileentity.yCoord = j; +- tileentity.zCoord = k; +- field_34901_P.add(tileentity); +- } else +- { +- loadedTileEntityList.add(tileentity); +- Chunk chunk = getChunkFromChunkCoords(i >> 4, k >> 4); +- if(chunk != null) +- { +- chunk.setChunkBlockTileEntity(i & 0xf, j, k & 0xf, tileentity); +- } +- } +- } ++ if(tileentity==null || tileentity.isInvalid()) ++ return; ++ List dest=scanningTileEntities ? field_34901_P : ++ loadedTileEntityList; ++ if(tileentity.canUpdate()) dest.add(tileentity); ++ Chunk chunk = getChunkFromChunkCoords(i >> 4, k >> 4); ++ if(chunk != null) { ++ chunk.setChunkBlockTileEntity(i & 0xf, j, k & 0xf, tileentity); ++ } + } + + public void removeBlockTileEntity(int i, int j, int k) + { +- TileEntity tileentity = getBlockTileEntity(i, j, k); +- if(tileentity != null && scanningTileEntities) +- { +- tileentity.invalidate(); +- } else +- { +- if(tileentity != null) +- { +- loadedTileEntityList.remove(tileentity); +- } +- Chunk chunk = getChunkFromChunkCoords(i >> 4, k >> 4); +- if(chunk != null) +- { +- chunk.removeChunkBlockTileEntity(i & 0xf, j, k & 0xf); +- } +- } ++ Chunk chunk = getChunkFromChunkCoords(i >> 4, k >> 4); ++ if(chunk != null) { ++ chunk.removeChunkBlockTileEntity(i & 0xf, j, k & 0xf); ++ } + } + + public void func_35239_a(TileEntity tileentity) +@@ -1650,13 +1642,18 @@ public boolean isBlockNormalCube(int i, int j, int k) { Block block = Block.blocksList[getBlockId(i, j, k)]; @@ -3970,7 +4357,7 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Wo } public void calculateInitialSkylight() -@@ -1976,7 +1988,7 @@ +@@ -1976,7 +1973,7 @@ private int func_35241_e(int i, int j, int k, int l, int i1, int j1) { @@ -3979,7 +4366,7 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Wo int l1 = getSavedLightValue(EnumSkyBlock.Block, j - 1, k, l) - j1; int i2 = getSavedLightValue(EnumSkyBlock.Block, j + 1, k, l) - j1; int j2 = getSavedLightValue(EnumSkyBlock.Block, j, k - 1, l) - j1; -@@ -2315,6 +2327,7 @@ +@@ -2315,6 +2312,7 @@ { block = null; } @@ -3987,7 +4374,7 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Wo return i > 0 && block == null && block1.canPlaceBlockOnSide(this, j, k, l, i1); } -@@ -2759,7 +2772,7 @@ +@@ -2759,7 +2757,7 @@ public int field_27080_i; public boolean editingBlocks; private long lockTimestamp; @@ -3996,3 +4383,35 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Wo public int difficultySetting; public Random rand; public boolean isNewWorld; +diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/WorldServer.java ../src_work/minecraft_server/net/minecraft/src/WorldServer.java +--- ../src_base/minecraft_server/net/minecraft/src/WorldServer.java 2011-09-26 15:46:46.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/WorldServer.java 2011-09-28 18:17:23.000000000 -0400 +@@ -54,15 +54,19 @@ + public List getTileEntityList(int i, int j, int k, int l, int i1, int j1) + { + ArrayList arraylist = new ArrayList(); +- for(int k1 = 0; k1 < loadedTileEntityList.size(); k1++) +- { +- TileEntity tileentity = (TileEntity)loadedTileEntityList.get(k1); +- if(tileentity.xCoord >= i && tileentity.yCoord >= j && tileentity.zCoord >= k && tileentity.xCoord < l && tileentity.yCoord < i1 && tileentity.zCoord < j1) +- { +- arraylist.add(tileentity); +- } +- } +- ++ for(int x=(i>>4); x<=(l>>4); x++) ++ for(int z=(k>>4); z<=(j1>>4); z++) { ++ Chunk ch=getChunkFromChunkCoords(x,z); ++ if(ch==null) continue; ++ for(Object ob : ch.chunkTileEntityMap.values()) { ++ TileEntity te=(TileEntity)ob; ++ if(te.xCoord>=i && te.yCoord>=j && te.zCoord>=k ++ && te.xCoord