From 33a3f67225d6dd028f30fc54215d9f95a9bad0cf Mon Sep 17 00:00:00 2001 From: LexManos Date: Mon, 23 Apr 2012 19:14:08 -0700 Subject: [PATCH] Fix for loading Minecart Entities in worlds that were last accessed before Forge was installed. --- .../minecraft/src/EntityMinecart.java.patch | 27 ++++++++++++------- .../minecraft/src/EntityMinecart.java.patch | 27 ++++++++++++------- 2 files changed, 34 insertions(+), 20 deletions(-) diff --git a/forge/patches/minecraft/net/minecraft/src/EntityMinecart.java.patch b/forge/patches/minecraft/net/minecraft/src/EntityMinecart.java.patch index 8f9400cef..621aa9b92 100644 --- a/forge/patches/minecraft/net/minecraft/src/EntityMinecart.java.patch +++ b/forge/patches/minecraft/net/minecraft/src/EntityMinecart.java.patch @@ -487,7 +487,7 @@ { NBTTagList var2 = new NBTTagList(); -@@ -865,13 +723,14 @@ +@@ -865,13 +723,21 @@ { this.minecartType = par1NBTTagCompound.getInteger("Type"); @@ -497,7 +497,14 @@ this.pushX = par1NBTTagCompound.getDouble("PushX"); this.pushZ = par1NBTTagCompound.getDouble("PushZ"); - this.fuel = par1NBTTagCompound.getShort("Fuel"); -+ this.fuel = par1NBTTagCompound.getInteger("Fuel"); ++ try ++ { ++ this.fuel = par1NBTTagCompound.getInteger("Fuel"); ++ } ++ catch (ClassCastException e) ++ { ++ this.fuel = par1NBTTagCompound.getShort("Fuel"); ++ } } - else if (this.minecartType == 1) + @@ -505,7 +512,7 @@ { NBTTagList var2 = par1NBTTagCompound.getTagList("Items"); this.cargoItems = new ItemStack[this.getSizeInventory()]; -@@ -899,11 +758,19 @@ +@@ -899,11 +765,19 @@ */ public void applyEntityCollision(Entity par1Entity) { @@ -526,7 +533,7 @@ { par1Entity.mountEntity(this); } -@@ -949,7 +816,7 @@ +@@ -949,7 +823,7 @@ double var18 = par1Entity.motionX + this.motionX; double var20 = par1Entity.motionZ + this.motionZ; @@ -535,7 +542,7 @@ { this.motionX *= 0.20000000298023224D; this.motionZ *= 0.20000000298023224D; -@@ -957,7 +824,7 @@ +@@ -957,7 +831,7 @@ par1Entity.motionX *= 0.949999988079071D; par1Entity.motionZ *= 0.949999988079071D; } @@ -544,7 +551,7 @@ { par1Entity.motionX *= 0.20000000298023224D; par1Entity.motionZ *= 0.20000000298023224D; -@@ -992,7 +859,7 @@ +@@ -992,7 +866,7 @@ */ public int getSizeInventory() { @@ -553,7 +560,7 @@ } /** -@@ -1095,7 +962,12 @@ +@@ -1095,7 +969,12 @@ */ public boolean interact(EntityPlayer par1EntityPlayer) { @@ -567,7 +574,7 @@ { if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer && this.riddenByEntity != par1EntityPlayer) { -@@ -1107,14 +979,14 @@ +@@ -1107,14 +986,14 @@ par1EntityPlayer.mountEntity(this); } } @@ -584,7 +591,7 @@ { ItemStack var2 = par1EntityPlayer.inventory.getCurrentItem(); -@@ -1173,7 +1045,7 @@ +@@ -1173,7 +1052,7 @@ /** * Is this minecart powered (Fuel > 0) */ @@ -593,7 +600,7 @@ { return (this.dataWatcher.getWatchableObjectByte(16) & 1) != 0; } -@@ -1226,4 +1098,373 @@ +@@ -1226,4 +1105,373 @@ { return this.dataWatcher.getWatchableObjectInt(18); } diff --git a/forge/patches/minecraft_server/net/minecraft/src/EntityMinecart.java.patch b/forge/patches/minecraft_server/net/minecraft/src/EntityMinecart.java.patch index b88ac797d..c23e30378 100644 --- a/forge/patches/minecraft_server/net/minecraft/src/EntityMinecart.java.patch +++ b/forge/patches/minecraft_server/net/minecraft/src/EntityMinecart.java.patch @@ -470,7 +470,7 @@ { NBTTagList var2 = new NBTTagList(); -@@ -797,13 +664,13 @@ +@@ -797,13 +664,20 @@ { this.minecartType = par1NBTTagCompound.getInteger("Type"); @@ -480,14 +480,21 @@ this.pushX = par1NBTTagCompound.getDouble("PushX"); this.pushZ = par1NBTTagCompound.getDouble("PushZ"); - this.fuel = par1NBTTagCompound.getShort("Fuel"); -+ this.fuel = par1NBTTagCompound.getInteger("Fuel"); ++ try ++ { ++ this.fuel = par1NBTTagCompound.getInteger("Fuel"); ++ } ++ catch (ClassCastException e) ++ { ++ this.fuel = par1NBTTagCompound.getShort("Fuel"); ++ } } - else if (this.minecartType == 1) + if (getSizeInventory() > 0) { NBTTagList var2 = par1NBTTagCompound.getTagList("Items"); this.cargoItems = new ItemStack[this.getSizeInventory()]; -@@ -826,11 +693,18 @@ +@@ -826,11 +700,18 @@ */ public void applyEntityCollision(Entity par1Entity) { @@ -507,7 +514,7 @@ { par1Entity.mountEntity(this); } -@@ -876,7 +750,7 @@ +@@ -876,7 +757,7 @@ double var18 = par1Entity.motionX + this.motionX; double var20 = par1Entity.motionZ + this.motionZ; @@ -516,7 +523,7 @@ { this.motionX *= 0.20000000298023224D; this.motionZ *= 0.20000000298023224D; -@@ -884,7 +758,7 @@ +@@ -884,7 +765,7 @@ par1Entity.motionX *= 0.949999988079071D; par1Entity.motionZ *= 0.949999988079071D; } @@ -525,7 +532,7 @@ { par1Entity.motionX *= 0.20000000298023224D; par1Entity.motionZ *= 0.20000000298023224D; -@@ -919,7 +793,7 @@ +@@ -919,7 +800,7 @@ */ public int getSizeInventory() { @@ -534,7 +541,7 @@ } /** -@@ -1022,7 +896,12 @@ +@@ -1022,7 +903,12 @@ */ public boolean interact(EntityPlayer par1EntityPlayer) { @@ -548,7 +555,7 @@ { if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer && this.riddenByEntity != par1EntityPlayer) { -@@ -1034,14 +913,14 @@ +@@ -1034,14 +920,14 @@ par1EntityPlayer.mountEntity(this); } } @@ -565,7 +572,7 @@ { ItemStack var2 = par1EntityPlayer.inventory.getCurrentItem(); -@@ -1073,7 +952,7 @@ +@@ -1073,7 +959,7 @@ /** * Is this minecart powered (Fuel > 0) */ @@ -574,7 +581,7 @@ { return (this.dataWatcher.getWatchableObjectByte(16) & 1) != 0; } -@@ -1126,4 +1005,373 @@ +@@ -1126,4 +1012,373 @@ { return this.dataWatcher.getWatchableObjectInt(18); }