Temporary update for 1.4.3

Update FML: bd2123c
bd2123c Clean up some patch fuzz
c2a603c Update joined.exc file from latest conf
db12af4 Update to 1.4.3
This commit is contained in:
Christian 2012-11-02 18:34:37 -04:00
parent 25ea7e7023
commit 0f3b030a1d
45 changed files with 521 additions and 559 deletions

View File

@ -1,95 +1,95 @@
#Main Forge Access Transformer configuration file #Main Forge Access Transformer configuration file
# RailLogic.getNAdjacentTracks # RailLogic.getNAdjacentTracks
public akh.a(Lakh;)I # RailLogic/func_73650_a public all.a(Lall;)I #MD:RailLogic/func_73650_a
# Tessellator # Tessellator
public-f azb.a # Tessellator/field_78398_a instance public-f bah.a #FD:Tessellator/field_78398_a #instance
public azb.u # Tessellator/field_78409_u drawMode public bah.u #FD:Tessellator/field_78409_u #drawMode
public azb.v # Tessellator/field_78408_v xOffset public bah.v #FD:Tessellator/field_78408_v #xOffset
public azb.w # Tessellator/field_78407_w yOffset public bah.w #FD:Tessellator/field_78407_w #yOffset
public azb.x # Tessellator/field_78417_xzOffset public bah.x #FD:Tessellator/field_78417_x #zOffset
public azb.z # Tessellator/field_78415_z isDrawing public bah.z #FD:Tessellator/field_78415_z #isDrawing
# ItemPickaxe # ItemPickaxe
public uc.<init>(ILtu;)V # constructor public ut.<init>(ILul;)V #MD:ItemPickaxe/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
public+f uc.c # ItemPickaxe/field_77867_c blocksEffectiveAgainst public+f ut.c #FD:ItemPickaxe/field_77867_c #blocksEffectiveAgainst
# ItemAxe # ItemAxe
public tr.<init>(ILtu;)V # constructor public ui.<init>(ILul;)V #MD:ItemAxe/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
public+f tr.c # ItemAxe/field_77868_c blocksEffectiveAgainst public+f ui.c #FD:ItemAxe/field_77868_c #blocksEffectiveAgainst
# ItemSpade # ItemSpade
public un.<init>(ILtu;)V # constructor public ve.<init>(ILul;)V #MD:ItemSpade/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
public+f un.c # ItemSpade/field_77866_c blocksEffectiveAgainst public+f ve.c #FD:ItemSpade/field_77866_c #blocksEffectiveAgainst
# ItemTool # ItemTool
public td.a # ItemTool/field_77864_a efficiencyOnProperMaterial public tu.a #FD:ItemTool/field_77864_a #efficiencyOnProperMaterial
public td.ck # ItemTool/field_77865_bY damageVsEntity public tu.cl #FD:ItemTool/field_77865_bY #damageVsEntity
# EntityEnderman # EntityEnderman
public pm.d # EntityEnderman/field_70827_d carriableBlocks public qd.d #FD:EntityEnderman/field_70827_d #carriableBlocks
# RenderGlobal # RenderGlobal
public ayy.h # RenderGlobal/field_72769_h theWorld public bad.h #FD:RenderGlobal/field_72769_h #theWorld
public ayy.i # RenderGlobal/field_72770_i renderEngine public bad.i #FD:RenderGlobal/field_72770_i #renderEngine
public ayy.q # RenderGlobal/field_72777_q mc public bad.q #FD:RenderGlobal/field_72777_q #mc
public ayy.r # RenderGlobal/field_72776_r globalRenderBlocks public bad.r #FD:RenderGlobal/field_72776_r #globalRenderBlocks
public aty.E # RenderGlobal/field_72738_E damagedBlocks public bad.E #FD:RenderGlobal/field_72738_E #damagedBlocks
# SoundManager # SoundManager
public bcx.a # SoundManager/field_77381_a sndSystem public bed.a #FD:SoundManager/field_77381_a #sndSystem
public bcx.b # SoundManager/field_77379_b soundPoolSounds public bed.b #FD:SoundManager/field_77379_b #soundPoolSounds
public bcx.c # SoundManager/field_77380_c soundPoolStreaming public bed.c #FD:SoundManager/field_77380_c #soundPoolStreaming
public bcx.d # SoundManager/field_77377_d soundPoolMusic public bed.d #FD:SoundManager/field_77377_d #soundPoolMusic
# EntityMinecart # EntityMinecart
protected ph.* # All private -> protected protected py.* #FD:EntityMinecart/* # All private -> protected
public ph.h()Z # EntityMinecart/func_70490_h isMinecartPowered public py.h()Z #MD:EntityMinecart/func_70490_h #isMinecartPowered
# Block # Block
public alf.<init>(ILafg;)V #Constructor public amj.<init>(ILagb;)V #MD:Block/<init>(ILnet/minecraft/src/Material;) #Constructor
public alf.<init>(IILafg;)V #Constructor public amj.<init>(IILagb;)V #MD:Block/<init>(IILnet/minecraft/src/Material;) #Constructor
public alf.r()Lalf; # Block/func_71912_p setRequiresSelfNotify public amj.r()Lamj; #MD:Block/func_71912_p #setRequiresSelfNotify
public alf.a(Lalj;)Lalf; # Block/func_71884_a setStepSound public amj.a(Lamn;)Lamj; #MD:Block/func_71884_a #setStepSound
public alf.b(F)Lalf; # Block/func_71894_b setResistance public amj.b(F)Lamj; #MD:Block/func_71894_b #setResistance
public alf.c(F)Lalf; # Block/func_71848_c setHardness public amj.c(F)Lamj; #MD:Block/func_71848_c #setHardness
public alf.h(I)Lalf; # Block/func_71868_h setLightOpacity public amj.h(I)Lamj; #MD:Block/func_71868_h #setLightOpacity
public alf.a(F)Lalf; # Block/func_71900_a setLightValue public amj.a(F)Lamj; #MD:Block/func_71900_a #setLightValue
public alf.s()Lalf; # Block/func_71875_q setBlockUnbreakable public amj.s()Lamj; #MD:Block/func_71875_q #setBlockUnbreakable
public alf.b(Z)Lalf; # Block/func_71907_b setTickRandomly public amj.b(Z)Lamj; #MD:Block/func_71907_b #setTickRandomly
public alf.a(FFFFFF)V #Block/func_71905_a setBlockBounds public amj.a(FFFFFF)V #MD:Block/func_71905_a #setBlockBounds
# NetServerHandler # NetServerHandler
public im.g # NetServerHandler/field_72572_g playerInAirTime public iu.g #FD:NetServerHandler/field_72572_g #playerInAirTime
# TileEntity # TileEntity
public amm.k # TileEntity/field_70331_k worldObj public anq.k #FD:TileEntity/field_70331_k #worldObj
# BlockLeavesBase # BlockLeavesBase
public aln.c # BlockLeavesBase/field_72131_c graphicsLevel public amr.c #FD:BlockLeavesBase/field_72131_c #graphicsLevel
# Item # Item
public tt.e(I)Ltt; # Item/func_77656_e setMaxDamage public uk.e(I)Luk; #MD:Item/func_77656_e #setMaxDamage
public-f tt.f(Ltv;)I # Item/func_77650_f getIconIndex public-f uk.f(Lum;)I #MD:Item/func_77650_f #getIconIndex
# RailLogic # RailLogic
public akh public all #CL:RailLogic
public akh.a(Lakh;)I # RailLogic/func_73650_a getNAdjacentTiles public all.a(Lall;)I #MD:RailLogic/func_73650_a #getNAdjacentTiles
# EntityPlayer # EntityPlayer
public qg.a(Lpg;)V # EntityPlayer/func_71012_a joinEntityItemWithWorld public qx.a(Lpx;)V #MD:EntityPlayer/func_71012_a #joinEntityItemWithWorld
public qg.i()V # EntityPlayer/func_71053_j closeScreen public qx.i()V #MD:EntityPlayer/func_71053_j #closeScreen
# EntityPlayerMP # EntityPlayerMP
public axc.a(Lpg;)V # EntityClientPlayerMP/func_71012_a joinEntityItemWithWorld public ayh.a(Lpx;)V #MD:EntityClientPlayerMP/func_71012_a #joinEntityItemWithWorld
# World Gen Chests Related # World Gen Chests Related
public ie.S # WorldServer/field_73069_S bonusChestContent public im.T #FD:WorldServer/field_73069_S #bonusChestContent
public abq.a # StructureMineshaftPieces/field_78818_a mineshaftChestContents public aci.a #FD:StructureMineshaftPieces/field_78818_a #mineshaftChestContents
public acu.i # ComponentScatteredFeatureDesertPyramid/field_74941_i itemsToGenerateInTemple public adm.i #FD:ComponentScatteredFeatureDesertPyramid/field_74941_i #itemsToGenerateInTemple
public acv.l # ComponentScatteredFeatureJunglePyramid/field_74943_l junglePyramidsChestContents public adn.l #FD:ComponentScatteredFeatureJunglePyramid/field_74943_l #junglePyramidsChestContents
public acv.m # ComponentScatteredFeatureJunglePyramid/field_74944_m junglePyramidsDispenserContents public adn.m #FD:ComponentScatteredFeatureJunglePyramid/field_74944_m #junglePyramidsDispenserContents
public adf.a # ComponentStrongholdChestCorridor/field_75003_a strongholdChestContents public adx.a #FD:ComponentStrongholdChestCorridor/field_75003_a #strongholdChestContents
public adj.b # ComponentStrongholdLibrary/field_75007_b strongholdLibraryChestContents public aeb.b #FD:ComponentStrongholdLibrary/field_75007_b #strongholdLibraryChestContents
public ado.c # ComponentStrongholdRoomCrossing/field_75014_c strongholdCorridorChestContents public aeg.c #FD:ComponentStrongholdRoomCrossing/field_75014_c #strongholdCorridorChestContents
public aem.a # ComponentVillageHouse2/field_74918_a villageBlacksmithChestContents public afh.a #FD:ComponentVillageHouse2/field_74918_a #villageBlacksmithChestContents
# AnvilChunkLoader.chunkSaveLocation # AnvilChunkLoader.chunkSaveLocation
default zn.d # AnvilChunkLoader/field_75825_d default aaf.d #FD:AnvilChunkLoader/field_75825_d
# ChunkProviderServer.currentChunkLoader # ChunkProviderServer.currentChunkLoader
default id.e # ChunkProviderServer/field_73247_e default il.e #FD:ChunkProviderServer/field_73247_e
# PlayerManager # PlayerManager
default ib.a(IIZ)Lic; # PlayerManager/func_72690_a getOrCreateChunkWatcher default ij.a(IIZ)Lik; #MD:PlayerManager/func_72690_a #getOrCreateChunkWatcher
# World # World
public-f xe.C # World/field_72982_D villageCollectionObj public-f xv.C #FD:World/field_72982_D #villageCollectionObj
public xe.H # World/field_72993_I activeChunkSet public xv.H #FD:World/field_72993_I #activeChunkSet
# EntityLiving # EntityLiving
public ln.bc # EntityLiving/field_70728_aV experienceValue public mc.bc #FD:EntityLiving/field_70728_aV #experienceValue
# GuiFlatPresets # GuiFlatPresets
public asr.a(Ljava/lang/String;ILxz;Ljava/util/List;[Labm;)V # GuiFlatPresets/func_82294_a public atw.a(Ljava/lang/String;ILyr;Ljava/util/List;[Lace;)V #MD:GuiFlatPresets/func_82294_a
public asr.a(Ljava/lang/String;ILxz;[Labm;)V # GuiFlatPresets/func_82297_a public atw.a(Ljava/lang/String;ILyr;[Lace;)V #MD:GuiFlatPresets/func_82297_a
# BiomeGenBase # BiomeGenBase
public xz.*() # Everything protected->public public yr.*() #MD:BiomeGenBase/* #Everything protected->public
# MapGenVillage # MapGenVillage
public-f aea.e # MapGenVillage/field_75055_e villageSpawnBiomes public-f aev.e #FD:MapGenVillage/field_75055_e #villageSpawnBiomes

View File

@ -8,7 +8,7 @@
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.logging.Level; import java.util.logging.Level;
@@ -71,6 +72,9 @@ @@ -70,6 +71,9 @@
import net.minecraft.src.WorldServerMulti; import net.minecraft.src.WorldServerMulti;
import net.minecraft.src.WorldSettings; import net.minecraft.src.WorldSettings;
import net.minecraft.src.WorldType; import net.minecraft.src.WorldType;
@ -16,9 +16,9 @@
+import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.world.WorldEvent; +import net.minecraftforge.event.world.WorldEvent;
public abstract class MinecraftServer implements Runnable, IPlayerUsage, ICommandSender public abstract class MinecraftServer implements ICommandSender, Runnable, IPlayerUsage
{ {
@@ -152,7 +156,8 @@ @@ -151,7 +155,8 @@
public final long[] tickTimeArray = new long[100]; public final long[] tickTimeArray = new long[100];
/** Stats are [dimension][tick%100] system.nanoTime is stored. */ /** Stats are [dimension][tick%100] system.nanoTime is stored. */
@ -28,7 +28,7 @@
private KeyPair serverKeyPair; private KeyPair serverKeyPair;
/** Username of the server owner (for integrated servers) */ /** Username of the server owner (for integrated servers) */
@@ -243,8 +248,6 @@ @@ -242,8 +247,6 @@
{ {
this.convertMapIfNeeded(par1Str); this.convertMapIfNeeded(par1Str);
this.setUserMessage("menu.loadingLevel"); this.setUserMessage("menu.loadingLevel");
@ -37,7 +37,7 @@
ISaveHandler var7 = this.anvilConverterForAnvilFile.getSaveLoader(par1Str, true); ISaveHandler var7 = this.anvilConverterForAnvilFile.getSaveLoader(par1Str, true);
WorldInfo var9 = var7.loadWorldInfo(); WorldInfo var9 = var7.loadWorldInfo();
WorldSettings var8; WorldSettings var8;
@@ -264,46 +267,23 @@ @@ -263,46 +266,23 @@
var8.enableBonusChest(); var8.enableBonusChest();
} }
@ -95,7 +95,7 @@
this.setDifficultyForAllWorlds(this.getDifficulty()); this.setDifficultyForAllWorlds(this.getDifficulty());
this.initialWorldChunkLoad(); this.initialWorldChunkLoad();
} }
@@ -434,7 +414,9 @@ @@ -433,7 +413,9 @@
for (int var3 = 0; var3 < var2; ++var3) for (int var3 = 0; var3 < var2; ++var3)
{ {
WorldServer var4 = var1[var3]; WorldServer var4 = var1[var3];
@ -105,7 +105,7 @@
} }
if (this.usageSnooper != null && this.usageSnooper.isSnooperRunning()) if (this.usageSnooper != null && this.usageSnooper.isSnooperRunning())
@@ -647,13 +629,13 @@ @@ -646,13 +628,13 @@
{ {
this.theProfiler.startSection("levels"); this.theProfiler.startSection("levels");
@ -123,7 +123,7 @@
this.theProfiler.startSection(var4.getWorldInfo().getWorldName()); this.theProfiler.startSection(var4.getWorldInfo().getWorldName());
this.theProfiler.startSection("pools"); this.theProfiler.startSection("pools");
var4.getWorldVec3Pool().clear(); var4.getWorldVec3Pool().clear();
@@ -678,9 +660,11 @@ @@ -699,9 +681,11 @@
this.theProfiler.endSection(); this.theProfiler.endSection();
} }
@ -138,7 +138,7 @@
this.theProfiler.endStartSection("connection"); this.theProfiler.endStartSection("connection");
this.getNetworkThread().networkTick(); this.getNetworkThread().networkTick();
this.theProfiler.endStartSection("players"); this.theProfiler.endStartSection("players");
@@ -736,7 +720,13 @@ @@ -757,7 +741,13 @@
*/ */
public WorldServer worldServerForDimension(int par1) public WorldServer worldServerForDimension(int par1)
{ {
@ -153,7 +153,7 @@
} }
@SideOnly(Side.SERVER) @SideOnly(Side.SERVER)
@@ -845,7 +835,7 @@ @@ -866,7 +856,7 @@
public String getServerModName() public String getServerModName()
{ {
@ -162,7 +162,7 @@
} }
/** /**
@@ -1124,6 +1114,7 @@ @@ -1128,6 +1118,7 @@
if (var2 != null) if (var2 != null)
{ {

View File

@ -102,7 +102,7 @@
{ {
ItemStack var8 = this.createStackedBlock(par6); ItemStack var8 = this.createStackedBlock(par6);
@@ -1315,4 +1321,848 @@ @@ -1322,4 +1328,848 @@
canBlockGrass[0] = true; canBlockGrass[0] = true;
StatList.initBreakableStats(); StatList.initBreakableStats();
} }

View File

@ -35,49 +35,48 @@
+ (par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH)); + (par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH));
} }
/** public int func_85104_a(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9)
@@ -74,20 +85,22 @@ @@ -72,19 +83,22 @@
int var9 = par1World.getBlockMetadata(par2, par3, par4); int var11 = var10 & 8;
int var10 = var9 & 8; var10 &= 7;
var9 &= 7;
-
- if (par5 == 2 && par1World.isBlockNormalCube(par2, par3, par4 + 1)) - if (par5 == 2 && par1World.isBlockNormalCube(par2, par3, par4 + 1))
+ +
+ ForgeDirection dir = ForgeDirection.getOrientation(par5); + ForgeDirection dir = ForgeDirection.getOrientation(par5);
+ +
+ if (dir == NORTH && par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH)) + if (dir == NORTH && par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH))
{ {
var9 = 4; var10 = 4;
} }
- else if (par5 == 3 && par1World.isBlockNormalCube(par2, par3, par4 - 1)) - else if (par5 == 3 && par1World.isBlockNormalCube(par2, par3, par4 - 1))
+ else if (dir == SOUTH && par1World.isBlockSolidOnSide(par2, par3, par4 - 1, SOUTH)) + else if (dir == SOUTH && par1World.isBlockSolidOnSide(par2, par3, par4 - 1, SOUTH))
{ {
var9 = 3; var10 = 3;
} }
- else if (par5 == 4 && par1World.isBlockNormalCube(par2 + 1, par3, par4)) - else if (par5 == 4 && par1World.isBlockNormalCube(par2 + 1, par3, par4))
+ else if (dir == WEST && par1World.isBlockSolidOnSide(par2 + 1, par3, par4, WEST)) + else if (dir == WEST && par1World.isBlockSolidOnSide(par2 + 1, par3, par4, WEST))
{ {
var9 = 2; var10 = 2;
} }
- else if (par5 == 5 && par1World.isBlockNormalCube(par2 - 1, par3, par4)) - else if (par5 == 5 && par1World.isBlockNormalCube(par2 - 1, par3, par4))
+ else if (dir == EAST && par1World.isBlockSolidOnSide(par2 - 1, par3, par4, EAST)) + else if (dir == EAST && par1World.isBlockSolidOnSide(par2 - 1, par3, par4, EAST))
{ {
var9 = 1; var10 = 1;
} }
@@ -104,7 +117,11 @@ @@ -101,7 +115,11 @@
*/ */
private int getOrientation(World par1World, int par2, int par3, int par4) private int getOrientation(World par1World, int par2, int par3, int par4)
{ {
- return par1World.isBlockNormalCube(par2 - 1, par3, par4) ? 1 : (par1World.isBlockNormalCube(par2 + 1, par3, par4) ? 2 : (par1World.isBlockNormalCube(par2, par3, par4 - 1) ? 3 : (par1World.isBlockNormalCube(par2, par3, par4 + 1) ? 4 : 1))); - return par1World.isBlockNormalCube(par2 - 1, par3, par4) ? 1 : (par1World.isBlockNormalCube(par2 + 1, par3, par4) ? 2 : (par1World.isBlockNormalCube(par2, par3, par4 - 1) ? 3 : (par1World.isBlockNormalCube(par2, par3, par4 + 1) ? 4 : 1)));
+ if (par1World.isBlockSolidOnSide(par2 - 1, par3, par4, EAST)) return 1; + if (par1World.isBlockSolidOnSide(par2 - 1, par3, par4, EAST)) return 1;
+ if (par1World.isBlockSolidOnSide(par2 + 1, par3, par4, WEST)) return 2; + if (par1World.isBlockSolidOnSide(par2 + 1, par3, par4, WEST)) return 2;
+ if (par1World.isBlockSolidOnSide(par2, par3, par4 - 1, SOUTH)) return 3; + if (par1World.isBlockSolidOnSide(par2, par3, par4 - 1, SOUTH)) return 3;
+ if (par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH)) return 4; + if (par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH)) return 4;
+ return 1; + return 1;
} }
/** /**
@@ -118,22 +135,22 @@ @@ -115,22 +133,22 @@
int var6 = par1World.getBlockMetadata(par2, par3, par4) & 7; int var6 = par1World.getBlockMetadata(par2, par3, par4) & 7;
boolean var7 = false; boolean var7 = false;

View File

@ -8,7 +8,7 @@
public class BlockChest extends BlockContainer public class BlockChest extends BlockContainer
{ {
@@ -383,7 +384,7 @@ @@ -411,7 +412,7 @@
{ {
return true; return true;
} }
@ -17,7 +17,7 @@
{ {
return true; return true;
} }
@@ -391,19 +392,19 @@ @@ -419,19 +420,19 @@
{ {
return true; return true;
} }

View File

@ -14,7 +14,7 @@
{ {
int var8 = par1World.getBlockId(var6, par3 + 1, var7); int var8 = par1World.getBlockId(var6, par3 + 1, var7);
- if (var8 == Block.crops.blockID || var8 == Block.melonStem.blockID || var8 == Block.pumpkinStem.blockID) - if (var8 == Block.crops.blockID || var8 == Block.melonStem.blockID || var8 == Block.pumpkinStem.blockID || var8 == Block.potatoe.blockID || var8 == Block.carrot.blockID)
+ Block plant = blocksList[var8]; + Block plant = blocksList[var8];
+ if (plant instanceof IPlantable && canSustainPlant(par1World, par2, par3, par4, ForgeDirection.UP, (IPlantable)plant)) + if (plant instanceof IPlantable && canSustainPlant(par1World, par2, par3, par4, ForgeDirection.UP, (IPlantable)plant))
{ {

View File

@ -9,7 +9,7 @@
public class BlockLadder extends Block public class BlockLadder extends Block
{ {
@@ -107,7 +109,10 @@ @@ -96,29 +98,32 @@
*/ */
public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
{ {
@ -20,35 +20,34 @@
+ par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH); + par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH);
} }
/** public int func_85104_a(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9)
@@ -117,22 +122,22 @@
{ {
int var9 = par1World.getBlockMetadata(par2, par3, par4); int var10 = par9;
- if ((var9 == 0 || par5 == 2) && par1World.isBlockNormalCube(par2, par3, par4 + 1)) - if ((par9 == 0 || par5 == 2) && par1World.isBlockNormalCube(par2, par3, par4 + 1))
+ if ((var9 == 0 || par5 == 2) && par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH)) + if ((var10 == 0 || par5 == 2) && par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH))
{ {
var9 = 2; var10 = 2;
} }
- if ((var9 == 0 || par5 == 3) && par1World.isBlockNormalCube(par2, par3, par4 - 1)) - if ((var10 == 0 || par5 == 3) && par1World.isBlockNormalCube(par2, par3, par4 - 1))
+ if ((var9 == 0 || par5 == 3) && par1World.isBlockSolidOnSide(par2, par3, par4 - 1, SOUTH)) + if ((var10 == 0 || par5 == 3) && par1World.isBlockSolidOnSide(par2, par3, par4 - 1, SOUTH))
{ {
var9 = 3; var10 = 3;
} }
- if ((var9 == 0 || par5 == 4) && par1World.isBlockNormalCube(par2 + 1, par3, par4)) - if ((var10 == 0 || par5 == 4) && par1World.isBlockNormalCube(par2 + 1, par3, par4))
+ if ((var9 == 0 || par5 == 4) && par1World.isBlockSolidOnSide(par2 + 1, par3, par4, WEST)) + if ((var10 == 0 || par5 == 4) && par1World.isBlockSolidOnSide(par2 + 1, par3, par4, WEST))
{ {
var9 = 4; var10 = 4;
} }
- if ((var9 == 0 || par5 == 5) && par1World.isBlockNormalCube(par2 - 1, par3, par4)) - if ((var10 == 0 || par5 == 5) && par1World.isBlockNormalCube(par2 - 1, par3, par4))
+ if ((var9 == 0 || par5 == 5) && par1World.isBlockSolidOnSide(par2 - 1, par3, par4, EAST)) + if ((var10 == 0 || par5 == 5) && par1World.isBlockSolidOnSide(par2 - 1, par3, par4, EAST))
{ {
var9 = 5; var10 = 5;
} }
@@ -149,22 +154,22 @@ @@ -135,22 +140,22 @@
int var6 = par1World.getBlockMetadata(par2, par3, par4); int var6 = par1World.getBlockMetadata(par2, par3, par4);
boolean var7 = false; boolean var7 = false;
@ -75,7 +74,7 @@
{ {
var7 = true; var7 = true;
} }
@@ -185,4 +190,10 @@ @@ -171,4 +176,10 @@
{ {
return 1; return 1;
} }

View File

@ -36,47 +36,47 @@
+ par1World.isBlockSolidOnSide(par2, par3 + 1, par4, DOWN ); + par1World.isBlockSolidOnSide(par2, par3 + 1, par4, DOWN );
} }
/** public int func_85104_a(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9)
@@ -68,32 +82,32 @@ @@ -64,32 +78,32 @@
var9 &= 7; int var10 = par9 & 7;
var9 = -1; var10 = -1;
- if (par5 == 0 && par1World.isBlockNormalCube(par2, par3 + 1, par4)) - if (par5 == 0 && par1World.isBlockNormalCube(par2, par3 + 1, par4))
+ if (par5 == 0 && par1World.isBlockSolidOnSide(par2, par3 + 1, par4, DOWN)) + if (par5 == 0 && par1World.isBlockSolidOnSide(par2, par3 + 1, par4, DOWN))
{ {
var9 = par1World.rand.nextBoolean() ? 0 : 7; var10 = par1World.rand.nextBoolean() ? 0 : 7;
} }
- if (par5 == 1 && par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4)) - if (par5 == 1 && par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4))
+ if (par5 == 1 && par1World.isBlockSolidOnSide(par2, par3 - 1, par4, UP)) + if (par5 == 1 && par1World.isBlockSolidOnSide(par2, par3 - 1, par4, UP))
{ {
var9 = 5 + par1World.rand.nextInt(2); var10 = 5 + par1World.rand.nextInt(2);
} }
- if (par5 == 2 && par1World.isBlockNormalCube(par2, par3, par4 + 1)) - if (par5 == 2 && par1World.isBlockNormalCube(par2, par3, par4 + 1))
+ if (par5 == 2 && par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH)) + if (par5 == 2 && par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH))
{ {
var9 = 4; var10 = 4;
} }
- if (par5 == 3 && par1World.isBlockNormalCube(par2, par3, par4 - 1)) - if (par5 == 3 && par1World.isBlockNormalCube(par2, par3, par4 - 1))
+ if (par5 == 3 && par1World.isBlockSolidOnSide(par2, par3, par4 - 1, SOUTH)) + if (par5 == 3 && par1World.isBlockSolidOnSide(par2, par3, par4 - 1, SOUTH))
{ {
var9 = 3; var10 = 3;
} }
- if (par5 == 4 && par1World.isBlockNormalCube(par2 + 1, par3, par4)) - if (par5 == 4 && par1World.isBlockNormalCube(par2 + 1, par3, par4))
+ if (par5 == 4 && par1World.isBlockSolidOnSide(par2 + 1, par3, par4, WEST)) + if (par5 == 4 && par1World.isBlockSolidOnSide(par2 + 1, par3, par4, WEST))
{ {
var9 = 2; var10 = 2;
} }
- if (par5 == 5 && par1World.isBlockNormalCube(par2 - 1, par3, par4)) - if (par5 == 5 && par1World.isBlockNormalCube(par2 - 1, par3, par4))
+ if (par5 == 5 && par1World.isBlockSolidOnSide(par2 - 1, par3, par4, EAST)) + if (par5 == 5 && par1World.isBlockSolidOnSide(par2 - 1, par3, par4, EAST))
{ {
var9 = 1; var10 = 1;
} }
@@ -144,42 +158,42 @@ @@ -132,42 +146,42 @@
int var6 = par1World.getBlockMetadata(par2, par3, par4) & 7; int var6 = par1World.getBlockMetadata(par2, par3, par4) & 7;
boolean var7 = false; boolean var7 = false;

View File

@ -17,7 +17,7 @@
} }
} }
} }
@@ -147,4 +142,16 @@ @@ -144,4 +139,16 @@
{ {
return new ItemStack(this.blockID, 1, limitToValidMetadata(par1)); return new ItemStack(this.blockID, 1, limitToValidMetadata(par1));
} }

View File

@ -30,35 +30,35 @@
+ canPlaceTorchOn(par1World, par2, par3 - 1, par4); + canPlaceTorchOn(par1World, par2, par3 - 1, par4);
} }
/** public int func_85104_a(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9)
@@ -83,22 +89,22 @@ @@ -80,22 +86,22 @@
var9 = 5; var10 = 5;
} }
- if (par5 == 2 && par1World.isBlockNormalCubeDefault(par2, par3, par4 + 1, true)) - if (par5 == 2 && par1World.isBlockNormalCubeDefault(par2, par3, par4 + 1, true))
+ if (par5 == 2 && par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH, true)) + if (par5 == 2 && par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH, true))
{ {
var9 = 4; var10 = 4;
} }
- if (par5 == 3 && par1World.isBlockNormalCubeDefault(par2, par3, par4 - 1, true)) - if (par5 == 3 && par1World.isBlockNormalCubeDefault(par2, par3, par4 - 1, true))
+ if (par5 == 3 && par1World.isBlockSolidOnSide(par2, par3, par4 - 1, SOUTH, true)) + if (par5 == 3 && par1World.isBlockSolidOnSide(par2, par3, par4 - 1, SOUTH, true))
{ {
var9 = 3; var10 = 3;
} }
- if (par5 == 4 && par1World.isBlockNormalCubeDefault(par2 + 1, par3, par4, true)) - if (par5 == 4 && par1World.isBlockNormalCubeDefault(par2 + 1, par3, par4, true))
+ if (par5 == 4 && par1World.isBlockSolidOnSide(par2 + 1, par3, par4, WEST, true)) + if (par5 == 4 && par1World.isBlockSolidOnSide(par2 + 1, par3, par4, WEST, true))
{ {
var9 = 2; var10 = 2;
} }
- if (par5 == 5 && par1World.isBlockNormalCubeDefault(par2 - 1, par3, par4, true)) - if (par5 == 5 && par1World.isBlockNormalCubeDefault(par2 - 1, par3, par4, true))
+ if (par5 == 5 && par1World.isBlockSolidOnSide(par2 - 1, par3, par4, EAST, true)) + if (par5 == 5 && par1World.isBlockSolidOnSide(par2 - 1, par3, par4, EAST, true))
{ {
var9 = 1; var10 = 1;
} }
@@ -124,19 +130,19 @@ @@ -121,19 +127,19 @@
*/ */
public void onBlockAdded(World par1World, int par2, int par3, int par4) public void onBlockAdded(World par1World, int par2, int par3, int par4)
{ {
@ -82,7 +82,7 @@
{ {
par1World.setBlockMetadataWithNotify(par2, par3, par4, 4); par1World.setBlockMetadataWithNotify(par2, par3, par4, 4);
} }
@@ -159,22 +165,22 @@ @@ -156,22 +162,22 @@
int var6 = par1World.getBlockMetadata(par2, par3, par4); int var6 = par1World.getBlockMetadata(par2, par3, par4);
boolean var7 = false; boolean var7 = false;

View File

@ -24,7 +24,7 @@
{ {
par1World.setBlockWithNotify(par2, par3, par4, 0); par1World.setBlockWithNotify(par2, par3, par4, 0);
this.dropBlockAsItem(par1World, par2, par3, par4, var6, 0); this.dropBlockAsItem(par1World, par2, par3, par4, var6, 0);
@@ -260,6 +264,10 @@ @@ -255,6 +259,10 @@
*/ */
public boolean canPlaceBlockOnSide(World par1World, int par2, int par3, int par4, int par5) public boolean canPlaceBlockOnSide(World par1World, int par2, int par3, int par4, int par5)
{ {
@ -35,7 +35,7 @@
if (par5 == 0) if (par5 == 0)
{ {
return false; return false;
@@ -290,7 +298,7 @@ @@ -285,7 +293,7 @@
--par2; --par2;
} }
@ -44,7 +44,7 @@
} }
} }
@@ -305,6 +313,10 @@ @@ -300,6 +308,10 @@
*/ */
private static boolean isValidSupportBlock(int par0) private static boolean isValidSupportBlock(int par0)
{ {

View File

@ -23,7 +23,7 @@
} }
/** /**
@@ -66,7 +73,10 @@ @@ -66,29 +73,32 @@
*/ */
public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
{ {
@ -34,35 +34,34 @@
+ par1World.isBlockSolidOnSide(par2, par3, par4 + 1, WEST ); + par1World.isBlockSolidOnSide(par2, par3, par4 + 1, WEST );
} }
/** public int func_85104_a(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9)
@@ -76,22 +86,22 @@
{ {
byte var9 = 0; byte var10 = 0;
- if (par5 == 2 && par1World.isBlockNormalCubeDefault(par2, par3, par4 + 1, true)) - if (par5 == 2 && par1World.isBlockNormalCubeDefault(par2, par3, par4 + 1, true))
+ if (par5 == 2 && par1World.isBlockSolidOnSide(par2, par3, par4 + 1, WEST, true)) + if (par5 == 2 && par1World.isBlockSolidOnSide(par2, par3, par4 + 1, WEST, true))
{ {
var9 = 2; var10 = 2;
} }
- if (par5 == 3 && par1World.isBlockNormalCubeDefault(par2, par3, par4 - 1, true)) - if (par5 == 3 && par1World.isBlockNormalCubeDefault(par2, par3, par4 - 1, true))
+ if (par5 == 3 && par1World.isBlockSolidOnSide(par2, par3, par4 - 1, EAST, true)) + if (par5 == 3 && par1World.isBlockSolidOnSide(par2, par3, par4 - 1, EAST, true))
{ {
var9 = 0; var10 = 0;
} }
- if (par5 == 4 && par1World.isBlockNormalCubeDefault(par2 + 1, par3, par4, true)) - if (par5 == 4 && par1World.isBlockNormalCubeDefault(par2 + 1, par3, par4, true))
+ if (par5 == 4 && par1World.isBlockSolidOnSide(par2 + 1, par3, par4, NORTH, true)) + if (par5 == 4 && par1World.isBlockSolidOnSide(par2 + 1, par3, par4, NORTH, true))
{ {
var9 = 1; var10 = 1;
} }
- if (par5 == 5 && par1World.isBlockNormalCubeDefault(par2 - 1, par3, par4, true)) - if (par5 == 5 && par1World.isBlockNormalCubeDefault(par2 - 1, par3, par4, true))
+ if (par5 == 5 && par1World.isBlockSolidOnSide(par2 - 1, par3, par4, SOUTH, true)) + if (par5 == 5 && par1World.isBlockSolidOnSide(par2 - 1, par3, par4, SOUTH, true))
{ {
var9 = 3; var10 = 3;
} }
@@ -113,22 +123,22 @@ @@ -115,22 +125,22 @@
int var7 = var6 & 3; int var7 = var6 & 3;
boolean var8 = false; boolean var8 = false;
@ -89,7 +88,7 @@
{ {
var8 = true; var8 = true;
} }
@@ -149,7 +159,7 @@ @@ -151,7 +161,7 @@
boolean var12 = (par6 & 8) == 8; boolean var12 = (par6 & 8) == 8;
boolean var13 = par5 == Block.tripWireSource.blockID; boolean var13 = par5 == Block.tripWireSource.blockID;
boolean var14 = false; boolean var14 = false;

View File

@ -15,7 +15,7 @@
{ {
public BlockVine(int par1) public BlockVine(int par1)
{ {
@@ -431,14 +435,26 @@ @@ -425,14 +429,26 @@
*/ */
public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6)
{ {

View File

@ -32,7 +32,7 @@
if (var5 == null) if (var5 == null)
{ {
@@ -279,6 +286,11 @@ @@ -291,6 +298,11 @@
{ {
if (!this.currentServer.canNotSave) if (!this.currentServer.canNotSave)
{ {
@ -44,7 +44,7 @@
for (int var1 = 0; var1 < 100; ++var1) for (int var1 = 0; var1 < 100; ++var1)
{ {
if (!this.chunksToUnload.isEmpty()) if (!this.chunksToUnload.isEmpty())
@@ -291,6 +303,11 @@ @@ -303,6 +315,11 @@
this.chunksToUnload.remove(var2); this.chunksToUnload.remove(var2);
this.loadedChunkHashMap.remove(var2.longValue()); this.loadedChunkHashMap.remove(var2.longValue());
this.loadedChunks.remove(var3); this.loadedChunks.remove(var3);

View File

@ -9,9 +9,9 @@
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
public abstract class Entity public abstract class Entity
@@ -197,6 +199,11 @@ @@ -198,6 +200,11 @@
public int dimension;
protected int field_82152_aq; protected int field_82152_aq;
private boolean field_83001_bt;
public EnumEntitySize myEntitySize; public EnumEntitySize myEntitySize;
+ /** Forge: Used to store custom data for each entity. */ + /** Forge: Used to store custom data for each entity. */
+ private NBTTagCompound customEntityData; + private NBTTagCompound customEntityData;
@ -21,38 +21,38 @@
public Entity(World par1World) public Entity(World par1World)
{ {
@@ -1466,6 +1473,15 @@ @@ -1493,6 +1500,15 @@
par1NBTTagCompound.setShort("Air", (short)this.getAir()); par1NBTTagCompound.setInteger("Dimension", this.dimension);
par1NBTTagCompound.setBoolean("OnGround", this.onGround); par1NBTTagCompound.setBoolean("Invulnerable", this.field_83001_bt);
par1NBTTagCompound.setInteger("Dimension", this.dimension); par1NBTTagCompound.setInteger("PortalCooldown", this.timeUntilPortal);
+ if (persistentID != null) + if (persistentID != null)
+ { + {
+ par1NBTTagCompound.setLong("PersistentIDMSB", persistentID.getMostSignificantBits()); + par1NBTTagCompound.setLong("PersistentIDMSB", persistentID.getMostSignificantBits());
+ par1NBTTagCompound.setLong("PersistentIDLSB", persistentID.getLeastSignificantBits()); + par1NBTTagCompound.setLong("PersistentIDLSB", persistentID.getLeastSignificantBits());
+ } + }
+ if (customEntityData != null) + if (customEntityData != null)
+ { + {
+ par1NBTTagCompound.setCompoundTag("ForgeData", customEntityData); + par1NBTTagCompound.setCompoundTag("ForgeData", customEntityData);
+ } + }
this.writeEntityToNBT(par1NBTTagCompound); this.writeEntityToNBT(par1NBTTagCompound);
} }
catch (Throwable var5)
@@ -1508,6 +1524,14 @@ @@ -1547,6 +1563,14 @@
this.dimension = par1NBTTagCompound.getInteger("Dimension"); this.timeUntilPortal = par1NBTTagCompound.getInteger("PortalCooldown");
this.setPosition(this.posX, this.posY, this.posZ); this.setPosition(this.posX, this.posY, this.posZ);
this.setRotation(this.rotationYaw, this.rotationPitch); this.setRotation(this.rotationYaw, this.rotationPitch);
+ if (par1NBTTagCompound.hasKey("ForgeData")) + if (par1NBTTagCompound.hasKey("ForgeData"))
+ { + {
+ customEntityData = par1NBTTagCompound.getCompoundTag("ForgeData"); + customEntityData = par1NBTTagCompound.getCompoundTag("ForgeData");
+ } + }
+ if (par1NBTTagCompound.hasKey("PersistentIDMSB") && par1NBTTagCompound.hasKey("PersistentIDLSB")) + if (par1NBTTagCompound.hasKey("PersistentIDMSB") && par1NBTTagCompound.hasKey("PersistentIDLSB"))
+ { + {
+ persistentID = new UUID(par1NBTTagCompound.getLong("PersistentIDMSB"), par1NBTTagCompound.getLong("PersistentIDLSB")); + persistentID = new UUID(par1NBTTagCompound.getLong("PersistentIDMSB"), par1NBTTagCompound.getLong("PersistentIDLSB"));
+ } + }
this.readEntityFromNBT(par1NBTTagCompound); this.readEntityFromNBT(par1NBTTagCompound);
} }
catch (Throwable var5)
@@ -1594,7 +1618,14 @@ @@ -1641,7 +1665,14 @@
{ {
EntityItem var3 = new EntityItem(this.worldObj, this.posX, this.posY + (double)par2, this.posZ, par1ItemStack); EntityItem var3 = new EntityItem(this.worldObj, this.posX, this.posY + (double)par2, this.posZ, par1ItemStack);
var3.delayBeforeCanPickup = 10; var3.delayBeforeCanPickup = 10;
@ -68,7 +68,7 @@
return var3; return var3;
} }
@@ -1954,7 +1985,7 @@ @@ -2001,7 +2032,7 @@
*/ */
public boolean isRiding() public boolean isRiding()
{ {
@ -77,7 +77,7 @@
} }
/** /**
@@ -2279,7 +2310,7 @@ @@ -2336,7 +2367,7 @@
public float func_82146_a(Explosion par1Explosion, Block par2Block, int par3, int par4, int par5) public float func_82146_a(Explosion par1Explosion, Block par2Block, int par3, int par4, int par5)
{ {
@ -86,9 +86,9 @@
} }
public int func_82143_as() public int func_82143_as()
@@ -2299,4 +2330,84 @@ @@ -2366,4 +2397,84 @@
{ par1CrashReportCategory.addCrashSection("Block location", CrashReportCategory.func_85071_a(MathHelper.floor_double(this.posX), MathHelper.floor_double(this.posY), MathHelper.floor_double(this.posZ)));
return false; par1CrashReportCategory.addCrashSection("Momentum", String.format("%.2f, %.2f, %.2f", new Object[] {Double.valueOf(this.motionX), Double.valueOf(this.motionY), Double.valueOf(this.motionZ)}));
} }
+ +
+ /* ================================== Forge Start =====================================*/ + /* ================================== Forge Start =====================================*/

View File

@ -32,7 +32,7 @@
} }
/** /**
@@ -118,7 +129,20 @@ @@ -112,7 +123,20 @@
++this.age; ++this.age;
@ -54,7 +54,7 @@
{ {
this.setDead(); this.setDead();
} }
@@ -215,6 +239,7 @@ @@ -228,6 +252,7 @@
{ {
par1NBTTagCompound.setShort("Health", (short)((byte)this.health)); par1NBTTagCompound.setShort("Health", (short)((byte)this.health));
par1NBTTagCompound.setShort("Age", (short)this.age); par1NBTTagCompound.setShort("Age", (short)this.age);
@ -62,7 +62,7 @@
if (this.item != null) if (this.item != null)
{ {
@@ -232,10 +257,15 @@ @@ -245,10 +270,15 @@
NBTTagCompound var2 = par1NBTTagCompound.getCompoundTag("Item"); NBTTagCompound var2 = par1NBTTagCompound.getCompoundTag("Item");
this.item = ItemStack.loadItemStackFromNBT(var2); this.item = ItemStack.loadItemStackFromNBT(var2);
@ -79,7 +79,7 @@
} }
/** /**
@@ -245,9 +275,21 @@ @@ -258,9 +288,21 @@
{ {
if (!this.worldObj.isRemote) if (!this.worldObj.isRemote)
{ {

View File

@ -11,7 +11,7 @@
public abstract class EntityLiving extends Entity public abstract class EntityLiving extends Entity
{ {
@@ -351,6 +355,7 @@ @@ -344,6 +348,7 @@
public void setAttackTarget(EntityLiving par1EntityLiving) public void setAttackTarget(EntityLiving par1EntityLiving)
{ {
this.attackTarget = par1EntityLiving; this.attackTarget = par1EntityLiving;
@ -27,7 +27,7 @@
} }
protected void entityInit() protected void entityInit()
@@ -722,6 +728,11 @@ @@ -723,6 +729,11 @@
*/ */
public void onUpdate() public void onUpdate()
{ {
@ -39,7 +39,7 @@
super.onUpdate(); super.onUpdate();
if (!this.worldObj.isRemote) if (!this.worldObj.isRemote)
@@ -903,6 +914,11 @@ @@ -908,6 +919,11 @@
*/ */
public boolean attackEntityFrom(DamageSource par1DamageSource, int par2) public boolean attackEntityFrom(DamageSource par1DamageSource, int par2)
{ {
@ -48,12 +48,12 @@
+ return false; + return false;
+ } + }
+ +
if (this.worldObj.isRemote) if (this.func_85032_ar())
{ {
return false; return false;
@@ -1109,6 +1125,11 @@ @@ -1118,6 +1134,11 @@
{ {
if (!this.field_83001_bt) if (!this.func_85032_ar())
{ {
+ par2 = ForgeHooks.onLivingHurt(this, par1DamageSource, par2); + par2 = ForgeHooks.onLivingHurt(this, par1DamageSource, par2);
+ if (par2 <= 0) + if (par2 <= 0)
@ -63,7 +63,7 @@
par2 = this.applyArmorCalculations(par1DamageSource, par2); par2 = this.applyArmorCalculations(par1DamageSource, par2);
par2 = this.applyPotionDamageCalculations(par1DamageSource, par2); par2 = this.applyPotionDamageCalculations(par1DamageSource, par2);
this.health -= par2; this.health -= par2;
@@ -1173,6 +1194,11 @@ @@ -1182,6 +1203,11 @@
*/ */
public void onDeath(DamageSource par1DamageSource) public void onDeath(DamageSource par1DamageSource)
{ {
@ -75,7 +75,7 @@
Entity var2 = par1DamageSource.getEntity(); Entity var2 = par1DamageSource.getEntity();
if (this.scoreValue >= 0 && var2 != null) if (this.scoreValue >= 0 && var2 != null)
@@ -1195,6 +1221,10 @@ @@ -1204,6 +1230,10 @@
{ {
var3 = EnchantmentHelper.getLootingModifier((EntityLiving)var2); var3 = EnchantmentHelper.getLootingModifier((EntityLiving)var2);
} }
@ -86,7 +86,7 @@
if (!this.isChild() && this.worldObj.getGameRules().getGameRuleBooleanValue("doMobLoot")) if (!this.isChild() && this.worldObj.getGameRules().getGameRuleBooleanValue("doMobLoot"))
{ {
@@ -1203,7 +1233,7 @@ @@ -1212,7 +1242,7 @@
if (this.recentlyHit > 0) if (this.recentlyHit > 0)
{ {
@ -95,7 +95,7 @@
if (var4 < 5) if (var4 < 5)
{ {
@@ -1211,6 +1241,16 @@ @@ -1220,6 +1250,16 @@
} }
} }
} }
@ -112,7 +112,7 @@
} }
this.worldObj.setEntityState(this, (byte)3); this.worldObj.setEntityState(this, (byte)3);
@@ -1254,6 +1294,12 @@ @@ -1263,6 +1303,12 @@
*/ */
protected void fall(float par1) protected void fall(float par1)
{ {
@ -125,7 +125,7 @@
super.fall(par1); super.fall(par1);
int var2 = MathHelper.ceiling_float_int(par1 - 3.0F); int var2 = MathHelper.ceiling_float_int(par1 - 3.0F);
@@ -1441,7 +1487,7 @@ @@ -1465,7 +1511,7 @@
int var2 = MathHelper.floor_double(this.boundingBox.minY); int var2 = MathHelper.floor_double(this.boundingBox.minY);
int var3 = MathHelper.floor_double(this.posZ); int var3 = MathHelper.floor_double(this.posZ);
int var4 = this.worldObj.getBlockId(var1, var2, var3); int var4 = this.worldObj.getBlockId(var1, var2, var3);
@ -134,7 +134,7 @@
} }
/** /**
@@ -1849,6 +1895,7 @@ @@ -1874,6 +1920,7 @@
} }
this.isAirBorne = true; this.isAirBorne = true;
@ -142,7 +142,7 @@
} }
/** /**
@@ -2379,8 +2426,6 @@ @@ -2411,8 +2458,6 @@
return this.getCreatureAttribute() == EnumCreatureAttribute.UNDEAD; return this.getCreatureAttribute() == EnumCreatureAttribute.UNDEAD;
} }
@ -151,9 +151,9 @@
/** /**
* Remove the speified potion effect from this entity. * Remove the speified potion effect from this entity.
*/ */
@@ -2818,4 +2863,30 @@ @@ -2860,4 +2905,30 @@
{ {
return false; this.dataWatcher.updateObject(10, Byte.valueOf((byte)par1));
} }
+ +
+ /*** + /***
@ -163,17 +163,17 @@
+ public void curePotionEffects(ItemStack curativeItem) + public void curePotionEffects(ItemStack curativeItem)
+ { + {
+ Iterator<Integer> potionKey = activePotionsMap.keySet().iterator(); + Iterator<Integer> potionKey = activePotionsMap.keySet().iterator();
+ +
+ if (worldObj.isRemote) + if (worldObj.isRemote)
+ { + {
+ return; + return;
+ } + }
+ +
+ while (potionKey.hasNext()) + while (potionKey.hasNext())
+ { + {
+ Integer key = potionKey.next(); + Integer key = potionKey.next();
+ PotionEffect effect = (PotionEffect)activePotionsMap.get(key); + PotionEffect effect = (PotionEffect)activePotionsMap.get(key);
+ +
+ if (effect.isCurativeItem(curativeItem)) + if (effect.isCurativeItem(curativeItem))
+ { + {
+ potionKey.remove(); + potionKey.remove();

View File

@ -69,7 +69,7 @@
+ { + {
+ return getCollisionHandler().getCollisionBox(this, par1Entity); + return getCollisionHandler().getCollisionBox(this, par1Entity);
+ } + }
return par1Entity.boundingBox; return par1Entity.canBePushed() ? par1Entity.boundingBox : null;
} }
@@ -77,6 +120,10 @@ @@ -77,6 +120,10 @@
@ -92,57 +92,57 @@
} }
public EntityMinecart(World par1World, double par2, double par4, double par6, int par8) public EntityMinecart(World par1World, double par2, double par4, double par6, int par8)
@@ -134,48 +181,7 @@ @@ -140,48 +187,7 @@
} }
this.setDead(); this.setDead();
- this.dropItemWithOffset(Item.minecartEmpty.shiftedIndex, 1, 0.0F); - this.dropItemWithOffset(Item.minecartEmpty.shiftedIndex, 1, 0.0F);
- -
- if (this.minecartType == 1) - if (this.minecartType == 1)
- {
- EntityMinecart var3 = this;
-
- for (int var4 = 0; var4 < var3.getSizeInventory(); ++var4)
- { - {
- ItemStack var5 = var3.getStackInSlot(var4); - EntityMinecart var3 = this;
- -
- if (var5 != null) - for (int var4 = 0; var4 < var3.getSizeInventory(); ++var4)
- { - {
- float var6 = this.rand.nextFloat() * 0.8F + 0.1F; - ItemStack var5 = var3.getStackInSlot(var4);
- float var7 = this.rand.nextFloat() * 0.8F + 0.1F;
- float var8 = this.rand.nextFloat() * 0.8F + 0.1F;
- -
- while (var5.stackSize > 0) - if (var5 != null)
- { - {
- int var9 = this.rand.nextInt(21) + 10; - float var6 = this.rand.nextFloat() * 0.8F + 0.1F;
- float var7 = this.rand.nextFloat() * 0.8F + 0.1F;
- float var8 = this.rand.nextFloat() * 0.8F + 0.1F;
- -
- if (var9 > var5.stackSize) - while (var5.stackSize > 0)
- { - {
- var9 = var5.stackSize; - int var9 = this.rand.nextInt(21) + 10;
- }
- -
- var5.stackSize -= var9; - if (var9 > var5.stackSize)
- EntityItem var10 = new EntityItem(this.worldObj, this.posX + (double)var6, this.posY + (double)var7, this.posZ + (double)var8, new ItemStack(var5.itemID, var9, var5.getItemDamage())); - {
- float var11 = 0.05F; - var9 = var5.stackSize;
- var10.motionX = (double)((float)this.rand.nextGaussian() * var11); - }
- var10.motionY = (double)((float)this.rand.nextGaussian() * var11 + 0.2F); -
- var10.motionZ = (double)((float)this.rand.nextGaussian() * var11); - var5.stackSize -= var9;
- this.worldObj.spawnEntityInWorld(var10); - EntityItem var10 = new EntityItem(this.worldObj, this.posX + (double)var6, this.posY + (double)var7, this.posZ + (double)var8, new ItemStack(var5.itemID, var9, var5.getItemDamage()));
- float var11 = 0.05F;
- var10.motionX = (double)((float)this.rand.nextGaussian() * var11);
- var10.motionY = (double)((float)this.rand.nextGaussian() * var11 + 0.2F);
- var10.motionZ = (double)((float)this.rand.nextGaussian() * var11);
- this.worldObj.spawnEntityInWorld(var10);
- }
- } - }
- } - }
- }
- -
- this.dropItemWithOffset(Block.chest.blockID, 1, 0.0F); - this.dropItemWithOffset(Block.chest.blockID, 1, 0.0F);
- } - }
- else if (this.minecartType == 2) - else if (this.minecartType == 2)
- { - {
- this.dropItemWithOffset(Block.stoneOvenIdle.blockID, 1, 0.0F); - this.dropItemWithOffset(Block.stoneOvenIdle.blockID, 1, 0.0F);
- } - }
+ dropCartAsItem(); + dropCartAsItem();
} }
return true; return true;
@@ -292,7 +298,7 @@ @@ -299,7 +305,7 @@
this.kill(); this.kill();
} }
@ -151,13 +151,14 @@
{ {
this.worldObj.spawnParticle("largesmoke", this.posX, this.posY + 0.8D, this.posZ, 0.0D, 0.0D, 0.0D); this.worldObj.spawnParticle("largesmoke", this.posX, this.posY + 0.8D, this.posZ, 0.0D, 0.0D, 0.0D);
} }
@@ -336,17 +342,17 @@ @@ -343,18 +349,18 @@
double var6 = 0.0078125D; double var6 = 0.0078125D;
int var8 = this.worldObj.getBlockId(var1, var2, var3); int var8 = this.worldObj.getBlockId(var1, var2, var3);
- if (BlockRail.isRailBlock(var8)) - if (BlockRail.isRailBlock(var8))
+ if (canUseRail() && BlockRail.isRailBlock(var8)) + if (canUseRail() && BlockRail.isRailBlock(var8))
{ {
this.fallDistance = 0.0F;
Vec3 var9 = this.func_70489_a(this.posX, this.posY, this.posZ); Vec3 var9 = this.func_70489_a(this.posX, this.posY, this.posZ);
- int var10 = this.worldObj.getBlockMetadata(var1, var2, var3); - int var10 = this.worldObj.getBlockMetadata(var1, var2, var3);
+ int var10 = ((BlockRail)Block.blocksList[var8]).getBasicRailMetadata(worldObj, this, var1, var2, var3); + int var10 = ((BlockRail)Block.blocksList[var8]).getBasicRailMetadata(worldObj, this, var1, var2, var3);
@ -172,7 +173,7 @@
var12 = !var11; var12 = !var11;
} }
@@ -360,25 +366,7 @@ @@ -368,25 +374,7 @@
this.posY = (double)(var2 + 1); this.posY = (double)(var2 + 1);
} }
@ -199,7 +200,7 @@
int[][] var13 = field_70500_g[var10]; int[][] var13 = field_70500_g[var10];
double var14 = (double)(var13[1][0] - var13[0][0]); double var14 = (double)(var13[1][0] - var13[0][0]);
@@ -411,7 +399,7 @@ @@ -419,7 +407,7 @@
} }
} }
@ -208,7 +209,7 @@
{ {
var24 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); var24 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
@@ -459,36 +447,8 @@ @@ -467,36 +455,8 @@
this.posX = var26 + var14 * var24; this.posX = var26 + var14 * var24;
this.posZ = var28 + var16 * var24; this.posZ = var28 + var16 * var24;
this.setPosition(this.posX, this.posY + (double)this.yOffset, this.posZ); this.setPosition(this.posX, this.posY + (double)this.yOffset, this.posZ);
@ -247,7 +248,7 @@
if (var13[0][1] != 0 && MathHelper.floor_double(this.posX) - var1 == var13[0][0] && MathHelper.floor_double(this.posZ) - var3 == var13[0][2]) if (var13[0][1] != 0 && MathHelper.floor_double(this.posX) - var1 == var13[0][0] && MathHelper.floor_double(this.posZ) - var3 == var13[0][2])
{ {
@@ -499,42 +459,7 @@ @@ -507,42 +467,7 @@
this.setPosition(this.posX, this.posY + (double)var13[1][1], this.posZ); this.setPosition(this.posX, this.posY + (double)var13[1][1], this.posZ);
} }
@ -291,7 +292,7 @@
Vec3 var52 = this.func_70489_a(this.posX, this.posY, this.posZ); Vec3 var52 = this.func_70489_a(this.posX, this.posY, this.posZ);
@@ -564,30 +489,14 @@ @@ -572,30 +497,14 @@
double var41; double var41;
@ -320,7 +321,7 @@
- -
- if (var11) - if (var11)
+ updatePushForces(); + updatePushForces();
+ +
+ if(shouldDoRailFunctions()) + if(shouldDoRailFunctions())
+ { + {
+ ((BlockRail)Block.blocksList[var8]).onMinecartPass(worldObj, this, var1, var2, var3); + ((BlockRail)Block.blocksList[var8]).onMinecartPass(worldObj, this, var1, var2, var3);
@ -330,7 +331,7 @@
{ {
var41 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); var41 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
@@ -623,41 +532,7 @@ @@ -631,41 +540,7 @@
} }
else else
{ {
@ -373,7 +374,7 @@
} }
this.doBlockCollisions(); this.doBlockCollisions();
@@ -684,7 +559,18 @@ @@ -692,7 +567,18 @@
} }
this.setRotation(this.rotationYaw, this.rotationPitch); this.setRotation(this.rotationYaw, this.rotationPitch);
@ -393,7 +394,7 @@
if (var15 != null && !var15.isEmpty()) if (var15 != null && !var15.isEmpty())
{ {
@@ -709,17 +595,8 @@ @@ -717,17 +603,8 @@
this.riddenByEntity = null; this.riddenByEntity = null;
} }
@ -413,7 +414,7 @@
} }
} }
@@ -743,12 +620,7 @@ @@ -751,12 +628,7 @@
} }
else else
{ {
@ -427,7 +428,7 @@
par3 = (double)var10; par3 = (double)var10;
@@ -794,13 +666,8 @@ @@ -802,13 +674,8 @@
if (BlockRail.isRailBlock(var10)) if (BlockRail.isRailBlock(var10))
{ {
@ -442,7 +443,7 @@
if (var11 >= 2 && var11 <= 5) if (var11 >= 2 && var11 <= 5)
{ {
@@ -865,13 +732,14 @@ @@ -873,13 +740,14 @@
{ {
par1NBTTagCompound.setInteger("Type", this.minecartType); par1NBTTagCompound.setInteger("Type", this.minecartType);
@ -461,7 +462,7 @@
{ {
NBTTagList var2 = new NBTTagList(); NBTTagList var2 = new NBTTagList();
@@ -897,13 +765,21 @@ @@ -905,13 +773,21 @@
{ {
this.minecartType = par1NBTTagCompound.getInteger("Type"); this.minecartType = par1NBTTagCompound.getInteger("Type");
@ -487,7 +488,7 @@
{ {
NBTTagList var2 = par1NBTTagCompound.getTagList("Items"); NBTTagList var2 = par1NBTTagCompound.getTagList("Items");
this.cargoItems = new ItemStack[this.getSizeInventory()]; this.cargoItems = new ItemStack[this.getSizeInventory()];
@@ -932,11 +808,17 @@ @@ -940,11 +816,17 @@
*/ */
public void applyEntityCollision(Entity par1Entity) public void applyEntityCollision(Entity par1Entity)
{ {
@ -506,7 +507,7 @@
{ {
par1Entity.mountEntity(this); par1Entity.mountEntity(this);
} }
@@ -982,7 +864,7 @@ @@ -990,7 +872,7 @@
double var18 = par1Entity.motionX + this.motionX; double var18 = par1Entity.motionX + this.motionX;
double var20 = par1Entity.motionZ + this.motionZ; double var20 = par1Entity.motionZ + this.motionZ;
@ -515,7 +516,7 @@
{ {
this.motionX *= 0.20000000298023224D; this.motionX *= 0.20000000298023224D;
this.motionZ *= 0.20000000298023224D; this.motionZ *= 0.20000000298023224D;
@@ -990,7 +872,7 @@ @@ -998,7 +880,7 @@
par1Entity.motionX *= 0.949999988079071D; par1Entity.motionX *= 0.949999988079071D;
par1Entity.motionZ *= 0.949999988079071D; par1Entity.motionZ *= 0.949999988079071D;
} }
@ -524,7 +525,7 @@
{ {
par1Entity.motionX *= 0.20000000298023224D; par1Entity.motionX *= 0.20000000298023224D;
par1Entity.motionZ *= 0.20000000298023224D; par1Entity.motionZ *= 0.20000000298023224D;
@@ -1025,7 +907,7 @@ @@ -1033,7 +915,7 @@
*/ */
public int getSizeInventory() public int getSizeInventory()
{ {
@ -533,7 +534,7 @@
} }
/** /**
@@ -1128,7 +1010,12 @@ @@ -1136,7 +1018,12 @@
*/ */
public boolean interact(EntityPlayer par1EntityPlayer) public boolean interact(EntityPlayer par1EntityPlayer)
{ {
@ -547,7 +548,7 @@
{ {
if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer && this.riddenByEntity != par1EntityPlayer) if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer && this.riddenByEntity != par1EntityPlayer)
{ {
@@ -1140,14 +1027,14 @@ @@ -1148,14 +1035,14 @@
par1EntityPlayer.mountEntity(this); par1EntityPlayer.mountEntity(this);
} }
} }
@ -564,7 +565,7 @@
{ {
ItemStack var2 = par1EntityPlayer.inventory.getCurrentItem(); ItemStack var2 = par1EntityPlayer.inventory.getCurrentItem();
@@ -1271,4 +1158,375 @@ @@ -1279,4 +1166,375 @@
{ {
return this.dataWatcher.getWatchableObjectInt(18); return this.dataWatcher.getWatchableObjectInt(18);
} }
@ -590,7 +591,7 @@
+ { + {
+ List<ItemStack> items = new ArrayList<ItemStack>(); + List<ItemStack> items = new ArrayList<ItemStack>();
+ items.add(new ItemStack(Item.minecartEmpty)); + items.add(new ItemStack(Item.minecartEmpty));
+ +
+ switch(minecartType) + switch(minecartType)
+ { + {
+ case 1: + case 1:
@ -624,7 +625,7 @@
+ return minecartType == 2 && getClass() == EntityMinecart.class; + return minecartType == 2 && getClass() == EntityMinecart.class;
+ } + }
+ +
+ /** + /**
+ * Returns true if this cart is a storage cart + * Returns true if this cart is a storage cart
+ * Some carts may have inventories but not be storage carts + * Some carts may have inventories but not be storage carts
+ * and some carts without inventories may be storage carts. + * and some carts without inventories may be storage carts.
@ -648,7 +649,7 @@
+ return false; + return false;
+ } + }
+ +
+ /** + /**
+ * Returns true if this cart can currently use rails. + * Returns true if this cart can currently use rails.
+ * This function is mainly used to gracefully detach a minecart from a rail. + * This function is mainly used to gracefully detach a minecart from a rail.
+ * @return True if the minecart can use rails. + * @return True if the minecart can use rails.
@ -668,7 +669,7 @@
+ canUseRail = use; + canUseRail = use;
+ } + }
+ +
+ /** + /**
+ * Return false if this cart should not call IRail.onMinecartPass() and should ignore Powered Rails. + * Return false if this cart should not call IRail.onMinecartPass() and should ignore Powered Rails.
+ * @return True if this cart should call IRail.onMinecartPass(). + * @return True if this cart should call IRail.onMinecartPass().
+ */ + */
@ -713,7 +714,7 @@
+ protected double getDrag() + protected double getDrag()
+ { + {
+ return riddenByEntity != null ? defaultDragRidden : defaultDragEmpty; + return riddenByEntity != null ? defaultDragRidden : defaultDragEmpty;
+ } + }
+ +
+ /** + /**
+ * Moved to allow overrides. + * Moved to allow overrides.
@ -855,9 +856,9 @@
+ +
+ /** + /**
+ * Moved to allow overrides, This code handle slopes affecting velocity. + * Moved to allow overrides, This code handle slopes affecting velocity.
+ * @param metadata The blocks position metadata + * @param metadata The blocks position metadata
+ */ + */
+ protected void adjustSlopeVelocities(int metadata) + protected void adjustSlopeVelocities(int metadata)
+ { + {
+ double acceleration = 0.0078125D; + double acceleration = 0.0078125D;
+ if (metadata == 2) + if (metadata == 2)

View File

@ -1,6 +1,6 @@
--- ../src_base/common/net/minecraft/src/EntityOcelot.java --- ../src_base/common/net/minecraft/src/EntityOcelot.java
+++ ../src_work/common/net/minecraft/src/EntityOcelot.java +++ ../src_work/common/net/minecraft/src/EntityOcelot.java
@@ -326,8 +326,9 @@ @@ -333,8 +333,9 @@
} }
int var4 = this.worldObj.getBlockId(var1, var2 - 1, var3); int var4 = this.worldObj.getBlockId(var1, var2 - 1, var3);

View File

@ -26,7 +26,7 @@
if (this.itemInUseCount <= 25 && this.itemInUseCount % 4 == 0) if (this.itemInUseCount <= 25 && this.itemInUseCount % 4 == 0)
{ {
this.updateItemUse(var1, 5); this.updateItemUse(var1, 5);
@@ -562,6 +574,9 @@ @@ -577,6 +589,9 @@
this.setPosition(this.posX, this.posY, this.posZ); this.setPosition(this.posX, this.posY, this.posZ);
this.motionY = 0.10000000149011612D; this.motionY = 0.10000000149011612D;
@ -36,7 +36,7 @@
if (this.username.equals("Notch")) if (this.username.equals("Notch"))
{ {
this.dropPlayerItemWithRandomChoice(new ItemStack(Item.appleRed, 1), true); this.dropPlayerItemWithRandomChoice(new ItemStack(Item.appleRed, 1), true);
@@ -570,6 +585,20 @@ @@ -585,6 +600,20 @@
if (!this.worldObj.getGameRules().getGameRuleBooleanValue("keepInventory")) if (!this.worldObj.getGameRules().getGameRuleBooleanValue("keepInventory"))
{ {
this.inventory.dropAllItems(); this.inventory.dropAllItems();
@ -57,7 +57,7 @@
} }
if (par1DamageSource != null) if (par1DamageSource != null)
@@ -609,7 +638,16 @@ @@ -624,7 +653,16 @@
*/ */
public EntityItem dropOneItem() public EntityItem dropOneItem()
{ {
@ -75,7 +75,7 @@
} }
/** /**
@@ -618,7 +656,7 @@ @@ -633,7 +671,7 @@
*/ */
public EntityItem dropPlayerItem(ItemStack par1ItemStack) public EntityItem dropPlayerItem(ItemStack par1ItemStack)
{ {
@ -84,7 +84,7 @@
} }
/** /**
@@ -670,18 +708,33 @@ @@ -685,18 +723,33 @@
*/ */
public void joinEntityItemWithWorld(EntityItem par1EntityItem) public void joinEntityItemWithWorld(EntityItem par1EntityItem)
{ {
@ -122,7 +122,7 @@
{ {
var2 += (float)(var3 * var3 + 1); var2 += (float)(var3 * var3 + 1);
} }
@@ -706,7 +759,8 @@ @@ -721,7 +774,8 @@
var2 /= 5.0F; var2 /= 5.0F;
} }
@ -132,7 +132,7 @@
} }
/** /**
@@ -714,7 +768,7 @@ @@ -729,7 +783,7 @@
*/ */
public boolean canHarvestBlock(Block par1Block) public boolean canHarvestBlock(Block par1Block)
{ {
@ -141,9 +141,9 @@
} }
/** /**
@@ -993,12 +1047,22 @@ @@ -1014,12 +1068,22 @@
{ {
if (!this.field_83001_bt) if (!this.func_85032_ar())
{ {
+ par2 = ForgeHooks.onLivingHurt(this, par1DamageSource, par2); + par2 = ForgeHooks.onLivingHurt(this, par1DamageSource, par2);
+ if (par2 <= 0) + if (par2 <= 0)
@ -165,7 +165,7 @@
par2 = this.applyPotionDamageCalculations(par1DamageSource, par2); par2 = this.applyPotionDamageCalculations(par1DamageSource, par2);
this.addExhaustion(par1DamageSource.getHungerDamage()); this.addExhaustion(par1DamageSource.getHungerDamage());
this.health -= par2; this.health -= par2;
@@ -1039,6 +1103,10 @@ @@ -1060,6 +1124,10 @@
public boolean interactWith(Entity par1Entity) public boolean interactWith(Entity par1Entity)
{ {
@ -176,7 +176,7 @@
if (par1Entity.interact(this)) if (par1Entity.interact(this))
{ {
return true; return true;
@@ -1082,7 +1150,9 @@ @@ -1103,7 +1171,9 @@
*/ */
public void destroyCurrentEquippedItem() public void destroyCurrentEquippedItem()
{ {
@ -186,7 +186,7 @@
} }
/** /**
@@ -1099,6 +1169,15 @@ @@ -1120,6 +1190,15 @@
*/ */
public void attackTargetEntityWithCurrentItem(Entity par1Entity) public void attackTargetEntityWithCurrentItem(Entity par1Entity)
{ {
@ -201,8 +201,8 @@
+ } + }
if (par1Entity.canAttackWithItem()) if (par1Entity.canAttackWithItem())
{ {
int var2 = this.inventory.getDamageVsEntity(par1Entity); if (!par1Entity.func_85031_j(this))
@@ -1242,6 +1321,12 @@ @@ -1266,6 +1345,12 @@
*/ */
public EnumStatus sleepInBedAt(int par1, int par2, int par3) public EnumStatus sleepInBedAt(int par1, int par2, int par3)
{ {
@ -215,7 +215,7 @@
if (!this.worldObj.isRemote) if (!this.worldObj.isRemote)
{ {
if (this.isPlayerSleeping() || !this.isEntityAlive()) if (this.isPlayerSleeping() || !this.isEntityAlive())
@@ -1281,6 +1366,11 @@ @@ -1305,6 +1390,11 @@
{ {
int var9 = this.worldObj.getBlockMetadata(par1, par2, par3); int var9 = this.worldObj.getBlockMetadata(par1, par2, par3);
int var5 = BlockBed.getDirection(var9); int var5 = BlockBed.getDirection(var9);
@ -227,7 +227,7 @@
float var10 = 0.5F; float var10 = 0.5F;
float var7 = 0.5F; float var7 = 0.5F;
@@ -1351,10 +1441,12 @@ @@ -1375,10 +1465,12 @@
ChunkCoordinates var4 = this.playerLocation; ChunkCoordinates var4 = this.playerLocation;
ChunkCoordinates var5 = this.playerLocation; ChunkCoordinates var5 = this.playerLocation;
@ -244,7 +244,7 @@
if (var5 == null) if (var5 == null)
{ {
@@ -1391,7 +1483,9 @@ @@ -1415,7 +1507,9 @@
*/ */
private boolean isInBed() private boolean isInBed()
{ {
@ -255,26 +255,23 @@
} }
/** /**
@@ -1406,13 +1500,16 @@ @@ -1430,9 +1524,12 @@
var3.loadChunk(par1ChunkCoordinates.posX - 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4); var3.loadChunk(par1ChunkCoordinates.posX - 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4);
var3.loadChunk(par1ChunkCoordinates.posX + 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4); var3.loadChunk(par1ChunkCoordinates.posX + 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4);
- if (par0World.getBlockId(par1ChunkCoordinates.posX, par1ChunkCoordinates.posY, par1ChunkCoordinates.posZ) != Block.bed.blockID) - if (par0World.getBlockId(par1ChunkCoordinates.posX, par1ChunkCoordinates.posY, par1ChunkCoordinates.posZ) == Block.bed.blockID)
- {
- ChunkCoordinates var8 = BlockBed.getNearestEmptyChunkCoordinates(par0World, par1ChunkCoordinates.posX, par1ChunkCoordinates.posY, par1ChunkCoordinates.posZ, 0);
+ ChunkCoordinates c = par1ChunkCoordinates; + ChunkCoordinates c = par1ChunkCoordinates;
+ Block block = Block.blocksList[par0World.getBlockId(c.posX, c.posY, c.posZ)]; + Block block = Block.blocksList[par0World.getBlockId(c.posX, c.posY, c.posZ)];
+ +
+ if (block == null || !block.isBed(par0World, c.posX, c.posY, c.posZ, null)) + if (block == null || !block.isBed(par0World, c.posX, c.posY, c.posZ, null))
{ + {
return par2 && par0World.isAirBlock(par1ChunkCoordinates.posX, par1ChunkCoordinates.posY, par1ChunkCoordinates.posZ) && par0World.isAirBlock(par1ChunkCoordinates.posX, par1ChunkCoordinates.posY + 1, par1ChunkCoordinates.posZ) ? par1ChunkCoordinates : null; + ChunkCoordinates var8 = block.getBedSpawnPosition(par0World, c.posX, c.posY, c.posZ, null);
return var8;
} }
else else
{ @@ -1454,8 +1551,11 @@
- ChunkCoordinates var4 = BlockBed.getNearestEmptyChunkCoordinates(par0World, par1ChunkCoordinates.posX, par1ChunkCoordinates.posY, par1ChunkCoordinates.posZ, 0);
+ ChunkCoordinates var4 = block.getBedSpawnPosition(par0World, c.posX, c.posY, c.posZ, null);
return var4;
}
}
@@ -1426,8 +1523,11 @@
{ {
if (this.playerLocation != null) if (this.playerLocation != null)
{ {
@ -288,7 +285,7 @@
switch (var2) switch (var2)
{ {
@@ -1747,6 +1847,7 @@ @@ -1786,6 +1886,7 @@
return 101; return 101;
} }
} }

View File

@ -43,7 +43,7 @@
} }
} }
@@ -245,11 +244,29 @@ @@ -253,11 +252,29 @@
*/ */
public void onDeath(DamageSource par1DamageSource) public void onDeath(DamageSource par1DamageSource)
{ {

View File

@ -38,7 +38,7 @@
- } - }
- -
- var2.damageItem(1, par1EntityPlayer); - var2.damageItem(1, par1EntityPlayer);
- this.worldObj.playSoundAtEntity(this, "mob.sheep.shear", 1.0F, 1.0F); - this.func_85030_a("mob.sheep.shear", 1.0F, 1.0F);
- } - }
- -
return super.interact(par1EntityPlayer); return super.interact(par1EntityPlayer);
@ -50,13 +50,13 @@
} }
+ +
+ @Override + @Override
+ public boolean isShearable(ItemStack item, World world, int X, int Y, int Z) + public boolean isShearable(ItemStack item, World world, int X, int Y, int Z)
+ { + {
+ return !getSheared() && !isChild(); + return !getSheared() && !isChild();
+ } + }
+ +
+ @Override + @Override
+ public ArrayList<ItemStack> onSheared(ItemStack item, World world, int X, int Y, int Z, int fortune) + public ArrayList<ItemStack> onSheared(ItemStack item, World world, int X, int Y, int Z, int fortune)
+ { + {
+ ArrayList<ItemStack> ret = new ArrayList<ItemStack>(); + ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
+ setSheared(true); + setSheared(true);

View File

@ -1,6 +1,6 @@
--- ../src_base/common/net/minecraft/src/Item.java --- ../src_base/common/net/minecraft/src/Item.java
+++ ../src_work/common/net/minecraft/src/Item.java +++ ../src_work/common/net/minecraft/src/Item.java
@@ -208,16 +208,24 @@ @@ -209,16 +209,24 @@
/** full name of item from language file */ /** full name of item from language file */
private String itemName; private String itemName;
@ -26,7 +26,7 @@
} }
/** /**
@@ -603,6 +611,10 @@ @@ -604,6 +612,10 @@
float var18 = var15 * var16; float var18 = var15 * var16;
float var20 = var14 * var16; float var20 = var14 * var16;
double var21 = 5.0D; double var21 = 5.0D;
@ -37,7 +37,7 @@
Vec3 var23 = var13.addVector((double)var18 * var21, (double)var17 * var21, (double)var20 * var21); Vec3 var23 = var13.addVector((double)var18 * var21, (double)var17 * var21, (double)var20 * var21);
return par1World.rayTraceBlocks_do_do(var13, var23, par3, !par3); return par1World.rayTraceBlocks_do_do(var13, var23, par3, !par3);
} }
@@ -677,4 +689,265 @@ @@ -678,4 +690,265 @@
{ {
StatList.initStats(); StatList.initStats();
} }

View File

@ -18,24 +18,24 @@
{ {
if (par7 == 0) if (par7 == 0)
{ {
@@ -85,14 +87,8 @@ @@ -87,14 +89,8 @@
{ int var13 = this.getMetadata(par1ItemStack.getItemDamage());
Block var12 = Block.blocksList[this.blockID]; int var14 = Block.blocksList[this.blockID].func_85104_a(par3World, par4, par5, par6, par7, par8, par9, par10, var13);
- if (par3World.setBlockAndMetadataWithNotify(par4, par5, par6, this.blockID, this.getMetadata(par1ItemStack.getItemDamage()))) - if (par3World.setBlockAndMetadataWithNotify(par4, par5, par6, this.blockID, var14))
- { - {
- if (par3World.getBlockId(par4, par5, par6) == this.blockID) - if (par3World.getBlockId(par4, par5, par6) == this.blockID)
- { - {
- Block.blocksList[this.blockID].updateBlockMetadata(par3World, par4, par5, par6, par7, par8, par9, par10);
- Block.blocksList[this.blockID].onBlockPlacedBy(par3World, par4, par5, par6, par2EntityPlayer); - Block.blocksList[this.blockID].onBlockPlacedBy(par3World, par4, par5, par6, par2EntityPlayer);
- Block.blocksList[this.blockID].func_85105_g(par3World, par4, par5, par6, var14);
- } - }
- -
+ if (placeBlockAt(par1ItemStack, par2EntityPlayer, par3World, par4, par5, par6, par7, par8, par9, par10)) + if (placeBlockAt(par1ItemStack, par2EntityPlayer, par3World, par4, par5, par6, par7, par8, par9, par10, var14))
+ { + {
par3World.playSoundEffect((double)((float)par4 + 0.5F), (double)((float)par5 + 0.5F), (double)((float)par6 + 0.5F), var12.stepSound.getPlaceSound(), (var12.stepSound.getVolume() + 1.0F) / 2.0F, var12.stepSound.getPitch() * 0.8F); par3World.playSoundEffect((double)((float)par4 + 0.5F), (double)((float)par5 + 0.5F), (double)((float)par6 + 0.5F), var12.stepSound.getPlaceSound(), (var12.stepSound.getVolume() + 1.0F) / 2.0F, var12.stepSound.getPitch() * 0.8F);
--par1ItemStack.stackSize; --par1ItemStack.stackSize;
} }
@@ -118,7 +114,8 @@ @@ -120,7 +116,8 @@
{ {
par5 = 1; par5 = 1;
} }
@ -45,7 +45,7 @@
{ {
if (par5 == 0) if (par5 == 0)
{ {
@@ -183,4 +180,28 @@ @@ -185,4 +182,28 @@
{ {
Block.blocksList[this.blockID].getSubBlocks(par1, par2CreativeTabs, par3List); Block.blocksList[this.blockID].getSubBlocks(par1, par2CreativeTabs, par3List);
} }
@ -53,22 +53,22 @@
+ /** + /**
+ * Called to actually place the block, after the location is determined + * Called to actually place the block, after the location is determined
+ * and all permission checks have been made. + * and all permission checks have been made.
+ * + *
+ * @param stack The item stack that was used to place the block. This can be changed inside the method. + * @param stack The item stack that was used to place the block. This can be changed inside the method.
+ * @param player The player who is placing the block. Can be null if the block is not being placed by a player. + * @param player The player who is placing the block. Can be null if the block is not being placed by a player.
+ * @param side The side the player (or machine) right-clicked on. + * @param side The side the player (or machine) right-clicked on.
+ */ + */
+ public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) + public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int metadata)
+ { + {
+ if (!world.setBlockAndMetadataWithNotify(x, y, z, this.blockID, this.getMetadata(stack.getItemDamage()))) + if (!world.setBlockAndMetadataWithNotify(x, y, z, this.blockID, metadata))
+ { + {
+ return false; + return false;
+ } + }
+ +
+ if (world.getBlockId(x, y, z) == this.blockID) + if (world.getBlockId(x, y, z) == this.blockID)
+ { + {
+ Block.blocksList[this.blockID].updateBlockMetadata(world, x, y, z, side, hitX, hitY, hitZ);
+ Block.blocksList[this.blockID].onBlockPlacedBy(world, x, y, z, player); + Block.blocksList[this.blockID].onBlockPlacedBy(world, x, y, z, player);
+ Block.blocksList[this.blockID].func_85105_g(world, x, y, z, metadata);
+ } + }
+ +
+ return true; + return true;

View File

@ -12,7 +12,7 @@
public class ItemDye extends Item public class ItemDye extends Item
{ {
@@ -53,6 +58,21 @@ @@ -54,6 +59,21 @@
if (par1ItemStack.getItemDamage() == 15) if (par1ItemStack.getItemDamage() == 15)
{ {
var11 = par3World.getBlockId(par4, par5, par6); var11 = par3World.getBlockId(par4, par5, par6);
@ -34,7 +34,7 @@
if (var11 == Block.sapling.blockID) if (var11 == Block.sapling.blockID)
{ {
@@ -152,16 +172,9 @@ @@ -153,16 +173,9 @@
par3World.setBlockAndMetadataWithNotify(var13, var14, var15, Block.tallGrass.blockID, 1); par3World.setBlockAndMetadataWithNotify(var13, var14, var15, Block.tallGrass.blockID, 1);
} }
} }

View File

@ -13,7 +13,7 @@
public class NetServerHandler extends NetHandler public class NetServerHandler extends NetHandler
{ {
@@ -193,6 +199,11 @@ @@ -182,6 +188,11 @@
if (this.playerEntity.ridingEntity != null) if (this.playerEntity.ridingEntity != null)
{ {
this.playerEntity.ridingEntity.updateRiderPosition(); this.playerEntity.ridingEntity.updateRiderPosition();
@ -25,7 +25,7 @@
} }
this.mcServer.getConfigurationManager().serverUpdateMountedMovingPlayer(this.playerEntity); this.mcServer.getConfigurationManager().serverUpdateMountedMovingPlayer(this.playerEntity);
@@ -285,6 +296,11 @@ @@ -274,6 +285,11 @@
this.playerEntity.addExhaustion(0.2F); this.playerEntity.addExhaustion(0.2F);
} }
@ -37,7 +37,7 @@
this.playerEntity.moveEntity(var13, var15, var17); this.playerEntity.moveEntity(var13, var15, var17);
this.playerEntity.onGround = par1Packet10Flying.onGround; this.playerEntity.onGround = par1Packet10Flying.onGround;
this.playerEntity.addMovementStat(var13, var15, var17); this.playerEntity.addMovementStat(var13, var15, var17);
@@ -307,10 +323,15 @@ @@ -296,10 +312,15 @@
logger.warning(this.playerEntity.username + " moved wrongly!"); logger.warning(this.playerEntity.username + " moved wrongly!");
} }
@ -54,7 +54,7 @@
{ {
this.setPlayerLocation(this.lastPosX, this.lastPosY, this.lastPosZ, var11, var12); this.setPlayerLocation(this.lastPosX, this.lastPosY, this.lastPosZ, var11, var12);
return; return;
@@ -318,7 +339,7 @@ @@ -307,7 +328,7 @@
AxisAlignedBB var33 = this.playerEntity.boundingBox.copy().expand((double)var27, (double)var27, (double)var27).addCoord(0.0D, -0.55D, 0.0D); AxisAlignedBB var33 = this.playerEntity.boundingBox.copy().expand((double)var27, (double)var27, (double)var27).addCoord(0.0D, -0.55D, 0.0D);
@ -63,7 +63,7 @@
{ {
if (var29 >= -0.03125D) if (var29 >= -0.03125D)
{ {
@@ -337,6 +358,11 @@ @@ -326,6 +347,11 @@
this.ticksForFloatKick = 0; this.ticksForFloatKick = 0;
} }
@ -75,7 +75,7 @@
this.playerEntity.onGround = par1Packet10Flying.onGround; this.playerEntity.onGround = par1Packet10Flying.onGround;
this.mcServer.getConfigurationManager().serverUpdateMountedMovingPlayer(this.playerEntity); this.mcServer.getConfigurationManager().serverUpdateMountedMovingPlayer(this.playerEntity);
this.playerEntity.updateFlyingState(this.playerEntity.posY - var3, par1Packet10Flying.onGround); this.playerEntity.updateFlyingState(this.playerEntity.posY - var3, par1Packet10Flying.onGround);
@@ -395,7 +421,10 @@ @@ -384,7 +410,10 @@
double var12 = this.playerEntity.posZ - ((double)var7 + 0.5D); double var12 = this.playerEntity.posZ - ((double)var7 + 0.5D);
double var14 = var8 * var8 + var10 * var10 + var12 * var12; double var14 = var8 * var8 + var10 * var10 + var12 * var12;
@ -87,7 +87,7 @@
{ {
return; return;
} }
@@ -419,6 +448,7 @@ @@ -408,6 +437,7 @@
{ {
if (var20 <= this.mcServer.getSpawnProtectionSize() && !var3) if (var20 <= this.mcServer.getSpawnProtectionSize() && !var3)
{ {
@ -95,7 +95,7 @@
this.playerEntity.playerNetServerHandler.sendPacketToPlayer(new Packet53BlockChange(var5, var6, var7, var2)); this.playerEntity.playerNetServerHandler.sendPacketToPlayer(new Packet53BlockChange(var5, var6, var7, var2));
} }
else else
@@ -477,7 +507,11 @@ @@ -466,7 +496,11 @@
return; return;
} }
@ -108,7 +108,7 @@
} }
else if (par1Packet15Place.getYPosition() >= this.mcServer.getBuildLimit() - 1 && (par1Packet15Place.getDirection() == 1 || par1Packet15Place.getYPosition() >= this.mcServer.getBuildLimit())) else if (par1Packet15Place.getYPosition() >= this.mcServer.getBuildLimit() - 1 && (par1Packet15Place.getDirection() == 1 || par1Packet15Place.getYPosition() >= this.mcServer.getBuildLimit()))
{ {
@@ -495,7 +529,9 @@ @@ -484,7 +518,9 @@
var12 = var11; var12 = var11;
} }
@ -119,7 +119,7 @@
{ {
this.playerEntity.theItemInWorldManager.activateBlockOrUseItem(this.playerEntity, var2, var3, var5, var6, var7, var8, par1Packet15Place.getXOffset(), par1Packet15Place.getYOffset(), par1Packet15Place.getZOffset()); this.playerEntity.theItemInWorldManager.activateBlockOrUseItem(this.playerEntity, var2, var3, var5, var6, var7, var8, par1Packet15Place.getXOffset(), par1Packet15Place.getYOffset(), par1Packet15Place.getZOffset());
} }
@@ -662,8 +698,12 @@ @@ -651,8 +687,12 @@
this.sendPacketToPlayer(new Packet3Chat("Cannot send chat message.")); this.sendPacketToPlayer(new Packet3Chat("Cannot send chat message."));
return; return;
} }
@ -134,7 +134,7 @@
logger.info(var2); logger.info(var2);
this.mcServer.getConfigurationManager().sendPacketToAllPlayers(new Packet3Chat(var2, false)); this.mcServer.getConfigurationManager().sendPacketToAllPlayers(new Packet3Chat(var2, false));
} }
@@ -794,7 +834,7 @@ @@ -783,7 +823,7 @@
return; return;
} }

View File

@ -8,7 +8,7 @@
public abstract class ServerConfigurationManager public abstract class ServerConfigurationManager
{ {
@@ -304,6 +305,12 @@ @@ -298,6 +299,12 @@
*/ */
public EntityPlayerMP respawnPlayer(EntityPlayerMP par1EntityPlayerMP, int par2, boolean par3) public EntityPlayerMP respawnPlayer(EntityPlayerMP par1EntityPlayerMP, int par2, boolean par3)
{ {
@ -21,7 +21,7 @@
par1EntityPlayerMP.getServerForPlayer().getEntityTracker().removeAllTrackingPlayers(par1EntityPlayerMP); par1EntityPlayerMP.getServerForPlayer().getEntityTracker().removeAllTrackingPlayers(par1EntityPlayerMP);
par1EntityPlayerMP.getServerForPlayer().getEntityTracker().removeEntityFromAllTrackingPlayers(par1EntityPlayerMP); par1EntityPlayerMP.getServerForPlayer().getEntityTracker().removeEntityFromAllTrackingPlayers(par1EntityPlayerMP);
par1EntityPlayerMP.getServerForPlayer().getPlayerManager().removePlayer(par1EntityPlayerMP); par1EntityPlayerMP.getServerForPlayer().getPlayerManager().removePlayer(par1EntityPlayerMP);
@@ -326,6 +333,7 @@ @@ -320,6 +327,7 @@
EntityPlayerMP var7 = new EntityPlayerMP(this.mcServer, this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension), par1EntityPlayerMP.username, (ItemInWorldManager)var6); EntityPlayerMP var7 = new EntityPlayerMP(this.mcServer, this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension), par1EntityPlayerMP.username, (ItemInWorldManager)var6);
var7.playerNetServerHandler = par1EntityPlayerMP.playerNetServerHandler; var7.playerNetServerHandler = par1EntityPlayerMP.playerNetServerHandler;
var7.clonePlayer(par1EntityPlayerMP, par3); var7.clonePlayer(par1EntityPlayerMP, par3);
@ -29,39 +29,21 @@
var7.entityId = par1EntityPlayerMP.entityId; var7.entityId = par1EntityPlayerMP.entityId;
WorldServer var8 = this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension); WorldServer var8 = this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension);
this.func_72381_a(var7, par1EntityPlayerMP, var8); this.func_72381_a(var7, par1EntityPlayerMP, var8);
@@ -369,6 +377,11 @@ @@ -367,6 +375,7 @@
public void transferPlayerToDimension(EntityPlayerMP par1EntityPlayerMP, int par2)
{
+ transferPlayerToDimension(par1EntityPlayerMP, par2, new Teleporter());
+ }
+
+ public void transferPlayerToDimension(EntityPlayerMP par1EntityPlayerMP, int par2, Teleporter teleporter)
+ {
int var3 = par1EntityPlayerMP.dimension;
WorldServer var4 = this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension); WorldServer var4 = this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension);
par1EntityPlayerMP.dimension = par2; par1EntityPlayerMP.dimension = par2;
@@ -376,7 +389,7 @@ WorldServer var5 = this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension);
+
par1EntityPlayerMP.playerNetServerHandler.sendPacketToPlayer(new Packet9Respawn(par1EntityPlayerMP.dimension, (byte)par1EntityPlayerMP.worldObj.difficultySetting, var5.getWorldInfo().getTerrainType(), var5.getHeight(), par1EntityPlayerMP.theItemInWorldManager.getGameType())); par1EntityPlayerMP.playerNetServerHandler.sendPacketToPlayer(new Packet9Respawn(par1EntityPlayerMP.dimension, (byte)par1EntityPlayerMP.worldObj.difficultySetting, var5.getWorldInfo().getTerrainType(), var5.getHeight(), par1EntityPlayerMP.theItemInWorldManager.getGameType()));
var4.removeEntity(par1EntityPlayerMP); var4.removeEntity(par1EntityPlayerMP);
par1EntityPlayerMP.isDead = false; par1EntityPlayerMP.isDead = false;
- this.transferEntityToWorld(par1EntityPlayerMP, var3, var4, var5); @@ -391,38 +400,18 @@
+ this.transferEntityToWorld(par1EntityPlayerMP, var3, var4, var5, teleporter);
this.func_72375_a(par1EntityPlayerMP, var4);
par1EntityPlayerMP.playerNetServerHandler.setPlayerLocation(par1EntityPlayerMP.posX, par1EntityPlayerMP.posY, par1EntityPlayerMP.posZ, par1EntityPlayerMP.rotationYaw, par1EntityPlayerMP.rotationPitch);
par1EntityPlayerMP.theItemInWorldManager.setWorld(var5);
@@ -397,37 +410,22 @@
*/ */
public void transferEntityToWorld(Entity par1Entity, int par2, WorldServer par3WorldServer, WorldServer par4WorldServer) public void transferEntityToWorld(Entity par1Entity, int par2, WorldServer par3WorldServer, WorldServer par4WorldServer)
{ {
- double var5 = par1Entity.posX; - double var5 = par1Entity.posX;
- double var7 = par1Entity.posZ; - double var7 = par1Entity.posZ;
- double var9 = 8.0D; - double var9 = 8.0D;
+ transferEntityToWorld(par1Entity, par2, par3WorldServer, par4WorldServer, new Teleporter());
+ }
+
+ public void transferEntityToWorld(Entity par1Entity, int par2, WorldServer par3WorldServer, WorldServer par4WorldServer, Teleporter teleporter)
+ {
+ WorldProvider pOld = par3WorldServer.provider; + WorldProvider pOld = par3WorldServer.provider;
+ WorldProvider pNew = par4WorldServer.provider; + WorldProvider pNew = par4WorldServer.provider;
+ double moveFactor = pOld.getMovementFactor() / pNew.getMovementFactor(); + double moveFactor = pOld.getMovementFactor() / pNew.getMovementFactor();
@ -71,6 +53,7 @@
double var13 = par1Entity.posY; double var13 = par1Entity.posY;
double var15 = par1Entity.posZ; double var15 = par1Entity.posZ;
float var17 = par1Entity.rotationYaw; float var17 = par1Entity.rotationYaw;
par3WorldServer.theProfiler.startSection("moving");
- if (par1Entity.dimension == -1) - if (par1Entity.dimension == -1)
- { - {
@ -99,12 +82,3 @@
{ {
ChunkCoordinates var18; ChunkCoordinates var18;
@@ -461,7 +459,7 @@
par4WorldServer.spawnEntityInWorld(par1Entity);
par1Entity.setLocationAndAngles(var5, par1Entity.posY, var7, par1Entity.rotationYaw, par1Entity.rotationPitch);
par4WorldServer.updateEntityWithOptionalForce(par1Entity, false);
- (new Teleporter()).placeInPortal(par4WorldServer, par1Entity, var11, var13, var15, var17);
+ teleporter.placeInPortal(par4WorldServer, par1Entity, var11, var13, var15, var17);
}
}

View File

@ -1,6 +1,6 @@
--- ../src_base/common/net/minecraft/src/TileEntity.java --- ../src_base/common/net/minecraft/src/TileEntity.java
+++ ../src_work/common/net/minecraft/src/TileEntity.java +++ ../src_work/common/net/minecraft/src/TileEntity.java
@@ -276,4 +276,33 @@ @@ -287,4 +287,33 @@
addMapping(TileEntityBeacon.class, "Beacon"); addMapping(TileEntityBeacon.class, "Beacon");
addMapping(TileEntitySkull.class, "Skull"); addMapping(TileEntitySkull.class, "Skull");
} }

View File

@ -25,7 +25,7 @@
+ * of one of there entities. + * of one of there entities.
+ */ + */
+ public static double MAX_ENTITY_RADIUS = 2.0D; + public static double MAX_ENTITY_RADIUS = 2.0D;
+ +
+ public final MapStorage perWorldStorage; + public final MapStorage perWorldStorage;
+ +
/** /**
@ -76,7 +76,7 @@
this.worldInfo = par1ISaveHandler.loadWorldInfo(); this.worldInfo = par1ISaveHandler.loadWorldInfo();
if (par4WorldProvider != null) if (par4WorldProvider != null)
@@ -231,12 +264,20 @@ @@ -250,12 +283,20 @@
this.worldInfo.setServerInitialized(true); this.worldInfo.setServerInitialized(true);
} }
@ -99,10 +99,12 @@
} }
else else
{ {
@@ -248,6 +289,19 @@ @@ -265,6 +306,19 @@
this.calculateInitialWeather();
}
this.calculateInitialSkylight();
this.calculateInitialWeather();
+ }
+
+ private static MapStorage s_mapStorage; + private static MapStorage s_mapStorage;
+ private static ISaveHandler s_savehandler; + private static ISaveHandler s_savehandler;
+ //Provides a solution for different worlds getting different copies of the same data, potentially rewriting the data or causing race conditions/stale data + //Provides a solution for different worlds getting different copies of the same data, potentially rewriting the data or causing race conditions/stale data
@ -114,12 +116,10 @@
+ s_savehandler = savehandler; + s_savehandler = savehandler;
+ } + }
+ return s_mapStorage; + return s_mapStorage;
+ } }
+
/** /**
* Creates the chunk provider for this world. Called in the constructor. Retrieves provider from worldProvider? @@ -353,7 +407,8 @@
*/
@@ -302,7 +356,8 @@
*/ */
public boolean isAirBlock(int par1, int par2, int par3) public boolean isAirBlock(int par1, int par2, int par3)
{ {
@ -129,7 +129,7 @@
} }
/** /**
@@ -311,7 +366,8 @@ @@ -362,7 +417,8 @@
public boolean blockHasTileEntity(int par1, int par2, int par3) public boolean blockHasTileEntity(int par1, int par2, int par3)
{ {
int var4 = this.getBlockId(par1, par2, par3); int var4 = this.getBlockId(par1, par2, par3);
@ -138,8 +138,8 @@
+ return Block.blocksList[var4] != null && Block.blocksList[var4].hasTileEntity(meta); + return Block.blocksList[var4] != null && Block.blocksList[var4].hasTileEntity(meta);
} }
/** public int func_85175_e(int par1, int par2, int par3)
@@ -1033,7 +1089,7 @@ @@ -1113,7 +1169,7 @@
*/ */
public boolean isDaytime() public boolean isDaytime()
{ {
@ -148,7 +148,7 @@
} }
/** /**
@@ -1065,7 +1121,7 @@ @@ -1145,7 +1201,7 @@
int var12 = this.getBlockMetadata(var8, var9, var10); int var12 = this.getBlockMetadata(var8, var9, var10);
Block var13 = Block.blocksList[var11]; Block var13 = Block.blocksList[var11];
@ -157,7 +157,7 @@
{ {
MovingObjectPosition var14 = var13.collisionRayTrace(this, var8, var9, var10, par1Vec3, par2Vec3); MovingObjectPosition var14 = var13.collisionRayTrace(this, var8, var9, var10, par1Vec3, par2Vec3);
@@ -1265,6 +1321,12 @@ @@ -1345,6 +1401,12 @@
*/ */
public void playSoundAtEntity(Entity par1Entity, String par2Str, float par3, float par4) public void playSoundAtEntity(Entity par1Entity, String par2Str, float par3, float par4)
{ {
@ -170,7 +170,7 @@
if (par1Entity != null && par2Str != null) if (par1Entity != null && par2Str != null)
{ {
Iterator var5 = this.worldAccesses.iterator(); Iterator var5 = this.worldAccesses.iterator();
@@ -1363,6 +1425,11 @@ @@ -1457,6 +1519,11 @@
EntityPlayer var5 = (EntityPlayer)par1Entity; EntityPlayer var5 = (EntityPlayer)par1Entity;
this.playerEntities.add(var5); this.playerEntities.add(var5);
this.updateAllPlayersSleepingFlag(); this.updateAllPlayersSleepingFlag();
@ -182,7 +182,7 @@
} }
this.getChunkFromChunkCoords(var2, var3).addEntity(par1Entity); this.getChunkFromChunkCoords(var2, var3).addEntity(par1Entity);
@@ -1614,6 +1681,12 @@ @@ -1708,6 +1775,12 @@
* Calculates the color for the skybox * Calculates the color for the skybox
*/ */
public Vec3 getSkyColor(Entity par1Entity, float par2) public Vec3 getSkyColor(Entity par1Entity, float par2)
@ -195,7 +195,7 @@
{ {
float var3 = this.getCelestialAngle(par2); float var3 = this.getCelestialAngle(par2);
float var4 = MathHelper.cos(var3 * (float)Math.PI * 2.0F) * 2.0F + 0.5F; float var4 = MathHelper.cos(var3 * (float)Math.PI * 2.0F) * 2.0F + 0.5F;
@@ -1709,6 +1782,12 @@ @@ -1803,6 +1876,12 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public Vec3 drawClouds(float par1) public Vec3 drawClouds(float par1)
{ {
@ -208,7 +208,7 @@
float var2 = this.getCelestialAngle(par1); float var2 = this.getCelestialAngle(par1);
float var3 = MathHelper.cos(var2 * (float)Math.PI * 2.0F) * 2.0F + 0.5F; float var3 = MathHelper.cos(var2 * (float)Math.PI * 2.0F) * 2.0F + 0.5F;
@@ -1787,7 +1866,7 @@ @@ -1881,7 +1960,7 @@
{ {
int var5 = var3.getBlockID(par1, var4, par2); int var5 = var3.getBlockID(par1, var4, par2);
@ -217,7 +217,7 @@
{ {
return var4 + 1; return var4 + 1;
} }
@@ -1802,6 +1881,12 @@ @@ -1896,6 +1975,12 @@
* How bright are stars in the sky * How bright are stars in the sky
*/ */
public float getStarBrightness(float par1) public float getStarBrightness(float par1)
@ -230,16 +230,16 @@
{ {
float var2 = this.getCelestialAngle(par1); float var2 = this.getCelestialAngle(par1);
float var3 = 1.0F - (MathHelper.cos(var2 * (float)Math.PI * 2.0F) * 2.0F + 0.25F); float var3 = 1.0F - (MathHelper.cos(var2 * (float)Math.PI * 2.0F) * 2.0F + 0.25F);
@@ -1947,7 +2032,7 @@ @@ -2099,7 +2184,7 @@
if (var8 != null) if (var12 != null)
{ {
- var8.removeChunkBlockTileEntity(var6.xCoord & 15, var6.yCoord, var6.zCoord & 15); - var12.removeChunkBlockTileEntity(var10.xCoord & 15, var10.yCoord, var10.zCoord & 15);
+ var8.cleanChunkBlockTileEntity(var6.xCoord & 15, var6.yCoord, var6.zCoord & 15); + var12.cleanChunkBlockTileEntity(var10.xCoord & 15, var10.yCoord, var10.zCoord & 15);
} }
} }
} }
@@ -1957,6 +2042,10 @@ @@ -2109,6 +2194,10 @@
if (!this.entityRemoval.isEmpty()) if (!this.entityRemoval.isEmpty())
{ {
@ -250,27 +250,27 @@
this.loadedTileEntityList.removeAll(this.entityRemoval); this.loadedTileEntityList.removeAll(this.entityRemoval);
this.entityRemoval.clear(); this.entityRemoval.clear();
} }
@@ -1977,7 +2066,9 @@ @@ -2129,7 +2218,9 @@
{ {
this.loadedTileEntityList.add(var9); this.loadedTileEntityList.add(var13);
} }
- -
+ } + }
+ else + else
+ { + {
if (this.chunkExists(var9.xCoord >> 4, var9.zCoord >> 4)) if (this.chunkExists(var13.xCoord >> 4, var13.zCoord >> 4))
{ {
Chunk var10 = this.getChunkFromChunkCoords(var9.xCoord >> 4, var9.zCoord >> 4); Chunk var15 = this.getChunkFromChunkCoords(var13.xCoord >> 4, var13.zCoord >> 4);
@@ -1987,8 +2078,6 @@ @@ -2139,8 +2230,6 @@
var10.setChunkBlockTileEntity(var9.xCoord & 15, var9.yCoord, var9.zCoord & 15, var9); var15.setChunkBlockTileEntity(var13.xCoord & 15, var13.yCoord, var13.zCoord & 15, var13);
} }
} }
- -
- this.markBlockNeedsUpdate(var9.xCoord, var9.yCoord, var9.zCoord); - this.markBlockNeedsUpdate(var13.xCoord, var13.yCoord, var13.zCoord);
} }
} }
@@ -2001,13 +2090,13 @@ @@ -2153,13 +2242,13 @@
public void addTileEntity(Collection par1Collection) public void addTileEntity(Collection par1Collection)
{ {
@ -291,7 +291,7 @@
} }
} }
@@ -2027,9 +2116,17 @@ @@ -2179,9 +2268,17 @@
{ {
int var3 = MathHelper.floor_double(par1Entity.posX); int var3 = MathHelper.floor_double(par1Entity.posX);
int var4 = MathHelper.floor_double(par1Entity.posZ); int var4 = MathHelper.floor_double(par1Entity.posZ);
@ -312,7 +312,7 @@
{ {
par1Entity.lastTickPosX = par1Entity.posX; par1Entity.lastTickPosX = par1Entity.posX;
par1Entity.lastTickPosY = par1Entity.posY; par1Entity.lastTickPosY = par1Entity.posY;
@@ -2264,6 +2361,14 @@ @@ -2416,6 +2513,14 @@
{ {
return true; return true;
} }
@ -327,7 +327,7 @@
} }
} }
} }
@@ -2571,25 +2676,21 @@ @@ -2723,25 +2828,21 @@
*/ */
public void setBlockTileEntity(int par1, int par2, int par3, TileEntity par4TileEntity) public void setBlockTileEntity(int par1, int par2, int par3, TileEntity par4TileEntity)
{ {
@ -368,7 +368,7 @@
} }
} }
@@ -2598,27 +2699,10 @@ @@ -2750,27 +2851,10 @@
*/ */
public void removeBlockTileEntity(int par1, int par2, int par3) public void removeBlockTileEntity(int par1, int par2, int par3)
{ {
@ -400,7 +400,7 @@
} }
} }
@@ -2644,7 +2728,8 @@ @@ -2796,7 +2880,8 @@
*/ */
public boolean isBlockNormalCube(int par1, int par2, int par3) public boolean isBlockNormalCube(int par1, int par2, int par3)
{ {
@ -409,8 +409,8 @@
+ return block != null && block.isBlockNormalCube(this, par1, par2, par3); + return block != null && block.isBlockNormalCube(this, par1, par2, par3);
} }
/** public boolean func_85174_u(int par1, int par2, int par3)
@@ -2652,8 +2737,7 @@ @@ -2819,8 +2904,7 @@
*/ */
public boolean doesBlockHaveSolidTopSurface(int par1, int par2, int par3) public boolean doesBlockHaveSolidTopSurface(int par1, int par2, int par3)
{ {
@ -420,7 +420,7 @@
} }
/** /**
@@ -2669,7 +2753,7 @@ @@ -2836,7 +2920,7 @@
if (var5 != null && !var5.isEmpty()) if (var5 != null && !var5.isEmpty())
{ {
Block var6 = Block.blocksList[this.getBlockId(par1, par2, par3)]; Block var6 = Block.blocksList[this.getBlockId(par1, par2, par3)];
@ -429,7 +429,7 @@
} }
else else
{ {
@@ -2700,8 +2784,7 @@ @@ -2867,8 +2951,7 @@
*/ */
public void setAllowedSpawnTypes(boolean par1, boolean par2) public void setAllowedSpawnTypes(boolean par1, boolean par2)
{ {
@ -439,7 +439,7 @@
} }
/** /**
@@ -2717,6 +2800,11 @@ @@ -2884,6 +2967,11 @@
*/ */
private void calculateInitialWeather() private void calculateInitialWeather()
{ {
@ -451,7 +451,7 @@
if (this.worldInfo.isRaining()) if (this.worldInfo.isRaining())
{ {
this.rainingStrength = 1.0F; this.rainingStrength = 1.0F;
@@ -2732,6 +2820,11 @@ @@ -2899,6 +2987,11 @@
* Updates all weather states. * Updates all weather states.
*/ */
protected void updateWeather() protected void updateWeather()
@ -463,7 +463,7 @@
{ {
if (!this.provider.hasNoSky) if (!this.provider.hasNoSky)
{ {
@@ -2834,12 +2927,14 @@ @@ -3001,12 +3094,14 @@
public void toggleRain() public void toggleRain()
{ {
@ -479,7 +479,7 @@
this.theProfiler.startSection("buildList"); this.theProfiler.startSection("buildList");
int var1; int var1;
EntityPlayer var2; EntityPlayer var2;
@@ -2946,6 +3041,11 @@ @@ -3113,6 +3208,11 @@
*/ */
public boolean canBlockFreeze(int par1, int par2, int par3, boolean par4) public boolean canBlockFreeze(int par1, int par2, int par3, boolean par4)
{ {
@ -491,7 +491,7 @@
BiomeGenBase var5 = this.getBiomeGenForCoords(par1, par3); BiomeGenBase var5 = this.getBiomeGenForCoords(par1, par3);
float var6 = var5.getFloatTemperature(); float var6 = var5.getFloatTemperature();
@@ -3003,6 +3103,11 @@ @@ -3170,6 +3270,11 @@
* Tests whether or not snow can be placed at a given location * Tests whether or not snow can be placed at a given location
*/ */
public boolean canSnowAt(int par1, int par2, int par3) public boolean canSnowAt(int par1, int par2, int par3)
@ -503,7 +503,7 @@
{ {
BiomeGenBase var4 = this.getBiomeGenForCoords(par1, par3); BiomeGenBase var4 = this.getBiomeGenForCoords(par1, par3);
float var5 = var4.getFloatTemperature(); float var5 = var4.getFloatTemperature();
@@ -3096,7 +3201,7 @@ @@ -3263,7 +3368,7 @@
private int computeBlockLightValue(int par1, int par2, int par3, int par4, int par5, int par6) private int computeBlockLightValue(int par1, int par2, int par3, int par4, int par5, int par6)
{ {
@ -512,7 +512,7 @@
int var8 = this.getSavedLightValue(EnumSkyBlock.Block, par2 - 1, par3, par4) - par6; int var8 = this.getSavedLightValue(EnumSkyBlock.Block, par2 - 1, par3, par4) - par6;
int var9 = this.getSavedLightValue(EnumSkyBlock.Block, par2 + 1, par3, par4) - par6; int var9 = this.getSavedLightValue(EnumSkyBlock.Block, par2 + 1, par3, par4) - par6;
int var10 = this.getSavedLightValue(EnumSkyBlock.Block, par2, par3 - 1, par4) - par6; int var10 = this.getSavedLightValue(EnumSkyBlock.Block, par2, par3 - 1, par4) - par6;
@@ -3231,7 +3336,7 @@ @@ -3398,7 +3503,7 @@
int var21 = var24 + (var18 / 2 + 1) % 3 / 2 * var19; int var21 = var24 + (var18 / 2 + 1) % 3 / 2 * var19;
int var22 = var12 + (var18 / 2 + 2) % 3 / 2 * var19; int var22 = var12 + (var18 / 2 + 2) % 3 / 2 * var19;
var14 = this.getSavedLightValue(par1EnumSkyBlock, var20, var21, var22); var14 = this.getSavedLightValue(par1EnumSkyBlock, var20, var21, var22);
@ -521,7 +521,7 @@
if (var23 == 0) if (var23 == 0)
{ {
@@ -3262,7 +3367,7 @@ @@ -3429,7 +3534,7 @@
var12 = (var9 >> 12 & 63) - 32 + par4; var12 = (var9 >> 12 & 63) - 32 + par4;
var13 = this.getSavedLightValue(par1EnumSkyBlock, var10, var24, var12); var13 = this.getSavedLightValue(par1EnumSkyBlock, var10, var24, var12);
var14 = this.getBlockId(var10, var24, var12); var14 = this.getBlockId(var10, var24, var12);
@ -530,7 +530,7 @@
if (var15 == 0) if (var15 == 0)
{ {
@@ -3364,10 +3469,10 @@ @@ -3531,10 +3636,10 @@
public List getEntitiesWithinAABBExcludingEntity(Entity par1Entity, AxisAlignedBB par2AxisAlignedBB) public List getEntitiesWithinAABBExcludingEntity(Entity par1Entity, AxisAlignedBB par2AxisAlignedBB)
{ {
this.entitiesWithinAABBExcludingEntity.clear(); this.entitiesWithinAABBExcludingEntity.clear();
@ -545,7 +545,7 @@
for (int var7 = var3; var7 <= var4; ++var7) for (int var7 = var3; var7 <= var4; ++var7)
{ {
@@ -3393,10 +3498,10 @@ @@ -3560,10 +3665,10 @@
public List func_82733_a(Class par1Class, AxisAlignedBB par2AxisAlignedBB, IEntitySelector par3IEntitySelector) public List func_82733_a(Class par1Class, AxisAlignedBB par2AxisAlignedBB, IEntitySelector par3IEntitySelector)
{ {
@ -560,7 +560,7 @@
ArrayList var8 = new ArrayList(); ArrayList var8 = new ArrayList();
for (int var9 = var4; var9 <= var5; ++var9) for (int var9 = var4; var9 <= var5; ++var9)
@@ -3490,11 +3595,14 @@ @@ -3657,11 +3762,14 @@
*/ */
public void addLoadedEntities(List par1List) public void addLoadedEntities(List par1List)
{ {
@ -578,7 +578,7 @@
} }
} }
@@ -3528,6 +3636,11 @@ @@ -3695,6 +3803,11 @@
else else
{ {
if (var9 != null && (var9 == Block.waterMoving || var9 == Block.waterStill || var9 == Block.lavaMoving || var9 == Block.lavaStill || var9 == Block.fire || var9.blockMaterial.isGroundCover())) if (var9 != null && (var9 == Block.waterMoving || var9 == Block.waterStill || var9 == Block.lavaMoving || var9 == Block.lavaStill || var9 == Block.fire || var9.blockMaterial.isGroundCover()))
@ -590,7 +590,7 @@
{ {
var9 = null; var9 = null;
} }
@@ -3745,7 +3858,7 @@ @@ -3912,7 +4025,7 @@
*/ */
public long getSeed() public long getSeed()
{ {
@ -599,7 +599,7 @@
} }
public long getTotalWorldTime() public long getTotalWorldTime()
@@ -3755,7 +3868,7 @@ @@ -3922,7 +4035,7 @@
public long getWorldTime() public long getWorldTime()
{ {
@ -608,7 +608,7 @@
} }
/** /**
@@ -3763,7 +3876,7 @@ @@ -3930,7 +4043,7 @@
*/ */
public void setWorldTime(long par1) public void setWorldTime(long par1)
{ {
@ -617,7 +617,7 @@
} }
/** /**
@@ -3771,13 +3884,13 @@ @@ -3938,13 +4051,13 @@
*/ */
public ChunkCoordinates getSpawnPoint() public ChunkCoordinates getSpawnPoint()
{ {
@ -633,7 +633,7 @@
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@@ -3801,7 +3914,10 @@ @@ -3968,7 +4081,10 @@
if (!this.loadedEntityList.contains(par1Entity)) if (!this.loadedEntityList.contains(par1Entity))
{ {
@ -645,7 +645,7 @@
} }
} }
@@ -3809,6 +3925,11 @@ @@ -3976,6 +4092,11 @@
* Called when checking if a certain block can be mined or not. The 'spawn safe zone' check is located here. * Called when checking if a certain block can be mined or not. The 'spawn safe zone' check is located here.
*/ */
public boolean canMineBlock(EntityPlayer par1EntityPlayer, int par2, int par3, int par4) public boolean canMineBlock(EntityPlayer par1EntityPlayer, int par2, int par3, int par4)
@ -657,7 +657,7 @@
{ {
return true; return true;
} }
@@ -3929,8 +4050,7 @@ @@ -4096,8 +4217,7 @@
*/ */
public boolean isBlockHighHumidity(int par1, int par2, int par3) public boolean isBlockHighHumidity(int par1, int par2, int par3)
{ {
@ -667,7 +667,7 @@
} }
/** /**
@@ -3992,7 +4112,7 @@ @@ -4159,7 +4279,7 @@
*/ */
public int getHeight() public int getHeight()
{ {
@ -676,7 +676,7 @@
} }
/** /**
@@ -4000,7 +4120,7 @@ @@ -4167,7 +4287,7 @@
*/ */
public int getActualHeight() public int getActualHeight()
{ {
@ -685,7 +685,7 @@
} }
public IUpdatePlayerListBox func_82735_a(EntityMinecart par1EntityMinecart) public IUpdatePlayerListBox func_82735_a(EntityMinecart par1EntityMinecart)
@@ -4043,7 +4163,7 @@ @@ -4210,7 +4330,7 @@
*/ */
public double getHorizon() public double getHorizon()
{ {
@ -694,8 +694,8 @@
} }
/** /**
@@ -4088,4 +4208,75 @@ @@ -4270,4 +4390,75 @@
this.theCalendar.setTimeInMillis(System.currentTimeMillis());
return this.theCalendar; return this.theCalendar;
} }
+ +

View File

@ -30,12 +30,3 @@
} }
public WorldChunkManager(long par1, WorldType par3WorldType) public WorldChunkManager(long par1, WorldType par3WorldType)
@@ -236,7 +233,7 @@
ChunkPosition var13 = null;
int var14 = 0;
- for (int var15 = 0; var15 < var12.length; ++var15)
+ for (int var15 = 0; var15 < var10 * var11; ++var15) //Vanilla Bug-Fix, AIOOB -1 when cant find biome
{
int var16 = var6 + var15 % var10 << 2;
int var17 = var7 + var15 / var10 << 2;

View File

@ -7,10 +7,10 @@
- if (var12 != 0 && var12 != Block.leaves.blockID && var12 != Block.grass.blockID && var12 != Block.dirt.blockID && var12 != Block.wood.blockID) - if (var12 != 0 && var12 != Block.leaves.blockID && var12 != Block.grass.blockID && var12 != Block.dirt.blockID && var12 != Block.wood.blockID)
+ Block block = Block.blocksList[var12]; + Block block = Block.blocksList[var12];
+ +
+ if (var12 != 0 && + if (var12 != 0 &&
+ !block.isLeaves(par1World, var10, var8, var11) && + !block.isLeaves(par1World, var10, var8, var11) &&
+ var12 != Block.grass.blockID && + var12 != Block.grass.blockID &&
+ var12 != Block.dirt.blockID && + var12 != Block.dirt.blockID &&
+ !block.isWood(par1World, var10, var8, var11)) + !block.isWood(par1World, var10, var8, var11))
{ {
var7 = false; var7 = false;
@ -19,10 +19,10 @@
{ {
int var17 = var16 - par5; int var17 = var16 - par5;
- if ((Math.abs(var15) != var13 || Math.abs(var17) != var13 || par2Random.nextInt(2) != 0 && var12 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var14, var11, var16)]) - if ((Math.abs(var15) != var13 || Math.abs(var17) != var13 || par2Random.nextInt(2) != 0 && var12 != 0) && par1World.isAirBlock(var14, var11, var16))
+ Block block = Block.blocksList[par1World.getBlockId(var14, var11, var16)]; + Block block = Block.blocksList[par1World.getBlockId(var14, var11, var16)];
+ +
+ if ((Math.abs(var15) != var13 || Math.abs(var17) != var13 || par2Random.nextInt(2) != 0 && var12 != 0) && + if ((Math.abs(var15) != var13 || Math.abs(var17) != var13 || par2Random.nextInt(2) != 0 && var12 != 0) &&
+ (block == null || block.canBeReplacedByLeaves(par1World, var14, var11, var16))) + (block == null || block.canBeReplacedByLeaves(par1World, var14, var11, var16)))
{ {
this.setBlockAndMetadata(par1World, var14, var11, var16, Block.leaves.blockID, this.metaLeaves); this.setBlockAndMetadata(par1World, var14, var11, var16, Block.leaves.blockID, this.metaLeaves);

View File

@ -21,7 +21,7 @@
public class WorldServer extends World public class WorldServer extends World
{ {
@@ -44,6 +51,9 @@ @@ -45,6 +52,9 @@
/** An IntHashMap of entity IDs (integers) to their Entity objects. */ /** An IntHashMap of entity IDs (integers) to their Entity objects. */
private IntHashMap entityIdMap; private IntHashMap entityIdMap;
@ -31,15 +31,15 @@
public WorldServer(MinecraftServer par1MinecraftServer, ISaveHandler par2ISaveHandler, String par3Str, int par4, WorldSettings par5WorldSettings, Profiler par6Profiler) public WorldServer(MinecraftServer par1MinecraftServer, ISaveHandler par2ISaveHandler, String par3Str, int par4, WorldSettings par5WorldSettings, Profiler par6Profiler)
{ {
super(par2ISaveHandler, par3Str, par5WorldSettings, WorldProvider.getProviderForDimension(par4), par6Profiler); super(par2ISaveHandler, par3Str, par5WorldSettings, WorldProvider.getProviderForDimension(par4), par6Profiler);
@@ -65,6 +75,7 @@ @@ -68,6 +78,7 @@
{
this.pendingTickListEntries = new TreeSet();
} }
this.field_85177_Q = new Teleporter(this);
+ DimensionManager.setWorld(par4, this); + DimensionManager.setWorld(par4, this);
} }
/** /**
@@ -179,10 +190,7 @@ @@ -184,10 +195,7 @@
private void resetRainAndThunder() private void resetRainAndThunder()
{ {
@ -51,7 +51,7 @@
} }
public boolean areAllPlayersAsleep() public boolean areAllPlayersAsleep()
@@ -253,6 +261,14 @@ @@ -258,6 +266,14 @@
int var1 = 0; int var1 = 0;
int var2 = 0; int var2 = 0;
Iterator var3 = this.activeChunkSet.iterator(); Iterator var3 = this.activeChunkSet.iterator();
@ -66,7 +66,7 @@
while (var3.hasNext()) while (var3.hasNext())
{ {
@@ -263,14 +279,16 @@ @@ -268,14 +284,16 @@
Chunk var7 = this.getChunkFromChunkCoords(var4.chunkXPos, var4.chunkZPos); Chunk var7 = this.getChunkFromChunkCoords(var4.chunkXPos, var4.chunkZPos);
this.moodSoundAndLightCheck(var5, var6, var7); this.moodSoundAndLightCheck(var5, var6, var7);
this.theProfiler.endStartSection("tickChunk"); this.theProfiler.endStartSection("tickChunk");
@ -85,7 +85,7 @@
{ {
this.updateLCG = this.updateLCG * 3 + 1013904223; this.updateLCG = this.updateLCG * 3 + 1013904223;
var8 = this.updateLCG >> 2; var8 = this.updateLCG >> 2;
@@ -288,7 +306,7 @@ @@ -293,7 +311,7 @@
this.theProfiler.endStartSection("iceandsnow"); this.theProfiler.endStartSection("iceandsnow");
int var13; int var13;
@ -94,7 +94,7 @@
{ {
this.updateLCG = this.updateLCG * 3 + 1013904223; this.updateLCG = this.updateLCG * 3 + 1013904223;
var8 = this.updateLCG >> 2; var8 = this.updateLCG >> 2;
@@ -367,7 +385,8 @@ @@ -372,7 +390,8 @@
public void func_82740_a(int par1, int par2, int par3, int par4, int par5, int par6) public void func_82740_a(int par1, int par2, int par3, int par4, int par5, int par6)
{ {
NextTickListEntry var7 = new NextTickListEntry(par1, par2, par3, par4); NextTickListEntry var7 = new NextTickListEntry(par1, par2, par3, par4);
@ -104,7 +104,7 @@
if (this.scheduledUpdatesAreImmediate && par4 > 0) if (this.scheduledUpdatesAreImmediate && par4 > 0)
{ {
@@ -429,7 +448,7 @@ @@ -434,7 +453,7 @@
*/ */
public void updateEntities() public void updateEntities()
{ {
@ -113,7 +113,7 @@
{ {
if (this.updateEntityTick++ >= 1200) if (this.updateEntityTick++ >= 1200)
{ {
@@ -478,7 +497,8 @@ @@ -483,7 +502,8 @@
this.pendingTickListEntries.remove(var4); this.pendingTickListEntries.remove(var4);
this.field_73064_N.remove(var4); this.field_73064_N.remove(var4);
@ -123,7 +123,7 @@
if (this.checkChunksExist(var4.xCoord - var5, var4.yCoord - var5, var4.zCoord - var5, var4.xCoord + var5, var4.yCoord + var5, var4.zCoord + var5)) if (this.checkChunksExist(var4.xCoord - var5, var4.yCoord - var5, var4.zCoord - var5, var4.xCoord + var5, var4.yCoord + var5, var4.zCoord + var5))
{ {
@@ -575,15 +595,27 @@ @@ -601,15 +621,27 @@
public List getAllTileEntityInBox(int par1, int par2, int par3, int par4, int par5, int par6) public List getAllTileEntityInBox(int par1, int par2, int par3, int par4, int par5, int par6)
{ {
ArrayList var7 = new ArrayList(); ArrayList var7 = new ArrayList();
@ -160,7 +160,7 @@
} }
} }
@@ -594,6 +626,11 @@ @@ -620,6 +652,11 @@
* Called when checking if a certain block can be mined or not. The 'spawn safe zone' check is located here. * Called when checking if a certain block can be mined or not. The 'spawn safe zone' check is located here.
*/ */
public boolean canMineBlock(EntityPlayer par1EntityPlayer, int par2, int par3, int par4) public boolean canMineBlock(EntityPlayer par1EntityPlayer, int par2, int par3, int par4)
@ -172,7 +172,7 @@
{ {
int var5 = MathHelper.abs_int(par2 - this.worldInfo.getSpawnX()); int var5 = MathHelper.abs_int(par2 - this.worldInfo.getSpawnX());
int var6 = MathHelper.abs_int(par4 - this.worldInfo.getSpawnZ()); int var6 = MathHelper.abs_int(par4 - this.worldInfo.getSpawnZ());
@@ -603,7 +640,7 @@ @@ -629,7 +666,7 @@
var6 = var5; var6 = var5;
} }
@ -181,7 +181,7 @@
} }
protected void initialize(WorldSettings par1WorldSettings) protected void initialize(WorldSettings par1WorldSettings)
@@ -686,7 +723,7 @@ @@ -712,7 +749,7 @@
*/ */
protected void createBonusChest() protected void createBonusChest()
{ {
@ -190,7 +190,7 @@
for (int var2 = 0; var2 < 10; ++var2) for (int var2 = 0; var2 < 10; ++var2)
{ {
@@ -729,6 +766,7 @@ @@ -755,6 +792,7 @@
} }
this.chunkProvider.saveChunks(par1, par2IProgressUpdate); this.chunkProvider.saveChunks(par1, par2IProgressUpdate);
@ -198,7 +198,7 @@
} }
} }
@@ -740,6 +778,7 @@ @@ -766,6 +804,7 @@
this.checkSessionLock(); this.checkSessionLock();
this.saveHandler.saveWorldInfoWithPlayer(this.worldInfo, this.mcServer.getConfigurationManager().getTagsFromLastWrite()); this.saveHandler.saveWorldInfoWithPlayer(this.worldInfo, this.mcServer.getConfigurationManager().getTagsFromLastWrite());
this.mapStorage.saveAllData(); this.mapStorage.saveAllData();
@ -206,9 +206,9 @@
} }
/** /**
@@ -965,4 +1004,9 @@ @@ -996,4 +1035,9 @@
{ {
return this.thePlayerManager; return this.field_85177_Q;
} }
+ +
+ public File getChunkSaveLocation() + public File getChunkSaveLocation()

View File

@ -1,6 +1,6 @@
--- ../src_base/common/net/minecraft/src/WorldType.java --- ../src_base/common/net/minecraft/src/WorldType.java
+++ ../src_work/common/net/minecraft/src/WorldType.java +++ ../src_work/common/net/minecraft/src/WorldType.java
@@ -219,8 +219,19 @@ @@ -218,8 +218,19 @@
{ {
return this == FLAT ? random.nextInt(4) != 1 : false; return this == FLAT ? random.nextInt(4) != 1 : false;
} }

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/client/Minecraft.java --- ../src_base/minecraft/net/minecraft/client/Minecraft.java
+++ ../src_work/minecraft/net/minecraft/client/Minecraft.java +++ ../src_work/minecraft/net/minecraft/client/Minecraft.java
@@ -120,6 +120,9 @@ @@ -121,6 +121,9 @@
import net.minecraft.src.WorldInfo; import net.minecraft.src.WorldInfo;
import net.minecraft.src.WorldRenderer; import net.minecraft.src.WorldRenderer;
import net.minecraft.src.WorldSettings; import net.minecraft.src.WorldSettings;
@ -10,7 +10,7 @@
import org.lwjgl.LWJGLException; import org.lwjgl.LWJGLException;
import org.lwjgl.Sys; import org.lwjgl.Sys;
@@ -1252,7 +1255,7 @@ @@ -1253,7 +1256,7 @@
if (this.thePlayer.canCurrentToolHarvestBlock(var3, var4, var5)) if (this.thePlayer.canCurrentToolHarvestBlock(var3, var4, var5))
{ {
@ -19,7 +19,7 @@
this.thePlayer.swingItem(); this.thePlayer.swingItem();
} }
} }
@@ -1318,7 +1321,8 @@ @@ -1319,7 +1322,8 @@
{ {
int var8 = var3 != null ? var3.stackSize : 0; int var8 = var3 != null ? var3.stackSize : 0;
@ -29,7 +29,7 @@
{ {
var2 = false; var2 = false;
this.thePlayer.swingItem(); this.thePlayer.swingItem();
@@ -1344,7 +1348,8 @@ @@ -1345,7 +1349,8 @@
{ {
ItemStack var9 = this.thePlayer.inventory.getCurrentItem(); ItemStack var9 = this.thePlayer.inventory.getCurrentItem();
@ -39,7 +39,7 @@
{ {
this.entityRenderer.itemRenderer.func_78445_c(); this.entityRenderer.itemRenderer.func_78445_c();
} }
@@ -1959,6 +1964,18 @@ @@ -1985,6 +1990,18 @@
if (this.theIntegratedServer != null) if (this.theIntegratedServer != null)
{ {
this.theIntegratedServer.initiateShutdown(); this.theIntegratedServer.initiateShutdown();
@ -58,7 +58,7 @@
} }
this.theIntegratedServer = null; this.theIntegratedServer = null;
@@ -2268,95 +2285,12 @@ @@ -2294,95 +2311,12 @@
if (this.objectMouseOver != null) if (this.objectMouseOver != null)
{ {
boolean var1 = this.thePlayer.capabilities.isCreativeMode; boolean var1 = this.thePlayer.capabilities.isCreativeMode;

View File

@ -60,7 +60,7 @@
} }
} }
} }
@@ -105,12 +132,34 @@ @@ -107,6 +134,7 @@
for (int var11 = 0; var11 < this.fxLayers[var8].size(); ++var11) for (int var11 = 0; var11 < this.fxLayers[var8].size(); ++var11)
{ {
EntityFX var12 = (EntityFX)this.fxLayers[var8].get(var11); EntityFX var12 = (EntityFX)this.fxLayers[var8].get(var11);
@ -68,8 +68,9 @@
var10.setBrightness(var12.getBrightnessForRender(par2)); var10.setBrightness(var12.getBrightnessForRender(par2));
var12.renderParticle(var10, par2, var3, var7, var4, var5, var6); var12.renderParticle(var10, par2, var3, var7, var4, var5, var6);
} }
@@ -114,6 +142,27 @@
var10.draw(); var10.draw();
GL11.glDisable(GL11.GL_BLEND);
} }
+ } + }
+ +
@ -82,20 +83,20 @@
+ Tessellator tessallator = Tessellator.instance; + Tessellator tessallator = Tessellator.instance;
+ //GL11.glBindTexture(GL11.GL_TEXTURE_2D, renderer.getTexture(key)); + //GL11.glBindTexture(GL11.GL_TEXTURE_2D, renderer.getTexture(key));
+ tessallator.startDrawingQuads(); + tessallator.startDrawingQuads();
+ +
+ if (entry.getFXLayer() != 3) + if (entry.getFXLayer() != 3)
+ { + {
+ tessallator.setBrightness(entry.getBrightnessForRender(par2)); + tessallator.setBrightness(entry.getBrightnessForRender(par2));
+ entry.renderParticle(tessallator, par2, var3, var7, var4, var5, var6); + entry.renderParticle(tessallator, par2, var3, var7, var4, var5, var6);
+ } + }
+ +
+ tessallator.draw(); + tessallator.draw();
+ } + }
+ ForgeHooksClient.unbindTexture(); + ForgeHooksClient.unbindTexture();
} }
} }
@@ -130,6 +179,7 @@ @@ -133,6 +182,7 @@
for (int var11 = 0; var11 < this.fxLayers[var9].size(); ++var11) for (int var11 = 0; var11 < this.fxLayers[var9].size(); ++var11)
{ {
EntityFX var12 = (EntityFX)this.fxLayers[var9].get(var11); EntityFX var12 = (EntityFX)this.fxLayers[var9].get(var11);
@ -103,7 +104,7 @@
var10.setBrightness(var12.getBrightnessForRender(par2)); var10.setBrightness(var12.getBrightnessForRender(par2));
var12.renderParticle(var10, par2, var4, var8, var5, var6, var7); var12.renderParticle(var10, par2, var4, var8, var5, var6, var7);
} }
@@ -144,13 +194,15 @@ @@ -147,13 +197,15 @@
{ {
this.fxLayers[var2].clear(); this.fxLayers[var2].clear();
} }
@ -122,7 +123,7 @@
byte var7 = 4; byte var7 = 4;
for (int var8 = 0; var8 < var7; ++var8) for (int var8 = 0; var8 < var7; ++var8)
@@ -163,7 +215,7 @@ @@ -166,7 +218,7 @@
double var13 = (double)par2 + ((double)var9 + 0.5D) / (double)var7; double var13 = (double)par2 + ((double)var9 + 0.5D) / (double)var7;
double var15 = (double)par3 + ((double)var10 + 0.5D) / (double)var7; double var15 = (double)par3 + ((double)var10 + 0.5D) / (double)var7;
int var17 = this.rand.nextInt(6); int var17 = this.rand.nextInt(6);
@ -131,7 +132,7 @@
} }
} }
} }
@@ -215,12 +267,60 @@ @@ -218,12 +270,60 @@
var8 = (double)par1 + var6.getBlockBoundsMaxX() + (double)var7; var8 = (double)par1 + var6.getBlockBoundsMaxX() + (double)var7;
} }
@ -180,7 +181,7 @@
+ else if (effect.getFXLayer() == 2) + else if (effect.getFXLayer() == 2)
+ { + {
+ texture = "/gui/items.png"; + texture = "/gui/items.png";
+ } + }
+ texture = ForgeHooks.getTexture(texture, obj); + texture = ForgeHooks.getTexture(texture, obj);
+ effectList.put(texture, effect); + effectList.put(texture, effect);
+ } + }

View File

@ -24,7 +24,7 @@
} }
else else
{ {
@@ -322,7 +332,7 @@ @@ -327,7 +337,7 @@
{ {
CreativeTabs var3 = CreativeTabs.creativeTabArray[selectedTabIndex]; CreativeTabs var3 = CreativeTabs.creativeTabArray[selectedTabIndex];
@ -33,7 +33,7 @@
{ {
this.fontRenderer.drawString(var3.getTranslatedTabLabel(), 8, 6, 4210752); this.fontRenderer.drawString(var3.getTranslatedTabLabel(), 8, 6, 4210752);
} }
@@ -344,7 +354,7 @@ @@ -349,7 +359,7 @@
{ {
CreativeTabs var9 = var6[var8]; CreativeTabs var9 = var6[var8];
@ -42,7 +42,7 @@
{ {
this.func_74227_b(var9); this.func_74227_b(var9);
return; return;
@@ -360,11 +370,17 @@ @@ -365,11 +375,17 @@
*/ */
private boolean needsScrollBars() private boolean needsScrollBars()
{ {
@ -60,7 +60,7 @@
int var2 = selectedTabIndex; int var2 = selectedTabIndex;
selectedTabIndex = par1CreativeTabs.getTabIndex(); selectedTabIndex = par1CreativeTabs.getTabIndex();
ContainerCreative var3 = (ContainerCreative)this.inventorySlots; ContainerCreative var3 = (ContainerCreative)this.inventorySlots;
@@ -534,21 +550,42 @@ @@ -539,21 +555,42 @@
super.drawScreen(par1, par2, par3); super.drawScreen(par1, par2, par3);
CreativeTabs[] var11 = CreativeTabs.creativeTabArray; CreativeTabs[] var11 = CreativeTabs.creativeTabArray;
@ -108,7 +108,7 @@
} }
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
@@ -569,14 +606,32 @@ @@ -574,14 +611,32 @@
int var8 = var7.length; int var8 = var7.length;
int var9; int var9;
@ -143,7 +143,7 @@
} }
} }
@@ -594,6 +649,14 @@ @@ -599,6 +654,14 @@
this.drawTexturedModalRect(var11, var8 + (int)((float)(var9 - var8 - 17) * this.currentScroll), 232 + (this.needsScrollBars() ? 0 : 12), 0, 12, 15); this.drawTexturedModalRect(var11, var8 + (int)((float)(var9 - var8 - 17) * this.currentScroll), 232 + (this.needsScrollBars() ? 0 : 12), 0, 12, 15);
} }
@ -158,7 +158,7 @@
this.renderCreativeTab(var5); this.renderCreativeTab(var5);
if (var5 == CreativeTabs.tabInventory) if (var5 == CreativeTabs.tabInventory)
@@ -604,6 +667,15 @@ @@ -609,6 +672,15 @@
protected boolean func_74232_a(CreativeTabs par1CreativeTabs, int par2, int par3) protected boolean func_74232_a(CreativeTabs par1CreativeTabs, int par2, int par3)
{ {
@ -174,7 +174,7 @@
int var4 = par1CreativeTabs.getTabColumn(); int var4 = par1CreativeTabs.getTabColumn();
int var5 = 28 * var4; int var5 = 28 * var4;
byte var6 = 0; byte var6 = 0;
@@ -718,7 +790,7 @@ @@ -723,7 +795,7 @@
var8 += 8 + (var3 ? 1 : -1); var8 += 8 + (var3 ? 1 : -1);
GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL12.GL_RESCALE_NORMAL); GL11.glEnable(GL12.GL_RESCALE_NORMAL);
@ -183,7 +183,7 @@
itemRenderer.renderItemAndEffectIntoGUI(this.fontRenderer, this.mc.renderEngine, var10, var7, var8); itemRenderer.renderItemAndEffectIntoGUI(this.fontRenderer, this.mc.renderEngine, var10, var7, var8);
itemRenderer.renderItemOverlayIntoGUI(this.fontRenderer, this.mc.renderEngine, var10, var7, var8); itemRenderer.renderItemOverlayIntoGUI(this.fontRenderer, this.mc.renderEngine, var10, var7, var8);
GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_LIGHTING);
@@ -740,6 +812,15 @@ @@ -745,6 +817,15 @@
{ {
this.mc.displayGuiScreen(new GuiStats(this, this.mc.statFileWriter)); this.mc.displayGuiScreen(new GuiStats(this, this.mc.statFileWriter));
} }

View File

@ -1,8 +1,8 @@
--- ../src_base/minecraft/net/minecraft/src/ModelBase.java --- ../src_base/minecraft/net/minecraft/src/ModelBase.java
+++ ../src_work/minecraft/net/minecraft/src/ModelBase.java +++ ../src_work/minecraft/net/minecraft/src/ModelBase.java
@@ -7,7 +7,6 @@ @@ -8,7 +8,6 @@
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Random;
-@SideOnly(Side.CLIENT) -@SideOnly(Side.CLIENT)
public abstract class ModelBase public abstract class ModelBase

View File

@ -34,7 +34,7 @@
} }
public void handleAnimation(Packet18Animation par1Packet18Animation) public void handleAnimation(Packet18Animation par1Packet18Animation)
@@ -1056,6 +1065,10 @@ @@ -1065,6 +1074,10 @@
{ {
var2.readFromNBT(par1Packet132TileEntityData.customParam1); var2.readFromNBT(par1Packet132TileEntityData.customParam1);
} }

View File

@ -10,7 +10,7 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class PlayerControllerMP public class PlayerControllerMP
@@ -104,6 +107,12 @@ @@ -105,6 +108,12 @@
*/ */
public boolean onPlayerDestroyBlock(int par1, int par2, int par3, int par4) public boolean onPlayerDestroyBlock(int par1, int par2, int par3, int par4)
{ {
@ -23,7 +23,7 @@
if (this.currentGameType.isAdventure() && !this.mc.thePlayer.canCurrentToolHarvestBlock(par1, par2, par3)) if (this.currentGameType.isAdventure() && !this.mc.thePlayer.canCurrentToolHarvestBlock(par1, par2, par3))
{ {
return false; return false;
@@ -121,7 +130,7 @@ @@ -122,7 +131,7 @@
{ {
var5.playAuxSFX(2001, par1, par2, par3, var6.blockID + (var5.getBlockMetadata(par1, par2, par3) << 12)); var5.playAuxSFX(2001, par1, par2, par3, var6.blockID + (var5.getBlockMetadata(par1, par2, par3) << 12));
int var7 = var5.getBlockMetadata(par1, par2, par3); int var7 = var5.getBlockMetadata(par1, par2, par3);
@ -32,7 +32,7 @@
if (var8) if (var8)
{ {
@@ -309,6 +318,12 @@ @@ -318,6 +327,12 @@
float var11 = (float)par8Vec3.zCoord - (float)par6; float var11 = (float)par8Vec3.zCoord - (float)par6;
boolean var12 = false; boolean var12 = false;
int var13 = par2World.getBlockId(par4, par5, par6); int var13 = par2World.getBlockId(par4, par5, par6);
@ -45,7 +45,7 @@
if (var13 > 0 && Block.blocksList[var13].onBlockActivated(par2World, par4, par5, par6, par1EntityPlayer, par7, var9, var10, var11)) if (var13 > 0 && Block.blocksList[var13].onBlockActivated(par2World, par4, par5, par6, par1EntityPlayer, par7, var9, var10, var11))
{ {
@@ -346,7 +361,15 @@ @@ -355,7 +370,15 @@
} }
else else
{ {
@ -62,7 +62,7 @@
} }
} }
@@ -368,9 +391,10 @@ @@ -377,9 +400,10 @@
{ {
par1EntityPlayer.inventory.mainInventory[par1EntityPlayer.inventory.currentItem] = var5; par1EntityPlayer.inventory.mainInventory[par1EntityPlayer.inventory.currentItem] = var5;

View File

@ -9,7 +9,7 @@
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12; import org.lwjgl.opengl.GL12;
@@ -556,9 +558,8 @@ @@ -558,9 +560,8 @@
public boolean renderBlockBed(Block par1Block, int par2, int par3, int par4) public boolean renderBlockBed(Block par1Block, int par2, int par3, int par4)
{ {
Tessellator var5 = Tessellator.instance; Tessellator var5 = Tessellator.instance;
@ -21,7 +21,7 @@
float var9 = 0.5F; float var9 = 0.5F;
float var10 = 1.0F; float var10 = 1.0F;
float var11 = 0.8F; float var11 = 0.8F;
@@ -567,6 +568,7 @@ @@ -569,6 +570,7 @@
var5.setBrightness(var25); var5.setBrightness(var25);
var5.setColorOpaque_F(var9, var9, var9); var5.setColorOpaque_F(var9, var9, var9);
int var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 0); int var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 0);
@ -29,7 +29,7 @@
int var28 = (var27 & 15) << 4; int var28 = (var27 & 15) << 4;
int var29 = var27 & 240; int var29 = var27 & 240;
double var30 = (double)((float)var28 / 256.0F); double var30 = (double)((float)var28 / 256.0F);
@@ -585,6 +587,7 @@ @@ -587,6 +589,7 @@
var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4)); var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4));
var5.setColorOpaque_F(var10, var10, var10); var5.setColorOpaque_F(var10, var10, var10);
var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 1); var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 1);
@ -37,7 +37,7 @@
var28 = (var27 & 15) << 4; var28 = (var27 & 15) << 4;
var29 = var27 & 240; var29 = var27 & 240;
var30 = (double)((float)var28 / 256.0F); var30 = (double)((float)var28 / 256.0F);
@@ -2297,7 +2300,7 @@ @@ -2310,7 +2313,7 @@
double var28; double var28;
double var30; double var30;
@ -46,7 +46,7 @@
{ {
float var36 = 0.2F; float var36 = 0.2F;
float var19 = 0.0625F; float var19 = 0.0625F;
@@ -2317,7 +2320,7 @@ @@ -2330,7 +2333,7 @@
var9 = var20; var9 = var20;
} }
@ -55,7 +55,7 @@
{ {
var5.addVertexWithUV((double)((float)par2 + var36), (double)((float)par3 + var17 + var19), (double)(par4 + 1), var11, var13); var5.addVertexWithUV((double)((float)par2 + var36), (double)((float)par3 + var17 + var19), (double)(par4 + 1), var11, var13);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 1), var11, var15); var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 1), var11, var15);
@@ -2329,7 +2332,7 @@ @@ -2342,7 +2345,7 @@
var5.addVertexWithUV((double)((float)par2 + var36), (double)((float)par3 + var17 + var19), (double)(par4 + 1), var11, var13); var5.addVertexWithUV((double)((float)par2 + var36), (double)((float)par3 + var17 + var19), (double)(par4 + 1), var11, var13);
} }
@ -64,7 +64,7 @@
{ {
var5.addVertexWithUV((double)((float)(par2 + 1) - var36), (double)((float)par3 + var17 + var19), (double)(par4 + 0), var9, var13); var5.addVertexWithUV((double)((float)(par2 + 1) - var36), (double)((float)par3 + var17 + var19), (double)(par4 + 0), var9, var13);
var5.addVertexWithUV((double)(par2 + 1 - 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var9, var15); var5.addVertexWithUV((double)(par2 + 1 - 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var9, var15);
@@ -2341,7 +2344,7 @@ @@ -2354,7 +2357,7 @@
var5.addVertexWithUV((double)((float)(par2 + 1) - var36), (double)((float)par3 + var17 + var19), (double)(par4 + 0), var9, var13); var5.addVertexWithUV((double)((float)(par2 + 1) - var36), (double)((float)par3 + var17 + var19), (double)(par4 + 0), var9, var13);
} }
@ -73,7 +73,7 @@
{ {
var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17 + var19), (double)((float)par4 + var36), var11, var13); var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17 + var19), (double)((float)par4 + var36), var11, var13);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var11, var15); var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var11, var15);
@@ -2353,7 +2356,7 @@ @@ -2366,7 +2369,7 @@
var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17 + var19), (double)((float)par4 + var36), var11, var13); var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17 + var19), (double)((float)par4 + var36), var11, var13);
} }
@ -82,7 +82,7 @@
{ {
var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17 + var19), (double)((float)(par4 + 1) - var36), var9, var13); var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17 + var19), (double)((float)(par4 + 1) - var36), var9, var13);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 0) + var19), (double)(par4 + 1 - 0), var9, var15); var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 0) + var19), (double)(par4 + 1 - 0), var9, var15);
@@ -2365,7 +2368,7 @@ @@ -2378,7 +2381,7 @@
var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17 + var19), (double)((float)(par4 + 1) - var36), var9, var13); var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17 + var19), (double)((float)(par4 + 1) - var36), var9, var13);
} }
@ -91,7 +91,7 @@
{ {
var20 = (double)par2 + 0.5D + 0.5D; var20 = (double)par2 + 0.5D + 0.5D;
var22 = (double)par2 + 0.5D - 0.5D; var22 = (double)par2 + 0.5D - 0.5D;
@@ -4553,7 +4556,7 @@ @@ -4574,7 +4577,7 @@
var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2); var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2);
this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, var27); this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, var27);
@ -100,7 +100,7 @@
{ {
this.colorRedTopLeft *= par5; this.colorRedTopLeft *= par5;
this.colorRedBottomLeft *= par5; this.colorRedBottomLeft *= par5;
@@ -4676,7 +4679,7 @@ @@ -4697,7 +4700,7 @@
var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3); var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3);
this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3)); this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3));
@ -109,7 +109,7 @@
{ {
this.colorRedTopLeft *= par5; this.colorRedTopLeft *= par5;
this.colorRedBottomLeft *= par5; this.colorRedBottomLeft *= par5;
@@ -4799,7 +4802,7 @@ @@ -4820,7 +4823,7 @@
var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4); var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4);
this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, var27); this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, var27);
@ -118,7 +118,7 @@
{ {
this.colorRedTopLeft *= par5; this.colorRedTopLeft *= par5;
this.colorRedBottomLeft *= par5; this.colorRedBottomLeft *= par5;
@@ -4922,7 +4925,7 @@ @@ -4943,7 +4946,7 @@
var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5); var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5);
this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, var27); this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, var27);
@ -127,7 +127,7 @@
{ {
this.colorRedTopLeft *= par5; this.colorRedTopLeft *= par5;
this.colorRedBottomLeft *= par5; this.colorRedBottomLeft *= par5;
@@ -5034,7 +5037,7 @@ @@ -5055,7 +5058,7 @@
var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2); var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2);
this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, var28); this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, var28);
@ -136,7 +136,7 @@
{ {
var8.setColorOpaque_F(var18 * par5, var21 * par6, var24 * par7); var8.setColorOpaque_F(var18 * par5, var21 * par6, var24 * par7);
this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, 38); this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, 38);
@@ -5050,7 +5053,7 @@ @@ -5071,7 +5074,7 @@
var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3); var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3);
this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, var28); this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, var28);
@ -145,7 +145,7 @@
{ {
var8.setColorOpaque_F(var18 * par5, var21 * par6, var24 * par7); var8.setColorOpaque_F(var18 * par5, var21 * par6, var24 * par7);
this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, 38); this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, 38);
@@ -5066,7 +5069,7 @@ @@ -5087,7 +5090,7 @@
var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4); var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4);
this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, var28); this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, var28);
@ -154,7 +154,7 @@
{ {
var8.setColorOpaque_F(var19 * par5, var22 * par6, var25 * par7); var8.setColorOpaque_F(var19 * par5, var22 * par6, var25 * par7);
this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, 38); this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, 38);
@@ -5082,7 +5085,7 @@ @@ -5103,7 +5106,7 @@
var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5); var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5);
this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, var28); this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, var28);

View File

@ -36,7 +36,7 @@
double var4 = par2EntityPlayer.lastTickPosX + (par2EntityPlayer.posX - par2EntityPlayer.lastTickPosX) * (double)par3; double var4 = par2EntityPlayer.lastTickPosX + (par2EntityPlayer.posX - par2EntityPlayer.lastTickPosX) * (double)par3;
double var6 = par2EntityPlayer.lastTickPosY + (par2EntityPlayer.posY - par2EntityPlayer.lastTickPosY) * (double)par3; double var6 = par2EntityPlayer.lastTickPosY + (par2EntityPlayer.posY - par2EntityPlayer.lastTickPosY) * (double)par3;
double var8 = par2EntityPlayer.lastTickPosZ + (par2EntityPlayer.posZ - par2EntityPlayer.lastTickPosZ) * (double)par3; double var8 = par2EntityPlayer.lastTickPosZ + (par2EntityPlayer.posZ - par2EntityPlayer.lastTickPosZ) * (double)par3;
@@ -1815,6 +1829,7 @@ @@ -1828,6 +1842,7 @@
double var17 = this.mc.renderViewEntity.posY - par4; double var17 = this.mc.renderViewEntity.posY - par4;
double var19 = this.mc.renderViewEntity.posZ - par6; double var19 = this.mc.renderViewEntity.posZ - par6;
EntityFX var21 = null; EntityFX var21 = null;
@ -44,7 +44,7 @@
if (par1Str.equals("hugeexplosion")) if (par1Str.equals("hugeexplosion"))
{ {
@@ -1947,6 +1962,7 @@ @@ -1960,6 +1975,7 @@
else if (par1Str.equals("snowballpoof")) else if (par1Str.equals("snowballpoof"))
{ {
var21 = new EntityBreakingFX(this.theWorld, par2, par4, par6, Item.snowball); var21 = new EntityBreakingFX(this.theWorld, par2, par4, par6, Item.snowball);
@ -52,7 +52,7 @@
} }
else if (par1Str.equals("dripWater")) else if (par1Str.equals("dripWater"))
{ {
@@ -1963,6 +1979,7 @@ @@ -1976,6 +1992,7 @@
else if (par1Str.equals("slime")) else if (par1Str.equals("slime"))
{ {
var21 = new EntityBreakingFX(this.theWorld, par2, par4, par6, Item.slimeBall); var21 = new EntityBreakingFX(this.theWorld, par2, par4, par6, Item.slimeBall);
@ -60,23 +60,24 @@
} }
else if (par1Str.equals("heart")) else if (par1Str.equals("heart"))
{ {
@@ -1988,17 +2005,19 @@ @@ -1997,6 +2014,7 @@
{ {
var25 = Integer.parseInt(par1Str.substring(par1Str.indexOf("_") + 1)); int var27 = Integer.parseInt(par1Str.substring(par1Str.indexOf("_") + 1));
var21 = new EntityBreakingFX(this.theWorld, par2, par4, par6, par8, par10, par12, Item.itemsList[var25]); var21 = new EntityBreakingFX(this.theWorld, par2, par4, par6, par8, par10, par12, Item.itemsList[var27]);
+ effectObject = Item.itemsList[var25]; + effectObject = Item.itemsList[var27];
} }
else if (par1Str.startsWith("tilecrack_")) else if (par1Str.startsWith("tilecrack_"))
{ {
var25 = Integer.parseInt(par1Str.substring(par1Str.indexOf("_") + 1)); @@ -2004,11 +2022,13 @@
var21 = new EntityDiggingFX(this.theWorld, par2, par4, par6, par8, par10, par12, Block.blocksList[var25], 0, 0); int var25 = Integer.parseInt(var28[1]);
+ effectObject = Block.blocksList[var25]; int var26 = Integer.parseInt(var28[2]);
} var21 = new EntityDiggingFX(this.theWorld, par2, par4, par6, par8, par10, par12, Block.blocksList[var25], 0, var26);
+ effectObject = Block.blocksList[var25];
} }
if (var21 != null) if (var21 != null)
{ {
- this.mc.effectRenderer.addEffect((EntityFX)var21); this.mc.effectRenderer.addEffect((EntityFX)var21);
+ this.mc.effectRenderer.addEffect((EntityFX)var21, effectObject); + this.mc.effectRenderer.addEffect((EntityFX)var21, effectObject);
} }

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/src/RenderManager.java --- ../src_base/minecraft/net/minecraft/src/RenderManager.java
+++ ../src_work/minecraft/net/minecraft/src/RenderManager.java +++ ../src_work/minecraft/net/minecraft/src/RenderManager.java
@@ -132,12 +132,14 @@ @@ -133,12 +133,14 @@
if (par4EntityLiving.isPlayerSleeping()) if (par4EntityLiving.isPlayerSleeping())
{ {

View File

@ -40,7 +40,7 @@
float var7 = 1.0F; float var7 = 1.0F;
GL11.glColor3f(var7, var7, var7); GL11.glColor3f(var7, var7, var7);
} }
@@ -164,7 +172,7 @@ @@ -156,7 +164,7 @@
float var8 = 1.6F; float var8 = 1.6F;
float var9 = 0.016666668F * var8; float var9 = 0.016666668F * var8;
double var10 = par1EntityPlayer.getDistanceSqToEntity(this.renderManager.livingPlayer); double var10 = par1EntityPlayer.getDistanceSqToEntity(this.renderManager.livingPlayer);
@ -49,7 +49,7 @@
if (var10 < (double)(var12 * var12)) if (var10 < (double)(var12 * var12))
{ {
@@ -230,9 +238,12 @@ @@ -223,9 +231,12 @@
this.modelBipedMain.bipedHead.postRender(0.0625F); this.modelBipedMain.bipedHead.postRender(0.0625F);
float var5; float var5;
@ -60,29 +60,29 @@
+ { + {
+ IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(var4, EQUIPPED); + IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(var4, EQUIPPED);
+ boolean is3D = (customRenderer != null && customRenderer.shouldUseRenderHelper(EQUIPPED, var4, BLOCK_3D)); + boolean is3D = (customRenderer != null && customRenderer.shouldUseRenderHelper(EQUIPPED, var4, BLOCK_3D));
+ +
+ if (is3D || RenderBlocks.renderItemIn3d(Block.blocksList[var4.itemID].getRenderType())) + if (is3D || RenderBlocks.renderItemIn3d(Block.blocksList[var4.itemID].getRenderType()))
{ {
var5 = 0.625F; var5 = 0.625F;
GL11.glTranslatef(0.0F, -0.25F, 0.0F); GL11.glTranslatef(0.0F, -0.25F, 0.0F);
@@ -349,7 +360,10 @@ @@ -343,7 +354,10 @@
var23 = var21.getItemUseAction(); var23 = var21.getItemUseAction();
} }
- if (var21.itemID < 256 && RenderBlocks.renderItemIn3d(Block.blocksList[var21.itemID].getRenderType())) - if (var21.itemID < 256 && RenderBlocks.renderItemIn3d(Block.blocksList[var21.itemID].getRenderType()))
+ IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(var21, EQUIPPED); + IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(var21, EQUIPPED);
+ boolean is3D = (customRenderer != null && customRenderer.shouldUseRenderHelper(EQUIPPED, var21, BLOCK_3D)); + boolean is3D = (customRenderer != null && customRenderer.shouldUseRenderHelper(EQUIPPED, var21, BLOCK_3D));
+ +
+ if (var21.getItem() instanceof ItemBlock && (is3D || RenderBlocks.renderItemIn3d(Block.blocksList[var21.itemID].getRenderType()))) + if (var21.getItem() instanceof ItemBlock && (is3D || RenderBlocks.renderItemIn3d(Block.blocksList[var21.itemID].getRenderType())))
{ {
var7 = 0.5F; var7 = 0.5F;
GL11.glTranslatef(0.0F, 0.1875F, -0.3125F); GL11.glTranslatef(0.0F, 0.1875F, -0.3125F);
@@ -402,7 +416,7 @@ @@ -400,7 +414,7 @@
if (var21.getItem().requiresMultipleRenderPasses()) if (var21.getItem().requiresMultipleRenderPasses())
{ {
- for (int var27 = 0; var27 <= 1; ++var27) - for (var27 = 0; var27 <= 1; ++var27)
+ for (int var27 = 0; var27 < var21.getItem().getRenderPasses(var21.getItemDamage()); ++var27) + for (var27 = 0; var27 < var21.getItem().getRenderPasses(var21.getItemDamage()); ++var27)
{ {
int var26 = var21.getItem().getColorFromItemStack(var21, var27); int var26 = var21.getItem().getColorFromItemStack(var21, var27);
float var28 = (float)(var26 >> 16 & 255) / 255.0F; var28 = (float)(var26 >> 16 & 255) / 255.0F;

View File

@ -55,7 +55,7 @@
sndSystem.backgroundMusic("BgMusic", var1.soundUrl, var1.soundName, false); sndSystem.backgroundMusic("BgMusic", var1.soundUrl, var1.soundName, false);
sndSystem.setVolume("BgMusic", this.options.musicVolume); sndSystem.setVolume("BgMusic", this.options.musicVolume);
sndSystem.play("BgMusic"); sndSystem.play("BgMusic");
@@ -239,6 +251,7 @@ @@ -240,6 +252,7 @@
if (par1Str != null) if (par1Str != null)
{ {
SoundPoolEntry var6 = this.soundPoolStreaming.getRandomSoundFromSoundPool(par1Str); SoundPoolEntry var6 = this.soundPoolStreaming.getRandomSoundFromSoundPool(par1Str);
@ -63,7 +63,7 @@
if (var6 != null) if (var6 != null)
{ {
@@ -250,6 +263,7 @@ @@ -251,6 +264,7 @@
float var7 = 16.0F; float var7 = 16.0F;
sndSystem.newStreamingSource(true, var5, var6.soundUrl, var6.soundName, false, par2, par3, par4, 2, var7 * 4.0F); sndSystem.newStreamingSource(true, var5, var6.soundUrl, var6.soundName, false, par2, par3, par4, 2, var7 * 4.0F);
sndSystem.setVolume(var5, 0.5F * this.options.soundVolume); sndSystem.setVolume(var5, 0.5F * this.options.soundVolume);
@ -71,7 +71,7 @@
sndSystem.play(var5); sndSystem.play(var5);
} }
} }
@@ -429,6 +443,7 @@ @@ -430,6 +444,7 @@
if (loaded && this.options.soundVolume != 0.0F) if (loaded && this.options.soundVolume != 0.0F)
{ {
SoundPoolEntry var7 = this.soundPoolSounds.getRandomSoundFromSoundPool(par1Str); SoundPoolEntry var7 = this.soundPoolSounds.getRandomSoundFromSoundPool(par1Str);
@ -79,7 +79,7 @@
if (var7 != null && par5 > 0.0F) if (var7 != null && par5 > 0.0F)
{ {
@@ -450,6 +465,7 @@ @@ -451,6 +466,7 @@
} }
sndSystem.setVolume(var8, par5 * this.options.soundVolume); sndSystem.setVolume(var8, par5 * this.options.soundVolume);
@ -87,7 +87,7 @@
sndSystem.play(var8); sndSystem.play(var8);
} }
} }
@@ -464,6 +480,7 @@ @@ -465,6 +481,7 @@
if (loaded && this.options.soundVolume != 0.0F) if (loaded && this.options.soundVolume != 0.0F)
{ {
SoundPoolEntry var4 = this.soundPoolSounds.getRandomSoundFromSoundPool(par1Str); SoundPoolEntry var4 = this.soundPoolSounds.getRandomSoundFromSoundPool(par1Str);
@ -95,7 +95,7 @@
if (var4 != null) if (var4 != null)
{ {
@@ -479,6 +496,7 @@ @@ -480,6 +497,7 @@
par2 *= 0.25F; par2 *= 0.25F;
sndSystem.setPitch(var5, par3); sndSystem.setPitch(var5, par3);
sndSystem.setVolume(var5, par2 * this.options.soundVolume); sndSystem.setVolume(var5, par2 * this.options.soundVolume);