diff --git a/forge/build.sh b/forge/build.sh new file mode 100755 index 000000000..c527cc9fc --- /dev/null +++ b/forge/build.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +pushd .. + +rm -rf src +cp -a src_work src +rm -rf bin + +popd + +cp -a forge_client/src/net/* ../src/minecraft/net/ +cp -a forge_common/net/* ../src/minecraft/net/ +cp -a forge_common/net/* ../src/minecraft_server/net/ + +pushd .. + +./recompile.sh + + diff --git a/forge/client b/forge/client new file mode 120000 index 000000000..9d34a1e7d --- /dev/null +++ b/forge/client @@ -0,0 +1 @@ +forge_client/src/net/minecraft/src/forge/ \ No newline at end of file diff --git a/forge/common b/forge/common new file mode 120000 index 000000000..e2d97f8bb --- /dev/null +++ b/forge/common @@ -0,0 +1 @@ +forge_common/net/minecraft/src/forge \ No newline at end of file diff --git a/forge/forge_client/src/net/minecraft/src/forge/MinecraftForgeClient.java b/forge/forge_client/src/net/minecraft/src/forge/MinecraftForgeClient.java index f053ce8fe..07497def9 100755 --- a/forge/forge_client/src/net/minecraft/src/forge/MinecraftForgeClient.java +++ b/forge/forge_client/src/net/minecraft/src/forge/MinecraftForgeClient.java @@ -49,8 +49,4 @@ public class MinecraftForgeClient { .getTextureFile())); } } - - public static void onGameStart() { - - } } diff --git a/forge/forge_common/net/minecraft/src/forge/IConnectRedstone.java b/forge/forge_common/net/minecraft/src/forge/IConnectRedstone.java new file mode 100644 index 000000000..5211a45bb --- /dev/null +++ b/forge/forge_common/net/minecraft/src/forge/IConnectRedstone.java @@ -0,0 +1,6 @@ +package net.minecraft.src.forge; +import net.minecraft.src.*; + +public interface IConnectRedstone { + public boolean canConnectRedstone(IBlockAccess iba, int i, int j, int k, int dir); +} diff --git a/forge/forge_common/net/minecraft/src/forge/IMultipassRender.java b/forge/forge_common/net/minecraft/src/forge/IMultipassRender.java new file mode 100644 index 000000000..655f1bc02 --- /dev/null +++ b/forge/forge_common/net/minecraft/src/forge/IMultipassRender.java @@ -0,0 +1,6 @@ +package net.minecraft.src.forge; +import net.minecraft.src.*; + +public interface IMultipassRender { + public boolean canRenderInPass(int n); +} diff --git a/forge/forge_common/net/minecraft/src/forge/IOverrideReplace.java b/forge/forge_common/net/minecraft/src/forge/IOverrideReplace.java new file mode 100644 index 000000000..775274410 --- /dev/null +++ b/forge/forge_common/net/minecraft/src/forge/IOverrideReplace.java @@ -0,0 +1,7 @@ +package net.minecraft.src.forge; +import net.minecraft.src.*; + +public interface IOverrideReplace { + public boolean canReplaceBlock(World world, int i, int j, int k, int bid); + public boolean getReplacedSuccess(); +} diff --git a/forge/forge_common/net/minecraft/src/forge/IUseItemFirst.java b/forge/forge_common/net/minecraft/src/forge/IUseItemFirst.java new file mode 100644 index 000000000..3b71c5e2d --- /dev/null +++ b/forge/forge_common/net/minecraft/src/forge/IUseItemFirst.java @@ -0,0 +1,8 @@ +package net.minecraft.src.forge; +import net.minecraft.src.*; + +public interface IUseItemFirst { + public boolean onItemUseFirst(ItemStack ist, + EntityPlayer player, World world, + int i, int j, int k, int l); +} diff --git a/forge/minecraft.patch b/forge/minecraft.patch index 8e24e92df..ab967bbf4 100644 --- a/forge/minecraft.patch +++ b/forge/minecraft.patch @@ -1,26 +1,67 @@ -diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/client/Minecraft.java ../src_work/minecraft/net/minecraft/client/Minecraft.java ---- ../src_base/minecraft/net/minecraft/client/Minecraft.java 2011-07-19 22:35:38.532061000 +0200 -+++ ../src_work/minecraft/net/minecraft/client/Minecraft.java 2011-07-19 22:36:21.976545900 +0200 -@@ -8,6 +8,8 @@ - import java.io.File; - import java.io.PrintStream; - import net.minecraft.src.*; -+import net.minecraft.src.forge.MinecraftForgeClient; -+ - import org.lwjgl.LWJGLException; - import org.lwjgl.input.*; - import org.lwjgl.opengl.*; -@@ -177,6 +179,7 @@ - renderGlobal = new RenderGlobal(this, renderEngine); - GL11.glViewport(0, 0, displayWidth, displayHeight); - effectRenderer = new EffectRenderer(theWorld, renderEngine); -+ MinecraftForgeClient.onGameStart(); - try +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-07-29 16:35:27.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/BlockRedstoneWire.java 2011-07-29 16:57:37.000000000 -0400 +@@ -3,6 +3,7 @@ + // Decompiler options: packimports(3) braces deadcode + + package net.minecraft.src; ++import net.minecraft.src.forge.*; + + import java.util.*; + +@@ -451,6 +452,10 @@ + { + return false; + } ++ if(Block.blocksList[i1] instanceof IConnectRedstone) { ++ IConnectRedstone icr=(IConnectRedstone)Block.blocksList[i1]; ++ return icr.canConnectRedstone(iblockaccess,i,j,k,l); ++ } + if(Block.blocksList[i1].canProvidePower()) + { + return true; +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-07-29 16:35:26.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/Chunk.java 2011-07-29 16:57:37.000000000 -0400 +@@ -3,6 +3,7 @@ + // Decompiler options: packimports(3) braces deadcode + + package net.minecraft.src; ++import net.minecraft.src.forge.*; + + import java.io.PrintStream; + import java.util.*; +@@ -249,6 +250,13 @@ + } + int l1 = xPosition * 16 + i; + int i2 = zPosition * 16 + k; ++ ++ if(Block.blocksList[k1] instanceof IOverrideReplace) { ++ IOverrideReplace iovr=(IOverrideReplace)Block.blocksList[k1]; ++ if(!iovr.canReplaceBlock(worldObj,l1,j,i2,l)) ++ return iovr.getReplacedSuccess(); ++ } ++ + blocks[i << 11 | k << 7 | j] = (byte)(byte0 & 0xff); + if(k1 != 0 && !worldObj.multiplayerWorld) + { +@@ -292,6 +300,13 @@ + } + int k1 = xPosition * 16 + i; + int l1 = zPosition * 16 + k; ++ ++ if(Block.blocksList[j1] instanceof IOverrideReplace) { ++ IOverrideReplace iovr=(IOverrideReplace)Block.blocksList[j1]; ++ if(!iovr.canReplaceBlock(worldObj,k1,j,l1,l)) ++ return iovr.getReplacedSuccess(); ++ } ++ + blocks[i << 11 | k << 7 | j] = (byte)(byte0 & 0xff); + if(j1 != 0) { - downloadResourcesThread = new ThreadDownloadResources(mcDataDir, this); diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ChunkProviderGenerate.java ../src_work/minecraft/net/minecraft/src/ChunkProviderGenerate.java ---- ../src_base/minecraft/net/minecraft/src/ChunkProviderGenerate.java 2011-07-19 22:35:38.968086000 +0200 -+++ ../src_work/minecraft/net/minecraft/src/ChunkProviderGenerate.java 2011-07-19 22:36:21.998547200 +0200 +--- ../src_base/minecraft/net/minecraft/src/ChunkProviderGenerate.java 2011-07-29 16:35:27.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/ChunkProviderGenerate.java 2011-07-29 16:41:55.000000000 -0400 @@ -6,6 +6,8 @@ import java.util.Random; @@ -40,8 +81,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ChunkProv generatedTemperatures = worldObj.getWorldChunkManager().getTemperatures(generatedTemperatures, k + 8, l + 8, 16, 16); for(int j19 = k + 8; j19 < k + 8 + 16; j19++) 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-07-19 22:35:39.064091500 +0200 -+++ ../src_work/minecraft/net/minecraft/src/EffectRenderer.java 2011-07-19 22:36:22.004547500 +0200 +--- ../src_base/minecraft/net/minecraft/src/EffectRenderer.java 2011-07-29 16:35:27.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/EffectRenderer.java 2011-07-29 16:41:55.000000000 -0400 @@ -7,6 +7,9 @@ import java.util.*; import org.lwjgl.opengl.GL11; @@ -185,8 +226,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/ItemBucket.java ../src_work/minecraft/net/minecraft/src/ItemBucket.java ---- ../src_base/minecraft/net/minecraft/src/ItemBucket.java 2011-07-19 22:35:39.911139000 +0200 -+++ ../src_work/minecraft/net/minecraft/src/ItemBucket.java 2011-07-19 22:36:22.008547700 +0200 +--- ../src_base/minecraft/net/minecraft/src/ItemBucket.java 2011-07-29 16:35:27.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/ItemBucket.java 2011-07-29 16:41:55.000000000 -0400 @@ -6,6 +6,8 @@ import java.util.Random; @@ -211,8 +252,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/ItemPickaxe.java ../src_work/minecraft/net/minecraft/src/ItemPickaxe.java ---- ../src_base/minecraft/net/minecraft/src/ItemPickaxe.java 2011-07-19 22:35:39.959142000 +0200 -+++ ../src_work/minecraft/net/minecraft/src/ItemPickaxe.java 2011-07-29 19:44:18.990445200 +0200 +--- ../src_base/minecraft/net/minecraft/src/ItemPickaxe.java 2011-07-29 16:35:26.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/ItemPickaxe.java 2011-07-29 16:41:55.000000000 -0400 @@ -4,6 +4,8 @@ package net.minecraft.src; @@ -233,8 +274,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemPicka { return true; 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-07-19 22:35:39.984144100 +0200 -+++ ../src_work/minecraft/net/minecraft/src/ItemRenderer.java 2011-07-19 22:36:22.013548000 +0200 +--- ../src_base/minecraft/net/minecraft/src/ItemRenderer.java 2011-07-29 16:35:27.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/ItemRenderer.java 2011-07-29 16:41:55.000000000 -0400 @@ -5,6 +5,8 @@ package net.minecraft.src; @@ -264,19 +305,17 @@ 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/ItemTool.java ../src_work/minecraft/net/minecraft/src/ItemTool.java ---- ../src_base/minecraft/net/minecraft/src/ItemTool.java 2011-07-19 22:35:40.017146000 +0200 -+++ ../src_work/minecraft/net/minecraft/src/ItemTool.java 2011-07-29 19:48:15.271959800 +0200 -@@ -4,6 +4,9 @@ +--- ../src_base/minecraft/net/minecraft/src/ItemTool.java 2011-07-29 16:35:27.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/ItemTool.java 2011-07-29 17:06:13.000000000 -0400 +@@ -4,6 +4,7 @@ package net.minecraft.src; +import java.util.Arrays; -+import java.util.concurrent.ArrayBlockingQueue; -+ // Referenced classes of package net.minecraft.src: // Item, EnumToolMaterial, ItemStack, Block, -@@ -63,4 +66,11 @@ +@@ -63,4 +64,11 @@ private float efficiencyOnProperMaterial; private int damageVsEntity; protected EnumToolMaterial toolMaterial; @@ -288,21 +327,32 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemTool. + blocksEffectiveAgainst [blocksEffectiveAgainst.length + 1] = block; + } } -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-07-19 22:35:40.986201400 +0200 -+++ ../src_work/minecraft/net/minecraft/src/RenderBlocks.java 2011-07-19 22:36:22.019548400 +0200 -@@ -5,6 +5,8 @@ +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-07-29 16:35:27.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/PlayerController.java 2011-07-29 16:57:37.000000000 -0400 +@@ -3,6 +3,7 @@ + // Decompiler options: packimports(3) braces deadcode + package net.minecraft.src; ++import net.minecraft.src.forge.*; import net.minecraft.client.Minecraft; -+import net.minecraft.src.forge.MinecraftForgeClient; -+ - import org.lwjgl.opengl.GL11; - // Referenced classes of package net.minecraft.src: +@@ -98,6 +99,11 @@ + + public boolean sendPlaceBlock(EntityPlayer entityplayer, World world, ItemStack itemstack, int i, int j, int k, int l) + { ++ if(itemstack!=null && itemstack.getItem() instanceof IUseItemFirst) { ++ IUseItemFirst iuif=(IUseItemFirst)itemstack.getItem(); ++ if(iuif.onItemUseFirst(itemstack,entityplayer,world,i,j,k,l)) ++ return true; ++ } + int i1 = world.getBlockId(i, j, k); + if(i1 > 0 && Block.blocksList[i1].blockActivated(world, i, j, k, entityplayer)) + { 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-07-19 22:35:41.100207900 +0200 -+++ ../src_work/minecraft/net/minecraft/src/RenderItem.java 2011-07-19 22:36:22.037549400 +0200 +--- ../src_base/minecraft/net/minecraft/src/RenderItem.java 2011-07-29 16:35:27.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/RenderItem.java 2011-07-29 16:41:55.000000000 -0400 @@ -5,6 +5,9 @@ package net.minecraft.src; @@ -364,10 +414,13 @@ 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/WorldRenderer.java ../src_work/minecraft/net/minecraft/src/WorldRenderer.java ---- ../src_base/minecraft/net/minecraft/src/WorldRenderer.java 2011-07-19 22:35:41.644239000 +0200 -+++ ../src_work/minecraft/net/minecraft/src/WorldRenderer.java 2011-07-19 22:36:22.041549600 +0200 -@@ -5,6 +5,9 @@ +--- ../src_base/minecraft/net/minecraft/src/WorldRenderer.java 2011-07-29 16:35:27.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/WorldRenderer.java 2011-07-29 16:58:43.000000000 -0400 +@@ -3,8 +3,12 @@ + // Decompiler options: packimports(3) braces deadcode + package net.minecraft.src; ++import net.minecraft.src.forge.*; import java.util.*; + @@ -376,21 +429,95 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/WorldRend import org.lwjgl.opengl.GL11; // Referenced classes of package net.minecraft.src: -@@ -144,8 +147,10 @@ +@@ -138,14 +142,23 @@ + } + Block block = Block.blocksList[i3]; + int j3 = block.getRenderBlockPass(); ++ ++ if(block instanceof IMultipassRender) { ++ if(j3 != i2) flag = true; ++ IMultipassRender impr=(IMultipassRender)block; ++ if(impr.canRenderInPass(i2)) j3=i2; ++ } ++ + if(j3 != i2) + { + flag = true; continue; } if(j3 == i2) - { + { -+ MinecraftForgeClient.beforeBlockRender(block, renderblocks); ++ MinecraftForgeClient.beforeBlockRender(block, renderblocks); flag1 |= renderblocks.renderBlockByRenderType(block, l2, j2, k2); + MinecraftForgeClient.afterBlockRender(block, renderblocks); } } +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-07-29 16:35:28.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/BlockRedstoneWire.java 2011-07-29 16:57:37.000000000 -0400 +@@ -3,6 +3,7 @@ + // Decompiler options: packimports(3) braces deadcode + + package net.minecraft.src; ++import net.minecraft.src.forge.*; + + import java.util.*; + +@@ -413,6 +414,10 @@ + { + return false; + } ++ if(Block.blocksList[i1] instanceof IConnectRedstone) { ++ IConnectRedstone icr=(IConnectRedstone)Block.blocksList[i1]; ++ return icr.canConnectRedstone(iblockaccess,i,j,k,l); ++ } + if(Block.blocksList[i1].canProvidePower()) + { + return true; +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-07-29 16:35:28.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/Chunk.java 2011-07-29 16:57:37.000000000 -0400 +@@ -3,6 +3,7 @@ + // Decompiler options: packimports(3) braces deadcode + + package net.minecraft.src; ++import net.minecraft.src.forge.*; + + import java.io.PrintStream; + import java.util.*; +@@ -227,6 +228,13 @@ + } + int l1 = xPosition * 16 + i; + int i2 = zPosition * 16 + k; ++ ++ if(Block.blocksList[k1] instanceof IOverrideReplace) { ++ IOverrideReplace iovr=(IOverrideReplace)Block.blocksList[k1]; ++ if(!iovr.canReplaceBlock(worldObj,l1,j,i2,l)) ++ return iovr.getReplacedSuccess(); ++ } ++ + blocks[i << 11 | k << 7 | j] = (byte)(byte0 & 0xff); + if(k1 != 0 && !worldObj.singleplayerWorld) + { +@@ -270,6 +278,13 @@ + } + int k1 = xPosition * 16 + i; + int l1 = zPosition * 16 + k; ++ ++ if(Block.blocksList[j1] instanceof IOverrideReplace) { ++ IOverrideReplace iovr=(IOverrideReplace)Block.blocksList[j1]; ++ if(!iovr.canReplaceBlock(worldObj,k1,j,l1,l)) ++ return iovr.getReplacedSuccess(); ++ } ++ + blocks[i << 11 | k << 7 | j] = (byte)(byte0 & 0xff); + if(j1 != 0) + { diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/ChunkProviderGenerate.java ../src_work/minecraft_server/net/minecraft/src/ChunkProviderGenerate.java ---- ../src_base/minecraft_server/net/minecraft/src/ChunkProviderGenerate.java 2011-07-19 22:35:53.094893000 +0200 -+++ ../src_work/minecraft_server/net/minecraft/src/ChunkProviderGenerate.java 2011-07-19 22:36:22.046549900 +0200 +--- ../src_base/minecraft_server/net/minecraft/src/ChunkProviderGenerate.java 2011-07-29 16:35:28.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/ChunkProviderGenerate.java 2011-07-29 16:41:55.000000000 -0400 @@ -6,6 +6,8 @@ import java.util.Random; @@ -410,8 +537,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Ch generatedTemperatures = worldObj.getWorldChunkManager().getTemperatures(generatedTemperatures, k + 8, l + 8, 16, 16); for(int j19 = k + 8; j19 < k + 8 + 16; j19++) 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-07-19 22:35:53.568921000 +0200 -+++ ../src_work/minecraft_server/net/minecraft/src/ItemBucket.java 2011-07-19 22:36:22.050550100 +0200 +--- ../src_base/minecraft_server/net/minecraft/src/ItemBucket.java 2011-07-29 16:35:28.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/ItemBucket.java 2011-07-29 16:41:55.000000000 -0400 @@ -6,6 +6,8 @@ import java.util.Random; @@ -435,9 +562,32 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/It if(world.getBlockMaterial(i, j, k) == Material.water && world.getBlockMetadata(i, j, k) == 0) { world.setBlockWithNotify(i, j, k, 0); +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-07-29 16:35:28.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/ItemInWorldManager.java 2011-07-29 16:57:37.000000000 -0400 +@@ -3,6 +3,7 @@ + // Decompiler options: packimports(3) braces deadcode + + package net.minecraft.src; ++import net.minecraft.src.forge.*; + + + // Referenced classes of package net.minecraft.src: +@@ -145,6 +146,11 @@ + + public boolean activeBlockOrUseItem(EntityPlayer entityplayer, World world, ItemStack itemstack, int i, int j, int k, int l) + { ++ if(itemstack!=null && itemstack.getItem() instanceof IUseItemFirst) { ++ IUseItemFirst iuif=(IUseItemFirst)itemstack.getItem(); ++ if(iuif.onItemUseFirst(itemstack,entityplayer,world,i,j,k,l)) ++ return true; ++ } + int i1 = world.getBlockId(i, j, k); + if(i1 > 0 && Block.blocksList[i1].blockActivated(world, i, j, k, entityplayer)) + { diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/ItemPickaxe.java ../src_work/minecraft_server/net/minecraft/src/ItemPickaxe.java ---- ../src_base/minecraft_server/net/minecraft/src/ItemPickaxe.java 2011-07-19 22:35:53.647925000 +0200 -+++ ../src_work/minecraft_server/net/minecraft/src/ItemPickaxe.java 2011-07-29 19:52:41.066162300 +0200 +--- ../src_base/minecraft_server/net/minecraft/src/ItemPickaxe.java 2011-07-29 16:35:28.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/ItemPickaxe.java 2011-07-29 16:41:55.000000000 -0400 @@ -4,6 +4,8 @@ package net.minecraft.src; @@ -458,8 +608,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/It { return true; 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-07-19 22:35:53.708929000 +0200 -+++ ../src_work/minecraft_server/net/minecraft/src/ItemTool.java 2011-07-29 19:51:37.558529900 +0200 +--- ../src_base/minecraft_server/net/minecraft/src/ItemTool.java 2011-07-29 16:35:28.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/ItemTool.java 2011-07-29 16:41:55.000000000 -0400 @@ -4,6 +4,8 @@ package net.minecraft.src; @@ -481,3 +631,22 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/It + blocksEffectiveAgainst [blocksEffectiveAgainst.length + 1] = block; + } } +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-07-29 16:35:28.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/PlayerInstance.java 2011-07-29 16:57:37.000000000 -0400 +@@ -169,12 +169,11 @@ + sendPacketToPlayersInInstance(new Packet52MultiBlockChange(chunkX, chunkZ, blocksToUpdate, numBlocksToUpdate, worldserver)); + for(int k = 0; k < numBlocksToUpdate; k++) + { +- int j1 = chunkX * 16 + (numBlocksToUpdate >> 12 & 0xf); +- 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)]) + { +- System.out.println("Sending!"); + updateTileEntity(worldserver.getBlockTileEntity(j1, i2, k2)); + } + }