From 14b6dbe4f5f7ba26e31e149fffcf6a0ef443716e Mon Sep 17 00:00:00 2001 From: Space Toad Date: Fri, 29 Jul 2011 17:55:34 +0000 Subject: [PATCH] added mineable block configuration, for #6 --- .../minecraft/src/forge/MinecraftForge.java | 25 ++++ forge/minecraft.patch | 133 +++++++++++++++--- forge/release.bat | 2 +- 3 files changed, 139 insertions(+), 21 deletions(-) diff --git a/forge/forge_common/net/minecraft/src/forge/MinecraftForge.java b/forge/forge_common/net/minecraft/src/forge/MinecraftForge.java index de7a621748..0974bd7125 100755 --- a/forge/forge_common/net/minecraft/src/forge/MinecraftForge.java +++ b/forge/forge_common/net/minecraft/src/forge/MinecraftForge.java @@ -8,13 +8,17 @@ package net.minecraft.src.forge; import java.util.LinkedList; import net.minecraft.src.BiomeGenBase; +import net.minecraft.src.Block; +import net.minecraft.src.Item; import net.minecraft.src.ItemStack; +import net.minecraft.src.ItemTool; import net.minecraft.src.World; public class MinecraftForge { private static LinkedList bucketHandlers = new LinkedList(); private static LinkedList biomePopulators = new LinkedList(); + private static LinkedList harvestHandlers = new LinkedList(); public static void registerCustomBucketHander(IBucketHandler handler) { bucketHandlers.add(handler); @@ -23,6 +27,10 @@ public class MinecraftForge { public static void registerBiomePopulate(IBiomePopulator populator) { biomePopulators.add(populator); } + + public static void registerHarvestHandler(IHarvestHandler handler) { + harvestHandlers.add(handler); + } public static ItemStack fillCustomBucket(World w, int i, int j, int k) { for (IBucketHandler handler : bucketHandlers) { @@ -43,4 +51,21 @@ public class MinecraftForge { } } + public static boolean canHarvestBlock(ItemTool item, Block block) { + for (IHarvestHandler handler : harvestHandlers) { + if (handler.canHarvestBlock(item, block)) { + return true; + } + } + + return false; + } + + public void addPixaxeBlockEffectiveAgainst (Block block) { + ((ItemTool) Item.pickaxeWood).addBlockEffectiveAgainst(block); + ((ItemTool) Item.pickaxeStone).addBlockEffectiveAgainst(block); + ((ItemTool) Item.pickaxeSteel).addBlockEffectiveAgainst(block); + ((ItemTool) Item.pickaxeGold).addBlockEffectiveAgainst(block); + ((ItemTool) Item.pickaxeDiamond).addBlockEffectiveAgainst(block); + } } diff --git a/forge/minecraft.patch b/forge/minecraft.patch index 6403265493..8e24e92df4 100644 --- a/forge/minecraft.patch +++ b/forge/minecraft.patch @@ -1,6 +1,6 @@ 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 20:32:54.429858500 +0200 -+++ ../src_work/minecraft/net/minecraft/client/Minecraft.java 2011-07-19 20:33:40.515494400 +0200 +--- ../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; @@ -19,8 +19,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/client/Minecr { 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 20:32:54.820880000 +0200 -+++ ../src_work/minecraft/net/minecraft/src/ChunkProviderGenerate.java 2011-07-19 20:33:40.519494600 +0200 +--- ../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 @@ -6,6 +6,8 @@ import java.util.Random; @@ -40,8 +40,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 20:32:54.895885100 +0200 -+++ ../src_work/minecraft/net/minecraft/src/EffectRenderer.java 2011-07-19 20:40:47.501916600 +0200 +--- ../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 @@ -7,6 +7,9 @@ import java.util.*; import org.lwjgl.opengl.GL11; @@ -185,8 +185,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 20:32:55.620926000 +0200 -+++ ../src_work/minecraft/net/minecraft/src/ItemBucket.java 2011-07-19 20:33:40.524494900 +0200 +--- ../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 @@ -6,6 +6,8 @@ import java.util.Random; @@ -210,9 +210,31 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemBucke 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/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 +@@ -4,6 +4,8 @@ + + package net.minecraft.src; + ++import net.minecraft.src.forge.MinecraftForge; ++ + + // Referenced classes of package net.minecraft.src: + // ItemTool, Block, EnumToolMaterial, Material +@@ -42,6 +44,9 @@ + { + return toolMaterial.getHarvestLevel() >= 2; + } ++ if (MinecraftForge.canHarvestBlock(this, block)) { ++ return true; ++ } + if(block.blockMaterial == Material.rock) + { + 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 20:32:55.684930300 +0200 -+++ ../src_work/minecraft/net/minecraft/src/ItemRenderer.java 2011-07-19 20:33:40.528495200 +0200 +--- ../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 @@ -5,6 +5,8 @@ package net.minecraft.src; @@ -241,9 +263,34 @@ 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 @@ + + 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 @@ + private float efficiencyOnProperMaterial; + private int damageVsEntity; + protected EnumToolMaterial toolMaterial; ++ ++ public void addBlockEffectiveAgainst (Block block) { ++ blocksEffectiveAgainst = Arrays.copyOf(blocksEffectiveAgainst, ++ blocksEffectiveAgainst.length + 1); ++ ++ 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 20:32:57.062009000 +0200 -+++ ../src_work/minecraft/net/minecraft/src/RenderBlocks.java 2011-07-19 20:33:40.533495400 +0200 +--- ../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 @@ package net.minecraft.src; @@ -254,8 +301,8 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/RenderBlo // Referenced classes of package net.minecraft.src: 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 20:32:57.183015900 +0200 -+++ ../src_work/minecraft/net/minecraft/src/RenderItem.java 2011-07-19 20:33:40.568497500 +0200 +--- ../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 @@ -5,6 +5,9 @@ package net.minecraft.src; @@ -317,8 +364,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/WorldRenderer.java ../src_work/minecraft/net/minecraft/src/WorldRenderer.java ---- ../src_base/minecraft/net/minecraft/src/WorldRenderer.java 2011-07-19 20:32:57.777049900 +0200 -+++ ../src_work/minecraft/net/minecraft/src/WorldRenderer.java 2011-07-19 20:33:40.579498100 +0200 +--- ../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 @@ package net.minecraft.src; @@ -342,8 +389,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/ChunkProviderGenerate.java ../src_work/minecraft_server/net/minecraft/src/ChunkProviderGenerate.java ---- ../src_base/minecraft_server/net/minecraft/src/ChunkProviderGenerate.java 2011-07-19 20:33:10.318767000 +0200 -+++ ../src_work/minecraft_server/net/minecraft/src/ChunkProviderGenerate.java 2011-07-19 20:33:40.583498300 +0200 +--- ../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 @@ -6,6 +6,8 @@ import java.util.Random; @@ -363,8 +410,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 20:33:10.742791000 +0200 -+++ ../src_work/minecraft_server/net/minecraft/src/ItemBucket.java 2011-07-19 20:33:40.617500300 +0200 +--- ../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 @@ -6,6 +6,8 @@ import java.util.Random; @@ -388,3 +435,49 @@ 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/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 +@@ -4,6 +4,8 @@ + + package net.minecraft.src; + ++import net.minecraft.src.forge.MinecraftForge; ++ + + // Referenced classes of package net.minecraft.src: + // ItemTool, Block, EnumToolMaterial, Material +@@ -42,6 +44,9 @@ + { + return toolMaterial.getHarvestLevel() >= 2; + } ++ if (MinecraftForge.canHarvestBlock(this, block)) { ++ return true; ++ } + if(block.blockMaterial == Material.rock) + { + 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 +@@ -4,6 +4,8 @@ + + package net.minecraft.src; + ++import java.util.Arrays; ++ + + // Referenced classes of package net.minecraft.src: + // Item, EnumToolMaterial, ItemStack, Block, +@@ -58,4 +60,11 @@ + private float efficiencyOnProperMaterial; + private int damageVsEntity; + protected EnumToolMaterial toolMaterial; ++ ++ public void addBlockEffectiveAgainst (Block block) { ++ blocksEffectiveAgainst = Arrays.copyOf(blocksEffectiveAgainst, ++ blocksEffectiveAgainst.length + 1); ++ ++ blocksEffectiveAgainst [blocksEffectiveAgainst.length + 1] = block; ++ } + } diff --git a/forge/release.bat b/forge/release.bat index ac83b738a4..3d36ebb89c 100755 --- a/forge/release.bat +++ b/forge/release.bat @@ -8,6 +8,6 @@ set PATH=E:\cygwin\bin;%PATH% cd forge -sh package.sh 1.0 +sh package.sh 1.0.0.200110729 pause