Merge branch 'mc143pre'
Update to minecraft 1.4.3 prerelease
This commit is contained in:
commit
b63009fd7d
46 changed files with 542 additions and 540 deletions
|
@ -1,95 +1,95 @@
|
|||
#Main Forge Access Transformer configuration file
|
||||
# RailLogic.getNAdjacentTracks
|
||||
public akh.a(Lakh;)I # RailLogic/func_73650_a
|
||||
public all.a(Lall;)I #MD:RailLogic/func_73650_a
|
||||
# Tessellator
|
||||
public-f azb.a # Tessellator/field_78398_a instance
|
||||
public azb.u # Tessellator/field_78409_u drawMode
|
||||
public azb.v # Tessellator/field_78408_v xOffset
|
||||
public azb.w # Tessellator/field_78407_w yOffset
|
||||
public azb.x # Tessellator/field_78417_xzOffset
|
||||
public azb.z # Tessellator/field_78415_z isDrawing
|
||||
public-f bah.a #FD:Tessellator/field_78398_a #instance
|
||||
public bah.u #FD:Tessellator/field_78409_u #drawMode
|
||||
public bah.v #FD:Tessellator/field_78408_v #xOffset
|
||||
public bah.w #FD:Tessellator/field_78407_w #yOffset
|
||||
public bah.x #FD:Tessellator/field_78417_x #zOffset
|
||||
public bah.z #FD:Tessellator/field_78415_z #isDrawing
|
||||
# ItemPickaxe
|
||||
public uc.<init>(ILtu;)V # constructor
|
||||
public+f uc.c # ItemPickaxe/field_77867_c blocksEffectiveAgainst
|
||||
public ut.<init>(ILul;)V #MD:ItemPickaxe/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
|
||||
public+f ut.c #FD:ItemPickaxe/field_77867_c #blocksEffectiveAgainst
|
||||
# ItemAxe
|
||||
public tr.<init>(ILtu;)V # constructor
|
||||
public+f tr.c # ItemAxe/field_77868_c blocksEffectiveAgainst
|
||||
public ui.<init>(ILul;)V #MD:ItemAxe/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
|
||||
public+f ui.c #FD:ItemAxe/field_77868_c #blocksEffectiveAgainst
|
||||
# ItemSpade
|
||||
public un.<init>(ILtu;)V # constructor
|
||||
public+f un.c # ItemSpade/field_77866_c blocksEffectiveAgainst
|
||||
public ve.<init>(ILul;)V #MD:ItemSpade/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
|
||||
public+f ve.c #FD:ItemSpade/field_77866_c #blocksEffectiveAgainst
|
||||
# ItemTool
|
||||
public td.a # ItemTool/field_77864_a efficiencyOnProperMaterial
|
||||
public td.ck # ItemTool/field_77865_bY damageVsEntity
|
||||
public tu.a #FD:ItemTool/field_77864_a #efficiencyOnProperMaterial
|
||||
public tu.cl #FD:ItemTool/field_77865_bY #damageVsEntity
|
||||
# EntityEnderman
|
||||
public pm.d # EntityEnderman/field_70827_d carriableBlocks
|
||||
public qd.d #FD:EntityEnderman/field_70827_d #carriableBlocks
|
||||
# RenderGlobal
|
||||
public ayy.h # RenderGlobal/field_72769_h theWorld
|
||||
public ayy.i # RenderGlobal/field_72770_i renderEngine
|
||||
public ayy.q # RenderGlobal/field_72777_q mc
|
||||
public ayy.r # RenderGlobal/field_72776_r globalRenderBlocks
|
||||
public aty.E # RenderGlobal/field_72738_E damagedBlocks
|
||||
public bad.h #FD:RenderGlobal/field_72769_h #theWorld
|
||||
public bad.i #FD:RenderGlobal/field_72770_i #renderEngine
|
||||
public bad.q #FD:RenderGlobal/field_72777_q #mc
|
||||
public bad.r #FD:RenderGlobal/field_72776_r #globalRenderBlocks
|
||||
public bad.E #FD:RenderGlobal/field_72738_E #damagedBlocks
|
||||
# SoundManager
|
||||
public bcx.a # SoundManager/field_77381_a sndSystem
|
||||
public bcx.b # SoundManager/field_77379_b soundPoolSounds
|
||||
public bcx.c # SoundManager/field_77380_c soundPoolStreaming
|
||||
public bcx.d # SoundManager/field_77377_d soundPoolMusic
|
||||
public bed.a #FD:SoundManager/field_77381_a #sndSystem
|
||||
public bed.b #FD:SoundManager/field_77379_b #soundPoolSounds
|
||||
public bed.c #FD:SoundManager/field_77380_c #soundPoolStreaming
|
||||
public bed.d #FD:SoundManager/field_77377_d #soundPoolMusic
|
||||
# EntityMinecart
|
||||
protected ph.* # All private -> protected
|
||||
public ph.h()Z # EntityMinecart/func_70490_h isMinecartPowered
|
||||
protected py.* #FD:EntityMinecart/* # All private -> protected
|
||||
public py.h()Z #MD:EntityMinecart/func_70490_h #isMinecartPowered
|
||||
# Block
|
||||
public alf.<init>(ILafg;)V #Constructor
|
||||
public alf.<init>(IILafg;)V #Constructor
|
||||
public alf.r()Lalf; # Block/func_71912_p setRequiresSelfNotify
|
||||
public alf.a(Lalj;)Lalf; # Block/func_71884_a setStepSound
|
||||
public alf.b(F)Lalf; # Block/func_71894_b setResistance
|
||||
public alf.c(F)Lalf; # Block/func_71848_c setHardness
|
||||
public alf.h(I)Lalf; # Block/func_71868_h setLightOpacity
|
||||
public alf.a(F)Lalf; # Block/func_71900_a setLightValue
|
||||
public alf.s()Lalf; # Block/func_71875_q setBlockUnbreakable
|
||||
public alf.b(Z)Lalf; # Block/func_71907_b setTickRandomly
|
||||
public alf.a(FFFFFF)V #Block/func_71905_a setBlockBounds
|
||||
public amj.<init>(ILagb;)V #MD:Block/<init>(ILnet/minecraft/src/Material;) #Constructor
|
||||
public amj.<init>(IILagb;)V #MD:Block/<init>(IILnet/minecraft/src/Material;) #Constructor
|
||||
public amj.r()Lamj; #MD:Block/func_71912_p #setRequiresSelfNotify
|
||||
public amj.a(Lamn;)Lamj; #MD:Block/func_71884_a #setStepSound
|
||||
public amj.b(F)Lamj; #MD:Block/func_71894_b #setResistance
|
||||
public amj.c(F)Lamj; #MD:Block/func_71848_c #setHardness
|
||||
public amj.h(I)Lamj; #MD:Block/func_71868_h #setLightOpacity
|
||||
public amj.a(F)Lamj; #MD:Block/func_71900_a #setLightValue
|
||||
public amj.s()Lamj; #MD:Block/func_71875_q #setBlockUnbreakable
|
||||
public amj.b(Z)Lamj; #MD:Block/func_71907_b #setTickRandomly
|
||||
public amj.a(FFFFFF)V #MD:Block/func_71905_a #setBlockBounds
|
||||
# NetServerHandler
|
||||
public im.g # NetServerHandler/field_72572_g playerInAirTime
|
||||
public iu.g #FD:NetServerHandler/field_72572_g #playerInAirTime
|
||||
# TileEntity
|
||||
public amm.k # TileEntity/field_70331_k worldObj
|
||||
public anq.k #FD:TileEntity/field_70331_k #worldObj
|
||||
# BlockLeavesBase
|
||||
public aln.c # BlockLeavesBase/field_72131_c graphicsLevel
|
||||
public amr.c #FD:BlockLeavesBase/field_72131_c #graphicsLevel
|
||||
# Item
|
||||
public tt.e(I)Ltt; # Item/func_77656_e setMaxDamage
|
||||
public-f tt.f(Ltv;)I # Item/func_77650_f getIconIndex
|
||||
public uk.e(I)Luk; #MD:Item/func_77656_e #setMaxDamage
|
||||
public-f uk.f(Lum;)I #MD:Item/func_77650_f #getIconIndex
|
||||
# RailLogic
|
||||
public akh
|
||||
public akh.a(Lakh;)I # RailLogic/func_73650_a getNAdjacentTiles
|
||||
public all #CL:RailLogic
|
||||
public all.a(Lall;)I #MD:RailLogic/func_73650_a #getNAdjacentTiles
|
||||
# EntityPlayer
|
||||
public qg.a(Lpg;)V # EntityPlayer/func_71012_a joinEntityItemWithWorld
|
||||
public qg.i()V # EntityPlayer/func_71053_j closeScreen
|
||||
public qx.a(Lpx;)V #MD:EntityPlayer/func_71012_a #joinEntityItemWithWorld
|
||||
public qx.i()V #MD:EntityPlayer/func_71053_j #closeScreen
|
||||
# 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
|
||||
public ie.S # WorldServer/field_73069_S bonusChestContent
|
||||
public abq.a # StructureMineshaftPieces/field_78818_a mineshaftChestContents
|
||||
public acu.i # ComponentScatteredFeatureDesertPyramid/field_74941_i itemsToGenerateInTemple
|
||||
public acv.l # ComponentScatteredFeatureJunglePyramid/field_74943_l junglePyramidsChestContents
|
||||
public acv.m # ComponentScatteredFeatureJunglePyramid/field_74944_m junglePyramidsDispenserContents
|
||||
public adf.a # ComponentStrongholdChestCorridor/field_75003_a strongholdChestContents
|
||||
public adj.b # ComponentStrongholdLibrary/field_75007_b strongholdLibraryChestContents
|
||||
public ado.c # ComponentStrongholdRoomCrossing/field_75014_c strongholdCorridorChestContents
|
||||
public aem.a # ComponentVillageHouse2/field_74918_a villageBlacksmithChestContents
|
||||
public im.T #FD:WorldServer/field_73069_S #bonusChestContent
|
||||
public aci.a #FD:StructureMineshaftPieces/field_78818_a #mineshaftChestContents
|
||||
public adm.i #FD:ComponentScatteredFeatureDesertPyramid/field_74941_i #itemsToGenerateInTemple
|
||||
public adn.l #FD:ComponentScatteredFeatureJunglePyramid/field_74943_l #junglePyramidsChestContents
|
||||
public adn.m #FD:ComponentScatteredFeatureJunglePyramid/field_74944_m #junglePyramidsDispenserContents
|
||||
public adx.a #FD:ComponentStrongholdChestCorridor/field_75003_a #strongholdChestContents
|
||||
public aeb.b #FD:ComponentStrongholdLibrary/field_75007_b #strongholdLibraryChestContents
|
||||
public aeg.c #FD:ComponentStrongholdRoomCrossing/field_75014_c #strongholdCorridorChestContents
|
||||
public afh.a #FD:ComponentVillageHouse2/field_74918_a #villageBlacksmithChestContents
|
||||
# AnvilChunkLoader.chunkSaveLocation
|
||||
default zn.d # AnvilChunkLoader/field_75825_d
|
||||
default aaf.d #FD:AnvilChunkLoader/field_75825_d
|
||||
# ChunkProviderServer.currentChunkLoader
|
||||
default id.e # ChunkProviderServer/field_73247_e
|
||||
default il.e #FD:ChunkProviderServer/field_73247_e
|
||||
# PlayerManager
|
||||
default ib.a(IIZ)Lic; # PlayerManager/func_72690_a getOrCreateChunkWatcher
|
||||
default ij.a(IIZ)Lik; #MD:PlayerManager/func_72690_a #getOrCreateChunkWatcher
|
||||
# World
|
||||
public-f xe.C # World/field_72982_D villageCollectionObj
|
||||
public xe.H # World/field_72993_I activeChunkSet
|
||||
public-f xv.C #FD:World/field_72982_D #villageCollectionObj
|
||||
public xv.H #FD:World/field_72993_I #activeChunkSet
|
||||
# EntityLiving
|
||||
public ln.bc # EntityLiving/field_70728_aV experienceValue
|
||||
public mc.bc #FD:EntityLiving/field_70728_aV #experienceValue
|
||||
# GuiFlatPresets
|
||||
public asr.a(Ljava/lang/String;ILxz;Ljava/util/List;[Labm;)V # GuiFlatPresets/func_82294_a
|
||||
public asr.a(Ljava/lang/String;ILxz;[Labm;)V # GuiFlatPresets/func_82297_a
|
||||
public atw.a(Ljava/lang/String;ILyr;Ljava/util/List;[Lace;)V #MD:GuiFlatPresets/func_82294_a
|
||||
public atw.a(Ljava/lang/String;ILyr;[Lace;)V #MD:GuiFlatPresets/func_82297_a
|
||||
# BiomeGenBase
|
||||
public xz.*() # Everything protected->public
|
||||
public yr.*() #MD:BiomeGenBase/* #Everything protected->public
|
||||
# MapGenVillage
|
||||
public-f aea.e # MapGenVillage/field_75055_e villageSpawnBiomes
|
||||
public-f aev.e #FD:MapGenVillage/field_75055_e #villageSpawnBiomes
|
||||
|
|
|
@ -7,10 +7,10 @@ package net.minecraftforge.common;
|
|||
|
||||
public class ForgeVersion
|
||||
{
|
||||
//This number is incremented every Minecraft version, and never reset
|
||||
//This number is incremented every time we remove deprecated code/major API changes, never reset
|
||||
public static final int majorVersion = 6;
|
||||
//This number is incremented every official release, and reset every Minecraft version
|
||||
public static final int minorVersion = 0;
|
||||
//This number is incremented every minecraft release, never reset
|
||||
public static final int minorVersion = 2;
|
||||
//This number is incremented every time a interface changes or new major feature is added, and reset every Minecraft version
|
||||
public static final int revisionVersion = 1;
|
||||
//This number is incremented every time Jenkins builds Forge, and never reset. Should always be 0 in the repo code.
|
||||
|
|
Binary file not shown.
|
@ -8,7 +8,7 @@
|
|||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
@@ -71,6 +72,9 @@
|
||||
@@ -70,6 +71,9 @@
|
||||
import net.minecraft.src.WorldServerMulti;
|
||||
import net.minecraft.src.WorldSettings;
|
||||
import net.minecraft.src.WorldType;
|
||||
|
@ -16,9 +16,9 @@
|
|||
+import net.minecraftforge.common.MinecraftForge;
|
||||
+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];
|
||||
|
||||
/** Stats are [dimension][tick%100] system.nanoTime is stored. */
|
||||
|
@ -28,7 +28,7 @@
|
|||
private KeyPair serverKeyPair;
|
||||
|
||||
/** Username of the server owner (for integrated servers) */
|
||||
@@ -243,8 +248,6 @@
|
||||
@@ -242,8 +247,6 @@
|
||||
{
|
||||
this.convertMapIfNeeded(par1Str);
|
||||
this.setUserMessage("menu.loadingLevel");
|
||||
|
@ -37,7 +37,7 @@
|
|||
ISaveHandler var7 = this.anvilConverterForAnvilFile.getSaveLoader(par1Str, true);
|
||||
WorldInfo var9 = var7.loadWorldInfo();
|
||||
WorldSettings var8;
|
||||
@@ -264,46 +267,23 @@
|
||||
@@ -263,46 +266,23 @@
|
||||
var8.enableBonusChest();
|
||||
}
|
||||
|
||||
|
@ -95,7 +95,7 @@
|
|||
this.setDifficultyForAllWorlds(this.getDifficulty());
|
||||
this.initialWorldChunkLoad();
|
||||
}
|
||||
@@ -434,7 +414,9 @@
|
||||
@@ -433,7 +413,9 @@
|
||||
for (int var3 = 0; var3 < var2; ++var3)
|
||||
{
|
||||
WorldServer var4 = var1[var3];
|
||||
|
@ -105,7 +105,7 @@
|
|||
}
|
||||
|
||||
if (this.usageSnooper != null && this.usageSnooper.isSnooperRunning())
|
||||
@@ -647,13 +629,13 @@
|
||||
@@ -646,13 +628,13 @@
|
||||
{
|
||||
this.theProfiler.startSection("levels");
|
||||
|
||||
|
@ -123,7 +123,7 @@
|
|||
this.theProfiler.startSection(var4.getWorldInfo().getWorldName());
|
||||
this.theProfiler.startSection("pools");
|
||||
var4.getWorldVec3Pool().clear();
|
||||
@@ -678,9 +660,11 @@
|
||||
@@ -699,9 +681,11 @@
|
||||
this.theProfiler.endSection();
|
||||
}
|
||||
|
||||
|
@ -138,7 +138,7 @@
|
|||
this.theProfiler.endStartSection("connection");
|
||||
this.getNetworkThread().networkTick();
|
||||
this.theProfiler.endStartSection("players");
|
||||
@@ -736,7 +720,13 @@
|
||||
@@ -757,7 +741,13 @@
|
||||
*/
|
||||
public WorldServer worldServerForDimension(int par1)
|
||||
{
|
||||
|
@ -153,7 +153,7 @@
|
|||
}
|
||||
|
||||
@SideOnly(Side.SERVER)
|
||||
@@ -845,7 +835,7 @@
|
||||
@@ -866,7 +856,7 @@
|
||||
|
||||
public String getServerModName()
|
||||
{
|
||||
|
@ -162,7 +162,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -1124,6 +1114,7 @@
|
||||
@@ -1128,6 +1118,7 @@
|
||||
|
||||
if (var2 != null)
|
||||
{
|
||||
|
|
|
@ -102,7 +102,7 @@
|
|||
{
|
||||
ItemStack var8 = this.createStackedBlock(par6);
|
||||
|
||||
@@ -1315,4 +1321,848 @@
|
||||
@@ -1322,4 +1328,848 @@
|
||||
canBlockGrass[0] = true;
|
||||
StatList.initBreakableStats();
|
||||
}
|
||||
|
|
|
@ -35,49 +35,48 @@
|
|||
+ (par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -74,20 +85,22 @@
|
||||
int var9 = par1World.getBlockMetadata(par2, par3, par4);
|
||||
int var10 = var9 & 8;
|
||||
var9 &= 7;
|
||||
-
|
||||
public int func_85104_a(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9)
|
||||
@@ -72,19 +83,22 @@
|
||||
int var11 = var10 & 8;
|
||||
var10 &= 7;
|
||||
|
||||
- if (par5 == 2 && par1World.isBlockNormalCube(par2, par3, par4 + 1))
|
||||
+
|
||||
+
|
||||
+ ForgeDirection dir = ForgeDirection.getOrientation(par5);
|
||||
+
|
||||
+ 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 (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 (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 (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)
|
||||
{
|
||||
- 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, WEST)) return 2;
|
||||
+ if (par1World.isBlockSolidOnSide(par2, par3, par4 - 1, SOUTH)) return 3;
|
||||
+ if (par1World.isBlockSolidOnSide(par2 - 1, par3, par4, EAST)) return 1;
|
||||
+ 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, NORTH)) return 4;
|
||||
+ return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -118,22 +135,22 @@
|
||||
@@ -115,22 +133,22 @@
|
||||
int var6 = par1World.getBlockMetadata(par2, par3, par4) & 7;
|
||||
boolean var7 = false;
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
public class BlockChest extends BlockContainer
|
||||
{
|
||||
@@ -383,7 +384,7 @@
|
||||
@@ -411,7 +412,7 @@
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -17,7 +17,7 @@
|
|||
{
|
||||
return true;
|
||||
}
|
||||
@@ -391,19 +392,19 @@
|
||||
@@ -419,19 +420,19 @@
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
{
|
||||
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];
|
||||
+ if (plant instanceof IPlantable && canSustainPlant(par1World, par2, par3, par4, ForgeDirection.UP, (IPlantable)plant))
|
||||
{
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
public class BlockLadder extends Block
|
||||
{
|
||||
@@ -107,7 +109,10 @@
|
||||
@@ -96,29 +98,32 @@
|
||||
*/
|
||||
public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
|
||||
{
|
||||
|
@ -20,35 +20,34 @@
|
|||
+ par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -117,22 +122,22 @@
|
||||
public int func_85104_a(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9)
|
||||
{
|
||||
int var9 = par1World.getBlockMetadata(par2, par3, par4);
|
||||
int var10 = par9;
|
||||
|
||||
- if ((var9 == 0 || par5 == 2) && par1World.isBlockNormalCube(par2, par3, par4 + 1))
|
||||
+ if ((var9 == 0 || par5 == 2) && par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH))
|
||||
- if ((par9 == 0 || par5 == 2) && par1World.isBlockNormalCube(par2, par3, par4 + 1))
|
||||
+ 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 ((var9 == 0 || par5 == 3) && par1World.isBlockSolidOnSide(par2, par3, par4 - 1, SOUTH))
|
||||
- if ((var10 == 0 || par5 == 3) && par1World.isBlockNormalCube(par2, par3, par4 - 1))
|
||||
+ 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 ((var9 == 0 || par5 == 4) && par1World.isBlockSolidOnSide(par2 + 1, par3, par4, WEST))
|
||||
- if ((var10 == 0 || par5 == 4) && par1World.isBlockNormalCube(par2 + 1, par3, par4))
|
||||
+ 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 ((var9 == 0 || par5 == 5) && par1World.isBlockSolidOnSide(par2 - 1, par3, par4, EAST))
|
||||
- if ((var10 == 0 || par5 == 5) && par1World.isBlockNormalCube(par2 - 1, par3, par4))
|
||||
+ 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);
|
||||
boolean var7 = false;
|
||||
|
||||
|
@ -75,7 +74,7 @@
|
|||
{
|
||||
var7 = true;
|
||||
}
|
||||
@@ -185,4 +190,10 @@
|
||||
@@ -171,4 +176,10 @@
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -36,47 +36,47 @@
|
|||
+ par1World.isBlockSolidOnSide(par2, par3 + 1, par4, DOWN );
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -68,32 +82,32 @@
|
||||
var9 &= 7;
|
||||
var9 = -1;
|
||||
public int func_85104_a(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9)
|
||||
@@ -64,32 +78,32 @@
|
||||
int var10 = par9 & 7;
|
||||
var10 = -1;
|
||||
|
||||
- if (par5 == 0 && par1World.isBlockNormalCube(par2, par3 + 1, par4))
|
||||
+ 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.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.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH))
|
||||
{
|
||||
var9 = 4;
|
||||
var10 = 4;
|
||||
}
|
||||
|
||||
- if (par5 == 3 && par1World.isBlockNormalCube(par2, par3, par4 - 1))
|
||||
+ 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.isBlockSolidOnSide(par2 + 1, par3, par4, WEST))
|
||||
{
|
||||
var9 = 2;
|
||||
var10 = 2;
|
||||
}
|
||||
|
||||
- if (par5 == 5 && par1World.isBlockNormalCube(par2 - 1, par3, par4))
|
||||
+ 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;
|
||||
boolean var7 = false;
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
@@ -147,4 +142,16 @@
|
||||
@@ -144,4 +139,16 @@
|
||||
{
|
||||
return new ItemStack(this.blockID, 1, limitToValidMetadata(par1));
|
||||
}
|
||||
|
|
|
@ -30,35 +30,35 @@
|
|||
+ canPlaceTorchOn(par1World, par2, par3 - 1, par4);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -83,22 +89,22 @@
|
||||
var9 = 5;
|
||||
public int func_85104_a(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9)
|
||||
@@ -80,22 +86,22 @@
|
||||
var10 = 5;
|
||||
}
|
||||
|
||||
- if (par5 == 2 && par1World.isBlockNormalCubeDefault(par2, par3, par4 + 1, 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.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.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.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)
|
||||
{
|
||||
|
@ -82,7 +82,7 @@
|
|||
{
|
||||
par1World.setBlockMetadataWithNotify(par2, par3, par4, 4);
|
||||
}
|
||||
@@ -159,22 +165,22 @@
|
||||
@@ -156,22 +162,22 @@
|
||||
int var6 = par1World.getBlockMetadata(par2, par3, par4);
|
||||
boolean var7 = false;
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
{
|
||||
par1World.setBlockWithNotify(par2, par3, par4, 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)
|
||||
{
|
||||
|
@ -35,7 +35,7 @@
|
|||
if (par5 == 0)
|
||||
{
|
||||
return false;
|
||||
@@ -290,7 +298,7 @@
|
||||
@@ -285,7 +293,7 @@
|
||||
--par2;
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -305,6 +313,10 @@
|
||||
@@ -300,6 +308,10 @@
|
||||
*/
|
||||
private static boolean isValidSupportBlock(int par0)
|
||||
{
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -66,7 +73,10 @@
|
||||
@@ -66,29 +73,32 @@
|
||||
*/
|
||||
public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
|
||||
{
|
||||
|
@ -34,35 +34,34 @@
|
|||
+ par1World.isBlockSolidOnSide(par2, par3, par4 + 1, WEST );
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -76,22 +86,22 @@
|
||||
public int func_85104_a(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9)
|
||||
{
|
||||
byte var9 = 0;
|
||||
byte var10 = 0;
|
||||
|
||||
- if (par5 == 2 && par1World.isBlockNormalCubeDefault(par2, par3, par4 + 1, 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.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.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.isBlockSolidOnSide(par2 - 1, par3, par4, SOUTH, true))
|
||||
{
|
||||
var9 = 3;
|
||||
var10 = 3;
|
||||
}
|
||||
@@ -113,22 +123,22 @@
|
||||
@@ -115,22 +125,22 @@
|
||||
int var7 = var6 & 3;
|
||||
boolean var8 = false;
|
||||
|
||||
|
@ -89,7 +88,7 @@
|
|||
{
|
||||
var8 = true;
|
||||
}
|
||||
@@ -149,7 +159,7 @@
|
||||
@@ -151,7 +161,7 @@
|
||||
boolean var12 = (par6 & 8) == 8;
|
||||
boolean var13 = par5 == Block.tripWireSource.blockID;
|
||||
boolean var14 = false;
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
{
|
||||
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)
|
||||
{
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
if (var5 == null)
|
||||
{
|
||||
@@ -279,6 +286,11 @@
|
||||
@@ -291,6 +298,11 @@
|
||||
{
|
||||
if (!this.currentServer.canNotSave)
|
||||
{
|
||||
|
@ -44,7 +44,7 @@
|
|||
for (int var1 = 0; var1 < 100; ++var1)
|
||||
{
|
||||
if (!this.chunksToUnload.isEmpty())
|
||||
@@ -291,6 +303,11 @@
|
||||
@@ -303,6 +315,11 @@
|
||||
this.chunksToUnload.remove(var2);
|
||||
this.loadedChunkHashMap.remove(var2.longValue());
|
||||
this.loadedChunks.remove(var3);
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
import net.minecraft.server.MinecraftServer;
|
||||
|
||||
public abstract class Entity
|
||||
@@ -197,6 +199,11 @@
|
||||
public int dimension;
|
||||
@@ -198,6 +200,11 @@
|
||||
protected int field_82152_aq;
|
||||
private boolean field_83001_bt;
|
||||
public EnumEntitySize myEntitySize;
|
||||
+ /** Forge: Used to store custom data for each entity. */
|
||||
+ private NBTTagCompound customEntityData;
|
||||
|
@ -21,38 +21,38 @@
|
|||
|
||||
public Entity(World par1World)
|
||||
{
|
||||
@@ -1466,6 +1473,15 @@
|
||||
par1NBTTagCompound.setShort("Air", (short)this.getAir());
|
||||
par1NBTTagCompound.setBoolean("OnGround", this.onGround);
|
||||
par1NBTTagCompound.setInteger("Dimension", this.dimension);
|
||||
+ if (persistentID != null)
|
||||
+ {
|
||||
+ par1NBTTagCompound.setLong("PersistentIDMSB", persistentID.getMostSignificantBits());
|
||||
+ par1NBTTagCompound.setLong("PersistentIDLSB", persistentID.getLeastSignificantBits());
|
||||
+ }
|
||||
+ if (customEntityData != null)
|
||||
+ {
|
||||
+ par1NBTTagCompound.setCompoundTag("ForgeData", customEntityData);
|
||||
+ }
|
||||
this.writeEntityToNBT(par1NBTTagCompound);
|
||||
}
|
||||
|
||||
@@ -1508,6 +1524,14 @@
|
||||
this.dimension = par1NBTTagCompound.getInteger("Dimension");
|
||||
this.setPosition(this.posX, this.posY, this.posZ);
|
||||
this.setRotation(this.rotationYaw, this.rotationPitch);
|
||||
+ if (par1NBTTagCompound.hasKey("ForgeData"))
|
||||
+ {
|
||||
+ customEntityData = par1NBTTagCompound.getCompoundTag("ForgeData");
|
||||
+ }
|
||||
+ if (par1NBTTagCompound.hasKey("PersistentIDMSB") && par1NBTTagCompound.hasKey("PersistentIDLSB"))
|
||||
+ {
|
||||
+ persistentID = new UUID(par1NBTTagCompound.getLong("PersistentIDMSB"), par1NBTTagCompound.getLong("PersistentIDLSB"));
|
||||
+ }
|
||||
this.readEntityFromNBT(par1NBTTagCompound);
|
||||
}
|
||||
|
||||
@@ -1594,7 +1618,14 @@
|
||||
@@ -1493,6 +1500,15 @@
|
||||
par1NBTTagCompound.setInteger("Dimension", this.dimension);
|
||||
par1NBTTagCompound.setBoolean("Invulnerable", this.field_83001_bt);
|
||||
par1NBTTagCompound.setInteger("PortalCooldown", this.timeUntilPortal);
|
||||
+ if (persistentID != null)
|
||||
+ {
|
||||
+ par1NBTTagCompound.setLong("PersistentIDMSB", persistentID.getMostSignificantBits());
|
||||
+ par1NBTTagCompound.setLong("PersistentIDLSB", persistentID.getLeastSignificantBits());
|
||||
+ }
|
||||
+ if (customEntityData != null)
|
||||
+ {
|
||||
+ par1NBTTagCompound.setCompoundTag("ForgeData", customEntityData);
|
||||
+ }
|
||||
this.writeEntityToNBT(par1NBTTagCompound);
|
||||
}
|
||||
catch (Throwable var5)
|
||||
@@ -1547,6 +1563,14 @@
|
||||
this.timeUntilPortal = par1NBTTagCompound.getInteger("PortalCooldown");
|
||||
this.setPosition(this.posX, this.posY, this.posZ);
|
||||
this.setRotation(this.rotationYaw, this.rotationPitch);
|
||||
+ if (par1NBTTagCompound.hasKey("ForgeData"))
|
||||
+ {
|
||||
+ customEntityData = par1NBTTagCompound.getCompoundTag("ForgeData");
|
||||
+ }
|
||||
+ if (par1NBTTagCompound.hasKey("PersistentIDMSB") && par1NBTTagCompound.hasKey("PersistentIDLSB"))
|
||||
+ {
|
||||
+ persistentID = new UUID(par1NBTTagCompound.getLong("PersistentIDMSB"), par1NBTTagCompound.getLong("PersistentIDLSB"));
|
||||
+ }
|
||||
this.readEntityFromNBT(par1NBTTagCompound);
|
||||
}
|
||||
catch (Throwable var5)
|
||||
@@ -1641,7 +1665,14 @@
|
||||
{
|
||||
EntityItem var3 = new EntityItem(this.worldObj, this.posX, this.posY + (double)par2, this.posZ, par1ItemStack);
|
||||
var3.delayBeforeCanPickup = 10;
|
||||
|
@ -68,7 +68,7 @@
|
|||
return var3;
|
||||
}
|
||||
|
||||
@@ -1954,7 +1985,7 @@
|
||||
@@ -2001,7 +2032,7 @@
|
||||
*/
|
||||
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)
|
||||
{
|
||||
|
@ -86,9 +86,9 @@
|
|||
}
|
||||
|
||||
public int func_82143_as()
|
||||
@@ -2299,4 +2330,84 @@
|
||||
{
|
||||
return false;
|
||||
@@ -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)));
|
||||
par1CrashReportCategory.addCrashSection("Momentum", String.format("%.2f, %.2f, %.2f", new Object[] {Double.valueOf(this.motionX), Double.valueOf(this.motionY), Double.valueOf(this.motionZ)}));
|
||||
}
|
||||
+
|
||||
+ /* ================================== Forge Start =====================================*/
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -118,7 +129,20 @@
|
||||
@@ -112,7 +123,20 @@
|
||||
|
||||
++this.age;
|
||||
|
||||
|
@ -54,7 +54,7 @@
|
|||
{
|
||||
this.setDead();
|
||||
}
|
||||
@@ -215,6 +239,7 @@
|
||||
@@ -228,6 +252,7 @@
|
||||
{
|
||||
par1NBTTagCompound.setShort("Health", (short)((byte)this.health));
|
||||
par1NBTTagCompound.setShort("Age", (short)this.age);
|
||||
|
@ -62,7 +62,7 @@
|
|||
|
||||
if (this.item != null)
|
||||
{
|
||||
@@ -232,10 +257,15 @@
|
||||
@@ -245,10 +270,15 @@
|
||||
NBTTagCompound var2 = par1NBTTagCompound.getCompoundTag("Item");
|
||||
this.item = ItemStack.loadItemStackFromNBT(var2);
|
||||
|
||||
|
@ -79,7 +79,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -245,9 +275,21 @@
|
||||
@@ -258,9 +288,21 @@
|
||||
{
|
||||
if (!this.worldObj.isRemote)
|
||||
{
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
public abstract class EntityLiving extends Entity
|
||||
{
|
||||
@@ -351,6 +355,7 @@
|
||||
@@ -344,6 +348,7 @@
|
||||
public void setAttackTarget(EntityLiving par1EntityLiving)
|
||||
{
|
||||
this.attackTarget = par1EntityLiving;
|
||||
|
@ -27,7 +27,7 @@
|
|||
}
|
||||
|
||||
protected void entityInit()
|
||||
@@ -722,6 +728,11 @@
|
||||
@@ -723,6 +729,11 @@
|
||||
*/
|
||||
public void onUpdate()
|
||||
{
|
||||
|
@ -39,7 +39,7 @@
|
|||
super.onUpdate();
|
||||
|
||||
if (!this.worldObj.isRemote)
|
||||
@@ -903,6 +914,11 @@
|
||||
@@ -908,6 +919,11 @@
|
||||
*/
|
||||
public boolean attackEntityFrom(DamageSource par1DamageSource, int par2)
|
||||
{
|
||||
|
@ -48,12 +48,12 @@
|
|||
+ return false;
|
||||
+ }
|
||||
+
|
||||
if (this.worldObj.isRemote)
|
||||
if (this.func_85032_ar())
|
||||
{
|
||||
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);
|
||||
+ if (par2 <= 0)
|
||||
|
@ -63,7 +63,7 @@
|
|||
par2 = this.applyArmorCalculations(par1DamageSource, par2);
|
||||
par2 = this.applyPotionDamageCalculations(par1DamageSource, par2);
|
||||
this.health -= par2;
|
||||
@@ -1173,6 +1194,11 @@
|
||||
@@ -1182,6 +1203,11 @@
|
||||
*/
|
||||
public void onDeath(DamageSource par1DamageSource)
|
||||
{
|
||||
|
@ -75,7 +75,7 @@
|
|||
Entity var2 = par1DamageSource.getEntity();
|
||||
|
||||
if (this.scoreValue >= 0 && var2 != null)
|
||||
@@ -1195,6 +1221,10 @@
|
||||
@@ -1204,6 +1230,10 @@
|
||||
{
|
||||
var3 = EnchantmentHelper.getLootingModifier((EntityLiving)var2);
|
||||
}
|
||||
|
@ -86,7 +86,7 @@
|
|||
|
||||
if (!this.isChild() && this.worldObj.getGameRules().getGameRuleBooleanValue("doMobLoot"))
|
||||
{
|
||||
@@ -1203,7 +1233,7 @@
|
||||
@@ -1212,7 +1242,7 @@
|
||||
|
||||
if (this.recentlyHit > 0)
|
||||
{
|
||||
|
@ -95,7 +95,7 @@
|
|||
|
||||
if (var4 < 5)
|
||||
{
|
||||
@@ -1211,6 +1241,16 @@
|
||||
@@ -1220,6 +1250,16 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -112,7 +112,7 @@
|
|||
}
|
||||
|
||||
this.worldObj.setEntityState(this, (byte)3);
|
||||
@@ -1254,6 +1294,12 @@
|
||||
@@ -1263,6 +1303,12 @@
|
||||
*/
|
||||
protected void fall(float par1)
|
||||
{
|
||||
|
@ -125,7 +125,7 @@
|
|||
super.fall(par1);
|
||||
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 var3 = MathHelper.floor_double(this.posZ);
|
||||
int var4 = this.worldObj.getBlockId(var1, var2, var3);
|
||||
|
@ -134,7 +134,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -1849,6 +1895,7 @@
|
||||
@@ -1874,6 +1920,7 @@
|
||||
}
|
||||
|
||||
this.isAirBorne = true;
|
||||
|
@ -142,7 +142,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -2379,8 +2426,6 @@
|
||||
@@ -2411,8 +2458,6 @@
|
||||
return this.getCreatureAttribute() == EnumCreatureAttribute.UNDEAD;
|
||||
}
|
||||
|
||||
|
@ -151,9 +151,9 @@
|
|||
/**
|
||||
* 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)
|
||||
+ {
|
||||
+ Iterator<Integer> potionKey = activePotionsMap.keySet().iterator();
|
||||
+
|
||||
+
|
||||
+ if (worldObj.isRemote)
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ while (potionKey.hasNext())
|
||||
+ {
|
||||
+ Integer key = potionKey.next();
|
||||
+ PotionEffect effect = (PotionEffect)activePotionsMap.get(key);
|
||||
+
|
||||
+
|
||||
+ if (effect.isCurativeItem(curativeItem))
|
||||
+ {
|
||||
+ potionKey.remove();
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
+ {
|
||||
+ return getCollisionHandler().getCollisionBox(this, par1Entity);
|
||||
+ }
|
||||
return par1Entity.boundingBox;
|
||||
return par1Entity.canBePushed() ? par1Entity.boundingBox : null;
|
||||
}
|
||||
|
||||
@@ -77,6 +120,10 @@
|
||||
|
@ -92,57 +92,57 @@
|
|||
}
|
||||
|
||||
public EntityMinecart(World par1World, double par2, double par4, double par6, int par8)
|
||||
@@ -134,48 +181,7 @@
|
||||
}
|
||||
@@ -140,48 +187,7 @@
|
||||
}
|
||||
|
||||
this.setDead();
|
||||
- this.dropItemWithOffset(Item.minecartEmpty.shiftedIndex, 1, 0.0F);
|
||||
this.setDead();
|
||||
- this.dropItemWithOffset(Item.minecartEmpty.shiftedIndex, 1, 0.0F);
|
||||
-
|
||||
- if (this.minecartType == 1)
|
||||
- {
|
||||
- EntityMinecart var3 = this;
|
||||
-
|
||||
- for (int var4 = 0; var4 < var3.getSizeInventory(); ++var4)
|
||||
- if (this.minecartType == 1)
|
||||
- {
|
||||
- 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;
|
||||
- float var7 = this.rand.nextFloat() * 0.8F + 0.1F;
|
||||
- float var8 = this.rand.nextFloat() * 0.8F + 0.1F;
|
||||
- ItemStack var5 = var3.getStackInSlot(var4);
|
||||
-
|
||||
- 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;
|
||||
- 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);
|
||||
- if (var9 > var5.stackSize)
|
||||
- {
|
||||
- var9 = var5.stackSize;
|
||||
- }
|
||||
-
|
||||
- var5.stackSize -= var9;
|
||||
- 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);
|
||||
- }
|
||||
- else if (this.minecartType == 2)
|
||||
- {
|
||||
- this.dropItemWithOffset(Block.stoneOvenIdle.blockID, 1, 0.0F);
|
||||
- }
|
||||
+ dropCartAsItem();
|
||||
}
|
||||
- this.dropItemWithOffset(Block.chest.blockID, 1, 0.0F);
|
||||
- }
|
||||
- else if (this.minecartType == 2)
|
||||
- {
|
||||
- this.dropItemWithOffset(Block.stoneOvenIdle.blockID, 1, 0.0F);
|
||||
- }
|
||||
+ dropCartAsItem();
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -292,7 +298,7 @@
|
||||
return true;
|
||||
@@ -299,7 +305,7 @@
|
||||
this.kill();
|
||||
}
|
||||
|
||||
|
@ -151,13 +151,14 @@
|
|||
{
|
||||
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;
|
||||
int var8 = this.worldObj.getBlockId(var1, var2, var3);
|
||||
|
||||
- if (BlockRail.isRailBlock(var8))
|
||||
+ if (canUseRail() && BlockRail.isRailBlock(var8))
|
||||
{
|
||||
this.fallDistance = 0.0F;
|
||||
Vec3 var9 = this.func_70489_a(this.posX, this.posY, this.posZ);
|
||||
- int var10 = this.worldObj.getBlockMetadata(var1, var2, var3);
|
||||
+ int var10 = ((BlockRail)Block.blocksList[var8]).getBasicRailMetadata(worldObj, this, var1, var2, var3);
|
||||
|
@ -172,7 +173,7 @@
|
|||
var12 = !var11;
|
||||
}
|
||||
|
||||
@@ -360,25 +366,7 @@
|
||||
@@ -368,25 +374,7 @@
|
||||
this.posY = (double)(var2 + 1);
|
||||
}
|
||||
|
||||
|
@ -199,7 +200,7 @@
|
|||
|
||||
int[][] var13 = field_70500_g[var10];
|
||||
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);
|
||||
|
||||
@@ -459,36 +447,8 @@
|
||||
@@ -467,36 +455,8 @@
|
||||
this.posX = var26 + var14 * var24;
|
||||
this.posZ = var28 + var16 * var24;
|
||||
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])
|
||||
{
|
||||
@@ -499,42 +459,7 @@
|
||||
@@ -507,42 +467,7 @@
|
||||
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);
|
||||
|
||||
@@ -564,30 +489,14 @@
|
||||
@@ -572,30 +497,14 @@
|
||||
|
||||
double var41;
|
||||
|
||||
|
@ -320,7 +321,7 @@
|
|||
-
|
||||
- if (var11)
|
||||
+ updatePushForces();
|
||||
+
|
||||
+
|
||||
+ if(shouldDoRailFunctions())
|
||||
+ {
|
||||
+ ((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);
|
||||
|
||||
@@ -623,41 +532,7 @@
|
||||
@@ -631,41 +540,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -373,7 +374,7 @@
|
|||
}
|
||||
|
||||
this.doBlockCollisions();
|
||||
@@ -684,7 +559,18 @@
|
||||
@@ -692,7 +567,18 @@
|
||||
}
|
||||
|
||||
this.setRotation(this.rotationYaw, this.rotationPitch);
|
||||
|
@ -393,7 +394,7 @@
|
|||
|
||||
if (var15 != null && !var15.isEmpty())
|
||||
{
|
||||
@@ -709,17 +595,8 @@
|
||||
@@ -717,17 +603,8 @@
|
||||
this.riddenByEntity = null;
|
||||
}
|
||||
|
||||
|
@ -413,7 +414,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -743,12 +620,7 @@
|
||||
@@ -751,12 +628,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -427,7 +428,7 @@
|
|||
|
||||
par3 = (double)var10;
|
||||
|
||||
@@ -794,13 +666,8 @@
|
||||
@@ -802,13 +674,8 @@
|
||||
|
||||
if (BlockRail.isRailBlock(var10))
|
||||
{
|
||||
|
@ -442,7 +443,7 @@
|
|||
|
||||
if (var11 >= 2 && var11 <= 5)
|
||||
{
|
||||
@@ -865,13 +732,14 @@
|
||||
@@ -873,13 +740,14 @@
|
||||
{
|
||||
par1NBTTagCompound.setInteger("Type", this.minecartType);
|
||||
|
||||
|
@ -461,7 +462,7 @@
|
|||
{
|
||||
NBTTagList var2 = new NBTTagList();
|
||||
|
||||
@@ -897,13 +765,21 @@
|
||||
@@ -905,13 +773,21 @@
|
||||
{
|
||||
this.minecartType = par1NBTTagCompound.getInteger("Type");
|
||||
|
||||
|
@ -487,7 +488,7 @@
|
|||
{
|
||||
NBTTagList var2 = par1NBTTagCompound.getTagList("Items");
|
||||
this.cargoItems = new ItemStack[this.getSizeInventory()];
|
||||
@@ -932,11 +808,17 @@
|
||||
@@ -940,11 +816,17 @@
|
||||
*/
|
||||
public void applyEntityCollision(Entity par1Entity)
|
||||
{
|
||||
|
@ -506,7 +507,7 @@
|
|||
{
|
||||
par1Entity.mountEntity(this);
|
||||
}
|
||||
@@ -982,7 +864,7 @@
|
||||
@@ -990,7 +872,7 @@
|
||||
double var18 = par1Entity.motionX + this.motionX;
|
||||
double var20 = par1Entity.motionZ + this.motionZ;
|
||||
|
||||
|
@ -515,7 +516,7 @@
|
|||
{
|
||||
this.motionX *= 0.20000000298023224D;
|
||||
this.motionZ *= 0.20000000298023224D;
|
||||
@@ -990,7 +872,7 @@
|
||||
@@ -998,7 +880,7 @@
|
||||
par1Entity.motionX *= 0.949999988079071D;
|
||||
par1Entity.motionZ *= 0.949999988079071D;
|
||||
}
|
||||
|
@ -524,7 +525,7 @@
|
|||
{
|
||||
par1Entity.motionX *= 0.20000000298023224D;
|
||||
par1Entity.motionZ *= 0.20000000298023224D;
|
||||
@@ -1025,7 +907,7 @@
|
||||
@@ -1033,7 +915,7 @@
|
||||
*/
|
||||
public int getSizeInventory()
|
||||
{
|
||||
|
@ -533,7 +534,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -1128,7 +1010,12 @@
|
||||
@@ -1136,7 +1018,12 @@
|
||||
*/
|
||||
public boolean interact(EntityPlayer par1EntityPlayer)
|
||||
{
|
||||
|
@ -547,7 +548,7 @@
|
|||
{
|
||||
if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer && this.riddenByEntity != par1EntityPlayer)
|
||||
{
|
||||
@@ -1140,14 +1027,14 @@
|
||||
@@ -1148,14 +1035,14 @@
|
||||
par1EntityPlayer.mountEntity(this);
|
||||
}
|
||||
}
|
||||
|
@ -564,7 +565,7 @@
|
|||
{
|
||||
ItemStack var2 = par1EntityPlayer.inventory.getCurrentItem();
|
||||
|
||||
@@ -1271,4 +1158,375 @@
|
||||
@@ -1279,4 +1166,375 @@
|
||||
{
|
||||
return this.dataWatcher.getWatchableObjectInt(18);
|
||||
}
|
||||
|
@ -590,7 +591,7 @@
|
|||
+ {
|
||||
+ List<ItemStack> items = new ArrayList<ItemStack>();
|
||||
+ items.add(new ItemStack(Item.minecartEmpty));
|
||||
+
|
||||
+
|
||||
+ switch(minecartType)
|
||||
+ {
|
||||
+ case 1:
|
||||
|
@ -624,7 +625,7 @@
|
|||
+ return minecartType == 2 && getClass() == EntityMinecart.class;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ /**
|
||||
+ * Returns true if this cart is a storage cart
|
||||
+ * Some carts may have inventories but not be storage carts
|
||||
+ * and some carts without inventories may be storage carts.
|
||||
|
@ -648,7 +649,7 @@
|
|||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ /**
|
||||
+ * Returns true if this cart can currently use rails.
|
||||
+ * This function is mainly used to gracefully detach a minecart from a rail.
|
||||
+ * @return True if the minecart can use rails.
|
||||
|
@ -668,7 +669,7 @@
|
|||
+ canUseRail = use;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ /**
|
||||
+ * Return false if this cart should not call IRail.onMinecartPass() and should ignore Powered Rails.
|
||||
+ * @return True if this cart should call IRail.onMinecartPass().
|
||||
+ */
|
||||
|
@ -713,7 +714,7 @@
|
|||
+ protected double getDrag()
|
||||
+ {
|
||||
+ return riddenByEntity != null ? defaultDragRidden : defaultDragEmpty;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Moved to allow overrides.
|
||||
|
@ -855,9 +856,9 @@
|
|||
+
|
||||
+ /**
|
||||
+ * 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;
|
||||
+ if (metadata == 2)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/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);
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
if (this.itemInUseCount <= 25 && this.itemInUseCount % 4 == 0)
|
||||
{
|
||||
this.updateItemUse(var1, 5);
|
||||
@@ -562,6 +574,9 @@
|
||||
@@ -577,6 +589,9 @@
|
||||
this.setPosition(this.posX, this.posY, this.posZ);
|
||||
this.motionY = 0.10000000149011612D;
|
||||
|
||||
|
@ -36,7 +36,7 @@
|
|||
if (this.username.equals("Notch"))
|
||||
{
|
||||
this.dropPlayerItemWithRandomChoice(new ItemStack(Item.appleRed, 1), true);
|
||||
@@ -570,6 +585,20 @@
|
||||
@@ -585,6 +600,20 @@
|
||||
if (!this.worldObj.getGameRules().getGameRuleBooleanValue("keepInventory"))
|
||||
{
|
||||
this.inventory.dropAllItems();
|
||||
|
@ -57,7 +57,7 @@
|
|||
}
|
||||
|
||||
if (par1DamageSource != null)
|
||||
@@ -609,7 +638,16 @@
|
||||
@@ -624,7 +653,16 @@
|
||||
*/
|
||||
public EntityItem dropOneItem()
|
||||
{
|
||||
|
@ -75,7 +75,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -618,7 +656,7 @@
|
||||
@@ -633,7 +671,7 @@
|
||||
*/
|
||||
public EntityItem dropPlayerItem(ItemStack par1ItemStack)
|
||||
{
|
||||
|
@ -84,7 +84,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -670,18 +708,33 @@
|
||||
@@ -685,18 +723,33 @@
|
||||
*/
|
||||
public void joinEntityItemWithWorld(EntityItem par1EntityItem)
|
||||
{
|
||||
|
@ -122,7 +122,7 @@
|
|||
{
|
||||
var2 += (float)(var3 * var3 + 1);
|
||||
}
|
||||
@@ -706,7 +759,8 @@
|
||||
@@ -721,7 +774,8 @@
|
||||
var2 /= 5.0F;
|
||||
}
|
||||
|
||||
|
@ -132,7 +132,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -714,7 +768,7 @@
|
||||
@@ -729,7 +783,7 @@
|
||||
*/
|
||||
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);
|
||||
+ if (par2 <= 0)
|
||||
|
@ -165,7 +165,7 @@
|
|||
par2 = this.applyPotionDamageCalculations(par1DamageSource, par2);
|
||||
this.addExhaustion(par1DamageSource.getHungerDamage());
|
||||
this.health -= par2;
|
||||
@@ -1039,6 +1103,10 @@
|
||||
@@ -1060,6 +1124,10 @@
|
||||
|
||||
public boolean interactWith(Entity par1Entity)
|
||||
{
|
||||
|
@ -176,7 +176,7 @@
|
|||
if (par1Entity.interact(this))
|
||||
{
|
||||
return true;
|
||||
@@ -1082,7 +1150,9 @@
|
||||
@@ -1103,7 +1171,9 @@
|
||||
*/
|
||||
public void destroyCurrentEquippedItem()
|
||||
{
|
||||
|
@ -186,7 +186,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -1099,6 +1169,15 @@
|
||||
@@ -1120,6 +1190,15 @@
|
||||
*/
|
||||
public void attackTargetEntityWithCurrentItem(Entity par1Entity)
|
||||
{
|
||||
|
@ -201,8 +201,8 @@
|
|||
+ }
|
||||
if (par1Entity.canAttackWithItem())
|
||||
{
|
||||
int var2 = this.inventory.getDamageVsEntity(par1Entity);
|
||||
@@ -1242,6 +1321,12 @@
|
||||
if (!par1Entity.func_85031_j(this))
|
||||
@@ -1266,6 +1345,12 @@
|
||||
*/
|
||||
public EnumStatus sleepInBedAt(int par1, int par2, int par3)
|
||||
{
|
||||
|
@ -215,7 +215,7 @@
|
|||
if (!this.worldObj.isRemote)
|
||||
{
|
||||
if (this.isPlayerSleeping() || !this.isEntityAlive())
|
||||
@@ -1281,6 +1366,11 @@
|
||||
@@ -1305,6 +1390,11 @@
|
||||
{
|
||||
int var9 = this.worldObj.getBlockMetadata(par1, par2, par3);
|
||||
int var5 = BlockBed.getDirection(var9);
|
||||
|
@ -227,7 +227,7 @@
|
|||
float var10 = 0.5F;
|
||||
float var7 = 0.5F;
|
||||
|
||||
@@ -1351,10 +1441,12 @@
|
||||
@@ -1375,10 +1465,12 @@
|
||||
ChunkCoordinates var4 = this.playerLocation;
|
||||
ChunkCoordinates var5 = this.playerLocation;
|
||||
|
||||
|
@ -244,7 +244,7 @@
|
|||
|
||||
if (var5 == null)
|
||||
{
|
||||
@@ -1391,7 +1483,9 @@
|
||||
@@ -1415,7 +1507,9 @@
|
||||
*/
|
||||
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);
|
||||
|
||||
- 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;
|
||||
+ 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))
|
||||
{
|
||||
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
|
||||
{
|
||||
- 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 @@
|
||||
@@ -1454,8 +1551,11 @@
|
||||
{
|
||||
if (this.playerLocation != null)
|
||||
{
|
||||
|
@ -288,7 +285,7 @@
|
|||
|
||||
switch (var2)
|
||||
{
|
||||
@@ -1747,6 +1847,7 @@
|
||||
@@ -1786,6 +1886,7 @@
|
||||
return 101;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -245,11 +244,29 @@
|
||||
@@ -253,11 +252,29 @@
|
||||
*/
|
||||
public void onDeath(DamageSource par1DamageSource)
|
||||
{
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
- }
|
||||
-
|
||||
- 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);
|
||||
|
@ -50,13 +50,13 @@
|
|||
}
|
||||
+
|
||||
+ @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();
|
||||
+ }
|
||||
+
|
||||
+ @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>();
|
||||
+ setSheared(true);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/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 */
|
||||
private String itemName;
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -603,6 +611,10 @@
|
||||
@@ -604,6 +612,10 @@
|
||||
float var18 = var15 * var16;
|
||||
float var20 = var14 * var16;
|
||||
double var21 = 5.0D;
|
||||
|
@ -37,7 +37,7 @@
|
|||
Vec3 var23 = var13.addVector((double)var18 * var21, (double)var17 * var21, (double)var20 * var21);
|
||||
return par1World.rayTraceBlocks_do_do(var13, var23, par3, !par3);
|
||||
}
|
||||
@@ -677,4 +689,265 @@
|
||||
@@ -678,4 +690,265 @@
|
||||
{
|
||||
StatList.initStats();
|
||||
}
|
||||
|
|
|
@ -18,24 +18,24 @@
|
|||
{
|
||||
if (par7 == 0)
|
||||
{
|
||||
@@ -85,14 +87,8 @@
|
||||
{
|
||||
Block var12 = Block.blocksList[this.blockID];
|
||||
@@ -87,14 +89,8 @@
|
||||
int var13 = this.getMetadata(par1ItemStack.getItemDamage());
|
||||
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)
|
||||
- {
|
||||
- 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].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);
|
||||
--par1ItemStack.stackSize;
|
||||
}
|
||||
@@ -118,7 +114,8 @@
|
||||
@@ -120,7 +116,8 @@
|
||||
{
|
||||
par5 = 1;
|
||||
}
|
||||
|
@ -45,7 +45,7 @@
|
|||
{
|
||||
if (par5 == 0)
|
||||
{
|
||||
@@ -183,4 +180,28 @@
|
||||
@@ -185,4 +182,28 @@
|
||||
{
|
||||
Block.blocksList[this.blockID].getSubBlocks(par1, par2CreativeTabs, par3List);
|
||||
}
|
||||
|
@ -53,22 +53,22 @@
|
|||
+ /**
|
||||
+ * Called to actually place the block, after the location is determined
|
||||
+ * 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 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.
|
||||
+ */
|
||||
+ 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;
|
||||
+ }
|
||||
+
|
||||
+ 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].func_85105_g(world, x, y, z, metadata);
|
||||
+ }
|
||||
+
|
||||
+ return true;
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
public class ItemDye extends Item
|
||||
{
|
||||
@@ -53,6 +58,21 @@
|
||||
@@ -54,6 +59,21 @@
|
||||
if (par1ItemStack.getItemDamage() == 15)
|
||||
{
|
||||
var11 = par3World.getBlockId(par4, par5, par6);
|
||||
|
@ -34,7 +34,7 @@
|
|||
|
||||
if (var11 == Block.sapling.blockID)
|
||||
{
|
||||
@@ -152,16 +172,9 @@
|
||||
@@ -153,16 +173,9 @@
|
||||
par3World.setBlockAndMetadataWithNotify(var13, var14, var15, Block.tallGrass.blockID, 1);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
public class NetServerHandler extends NetHandler
|
||||
{
|
||||
@@ -193,6 +199,11 @@
|
||||
@@ -182,6 +188,11 @@
|
||||
if (this.playerEntity.ridingEntity != null)
|
||||
{
|
||||
this.playerEntity.ridingEntity.updateRiderPosition();
|
||||
|
@ -25,7 +25,7 @@
|
|||
}
|
||||
|
||||
this.mcServer.getConfigurationManager().serverUpdateMountedMovingPlayer(this.playerEntity);
|
||||
@@ -285,6 +296,11 @@
|
||||
@@ -274,6 +285,11 @@
|
||||
this.playerEntity.addExhaustion(0.2F);
|
||||
}
|
||||
|
||||
|
@ -37,7 +37,7 @@
|
|||
this.playerEntity.moveEntity(var13, var15, var17);
|
||||
this.playerEntity.onGround = par1Packet10Flying.onGround;
|
||||
this.playerEntity.addMovementStat(var13, var15, var17);
|
||||
@@ -307,10 +323,15 @@
|
||||
@@ -296,10 +312,15 @@
|
||||
logger.warning(this.playerEntity.username + " moved wrongly!");
|
||||
}
|
||||
|
||||
|
@ -54,7 +54,7 @@
|
|||
{
|
||||
this.setPlayerLocation(this.lastPosX, this.lastPosY, this.lastPosZ, var11, var12);
|
||||
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);
|
||||
|
||||
|
@ -63,7 +63,7 @@
|
|||
{
|
||||
if (var29 >= -0.03125D)
|
||||
{
|
||||
@@ -337,6 +358,11 @@
|
||||
@@ -326,6 +347,11 @@
|
||||
this.ticksForFloatKick = 0;
|
||||
}
|
||||
|
||||
|
@ -75,7 +75,7 @@
|
|||
this.playerEntity.onGround = par1Packet10Flying.onGround;
|
||||
this.mcServer.getConfigurationManager().serverUpdateMountedMovingPlayer(this.playerEntity);
|
||||
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 var14 = var8 * var8 + var10 * var10 + var12 * var12;
|
||||
|
||||
|
@ -87,7 +87,7 @@
|
|||
{
|
||||
return;
|
||||
}
|
||||
@@ -419,6 +448,7 @@
|
||||
@@ -408,6 +437,7 @@
|
||||
{
|
||||
if (var20 <= this.mcServer.getSpawnProtectionSize() && !var3)
|
||||
{
|
||||
|
@ -95,7 +95,7 @@
|
|||
this.playerEntity.playerNetServerHandler.sendPacketToPlayer(new Packet53BlockChange(var5, var6, var7, var2));
|
||||
}
|
||||
else
|
||||
@@ -477,7 +507,11 @@
|
||||
@@ -466,7 +496,11 @@
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -108,7 +108,7 @@
|
|||
}
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -119,7 +119,7 @@
|
|||
{
|
||||
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."));
|
||||
return;
|
||||
}
|
||||
|
@ -134,7 +134,7 @@
|
|||
logger.info(var2);
|
||||
this.mcServer.getConfigurationManager().sendPacketToAllPlayers(new Packet3Chat(var2, false));
|
||||
}
|
||||
@@ -794,7 +834,7 @@
|
||||
@@ -783,7 +823,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
public abstract class ServerConfigurationManager
|
||||
{
|
||||
@@ -304,6 +305,12 @@
|
||||
@@ -298,6 +299,12 @@
|
||||
*/
|
||||
public EntityPlayerMP respawnPlayer(EntityPlayerMP par1EntityPlayerMP, int par2, boolean par3)
|
||||
{
|
||||
|
@ -21,7 +21,7 @@
|
|||
par1EntityPlayerMP.getServerForPlayer().getEntityTracker().removeAllTrackingPlayers(par1EntityPlayerMP);
|
||||
par1EntityPlayerMP.getServerForPlayer().getEntityTracker().removeEntityFromAllTrackingPlayers(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);
|
||||
var7.playerNetServerHandler = par1EntityPlayerMP.playerNetServerHandler;
|
||||
var7.clonePlayer(par1EntityPlayerMP, par3);
|
||||
|
@ -29,11 +29,11 @@
|
|||
var7.entityId = par1EntityPlayerMP.entityId;
|
||||
WorldServer var8 = this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension);
|
||||
this.func_72381_a(var7, par1EntityPlayerMP, var8);
|
||||
@@ -369,6 +377,11 @@
|
||||
@@ -363,14 +371,20 @@
|
||||
|
||||
public void transferPlayerToDimension(EntityPlayerMP par1EntityPlayerMP, int par2)
|
||||
{
|
||||
+ transferPlayerToDimension(par1EntityPlayerMP, par2, new Teleporter());
|
||||
+ transferPlayerToDimension(par1EntityPlayerMP, par2, mcServer.worldServerForDimension(par2).func_85176_s());
|
||||
+ }
|
||||
+
|
||||
+ public void transferPlayerToDimension(EntityPlayerMP par1EntityPlayerMP, int par2, Teleporter teleporter)
|
||||
|
@ -41,7 +41,8 @@
|
|||
int var3 = par1EntityPlayerMP.dimension;
|
||||
WorldServer var4 = this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension);
|
||||
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()));
|
||||
var4.removeEntity(par1EntityPlayerMP);
|
||||
par1EntityPlayerMP.isDead = false;
|
||||
|
@ -50,14 +51,14 @@
|
|||
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 @@
|
||||
@@ -391,38 +405,23 @@
|
||||
*/
|
||||
public void transferEntityToWorld(Entity par1Entity, int par2, WorldServer par3WorldServer, WorldServer par4WorldServer)
|
||||
{
|
||||
- double var5 = par1Entity.posX;
|
||||
- double var7 = par1Entity.posZ;
|
||||
- double var9 = 8.0D;
|
||||
+ transferEntityToWorld(par1Entity, par2, par3WorldServer, par4WorldServer, new Teleporter());
|
||||
+ transferEntityToWorld(par1Entity, par2, par3WorldServer, par4WorldServer, par4WorldServer.func_85176_s());
|
||||
+ }
|
||||
+
|
||||
+ public void transferEntityToWorld(Entity par1Entity, int par2, WorldServer par3WorldServer, WorldServer par4WorldServer, Teleporter teleporter)
|
||||
|
@ -71,6 +72,7 @@
|
|||
double var13 = par1Entity.posY;
|
||||
double var15 = par1Entity.posZ;
|
||||
float var17 = par1Entity.rotationYaw;
|
||||
par3WorldServer.theProfiler.startSection("moving");
|
||||
|
||||
- if (par1Entity.dimension == -1)
|
||||
- {
|
||||
|
@ -99,12 +101,12 @@
|
|||
{
|
||||
ChunkCoordinates var18;
|
||||
|
||||
@@ -461,7 +459,7 @@
|
||||
@@ -459,7 +458,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);
|
||||
- par4WorldServer.func_85176_s().placeInPortal(par1Entity, var11, var13, var15, var17);
|
||||
+ teleporter.placeInPortal(par1Entity, var11, var13, var15, var17);
|
||||
}
|
||||
}
|
||||
|
||||
par3WorldServer.theProfiler.endSection();
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/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(TileEntitySkull.class, "Skull");
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
+ * of one of there entities.
|
||||
+ */
|
||||
+ public static double MAX_ENTITY_RADIUS = 2.0D;
|
||||
+
|
||||
+
|
||||
+ public final MapStorage perWorldStorage;
|
||||
+
|
||||
/**
|
||||
|
@ -76,7 +76,7 @@
|
|||
this.worldInfo = par1ISaveHandler.loadWorldInfo();
|
||||
|
||||
if (par4WorldProvider != null)
|
||||
@@ -231,12 +264,20 @@
|
||||
@@ -250,12 +283,20 @@
|
||||
this.worldInfo.setServerInitialized(true);
|
||||
}
|
||||
|
||||
|
@ -99,10 +99,12 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@@ -248,6 +289,19 @@
|
||||
this.calculateInitialWeather();
|
||||
}
|
||||
@@ -265,6 +306,19 @@
|
||||
|
||||
this.calculateInitialSkylight();
|
||||
this.calculateInitialWeather();
|
||||
+ }
|
||||
+
|
||||
+ private static MapStorage s_mapStorage;
|
||||
+ 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
|
||||
|
@ -114,12 +116,10 @@
|
|||
+ s_savehandler = savehandler;
|
||||
+ }
|
||||
+ return s_mapStorage;
|
||||
+ }
|
||||
+
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the chunk provider for this world. Called in the constructor. Retrieves provider from worldProvider?
|
||||
*/
|
||||
@@ -302,7 +356,8 @@
|
||||
@@ -353,7 +407,8 @@
|
||||
*/
|
||||
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)
|
||||
{
|
||||
int var4 = this.getBlockId(par1, par2, par3);
|
||||
|
@ -138,8 +138,8 @@
|
|||
+ return Block.blocksList[var4] != null && Block.blocksList[var4].hasTileEntity(meta);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1033,7 +1089,7 @@
|
||||
public int func_85175_e(int par1, int par2, int par3)
|
||||
@@ -1113,7 +1169,7 @@
|
||||
*/
|
||||
public boolean isDaytime()
|
||||
{
|
||||
|
@ -148,7 +148,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -1065,7 +1121,7 @@
|
||||
@@ -1145,7 +1201,7 @@
|
||||
int var12 = this.getBlockMetadata(var8, var9, var10);
|
||||
Block var13 = Block.blocksList[var11];
|
||||
|
||||
|
@ -157,7 +157,7 @@
|
|||
{
|
||||
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)
|
||||
{
|
||||
|
@ -170,7 +170,7 @@
|
|||
if (par1Entity != null && par2Str != null)
|
||||
{
|
||||
Iterator var5 = this.worldAccesses.iterator();
|
||||
@@ -1363,6 +1425,11 @@
|
||||
@@ -1457,6 +1519,11 @@
|
||||
EntityPlayer var5 = (EntityPlayer)par1Entity;
|
||||
this.playerEntities.add(var5);
|
||||
this.updateAllPlayersSleepingFlag();
|
||||
|
@ -182,7 +182,7 @@
|
|||
}
|
||||
|
||||
this.getChunkFromChunkCoords(var2, var3).addEntity(par1Entity);
|
||||
@@ -1614,6 +1681,12 @@
|
||||
@@ -1708,6 +1775,12 @@
|
||||
* Calculates the color for the skybox
|
||||
*/
|
||||
public Vec3 getSkyColor(Entity par1Entity, float par2)
|
||||
|
@ -195,7 +195,7 @@
|
|||
{
|
||||
float var3 = this.getCelestialAngle(par2);
|
||||
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)
|
||||
public Vec3 drawClouds(float par1)
|
||||
{
|
||||
|
@ -208,7 +208,7 @@
|
|||
float var2 = this.getCelestialAngle(par1);
|
||||
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);
|
||||
|
||||
|
@ -217,7 +217,7 @@
|
|||
{
|
||||
return var4 + 1;
|
||||
}
|
||||
@@ -1802,6 +1881,12 @@
|
||||
@@ -1896,6 +1975,12 @@
|
||||
* How bright are stars in the sky
|
||||
*/
|
||||
public float getStarBrightness(float par1)
|
||||
|
@ -230,16 +230,16 @@
|
|||
{
|
||||
float var2 = this.getCelestialAngle(par1);
|
||||
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);
|
||||
+ var8.cleanChunkBlockTileEntity(var6.xCoord & 15, var6.yCoord, var6.zCoord & 15);
|
||||
- var12.removeChunkBlockTileEntity(var10.xCoord & 15, var10.yCoord, var10.zCoord & 15);
|
||||
+ var12.cleanChunkBlockTileEntity(var10.xCoord & 15, var10.yCoord, var10.zCoord & 15);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1957,6 +2042,10 @@
|
||||
@@ -2109,6 +2194,10 @@
|
||||
|
||||
if (!this.entityRemoval.isEmpty())
|
||||
{
|
||||
|
@ -250,27 +250,27 @@
|
|||
this.loadedTileEntityList.removeAll(this.entityRemoval);
|
||||
this.entityRemoval.clear();
|
||||
}
|
||||
@@ -1977,7 +2066,9 @@
|
||||
@@ -2129,7 +2218,9 @@
|
||||
{
|
||||
this.loadedTileEntityList.add(var9);
|
||||
this.loadedTileEntityList.add(var13);
|
||||
}
|
||||
-
|
||||
+ }
|
||||
+ 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);
|
||||
@@ -1987,8 +2078,6 @@
|
||||
var10.setChunkBlockTileEntity(var9.xCoord & 15, var9.yCoord, var9.zCoord & 15, var9);
|
||||
Chunk var15 = this.getChunkFromChunkCoords(var13.xCoord >> 4, var13.zCoord >> 4);
|
||||
@@ -2139,8 +2230,6 @@
|
||||
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)
|
||||
{
|
||||
|
@ -291,7 +291,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -2027,9 +2116,17 @@
|
||||
@@ -2179,9 +2268,17 @@
|
||||
{
|
||||
int var3 = MathHelper.floor_double(par1Entity.posX);
|
||||
int var4 = MathHelper.floor_double(par1Entity.posZ);
|
||||
|
@ -312,7 +312,7 @@
|
|||
{
|
||||
par1Entity.lastTickPosX = par1Entity.posX;
|
||||
par1Entity.lastTickPosY = par1Entity.posY;
|
||||
@@ -2264,6 +2361,14 @@
|
||||
@@ -2416,6 +2513,14 @@
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
@ -368,7 +368,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -2598,27 +2699,10 @@
|
||||
@@ -2750,27 +2851,10 @@
|
||||
*/
|
||||
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)
|
||||
{
|
||||
|
@ -409,8 +409,8 @@
|
|||
+ return block != null && block.isBlockNormalCube(this, par1, par2, par3);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2652,8 +2737,7 @@
|
||||
public boolean func_85174_u(int par1, int par2, int par3)
|
||||
@@ -2819,8 +2904,7 @@
|
||||
*/
|
||||
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())
|
||||
{
|
||||
Block var6 = Block.blocksList[this.getBlockId(par1, par2, par3)];
|
||||
|
@ -429,7 +429,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@@ -2700,8 +2784,7 @@
|
||||
@@ -2867,8 +2951,7 @@
|
||||
*/
|
||||
public void setAllowedSpawnTypes(boolean par1, boolean par2)
|
||||
{
|
||||
|
@ -439,7 +439,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -2717,6 +2800,11 @@
|
||||
@@ -2884,6 +2967,11 @@
|
||||
*/
|
||||
private void calculateInitialWeather()
|
||||
{
|
||||
|
@ -451,7 +451,7 @@
|
|||
if (this.worldInfo.isRaining())
|
||||
{
|
||||
this.rainingStrength = 1.0F;
|
||||
@@ -2732,6 +2820,11 @@
|
||||
@@ -2899,6 +2987,11 @@
|
||||
* Updates all weather states.
|
||||
*/
|
||||
protected void updateWeather()
|
||||
|
@ -463,7 +463,7 @@
|
|||
{
|
||||
if (!this.provider.hasNoSky)
|
||||
{
|
||||
@@ -2834,12 +2927,14 @@
|
||||
@@ -3001,12 +3094,14 @@
|
||||
|
||||
public void toggleRain()
|
||||
{
|
||||
|
@ -479,7 +479,7 @@
|
|||
this.theProfiler.startSection("buildList");
|
||||
int var1;
|
||||
EntityPlayer var2;
|
||||
@@ -2946,6 +3041,11 @@
|
||||
@@ -3113,6 +3208,11 @@
|
||||
*/
|
||||
public boolean canBlockFreeze(int par1, int par2, int par3, boolean par4)
|
||||
{
|
||||
|
@ -491,7 +491,7 @@
|
|||
BiomeGenBase var5 = this.getBiomeGenForCoords(par1, par3);
|
||||
float var6 = var5.getFloatTemperature();
|
||||
|
||||
@@ -3003,6 +3103,11 @@
|
||||
@@ -3170,6 +3270,11 @@
|
||||
* Tests whether or not snow can be placed at a given location
|
||||
*/
|
||||
public boolean canSnowAt(int par1, int par2, int par3)
|
||||
|
@ -503,7 +503,7 @@
|
|||
{
|
||||
BiomeGenBase var4 = this.getBiomeGenForCoords(par1, par3);
|
||||
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)
|
||||
{
|
||||
|
@ -512,7 +512,7 @@
|
|||
int var8 = 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;
|
||||
@@ -3231,7 +3336,7 @@
|
||||
@@ -3398,7 +3503,7 @@
|
||||
int var21 = var24 + (var18 / 2 + 1) % 3 / 2 * var19;
|
||||
int var22 = var12 + (var18 / 2 + 2) % 3 / 2 * var19;
|
||||
var14 = this.getSavedLightValue(par1EnumSkyBlock, var20, var21, var22);
|
||||
|
@ -521,7 +521,7 @@
|
|||
|
||||
if (var23 == 0)
|
||||
{
|
||||
@@ -3262,7 +3367,7 @@
|
||||
@@ -3429,7 +3534,7 @@
|
||||
var12 = (var9 >> 12 & 63) - 32 + par4;
|
||||
var13 = this.getSavedLightValue(par1EnumSkyBlock, var10, var24, var12);
|
||||
var14 = this.getBlockId(var10, var24, var12);
|
||||
|
@ -530,7 +530,7 @@
|
|||
|
||||
if (var15 == 0)
|
||||
{
|
||||
@@ -3364,10 +3469,10 @@
|
||||
@@ -3531,10 +3636,10 @@
|
||||
public List getEntitiesWithinAABBExcludingEntity(Entity par1Entity, AxisAlignedBB par2AxisAlignedBB)
|
||||
{
|
||||
this.entitiesWithinAABBExcludingEntity.clear();
|
||||
|
@ -545,7 +545,7 @@
|
|||
|
||||
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)
|
||||
{
|
||||
|
@ -560,7 +560,7 @@
|
|||
ArrayList var8 = new ArrayList();
|
||||
|
||||
for (int var9 = var4; var9 <= var5; ++var9)
|
||||
@@ -3490,11 +3595,14 @@
|
||||
@@ -3657,11 +3762,14 @@
|
||||
*/
|
||||
public void addLoadedEntities(List par1List)
|
||||
{
|
||||
|
@ -578,7 +578,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -3528,6 +3636,11 @@
|
||||
@@ -3695,6 +3803,11 @@
|
||||
else
|
||||
{
|
||||
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;
|
||||
}
|
||||
@@ -3745,7 +3858,7 @@
|
||||
@@ -3912,7 +4025,7 @@
|
||||
*/
|
||||
public long getSeed()
|
||||
{
|
||||
|
@ -599,7 +599,7 @@
|
|||
}
|
||||
|
||||
public long getTotalWorldTime()
|
||||
@@ -3755,7 +3868,7 @@
|
||||
@@ -3922,7 +4035,7 @@
|
||||
|
||||
public long getWorldTime()
|
||||
{
|
||||
|
@ -608,7 +608,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -3763,7 +3876,7 @@
|
||||
@@ -3930,7 +4043,7 @@
|
||||
*/
|
||||
public void setWorldTime(long par1)
|
||||
{
|
||||
|
@ -617,7 +617,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -3771,13 +3884,13 @@
|
||||
@@ -3938,13 +4051,13 @@
|
||||
*/
|
||||
public ChunkCoordinates getSpawnPoint()
|
||||
{
|
||||
|
@ -633,7 +633,7 @@
|
|||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@@ -3801,7 +3914,10 @@
|
||||
@@ -3968,7 +4081,10 @@
|
||||
|
||||
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.
|
||||
*/
|
||||
public boolean canMineBlock(EntityPlayer par1EntityPlayer, int par2, int par3, int par4)
|
||||
|
@ -657,7 +657,7 @@
|
|||
{
|
||||
return true;
|
||||
}
|
||||
@@ -3929,8 +4050,7 @@
|
||||
@@ -4096,8 +4217,7 @@
|
||||
*/
|
||||
public boolean isBlockHighHumidity(int par1, int par2, int par3)
|
||||
{
|
||||
|
@ -667,7 +667,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -3992,7 +4112,7 @@
|
||||
@@ -4159,7 +4279,7 @@
|
||||
*/
|
||||
public int getHeight()
|
||||
{
|
||||
|
@ -676,7 +676,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -4000,7 +4120,7 @@
|
||||
@@ -4167,7 +4287,7 @@
|
||||
*/
|
||||
public int getActualHeight()
|
||||
{
|
||||
|
@ -685,7 +685,7 @@
|
|||
}
|
||||
|
||||
public IUpdatePlayerListBox func_82735_a(EntityMinecart par1EntityMinecart)
|
||||
@@ -4043,7 +4163,7 @@
|
||||
@@ -4210,7 +4330,7 @@
|
||||
*/
|
||||
public double getHorizon()
|
||||
{
|
||||
|
@ -694,8 +694,8 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -4088,4 +4208,75 @@
|
||||
this.theCalendar.setTimeInMillis(System.currentTimeMillis());
|
||||
@@ -4270,4 +4390,75 @@
|
||||
|
||||
return this.theCalendar;
|
||||
}
|
||||
+
|
||||
|
|
|
@ -30,12 +30,3 @@
|
|||
}
|
||||
|
||||
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;
|
||||
|
|
|
@ -7,10 +7,10 @@
|
|||
- if (var12 != 0 && var12 != Block.leaves.blockID && var12 != Block.grass.blockID && var12 != Block.dirt.blockID && var12 != Block.wood.blockID)
|
||||
+ Block block = Block.blocksList[var12];
|
||||
+
|
||||
+ if (var12 != 0 &&
|
||||
+ !block.isLeaves(par1World, var10, var8, var11) &&
|
||||
+ var12 != Block.grass.blockID &&
|
||||
+ var12 != Block.dirt.blockID &&
|
||||
+ if (var12 != 0 &&
|
||||
+ !block.isLeaves(par1World, var10, var8, var11) &&
|
||||
+ var12 != Block.grass.blockID &&
|
||||
+ var12 != Block.dirt.blockID &&
|
||||
+ !block.isWood(par1World, var10, var8, var11))
|
||||
{
|
||||
var7 = false;
|
||||
|
@ -19,10 +19,10 @@
|
|||
{
|
||||
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)];
|
||||
+
|
||||
+ 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)))
|
||||
{
|
||||
this.setBlockAndMetadata(par1World, var14, var11, var16, Block.leaves.blockID, this.metaLeaves);
|
||||
|
|
|
@ -21,25 +21,37 @@
|
|||
|
||||
public class WorldServer extends World
|
||||
{
|
||||
@@ -44,6 +51,9 @@
|
||||
@@ -45,6 +52,10 @@
|
||||
/** An IntHashMap of entity IDs (integers) to their Entity objects. */
|
||||
private IntHashMap entityIdMap;
|
||||
|
||||
+ /** Stores the recently processed (lighting) chunks */
|
||||
+ protected Set<ChunkCoordIntPair> doneChunks = new HashSet<ChunkCoordIntPair>();
|
||||
+ public List<Teleporter> customTeleporters = new ArrayList<Teleporter>();
|
||||
+
|
||||
public WorldServer(MinecraftServer par1MinecraftServer, ISaveHandler par2ISaveHandler, String par3Str, int par4, WorldSettings par5WorldSettings, Profiler par6Profiler)
|
||||
{
|
||||
super(par2ISaveHandler, par3Str, par5WorldSettings, WorldProvider.getProviderForDimension(par4), par6Profiler);
|
||||
@@ -65,6 +75,7 @@
|
||||
{
|
||||
this.pendingTickListEntries = new TreeSet();
|
||||
@@ -68,6 +79,7 @@
|
||||
}
|
||||
|
||||
this.field_85177_Q = new Teleporter(this);
|
||||
+ DimensionManager.setWorld(par4, this);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -179,10 +190,7 @@
|
||||
@@ -131,6 +143,10 @@
|
||||
this.villageSiegeObj.tick();
|
||||
this.theProfiler.endStartSection("portalForcer");
|
||||
this.field_85177_Q.func_85189_a(this.getTotalWorldTime());
|
||||
+ for (Teleporter tele : customTeleporters)
|
||||
+ {
|
||||
+ tele.func_85189_a(getTotalWorldTime());
|
||||
+ }
|
||||
this.theProfiler.endSection();
|
||||
this.sendAndApplyBlockEvents();
|
||||
}
|
||||
@@ -184,10 +200,7 @@
|
||||
|
||||
private void resetRainAndThunder()
|
||||
{
|
||||
|
@ -51,7 +63,7 @@
|
|||
}
|
||||
|
||||
public boolean areAllPlayersAsleep()
|
||||
@@ -253,6 +261,14 @@
|
||||
@@ -258,6 +271,14 @@
|
||||
int var1 = 0;
|
||||
int var2 = 0;
|
||||
Iterator var3 = this.activeChunkSet.iterator();
|
||||
|
@ -66,7 +78,7 @@
|
|||
|
||||
while (var3.hasNext())
|
||||
{
|
||||
@@ -263,14 +279,16 @@
|
||||
@@ -268,14 +289,16 @@
|
||||
Chunk var7 = this.getChunkFromChunkCoords(var4.chunkXPos, var4.chunkZPos);
|
||||
this.moodSoundAndLightCheck(var5, var6, var7);
|
||||
this.theProfiler.endStartSection("tickChunk");
|
||||
|
@ -85,7 +97,7 @@
|
|||
{
|
||||
this.updateLCG = this.updateLCG * 3 + 1013904223;
|
||||
var8 = this.updateLCG >> 2;
|
||||
@@ -288,7 +306,7 @@
|
||||
@@ -293,7 +316,7 @@
|
||||
this.theProfiler.endStartSection("iceandsnow");
|
||||
int var13;
|
||||
|
||||
|
@ -94,7 +106,7 @@
|
|||
{
|
||||
this.updateLCG = this.updateLCG * 3 + 1013904223;
|
||||
var8 = this.updateLCG >> 2;
|
||||
@@ -367,7 +385,8 @@
|
||||
@@ -372,7 +395,8 @@
|
||||
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);
|
||||
|
@ -104,7 +116,7 @@
|
|||
|
||||
if (this.scheduledUpdatesAreImmediate && par4 > 0)
|
||||
{
|
||||
@@ -429,7 +448,7 @@
|
||||
@@ -434,7 +458,7 @@
|
||||
*/
|
||||
public void updateEntities()
|
||||
{
|
||||
|
@ -113,7 +125,7 @@
|
|||
{
|
||||
if (this.updateEntityTick++ >= 1200)
|
||||
{
|
||||
@@ -478,7 +497,8 @@
|
||||
@@ -483,7 +507,8 @@
|
||||
|
||||
this.pendingTickListEntries.remove(var4);
|
||||
this.field_73064_N.remove(var4);
|
||||
|
@ -123,7 +135,7 @@
|
|||
|
||||
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 +626,27 @@
|
||||
public List getAllTileEntityInBox(int par1, int par2, int par3, int par4, int par5, int par6)
|
||||
{
|
||||
ArrayList var7 = new ArrayList();
|
||||
|
@ -160,7 +172,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -594,6 +626,11 @@
|
||||
@@ -620,6 +657,11 @@
|
||||
* 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)
|
||||
|
@ -172,7 +184,7 @@
|
|||
{
|
||||
int var5 = MathHelper.abs_int(par2 - this.worldInfo.getSpawnX());
|
||||
int var6 = MathHelper.abs_int(par4 - this.worldInfo.getSpawnZ());
|
||||
@@ -603,7 +640,7 @@
|
||||
@@ -629,7 +671,7 @@
|
||||
var6 = var5;
|
||||
}
|
||||
|
||||
|
@ -181,7 +193,7 @@
|
|||
}
|
||||
|
||||
protected void initialize(WorldSettings par1WorldSettings)
|
||||
@@ -686,7 +723,7 @@
|
||||
@@ -712,7 +754,7 @@
|
||||
*/
|
||||
protected void createBonusChest()
|
||||
{
|
||||
|
@ -190,7 +202,7 @@
|
|||
|
||||
for (int var2 = 0; var2 < 10; ++var2)
|
||||
{
|
||||
@@ -729,6 +766,7 @@
|
||||
@@ -755,6 +797,7 @@
|
||||
}
|
||||
|
||||
this.chunkProvider.saveChunks(par1, par2IProgressUpdate);
|
||||
|
@ -198,7 +210,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -740,6 +778,7 @@
|
||||
@@ -766,6 +809,7 @@
|
||||
this.checkSessionLock();
|
||||
this.saveHandler.saveWorldInfoWithPlayer(this.worldInfo, this.mcServer.getConfigurationManager().getTagsFromLastWrite());
|
||||
this.mapStorage.saveAllData();
|
||||
|
@ -206,9 +218,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -965,4 +1004,9 @@
|
||||
@@ -996,4 +1040,9 @@
|
||||
{
|
||||
return this.thePlayerManager;
|
||||
return this.field_85177_Q;
|
||||
}
|
||||
+
|
||||
+ public File getChunkSaveLocation()
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/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;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/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.WorldRenderer;
|
||||
import net.minecraft.src.WorldSettings;
|
||||
|
@ -10,7 +10,7 @@
|
|||
|
||||
import org.lwjgl.LWJGLException;
|
||||
import org.lwjgl.Sys;
|
||||
@@ -1252,7 +1255,7 @@
|
||||
@@ -1253,7 +1256,7 @@
|
||||
|
||||
if (this.thePlayer.canCurrentToolHarvestBlock(var3, var4, var5))
|
||||
{
|
||||
|
@ -19,7 +19,7 @@
|
|||
this.thePlayer.swingItem();
|
||||
}
|
||||
}
|
||||
@@ -1318,7 +1321,8 @@
|
||||
@@ -1319,7 +1322,8 @@
|
||||
{
|
||||
int var8 = var3 != null ? var3.stackSize : 0;
|
||||
|
||||
|
@ -29,7 +29,7 @@
|
|||
{
|
||||
var2 = false;
|
||||
this.thePlayer.swingItem();
|
||||
@@ -1344,7 +1348,8 @@
|
||||
@@ -1345,7 +1349,8 @@
|
||||
{
|
||||
ItemStack var9 = this.thePlayer.inventory.getCurrentItem();
|
||||
|
||||
|
@ -39,7 +39,7 @@
|
|||
{
|
||||
this.entityRenderer.itemRenderer.func_78445_c();
|
||||
}
|
||||
@@ -1959,6 +1964,18 @@
|
||||
@@ -1985,6 +1990,18 @@
|
||||
if (this.theIntegratedServer != null)
|
||||
{
|
||||
this.theIntegratedServer.initiateShutdown();
|
||||
|
@ -58,7 +58,7 @@
|
|||
}
|
||||
|
||||
this.theIntegratedServer = null;
|
||||
@@ -2268,95 +2285,12 @@
|
||||
@@ -2294,95 +2311,12 @@
|
||||
if (this.objectMouseOver != null)
|
||||
{
|
||||
boolean var1 = this.thePlayer.capabilities.isCreativeMode;
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
@@ -105,12 +132,34 @@
|
||||
@@ -107,6 +134,7 @@
|
||||
for (int var11 = 0; var11 < this.fxLayers[var8].size(); ++var11)
|
||||
{
|
||||
EntityFX var12 = (EntityFX)this.fxLayers[var8].get(var11);
|
||||
|
@ -68,8 +68,9 @@
|
|||
var10.setBrightness(var12.getBrightnessForRender(par2));
|
||||
var12.renderParticle(var10, par2, var3, var7, var4, var5, var6);
|
||||
}
|
||||
|
||||
@@ -114,6 +142,27 @@
|
||||
var10.draw();
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
}
|
||||
+ }
|
||||
+
|
||||
|
@ -82,20 +83,20 @@
|
|||
+ Tessellator tessallator = Tessellator.instance;
|
||||
+ //GL11.glBindTexture(GL11.GL_TEXTURE_2D, renderer.getTexture(key));
|
||||
+ tessallator.startDrawingQuads();
|
||||
+
|
||||
+
|
||||
+ if (entry.getFXLayer() != 3)
|
||||
+ {
|
||||
+ tessallator.setBrightness(entry.getBrightnessForRender(par2));
|
||||
+ entry.renderParticle(tessallator, par2, var3, var7, var4, var5, var6);
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ tessallator.draw();
|
||||
+ }
|
||||
+ ForgeHooksClient.unbindTexture();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,6 +179,7 @@
|
||||
@@ -133,6 +182,7 @@
|
||||
for (int var11 = 0; var11 < this.fxLayers[var9].size(); ++var11)
|
||||
{
|
||||
EntityFX var12 = (EntityFX)this.fxLayers[var9].get(var11);
|
||||
|
@ -103,7 +104,7 @@
|
|||
var10.setBrightness(var12.getBrightnessForRender(par2));
|
||||
var12.renderParticle(var10, par2, var4, var8, var5, var6, var7);
|
||||
}
|
||||
@@ -144,13 +194,15 @@
|
||||
@@ -147,13 +197,15 @@
|
||||
{
|
||||
this.fxLayers[var2].clear();
|
||||
}
|
||||
|
@ -122,7 +123,7 @@
|
|||
byte var7 = 4;
|
||||
|
||||
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 var15 = (double)par3 + ((double)var10 + 0.5D) / (double)var7;
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -180,7 +181,7 @@
|
|||
+ else if (effect.getFXLayer() == 2)
|
||||
+ {
|
||||
+ texture = "/gui/items.png";
|
||||
+ }
|
||||
+ }
|
||||
+ texture = ForgeHooks.getTexture(texture, obj);
|
||||
+ effectList.put(texture, effect);
|
||||
+ }
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@@ -322,7 +332,7 @@
|
||||
@@ -327,7 +337,7 @@
|
||||
{
|
||||
CreativeTabs var3 = CreativeTabs.creativeTabArray[selectedTabIndex];
|
||||
|
||||
|
@ -33,7 +33,7 @@
|
|||
{
|
||||
this.fontRenderer.drawString(var3.getTranslatedTabLabel(), 8, 6, 4210752);
|
||||
}
|
||||
@@ -344,7 +354,7 @@
|
||||
@@ -349,7 +359,7 @@
|
||||
{
|
||||
CreativeTabs var9 = var6[var8];
|
||||
|
||||
|
@ -42,7 +42,7 @@
|
|||
{
|
||||
this.func_74227_b(var9);
|
||||
return;
|
||||
@@ -360,11 +370,17 @@
|
||||
@@ -365,11 +375,17 @@
|
||||
*/
|
||||
private boolean needsScrollBars()
|
||||
{
|
||||
|
@ -60,7 +60,7 @@
|
|||
int var2 = selectedTabIndex;
|
||||
selectedTabIndex = par1CreativeTabs.getTabIndex();
|
||||
ContainerCreative var3 = (ContainerCreative)this.inventorySlots;
|
||||
@@ -534,21 +550,42 @@
|
||||
@@ -539,21 +555,42 @@
|
||||
|
||||
super.drawScreen(par1, par2, par3);
|
||||
CreativeTabs[] var11 = CreativeTabs.creativeTabArray;
|
||||
|
@ -108,7 +108,7 @@
|
|||
}
|
||||
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
@@ -569,14 +606,32 @@
|
||||
@@ -574,14 +611,32 @@
|
||||
int var8 = var7.length;
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -158,7 +158,7 @@
|
|||
this.renderCreativeTab(var5);
|
||||
|
||||
if (var5 == CreativeTabs.tabInventory)
|
||||
@@ -604,6 +667,15 @@
|
||||
@@ -609,6 +672,15 @@
|
||||
|
||||
protected boolean func_74232_a(CreativeTabs par1CreativeTabs, int par2, int par3)
|
||||
{
|
||||
|
@ -174,7 +174,7 @@
|
|||
int var4 = par1CreativeTabs.getTabColumn();
|
||||
int var5 = 28 * var4;
|
||||
byte var6 = 0;
|
||||
@@ -718,7 +790,7 @@
|
||||
@@ -723,7 +795,7 @@
|
||||
var8 += 8 + (var3 ? 1 : -1);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
|
||||
|
@ -183,7 +183,7 @@
|
|||
itemRenderer.renderItemAndEffectIntoGUI(this.fontRenderer, this.mc.renderEngine, var10, var7, var8);
|
||||
itemRenderer.renderItemOverlayIntoGUI(this.fontRenderer, this.mc.renderEngine, var10, var7, var8);
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
@@ -740,6 +812,15 @@
|
||||
@@ -745,6 +817,15 @@
|
||||
{
|
||||
this.mc.displayGuiScreen(new GuiStats(this, this.mc.statFileWriter));
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
--- ../src_base/minecraft/net/minecraft/src/ModelBase.java
|
||||
+++ ../src_work/minecraft/net/minecraft/src/ModelBase.java
|
||||
@@ -7,7 +7,6 @@
|
||||
import java.util.List;
|
||||
@@ -8,7 +8,6 @@
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
-@SideOnly(Side.CLIENT)
|
||||
public abstract class ModelBase
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
}
|
||||
|
||||
public void handleAnimation(Packet18Animation par1Packet18Animation)
|
||||
@@ -1056,6 +1065,10 @@
|
||||
@@ -1065,6 +1074,10 @@
|
||||
{
|
||||
var2.readFromNBT(par1Packet132TileEntityData.customParam1);
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class PlayerControllerMP
|
||||
@@ -104,6 +107,12 @@
|
||||
@@ -105,6 +108,12 @@
|
||||
*/
|
||||
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))
|
||||
{
|
||||
return false;
|
||||
@@ -121,7 +130,7 @@
|
||||
@@ -122,7 +131,7 @@
|
||||
{
|
||||
var5.playAuxSFX(2001, par1, par2, par3, var6.blockID + (var5.getBlockMetadata(par1, par2, par3) << 12));
|
||||
int var7 = var5.getBlockMetadata(par1, par2, par3);
|
||||
|
@ -32,7 +32,7 @@
|
|||
|
||||
if (var8)
|
||||
{
|
||||
@@ -309,6 +318,12 @@
|
||||
@@ -318,6 +327,12 @@
|
||||
float var11 = (float)par8Vec3.zCoord - (float)par6;
|
||||
boolean var12 = false;
|
||||
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))
|
||||
{
|
||||
@@ -346,7 +361,15 @@
|
||||
@@ -355,7 +370,15 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -62,7 +62,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -368,9 +391,10 @@
|
||||
@@ -377,9 +400,10 @@
|
||||
{
|
||||
par1EntityPlayer.inventory.mainInventory[par1EntityPlayer.inventory.currentItem] = var5;
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL12;
|
||||
|
||||
@@ -556,9 +558,8 @@
|
||||
@@ -558,9 +560,8 @@
|
||||
public boolean renderBlockBed(Block par1Block, int par2, int par3, int par4)
|
||||
{
|
||||
Tessellator var5 = Tessellator.instance;
|
||||
|
@ -21,7 +21,7 @@
|
|||
float var9 = 0.5F;
|
||||
float var10 = 1.0F;
|
||||
float var11 = 0.8F;
|
||||
@@ -567,6 +568,7 @@
|
||||
@@ -569,6 +570,7 @@
|
||||
var5.setBrightness(var25);
|
||||
var5.setColorOpaque_F(var9, var9, var9);
|
||||
int var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 0);
|
||||
|
@ -29,7 +29,7 @@
|
|||
int var28 = (var27 & 15) << 4;
|
||||
int var29 = var27 & 240;
|
||||
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.setColorOpaque_F(var10, var10, var10);
|
||||
var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 1);
|
||||
|
@ -37,7 +37,7 @@
|
|||
var28 = (var27 & 15) << 4;
|
||||
var29 = var27 & 240;
|
||||
var30 = (double)((float)var28 / 256.0F);
|
||||
@@ -2297,7 +2300,7 @@
|
||||
@@ -2310,7 +2313,7 @@
|
||||
double var28;
|
||||
double var30;
|
||||
|
||||
|
@ -46,7 +46,7 @@
|
|||
{
|
||||
float var36 = 0.2F;
|
||||
float var19 = 0.0625F;
|
||||
@@ -2317,7 +2320,7 @@
|
||||
@@ -2330,7 +2333,7 @@
|
||||
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)(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);
|
||||
}
|
||||
|
||||
|
@ -64,7 +64,7 @@
|
|||
{
|
||||
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);
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
@ -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 + 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);
|
||||
}
|
||||
|
||||
|
@ -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 + 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);
|
||||
}
|
||||
|
||||
|
@ -91,7 +91,7 @@
|
|||
{
|
||||
var20 = (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);
|
||||
this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, var27);
|
||||
|
||||
|
@ -100,7 +100,7 @@
|
|||
{
|
||||
this.colorRedTopLeft *= par5;
|
||||
this.colorRedBottomLeft *= par5;
|
||||
@@ -4676,7 +4679,7 @@
|
||||
@@ -4697,7 +4700,7 @@
|
||||
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));
|
||||
|
||||
|
@ -109,7 +109,7 @@
|
|||
{
|
||||
this.colorRedTopLeft *= par5;
|
||||
this.colorRedBottomLeft *= par5;
|
||||
@@ -4799,7 +4802,7 @@
|
||||
@@ -4820,7 +4823,7 @@
|
||||
var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4);
|
||||
this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, var27);
|
||||
|
||||
|
@ -118,7 +118,7 @@
|
|||
{
|
||||
this.colorRedTopLeft *= par5;
|
||||
this.colorRedBottomLeft *= par5;
|
||||
@@ -4922,7 +4925,7 @@
|
||||
@@ -4943,7 +4946,7 @@
|
||||
var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5);
|
||||
this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, var27);
|
||||
|
||||
|
@ -127,7 +127,7 @@
|
|||
{
|
||||
this.colorRedTopLeft *= par5;
|
||||
this.colorRedBottomLeft *= par5;
|
||||
@@ -5034,7 +5037,7 @@
|
||||
@@ -5055,7 +5058,7 @@
|
||||
var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2);
|
||||
this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, var28);
|
||||
|
||||
|
@ -136,7 +136,7 @@
|
|||
{
|
||||
var8.setColorOpaque_F(var18 * par5, var21 * par6, var24 * par7);
|
||||
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);
|
||||
this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, var28);
|
||||
|
||||
|
@ -145,7 +145,7 @@
|
|||
{
|
||||
var8.setColorOpaque_F(var18 * par5, var21 * par6, var24 * par7);
|
||||
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);
|
||||
this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, var28);
|
||||
|
||||
|
@ -154,7 +154,7 @@
|
|||
{
|
||||
var8.setColorOpaque_F(var19 * par5, var22 * par6, var25 * par7);
|
||||
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);
|
||||
this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, var28);
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
double var4 = par2EntityPlayer.lastTickPosX + (par2EntityPlayer.posX - par2EntityPlayer.lastTickPosX) * (double)par3;
|
||||
double var6 = par2EntityPlayer.lastTickPosY + (par2EntityPlayer.posY - par2EntityPlayer.lastTickPosY) * (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 var19 = this.mc.renderViewEntity.posZ - par6;
|
||||
EntityFX var21 = null;
|
||||
|
@ -44,7 +44,7 @@
|
|||
|
||||
if (par1Str.equals("hugeexplosion"))
|
||||
{
|
||||
@@ -1947,6 +1962,7 @@
|
||||
@@ -1960,6 +1975,7 @@
|
||||
else if (par1Str.equals("snowballpoof"))
|
||||
{
|
||||
var21 = new EntityBreakingFX(this.theWorld, par2, par4, par6, Item.snowball);
|
||||
|
@ -52,7 +52,7 @@
|
|||
}
|
||||
else if (par1Str.equals("dripWater"))
|
||||
{
|
||||
@@ -1963,6 +1979,7 @@
|
||||
@@ -1976,6 +1992,7 @@
|
||||
else if (par1Str.equals("slime"))
|
||||
{
|
||||
var21 = new EntityBreakingFX(this.theWorld, par2, par4, par6, Item.slimeBall);
|
||||
|
@ -60,23 +60,24 @@
|
|||
}
|
||||
else if (par1Str.equals("heart"))
|
||||
{
|
||||
@@ -1988,17 +2005,19 @@
|
||||
{
|
||||
var25 = Integer.parseInt(par1Str.substring(par1Str.indexOf("_") + 1));
|
||||
var21 = new EntityBreakingFX(this.theWorld, par2, par4, par6, par8, par10, par12, Item.itemsList[var25]);
|
||||
+ effectObject = Item.itemsList[var25];
|
||||
}
|
||||
else if (par1Str.startsWith("tilecrack_"))
|
||||
{
|
||||
var25 = Integer.parseInt(par1Str.substring(par1Str.indexOf("_") + 1));
|
||||
var21 = new EntityDiggingFX(this.theWorld, par2, par4, par6, par8, par10, par12, Block.blocksList[var25], 0, 0);
|
||||
+ effectObject = Block.blocksList[var25];
|
||||
}
|
||||
@@ -1997,6 +2014,7 @@
|
||||
{
|
||||
int var27 = Integer.parseInt(par1Str.substring(par1Str.indexOf("_") + 1));
|
||||
var21 = new EntityBreakingFX(this.theWorld, par2, par4, par6, par8, par10, par12, Item.itemsList[var27]);
|
||||
+ effectObject = Item.itemsList[var27];
|
||||
}
|
||||
else if (par1Str.startsWith("tilecrack_"))
|
||||
{
|
||||
@@ -2004,11 +2022,13 @@
|
||||
int var25 = Integer.parseInt(var28[1]);
|
||||
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)
|
||||
{
|
||||
- this.mc.effectRenderer.addEffect((EntityFX)var21);
|
||||
this.mc.effectRenderer.addEffect((EntityFX)var21);
|
||||
+ this.mc.effectRenderer.addEffect((EntityFX)var21, effectObject);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/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())
|
||||
{
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
float var7 = 1.0F;
|
||||
GL11.glColor3f(var7, var7, var7);
|
||||
}
|
||||
@@ -164,7 +172,7 @@
|
||||
@@ -156,7 +164,7 @@
|
||||
float var8 = 1.6F;
|
||||
float var9 = 0.016666668F * var8;
|
||||
double var10 = par1EntityPlayer.getDistanceSqToEntity(this.renderManager.livingPlayer);
|
||||
|
@ -49,7 +49,7 @@
|
|||
|
||||
if (var10 < (double)(var12 * var12))
|
||||
{
|
||||
@@ -230,9 +238,12 @@
|
||||
@@ -223,9 +231,12 @@
|
||||
this.modelBipedMain.bipedHead.postRender(0.0625F);
|
||||
float var5;
|
||||
|
||||
|
@ -60,29 +60,29 @@
|
|||
+ {
|
||||
+ IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(var4, EQUIPPED);
|
||||
+ boolean is3D = (customRenderer != null && customRenderer.shouldUseRenderHelper(EQUIPPED, var4, BLOCK_3D));
|
||||
+
|
||||
+
|
||||
+ if (is3D || RenderBlocks.renderItemIn3d(Block.blocksList[var4.itemID].getRenderType()))
|
||||
{
|
||||
var5 = 0.625F;
|
||||
GL11.glTranslatef(0.0F, -0.25F, 0.0F);
|
||||
@@ -349,7 +360,10 @@
|
||||
@@ -343,7 +354,10 @@
|
||||
var23 = var21.getItemUseAction();
|
||||
}
|
||||
|
||||
- if (var21.itemID < 256 && RenderBlocks.renderItemIn3d(Block.blocksList[var21.itemID].getRenderType()))
|
||||
+ IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(var21, EQUIPPED);
|
||||
+ boolean is3D = (customRenderer != null && customRenderer.shouldUseRenderHelper(EQUIPPED, var21, BLOCK_3D));
|
||||
+
|
||||
+
|
||||
+ if (var21.getItem() instanceof ItemBlock && (is3D || RenderBlocks.renderItemIn3d(Block.blocksList[var21.itemID].getRenderType())))
|
||||
{
|
||||
var7 = 0.5F;
|
||||
GL11.glTranslatef(0.0F, 0.1875F, -0.3125F);
|
||||
@@ -402,7 +416,7 @@
|
||||
@@ -400,7 +414,7 @@
|
||||
|
||||
if (var21.getItem().requiresMultipleRenderPasses())
|
||||
{
|
||||
- for (int var27 = 0; var27 <= 1; ++var27)
|
||||
+ for (int var27 = 0; var27 < var21.getItem().getRenderPasses(var21.getItemDamage()); ++var27)
|
||||
- for (var27 = 0; var27 <= 1; ++var27)
|
||||
+ for (var27 = 0; var27 < var21.getItem().getRenderPasses(var21.getItemDamage()); ++var27)
|
||||
{
|
||||
int var26 = var21.getItem().getColorFromItemStack(var21, var27);
|
||||
float var28 = (float)(var26 >> 16 & 255) / 255.0F;
|
||||
var28 = (float)(var26 >> 16 & 255) / 255.0F;
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
sndSystem.backgroundMusic("BgMusic", var1.soundUrl, var1.soundName, false);
|
||||
sndSystem.setVolume("BgMusic", this.options.musicVolume);
|
||||
sndSystem.play("BgMusic");
|
||||
@@ -239,6 +251,7 @@
|
||||
@@ -240,6 +252,7 @@
|
||||
if (par1Str != null)
|
||||
{
|
||||
SoundPoolEntry var6 = this.soundPoolStreaming.getRandomSoundFromSoundPool(par1Str);
|
||||
|
@ -63,7 +63,7 @@
|
|||
|
||||
if (var6 != null)
|
||||
{
|
||||
@@ -250,6 +263,7 @@
|
||||
@@ -251,6 +264,7 @@
|
||||
float var7 = 16.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);
|
||||
|
@ -71,7 +71,7 @@
|
|||
sndSystem.play(var5);
|
||||
}
|
||||
}
|
||||
@@ -429,6 +443,7 @@
|
||||
@@ -430,6 +444,7 @@
|
||||
if (loaded && this.options.soundVolume != 0.0F)
|
||||
{
|
||||
SoundPoolEntry var7 = this.soundPoolSounds.getRandomSoundFromSoundPool(par1Str);
|
||||
|
@ -79,7 +79,7 @@
|
|||
|
||||
if (var7 != null && par5 > 0.0F)
|
||||
{
|
||||
@@ -450,6 +465,7 @@
|
||||
@@ -451,6 +466,7 @@
|
||||
}
|
||||
|
||||
sndSystem.setVolume(var8, par5 * this.options.soundVolume);
|
||||
|
@ -87,7 +87,7 @@
|
|||
sndSystem.play(var8);
|
||||
}
|
||||
}
|
||||
@@ -464,6 +480,7 @@
|
||||
@@ -465,6 +481,7 @@
|
||||
if (loaded && this.options.soundVolume != 0.0F)
|
||||
{
|
||||
SoundPoolEntry var4 = this.soundPoolSounds.getRandomSoundFromSoundPool(par1Str);
|
||||
|
@ -95,7 +95,7 @@
|
|||
|
||||
if (var4 != null)
|
||||
{
|
||||
@@ -479,6 +496,7 @@
|
||||
@@ -480,6 +497,7 @@
|
||||
par2 *= 0.25F;
|
||||
sndSystem.setPitch(var5, par3);
|
||||
sndSystem.setVolume(var5, par2 * this.options.soundVolume);
|
||||
|
|
Loading…
Reference in a new issue