Compare commits

...
17 Commits
Author SHA1 Message Date
LexManos adb6b330b9 tagged 1.2.5 2012-01-14 04:01:34 +00:00
Eloraam 8b1d213f20 Fixed an unroll from the MCL merge. Updated MCP mappings. 2012-01-13 19:21:01 +00:00
LexManos 92cbccae60 Fixed NPE on some JVM's 2012-01-12 07:43:55 +00:00
LexManos fdd0e61e17 Merged in MCL branch 2012-01-12 07:38:23 +00:00
Eloraam 95481e1cd2 Improved the ladder hook. Added a new hook for sustained-use items. 2012-01-11 19:40:04 +00:00
Eloraam 2631c01109 Fixed MCP mappings again. Fixed the Entity NBT code.
Added a new hook to support custom enchantments.
2012-01-11 18:39:42 +00:00
Eloraam d33dfb0602 Updated MCP Mappings. 2012-01-11 18:13:35 +00:00
LexManos 34ca805acf Fixed faces for BlockFire 2012-01-01 09:30:42 +00:00
LexManos 0da57286ef Refactored a bit of the TileEntity code so that ANY block may now have a tile entity.
This is to allow modders the ability to extend blocks other then BlockContainer, and still be able to have a TileEntity.

Also added a NBTTagCompound to the base EntityClass, this allows any entity to be given arbitrary data that will persist across world saves.
This data is NOT sent over the wire in a MP situation, to have data sent over the wire automatically use the built in data watcher.
2012-01-01 07:42:21 +00:00
Space Toad fe1fbfda61 bumbed version number 2011-12-28 21:22:07 +00:00
LexManos 10f924a92d Changed Block.setBurnRate to public and Block.setBurnProperties
Re-added bounce functions to BlockFire for non-forge mods.
Should fix Optifine compatibility.
2011-12-24 05:07:55 +00:00
LexManos 57fdcdd641 Fixed a re-name that somehow missed the commit.
Serverside chanceToEncourageFire -> getFireSpreadSpeed
2011-12-24 00:35:41 +00:00
Eloraam 69f2b96f1d Fixed some rendering issues. 2011-12-23 00:23:01 +00:00
Eloraam ab1d251724 Another mapping update. 2011-12-22 20:11:38 +00:00
LexManos 4da7be2e7d Updated mapping for last commit 2011-12-22 02:17:40 +00:00
Eloraam 5a5c9dbb8e Mapping updates. 2011-12-21 23:09:18 +00:00
LexManos 336e28c6fe Re-added BlockFire's properties, apparently some people access this by reflection. 2011-12-21 14:10:05 +00:00
49 changed files with 3542 additions and 444 deletions

No files matched your search

+105 -105
View File
@@ -3,7 +3,7 @@
"field_41031_b","field_41031_b","b","I","I","EntityEnderCrystal","sf","net/minecraft/src","0"
"field_1681_a","recipePatterns","a","[[Ljava/lang/String;","[[Ljava/lang/String;","RecipesArmor","xx","net/minecraft/src","0"
"field_1680_b","recipeItems","b","[[Ljava/lang/Object;","[[Ljava/lang/Object;","RecipesArmor","xx","net/minecraft/src","0"
"field_39009_a","field_39009_a","a","I","I","ComponentVillage","xf","net/minecraft/src","0"
"field_39009_a","villagersSpawned","a","I","I","ComponentVillage","xf","net/minecraft/src","0"
"field_519_a","protocolVersion","a","I","I","Packet1Login","aj","net/minecraft/src","0"
"field_518_b","username","b","Ljava/lang/String;","Ljava/lang/String;","Packet1Login","aj","net/minecraft/src","0"
"field_4074_d","mapSeed","c","J","J","Packet1Login","aj","net/minecraft/src","0"
@@ -58,9 +58,9 @@
"field_22023_b","repeaterState","cb","[I","[I","BlockRedstoneRepeater","mz","net/minecraft/src","0"
"field_22025_c","isRepeaterPowered","cc","Z","Z","BlockRedstoneRepeater","mz","net/minecraft/src","0"
"field_1256_a","sideModels","g","[LModelRenderer;","[Lacf;","ModelMinecart","iv","net/minecraft/src","0"
"field_41038_a","field_41038_a","a","LEntityDragon;","Loo;","RenderDragon","ado","net/minecraft/src","0"
"field_41038_a","entityDragon","a","LEntityDragon;","Loo;","RenderDragon","ado","net/minecraft/src","0"
"field_40284_d","field_40284_d","i","I","I","RenderDragon","ado","net/minecraft/src","0"
"field_40285_c","field_40285_c","b","LModelDragon;","Lafo;","RenderDragon","ado","net/minecraft/src","0"
"field_40285_c","modelDragon","b","LModelDragon;","Lafo;","RenderDragon","ado","net/minecraft/src","0"
"field_532_a","username","a","Ljava/lang/String;","Ljava/lang/String;","Packet2Handshake","hh","net/minecraft/src","0"
"field_35647_c","field_35647_c","c","I","I","PlayerControllerCreative","uq","net/minecraft/src","0"
"field_1458_a","tileEntities","a","Ljava/util/List;","Ljava/util/List;","RenderGlobal","afv","net/minecraft/src","0"
@@ -290,7 +290,7 @@
"field_6366_b","motionX","b","I","I","Packet28EntityVelocity","qm","net/minecraft/src","0"
"field_6369_c","motionY","c","I","I","Packet28EntityVelocity","qm","net/minecraft/src","0"
"field_6368_d","motionZ","d","I","I","Packet28EntityVelocity","qm","net/minecraft/src","0"
"field_35088_a","field_35088_a","a","I","I","ComponentVillagePathGen","ahz","net/minecraft/src","0"
"field_35088_a","averageGroundLevel","a","I","I","ComponentVillagePathGen","ahz","net/minecraft/src","0"
"field_35634_a","allowedBiomeGenBases","e","[LBiomeGenBase;","[Lsr;","MapGenStronghold","dc","net/minecraft/src","0"
"field_35632_f","ranBiomeCheck","f","Z","Z","MapGenStronghold","dc","net/minecraft/src","0"
"field_35633_g","structureCoords","g","[LChunkCoordIntPair;","[Lacm;","MapGenStronghold","dc","net/minecraft/src","0"
@@ -362,13 +362,13 @@
"field_35215_ba","speedOnGround","cg","F","F","EntityPlayer","vi","net/minecraft/src","0"
"field_35213_bb","speedInAir","ch","F","F","EntityPlayer","vi","net/minecraft/src","0"
"field_4128_n","fishEntity","ci","LEntityFishHook;","Lael;","EntityPlayer","vi","net/minecraft/src","0"
"field_35436_a","field_35436_a","a","LBlock;","Lyy;","ItemColored","hf","net/minecraft/src","0"
"field_41034_b","field_41034_b","b","[Ljava/lang/String;","[Ljava/lang/String;","ItemColored","hf","net/minecraft/src","0"
"field_35436_a","blockRef","a","LBlock;","Lyy;","ItemColored","hf","net/minecraft/src","0"
"field_41034_b","blockNames","b","[Ljava/lang/String;","[Ljava/lang/String;","ItemColored","hf","net/minecraft/src","0"
"field_35486_a","biomeList","a","[LBiomeGenBase;","[Lsr;","BiomeGenBase","sr","net/minecraft/src","0"
"field_35484_b","ocean","b","LBiomeGenBase;","Lsr;","BiomeGenBase","sr","net/minecraft/src","0"
"field_35485_c","plains","c","LBiomeGenBase;","Lsr;","BiomeGenBase","sr","net/minecraft/src","0"
"field_4249_h","desert","d","LBiomeGenBase;","Lsr;","BiomeGenBase","sr","net/minecraft/src","0"
"field_35483_e","hills","e","LBiomeGenBase;","Lsr;","BiomeGenBase","sr","net/minecraft/src","0"
"field_35483_e","extremeHills","e","LBiomeGenBase;","Lsr;","BiomeGenBase","sr","net/minecraft/src","0"
"field_4253_d","forest","f","LBiomeGenBase;","Lsr;","BiomeGenBase","sr","net/minecraft/src","0"
"field_4250_g","taiga","g","LBiomeGenBase;","Lsr;","BiomeGenBase","sr","net/minecraft/src","0"
"field_4255_b","swampland","h","LBiomeGenBase;","Lsr;","BiomeGenBase","sr","net/minecraft/src","0"
@@ -449,14 +449,14 @@
"field_1673_b","path","b","LPath;","Lzs;","PathFinder","rw","net/minecraft/src","0"
"field_1676_c","pointMap","c","LIntHashMap;","Lob;","PathFinder","rw","net/minecraft/src","0"
"field_1675_d","pathOptions","d","[LPathPoint;","[Lmo;","PathFinder","rw","net/minecraft/src","0"
"field_40167_a","field_40167_a","a","D","D","EntityDragon","oo","net/minecraft/src","0"
"field_40165_b","field_40165_b","b","D","D","EntityDragon","oo","net/minecraft/src","0"
"field_40166_c","field_40166_c","c","D","D","EntityDragon","oo","net/minecraft/src","0"
"field_40167_a","targetX","a","D","D","EntityDragon","oo","net/minecraft/src","0"
"field_40165_b","targetY","b","D","D","EntityDragon","oo","net/minecraft/src","0"
"field_40166_c","targetZ","c","D","D","EntityDragon","oo","net/minecraft/src","0"
"field_40162_d","field_40162_d","d","[[D","[[D","EntityDragon","oo","net/minecraft/src","0"
"field_40164_e","field_40164_e","e","I","I","EntityDragon","oo","net/minecraft/src","0"
"field_40176_ao","dragonPartArray","f","[LDragonPart;","[Lvc;","EntityDragon","oo","net/minecraft/src","0"
"field_40177_ap","field_40177_ap","g","LDragonPart;","Lvc;","EntityDragon","oo","net/minecraft/src","0"
"field_40171_aq","field_40171_aq","h","LDragonPart;","Lvc;","EntityDragon","oo","net/minecraft/src","0"
"field_40177_ap","dragonPartHead","g","LDragonPart;","Lvc;","EntityDragon","oo","net/minecraft/src","0"
"field_40171_aq","dragonPartBody","h","LDragonPart;","Lvc;","EntityDragon","oo","net/minecraft/src","0"
"field_40170_ar","field_40170_ar","i","LDragonPart;","Lvc;","EntityDragon","oo","net/minecraft/src","0"
"field_40169_as","field_40169_as","by","LDragonPart;","Lvc;","EntityDragon","oo","net/minecraft/src","0"
"field_40168_at","field_40168_at","bz","LDragonPart;","Lvc;","EntityDragon","oo","net/minecraft/src","0"
@@ -466,9 +466,9 @@
"field_40172_ax","field_40172_ax","bD","F","F","EntityDragon","oo","net/minecraft/src","0"
"field_40163_ay","field_40163_ay","bE","Z","Z","EntityDragon","oo","net/minecraft/src","0"
"field_40161_az","field_40161_az","bF","Z","Z","EntityDragon","oo","net/minecraft/src","0"
"field_40179_aC","field_40179_aC","bJ","LEntity;","Lia;","EntityDragon","oo","net/minecraft/src","0"
"field_40179_aC","target","bJ","LEntity;","Lia;","EntityDragon","oo","net/minecraft/src","0"
"field_40178_aA","field_40178_aA","bG","I","I","EntityDragon","oo","net/minecraft/src","0"
"field_41013_bH","field_41013_bH","bH","LEntityEnderCrystal;","Lsf;","EntityDragon","oo","net/minecraft/src","0"
"field_41013_bH","healingEnderCrystal","bH","LEntityEnderCrystal;","Lsf;","EntityDragon","oo","net/minecraft/src","0"
"field_28146_a","mc","a","LMinecraft;","LMinecraft;","ThreadCheckHasPaid","hr","net/minecraft/src","0"
"field_15235_a","blockIndex","a","I","I","WorldGenLakes","qv","net/minecraft/src","0"
"field_35834_a","key","a","J","J","LongHashMapEntry","ahc","net/minecraft/src","0"
@@ -812,7 +812,7 @@
"field_20037_b","inventoryType","b","I","I","Packet100OpenWindow","wm","net/minecraft/src","0"
"field_20040_c","windowTitle","c","Ljava/lang/String;","Ljava/lang/String;","Packet100OpenWindow","wm","net/minecraft/src","0"
"field_20039_d","slotsCount","d","I","I","Packet100OpenWindow","wm","net/minecraft/src","0"
"field_35094_a","field_35094_a","a","I","I","ComponentVillageWoodHut","wi","net/minecraft/src","0"
"field_35094_a","averageGroundLevel","a","I","I","ComponentVillageWoodHut","wi","net/minecraft/src","0"
"field_35092_b","field_35092_b","b","Z","Z","ComponentVillageWoodHut","wi","net/minecraft/src","0"
"field_35093_c","field_35093_c","c","I","I","ComponentVillageWoodHut","wi","net/minecraft/src","0"
"field_35377_b","field_35377_b","b","LModelChest;","Lxl;","TileEntityChestRenderer","fv","net/minecraft/src","0"
@@ -1125,7 +1125,7 @@
"field_35655_d","xPosition","d","I","I","BiomeCacheBlock","cq","net/minecraft/src","0"
"field_35656_e","zPosition","e","I","I","BiomeCacheBlock","cq","net/minecraft/src","0"
"field_35653_f","lastAccessTime","f","J","J","BiomeCacheBlock","cq","net/minecraft/src","0"
"field_35654_g","field_35654_g","g","LBiomeCache;","Lagl;","BiomeCacheBlock","cq","net/minecraft/src","0"
"field_35654_g","biomeCache","g","LBiomeCache;","Lagl;","BiomeCacheBlock","cq","net/minecraft/src","0"
"field_40556_a","pendingChunkList","a","Ljava/util/List;","Ljava/util/List;","ThreadedChunkLoader","tn","net/minecraft/src","0"
"field_40554_b","pendingChunkCoords","b","Ljava/util/Set;","Ljava/util/Set;","ThreadedChunkLoader","tn","net/minecraft/src","0"
"field_40555_c","chunkSaveLock","c","Ljava/lang/Object;","Ljava/lang/Object;","ThreadedChunkLoader","tn","net/minecraft/src","0"
@@ -1254,7 +1254,7 @@
"field_27276_a","field_27276_a","a","LGuiStats;","Lin;","GuiSlotStatsGeneral","b","net/minecraft/src","0"
"field_35064_a","field_35064_a","a","LEnumDoor;","Lmj;","ComponentStrongholdPrison","fj","net/minecraft/src","0"
"field_27045_a","isPowered","a","Z","Z","BlockRail","afr","net/minecraft/src","0"
"field_35098_a","field_35098_a","a","I","I","ComponentVillageChurch","uz","net/minecraft/src","0"
"field_35098_a","averageGroundLevel","a","I","I","ComponentVillageChurch","uz","net/minecraft/src","0"
"field_40027_a","field_40027_a","a","Z","Z","ComponentNetherBridgeThrone","kf","net/minecraft/src","0"
"field_35627_a","field_35627_a","d","[F","[F","MapGenRavine","rf","net/minecraft/src","0"
"field_999_a","screenTitle","a","Ljava/lang/String;","Ljava/lang/String;","GuiEditSign","fl","net/minecraft/src","0"
@@ -1396,7 +1396,7 @@
"field_40624_L","field_40624_L","L","D","D","Potion","abg","net/minecraft/src","0"
"field_40625_M","field_40625_M","M","Z","Z","Potion","abg","net/minecraft/src","0"
"field_40626_N","liquidColor","N","I","I","Potion","abg","net/minecraft/src","0"
"field_35100_a","field_35100_a","a","I","I","ComponentVillageTorch","abj","net/minecraft/src","0"
"field_35100_a","averageGroundLevel","a","I","I","ComponentVillageTorch","abj","net/minecraft/src","0"
"field_40734_a","field_40734_a","a","I","I","TextureOffset","sx","net/minecraft/src","0"
"field_40733_b","field_40733_b","b","I","I","TextureOffset","sx","net/minecraft/src","0"
"field_466_a","fallInstantly","a","Z","Z","BlockSand","cj","net/minecraft/src","0"
@@ -1494,10 +1494,10 @@
"field_705_Q","field_705_Q","ba","F","F","EntityLiving","nq","net/minecraft/src","0"
"field_704_R","field_704_R","bb","F","F","EntityLiving","nq","net/minecraft/src","0"
"field_703_S","field_703_S","bc","F","F","EntityLiving","nq","net/minecraft/src","0"
"field_34904_b","field_34904_b","bd","LEntityPlayer;","Lvi;","EntityLiving","nq","net/minecraft/src","0"
"field_34905_c","field_34905_c","be","I","I","EntityLiving","nq","net/minecraft/src","0"
"field_35172_bP","field_35172_bP","bf","I","I","EntityLiving","nq","net/minecraft/src","0"
"field_35173_bQ","field_35173_bQ","bg","I","I","EntityLiving","nq","net/minecraft/src","0"
"field_34904_b","attackingPlayer","bd","LEntityPlayer;","Lvi;","EntityLiving","nq","net/minecraft/src","0"
"field_34905_c","recentlyHit","be","I","I","EntityLiving","nq","net/minecraft/src","0"
"field_35172_bP","arrowHitTempCounter","bf","I","I","EntityLiving","nq","net/minecraft/src","0"
"field_35173_bQ","arrowHitTimer","bg","I","I","EntityLiving","nq","net/minecraft/src","0"
"field_35170_bR","activePotionsMap","bh","Ljava/util/HashMap;","Ljava/util/HashMap;","EntityLiving","nq","net/minecraft/src","0"
"field_39001_b","field_39001_b","b","Z","Z","EntityLiving","nq","net/minecraft/src","0"
"field_39002_c","field_39002_c","c","I","I","EntityLiving","nq","net/minecraft/src","0"
@@ -1542,7 +1542,7 @@
"field_1243_l","isRiding","b","Z","Z","ModelBase","al","net/minecraft/src","0"
"field_35394_j","boxList","c","Ljava/util/List;","Ljava/util/List;","ModelBase","al","net/minecraft/src","0"
"field_40301_k","field_40301_k","d","Z","Z","ModelBase","al","net/minecraft/src","0"
"field_39000_a","field_39000_a","g","Ljava/util/Map;","Ljava/util/Map;","ModelBase","al","net/minecraft/src","0"
"field_39000_a","modelTextureMap","g","Ljava/util/Map;","Ljava/util/Map;","ModelBase","al","net/minecraft/src","0"
"field_40299_l","textureWidth","e","I","I","ModelBase","al","net/minecraft/src","0"
"field_40300_m","textureHeight","f","I","I","ModelBase","al","net/minecraft/src","0"
"field_930_d","itemRenderer","d","LRenderItem;","Liw;","GuiIngame","qd","net/minecraft/src","0"
@@ -1556,8 +1556,8 @@
"field_22065_l","recordIsPlaying","l","Z","Z","GuiIngame","qd","net/minecraft/src","0"
"field_6446_b","damageGuiPartialTime","b","F","F","GuiIngame","qd","net/minecraft/src","0"
"field_931_c","prevVignetteBrightness","c","F","F","GuiIngame","qd","net/minecraft/src","0"
"field_35081_a","field_35081_a","a","I","I","ComponentVillageField","ec","net/minecraft/src","0"
"field_35090_a","field_35090_a","a","I","I","ComponentVillageField2","agr","net/minecraft/src","0"
"field_35081_a","averageGroundLevel","a","I","I","ComponentVillageField","ec","net/minecraft/src","0"
"field_35090_a","averageGroundLevel","a","I","I","ComponentVillageField2","agr","net/minecraft/src","0"
"field_6461_a","guiScreen","a","LGuiScreen;","Lxe;","GuiTexturePacks","lb","net/minecraft/src","0"
"field_6454_o","refreshTimer","b","I","I","GuiTexturePacks","lb","net/minecraft/src","0"
"field_6453_p","fileLocation","c","Ljava/lang/String;","Ljava/lang/String;","GuiTexturePacks","lb","net/minecraft/src","0"
@@ -1976,7 +1976,7 @@
"field_20917_a","field_20917_a","a","S","S","Container","pj","net/minecraft/src","0"
"field_20121_g","crafters","g","Ljava/util/List;","Ljava/util/List;","Container","pj","net/minecraft/src","0"
"field_20918_b","field_20918_b","b","Ljava/util/Set;","Ljava/util/Set;","Container","pj","net/minecraft/src","0"
"field_35624_a","stringValue","a","Ljava/lang/String;","Ljava/lang/String;","GuiSavingLevelString","ao","net/minecraft/src","0"
"field_35624_a","name","a","Ljava/lang/String;","Ljava/lang/String;","GuiSavingLevelString","ao","net/minecraft/src","0"
"field_35623_b","responseTime","b","I","I","GuiSavingLevelString","ao","net/minecraft/src","0"
"field_27239_a","field_27239_a","a","LJ_JsonNode;","Lan;","J_JsonNumberNodeBuilder","ms","net/minecraft/src","0"
"field_35311_f","inventory","g","LInventoryBasic;","Lbb;","GuiContainerCreative","aec","net/minecraft/src","0"
@@ -2158,7 +2158,7 @@
"field_40578_g","damageReductionAmountArray","g","[I","[I","EnumArmorMaterial","dj","net/minecraft/src","0"
"field_40584_h","enchantability","h","I","I","EnumArmorMaterial","dj","net/minecraft/src","0"
"field_40585_i","allArmorMaterials","i","[LEnumArmorMaterial;","[Ldj;","EnumArmorMaterial","dj","net/minecraft/src","0"
"field_35084_a","field_35084_a","a","I","I","ComponentVillageHouse4_Garden","uy","net/minecraft/src","0"
"field_35084_a","averageGroundLevel","a","I","I","ComponentVillageHouse4_Garden","uy","net/minecraft/src","0"
"field_35083_b","field_35083_b","b","Z","Z","ComponentVillageHouse4_Garden","uy","net/minecraft/src","0"
"field_22264_a","mc","a","LMinecraft;","LMinecraft;","GuiSlot","jn","net/minecraft/src","0"
"field_22263_b","width","g","I","I","GuiSlot","jn","net/minecraft/src","0"
@@ -2185,8 +2185,8 @@
"field_28161_c","gameSettings","c","LGameSettings;","Lki;","MapItemRenderer","sg","net/minecraft/src","0"
"field_28160_d","fontRenderer","d","LFontRenderer;","Labe;","MapItemRenderer","sg","net/minecraft/src","0"
"field_27221_a","elements","a","Ljava/util/List;","Ljava/util/List;","J_JsonArray","kx","net/minecraft/src","0"
"field_40264_a","field_40264_a","a","LEnchantment;","Laef;","EnchantmentData","vs","net/minecraft/src","0"
"field_40263_b","field_40263_b","b","I","I","EnchantmentData","vs","net/minecraft/src","0"
"field_40264_a","enchantmentobj","a","LEnchantment;","Laef;","EnchantmentData","vs","net/minecraft/src","0"
"field_40263_b","enchantmentLevel","b","I","I","EnchantmentData","vs","net/minecraft/src","0"
"field_22131_a","parentGuiScreen","a","LGuiScreen;","Lxe;","GuiCreateWorld","xh","net/minecraft/src","0"
"field_22134_h","textboxWorldName","b","LGuiTextField;","Ldv;","GuiCreateWorld","xh","net/minecraft/src","0"
"field_22133_i","textboxSeed","c","LGuiTextField;","Ldv;","GuiCreateWorld","xh","net/minecraft/src","0"
@@ -2236,7 +2236,7 @@
"field_1092_a","byteValue","a","B","B","NBTTagByte","xq","net/minecraft/src","0"
"field_35024_g","boundingBox","e","LStructureBoundingBox;","Lnl;","StructureComponent","nk","net/minecraft/src","0"
"field_35025_h","coordBaseMode","f","I","I","StructureComponent","nk","net/minecraft/src","0"
"field_35026_i","field_35026_i","g","I","I","StructureComponent","nk","net/minecraft/src","0"
"field_35026_i","componentType","g","I","I","StructureComponent","nk","net/minecraft/src","0"
"field_20003_a","itemIconIndex","a","I","I","RenderSnowball","cd","net/minecraft/src","0"
"field_35601_a","server","a","LServerNBTStorage;","Llo;","ThreadPollServers","yb","net/minecraft/src","0"
"field_35600_b","serverSlotContainer","b","LGuiSlotServer;","Ljo;","ThreadPollServers","yb","net/minecraft/src","0"
@@ -2263,9 +2263,9 @@
"field_22165_b","displayName","b","Ljava/lang/String;","Ljava/lang/String;","SaveFormatComparator","rr","net/minecraft/src","0"
"field_22169_c","lastTimePlayed","c","J","J","SaveFormatComparator","rr","net/minecraft/src","0"
"field_22168_d","sizeOnDisk","d","J","J","SaveFormatComparator","rr","net/minecraft/src","0"
"field_22167_e","field_22167_e","e","Z","Z","SaveFormatComparator","rr","net/minecraft/src","0"
"field_22167_e","requiresConversion","e","Z","Z","SaveFormatComparator","rr","net/minecraft/src","0"
"field_35720_f","gameType","f","I","I","SaveFormatComparator","rr","net/minecraft/src","0"
"field_40595_g","field_40595_g","g","Z","Z","SaveFormatComparator","rr","net/minecraft/src","0"
"field_40595_g","hardcore","g","Z","Z","SaveFormatComparator","rr","net/minecraft/src","0"
"field_566_a","xPosition","a","I","I","Packet15Place","em","net/minecraft/src","0"
"field_565_b","yPosition","b","I","I","Packet15Place","em","net/minecraft/src","0"
"field_569_c","zPosition","c","I","I","Packet15Place","em","net/minecraft/src","0"
@@ -2306,10 +2306,10 @@
"field_27028_b","lightningState","b","I","I","EntityLightningBolt","su","net/minecraft/src","0"
"field_27029_a","boltVertex","a","J","J","EntityLightningBolt","su","net/minecraft/src","0"
"field_27030_c","boltLivingTime","c","I","I","EntityLightningBolt","su","net/minecraft/src","0"
"field_35596_a","metaId","a","I","I","StructurePieceTreasure","agq","net/minecraft/src","0"
"field_35594_b","minItemStack","b","I","I","StructurePieceTreasure","agq","net/minecraft/src","0"
"field_35595_c","maxItemStack","c","I","I","StructurePieceTreasure","agq","net/minecraft/src","0"
"field_35593_e","itemWeight","e","I","I","StructurePieceTreasure","agq","net/minecraft/src","0"
"field_35596_a","itemID","a","I","I","StructurePieceTreasure","agq","net/minecraft/src","0"
"field_35594_b","itemMetadata","b","I","I","StructurePieceTreasure","agq","net/minecraft/src","0"
"field_35595_c","minItemStack","c","I","I","StructurePieceTreasure","agq","net/minecraft/src","0"
"field_35593_e","maxItemStack","e","I","I","StructurePieceTreasure","agq","net/minecraft/src","0"
"field_1202_a","posX","a","I","I","WorldBlockPositionType","agf","net/minecraft/src","0"
"field_1201_b","posY","b","I","I","WorldBlockPositionType","agf","net/minecraft/src","0"
"field_1207_c","posZ","c","I","I","WorldBlockPositionType","agf","net/minecraft/src","0"
@@ -2346,7 +2346,7 @@
"field_40666_e","profilingMap","e","Ljava/util/Map;","Ljava/util/Map;","Profiler","pf","net/minecraft/src","0"
"field_35473_a","heightShift","a","I","I","World","ry","net/minecraft/src","0"
"field_35471_b","xShift","b","I","I","World","ry","net/minecraft/src","0"
"field_35472_c","worldYMax","c","I","I","World","ry","net/minecraft/src","0"
"field_35472_c","worldHeight","c","I","I","World","ry","net/minecraft/src","0"
"field_35469_d","worldMaxY","d","I","I","World","ry","net/minecraft/src","0"
"field_35470_e","seaLevel","e","I","I","World","ry","net/minecraft/src","0"
"field_4214_a","scheduledUpdatesAreImmediate","f","Z","Z","World","ry","net/minecraft/src","0"
@@ -2408,14 +2408,14 @@
"field_1671_a","displayLists","a","Ljava/util/List;","Ljava/util/List;","GLAllocation","bt","net/minecraft/src","0"
"field_1670_b","textureNames","b","Ljava/util/List;","Ljava/util/List;","GLAllocation","bt","net/minecraft/src","0"
"field_35273_a","intCacheSize","a","I","I","IntCache","bm","net/minecraft/src","0"
"field_35271_b","field_35271_b","b","Ljava/util/List;","Ljava/util/List;","IntCache","bm","net/minecraft/src","0"
"field_35272_c","field_35272_c","c","Ljava/util/List;","Ljava/util/List;","IntCache","bm","net/minecraft/src","0"
"field_35269_d","field_35269_d","d","Ljava/util/List;","Ljava/util/List;","IntCache","bm","net/minecraft/src","0"
"field_35270_e","field_35270_e","e","Ljava/util/List;","Ljava/util/List;","IntCache","bm","net/minecraft/src","0"
"field_35271_b","freeSmallArrays","b","Ljava/util/List;","Ljava/util/List;","IntCache","bm","net/minecraft/src","0"
"field_35272_c","inUseSmallArrays","c","Ljava/util/List;","Ljava/util/List;","IntCache","bm","net/minecraft/src","0"
"field_35269_d","freeLargeArrays","d","Ljava/util/List;","Ljava/util/List;","IntCache","bm","net/minecraft/src","0"
"field_35270_e","inUseLargeArrays","e","Ljava/util/List;","Ljava/util/List;","IntCache","bm","net/minecraft/src","0"
"field_189_a","chunkXPos","a","I","I","ChunkCoordIntPair","acm","net/minecraft/src","0"
"field_188_b","chunkZPos","b","I","I","ChunkCoordIntPair","acm","net/minecraft/src","0"
"field_35450_c","field_35450_c","a","I","I","RenderSilverfish","xt","net/minecraft/src","0"
"field_35086_a","field_35086_a","a","I","I","ComponentVillageHouse2","ko","net/minecraft/src","0"
"field_35086_a","averageGroundLevel","a","I","I","ComponentVillageHouse2","ko","net/minecraft/src","0"
"field_320_a","spawnID","a","I","I","ItemReed","to","net/minecraft/src","0"
"field_27292_a","fieldBuilder","a","LJ_JsonFieldBuilder;","Laax;","J_FieldNodeContainer","co","net/minecraft/src","0"
"field_27291_b","listenerToJdomAdapter","b","LJ_JsonListenerToJdomAdapter;","Les;","J_FieldNodeContainer","co","net/minecraft/src","0"
@@ -2717,7 +2717,7 @@
"field_27085_k","distanceStatType","g","LIStatType;","Lun;","StatBase","px","net/minecraft/src","0"
"field_40073_a","entityDragonObj","a","LEntityDragonBase;","Ladh;","DragonPart","vc","net/minecraft/src","0"
"field_40072_b","name","b","Ljava/lang/String;","Ljava/lang/String;","DragonPart","vc","net/minecraft/src","0"
"field_35590_d","field_35590_d","d","I","I","WeightedRandomChoice","abt","net/minecraft/src","0"
"field_35590_d","itemWeight","d","I","I","WeightedRandomChoice","abt","net/minecraft/src","0"
"field_1100_a","recipePatterns","a","[[Ljava/lang/String;","[[Ljava/lang/String;","RecipesWeapons","kj","net/minecraft/src","0"
"field_1099_b","recipeItems","b","[[Ljava/lang/Object;","[[Ljava/lang/Object;","RecipesWeapons","kj","net/minecraft/src","0"
"field_40704_a","sectionPercentage","a","D","D","ProfilerResult","afx","net/minecraft/src","0"
@@ -2725,7 +2725,7 @@
"field_40703_c","name","c","Ljava/lang/String;","Ljava/lang/String;","ProfilerResult","afx","net/minecraft/src","0"
"field_6491_e","texturePackName","e","I","I","TexturePackDefault","ax","net/minecraft/src","0"
"field_6490_f","texturePackThumbnail","f","Ljava/awt/image/BufferedImage;","Ljava/awt/image/BufferedImage;","TexturePackDefault","ax","net/minecraft/src","0"
"field_35102_a","field_35102_a","a","I","I","ComponentVillageHouse3","tf","net/minecraft/src","0"
"field_35102_a","averageGroundLevel","a","I","I","ComponentVillageHouse3","tf","net/minecraft/src","0"
"field_1065_a","mc","a","LMinecraft;","LMinecraft;","PlayerController","aes","net/minecraft/src","0"
"field_1064_b","isInTestMode","b","Z","Z","PlayerController","aes","net/minecraft/src","0"
"field_21065_a","noteParticleScale","a","F","F","EntityNoteFX","ae","net/minecraft/src","0"
@@ -2843,7 +2843,7 @@
"field_4176_b","field_4176_b","b","LNoiseGeneratorOctaves;","Leb;","ChunkProviderHell","jv","net/minecraft/src","0"
"field_4164_n","worldObj","o","LWorld;","Lry;","ChunkProviderHell","jv","net/minecraft/src","0"
"field_4163_o","field_4163_o","p","[D","[D","ChunkProviderHell","jv","net/minecraft/src","0"
"field_40378_c","field_40378_c","c","LMapGenNetherBridge;","Led;","ChunkProviderHell","jv","net/minecraft/src","0"
"field_40378_c","genNetherBridge","c","LMapGenNetherBridge;","Led;","ChunkProviderHell","jv","net/minecraft/src","0"
"field_4162_p","field_4162_p","q","[D","[D","ChunkProviderHell","jv","net/minecraft/src","0"
"field_4161_q","gravelNoise","r","[D","[D","ChunkProviderHell","jv","net/minecraft/src","0"
"field_4160_r","field_4160_r","s","[D","[D","ChunkProviderHell","jv","net/minecraft/src","0"
@@ -2957,7 +2957,7 @@
"field_28037_c","keepFurnaceInventory","cc","Z","Z","BlockFurnace","eu","net/minecraft/src","0"
"field_4216_a","worldObj","a","LWorld;","Lry;","WorldProvider","k","net/minecraft/src","0"
"field_4215_b","worldChunkMgr","b","LWorldChunkManager;","Lvh;","WorldProvider","k","net/minecraft/src","0"
"field_4220_c","isNether","c","Z","Z","WorldProvider","k","net/minecraft/src","0"
"field_4220_c","isAlternateDimension","c","Z","Z","WorldProvider","k","net/minecraft/src","0"
"field_6479_d","isHellWorld","d","Z","Z","WorldProvider","k","net/minecraft/src","0"
"field_6478_e","hasNoSky","e","Z","Z","WorldProvider","k","net/minecraft/src","0"
"field_4219_d","lightBrightnessTable","f","[F","[F","WorldProvider","k","net/minecraft/src","0"
@@ -2982,7 +2982,7 @@
"field_837_a","name","a","Ljava/lang/String;","Ljava/lang/String;","InventoryLargeChest","adv","net/minecraft/src","0"
"field_836_b","upperChest","b","LIInventory;","Lde;","InventoryLargeChest","adv","net/minecraft/src","0"
"field_838_c","lowerChest","c","LIInventory;","Lde;","InventoryLargeChest","adv","net/minecraft/src","0"
"field_1306_a","field_1306_a","a","I","I","MapGenBase","bz","net/minecraft/src","0"
"field_1306_a","range","a","I","I","MapGenBase","bz","net/minecraft/src","0"
"field_1305_b","rand","b","Ljava/util/Random;","Ljava/util/Random;","MapGenBase","bz","net/minecraft/src","0"
"field_35625_d","worldObj","c","LWorld;","Lry;","MapGenBase","bz","net/minecraft/src","0"
"field_455_a","signEntityClass","a","Ljava/lang/Class;","Ljava/lang/Class;","BlockSign","mr","net/minecraft/src","0"
@@ -3038,7 +3038,7 @@
"field_4229_i","field_4229_i","i","D","D","TextureCompassFX","aih","net/minecraft/src","0"
"field_4228_j","field_4228_j","j","D","D","TextureCompassFX","aih","net/minecraft/src","0"
"field_35104_a","field_35104_a","a","Z","Z","ComponentVillageWell","aia","net/minecraft/src","0"
"field_35103_b","field_35103_b","b","I","I","ComponentVillageWell","aia","net/minecraft/src","0"
"field_35103_b","averageGroundLevel","b","I","I","ComponentVillageWell","aia","net/minecraft/src","0"
"field_1620_a","craftMatrix","a","LInventoryCrafting;","Llm;","ContainerPlayer","gd","net/minecraft/src","0"
"field_1619_b","craftResult","b","LIInventory;","Lde;","ContainerPlayer","gd","net/minecraft/src","0"
"field_20124_c","isSinglePlayer","c","Z","Z","ContainerPlayer","gd","net/minecraft/src","0"
@@ -3069,14 +3069,14 @@
"field_9404_c","accelerationY","c","D","D","EntityFireball","aad","net/minecraft/src","0"
"field_9403_d","accelerationZ","d","D","D","EntityFireball","aad","net/minecraft/src","0"
"field_34903_b","field_34903_b","c","LGenLayer;","Ljx;","WorldChunkManager","vh","net/minecraft/src","0"
"field_34902_c","field_34902_c","d","LGenLayer;","Ljx;","WorldChunkManager","vh","net/minecraft/src","0"
"field_34902_c","biomeIndexLayer","d","LGenLayer;","Ljx;","WorldChunkManager","vh","net/minecraft/src","0"
"field_34901_d","temperatureLayer","e","LGenLayer;","Ljx;","WorldChunkManager","vh","net/minecraft/src","0"
"field_35565_e","rainfallLayer","f","LGenLayer;","Ljx;","WorldChunkManager","vh","net/minecraft/src","0"
"field_35563_f","biomeCache","g","LBiomeCache;","Lagl;","WorldChunkManager","vh","net/minecraft/src","0"
"field_35564_g","biomesToSpawnIn","h","Ljava/util/List;","Ljava/util/List;","WorldChunkManager","vh","net/minecraft/src","0"
"field_4195_d","field_4195_d","a","[LBiomeGenBase;","[Lsr;","WorldChunkManager","vh","net/minecraft/src","0"
"field_40541_b","field_40541_b","b","[F","[F","WorldChunkManager","vh","net/minecraft/src","0"
"field_35079_a","field_35079_a","a","I","I","ComponentVillageHall","acz","net/minecraft/src","0"
"field_4195_d","rendererBiomeGenCache","a","[LBiomeGenBase;","[Lsr;","WorldChunkManager","vh","net/minecraft/src","0"
"field_40541_b","temperatureCache","b","[F","[F","WorldChunkManager","vh","net/minecraft/src","0"
"field_35079_a","averageGroundLevel","a","I","I","ComponentVillageHall","acz","net/minecraft/src","0"
"field_40649_a","enchantmentRand","a","Ljava/util/Random;","Ljava/util/Random;","EnchantmentHelper","ml","net/minecraft/src","0"
"field_40647_b","enchantmentModifierDamage","b","LEnchantmentModifierDamage;","Lcp;","EnchantmentHelper","ml","net/minecraft/src","0"
"field_40648_c","enchantmentModifierLiving","c","LEnchantmentModifierLiving;","Laen;","EnchantmentHelper","ml","net/minecraft/src","0"
@@ -3124,7 +3124,7 @@
"field_1101_b","hostName","b","Ljava/lang/String;","Ljava/lang/String;","ThreadConnectToServer","pn","net/minecraft/src","0"
"field_1104_c","port","c","I","I","ThreadConnectToServer","pn","net/minecraft/src","0"
"field_1103_d","connectingGui","d","LGuiConnecting;","Lri;","ThreadConnectToServer","pn","net/minecraft/src","0"
"field_41051_a","field_41051_a","a","Z","Z","BlockEndPortal","aid","net/minecraft/src","0"
"field_41051_a","bossDefeated","a","Z","Z","BlockEndPortal","aid","net/minecraft/src","0"
"field_573_a","xPosition","a","I","I","Packet51MapChunk","kh","net/minecraft/src","0"
"field_572_b","yPosition","b","I","I","Packet51MapChunk","kh","net/minecraft/src","0"
"field_579_c","zPosition","c","I","I","Packet51MapChunk","kh","net/minecraft/src","0"
@@ -3336,8 +3336,8 @@
"field_40253_a","field_40253_a","a","LEnchantmentNameParts;","Lea;","EnchantmentNameParts","ea","net/minecraft/src","0"
"field_40251_b","field_40251_b","b","Ljava/util/Random;","Ljava/util/Random;","EnchantmentNameParts","ea","net/minecraft/src","0"
"field_40252_c","field_40252_c","c","[Ljava/lang/String;","[Ljava/lang/String;","EnchantmentNameParts","ea","net/minecraft/src","0"
"field_40154_a","field_40154_a","b","F","F","EntityBlaze","qf","net/minecraft/src","0"
"field_40153_b","field_40153_b","c","I","I","EntityBlaze","qf","net/minecraft/src","0"
"field_40154_a","heightOffset","b","F","F","EntityBlaze","qf","net/minecraft/src","0"
"field_40153_b","heightOffsetUpdateTime","c","I","I","EntityBlaze","qf","net/minecraft/src","0"
"field_40152_d","field_40152_d","d","I","I","EntityBlaze","qf","net/minecraft/src","0"
"field_28180_b","xCenter","a","I","I","MapData","kl","net/minecraft/src","0"
"field_28179_c","zCenter","b","I","I","MapData","kl","net/minecraft/src","0"
@@ -3440,8 +3440,8 @@
"field_40388_a","field_40388_a","a","LNoiseGeneratorOctaves;","Leb;","ChunkProviderEnd","a","net/minecraft/src","0"
"field_40386_b","field_40386_b","b","LNoiseGeneratorOctaves;","Leb;","ChunkProviderEnd","a","net/minecraft/src","0"
"field_40392_m","endWorld","m","LWorld;","Lry;","ChunkProviderEnd","a","net/minecraft/src","0"
"field_40389_n","field_40389_n","n","[D","[D","ChunkProviderEnd","a","net/minecraft/src","0"
"field_40390_o","field_40390_o","o","[LBiomeGenBase;","[Lsr;","ChunkProviderEnd","a","net/minecraft/src","0"
"field_40389_n","densities","n","[D","[D","ChunkProviderEnd","a","net/minecraft/src","0"
"field_40390_o","biomesForGeneration","o","[LBiomeGenBase;","[Lsr;","ChunkProviderEnd","a","net/minecraft/src","0"
"field_40387_c","field_40387_c","c","[D","[D","ChunkProviderEnd","a","net/minecraft/src","0"
"field_40384_d","field_40384_d","d","[D","[D","ChunkProviderEnd","a","net/minecraft/src","0"
"field_40385_e","field_40385_e","e","[D","[D","ChunkProviderEnd","a","net/minecraft/src","0"
@@ -3583,7 +3583,7 @@
"field_41022_b","field_41022_b","b","I","I","EntityEnderCrystal","gb","net/minecraft/src","1"
"field_20174_a","recipePatterns","a","[[Ljava/lang/String;","[[Ljava/lang/String;","RecipesArmor","z","net/minecraft/src","1"
"field_20173_b","recipeItems","b","[[Ljava/lang/Object;","[[Ljava/lang/Object;","RecipesArmor","z","net/minecraft/src","1"
"field_39005_a","field_39005_a","a","I","I","ComponentVillage","sr","net/minecraft/src","1"
"field_39005_a","villagersSpawned","a","I","I","ComponentVillage","sr","net/minecraft/src","1"
"field_4024_a","protocolVersion","a","I","I","Packet1Login","nl","net/minecraft/src","1"
"field_113_b","username","b","Ljava/lang/String;","Ljava/lang/String;","Packet1Login","nl","net/minecraft/src","1"
"field_4026_d","mapSeed","c","J","J","Packet1Login","nl","net/minecraft/src","1"
@@ -3716,7 +3716,7 @@
"field_6039_b","motionX","b","I","I","Packet28EntityVelocity","gu","net/minecraft/src","1"
"field_6042_c","motionY","c","I","I","Packet28EntityVelocity","gu","net/minecraft/src","1"
"field_6041_d","motionZ","d","I","I","Packet28EntityVelocity","gu","net/minecraft/src","1"
"field_35379_a","field_35379_a","a","I","I","ComponentVillagePathGen","so","net/minecraft/src","1"
"field_35379_a","averageGroundLevel","a","I","I","ComponentVillagePathGen","so","net/minecraft/src","1"
"field_35537_a","allowedBiomeGenBases","a","[LBiomeGenBase;","[Lkb;","MapGenStronghold","fz","net/minecraft/src","1"
"field_35535_f","ranBiomeCheck","f","Z","Z","MapGenStronghold","fz","net/minecraft/src","1"
"field_35536_g","structureCoords","g","[LChunkCoordIntPair;","[Lyi;","MapGenStronghold","fz","net/minecraft/src","1"
@@ -3800,17 +3800,17 @@
"field_35525_s","temperature","y","F","F","BiomeGenBase","kb","net/minecraft/src","1"
"field_35524_t","rainfall","z","F","F","BiomeGenBase","kb","net/minecraft/src","1"
"field_40461_A","waterColorMultiplier","A","I","I","BiomeGenBase","kb","net/minecraft/src","1"
"field_35523_u","decorator","B","LBiomeDecorator;","Lgo;","BiomeGenBase","kb","net/minecraft/src","1"
"field_35523_u","biomeDecorator","B","LBiomeDecorator;","Lgo;","BiomeGenBase","kb","net/minecraft/src","1"
"field_25058_r","spawnableMonsterList","C","Ljava/util/List;","Ljava/util/List;","BiomeGenBase","kb","net/minecraft/src","1"
"field_25057_s","spawnableCreatureList","D","Ljava/util/List;","Ljava/util/List;","BiomeGenBase","kb","net/minecraft/src","1"
"field_25056_t","spawnableWaterCreatureList","E","Ljava/util/List;","Ljava/util/List;","BiomeGenBase","kb","net/minecraft/src","1"
"field_27051_u","enableSnow","K","Z","Z","BiomeGenBase","kb","net/minecraft/src","1"
"field_27050_v","enableRain","L","Z","Z","BiomeGenBase","kb","net/minecraft/src","1"
"field_35529_y","biomeID","F","I","I","BiomeGenBase","kb","net/minecraft/src","1"
"field_35528_z","treeGenerator","G","LWorldGenTrees;","Lxs;","BiomeGenBase","kb","net/minecraft/src","1"
"field_35515_A","bigTreeGenerator","H","LWorldGenBigTree;","Lim;","BiomeGenBase","kb","net/minecraft/src","1"
"field_35516_B","forestGenerator","I","LWorldGenForest;","Ll;","BiomeGenBase","kb","net/minecraft/src","1"
"field_35517_C","swampTreeGenerator","J","LWorldGenSwamp;","Lbk;","BiomeGenBase","kb","net/minecraft/src","1"
"field_35528_z","worldGenTrees","G","LWorldGenTrees;","Lxs;","BiomeGenBase","kb","net/minecraft/src","1"
"field_35515_A","worldGenBigTree","H","LWorldGenBigTree;","Lim;","BiomeGenBase","kb","net/minecraft/src","1"
"field_35516_B","worldGenForest","I","LWorldGenForest;","Ll;","BiomeGenBase","kb","net/minecraft/src","1"
"field_35517_C","worldGenSwamp","J","LWorldGenSwamp;","Lbk;","BiomeGenBase","kb","net/minecraft/src","1"
"field_40334_a","tableInventory","a","LIInventory;","Llp;","ContainerEnchantment","iq","net/minecraft/src","1"
"field_40338_h","worldPointer","h","LWorld;","Lfi;","ContainerEnchantment","iq","net/minecraft/src","1"
"field_40339_i","field_40339_i","i","I","I","ContainerEnchantment","iq","net/minecraft/src","1"
@@ -3829,12 +3829,12 @@
"field_35156_e","xpOrbHealth","d","I","I","EntityXPOrb","cn","net/minecraft/src","1"
"field_35154_f","xpValue","e","I","I","EntityXPOrb","cn","net/minecraft/src","1"
"field_40316_a","field_40316_a","a","Z","Z","ComponentStrongholdPortalRoom","lf","net/minecraft/src","1"
"field_35678_a","x1","a","I","I","StructureBoundingBox","vb","net/minecraft/src","1"
"field_35676_b","y1","b","I","I","StructureBoundingBox","vb","net/minecraft/src","1"
"field_35677_c","z1","c","I","I","StructureBoundingBox","vb","net/minecraft/src","1"
"field_35674_d","x2","d","I","I","StructureBoundingBox","vb","net/minecraft/src","1"
"field_35675_e","y2","e","I","I","StructureBoundingBox","vb","net/minecraft/src","1"
"field_35673_f","z2","f","I","I","StructureBoundingBox","vb","net/minecraft/src","1"
"field_35678_a","minX","a","I","I","StructureBoundingBox","vb","net/minecraft/src","1"
"field_35676_b","minY","b","I","I","StructureBoundingBox","vb","net/minecraft/src","1"
"field_35677_c","minZ","c","I","I","StructureBoundingBox","vb","net/minecraft/src","1"
"field_35674_d","maxX","d","I","I","StructureBoundingBox","vb","net/minecraft/src","1"
"field_35675_e","maxY","e","I","I","StructureBoundingBox","vb","net/minecraft/src","1"
"field_35673_f","maxZ","f","I","I","StructureBoundingBox","vb","net/minecraft/src","1"
"field_941_a","worldMap","a","LIBlockAccess;","Lwy;","PathFinder","ge","net/minecraft/src","1"
"field_940_b","path","b","LPath;","Lkv;","PathFinder","ge","net/minecraft/src","1"
"field_943_c","pointMap","c","LIntHashMap;","Ljw;","PathFinder","ge","net/minecraft/src","1"
@@ -4017,7 +4017,7 @@
"field_20012_b","inventoryType","b","I","I","Packet100OpenWindow","iz","net/minecraft/src","1"
"field_20015_c","windowTitle","c","Ljava/lang/String;","Ljava/lang/String;","Packet100OpenWindow","iz","net/minecraft/src","1"
"field_20014_d","slotsCount","d","I","I","Packet100OpenWindow","iz","net/minecraft/src","1"
"field_35396_a","field_35396_a","a","I","I","ComponentVillageWoodHut","yd","net/minecraft/src","1"
"field_35396_a","averageGroundLevel","a","I","I","ComponentVillageWoodHut","yd","net/minecraft/src","1"
"field_35394_b","field_35394_b","b","Z","Z","ComponentVillageWoodHut","yd","net/minecraft/src","1"
"field_35395_c","field_35395_c","c","I","I","ComponentVillageWoodHut","yd","net/minecraft/src","1"
"field_98_a","entityId","a","I","I","Packet23VehicleSpawn","ro","net/minecraft/src","1"
@@ -4244,7 +4244,7 @@
"field_12025_g","destroyedBlockPositions","g","Ljava/util/Set;","Ljava/util/Set;","Explosion","py","net/minecraft/src","1"
"field_35333_a","field_35333_a","a","LEnumDoor;","Lpt;","ComponentStrongholdPrison","og","net/minecraft/src","1"
"field_27034_a","isPowered","a","Z","Z","BlockRail","ok","net/minecraft/src","1"
"field_35381_a","field_35381_a","a","I","I","ComponentVillageChurch","ob","net/minecraft/src","1"
"field_35381_a","averageGroundLevel","a","I","I","ComponentVillageChurch","ob","net/minecraft/src","1"
"field_40305_a","field_40305_a","a","Z","Z","ComponentNetherBridgeThrone","vd","net/minecraft/src","1"
"field_35540_a","field_35540_a","a","[F","[F","MapGenRavine","wo","net/minecraft/src","1"
"field_21158_a","dataTypes","a","Ljava/util/HashMap;","Ljava/util/HashMap;","DataWatcher","su","net/minecraft/src","1"
@@ -4372,7 +4372,7 @@
"field_40598_L","field_40598_L","L","D","D","Potion","ir","net/minecraft/src","1"
"field_40599_M","field_40599_M","M","Z","Z","Potion","ir","net/minecraft/src","1"
"field_40600_N","liquidColor","N","I","I","Potion","ir","net/minecraft/src","1"
"field_35383_a","field_35383_a","a","I","I","ComponentVillageTorch","oe","net/minecraft/src","1"
"field_35383_a","averageGroundLevel","a","I","I","ComponentVillageTorch","oe","net/minecraft/src","1"
"field_650_a","fallInstantly","a","Z","Z","BlockSand","gv","net/minecraft/src","1"
"field_738_a","tagMap","a","Ljava/util/Map;","Ljava/util/Map;","NBTTagCompound","ng","net/minecraft/src","1"
"field_35116_a","entityId","a","I","I","Packet41EntityEffect","dx","net/minecraft/src","1"
@@ -4500,9 +4500,9 @@
"field_40069_r","field_40069_r","r","Ljava/util/Random;","Ljava/util/Random;","TileEntityEnchantmentTable","cj","net/minecraft/src","1"
"field_945_a","saveDir","a","Ljava/io/File;","Ljava/io/File;","ChunkLoader","sj","net/minecraft/src","1"
"field_944_b","createIfNecessary","b","Z","Z","ChunkLoader","sj","net/minecraft/src","1"
"field_35371_a","field_35371_a","a","I","I","ComponentVillageField","p","net/minecraft/src","1"
"field_35371_a","averageGroundLevel","a","I","I","ComponentVillageField","p","net/minecraft/src","1"
"field_1033_a","mcServer","a","LMinecraftServer;","LMinecraftServer;","ThreadServerApplication","cu","net/minecraft/src","1"
"field_35400_a","field_35400_a","a","I","I","ComponentVillageField2","vc","net/minecraft/src","1"
"field_35400_a","averageGroundLevel","a","I","I","ComponentVillageField2","vc","net/minecraft/src","1"
"field_732_a","stringValue","a","Ljava/lang/String;","Ljava/lang/String;","NBTTagString","wq","net/minecraft/src","1"
"field_26002_a","convTable","a","[B","[B","ChunkBlockMap","uj","net/minecraft/src","1"
"field_21138_a","recipeOutput","a","LItemStack;","Ljb;","ShapelessRecipes","sp","net/minecraft/src","1"
@@ -4587,10 +4587,10 @@
"field_35258_D","chunk_X","c","I","I","BiomeDecorator","go","net/minecraft/src","1"
"field_35259_E","chunk_Z","d","I","I","BiomeDecorator","go","net/minecraft/src","1"
"field_35260_F","biomeGenerator","e","LBiomeGenBase;","Lkb;","BiomeDecorator","go","net/minecraft/src","1"
"field_35270_a","clayGenerator","f","LWorldGenerator;","Lor;","BiomeDecorator","go","net/minecraft/src","1"
"field_35268_b","sandGenerator","g","LWorldGenerator;","Lor;","BiomeDecorator","go","net/minecraft/src","1"
"field_35270_a","clayGen","f","LWorldGenerator;","Lor;","BiomeDecorator","go","net/minecraft/src","1"
"field_35268_b","sandGen","g","LWorldGenerator;","Lor;","BiomeDecorator","go","net/minecraft/src","1"
"field_35269_c","gravelGenerator","h","LWorldGenerator;","Lor;","BiomeDecorator","go","net/minecraft/src","1"
"field_35266_d","dirtGenerator","i","LWorldGenerator;","Lor;","BiomeDecorator","go","net/minecraft/src","1"
"field_35266_d","dirtGen","i","LWorldGenerator;","Lor;","BiomeDecorator","go","net/minecraft/src","1"
"field_35267_e","gravelGen","j","LWorldGenerator;","Lor;","BiomeDecorator","go","net/minecraft/src","1"
"field_35264_f","coalGen","k","LWorldGenerator;","Lor;","BiomeDecorator","go","net/minecraft/src","1"
"field_35265_g","ironGen","l","LWorldGenerator;","Lor;","BiomeDecorator","go","net/minecraft/src","1"
@@ -4786,7 +4786,7 @@
"field_482_d","zCoord","n","I","I","TileEntity","oh","net/minecraft/src","1"
"field_31006_h","tileEntityInvalid","o","Z","Z","TileEntity","oh","net/minecraft/src","1"
"field_35165_n","blockMetadata","p","I","I","TileEntity","oh","net/minecraft/src","1"
"field_35166_o","field_35166_o","q","LBlock;","Ltl;","TileEntity","oh","net/minecraft/src","1"
"field_35166_o","blockType","q","LBlock;","Ltl;","TileEntity","oh","net/minecraft/src","1"
"field_659_a","numAdjacentSources","a","I","I","BlockFlowing","nx","net/minecraft/src","1"
"field_658_b","isOptimalFlowDirection","b","[Z","[Z","BlockFlowing","nx","net/minecraft/src","1"
"field_660_c","flowCost","c","[I","[I","BlockFlowing","nx","net/minecraft/src","1"
@@ -4909,7 +4909,7 @@
"field_748_m","heightLimitLimit","m","I","I","WorldGenBigTree","im","net/minecraft/src","1"
"field_747_n","leafDistanceLimit","n","I","I","WorldGenBigTree","im","net/minecraft/src","1"
"field_746_o","leafNodes","o","[[I","[[I","WorldGenBigTree","im","net/minecraft/src","1"
"field_271_a","cropID","a","I","I","ItemSeeds","ql","net/minecraft/src","1"
"field_271_a","blockType","a","I","I","ItemSeeds","ql","net/minecraft/src","1"
"field_40253_bQ","field_40253_bQ","b","I","I","ItemSeeds","ql","net/minecraft/src","1"
"field_40269_f","field_40269_f","f","LEntityPlayer;","Lgz;","SlotBrewingStandPotion","lj","net/minecraft/src","1"
"field_40270_a","field_40270_a","a","LContainerBrewingStand;","Lje;","SlotBrewingStandPotion","lj","net/minecraft/src","1"
@@ -4982,10 +4982,10 @@
"field_40499_g","damageReductionAmountArray","g","[I","[I","EnumArmorMaterial","cx","net/minecraft/src","1"
"field_40505_h","enchantability","h","I","I","EnumArmorMaterial","cx","net/minecraft/src","1"
"field_40506_i","allArmorMaterials","i","[LEnumArmorMaterial;","[Lcx;","EnumArmorMaterial","cx","net/minecraft/src","1"
"field_35403_a","field_35403_a","a","I","I","ComponentVillageHouse4_Garden","gp","net/minecraft/src","1"
"field_35403_a","averageGroundLevel","a","I","I","ComponentVillageHouse4_Garden","gp","net/minecraft/src","1"
"field_35402_b","field_35402_b","b","Z","Z","ComponentVillageHouse4_Garden","gp","net/minecraft/src","1"
"field_40494_a","field_40494_a","a","LEnchantment;","Lmq;","EnchantmentData","on","net/minecraft/src","1"
"field_40493_b","field_40493_b","b","I","I","EnchantmentData","on","net/minecraft/src","1"
"field_40494_a","enchantmentobj","a","LEnchantment;","Lmq;","EnchantmentData","on","net/minecraft/src","1"
"field_40493_b","enchantmentLevel","b","I","I","EnchantmentData","on","net/minecraft/src","1"
"field_31044_a","isSticky","a","Z","Z","BlockPistonBase","jp","net/minecraft/src","1"
"field_31043_b","ignoreUpdates","b","Z","Z","BlockPistonBase","jp","net/minecraft/src","1"
"field_9017_a","healthMP","a","I","I","Packet8UpdateHealth","ew","net/minecraft/src","1"
@@ -5009,7 +5009,7 @@
"field_741_a","byteValue","a","B","B","NBTTagByte","ps","net/minecraft/src","1"
"field_35316_g","boundingBox","g","LStructureBoundingBox;","Lvb;","StructureComponent","jx","net/minecraft/src","1"
"field_35317_h","coordBaseMode","h","I","I","StructureComponent","jx","net/minecraft/src","1"
"field_35318_i","field_35318_i","i","I","I","StructureComponent","jx","net/minecraft/src","1"
"field_35318_i","componentType","i","I","I","StructureComponent","jx","net/minecraft/src","1"
"field_20908_a","playerNetServerHandler","a","LNetServerHandler;","Lkt;","EntityPlayerMP","fl","net/minecraft/src","1"
"field_419_b","mcServer","b","LMinecraftServer;","LMinecraftServer;","EntityPlayerMP","fl","net/minecraft/src","1"
"field_425_ad","itemInWorldManager","c","LItemInWorldManager;","Lto;","EntityPlayerMP","fl","net/minecraft/src","1"
@@ -5020,7 +5020,7 @@
"field_9156_bu","lastHealth","cc","I","I","EntityPlayerMP","fl","net/minecraft/src","1"
"field_35221_cc","field_35221_cc","cd","I","I","EntityPlayerMP","fl","net/minecraft/src","1"
"field_35222_cd","field_35222_cd","ce","Z","Z","EntityPlayerMP","fl","net/minecraft/src","1"
"field_35220_ce","field_35220_ce","cf","I","I","EntityPlayerMP","fl","net/minecraft/src","1"
"field_35220_ce","lastExperience","cf","I","I","EntityPlayerMP","fl","net/minecraft/src","1"
"field_15004_bw","ticksOfInvuln","cg","I","I","EntityPlayerMP","fl","net/minecraft/src","1"
"field_20066_bG","playerInventory","ch","[LItemStack;","[Ljb;","EntityPlayerMP","fl","net/minecraft/src","1"
"field_20065_bH","currentWindowId","ci","I","I","EntityPlayerMP","fl","net/minecraft/src","1"
@@ -5041,7 +5041,7 @@
"field_35096_j","generic","j","LDamageSource;","Lpo;","DamageSource","po","net/minecraft/src","1"
"field_35097_k","explosion","k","LDamageSource;","Lpo;","DamageSource","po","net/minecraft/src","1"
"field_35094_l","magic","l","LDamageSource;","Lpo;","DamageSource","po","net/minecraft/src","1"
"field_35092_n","isBlockable","n","Z","Z","DamageSource","po","net/minecraft/src","1"
"field_35092_n","isUnblockable","n","Z","Z","DamageSource","po","net/minecraft/src","1"
"field_35093_o","isDamageAllowedInCreativeMode","o","Z","Z","DamageSource","po","net/minecraft/src","1"
"field_35100_p","hungerDamage","p","F","F","DamageSource","po","net/minecraft/src","1"
"field_40278_q","fireDamage","q","Z","Z","DamageSource","po","net/minecraft/src","1"
@@ -5075,10 +5075,10 @@
"field_27018_b","lightningState","b","I","I","EntityLightningBolt","d","net/minecraft/src","1"
"field_27019_a","boltVertex","a","J","J","EntityLightningBolt","d","net/minecraft/src","1"
"field_27020_c","boltLivingTime","c","I","I","EntityLightningBolt","d","net/minecraft/src","1"
"field_35489_a","metaId","a","I","I","StructurePieceTreasure","ib","net/minecraft/src","1"
"field_35487_b","minItemStack","b","I","I","StructurePieceTreasure","ib","net/minecraft/src","1"
"field_35488_c","maxItemStack","c","I","I","StructurePieceTreasure","ib","net/minecraft/src","1"
"field_35486_e","itemWeight","e","I","I","StructurePieceTreasure","ib","net/minecraft/src","1"
"field_35489_a","itemID","a","I","I","StructurePieceTreasure","ib","net/minecraft/src","1"
"field_35487_b","itemMetadata","b","I","I","StructurePieceTreasure","ib","net/minecraft/src","1"
"field_35488_c","minItemStack","c","I","I","StructurePieceTreasure","ib","net/minecraft/src","1"
"field_35486_e","maxItemStack","e","I","I","StructurePieceTreasure","ib","net/minecraft/src","1"
"field_20017_a","windowId","a","I","I","Packet103SetSlot","hx","net/minecraft/src","1"
"field_20016_b","itemSlot","b","I","I","Packet103SetSlot","hx","net/minecraft/src","1"
"field_20018_c","myItemStack","c","LItemStack;","Ljb;","Packet103SetSlot","hx","net/minecraft/src","1"
@@ -5107,7 +5107,7 @@
"field_40521_e","profilingMap","e","Ljava/util/Map;","Ljava/util/Map;","Profiler","pf","net/minecraft/src","1"
"field_35252_a","worldYBits","a","I","I","World","fi","net/minecraft/src","1"
"field_35250_b","xShift","b","I","I","World","fi","net/minecraft/src","1"
"field_35251_c","worldYMax","c","I","I","World","fi","net/minecraft/src","1"
"field_35251_c","worldHeight","c","I","I","World","fi","net/minecraft/src","1"
"field_35248_d","worldYMask","d","I","I","World","fi","net/minecraft/src","1"
"field_35249_e","worldOceanHeight","e","I","I","World","fi","net/minecraft/src","1"
"field_4280_a","scheduledUpdatesAreImmediate","f","Z","Z","World","fi","net/minecraft/src","1"
@@ -5187,7 +5187,7 @@
"field_35552_e","field_35552_e","e","Ljava/util/List;","Ljava/util/List;","IntCache","af","net/minecraft/src","1"
"field_152_a","chunkXPos","a","I","I","ChunkCoordIntPair","yi","net/minecraft/src","1"
"field_151_b","chunkZPos","b","I","I","ChunkCoordIntPair","yi","net/minecraft/src","1"
"field_35377_a","field_35377_a","a","I","I","ComponentVillageHouse2","di","net/minecraft/src","1"
"field_35377_a","averageGroundLevel","a","I","I","ComponentVillageHouse2","di","net/minecraft/src","1"
"field_253_a","spawnID","a","I","I","ItemReed","ln","net/minecraft/src","1"
"field_48_a","xPosition","a","I","I","Packet52MultiBlockChange","wj","net/minecraft/src","1"
"field_47_b","zPosition","b","I","I","Packet52MultiBlockChange","wj","net/minecraft/src","1"
@@ -5356,15 +5356,15 @@
"field_40249_bQ","field_40249_bQ","b","LEnumToolMaterial;","Lby;","ItemSword","pi","net/minecraft/src","1"
"field_933_a","logger","a","Ljava/util/logging/Logger;","Ljava/util/logging/Logger;","ConsoleLogManager","hm","net/minecraft/src","1"
"field_494_e","chestContents","i","[LItemStack;","[Ljb;","TileEntityChest","js","net/minecraft/src","1"
"field_35175_a","field_35175_a","a","Z","Z","TileEntityChest","js","net/minecraft/src","1"
"field_35172_b","field_35172_b","b","LTileEntityChest;","Ljs;","TileEntityChest","js","net/minecraft/src","1"
"field_35173_c","field_35173_c","c","LTileEntityChest;","Ljs;","TileEntityChest","js","net/minecraft/src","1"
"field_35170_d","field_35170_d","d","LTileEntityChest;","Ljs;","TileEntityChest","js","net/minecraft/src","1"
"field_35171_e","field_35171_e","e","LTileEntityChest;","Ljs;","TileEntityChest","js","net/minecraft/src","1"
"field_35168_f","field_35168_f","f","F","F","TileEntityChest","js","net/minecraft/src","1"
"field_35169_g","field_35169_g","g","F","F","TileEntityChest","js","net/minecraft/src","1"
"field_35176_h","field_35176_h","h","I","I","TileEntityChest","js","net/minecraft/src","1"
"field_35174_q","field_35174_q","j","I","I","TileEntityChest","js","net/minecraft/src","1"
"field_35175_a","adjacentChestChecked","a","Z","Z","TileEntityChest","js","net/minecraft/src","1"
"field_35172_b","adjacentChestZNeg","b","LTileEntityChest;","Ljs;","TileEntityChest","js","net/minecraft/src","1"
"field_35173_c","adjacentChestXPos","c","LTileEntityChest;","Ljs;","TileEntityChest","js","net/minecraft/src","1"
"field_35170_d","adjacentChestXNeg","d","LTileEntityChest;","Ljs;","TileEntityChest","js","net/minecraft/src","1"
"field_35171_e","adjacentChestZPos","e","LTileEntityChest;","Ljs;","TileEntityChest","js","net/minecraft/src","1"
"field_35168_f","lidAngle","f","F","F","TileEntityChest","js","net/minecraft/src","1"
"field_35169_g","prevLidAngle","g","F","F","TileEntityChest","js","net/minecraft/src","1"
"field_35176_h","numUsingPlayers","h","I","I","TileEntityChest","js","net/minecraft/src","1"
"field_35174_q","ticksSinceSync","j","I","I","TileEntityChest","js","net/minecraft/src","1"
"field_35293_a","mushroomType","a","I","I","WorldGenBigMushroom","vi","net/minecraft/src","1"
"field_27043_a","entityID","a","I","I","Packet71Weather","fd","net/minecraft/src","1"
"field_27042_b","posX","b","I","I","Packet71Weather","fd","net/minecraft/src","1"
@@ -5402,10 +5402,10 @@
"field_975_h","playerList","h","Ljava/util/ArrayList;","Ljava/util/ArrayList;","NetworkListenThread","ep","net/minecraft/src","1"
"field_980_c","mcServer","c","LMinecraftServer;","LMinecraftServer;","NetworkListenThread","ep","net/minecraft/src","1"
"field_35506_i","field_35506_i","i","Ljava/util/HashMap;","Ljava/util/HashMap;","NetworkListenThread","ep","net/minecraft/src","1"
"field_35483_d","field_35483_d","d","I","I","WeightedRandomChoice","cp","net/minecraft/src","1"
"field_35483_d","itemWeight","d","I","I","WeightedRandomChoice","cp","net/minecraft/src","1"
"field_20114_a","recipePatterns","a","[[Ljava/lang/String;","[[Ljava/lang/String;","RecipesWeapons","wp","net/minecraft/src","1"
"field_20113_b","recipeItems","b","[[Ljava/lang/Object;","[[Ljava/lang/Object;","RecipesWeapons","wp","net/minecraft/src","1"
"field_35373_a","field_35373_a","a","I","I","ComponentVillageHouse3","gi","net/minecraft/src","1"
"field_35373_a","averageGroundLevel","a","I","I","ComponentVillageHouse3","gi","net/minecraft/src","1"
"field_392_a","field_392_a","a","Z","Z","EntityChicken","wk","net/minecraft/src","1"
"field_391_b","field_391_b","b","F","F","EntityChicken","wk","net/minecraft/src","1"
"field_395_ad","destPos","c","F","F","EntityChicken","wk","net/minecraft/src","1"
@@ -5601,7 +5601,7 @@
"field_994_b","serverProperties","b","Ljava/util/Properties;","Ljava/util/Properties;","PropertyManager","qt","net/minecraft/src","1"
"field_996_c","serverPropertiesFile","c","Ljava/io/File;","Ljava/io/File;","PropertyManager","qt","net/minecraft/src","1"
"field_35385_a","field_35385_a","a","Z","Z","ComponentVillageWell","ov","net/minecraft/src","1"
"field_35384_b","field_35384_b","b","I","I","ComponentVillageWell","ov","net/minecraft/src","1"
"field_35384_b","averageGroundLevel","b","I","I","ComponentVillageWell","ov","net/minecraft/src","1"
"field_20143_a","craftMatrix","a","LInventoryCrafting;","Lmc;","ContainerPlayer","aa","net/minecraft/src","1"
"field_20142_b","craftResult","b","LIInventory;","Llp;","ContainerPlayer","aa","net/minecraft/src","1"
"field_20144_c","isMultiPlayer","c","Z","Z","ContainerPlayer","aa","net/minecraft/src","1"
@@ -5623,7 +5623,7 @@
"field_35145_e","biomeCache","f","LBiomeCache;","Ltz;","WorldChunkManager","xe","net/minecraft/src","1"
"field_35143_f","biomesToSpawnIn","g","Ljava/util/List;","Ljava/util/List;","WorldChunkManager","xe","net/minecraft/src","1"
"field_40580_a","field_40580_a","a","[F","[F","WorldChunkManager","xe","net/minecraft/src","1"
"field_35375_a","field_35375_a","a","I","I","ComponentVillageHall","s","net/minecraft/src","1"
"field_35375_a","averageGroundLevel","a","I","I","ComponentVillageHall","s","net/minecraft/src","1"
"field_40647_a","enchantmentRand","a","Ljava/util/Random;","Ljava/util/Random;","EnchantmentHelper","tc","net/minecraft/src","1"
"field_40645_b","enchantmentModifierDamage","b","LEnchantmentModifierDamage;","Lkr;","EnchantmentHelper","tc","net/minecraft/src","1"
"field_40646_c","enchantmentModifierLiving","c","LEnchantmentModifierLiving;","Lxp;","EnchantmentHelper","tc","net/minecraft/src","1"
Can't render this file because it is too large.
+102 -102
View File
@@ -4,13 +4,13 @@
"func_35076_b","func_35076_b","b","(LComponentVillageStartPiece;Ljava/util/List;Ljava/util/Random;II)LStructureComponent;","(Lyp;Ljava/util/List;Ljava/util/Random;II)Lnk;","ComponentVillage","xf","net/minecraft/src","0"
"func_35075_b","getAverageGroundLevel","b","(LWorld;LStructureBoundingBox;)I","(Lry;Lnl;)I","ComponentVillage","xf","net/minecraft/src","0"
"func_35074_a","canVillageGoDeeper","a","(LStructureBoundingBox;)Z","(Lnl;)Z","ComponentVillage","xf","net/minecraft/src","0"
"func_40044_a","func_40044_a","a","(LWorld;LStructureBoundingBox;IIII)V","(Lry;Lnl;IIII)V","ComponentVillage","xf","net/minecraft/src","0"
"func_40043_a","func_40043_a","a","(I)I","(I)I","ComponentVillage","xf","net/minecraft/src","0"
"func_40044_a","spawnVillagers","a","(LWorld;LStructureBoundingBox;IIII)V","(Lry;Lnl;IIII)V","ComponentVillage","xf","net/minecraft/src","0"
"func_40043_a","getVillagerType","a","(I)I","(I)I","ComponentVillage","xf","net/minecraft/src","0"
"func_594_b","displaySavingString","a","(Ljava/lang/String;)V","(Ljava/lang/String;)V","IProgressUpdate","rz","net/minecraft/src","0"
"func_595_d","displayLoadingString","b","(Ljava/lang/String;)V","(Ljava/lang/String;)V","IProgressUpdate","rz","net/minecraft/src","0"
"func_593_a","setLoadingProgress","a","(I)V","(I)V","IProgressUpdate","rz","net/minecraft/src","0"
"func_40156_a","func_40156_a","a","(LDragonPart;LDamageSource;I)Z","(Lvc;Lpm;I)Z","EntityDragonBase","adh","net/minecraft/src","0"
"func_40155_e","func_40155_e","e","(LDamageSource;I)Z","(Lpm;I)Z","EntityDragonBase","adh","net/minecraft/src","0"
"func_40156_a","attackEntityFromPart","a","(LDragonPart;LDamageSource;I)Z","(Lvc;Lpm;I)Z","EntityDragonBase","adh","net/minecraft/src","0"
"func_40155_e","superAttackFrom","e","(LDamageSource;I)Z","(Lpm;I)Z","EntityDragonBase","adh","net/minecraft/src","0"
"func_407_b","multiplyVelocity","d","(F)LEntityFX;","(F)Lwc;","EntityFX","wc","net/minecraft/src","0"
"func_405_d","func_405_d","e","(F)LEntityFX;","(F)Lwc;","EntityFX","wc","net/minecraft/src","0"
"func_40097_b","func_40097_b","b","(FFF)V","(FFF)V","EntityFX","wc","net/minecraft/src","0"
@@ -20,7 +20,7 @@
"func_406_a","renderParticle","a","(LTessellator;FFFFFF)V","(Lcv;FFFFFF)V","EntityFX","wc","net/minecraft/src","0"
"func_404_c","getFXLayer","g","()I","()I","EntityFX","wc","net/minecraft/src","0"
"func_40099_c","setParticleTextureIndex","c","(I)V","(I)V","EntityFX","wc","net/minecraft/src","0"
"func_40100_q","func_40100_q","k","()I","()I","EntityFX","wc","net/minecraft/src","0"
"func_40100_q","getParticleTextureIndex","k","()I","()I","EntityFX","wc","net/minecraft/src","0"
"func_600_a","getBlockId","a","(III)I","(III)I","IBlockAccess","kq","net/minecraft/src","0"
"func_603_b","getBlockTileEntity","b","(III)LTileEntity;","(III)Lbq;","IBlockAccess","kq","net/minecraft/src","0"
"func_35451_b","getLightBrightnessForSkyBlocks","a","(IIII)I","(IIII)I","IBlockAccess","kq","net/minecraft/src","0"
@@ -50,10 +50,10 @@
"func_35181_c","setCarryingData","c","(I)V","(I)V","EntityEnderman","aii","net/minecraft/src","0"
"func_35180_s","getCarryingData","aD","()I","()I","EntityEnderman","aii","net/minecraft/src","0"
"func_22022_g","ignoreTick","f","(LWorld;IIII)Z","(Lry;IIII)Z","BlockRedstoneRepeater","mz","net/minecraft/src","0"
"func_40282_a","func_40282_a","a","(LEntityDragon;FFF)V","(Loo;FFF)V","RenderDragon","ado","net/minecraft/src","0"
"func_40282_a","rotateDragonBody","a","(LEntityDragon;FFF)V","(Loo;FFF)V","RenderDragon","ado","net/minecraft/src","0"
"func_40280_a","func_40280_a","a","(LEntityDragon;FFFFFF)V","(Loo;FFFFFF)V","RenderDragon","ado","net/minecraft/src","0"
"func_40281_a","func_40281_a","a","(LEntityDragon;DDDFF)V","(Loo;DDDFF)V","RenderDragon","ado","net/minecraft/src","0"
"func_40279_a","func_40279_a","a","(LEntityDragon;F)V","(Loo;F)V","RenderDragon","ado","net/minecraft/src","0"
"func_40281_a","renderDragon","a","(LEntityDragon;DDDFF)V","(Loo;DDDFF)V","RenderDragon","ado","net/minecraft/src","0"
"func_40279_a","renderDragonDying","a","(LEntityDragon;F)V","(Loo;F)V","RenderDragon","ado","net/minecraft/src","0"
"func_40283_a","func_40283_a","a","(LEntityDragon;IF)I","(Loo;IF)I","RenderDragon","ado","net/minecraft/src","0"
"func_35646_d","enableAbilities","b","(LEntityPlayer;)V","(Lvi;)V","PlayerControllerCreative","uq","net/minecraft/src","0"
"func_35645_e","disableAbilities","c","(LEntityPlayer;)V","(Lvi;)V","PlayerControllerCreative","uq","net/minecraft/src","0"
@@ -209,9 +209,9 @@
"func_40712_q","getItemNameandInformation","q","()Ljava/util/List;","()Ljava/util/List;","ItemStack","dk","net/minecraft/src","0"
"func_40713_r","func_40713_r","r","()Z","()Z","ItemStack","dk","net/minecraft/src","0"
"func_40707_s","func_40707_s","s","()LEnumRarity;","()Lja;","ItemStack","dk","net/minecraft/src","0"
"func_40708_t","func_40708_t","t","()Z","()Z","ItemStack","dk","net/minecraft/src","0"
"func_40708_t","isItemEnchantable","t","()Z","()Z","ItemStack","dk","net/minecraft/src","0"
"func_40705_a","addEnchantment","a","(LEnchantment;I)V","(Laef;I)V","ItemStack","dk","net/minecraft/src","0"
"func_40711_u","func_40711_u","u","()Z","()Z","ItemStack","dk","net/minecraft/src","0"
"func_40711_u","isItemEnchanted","u","()Z","()Z","ItemStack","dk","net/minecraft/src","0"
"func_40434_a_","getEffectNames","e","(LItemStack;)Ljava/util/List;","(Ldk;)Ljava/util/List;","ItemPotion","abk","net/minecraft/src","0"
"func_40431_c_","getEffectNamesFromDamage","d","(I)Ljava/util/List;","(I)Ljava/util/List;","ItemPotion","abk","net/minecraft/src","0"
"func_40433_c","isSplash","e","(I)Z","(I)Z","ItemPotion","abk","net/minecraft/src","0"
@@ -291,7 +291,7 @@
"func_166_a","shouldRenderPass","a","(LEntityLiving;IF)I","(Lnq;IF)I","RenderLiving","acq","net/minecraft/src","0"
"func_6331_b","renderEquippedItems","b","(LEntityLiving;F)V","(Lnq;F)V","RenderLiving","acq","net/minecraft/src","0"
"func_21004_a","rotateCorpse","a","(LEntityLiving;FFF)V","(Lnq;FFF)V","RenderLiving","acq","net/minecraft/src","0"
"func_40270_a","func_40270_a","a","(LEntityLiving;FFFFFF)V","(Lnq;FFFFFF)V","RenderLiving","acq","net/minecraft/src","0"
"func_40270_a","renderModel","a","(LEntityLiving;FFFFFF)V","(Lnq;FFFFFF)V","RenderLiving","acq","net/minecraft/src","0"
"func_171_a","doRenderLiving","a","(LEntityLiving;DDDFF)V","(Lnq;DDDFF)V","RenderLiving","acq","net/minecraft/src","0"
"func_6330_a","preRenderCallback","a","(LEntityLiving;F)V","(Lnq;F)V","RenderLiving","acq","net/minecraft/src","0"
"func_4013_a","setRenderPassModel","a","(LModelBase;)V","(Lal;)V","RenderLiving","acq","net/minecraft/src","0"
@@ -370,7 +370,7 @@
"func_35190_e","canPlayerEdit","e","(III)Z","(III)Z","EntityPlayer","vi","net/minecraft/src","0"
"func_40182_b","func_40182_b","c","(I)V","(I)V","EntityPlayer","vi","net/minecraft/src","0"
"func_41014_d","copyPlayer","d","(LEntityPlayer;)V","(Lvi;)V","EntityPlayer","vi","net/minecraft/src","0"
"func_41033_a","func_41033_a","a","([Ljava/lang/String;)LItemColored;","([Ljava/lang/String;)Lhf;","ItemColored","hf","net/minecraft/src","0"
"func_41033_a","setBlockNames","a","([Ljava/lang/String;)LItemColored;","([Ljava/lang/String;)Lhf;","ItemColored","hf","net/minecraft/src","0"
"func_35475_a","createBiomeDecorator","a","()LBiomeDecorator;","()Lql;","BiomeGenBase","sr","net/minecraft/src","0"
"func_35478_a","setTemperatureRainfall","a","(FF)LBiomeGenBase;","(FF)Lsr;","BiomeGenBase","sr","net/minecraft/src","0"
"func_35479_b","setMinMaxHeight","b","(FF)LBiomeGenBase;","(FF)Lsr;","BiomeGenBase","sr","net/minecraft/src","0"
@@ -778,7 +778,7 @@
"func_22329_a","func_22329_a","a","(III)I","(III)I","PathPoint","mo","net/minecraft/src","0"
"func_1180_a","distanceTo","a","(LPathPoint;)F","(Lmo;)F","PathPoint","mo","net/minecraft/src","0"
"func_1179_a","isAssigned","a","()Z","()Z","PathPoint","mo","net/minecraft/src","0"
"func_35374_a","func_35374_a","a","(F)V","(F)V","ContainerCreative","afp","net/minecraft/src","0"
"func_35374_a","scrollTo","a","(F)V","(F)V","ContainerCreative","afp","net/minecraft/src","0"
"func_441_c","setSlimeSize","b","(I)V","(I)V","EntitySlime","aed","net/minecraft/src","0"
"func_25027_v","getSlimeSize","aF","()I","()I","EntitySlime","aed","net/minecraft/src","0"
"func_40135_ac","func_40135_ac","ax","()Ljava/lang/String;","()Ljava/lang/String;","EntitySlime","aed","net/minecraft/src","0"
@@ -805,10 +805,10 @@
"func_590_a","drawSlotInventory","a","(LSlot;)V","(Lvv;)V","GuiContainer","mg","net/minecraft/src","0"
"func_588_a","getSlotAtPosition","a","(II)LSlot;","(II)Lvv;","GuiContainer","mg","net/minecraft/src","0"
"func_20081_a","getIsMouseOverSlot","a","(LSlot;II)Z","(Lvv;II)Z","GuiContainer","mg","net/minecraft/src","0"
"func_35309_a","func_35309_a","a","(LSlot;IIZ)V","(Lvv;IIZ)V","GuiContainer","mg","net/minecraft/src","0"
"func_35309_a","handleMouseClick","a","(LSlot;IIZ)V","(Lvv;IIZ)V","GuiContainer","mg","net/minecraft/src","0"
"values","values","values","()[LEnumDoor;","()[Lmj;","EnumDoor","mj","net/minecraft/src","0"
"valueOf","valueOf","valueOf","(Ljava/lang/String;)LEnumDoor;","(Ljava/lang/String;)Lmj;","EnumDoor","mj","net/minecraft/src","0"
"func_22178_a","func_22178_a","a","()Ljava/lang/String;","()Ljava/lang/String;","ISaveFormat","tq","net/minecraft/src","0"
"func_22178_a","getFormatName","a","()Ljava/lang/String;","()Ljava/lang/String;","ISaveFormat","tq","net/minecraft/src","0"
"func_22176_b","getSaveList","b","()Ljava/util/List;","()Ljava/util/List;","ISaveFormat","tq","net/minecraft/src","0"
"func_22177_c","flushCache","c","()V","()V","ISaveFormat","tq","net/minecraft/src","0"
"func_22173_b","getWorldInfo","a","(Ljava/lang/String;)LWorldInfo;","(Ljava/lang/String;)Lsi;","ISaveFormat","tq","net/minecraft/src","0"
@@ -881,8 +881,8 @@
"func_6329_a","getFontRendererFromRenderManager","a","()LFontRenderer;","()Labe;","Render","rg","net/minecraft/src","0"
"func_40288_a","func_40288_a","a","(LEntitySnowman;F)V","(Lahd;F)V","RenderSnowMan","bh","net/minecraft/src","0"
"func_31016_a","getStoredBlockID","a","()I","()I","TileEntityPiston","agb","net/minecraft/src","0"
"func_31015_b","func_31015_b","c","()Z","()Z","TileEntityPiston","agb","net/minecraft/src","0"
"func_31009_d","func_31009_d","d","()I","()I","TileEntityPiston","agb","net/minecraft/src","0"
"func_31015_b","isExtending","c","()Z","()Z","TileEntityPiston","agb","net/minecraft/src","0"
"func_31009_d","getPistonOrientation","d","()I","()I","TileEntityPiston","agb","net/minecraft/src","0"
"func_31012_k","func_31012_k","e","()Z","()Z","TileEntityPiston","agb","net/minecraft/src","0"
"func_31008_a","func_31008_a","a","(F)F","(F)F","TileEntityPiston","agb","net/minecraft/src","0"
"func_31017_b","func_31017_b","b","(F)F","(F)F","TileEntityPiston","agb","net/minecraft/src","0"
@@ -909,11 +909,11 @@
"func_35621_a","saveMapToFileWithBackup","a","(LNBTTagCompound;Ljava/io/File;)V","(Lik;Ljava/io/File;)V","CompressedStreamTools","vx","net/minecraft/src","0"
"func_35620_b","saveMapToFile","b","(LNBTTagCompound;Ljava/io/File;)V","(Lik;Ljava/io/File;)V","CompressedStreamTools","vx","net/minecraft/src","0"
"func_35622_a","writeMapToFileUncompressed","a","(Ljava/io/File;)LNBTTagCompound;","(Ljava/io/File;)Lik;","CompressedStreamTools","vx","net/minecraft/src","0"
"func_1141_a","writeMapUncompressed","a","(Ljava/io/DataInput;)LNBTTagCompound;","(Ljava/io/DataInput;)Lik;","CompressedStreamTools","vx","net/minecraft/src","0"
"func_1141_a","read","a","(Ljava/io/DataInput;)LNBTTagCompound;","(Ljava/io/DataInput;)Lik;","CompressedStreamTools","vx","net/minecraft/src","0"
"func_1139_a","writeTo","a","(LNBTTagCompound;Ljava/io/DataOutput;)V","(Lik;Ljava/io/DataOutput;)V","CompressedStreamTools","vx","net/minecraft/src","0"
"func_35651_a","func_35651_a","a","(II)LBiomeGenBase;","(II)Lsr;","BiomeCacheBlock","cq","net/minecraft/src","0"
"func_35650_b","func_35650_b","b","(II)F","(II)F","BiomeCacheBlock","cq","net/minecraft/src","0"
"func_35652_c","func_35652_c","c","(II)F","(II)F","BiomeCacheBlock","cq","net/minecraft/src","0"
"func_35651_a","getBiomeGenAt","a","(II)LBiomeGenBase;","(II)Lsr;","BiomeCacheBlock","cq","net/minecraft/src","0"
"func_35650_b","getTemperature","b","(II)F","(II)F","BiomeCacheBlock","cq","net/minecraft/src","0"
"func_35652_c","getRainfall","c","(II)F","(II)F","BiomeCacheBlock","cq","net/minecraft/src","0"
"func_40552_a","queueChunkMap","a","(LChunkCoordIntPair;LNBTTagCompound;)V","(Lacm;Lik;)V","ThreadedChunkLoader","tn","net/minecraft/src","0"
"func_40551_a","writeChunk","a","(LThreadedChunkLoaderPending;)V","(Lvp;)V","ThreadedChunkLoader","tn","net/minecraft/src","0"
"func_35188_k_","spiderScaleAmount","ax","()F","()F","EntitySpider","vq","net/minecraft/src","0"
@@ -937,7 +937,7 @@
"func_40145_a","spawnBabyAnimal","a","(LEntityAnimal;)LEntityAnimal;","(Lfx;)Lfx;","EntityAnimal","fx","net/minecraft/src","0"
"func_40146_g","getDelay","m","()I","()I","EntityAnimal","fx","net/minecraft/src","0"
"func_40142_a_","setDelay","b","(I)V","(I)V","EntityAnimal","fx","net/minecraft/src","0"
"func_40144_b","proceate","b","(LEntityAnimal;)V","(Lfx;)V","EntityAnimal","fx","net/minecraft/src","0"
"func_40144_b","procreate","b","(LEntityAnimal;)V","(Lfx;)V","EntityAnimal","fx","net/minecraft/src","0"
"func_40143_a","isWheat","a","(LItemStack;)Z","(Ldk;)Z","EntityAnimal","fx","net/minecraft/src","0"
"func_40088_g","getPotionDamage","e","()I","()I","EntityPotion","ab","net/minecraft/src","0"
"func_27059_b","applyTo","c","(Ljava/lang/Object;)Ljava/lang/Object;","(Ljava/lang/Object;)Ljava/lang/Object;","J_Functor","gz","net/minecraft/src","0"
@@ -958,7 +958,7 @@
"func_270_i","getGrowthRate","j","(LWorld;III)F","(Lry;III)F","BlockCrops","aha","net/minecraft/src","0"
"func_810_a","addRecipes","a","(LCraftingManager;)V","(Lsl;)V","RecipesIngots","ady","net/minecraft/src","0"
"func_20078_a","returnEnumOptions","a","()LEnumOptions;","()Llp;","GuiSmallButton","abs","net/minecraft/src","0"
"func_40307_a","func_40307_a","a","(D)F","(D)F","ModelDragon","afo","net/minecraft/src","0"
"func_40307_a","updateRotations","a","(D)F","(D)F","ModelDragon","afo","net/minecraft/src","0"
"func_1146_a","stepSoundDir","a","()Ljava/lang/String;","()Ljava/lang/String;","StepSound","wu","net/minecraft/src","0"
"func_1147_b","getVolume","b","()F","()F","StepSound","wu","net/minecraft/src","0"
"func_1144_c","getPitch","c","()F","()F","StepSound","wu","net/minecraft/src","0"
@@ -1096,7 +1096,7 @@
"func_35099_a","func_35099_a","a","(Ljava/util/List;Ljava/util/Random;IIII)LStructureBoundingBox;","(Ljava/util/List;Ljava/util/Random;IIII)Lnl;","ComponentVillageTorch","abj","net/minecraft/src","0"
"func_315_h","tryToFall","g","(LWorld;III)V","(Lry;III)V","BlockSand","cj","net/minecraft/src","0"
"func_316_a_","canFallBelow","b_","(LWorld;III)Z","(Lry;III)Z","BlockSand","cj","net/minecraft/src","0"
"func_28110_c","func_28110_c","c","()Ljava/util/Collection;","()Ljava/util/Collection;","NBTTagCompound","ik","net/minecraft/src","0"
"func_28110_c","getTags","c","()Ljava/util/Collection;","()Ljava/util/Collection;","NBTTagCompound","ik","net/minecraft/src","0"
"func_762_a","setTag","a","(Ljava/lang/String;LNBTBase;)V","(Ljava/lang/String;Lum;)V","NBTTagCompound","ik","net/minecraft/src","0"
"func_761_a","setByte","a","(Ljava/lang/String;B)V","(Ljava/lang/String;B)V","NBTTagCompound","ik","net/minecraft/src","0"
"func_749_a","setShort","a","(Ljava/lang/String;S)V","(Ljava/lang/String;S)V","NBTTagCompound","ik","net/minecraft/src","0"
@@ -1178,11 +1178,11 @@
"func_4045_l","getHeldItem","s","()LItemStack;","()Ldk;","EntityLiving","nq","net/minecraft/src","0"
"func_432_b","heal","a_","(I)V","(I)V","EntityLiving","nq","net/minecraft/src","0"
"func_4044_a","damageEntity","b","(LDamageSource;I)V","(Lpm;I)V","EntityLiving","nq","net/minecraft/src","0"
"func_35162_ad","func_35162_ad","aj","()Z","()Z","EntityLiving","nq","net/minecraft/src","0"
"func_35162_ad","isBlocking","aj","()Z","()Z","EntityLiving","nq","net/minecraft/src","0"
"func_22049_v","isMovementBlocked","ai","()Z","()Z","EntityLiving","nq","net/minecraft/src","0"
"func_418_b_","updateEntityActionState","n","()V","()V","EntityLiving","nq","net/minecraft/src","0"
"func_419_b","onDeath","a","(LDamageSource;)V","(Lpm;)V","EntityLiving","nq","net/minecraft/src","0"
"func_40116_f","func_40116_f","d","(I)I","(I)I","EntityLiving","nq","net/minecraft/src","0"
"func_40116_f","decreaseAirSupply","d","(I)I","(I)I","EntityLiving","nq","net/minecraft/src","0"
"func_40128_b","applyPotionDamageCalculations","d","(LDamageSource;I)I","(Lpm;I)I","EntityLiving","nq","net/minecraft/src","0"
"func_40125_g","func_40125_g","i","(I)V","(I)V","EntityLiving","nq","net/minecraft/src","0"
"func_40119_ar","getTotalArmorValue","o_","()I","()I","EntityLiving","nq","net/minecraft/src","0"
@@ -1190,8 +1190,8 @@
"func_424_C","jump","ak","()V","()V","EntityLiving","nq","net/minecraft/src","0"
"func_28021_c","getItemIcon","a","(LItemStack;I)I","(Ldk;I)I","EntityLiving","nq","net/minecraft/src","0"
"func_36001_a","getExperiencePoints","b","(LEntityPlayer;)I","(Lvi;)I","EntityLiving","nq","net/minecraft/src","0"
"func_35163_av","func_35163_av","ae","()Z","()Z","EntityLiving","nq","net/minecraft/src","0"
"func_40120_m_","func_40120_m_","ad","()V","()V","EntityLiving","nq","net/minecraft/src","0"
"func_35163_av","isPlayer","ae","()Z","()Z","EntityLiving","nq","net/minecraft/src","0"
"func_40120_m_","onDeathUpdate","ad","()V","()V","EntityLiving","nq","net/minecraft/src","0"
"func_27021_X","despawnEntity","al","()V","()V","EntityLiving","nq","net/minecraft/src","0"
"func_25023_u","canDespawn","d","()Z","()Z","EntityLiving","nq","net/minecraft/src","0"
"func_6393_h","getSoundVolume","w_","()F","()F","EntityLiving","nq","net/minecraft/src","0"
@@ -1200,7 +1200,7 @@
"func_421_b","getTalkInterval","p_","()I","()I","EntityLiving","nq","net/minecraft/src","0"
"func_40124_t","getCreatureAttribute","r_","()LEnumCreatureAttribute;","()Lel;","EntityLiving","nq","net/minecraft/src","0"
"func_40126_a","func_40126_a","b","(LPotionEffect;)Z","(Ls;)Z","EntityLiving","nq","net/minecraft/src","0"
"func_40127_l","func_40127_l","q_","()Z","()Z","EntityLiving","nq","net/minecraft/src","0"
"func_40127_l","isChild","q_","()Z","()Z","EntityLiving","nq","net/minecraft/src","0"
"func_420_c","canEntityBeSeen","i","(LEntity;)Z","(Lia;)Z","EntityLiving","nq","net/minecraft/src","0"
"func_22050_O","playLivingSound","ac","()V","()V","EntityLiving","nq","net/minecraft/src","0"
"func_415_z","spawnExplosionParticle","af","()V","()V","EntityLiving","nq","net/minecraft/src","0"
@@ -1246,7 +1246,7 @@
"func_40298_a","setTextureOffset","a","(Ljava/lang/String;II)V","(Ljava/lang/String;II)V","ModelBase","al","net/minecraft/src","0"
"func_40297_a","func_40297_a","a","(Ljava/lang/String;)LTextureOffset;","(Ljava/lang/String;)Lsx;","ModelBase","al","net/minecraft/src","0"
"func_4066_a","renderGameOverlay","a","(FZII)V","(FZII)V","GuiIngame","qd","net/minecraft/src","0"
"func_41039_c","func_41039_c","c","()V","()V","GuiIngame","qd","net/minecraft/src","0"
"func_41039_c","renderBossHealth","c","()V","()V","GuiIngame","qd","net/minecraft/src","0"
"func_4063_a","renderPumpkinBlur","a","(II)V","(II)V","GuiIngame","qd","net/minecraft/src","0"
"func_4064_a","renderVignette","a","(FII)V","(FII)V","GuiIngame","qd","net/minecraft/src","0"
"func_4065_b","renderPortalOverlay","b","(FII)V","(FII)V","GuiIngame","qd","net/minecraft/src","0"
@@ -1278,11 +1278,11 @@
"func_542_c","func_542_c","f","(II)LChunk;","(II)Lzx;","ChunkProviderLoadOrGenerate","mv","net/minecraft/src","0"
"func_541_a","saveExtraChunkData","a","(LChunk;)V","(Lzx;)V","ChunkProviderLoadOrGenerate","mv","net/minecraft/src","0"
"func_540_b","saveChunk","b","(LChunk;)V","(Lzx;)V","ChunkProviderLoadOrGenerate","mv","net/minecraft/src","0"
"func_26002_a","func_26002_a","a","([B)V","([B)V","ChunkBlockMap","aig","net/minecraft/src","0"
"func_26002_a","removeUnknownBlockIDs","a","([B)V","([B)V","ChunkBlockMap","aig","net/minecraft/src","0"
"func_22154_d","createSessionLock","e","()V","()V","SaveHandler","e","net/minecraft/src","0"
"func_22153_a","getSaveDirectory","a","()Ljava/io/File;","()Ljava/io/File;","SaveHandler","e","net/minecraft/src","0"
"func_177_a","renderCow","a","(LEntityCow;DDDFF)V","(Ladr;DDDFF)V","RenderCow","lj","net/minecraft/src","0"
"func_35294_i","func_35294_i","g","(LWorld;III)V","(Lry;III)V","BlockStem","pu","net/minecraft/src","0"
"func_35294_i","fertilizeStem","g","(LWorld;III)V","(Lry;III)V","BlockStem","pu","net/minecraft/src","0"
"func_35295_j","func_35295_j","j","(LWorld;III)F","(Lry;III)F","BlockStem","pu","net/minecraft/src","0"
"func_35296_f","func_35296_f","c","(LIBlockAccess;III)I","(Lkq;III)I","BlockStem","pu","net/minecraft/src","0"
"func_438_i","findPlayerToAttack","o","()LEntity;","()Lia;","EntityCreature","ww","net/minecraft/src","0"
@@ -1370,8 +1370,8 @@
"func_35884_a","genStandardOre1","a","(ILWorldGenerator;II)V","(ILig;II)V","BiomeDecorator","ql","net/minecraft/src","0"
"func_35883_b","genStandardOre2","b","(ILWorldGenerator;II)V","(ILig;II)V","BiomeDecorator","ql","net/minecraft/src","0"
"func_35880_a","generateOres","b","()V","()V","BiomeDecorator","ql","net/minecraft/src","0"
"func_41055_g","func_41055_g","g","(LWorld;III)V","(Lry;III)V","BlockDragonEgg","aci","net/minecraft/src","0"
"func_41054_h","func_41054_h","h","(LWorld;III)V","(Lry;III)V","BlockDragonEgg","aci","net/minecraft/src","0"
"func_41055_g","fallIfPossible","g","(LWorld;III)V","(Lry;III)V","BlockDragonEgg","aci","net/minecraft/src","0"
"func_41054_h","teleportNearby","h","(LWorld;III)V","(Lry;III)V","BlockDragonEgg","aci","net/minecraft/src","0"
"func_31036_a","getNewTileEntity","a","(IIIZZ)LTileEntity;","(IIIZZ)Lbq;","BlockPistonMoving","qz","net/minecraft/src","0"
"func_31035_a","getAxisAlignedBB","b","(LWorld;IIIIFI)LAxisAlignedBB;","(Lry;IIIIFI)Lc;","BlockPistonMoving","qz","net/minecraft/src","0"
"func_31034_c","getTileEntityAtLocation","c","(LIBlockAccess;III)LTileEntityPiston;","(Lkq;III)Lagb;","BlockPistonMoving","qz","net/minecraft/src","0"
@@ -1399,7 +1399,7 @@
"func_27010_f","getColorFromDamage","c","(I)I","(I)I","Item","acy","net/minecraft/src","0"
"func_40397_d","getItemDisplayName","f","(LItemStack;)Ljava/lang/String;","(Ldk;)Ljava/lang/String;","Item","acy","net/minecraft/src","0"
"func_40403_e","hasEffect","g","(LItemStack;)Z","(Ldk;)Z","Item","acy","net/minecraft/src","0"
"func_21012_a","getPlacedBlockMetadata","b","(I)I","(I)I","Item","acy","net/minecraft/src","0"
"func_21012_a","getMetadata","b","(I)I","(I)I","Item","acy","net/minecraft/src","0"
"func_21011_b","getItemNameIS","a","(LItemStack;)Ljava/lang/String;","(Ldk;)Ljava/lang/String;","Item","acy","net/minecraft/src","0"
"func_25008_a","onBlockDestroyed","a","(LItemStack;IIIILEntityLiving;)Z","(Ldk;IIIILnq;)Z","Item","acy","net/minecraft/src","0"
"func_4018_a","canHarvestBlock","a","(LBlock;)Z","(Lyy;)Z","Item","acy","net/minecraft/src","0"
@@ -1433,7 +1433,7 @@
"func_40407_b","setPotionModifier","b","(Ljava/lang/String;)LItem;","(Ljava/lang/String;)Lacy;","Item","acy","net/minecraft/src","0"
"func_40405_m","getPotionModifier","m","()Ljava/lang/String;","()Ljava/lang/String;","Item","acy","net/minecraft/src","0"
"func_40406_n","isValidBrewingIngredient","n","()Z","()Z","Item","acy","net/minecraft/src","0"
"func_40401_i","func_40401_i","j","(LItemStack;)Z","(Ldk;)Z","Item","acy","net/minecraft/src","0"
"func_40401_i","isItemTool","j","(LItemStack;)Z","(Ldk;)Z","Item","acy","net/minecraft/src","0"
"func_40402_a","func_40402_a","a","(LWorld;LEntityPlayer;Z)LMovingObjectPosition;","(Lry;Lvi;Z)Lgv;","Item","acy","net/minecraft/src","0"
"func_475_b","updateEntity","b","()V","()V","TileEntity","bq","net/minecraft/src","0"
"func_482_a","readFromNBT","b","(LNBTTagCompound;)V","(Lik;)V","TileEntity","bq","net/minecraft/src","0"
@@ -1631,10 +1631,10 @@
"func_805_a","func_805_a","a","([DDDDIIIDDDD)V","([DDDDIIIDDDD)V","NoiseGeneratorPerlin","agk","net/minecraft/src","0"
"func_25200_a","translateToLocal","a","(Ljava/lang/String;)Ljava/lang/String;","(Ljava/lang/String;)Ljava/lang/String;","StatCollector","hj","net/minecraft/src","0"
"func_25199_a","translateToLocalFormatted","a","(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;","(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;","StatCollector","hj","net/minecraft/src","0"
"func_35500_a","func_35500_a","a","(IIII)[I","(IIII)[I","GenLayer","jx","net/minecraft/src","0"
"func_35496_b","func_35496_b","b","(J)V","(J)V","GenLayer","jx","net/minecraft/src","0"
"func_35500_a","getInts","a","(IIII)[I","(IIII)[I","GenLayer","jx","net/minecraft/src","0"
"func_35496_b","initWorldGenSeed","b","(J)V","(J)V","GenLayer","jx","net/minecraft/src","0"
"func_35497_a","func_35497_a","a","(J)[LGenLayer;","(J)[Ljx;","GenLayer","jx","net/minecraft/src","0"
"func_35499_a","func_35499_a","a","(JJ)V","(JJ)V","GenLayer","jx","net/minecraft/src","0"
"func_35499_a","initChunkSeed","a","(JJ)V","(JJ)V","GenLayer","jx","net/minecraft/src","0"
"func_35498_a","nextInt","a","(I)I","(I)I","GenLayer","jx","net/minecraft/src","0"
"func_4012_a","doRenderFireball","a","(LEntityFireball;DDDFF)V","(Laad;DDDFF)V","RenderFireball","ke","net/minecraft/src","0"
"func_22193_a","createOrLoadRegionFile","a","(Ljava/io/File;II)LRegionFile;","(Ljava/io/File;II)Las;","RegionFileCache","wl","net/minecraft/src","0"
@@ -1714,13 +1714,13 @@
"func_35023_a","addComponentParts","a","(LWorld;Ljava/util/Random;LStructureBoundingBox;)Z","(Lry;Ljava/util/Random;Lnl;)Z","StructureComponent","nk","net/minecraft/src","0"
"func_40008_a_","func_40008_a_","c","()LChunkPosition;","()Lam;","StructureComponent","nk","net/minecraft/src","0"
"func_35021_b","getBoundingBox","a","()LStructureBoundingBox;","()Lnl;","StructureComponent","nk","net/minecraft/src","0"
"func_35012_c","func_35012_c","b","()I","()I","StructureComponent","nk","net/minecraft/src","0"
"func_35012_c","getComponentType","b","()I","()I","StructureComponent","nk","net/minecraft/src","0"
"func_35020_a","getIntersectingStructureComponent","a","(Ljava/util/List;LStructureBoundingBox;)LStructureComponent;","(Ljava/util/List;Lnl;)Lnk;","StructureComponent","nk","net/minecraft/src","0"
"func_35013_a","isLiquidInStructureBoundingBox","a","(LWorld;LStructureBoundingBox;)Z","(Lry;Lnl;)Z","StructureComponent","nk","net/minecraft/src","0"
"func_35017_a","getXWithOffset","a","(II)I","(II)I","StructureComponent","nk","net/minecraft/src","0"
"func_35008_a","getYWithOffset","b","(I)I","(I)I","StructureComponent","nk","net/minecraft/src","0"
"func_35006_b","getZWithOffset","b","(II)I","(II)I","StructureComponent","nk","net/minecraft/src","0"
"func_35009_c","func_35009_c","c","(II)I","(II)I","StructureComponent","nk","net/minecraft/src","0"
"func_35009_c","getMetadataWithOffset","c","(II)I","(II)I","StructureComponent","nk","net/minecraft/src","0"
"func_35018_a","placeBlockAtCurrentPosition","a","(LWorld;IIIIILStructureBoundingBox;)V","(Lry;IIIIILnl;)V","StructureComponent","nk","net/minecraft/src","0"
"func_35007_a","getBlockIdAtCurrentPosition","a","(LWorld;IIILStructureBoundingBox;)I","(Lry;IIILnl;)I","StructureComponent","nk","net/minecraft/src","0"
"func_35011_a","fillWithBlocks","a","(LWorld;LStructureBoundingBox;IIIIIIIIZ)V","(Lry;Lnl;IIIIIIIIZ)V","StructureComponent","nk","net/minecraft/src","0"
@@ -1737,9 +1737,9 @@
"func_35736_a","func_35736_a","a","(Ljava/util/Collection;)I","(Ljava/util/Collection;)I","WeightedRandom","nc","net/minecraft/src","0"
"func_35734_a","func_35734_a","a","(Ljava/util/Random;Ljava/util/Collection;I)LWeightedRandomChoice;","(Ljava/util/Random;Ljava/util/Collection;I)Labt;","WeightedRandom","nc","net/minecraft/src","0"
"func_35733_a","func_35733_a","a","(Ljava/util/Random;Ljava/util/Collection;)LWeightedRandomChoice;","(Ljava/util/Random;Ljava/util/Collection;)Labt;","WeightedRandom","nc","net/minecraft/src","0"
"func_35737_a","func_35737_a","a","([LWeightedRandomChoice;)I","([Labt;)I","WeightedRandom","nc","net/minecraft/src","0"
"func_35737_a","sumWeights","a","([LWeightedRandomChoice;)I","([Labt;)I","WeightedRandom","nc","net/minecraft/src","0"
"func_35732_a","func_35732_a","a","(Ljava/util/Random;[LWeightedRandomChoice;I)LWeightedRandomChoice;","(Ljava/util/Random;[Labt;I)Labt;","WeightedRandom","nc","net/minecraft/src","0"
"func_35735_a","func_35735_a","a","(Ljava/util/Random;[LWeightedRandomChoice;)LWeightedRandomChoice;","(Ljava/util/Random;[Labt;)Labt;","WeightedRandom","nc","net/minecraft/src","0"
"func_35735_a","chooseOne","a","(Ljava/util/Random;[LWeightedRandomChoice;)LWeightedRandomChoice;","(Ljava/util/Random;[Labt;)Labt;","WeightedRandom","nc","net/minecraft/src","0"
"func_21034_c","getBlockFromDye","d_","(I)I","(I)I","BlockCloth","fr","net/minecraft/src","0"
"func_21035_d","getDyeFromBlock","d","(I)I","(I)I","BlockCloth","fr","net/minecraft/src","0"
"func_35532_a","getEntity","a","()LEntity;","()Lia;","DamageSource","pm","net/minecraft/src","0"
@@ -1748,10 +1748,10 @@
"func_35535_a","causeArrowDamage","a","(LEntityArrow;LEntity;)LDamageSource;","(Lro;Lia;)Lpm;","DamageSource","pm","net/minecraft/src","0"
"func_35530_a","causeFireballDamage","a","(LEntityFireball;LEntity;)LDamageSource;","(Laad;Lia;)Lpm;","DamageSource","pm","net/minecraft/src","0"
"func_35524_a","causeThrownDamage","a","(LEntity;LEntity;)LDamageSource;","(Lia;Lia;)Lpm;","DamageSource","pm","net/minecraft/src","0"
"func_40542_b","func_40542_b","b","(LEntity;LEntity;)LDamageSource;","(Lia;Lia;)Lpm;","DamageSource","pm","net/minecraft/src","0"
"func_40542_b","causeIndirectMagicDamage","b","(LEntity;LEntity;)LDamageSource;","(Lia;Lia;)Lpm;","DamageSource","pm","net/minecraft/src","0"
"func_40547_b","isProjectile","b","()Z","()Z","DamageSource","pm","net/minecraft/src","0"
"func_40544_c","setProjectile","c","()LDamageSource;","()Lpm;","DamageSource","pm","net/minecraft/src","0"
"func_35534_b","unblockable","d","()Z","()Z","DamageSource","pm","net/minecraft/src","0"
"func_35534_b","isUnblockable","d","()Z","()Z","DamageSource","pm","net/minecraft/src","0"
"func_35533_c","getHungerDamage","e","()F","()F","DamageSource","pm","net/minecraft/src","0"
"func_35529_d","canHarmInCreative","f","()Z","()Z","DamageSource","pm","net/minecraft/src","0"
"func_35526_e","getSourceOfDamage","g","()LEntity;","()Lia;","DamageSource","pm","net/minecraft/src","0"
@@ -1767,11 +1767,11 @@
"func_41089_c","func_41089_c","c","()V","()V","RenderHelper","rt","net/minecraft/src","0"
"func_22164_a","getFileName","a","()Ljava/lang/String;","()Ljava/lang/String;","SaveFormatComparator","rr","net/minecraft/src","0"
"func_22162_b","getDisplayName","b","()Ljava/lang/String;","()Ljava/lang/String;","SaveFormatComparator","rr","net/minecraft/src","0"
"func_22161_d","func_22161_d","c","()Z","()Z","SaveFormatComparator","rr","net/minecraft/src","0"
"func_22161_d","requiresConversion","c","()Z","()Z","SaveFormatComparator","rr","net/minecraft/src","0"
"func_22163_e","getLastTimePlayed","d","()J","()J","SaveFormatComparator","rr","net/minecraft/src","0"
"func_22160_a","compareTo","a","(LSaveFormatComparator;)I","(Lrr;)I","SaveFormatComparator","rr","net/minecraft/src","0"
"func_35719_f","getGameType","e","()I","()I","SaveFormatComparator","rr","net/minecraft/src","0"
"func_40594_g","func_40594_g","f","()Z","()Z","SaveFormatComparator","rr","net/minecraft/src","0"
"func_40594_g","isHardcoreModeEnabled","f","()Z","()Z","SaveFormatComparator","rr","net/minecraft/src","0"
"func_40038_a","func_40038_a","a","(Ljava/util/List;Ljava/util/Random;IIIII)LComponentNetherBridgeCorridor;","(Ljava/util/List;Ljava/util/Random;IIIII)Lahw;","ComponentNetherBridgeCorridor","ahw","net/minecraft/src","0"
"func_153_a","func_153_a","a","(LEntityTNTPrimed;DDDFF)V","(Ldd;DDDFF)V","RenderTNTPrimed","nt","net/minecraft/src","0"
"func_156_a","doRenderFallingSand","a","(LEntityFallingSand;DDDFF)V","(Luo;DDDFF)V","RenderFallingSand","agh","net/minecraft/src","0"
@@ -1807,7 +1807,7 @@
"func_4080_j","updateBlocksAndPlayCaveSounds","f","()V","()V","World","ry","net/minecraft/src","0"
"func_22136_c","scheduleBlockUpdate","a","(IIIII)V","(IIIII)V","World","ry","net/minecraft/src","0"
"func_700_a","tickUpdates","a","(Z)Z","(Z)Z","World","ry","net/minecraft/src","0"
"func_674_a","entityJoinedWorld","a","(LEntity;)Z","(Lia;)Z","World","ry","net/minecraft/src","0"
"func_674_a","spawnEntityInWorld","a","(LEntity;)Z","(Lia;)Z","World","ry","net/minecraft/src","0"
"func_607_d","setEntityDead","b","(LEntity;)V","(Lia;)V","World","ry","net/minecraft/src","0"
"func_606_b","obtainEntitySkin","c","(LEntity;)V","(Lia;)V","World","ry","net/minecraft/src","0"
"func_678_c","releaseEntitySkin","d","(LEntity;)V","(Lia;)V","World","ry","net/minecraft/src","0"
@@ -1868,7 +1868,7 @@
"func_35456_d","getCelestialAngleRadians","e","(F)F","(F)F","World","ry","net/minecraft/src","0"
"func_628_d","drawClouds","f","(F)LVec3D;","(F)Lfb;","World","ry","net/minecraft/src","0"
"func_4082_d","getFogColor","g","(F)LVec3D;","(F)Lfb;","World","ry","net/minecraft/src","0"
"func_35461_e","func_35461_e","e","(II)I","(II)I","World","ry","net/minecraft/src","0"
"func_35461_e","getPrecipitationHeight","e","(II)I","(II)I","World","ry","net/minecraft/src","0"
"func_4083_e","getTopSolidOrLiquidBlock","f","(II)I","(II)I","World","ry","net/minecraft/src","0"
"func_679_f","getStarBrightness","h","(F)F","(F)F","World","ry","net/minecraft/src","0"
"func_41083_e","func_41083_e","e","(IIIII)V","(IIIII)V","World","ry","net/minecraft/src","0"
@@ -1994,7 +1994,7 @@
"func_1125_c","createDirectIntBuffer","d","(I)Ljava/nio/IntBuffer;","(I)Ljava/nio/IntBuffer;","GLAllocation","bt","net/minecraft/src","0"
"func_1123_d","createDirectFloatBuffer","e","(I)Ljava/nio/FloatBuffer;","(I)Ljava/nio/FloatBuffer;","GLAllocation","bt","net/minecraft/src","0"
"func_35267_a","getIntCache","a","(I)[I","(I)[I","IntCache","bm","net/minecraft/src","0"
"func_35268_a","func_35268_a","a","()V","()V","IntCache","bm","net/minecraft/src","0"
"func_35268_a","resetIntCache","a","()V","()V","IntCache","bm","net/minecraft/src","0"
"func_22011_a","chunkXZ2Int","a","(II)J","(II)J","ChunkCoordIntPair","acm","net/minecraft/src","0"
"func_40735_a","func_40735_a","a","()I","()I","ChunkCoordIntPair","acm","net/minecraft/src","0"
"func_40736_b","func_40736_b","b","()I","()I","ChunkCoordIntPair","acm","net/minecraft/src","0"
@@ -2073,9 +2073,9 @@
"func_261_b","canBlockCatchFire","c","(LIBlockAccess;III)Z","(Lkq;III)Z","BlockFire","wj","net/minecraft/src","0"
"func_265_g","getChanceToEncourageFire","f","(LWorld;IIII)I","(Lry;IIII)I","BlockFire","wj","net/minecraft/src","0"
"func_35726_e","getBiomeCacheBlock","a","(II)LBiomeCacheBlock;","(II)Lcq;","BiomeCache","agl","net/minecraft/src","0"
"func_35725_a","func_35725_a","b","(II)LBiomeGenBase;","(II)Lsr;","BiomeCache","agl","net/minecraft/src","0"
"func_35722_b","func_35722_b","c","(II)F","(II)F","BiomeCache","agl","net/minecraft/src","0"
"func_35727_c","func_35727_c","d","(II)F","(II)F","BiomeCache","agl","net/minecraft/src","0"
"func_35725_a","getBiomeGenAt","b","(II)LBiomeGenBase;","(II)Lsr;","BiomeCache","agl","net/minecraft/src","0"
"func_35722_b","getTemperature","c","(II)F","(II)F","BiomeCache","agl","net/minecraft/src","0"
"func_35727_c","getRainfall","d","(II)F","(II)F","BiomeCache","agl","net/minecraft/src","0"
"func_35724_a","cleanupCache","a","()V","()V","BiomeCache","agl","net/minecraft/src","0"
"func_35723_d","getCachedBiomes","e","(II)[LBiomeGenBase;","(II)[Lsr;","BiomeCache","agl","net/minecraft/src","0"
"func_35721_a","getWorldChunkManager","a","(LBiomeCache;)LWorldChunkManager;","(Lagl;)Lvh;","BiomeCache","agl","net/minecraft/src","0"
@@ -2089,7 +2089,7 @@
"func_4115_a","handleLogin","a","(LPacket1Login;)V","(Laj;)V","NetHandler","fe","net/minecraft/src","0"
"func_832_a","handlePickupSpawn","a","(LPacket21PickupSpawn;)V","(Lts;)V","NetHandler","fe","net/minecraft/src","0"
"func_835_a","handleVehicleSpawn","a","(LPacket23VehicleSpawn;)V","(Lgh;)V","NetHandler","fe","net/minecraft/src","0"
"func_35778_a","handleXPOrb","a","(LPacket26EntityExpOrb;)V","(Lfi;)V","NetHandler","fe","net/minecraft/src","0"
"func_35778_a","handleEntityExpOrb","a","(LPacket26EntityExpOrb;)V","(Lfi;)V","NetHandler","fe","net/minecraft/src","0"
"func_27246_a","handleWeather","a","(LPacket71Weather;)V","(Labf;)V","NetHandler","fe","net/minecraft/src","0"
"func_21146_a","handleEntityPainting","a","(LPacket25EntityPainting;)V","(Lyr;)V","NetHandler","fe","net/minecraft/src","0"
"func_6498_a","handleEntityVelocity","a","(LPacket28EntityVelocity;)V","(Lqm;)V","NetHandler","fe","net/minecraft/src","0"
@@ -2124,13 +2124,13 @@
"func_20089_a","handleContainerTransaction","a","(LPacket106Transaction;)V","(Lly;)V","NetHandler","fe","net/minecraft/src","0"
"func_20094_a","handleWindowItems","a","(LPacket104WindowItems;)V","(Lyh;)V","NetHandler","fe","net/minecraft/src","0"
"func_20093_a","handleUpdateSign","a","(LPacket130UpdateSign;)V","(Lhy;)V","NetHandler","fe","net/minecraft/src","0"
"func_20090_a","handleCraftingProgress","a","(LPacket105UpdateProgressbar;)V","(Lgb;)V","NetHandler","fe","net/minecraft/src","0"
"func_20090_a","handleUpdateProgressbar","a","(LPacket105UpdateProgressbar;)V","(Lgb;)V","NetHandler","fe","net/minecraft/src","0"
"func_843_a","handlePlayerInventory","a","(LPacket5PlayerInventory;)V","(Llw;)V","NetHandler","fe","net/minecraft/src","0"
"func_20092_a","handleCloseWindow","a","(LPacket101CloseWindow;)V","(Lhi;)V","NetHandler","fe","net/minecraft/src","0"
"func_21145_a","handleNotePlay","a","(LPacket54PlayNoteBlock;)V","(Lagm;)V","NetHandler","fe","net/minecraft/src","0"
"func_25118_a","handleBedUpdate","a","(LPacket70Bed;)V","(Lho;)V","NetHandler","fe","net/minecraft/src","0"
"func_25118_a","handleBed","a","(LPacket70Bed;)V","(Lho;)V","NetHandler","fe","net/minecraft/src","0"
"func_28116_a","processItemData","a","(LPacket131MapData;)V","(Laej;)V","NetHandler","fe","net/minecraft/src","0"
"func_28115_a","handleAuxSFX","a","(LPacket61DoorChange;)V","(Lsh;)V","NetHandler","fe","net/minecraft/src","0"
"func_28115_a","handleDoorChange","a","(LPacket61DoorChange;)V","(Lsh;)V","NetHandler","fe","net/minecraft/src","0"
"func_27245_a","handleStatistic","a","(LPacket200Statistic;)V","(Lzl;)V","NetHandler","fe","net/minecraft/src","0"
"func_35780_a","handleEntityEffect","a","(LPacket41EntityEffect;)V","(Lij;)V","NetHandler","fe","net/minecraft/src","0"
"func_35783_a","handleRemoveEntityEffect","a","(LPacket42RemoveEntityEffect;)V","(Laf;)V","NetHandler","fe","net/minecraft/src","0"
@@ -2187,7 +2187,7 @@
"func_1108_b","floor_double","c","(D)I","(D)I","MathHelper","me","net/minecraft/src","0"
"func_35599_c","floor_double_long","d","(D)J","(D)J","MathHelper","me","net/minecraft/src","0"
"func_1112_e","abs","e","(F)F","(F)F","MathHelper","me","net/minecraft/src","0"
"func_35597_a","abs_int","a","(I)I","(I)I","MathHelper","me","net/minecraft/src","0"
"func_35597_a","abs","a","(I)I","(I)I","MathHelper","me","net/minecraft/src","0"
"func_41084_a","clamp_int","a","(III)I","(III)I","MathHelper","me","net/minecraft/src","0"
"func_1107_a","abs_max","a","(DD)D","(DD)D","MathHelper","me","net/minecraft/src","0"
"func_1111_a","bucketInt","a","(II)I","(II)I","MathHelper","me","net/minecraft/src","0"
@@ -2451,7 +2451,7 @@
"func_40470_b","func_40470_b","b","(JF)I","(JF)I","WorldProvider","k","net/minecraft/src","0"
"func_4101_a","getProviderForDimension","a","(I)LWorldProvider;","(I)Lk;","WorldProvider","k","net/minecraft/src","0"
"func_314_h","func_314_h","g","(LWorld;III)Z","(Lry;III)Z","BlockSnow","aif","net/minecraft/src","0"
"func_40212_d","func_40212_d","e","(I)Z","(I)Z","BlockEndPortalFrame","rl","net/minecraft/src","0"
"func_40212_d","isEnderEyeInserted","e","(I)Z","(I)Z","BlockEndPortalFrame","rl","net/minecraft/src","0"
"func_267_h","checkIfAttachedToBlock","g","(LWorld;III)Z","(Lry;III)Z","BlockLever","aaa","net/minecraft/src","0"
"func_40028_a","func_40028_a","a","(Ljava/util/List;Ljava/util/Random;IIIII)LComponentNetherBridgeCrossing;","(Ljava/util/List;Ljava/util/Random;IIIII)Lui;","ComponentNetherBridgeCrossing","ui","net/minecraft/src","0"
"func_27334_a","unread","a","(C)V","(C)V","J_PositionTrackingPushbackReader","ud","net/minecraft/src","0"
@@ -2513,20 +2513,20 @@
"func_40071_a","func_40071_a","a","(LMovingObjectPosition;)V","(Lgv;)V","EntityFireball","aad","net/minecraft/src","0"
"func_4074_a","getBiomeGenAtChunkCoord","a","(LChunkCoordIntPair;)LBiomeGenBase;","(Lacm;)Lsr;","WorldChunkManager","vh","net/minecraft/src","0"
"func_4073_a","getBiomeGenAt","a","(II)LBiomeGenBase;","(II)Lsr;","WorldChunkManager","vh","net/minecraft/src","0"
"func_4069_a","func_4069_a","a","(IIII)[LBiomeGenBase;","(IIII)[Lsr;","WorldChunkManager","vh","net/minecraft/src","0"
"func_4069_a","loadRendererData","a","(IIII)[LBiomeGenBase;","(IIII)[Lsr;","WorldChunkManager","vh","net/minecraft/src","0"
"func_4071_a","getTemperatures","a","([FIIII)[F","([FIIII)[F","WorldChunkManager","vh","net/minecraft/src","0"
"func_40539_b","func_40539_b","b","(IIII)[F","(IIII)[F","WorldChunkManager","vh","net/minecraft/src","0"
"func_40539_b","initTemperatureCache","b","(IIII)[F","(IIII)[F","WorldChunkManager","vh","net/minecraft/src","0"
"func_35560_b","getRainfall","b","([FIIII)[F","([FIIII)[F","WorldChunkManager","vh","net/minecraft/src","0"
"func_35558_c","func_35558_c","b","(II)F","(II)F","WorldChunkManager","vh","net/minecraft/src","0"
"func_35558_c","getRainfall","b","(II)F","(II)F","WorldChunkManager","vh","net/minecraft/src","0"
"func_4070_a","loadBlockGeneratorData","a","([LBiomeGenBase;IIII)[LBiomeGenBase;","([Lsr;IIII)[Lsr;","WorldChunkManager","vh","net/minecraft/src","0"
"func_35555_a","func_35555_a","a","([LBiomeGenBase;IIIIZ)[LBiomeGenBase;","([Lsr;IIIIZ)[Lsr;","WorldChunkManager","vh","net/minecraft/src","0"
"func_35555_a","getBiomeGenAt","a","([LBiomeGenBase;IIIIZ)[LBiomeGenBase;","([Lsr;IIIIZ)[Lsr;","WorldChunkManager","vh","net/minecraft/src","0"
"func_35556_a","func_35556_a","a","(IIILjava/util/List;Ljava/util/Random;)LChunkPosition;","(IIILjava/util/List;Ljava/util/Random;)Lam;","WorldChunkManager","vh","net/minecraft/src","0"
"func_35562_a","areBiomesViable","a","(IIILjava/util/List;)Z","(IIILjava/util/List;)Z","WorldChunkManager","vh","net/minecraft/src","0"
"func_35559_a","getBiomesToSpawnIn","a","()Ljava/util/List;","()Ljava/util/List;","WorldChunkManager","vh","net/minecraft/src","0"
"func_35554_b","func_35554_b","a","(III)F","(III)F","WorldChunkManager","vh","net/minecraft/src","0"
"func_40540_a","func_40540_a","a","(FI)F","(FI)F","WorldChunkManager","vh","net/minecraft/src","0"
"func_35554_b","getTemperature","a","(III)F","(III)F","WorldChunkManager","vh","net/minecraft/src","0"
"func_40540_a","getTemperatureAtHeight","a","(FI)F","(FI)F","WorldChunkManager","vh","net/minecraft/src","0"
"func_35557_b","func_35557_b","b","([LBiomeGenBase;IIII)[LBiomeGenBase;","([Lsr;IIII)[Lsr;","WorldChunkManager","vh","net/minecraft/src","0"
"func_35561_b","func_35561_b","b","()V","()V","WorldChunkManager","vh","net/minecraft/src","0"
"func_35561_b","cleanupCache","b","()V","()V","WorldChunkManager","vh","net/minecraft/src","0"
"func_35078_a","func_35078_a","a","(Ljava/util/List;Ljava/util/Random;IIIII)LComponentVillageHall;","(Ljava/util/List;Ljava/util/Random;IIIII)Lacz;","ComponentVillageHall","acz","net/minecraft/src","0"
"func_40634_b","getEnchantmentLevel","b","(ILItemStack;)I","(ILdk;)I","EnchantmentHelper","ml","net/minecraft/src","0"
"func_40636_a","getMaxEnchantmentLevel","a","(I[LItemStack;)I","(I[Ldk;)I","EnchantmentHelper","ml","net/minecraft/src","0"
@@ -2625,12 +2625,12 @@
"func_35274_i","getBlockColor","f","()I","()I","Block","yy","net/minecraft/src","0"
"func_31030_b","getRenderColor","c","(I)I","(I)I","Block","yy","net/minecraft/src","0"
"func_207_d","colorMultiplier","a","(LIBlockAccess;III)I","(Lkq;III)I","Block","yy","net/minecraft/src","0"
"func_40198_a","func_40198_a","a","(ILjava/util/Random;)I","(ILjava/util/Random;)I","Block","yy","net/minecraft/src","0"
"func_40198_a","quantityDroppedWithBonus","a","(ILjava/util/Random;)I","(ILjava/util/Random;)I","Block","yy","net/minecraft/src","0"
"func_220_a_","harvestBlock","a","(LWorld;LEntityPlayer;IIII)V","(Lry;Lvi;IIII)V","Block","yy","net/minecraft/src","0"
"func_229_a","quantityDropped","a","(Ljava/util/Random;)I","(Ljava/util/Random;)I","Block","yy","net/minecraft/src","0"
"func_4027_c","onBlockDestroyedByExplosion","i","(LWorld;III)V","(Lry;III)V","Block","yy","net/minecraft/src","0"
"func_233_b","onBlockClicked","b","(LWorld;IIILEntityPlayer;)V","(Lry;IIILvi;)V","Block","yy","net/minecraft/src","0"
"func_41049_c_","func_41049_c_","c_","(I)LItemStack;","(I)Ldk;","Block","yy","net/minecraft/src","0"
"func_41049_c_","createStackedBlock","c_","(I)LItemStack;","(I)Ldk;","Block","yy","net/minecraft/src","0"
"func_221_d","getCollisionBoundingBoxFromPool","b","(LWorld;III)LAxisAlignedBB;","(Lry;III)Lc;","Block","yy","net/minecraft/src","0"
"func_238_a","setBlockBoundsBasedOnState","b","(LIBlockAccess;III)V","(Lkq;III)V","Block","yy","net/minecraft/src","0"
"func_214_b","onBlockRemoval","d","(LWorld;III)V","(Lry;III)V","Block","yy","net/minecraft/src","0"
@@ -2866,14 +2866,14 @@
"func_20172_a","addRecipes","a","(LCraftingManager;)V","(Lhq;)V","RecipesArmor","z","net/minecraft/src","1"
"func_35368_a","func_35368_a","a","(LComponentVillageStartPiece;Ljava/util/List;Ljava/util/Random;II)LStructureComponent;","(Lj;Ljava/util/List;Ljava/util/Random;II)Ljx;","ComponentVillage","sr","net/minecraft/src","1"
"func_35369_b","func_35369_b","b","(LComponentVillageStartPiece;Ljava/util/List;Ljava/util/Random;II)LStructureComponent;","(Lj;Ljava/util/List;Ljava/util/Random;II)Ljx;","ComponentVillage","sr","net/minecraft/src","1"
"func_35367_b","getFoundationLevel","b","(LWorld;LStructureBoundingBox;)I","(Lfi;Lvb;)I","ComponentVillage","sr","net/minecraft/src","1"
"func_35367_b","getAverageGroundLevel","b","(LWorld;LStructureBoundingBox;)I","(Lfi;Lvb;)I","ComponentVillage","sr","net/minecraft/src","1"
"func_35366_a","canVillageGoDeeper","a","(LStructureBoundingBox;)Z","(Lvb;)Z","ComponentVillage","sr","net/minecraft/src","1"
"func_40309_a","func_40309_a","a","(LWorld;LStructureBoundingBox;IIII)V","(Lfi;Lvb;IIII)V","ComponentVillage","sr","net/minecraft/src","1"
"func_40310_a","func_40310_a","a","(I)I","(I)I","ComponentVillage","sr","net/minecraft/src","1"
"func_40309_a","spawnVillagers","a","(LWorld;LStructureBoundingBox;IIII)V","(Lfi;Lvb;IIII)V","ComponentVillage","sr","net/minecraft/src","1"
"func_40310_a","getVillagerType","a","(I)I","(I)I","ComponentVillage","sr","net/minecraft/src","1"
"func_438_a","displaySavingString","a","(Ljava/lang/String;)V","(Ljava/lang/String;)V","IProgressUpdate","xk","net/minecraft/src","1"
"func_439_b","displayLoadingString","b","(Ljava/lang/String;)V","(Ljava/lang/String;)V","IProgressUpdate","xk","net/minecraft/src","1"
"func_437_a","setLoadingProgress","a","(I)V","(I)V","IProgressUpdate","xk","net/minecraft/src","1"
"func_40136_a","func_40136_a","a","(LDragonPart;LDamageSource;I)Z","(Led;Lpo;I)Z","EntityDragonBase","ui","net/minecraft/src","1"
"func_40136_a","attackEntityFromPart","a","(LDragonPart;LDamageSource;I)Z","(Led;Lpo;I)Z","EntityDragonBase","ui","net/minecraft/src","1"
"func_40137_e","func_40137_e","e","(LDamageSource;I)Z","(Lpo;I)Z","EntityDragonBase","ui","net/minecraft/src","1"
"func_444_a","getBlockId","a","(III)I","(III)I","IBlockAccess","wy","net/minecraft/src","1"
"func_451_k","getBlockTileEntity","b","(III)LTileEntity;","(III)Loh;","IBlockAccess","wy","net/minecraft/src","1"
@@ -2904,7 +2904,7 @@
"func_28129_i","setIsTranslucent","o","()LMaterial;","()Llg;","Material","lg","net/minecraft/src","1"
"func_31058_n","setNoHarvest","e","()LMaterial;","()Llg;","Material","lg","net/minecraft/src","1"
"func_4052_f","setBurning","f","()LMaterial;","()Llg;","Material","lg","net/minecraft/src","1"
"func_4051_e","getBurning","g","()Z","()Z","Material","lg","net/minecraft/src","1"
"func_4051_e","getCanBurn","g","()Z","()Z","Material","lg","net/minecraft/src","1"
"func_27089_f","setIsGroundCover","h","()LMaterial;","()Llg;","Material","lg","net/minecraft/src","1"
"func_27090_g","getIsGroundCover","i","()Z","()Z","Material","lg","net/minecraft/src","1"
"func_28128_h","getIsOpaque","j","()Z","()Z","Material","lg","net/minecraft/src","1"
@@ -2960,9 +2960,9 @@
"func_40607_o","getTagCompound","o","()LNBTTagCompound;","()Lng;","ItemStack","jb","net/minecraft/src","1"
"func_40609_p","getEnchantmentTagList","p","()LNBTTagList;","()Lrp;","ItemStack","jb","net/minecraft/src","1"
"func_40604_d","setNBTData","d","(LNBTTagCompound;)V","(Lng;)V","ItemStack","jb","net/minecraft/src","1"
"func_40606_q","func_40606_q","q","()Z","()Z","ItemStack","jb","net/minecraft/src","1"
"func_40606_q","isItemEnchantable","q","()Z","()Z","ItemStack","jb","net/minecraft/src","1"
"func_40605_a","addEnchantment","a","(LEnchantment;I)V","(Lmq;I)V","ItemStack","jb","net/minecraft/src","1"
"func_40610_r","func_40610_r","r","()Z","()Z","ItemStack","jb","net/minecraft/src","1"
"func_40610_r","isItemEnchanted","r","()Z","()Z","ItemStack","jb","net/minecraft/src","1"
"func_40256_b","getPotionEffectsForItemStack","b","(LItemStack;)Ljava/util/List;","(Ljb;)Ljava/util/List;","ItemPotion","ft","net/minecraft/src","1"
"func_40255_b","getPotionEffectsForDamage","b","(I)Ljava/util/List;","(I)Ljava/util/List;","ItemPotion","ft","net/minecraft/src","1"
"func_40254_c","isSplash","c","(I)Z","(I)Z","ItemPotion","ft","net/minecraft/src","1"
@@ -3051,7 +3051,7 @@
"func_35197_c","canEat","b","(Z)Z","(Z)Z","EntityPlayer","gz","net/minecraft/src","1"
"func_35206_W","mustHeal","ab","()Z","()Z","EntityPlayer","gz","net/minecraft/src","1"
"func_35201_a","setItemInUse","a","(LItemStack;I)V","(Ljb;I)V","EntityPlayer","gz","net/minecraft/src","1"
"func_35200_c","func_35200_c","d","(III)Z","(III)Z","EntityPlayer","gz","net/minecraft/src","1"
"func_35200_c","canPlayerEdit","d","(III)Z","(III)Z","EntityPlayer","gz","net/minecraft/src","1"
"func_40107_e","func_40107_e","e","(I)V","(I)V","EntityPlayer","gz","net/minecraft/src","1"
"func_41031_d","copyPlayer","c","(LEntityPlayer;)V","(Lgz;)V","EntityPlayer","gz","net/minecraft/src","1"
"func_41040_a","func_41040_a","a","([Ljava/lang/String;)LItemColored;","([Ljava/lang/String;)Lwm;","ItemColored","wm","net/minecraft/src","1"
@@ -3066,7 +3066,7 @@
"func_25055_a","getSpawnableList","a","(LEnumCreatureType;)Ljava/util/List;","(Lla;)Ljava/util/List;","BiomeGenBase","kb","net/minecraft/src","1"
"func_27049_c","getEnableSnow","b","()Z","()Z","BiomeGenBase","kb","net/minecraft/src","1"
"func_27048_d","canSpawnLightningBolt","c","()Z","()Z","BiomeGenBase","kb","net/minecraft/src","1"
"func_4078_a","getBiome","d","()F","()F","BiomeGenBase","kb","net/minecraft/src","1"
"func_4078_a","getSpawningChance","d","()F","()F","BiomeGenBase","kb","net/minecraft/src","1"
"func_35510_e","getIntRainfall","e","()I","()I","BiomeGenBase","kb","net/minecraft/src","1"
"func_35509_f","getIntTemperature","f","()I","()I","BiomeGenBase","kb","net/minecraft/src","1"
"func_35513_a","func_35513_a","a","(LWorld;Ljava/util/Random;II)V","(Lfi;Ljava/util/Random;II)V","BiomeGenBase","kb","net/minecraft/src","1"
@@ -3386,8 +3386,8 @@
"func_435_a","update","a","(LGuiStatsComponent;)V","(Lkp;)V","GuiStatsComponent","kp","net/minecraft/src","1"
"func_770_a","loadGzippedCompoundFromOutputStream","a","(Ljava/io/InputStream;)LNBTTagCompound;","(Ljava/io/InputStream;)Lng;","CompressedStreamTools","ax","net/minecraft/src","1"
"func_769_a","writeGzippedCompoundToOutputStream","a","(LNBTTagCompound;Ljava/io/OutputStream;)V","(Lng;Ljava/io/OutputStream;)V","CompressedStreamTools","ax","net/minecraft/src","1"
"func_40515_a","func_40515_a","a","([B)LNBTTagCompound;","([B)Lng;","CompressedStreamTools","ax","net/minecraft/src","1"
"func_40516_a","func_40516_a","a","(LNBTTagCompound;)[B","(Lng;)[B","CompressedStreamTools","ax","net/minecraft/src","1"
"func_40515_a","loadMapFromByteArray","a","([B)LNBTTagCompound;","([B)Lng;","CompressedStreamTools","ax","net/minecraft/src","1"
"func_40516_a","writeMapToByteArray","a","(LNBTTagCompound;)[B","(Lng;)[B","CompressedStreamTools","ax","net/minecraft/src","1"
"func_774_a","read","a","(Ljava/io/DataInput;)LNBTTagCompound;","(Ljava/io/DataInput;)Lng;","CompressedStreamTools","ax","net/minecraft/src","1"
"func_771_a","writeTo","a","(LNBTTagCompound;Ljava/io/DataOutput;)V","(Lng;Ljava/io/DataOutput;)V","CompressedStreamTools","ax","net/minecraft/src","1"
"func_35700_a","func_35700_a","a","(II)LBiomeGenBase;","(II)Lkb;","BiomeCacheBlock","tb","net/minecraft/src","1"
@@ -3539,7 +3539,7 @@
"func_35382_a","func_35382_a","a","(Ljava/util/List;Ljava/util/Random;IIII)LStructureBoundingBox;","(Ljava/util/List;Ljava/util/Random;IIII)Lvb;","ComponentVillageTorch","oe","net/minecraft/src","1"
"func_284_h","tryToFall","h","(LWorld;III)V","(Lfi;III)V","BlockSand","gv","net/minecraft/src","1"
"func_285_g","canFallBelow","g","(LWorld;III)Z","(Lfi;III)Z","BlockSand","gv","net/minecraft/src","1"
"func_28107_c","func_28107_c","d","()Ljava/util/Collection;","()Ljava/util/Collection;","NBTTagCompound","ng","net/minecraft/src","1"
"func_28107_c","getTags","d","()Ljava/util/Collection;","()Ljava/util/Collection;","NBTTagCompound","ng","net/minecraft/src","1"
"func_399_a","setTag","a","(Ljava/lang/String;LNBTBase;)V","(Ljava/lang/String;Lik;)V","NBTTagCompound","ng","net/minecraft/src","1"
"func_409_a","setByte","a","(Ljava/lang/String;B)V","(Ljava/lang/String;B)V","NBTTagCompound","ng","net/minecraft/src","1"
"func_394_a","setShort","a","(Ljava/lang/String;S)V","(Ljava/lang/String;S)V","NBTTagCompound","ng","net/minecraft/src","1"
@@ -3600,11 +3600,11 @@
"func_148_c","moveEntityWithHeading","a","(FF)V","(FF)V","EntityLiving","lk","net/minecraft/src","1"
"func_144_E","isOnLadder","r","()Z","()Z","EntityLiving","lk","net/minecraft/src","1"
"func_155_a","getCanSpawnHere","g","()Z","()Z","EntityLiving","lk","net/minecraft/src","1"
"func_35180_G","func_35180_G","K","()Z","()Z","EntityLiving","lk","net/minecraft/src","1"
"func_35180_G","isBlocking","K","()Z","()Z","EntityLiving","lk","net/minecraft/src","1"
"func_22058_w","isMovementBlocked","L","()Z","()Z","EntityLiving","lk","net/minecraft/src","1"
"func_152_d_","updateEntityActionState","m_","()V","()V","EntityLiving","lk","net/minecraft/src","1"
"func_142_f","onDeath","a","(LDamageSource;)V","(Lpo;)V","EntityLiving","lk","net/minecraft/src","1"
"func_40094_f","func_40094_f","f","(I)I","(I)I","EntityLiving","lk","net/minecraft/src","1"
"func_40094_f","decreaseAirSupply","f","(I)I","(I)I","EntityLiving","lk","net/minecraft/src","1"
"func_40099_b","applyPotionDamageCalculations","b","(LDamageSource;I)I","(Lpo;I)I","EntityLiving","lk","net/minecraft/src","1"
"func_40101_g","func_40101_g","g","(I)V","(I)V","EntityLiving","lk","net/minecraft/src","1"
"func_40092_O","getTotalArmorValue","O","()I","()I","EntityLiving","lk","net/minecraft/src","1"
@@ -3786,7 +3786,7 @@
"func_35406_b","getAction","d","(LItemStack;)LEnumAction;","(Ljb;)Ljf;","Item","gw","net/minecraft/src","1"
"func_6152_a","onItemRightClick","a","(LItemStack;LWorld;LEntityPlayer;)LItemStack;","(Ljb;Lfi;Lgz;)Ljb;","Item","gw","net/minecraft/src","1"
"func_21089_a","getMetadata","a","(I)I","(I)I","Item","gw","net/minecraft/src","1"
"func_35407_a","func_35407_a","a","(LItemStack;)Ljava/lang/String;","(Ljb;)Ljava/lang/String;","Item","gw","net/minecraft/src","1"
"func_35407_a","getItemNameIS","a","(LItemStack;)Ljava/lang/String;","(Ljb;)Ljava/lang/String;","Item","gw","net/minecraft/src","1"
"func_25007_a","onBlockDestroyed","a","(LItemStack;IIIILEntityLiving;)Z","(Ljb;IIIILlk;)Z","Item","gw","net/minecraft/src","1"
"func_80_a","canHarvestBlock","a","(LBlock;)Z","(Ltl;)Z","Item","gw","net/minecraft/src","1"
"func_79_a","getStrVsBlock","a","(LItemStack;LBlock;)F","(Ljb;Ltl;)F","Item","gw","net/minecraft/src","1"
@@ -3817,7 +3817,7 @@
"func_40223_b","setPotionInfo","b","(Ljava/lang/String;)LItem;","(Ljava/lang/String;)Lgw;","Item","gw","net/minecraft/src","1"
"func_40221_l","getPotionInfo","l","()Ljava/lang/String;","()Ljava/lang/String;","Item","gw","net/minecraft/src","1"
"func_40220_m","isPotionIngredient","m","()Z","()Z","Item","gw","net/minecraft/src","1"
"func_40222_e","func_40222_e","e","(LItemStack;)Z","(Ljb;)Z","Item","gw","net/minecraft/src","1"
"func_40222_e","isItemTool","e","(LItemStack;)Z","(Ljb;)Z","Item","gw","net/minecraft/src","1"
"func_40225_a","func_40225_a","a","(LWorld;LEntityPlayer;Z)LMovingObjectPosition;","(Lfi;Lgz;Z)Luc;","Item","gw","net/minecraft/src","1"
"func_184_b","updateEntity","l_","()V","()V","TileEntity","oh","net/minecraft/src","1"
"func_186_a","readFromNBT","a","(LNBTTagCompound;)V","(Lng;)V","TileEntity","oh","net/minecraft/src","1"
@@ -3830,7 +3830,7 @@
"func_31003_h","invalidate","i","()V","()V","TileEntity","oh","net/minecraft/src","1"
"func_31002_j","validate","m","()V","()V","TileEntity","oh","net/minecraft/src","1"
"func_35163_b","onTileEntityPowered","b","(II)V","(II)V","TileEntity","oh","net/minecraft/src","1"
"func_35164_g","func_35164_g","d","()V","()V","TileEntity","oh","net/minecraft/src","1"
"func_35164_g","updateContainingBlockInfo","d","()V","()V","TileEntity","oh","net/minecraft/src","1"
"func_30004_i","updateFlow","i","(LWorld;III)V","(Lfi;III)V","BlockFlowing","nx","net/minecraft/src","1"
"func_311_f","flowIntoBlock","g","(LWorld;IIII)V","(Lfi;IIII)V","BlockFlowing","nx","net/minecraft/src","1"
"func_4034_a","calculateFlowCost","c","(LWorld;IIIII)I","(Lfi;IIIII)I","BlockFlowing","nx","net/minecraft/src","1"
@@ -4038,15 +4038,15 @@
"func_35310_a","addComponentParts","a","(LWorld;Ljava/util/Random;LStructureBoundingBox;)Z","(Lfi;Ljava/util/Random;Lvb;)Z","StructureComponent","jx","net/minecraft/src","1"
"func_40281_b_","func_40281_b_","b_","()LChunkPosition;","()Lvo;","StructureComponent","jx","net/minecraft/src","1"
"func_35313_b","getStructureBoundingBox","b","()LStructureBoundingBox;","()Lvb;","StructureComponent","jx","net/minecraft/src","1"
"func_35305_c","func_35305_c","c","()I","()I","StructureComponent","jx","net/minecraft/src","1"
"func_35305_c","getComponentType","c","()I","()I","StructureComponent","jx","net/minecraft/src","1"
"func_35312_a","canFitInside","a","(Ljava/util/List;LStructureBoundingBox;)LStructureComponent;","(Ljava/util/List;Lvb;)Ljx;","StructureComponent","jx","net/minecraft/src","1"
"func_35295_a","isLiquidInStructureBoundingBox","a","(LWorld;LStructureBoundingBox;)Z","(Lfi;Lvb;)Z","StructureComponent","jx","net/minecraft/src","1"
"func_35306_a","getXWithOffset","a","(II)I","(II)I","StructureComponent","jx","net/minecraft/src","1"
"func_35300_a","getYWithOffset","b","(I)I","(I)I","StructureComponent","jx","net/minecraft/src","1"
"func_35296_b","getZWithOffset","b","(II)I","(II)I","StructureComponent","jx","net/minecraft/src","1"
"func_35301_c","func_35301_c","c","(II)I","(II)I","StructureComponent","jx","net/minecraft/src","1"
"func_35301_c","getMetadataWithOffset","c","(II)I","(II)I","StructureComponent","jx","net/minecraft/src","1"
"func_35309_a","placeBlockAtCurrentPosition","a","(LWorld;IIIIILStructureBoundingBox;)V","(Lfi;IIIIILvb;)V","StructureComponent","jx","net/minecraft/src","1"
"func_35297_a","func_35297_a","a","(LWorld;IIILStructureBoundingBox;)I","(Lfi;IIILvb;)I","StructureComponent","jx","net/minecraft/src","1"
"func_35297_a","getBlockIdAtCurrentPosition","a","(LWorld;IIILStructureBoundingBox;)I","(Lfi;IIILvb;)I","StructureComponent","jx","net/minecraft/src","1"
"func_35294_a","fillWithBlocks","a","(LWorld;LStructureBoundingBox;IIIIIIIIZ)V","(Lfi;Lvb;IIIIIIIIZ)V","StructureComponent","jx","net/minecraft/src","1"
"func_35307_a","fillWithRandomizedBlocks","a","(LWorld;LStructureBoundingBox;IIIIIIZLjava/util/Random;LStructurePieceBlockSelector;)V","(Lfi;Lvb;IIIIIIZLjava/util/Random;Lcb;)V","StructureComponent","jx","net/minecraft/src","1"
"func_35315_a","randomlyFillWithBlocks","a","(LWorld;LStructureBoundingBox;Ljava/util/Random;FIIIIIIIIZ)V","(Lfi;Lvb;Ljava/util/Random;FIIIIIIIIZ)V","StructureComponent","jx","net/minecraft/src","1"
@@ -4073,9 +4073,9 @@
"func_35692_a","func_35692_a","a","(Ljava/util/Collection;)I","(Ljava/util/Collection;)I","WeightedRandom","tx","net/minecraft/src","1"
"func_35693_a","func_35693_a","a","(Ljava/util/Random;Ljava/util/Collection;I)LWeightedRandomChoice;","(Ljava/util/Random;Ljava/util/Collection;I)Lcp;","WeightedRandom","tx","net/minecraft/src","1"
"func_35689_a","func_35689_a","a","(Ljava/util/Random;Ljava/util/Collection;)LWeightedRandomChoice;","(Ljava/util/Random;Ljava/util/Collection;)Lcp;","WeightedRandom","tx","net/minecraft/src","1"
"func_35690_a","func_35690_a","a","([LWeightedRandomChoice;)I","([Lcp;)I","WeightedRandom","tx","net/minecraft/src","1"
"func_35690_a","sumWeights","a","([LWeightedRandomChoice;)I","([Lcp;)I","WeightedRandom","tx","net/minecraft/src","1"
"func_35688_a","func_35688_a","a","(Ljava/util/Random;[LWeightedRandomChoice;I)LWeightedRandomChoice;","(Ljava/util/Random;[Lcp;I)Lcp;","WeightedRandom","tx","net/minecraft/src","1"
"func_35691_a","func_35691_a","a","(Ljava/util/Random;[LWeightedRandomChoice;)LWeightedRandomChoice;","(Ljava/util/Random;[Lcp;)Lcp;","WeightedRandom","tx","net/minecraft/src","1"
"func_35691_a","chooseOne","a","(Ljava/util/Random;[LWeightedRandomChoice;)LWeightedRandomChoice;","(Ljava/util/Random;[Lcp;)Lcp;","WeightedRandom","tx","net/minecraft/src","1"
"func_21033_c","getBlockFromDye","d","(I)I","(I)I","BlockCloth","ek","net/minecraft/src","1"
"func_21034_d","getDyeFromBlock","e","(I)I","(I)I","BlockCloth","ek","net/minecraft/src","1"
"func_35080_a","getEntity","a","()LEntity;","()Lrn;","DamageSource","po","net/minecraft/src","1"
@@ -4085,10 +4085,10 @@
"func_35073_a","causeArrowDamage","a","(LEntityArrow;LEntity;)LDamageSource;","(Lrk;Lrn;)Lpo;","DamageSource","po","net/minecraft/src","1"
"func_35082_a","causeFireballDamage","a","(LEntityFireball;LEntity;)LDamageSource;","(Lch;Lrn;)Lpo;","DamageSource","po","net/minecraft/src","1"
"func_35081_a","causeThrownDamage","a","(LEntity;LEntity;)LDamageSource;","(Lrn;Lrn;)Lpo;","DamageSource","po","net/minecraft/src","1"
"func_40271_b","func_40271_b","b","(LEntity;LEntity;)LDamageSource;","(Lrn;Lrn;)Lpo;","DamageSource","po","net/minecraft/src","1"
"func_40271_b","causeIndirectMagicDamage","b","(LEntity;LEntity;)LDamageSource;","(Lrn;Lrn;)Lpo;","DamageSource","po","net/minecraft/src","1"
"func_40275_b","isProjectile","b","()Z","()Z","DamageSource","po","net/minecraft/src","1"
"func_40273_c","setProjectile","c","()LDamageSource;","()Lpo;","DamageSource","po","net/minecraft/src","1"
"func_35083_b","unblockable","d","()Z","()Z","DamageSource","po","net/minecraft/src","1"
"func_35083_b","isUnblockable","d","()Z","()Z","DamageSource","po","net/minecraft/src","1"
"func_35074_c","getHungerDamage","e","()F","()F","DamageSource","po","net/minecraft/src","1"
"func_35077_d","canHarmInCreative","f","()Z","()Z","DamageSource","po","net/minecraft/src","1"
"func_35079_e","getSourceOfDamage","g","()LEntity;","()Lrn;","DamageSource","po","net/minecraft/src","1"
@@ -4164,7 +4164,7 @@
"func_491_a","playRecord","a","(Ljava/lang/String;III)V","(Ljava/lang/String;III)V","World","fi","net/minecraft/src","1"
"func_514_a","spawnParticle","a","(Ljava/lang/String;DDDDDD)V","(Ljava/lang/String;DDDDDD)V","World","fi","net/minecraft/src","1"
"func_27073_a","addLightningBolt","a","(LEntity;)Z","(Lrn;)Z","World","fi","net/minecraft/src","1"
"func_526_a","entityJoinedWorld","b","(LEntity;)Z","(Lrn;)Z","World","fi","net/minecraft/src","1"
"func_526_a","spawnEntityInWorld","b","(LEntity;)Z","(Lrn;)Z","World","fi","net/minecraft/src","1"
"func_479_b","obtainEntitySkin","c","(LEntity;)V","(Lrn;)V","World","fi","net/minecraft/src","1"
"func_531_c","releaseEntitySkin","d","(LEntity;)V","(Lrn;)V","World","fi","net/minecraft/src","1"
"func_22085_d","removePlayerForLogoff","e","(LEntity;)V","(Lrn;)V","World","fi","net/minecraft/src","1"
@@ -4355,7 +4355,7 @@
"func_419_a","generate","a","(LWorld;Ljava/util/Random;III)Z","(Lfi;Ljava/util/Random;III)Z","WorldGenerator","or","net/minecraft/src","1"
"func_420_a","func_420_a","a","(DDD)V","(DDD)V","WorldGenerator","or","net/minecraft/src","1"
"func_41043_a","func_41043_a","a","(LWorld;IIIII)V","(Lfi;IIIII)V","WorldGenerator","or","net/minecraft/src","1"
"func_22001_a","handleMovementTypePacket","a","(LPacket27Position;)V","(Lpl;)V","NetHandler","sd","net/minecraft/src","1"
"func_22001_a","handlePosition","a","(LPacket27Position;)V","(Lpl;)V","NetHandler","sd","net/minecraft/src","1"
"func_18_a","handleFlying","a","(LPacket10Flying;)V","(Lij;)V","NetHandler","sd","net/minecraft/src","1"
"func_26_a","handleBlockDig","a","(LPacket14BlockDig;)V","(Lju;)V","NetHandler","sd","net/minecraft/src","1"
"func_24_a","handlePlace","a","(LPacket15Place;)V","(Lha;)V","NetHandler","sd","net/minecraft/src","1"
@@ -4368,10 +4368,10 @@
"func_4009_a","handleKickDisconnect","a","(LPacket255KickDisconnect;)V","(Lxz;)V","NetHandler","sd","net/minecraft/src","1"
"func_6006_a","handleUseEntity","a","(LPacket7UseEntity;)V","(La;)V","NetHandler","sd","net/minecraft/src","1"
"func_9002_a","handleRespawn","a","(LPacket9Respawn;)V","(Loi;)V","NetHandler","sd","net/minecraft/src","1"
"func_20006_a","handleCraftingGuiClosedPacked","a","(LPacket101CloseWindow;)V","(Lly;)V","NetHandler","sd","net/minecraft/src","1"
"func_20006_a","handleCloseWindow","a","(LPacket101CloseWindow;)V","(Lly;)V","NetHandler","sd","net/minecraft/src","1"
"func_20007_a","handleWindowClick","a","(LPacket102WindowClick;)V","(Lpw;)V","NetHandler","sd","net/minecraft/src","1"
"func_40001_a","handleEnchantItem","a","(LPacket108EnchantItem;)V","(Loq;)V","NetHandler","sd","net/minecraft/src","1"
"func_35004_a","handleCreativeSlot","a","(LPacket107CreativeSetSlot;)V","(Ldy;)V","NetHandler","sd","net/minecraft/src","1"
"func_35004_a","handleCreativeSetSlot","a","(LPacket107CreativeSetSlot;)V","(Ldy;)V","NetHandler","sd","net/minecraft/src","1"
"func_20008_a","handleTransaction","a","(LPacket106Transaction;)V","(Lnv;)V","NetHandler","sd","net/minecraft/src","1"
"func_20005_a","handleUpdateSign","a","(LPacket130UpdateSign;)V","(Ltd;)V","NetHandler","sd","net/minecraft/src","1"
"func_35005_a","handleKeepAlive","a","(LPacket0KeepAlive;)V","(Lls;)V","NetHandler","sd","net/minecraft/src","1"
@@ -4445,7 +4445,7 @@
"func_584_b","floor_double","b","(D)I","(D)I","MathHelper","in","net/minecraft/src","1"
"func_35477_c","floor_double_long","c","(D)J","(D)J","MathHelper","in","net/minecraft/src","1"
"func_587_e","abs","e","(F)F","(F)F","MathHelper","in","net/minecraft/src","1"
"func_35475_a","getUnsigned","a","(I)I","(I)I","MathHelper","in","net/minecraft/src","1"
"func_35475_a","abs","a","(I)I","(I)I","MathHelper","in","net/minecraft/src","1"
"func_41051_a","func_41051_a","a","(III)I","(III)I","MathHelper","in","net/minecraft/src","1"
"func_581_a","abs_max","a","(DD)D","(DD)D","MathHelper","in","net/minecraft/src","1"
"func_35476_a","getRandomIntegerInRange","a","(Ljava/util/Random;II)I","(Ljava/util/Random;II)I","MathHelper","in","net/minecraft/src","1"
@@ -4500,7 +4500,7 @@
"func_388_a","tagAt","a","(I)LNBTBase;","(I)Lik;","NBTTagList","rp","net/minecraft/src","1"
"func_387_b","tagCount","d","()I","()I","NBTTagList","rp","net/minecraft/src","1"
"func_641_a","init","a","()V","()V","ConsoleLogManager","hm","net/minecraft/src","1"
"func_35167_h","func_35167_h","h","()V","()V","TileEntityChest","js","net/minecraft/src","1"
"func_35167_h","checkForAdjacentChests","h","()V","()V","TileEntityChest","js","net/minecraft/src","1"
"func_21027_b","growTree","b","(LWorld;IIILjava/util/Random;)V","(Lfi;IIILjava/util/Random;)V","BlockSapling","hk","net/minecraft/src","1"
"func_35032_a","choose","a","(II)I","(II)I","GenLayerZoomFuzzy","we","net/minecraft/src","1"
"func_35031_b","choose","b","(IIII)I","(IIII)I","GenLayerZoomFuzzy","we","net/minecraft/src","1"
@@ -4547,7 +4547,7 @@
"func_21134_a","matches","a","(LInventoryCrafting;)Z","(Lmc;)Z","IRecipe","dz","net/minecraft/src","1"
"func_21136_b","getCraftingResult","b","(LInventoryCrafting;)LItemStack;","(Lmc;)Ljb;","IRecipe","dz","net/minecraft/src","1"
"func_20165_a","getRecipeSize","a","()I","()I","IRecipe","dz","net/minecraft/src","1"
"func_4062_a","func_4062_a","a","(II[B)V","(II[B)V","ChunkProviderHell","pp","net/minecraft/src","1"
"func_4062_a","generateNetherTerrain","a","(II[B)V","(II[B)V","ChunkProviderHell","pp","net/minecraft/src","1"
"func_4061_b","func_4061_b","b","(II[B)V","(II[B)V","ChunkProviderHell","pp","net/minecraft/src","1"
"func_4060_a","func_4060_a","a","([DIIIIII)[D","([DIIIIII)[D","ChunkProviderHell","pp","net/minecraft/src","1"
"func_35556_d","dropChunk","d","(II)V","(II)V","ChunkProvider","nt","net/minecraft/src","1"
@@ -4715,7 +4715,7 @@
"func_41028_k","getTimeSinceHit","k","()I","()I","EntityBoat","gh","net/minecraft/src","1"
"func_41026_d","setForwardDirection","d","(I)V","(I)V","EntityBoat","gh","net/minecraft/src","1"
"func_41029_m","getForwardDirection","l","()I","()I","EntityBoat","gh","net/minecraft/src","1"
"func_28025_b","isACube","b","()Z","()Z","Block","tl","net/minecraft/src","1"
"func_28025_b","renderAsNormalBlock","b","()Z","()Z","Block","tl","net/minecraft/src","1"
"func_259_a","canPlaceBlockAt","c","(LWorld;III)Z","(Lfi;III)Z","Block","tl","net/minecraft/src","1"
"func_220_f","canBlockStay","f","(LWorld;III)Z","(Lfi;III)Z","Block","tl","net/minecraft/src","1"
"func_221_a","updateTick","a","(LWorld;IIILjava/util/Random;)V","(Lfi;IIILjava/util/Random;)V","Block","tl","net/minecraft/src","1"
@@ -4732,12 +4732,12 @@
"func_251_a","onBlockDestroyedByPlayer","c","(LWorld;IIII)V","(Lfi;IIII)V","Block","tl","net/minecraft/src","1"
"func_240_b","isOpaqueCube","a","()Z","()Z","Block","tl","net/minecraft/src","1"
"func_252_a","idDropped","a","(ILjava/util/Random;I)I","(ILjava/util/Random;I)I","Block","tl","net/minecraft/src","1"
"func_40162_a","func_40162_a","a","(ILjava/util/Random;)I","(ILjava/util/Random;)I","Block","tl","net/minecraft/src","1"
"func_40162_a","quantityDroppedWithBonus","a","(ILjava/util/Random;)I","(ILjava/util/Random;)I","Block","tl","net/minecraft/src","1"
"func_12007_g","harvestBlock","a","(LWorld;LEntityPlayer;IIII)V","(Lfi;Lgz;IIII)V","Block","tl","net/minecraft/src","1"
"func_244_a","quantityDropped","a","(Ljava/util/Random;)I","(Ljava/util/Random;)I","Block","tl","net/minecraft/src","1"
"func_4029_c","onBlockDestroyedByExplosion","a_","(LWorld;III)V","(Lfi;III)V","Block","tl","net/minecraft/src","1"
"func_235_b","onBlockClicked","b","(LWorld;IIILEntityPlayer;)V","(Lfi;IIILgz;)V","Block","tl","net/minecraft/src","1"
"func_41001_e","func_41001_e","a_","(I)LItemStack;","(I)Ljb;","Block","tl","net/minecraft/src","1"
"func_41001_e","createStackedBlock","a_","(I)LItemStack;","(I)Ljb;","Block","tl","net/minecraft/src","1"
"func_248_d","getCollisionBoundingBoxFromPool","e","(LWorld;III)LAxisAlignedBB;","(Lfi;III)Leu;","Block","tl","net/minecraft/src","1"
"func_233_a","setBlockBoundsBasedOnState","a","(LIBlockAccess;III)V","(Lwy;III)V","Block","tl","net/minecraft/src","1"
"func_242_b","onBlockRemoval","d","(LWorld;III)V","(Lfi;III)V","Block","tl","net/minecraft/src","1"
Can't render this file because it is too large.
@@ -106,6 +106,7 @@ public class ForgeHooksClient {
Tessellator.instance=t;
}
static IRenderContextHandler unbindContext=null;
protected static void bindTexture(String name, int sub) {
Integer n;
n=textures.get(name);
@@ -115,12 +116,20 @@ public class ForgeHooksClient {
textures.put(name,n);
}
if(!inWorld) {
if(unbindContext!=null) {
unbindContext.afterRenderContext();
unbindContext=null;
}
if(Tessellator.instance.isDrawing) {
int mode=Tessellator.instance.drawMode;
Tessellator.instance.draw();
Tessellator.instance.startDrawing(mode);
}
GL11.glBindTexture(3553 /* GL_TEXTURE_2D */,n);
unbindContext=renderHandlers.get(new TesKey(n,sub));
if(unbindContext!=null) {
unbindContext.beforeRenderContext();
}
return;
}
bindTessellator(n,sub);
@@ -133,6 +142,10 @@ public class ForgeHooksClient {
if(Tessellator.instance.isDrawing) {
int mode=Tessellator.instance.drawMode;
Tessellator.instance.draw();
if(unbindContext!=null) {
unbindContext.afterRenderContext();
unbindContext=null;
}
Tessellator.instance.startDrawing(mode);
}
GL11.glBindTexture(3553 /* GL_TEXTURE_2D */, ModLoader
@@ -309,7 +309,7 @@ public class EnumHelper {
else
{
if ((field.getModifiers() & flags) == flags &&
field.getType().getName().equals(valueType))
field.getType().getName().replace('.', '/').equals(valueType)) //Apparently some JVMs return .'s and some don't..
{
valuesField = field;
break;
@@ -6,11 +6,14 @@
package net.minecraft.src.forge;
import net.minecraft.src.Block;
import net.minecraft.src.Entity;
import net.minecraft.src.EntityMinecart;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.IInventory;
import net.minecraft.src.ItemStack;
import net.minecraft.src.Item;
import net.minecraft.src.EnumStatus;
import net.minecraft.src.ModLoader;
import net.minecraft.src.World;
import java.util.*;
@@ -70,6 +73,36 @@ public class ForgeHooks {
}
static LinkedList<ISleepHandler> sleepHandlers = new LinkedList<ISleepHandler>();
public static void onMinecartUpdate(EntityMinecart minecart, int x, int y, int z)
{
for (IMinecartHandler handler : minecartHandlers)
{
handler.onMinecartUpdate(minecart, x, y, z);
}
}
public static void onMinecartEntityCollision(EntityMinecart minecart, Entity entity)
{
for (IMinecartHandler handler : minecartHandlers)
{
handler.onMinecartEntityCollision(minecart, entity);
}
}
public static boolean onMinecartInteract(EntityMinecart minecart, EntityPlayer player)
{
boolean canceled = true;
for (IMinecartHandler handler : minecartHandlers)
{
boolean tmp = handler.onMinecartInteract(minecart, player, canceled);
canceled = canceled && tmp;
}
return canceled;
}
static LinkedList<IMinecartHandler> minecartHandlers = new LinkedList<IMinecartHandler>();
// Plant Management
// ------------------------------------------------------------
@@ -269,9 +302,10 @@ public class ForgeHooks {
public static final int majorVersion=1;
public static final int minorVersion=2;
public static final int revisionVersion=3;
public static final int revisionVersion=5;
static {
System.out.printf("MinecraftForge V%d.%d.%d Initialized\n", majorVersion, minorVersion, revisionVersion);
ModLoader.getLogger().info(String.format("MinecraftForge V%d.%d.%d Initialized\n", majorVersion, minorVersion, revisionVersion));
}
static boolean toolInit=false;
@@ -0,0 +1,50 @@
package net.minecraft.src.forge;
import net.minecraft.src.AxisAlignedBB;
import net.minecraft.src.Entity;
import net.minecraft.src.EntityMinecart;
/**
* This class defines a replacement for the default minecart collision code.
* Only one handler can be registered at a time. It it registered with EntityMinecart.registerCollisionHandler().
* If you use this, make it a configuration option.
* @author CovertJaguar
*/
public interface IMinecartCollisionHandler
{
/**
* This basically replaces the function of the same name in EnityMinecart.
* Code in IMinecartHooks.applyEntityCollisionHook is still run.
* @param cart The cart that called the collision.
* @param other The object it collided with.
*/
public void onEntityCollision(EntityMinecart cart, Entity other);
/**
* This function replaced the function of the same name in EntityMinecart.
* It is used to define whether minecarts collide with specific entities,
* for example items.
* @param cart The cart for which the collision box was requested.
* @param other The entity requesting the collision box.
* @return The collision box or null.
*/
public AxisAlignedBB getCollisionBox(EntityMinecart cart, Entity other);
/**
* This function is used to define the box used for detecting minecart collisions.
* It is generally bigger that the normal collision box.
* @param cart The cart for which the collision box was requested.
* @return The collision box, cannot be null.
*/
public AxisAlignedBB getMinecartCollisionBox(EntityMinecart cart);
/**
* This function replaces the function of the same name in EntityMinecart.
* It defines whether minecarts are solid to the player.
* @param cart The cart for which the bounding box was requested.
* @return The bounding box or null.
*/
public AxisAlignedBB getBoundingBox(EntityMinecart cart);
}
@@ -0,0 +1,38 @@
package net.minecraft.src.forge;
import net.minecraft.src.Entity;
import net.minecraft.src.EntityMinecart;
import net.minecraft.src.EntityPlayer;
public interface IMinecartHandler {
/**
* This functions is called at the end of every minecart's doUpdate loop.
* If you override EntityMinecart.doUpdate(), is recommended that you retain the code that calls this function.
* @param cart The cart that called the function.
* @param i X coordinate of the rail
* @param j Y coordinate of the rail
* @param k Z coordinate of the rail
*/
public void onMinecartUpdate(EntityMinecart minecart, int x, int y, int z);
/**
* This function allows several mods to add code into the collision routine at the same time regardless of the collision handler registered.
* If you override EntityMinecart.applyEntityCollision(), is recommended that you retain the code that calls this function.
* @param cart The cart that called the function.
* @param other
*/
public void onMinecartEntityCollision(EntityMinecart minecart, Entity entity);
/**
* This function is called whenever a player attempts to interact with a minecart.
* The primary reason for this hook is to fix a few bugs and put restrictions on how a minecart can be used under certain circumstances.
* If you override EntityMinecart.interact(), is recommended that you retain the code that calls this function.
* @param cart The cart that called the function.
* @param player The player that tried to interact with the minecart.
* @param canceled Wither or not a pervious hook has canceled the interaction of a player.
* @return Whether the player can interact with the minecart.
*/
public boolean onMinecartInteract(EntityMinecart minecart, EntityPlayer player, boolean canceled);
}
@@ -0,0 +1,49 @@
package net.minecraft.src.forge;
import net.minecraft.src.EntityMinecart;
/**
* Used to create hashmap values for Minecart/type pairs
* Written by CovertJaguar
*/
public class MinecartKey {
public final Class<? extends EntityMinecart> minecart;
public final int type;
public MinecartKey(Class<? extends EntityMinecart> c, int t)
{
minecart = c;
type = t;
}
@Override
public boolean equals(Object obj)
{
if(obj == null)
{
return false;
}
if(getClass() != obj.getClass())
{
return false;
}
final MinecartKey other = (MinecartKey)obj;
if(this.minecart != other.minecart && (this.minecart == null || !this.minecart.equals(other.minecart)))
{
return false;
}
return (this.type == other.type);
}
@Override
public int hashCode()
{
int hash = 7;
hash = 59 * hash + (this.minecart != null ? this.minecart.hashCode() : 0);
hash = 59 * hash + this.type;
return hash;
}
}
@@ -6,6 +6,7 @@
package net.minecraft.src.forge;
import net.minecraft.src.Block;
import net.minecraft.src.EntityMinecart;
import net.minecraft.src.Item;
import net.minecraft.src.ItemStack;
import net.minecraft.src.World;
@@ -56,6 +57,15 @@ public class MinecraftForge {
public static void registerCraftingHandler(ICraftingHandler handler) {
ForgeHooks.craftingHandlers.add(handler);
}
/**
* Registers a new minecart handler
* @param handler The Handler to be registered
*/
public static void registerMinecartHandler(IMinecartHandler handler)
{
ForgeHooks.minecartHandlers.add(handler);
}
/**
* This is not supposed to be called outside of Minecraft internals.
@@ -559,7 +569,6 @@ public class MinecraftForge {
return rarity;
}
/**
* Gets a random item stack to place in a dungeon chest during world generation
@@ -586,6 +595,149 @@ public class MinecraftForge {
return null;
}
//Minecart Dictionary --------------------------------------
private static Map<MinecartKey, ItemStack> itemForMinecart = new HashMap<MinecartKey, ItemStack>();
private static Map<ItemStack, MinecartKey> minecartForItem = new HashMap<ItemStack, MinecartKey>();
/**
* Registers a custom minecart and its corresponding item.
* This should be the item used to place the minecart by the user,
* not the item dropped by the cart.
* @param cart The minecart.
* @param item The item used to place the cart.
*/
public static void registerMinecart(Class<? extends EntityMinecart> cart, ItemStack item)
{
registerMinecart(cart, 0, item);
}
/**
* Registers a minecart and its corresponding item.
* This should be the item used to place the minecart by the user,
* not the item dropped by the cart.
* @param minecart The minecart.
* @param type The minecart type, used to differentiate carts that have the same class.
* @param item The item used to place the cart.
*/
public static void registerMinecart(Class<? extends EntityMinecart> minecart, int type, ItemStack item)
{
MinecartKey k = new MinecartKey(minecart, type);
itemForMinecart.put(k, item);
minecartForItem.put(item, k);
}
/**
* Removes a previously registered Minecart. Useful for replacing the vanilla minecarts.
* @param minecart
* @param type
*/
public static void removeMinecart(Class<? extends EntityMinecart> minecart, int type)
{
MinecartKey k = new MinecartKey(minecart, type);
ItemStack item = itemForMinecart.remove(k);
if(item != null)
{
minecartForItem.remove(item);
}
}
/**
* This function returns an ItemStack that represents this cart.
* The player should be able to use this item to place the minecart.
* This is the item that was registered with the cart via the registerMinecart function,
* but is not necessary the item the cart drops when destroyed.
* @param minecart The cart class
* @return An ItemStack that can be used to place the cart.
*/
public static ItemStack getItemForCart(Class<? extends EntityMinecart> minecart)
{
return getItemForCart(minecart, 0);
}
/**
* This function returns an ItemStack that represents this cart.
* The player should be able to use this item to place the minecart.
* This is the item that was registered with the cart via the registerMinecart function,
* but is not necessary the item the cart drops when destroyed.
* @param minecart The cart class
* @param type The minecartType value
* @return An ItemStack that can be used to place the cart.
*/
public static ItemStack getItemForCart(Class<? extends EntityMinecart> minecart, int type)
{
ItemStack item = itemForMinecart.get(new MinecartKey(minecart, type));
if (item == null)
{
return null;
}
return item.copy();
}
/**
* This function returns an ItemStack that represents this cart.
* The player should be able to use this item to place the minecart.
* This is the item that was registered with the cart via the registerMinecart function,
* but is not necessary the item the cart drops when destroyed.
* @param cart The cart entity
* @return An ItemStack that can be used to place the cart.
*/
public static ItemStack getItemForCart(EntityMinecart cart)
{
if(cart.getClass() == EntityMinecart.class)
{
return getItemForCart(cart.getClass(), cart.getMinecartType());
}
return getItemForCart(cart.getClass(), 0);
}
/**
* The function will return the cart class for a given item.
* If the item was not registered via the registerMinecart function it will return null.
* @param item The item to test.
* @return Cart if mapping exists, null if not.
*/
public static Class<? extends EntityMinecart> getCartClassForItem(ItemStack item)
{
MinecartKey k = minecartForItem.get(item);
if(k != null)
{
return k.minecart;
}
return null;
}
/**
* The function will return the cart type for a given item.
* Will return -1 if the mapping doesn't exist.
* If the item was not registered via the registerMinecart function it will return null.
* @param item The item to test.
* @return the cart minecartType value.
*/
public static int getCartTypeForItem(ItemStack item)
{
MinecartKey k = minecartForItem.get(item);
if(k != null)
{
return k.type;
}
return -1;
}
/**
* Will return a set of all registered minecart items.
* @return a copy of the set of all minecart items
*/
public static Set<ItemStack> getAllCartItems()
{
Set<ItemStack> ret = new HashSet<ItemStack>();
for(ItemStack item : minecartForItem.keySet())
{
ret.add(item.copy());
}
return ret;
}
static
{
@@ -605,6 +757,10 @@ public class MinecraftForge {
addDungeonLoot(new ItemStack(Item.record13), 0.05f );
addDungeonLoot(new ItemStack(Item.recordCat), 0.05f );
addDungeonLoot(new ItemStack(Item.dyePowder, 1, 3), 1.00f );
registerMinecart(EntityMinecart.class, 0, new ItemStack(Item.minecartEmpty));
registerMinecart(EntityMinecart.class, 1, new ItemStack(Item.minecartCrate));
registerMinecart(EntityMinecart.class, 2, new ItemStack(Item.minecartPowered));
}
}
@@ -35,7 +35,7 @@
+ */
+ public int quantityDropped(int meta, int fortune, Random random)
+ {
+ return func_40198_a(fortune, random);
+ return quantityDroppedWithBonus(fortune, random);
+ }
+
+ /* FORGE: Metadata-sensitive version.
@@ -112,11 +112,11 @@
{
return;
}
- int j1 = func_40198_a(i1, world.rand);
- int j1 = quantityDroppedWithBonus(i1, world.rand);
- for(int k1 = 0; k1 < j1; k1++)
- {
+ ArrayList<ItemStack> ar = getBlockDropped(world, i, j, k, l, i1);
+ for (ItemStack ist : ar) {
+ ArrayList<ItemStack> ar = getBlockDropped(world, i, j, k, l, i1);
+ for (ItemStack ist : ar) {
if(world.rand.nextFloat() > f)
{
continue;
@@ -126,11 +126,20 @@
- {
- dropBlockAsItem_do(world, i, j, k, new ItemStack(l1, 1, damageDropped(l)));
- }
+ dropBlockAsItem_do(world, i, j, k, ist);
+ dropBlockAsItem_do(world, i, j, k, ist);
}
}
@@ -805,6 +848,200 @@
@@ -726,7 +769,7 @@
{
entityplayer.addStat(StatList.mineBlockStatArray[blockID], 1);
entityplayer.addExhaustion(0.025F);
- if(renderAsNormalBlock() && !isBlockContainer[blockID] && EnchantmentHelper.getSilkTouchModifier(entityplayer.inventory))
+ if(renderAsNormalBlock() && !hasTileEntity(l) && EnchantmentHelper.getSilkTouchModifier(entityplayer.inventory))
{
ItemStack itemstack = createStackedBlock(l);
if(itemstack != null)
@@ -805,6 +848,248 @@
return iblockaccess.isBlockNormalCube(i, j, k) ? 0.2F : 1.0F;
}
@@ -142,11 +151,21 @@
+
+ /* FORGE: Implement and return true if you wish this block to behave
+ * like a ladder when the player is inside.
+ *
+ * This is deprecated in favor of the more flexible version below.
+ */
+ @Deprecated
+ public boolean isLadder() {
+ return false;
+ }
+
+ /* FORGE: Implement and return true if you wish this block to behave
+ * like a ladder when the player is inside.
+ */
+ public boolean isLadder(World world, int i, int j, int k) {
+ return isLadder();
+ }
+
+ /* FORGE: Return true if the block is a normal, solid cube. This
+ * determines indirect power state, entity ejection from blocks, and a few
+ * others.
@@ -235,8 +254,8 @@
+ {
+ }
+
+ private static int blockFireSpreadSpeed[] = new int[256];
+ private static int blockFlammability[] = new int[256];
+ protected static int blockFireSpreadSpeed[] = new int[256];
+ protected static int blockFlammability[] = new int[256];
+
+ /**
+ * Chance that fire will spread and consume this block.
@@ -321,12 +340,50 @@
+ * @param encouragement How much the block encourages fire to spread
+ * @param flammability how easy a block is to catch fire
+ */
+ protected static void setBurnRate(int id, int encouragement, int flammability)
+ public static void setBurnProperties(int id, int encouragement, int flammability)
+ {
+ blockFireSpreadSpeed[id] = encouragement;
+ blockFlammability[id] = flammability;
+ }
+
+ /**
+ * Called throughout the code as a replacement for block instanceof BlockContainer
+ * Moving this to the Block base class allows for mods that wish to extend vinella
+ * blocks, and also want to have a tile entity on that block, may.
+ *
+ * Return true from this function to specify this block has a tile entity.
+ *
+ * @param metadata Metadata of the current block
+ * @return True if block has a tile entity, false otherwise
+ */
+ public boolean hasTileEntity(int metadata)
+ {
+ if (isBlockContainer[blockID])
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ /**
+ * Called throughout the code as a replacement for BlockContainer.getBlockEntity
+ * Return the same thing you would from that function.
+ * This will fall back to BlockContainer.getBlockEntity if this block is a BlockContainer.
+ *
+ * @param metadata The Metadata of the current block
+ * @return A instance of a class extending TileEntity
+ */
+ public TileEntity getTileEntity(int metadata)
+ {
+ if (this instanceof BlockContainer)
+ {
+ return ((BlockContainer)this).getBlockEntity(metadata);
+ }
+ return null;
+ }
+
static Class _mthclass$(String s)
{
@@ -38,7 +38,7 @@
- float f4 = world.rand.nextFloat() * f1 + (1.0F - f1) * 0.5F;
- EntityItem entityitem = new EntityItem(world, (float)i + f2, (float)j + f3, (float)k + f4, new ItemStack(Item.seeds));
- entityitem.delayBeforeCanPickup = 10;
- world.entityJoinedWorld(entityitem);
- world.spawnEntityInWorld(entityitem);
+ tr.add(new ItemStack(Item.seeds));
}
}
@@ -1,34 +1,40 @@
--- ../src_base/minecraft/net/minecraft/src/BlockFire.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft/net/minecraft/src/BlockFire.java 0000-00-00 00:00:00.000000000 -0000
@@ -14,14 +14,9 @@
@@ -14,14 +14,14 @@
public class BlockFire extends Block
{
- private int chanceToEncourageFire[];
- private int abilityToCatchFire[];
-
+ private int chanceToEncourageFire[];
+ private int abilityToCatchFire[];
+
protected BlockFire(int i, int j)
{
super(i, j, Material.fire);
- chanceToEncourageFire = new int[256];
- abilityToCatchFire = new int[256];
+ chanceToEncourageFire = Block.blockFireSpreadSpeed;
+ abilityToCatchFire = Block.blockFlammability;
setTickOnLoad(true);
}
@@ -39,12 +34,6 @@
@@ -38,11 +38,10 @@
setBurnRate(Block.cloth.blockID, 30, 60);
setBurnRate(Block.vine.blockID, 15, 100);
}
- private void setBurnRate(int i, int j, int k)
- {
-
+
private void setBurnRate(int i, int j, int k)
{
- chanceToEncourageFire[i] = j;
- abilityToCatchFire[i] = k;
- }
-
+ Block.setBurnProperties(i, j, k);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int i, int j, int k)
{
return null;
@@ -77,11 +66,9 @@
@@ -77,11 +76,9 @@
public void updateTick(World world, int i, int j, int k, Random random)
{
@@ -43,7 +49,7 @@
if(!canPlaceBlockAt(world, i, j, k))
{
world.setBlockWithNotify(i, j, k, 0);
@@ -99,23 +86,23 @@
@@ -99,23 +96,23 @@
world.scheduleBlockUpdate(i, j, k, blockID, tickRate());
if(!flag && !func_263_h(world, i, j, k))
{
@@ -68,21 +74,29 @@
- tryToCatchBlockOnFire(world, i, j, k + 1, 300, random, l);
+ tryToCatchBlockOnFire(world, i + 1, j, k, 300, random, l, 4);
+ tryToCatchBlockOnFire(world, i - 1, j, k, 300, random, l, 5);
+ tryToCatchBlockOnFire(world, i, j - 1, k, 250, random, l, 0);
+ tryToCatchBlockOnFire(world, i, j + 1, k, 250, random, l, 1);
+ tryToCatchBlockOnFire(world, i, j - 1, k, 250, random, l, 1);
+ tryToCatchBlockOnFire(world, i, j + 1, k, 250, random, l, 0);
+ tryToCatchBlockOnFire(world, i, j, k - 1, 300, random, l, 3);
+ tryToCatchBlockOnFire(world, i, j, k + 1, 300, random, l, 2);
for(int i1 = i - 1; i1 <= i + 1; i1++)
{
for(int j1 = k - 1; j1 <= k + 1; j1++)
@@ -155,9 +142,14 @@
@@ -155,9 +152,23 @@
}
- private void tryToCatchBlockOnFire(World world, int i, int j, int k, int l, Random random, int i1)
+ private void tryToCatchBlockOnFire(World world, int i, int j, int k, int l, Random random, int i1, int face)
+ /*
+ * Added for backwards compatibility, should not be called by anyone who is making a mod for forge
+ */
+ @Deprecated
private void tryToCatchBlockOnFire(World world, int i, int j, int k, int l, Random random, int i1)
{
- int j1 = abilityToCatchFire[world.getBlockId(i, j, k)];
+ tryToCatchBlockOnFire(world, i, j, k, l, random, i1, 0);
+ }
+
+ private void tryToCatchBlockOnFire(World world, int i, int j, int k, int l, Random random, int i1, int face)
+ {
+ Block block = Block.blocksList[world.getBlockId(i, j, k)];
+ int j1 = 0;
+ if (block != null)
@@ -92,7 +106,7 @@
if(random.nextInt(l) < j1)
{
boolean flag = world.getBlockId(i, j, k) == Block.tnt.blockID;
@@ -182,27 +174,27 @@
@@ -182,27 +193,27 @@
private boolean func_263_h(World world, int i, int j, int k)
{
@@ -107,12 +121,12 @@
return true;
}
- if(canBlockCatchFire(world, i, j - 1, k))
+ if(canBlockCatchFire(world, i, j - 1, k, 0))
+ if(canBlockCatchFire(world, i, j - 1, k, 1))
{
return true;
}
- if(canBlockCatchFire(world, i, j + 1, k))
+ if(canBlockCatchFire(world, i, j + 1, k, 1))
+ if(canBlockCatchFire(world, i, j + 1, k, 0))
{
return true;
}
@@ -126,7 +140,7 @@
}
private int getChanceOfNeighborsEncouragingFire(World world, int i, int j, int k)
@@ -213,12 +205,12 @@
@@ -213,12 +224,12 @@
return 0;
} else
{
@@ -136,28 +150,33 @@
- l = getChanceToEncourageFire(world, i, j + 1, k, l);
- l = getChanceToEncourageFire(world, i, j, k - 1, l);
- l = getChanceToEncourageFire(world, i, j, k + 1, l);
+ l = getChanceToEncourageFire(world, i + 1, j, k, l, 5);
+ l = getChanceToEncourageFire(world, i - 1, j, k, l, 4);
+ l = getChanceToEncourageFire(world, i, j - 1, k, l, 0);
+ l = getChanceToEncourageFire(world, i, j + 1, k, l, 1);
+ l = getChanceToEncourageFire(world, i + 1, j, k, l, 4);
+ l = getChanceToEncourageFire(world, i - 1, j, k, l, 5);
+ l = getChanceToEncourageFire(world, i, j - 1, k, l, 1);
+ l = getChanceToEncourageFire(world, i, j + 1, k, l, 0);
+ l = getChanceToEncourageFire(world, i, j, k - 1, l, 3);
+ l = getChanceToEncourageFire(world, i, j, k + 1, l, 2);
return l;
}
}
@@ -228,14 +220,25 @@
@@ -227,15 +238,43 @@
{
return false;
}
- public boolean canBlockCatchFire(IBlockAccess iblockaccess, int i, int j, int k)
- {
- return chanceToEncourageFire[iblockaccess.getBlockId(i, j, k)] > 0;
- }
- public int getChanceToEncourageFire(World world, int i, int j, int k, int l)
+ public boolean canBlockCatchFire(IBlockAccess world, int i, int j, int k, int face)
-
+
+ /*
+ * Added for backwards compatibility, should not be called by anyone who is making a mod for forge
+ */
+ @Deprecated
public boolean canBlockCatchFire(IBlockAccess iblockaccess, int i, int j, int k)
{
- int i1 = chanceToEncourageFire[world.getBlockId(i, j, k)];
- return chanceToEncourageFire[iblockaccess.getBlockId(i, j, k)] > 0;
+ return canBlockCatchFire(iblockaccess, i, j, k, 0);
}
+ public boolean canBlockCatchFire(IBlockAccess world, int i, int j, int k, int face)
+ {
+ Block block = Block.blocksList[world.getBlockId(i, j, k)];
+ if (block != null)
+ {
@@ -166,6 +185,16 @@
+ return false;
+ }
+
+ /*
+ * Added for backwards compatibility, should not be called by anyone who is making a mod for forge
+ */
+ @Deprecated
public int getChanceToEncourageFire(World world, int i, int j, int k, int l)
{
- int i1 = chanceToEncourageFire[world.getBlockId(i, j, k)];
+ return getChanceToEncourageFire(world, i, j, k, l, 0);
+ }
+
+ public int getChanceToEncourageFire(World world, int i, int j, int k, int l, int face)
+ {
+ int i1 = 0;
@@ -177,22 +206,22 @@
if(i1 > l)
{
return i1;
@@ -247,12 +250,12 @@
@@ -247,12 +286,12 @@
public boolean canPlaceBlockAt(World world, int i, int j, int k)
{
- return world.isBlockNormalCube(i, j - 1, k) || func_263_h(world, i, j, k);
+ return world.isBlockSolidOnSide(i, j - 1, k, 0) || func_263_h(world, i, j, k);
+ return world.isBlockSolidOnSide(i, j - 1, k, 1) || func_263_h(world, i, j, k);
}
public void onNeighborBlockChange(World world, int i, int j, int k, int l)
{
- if(!world.isBlockNormalCube(i, j - 1, k) && !func_263_h(world, i, j, k))
+ if(!world.isBlockSolidOnSide(i, j - 1, k, 0) && !func_263_h(world, i, j, k))
+ if(!world.isBlockSolidOnSide(i, j - 1, k, 1) && !func_263_h(world, i, j, k))
{
world.setBlockWithNotify(i, j, k, 0);
return;
@@ -268,7 +271,7 @@
@@ -268,7 +307,7 @@
{
return;
}
@@ -201,34 +230,34 @@
{
world.setBlockWithNotify(i, j, k, 0);
return;
@@ -285,7 +288,7 @@
@@ -285,7 +324,7 @@
{
world.playSoundEffect((float)i + 0.5F, (float)j + 0.5F, (float)k + 0.5F, "fire.fire", 1.0F + random.nextFloat(), random.nextFloat() * 0.7F + 0.3F);
}
- if(world.isBlockNormalCube(i, j - 1, k) || Block.fire.canBlockCatchFire(world, i, j - 1, k))
+ if(world.isBlockSolidOnSide(i, j - 1, k, 0) || Block.fire.canBlockCatchFire(world, i, j - 1, k, 0))
+ if(world.isBlockSolidOnSide(i, j - 1, k, 1) || Block.fire.canBlockCatchFire(world, i, j - 1, k, 1))
{
for(int l = 0; l < 3; l++)
{
@@ -297,7 +300,7 @@
@@ -297,7 +336,7 @@
} else
{
- if(Block.fire.canBlockCatchFire(world, i - 1, j, k))
+ if(Block.fire.canBlockCatchFire(world, i - 1, j, k, 4))
+ if(Block.fire.canBlockCatchFire(world, i - 1, j, k, 5))
{
for(int i1 = 0; i1 < 2; i1++)
{
@@ -308,7 +311,7 @@
@@ -308,7 +347,7 @@
}
}
- if(Block.fire.canBlockCatchFire(world, i + 1, j, k))
+ if(Block.fire.canBlockCatchFire(world, i + 1, j, k, 5))
+ if(Block.fire.canBlockCatchFire(world, i + 1, j, k, 4))
{
for(int j1 = 0; j1 < 2; j1++)
{
@@ -319,7 +322,7 @@
@@ -319,7 +358,7 @@
}
}
@@ -237,7 +266,7 @@
{
for(int k1 = 0; k1 < 2; k1++)
{
@@ -330,7 +333,7 @@
@@ -330,7 +369,7 @@
}
}
@@ -246,12 +275,12 @@
{
for(int l1 = 0; l1 < 2; l1++)
{
@@ -341,7 +344,7 @@
@@ -341,7 +380,7 @@
}
}
- if(Block.fire.canBlockCatchFire(world, i, j + 1, k))
+ if(Block.fire.canBlockCatchFire(world, i, j + 1, k, 1))
+ if(Block.fire.canBlockCatchFire(world, i, j + 1, k, 0))
{
for(int i2 = 0; i2 < 2; i2++)
{
@@ -5,7 +5,7 @@
}
+ /* FORGE: Implemented base method, see Block.isLadder */
+ public boolean isLadder() {
+ public boolean isLadder(World world, int i, int j, int k) {
+ return true;
+ }
+
@@ -0,0 +1,11 @@
--- ../src_base/minecraft/net/minecraft/src/BlockPistonBase.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft/net/minecraft/src/BlockPistonBase.java 0000-00-00 00:00:00.000000000 -0000
@@ -361,7 +361,7 @@
return false;
}
}
- return !(Block.blocksList[i] instanceof BlockContainer);
+ return !(Block.blocksList[i] != null && Block.blocksList[i].hasTileEntity(world.getBlockMetadata(j, k, l)));
}
private static boolean canExtend(World world, int i, int j, int k, int l)
@@ -1,21 +1,47 @@
--- ../src_base/minecraft/net/minecraft/src/BlockRail.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft/net/minecraft/src/BlockRail.java 0000-00-00 00:00:00.000000000 -0000
@@ -18,12 +18,12 @@
@@ -14,16 +14,29 @@
{
private final boolean isPowered;
+
+ /**
+ * Forge: Moved render type to a field and a setter.
+ * This allows for a mod to change the render type
+ * for vanilla rails, and any mod rails that extend
+ * this class.
+ */
+ private int renderType = 9;
+
+ public void setRenderType(int value)
+ {
+ renderType = value;
+ }
public static final boolean isRailBlockAt(World world, int i, int j, int k)
{
int l = world.getBlockId(i, j, k);
- return l == Block.rail.blockID || l == Block.railPowered.blockID || l == Block.railDetector.blockID;
+ return Block.blocksList[l] instanceof BlockRail;
+ return Block.blocksList[l] instanceof BlockRail;
}
public static final boolean isRailBlock(int i)
{
- return i == Block.rail.blockID || i == Block.railPowered.blockID || i == Block.railDetector.blockID;
+ return Block.blocksList[i] instanceof BlockRail;
+ return Block.blocksList[i] instanceof BlockRail;
}
protected BlockRail(int i, int j, boolean flag)
@@ -99,7 +99,7 @@
@@ -89,7 +102,7 @@
public int getRenderType()
{
- return 9;
+ return renderType;
}
public int quantityDropped(Random random)
@@ -99,7 +112,7 @@
public boolean canPlaceBlockAt(World world, int i, int j, int k)
{
@@ -24,7 +50,7 @@
}
public void onBlockAdded(World world, int i, int j, int k)
@@ -123,23 +123,23 @@
@@ -123,23 +136,23 @@
j1 &= 7;
}
boolean flag = false;
@@ -53,3 +79,122 @@
{
flag = true;
}
@@ -313,8 +326,118 @@
return 0;
}
+ /**
+ * This function is no longer called by Minecraft
+ */
static boolean isPoweredBlockRail(BlockRail blockrail)
{
return blockrail.isPowered;
}
+
+ /**
+ * Return true if the rail can make corners.
+ * Used by placement logic.
+ * @param world The world.
+ * @param i The rail X coordinate.
+ * @param j The rail Y coordinate.
+ * @param k The rail Z coordinate.
+ * @return True if the rail can make corners.
+ */
+ public boolean isFlexibleRail(World world, int i, int j, int k)
+ {
+ return !isPowered;
+ }
+
+ /**
+ * Returns true if the rail can make up and down slopes.
+ * Used by placement logic.
+ * @param world The world.
+ * @param i The rail X coordinate.
+ * @param j The rail Y coordinate.
+ * @param k The rail Z coordinate.
+ * @return True if the rail can make slopes.
+ */
+ public boolean canMakeSlopes(World world, int i, int j, int k)
+ {
+ return true;
+ }
+
+ /**
+ * Return the rails metadata (without the power bit if the rail uses one).
+ * Can be used to make the cart think the rail something other than it is,
+ * for example when making diamond junctions or switches.
+ * The cart parameter will often be null unless it it called from EntityMinecart.
+ *
+ * Valid rail metadata is defined as follows:
+ * 0x0: flat track going North-South
+ * 0x1: flat track going West-East
+ * 0x2: track ascending to the East
+ * 0x3: track ascending to the West
+ * 0x4: track ascending to the North
+ * 0x5: track ascending to the South
+ * 0x6: WestNorth corner (connecting East and South)
+ * 0x7: EastNorth corner (connecting West and South)
+ * 0x8: EastSouth corner (connecting West and North)
+ * 0x9: WestSouth corner (connecting East and North)
+ *
+ * All directions are Notch defined.
+ * In MC Beta 1.8.3 the Sun rises in the North.
+ * In MC 1.0.0 the Sun rises in the East.
+ * @param world The world.
+ * @param cart The cart asking for the metadata, null if it is not called by EntityMinecart.
+ * @param i The rail X coordinate.
+ * @param j The rail Y coordinate.
+ * @param k The rail Z coordinate.
+ * @return The metadata.
+ */
+ public int getBasicRailMetadata(IBlockAccess world, EntityMinecart cart, int i, int j, int k)
+ {
+ int meta = world.getBlockMetadata(i, j, k);
+ if(isPowered) {
+ meta = meta & 7;
+ }
+ return meta;
+ }
+
+ /**
+ * Returns the max speed of the rail at [i, j, k].
+ * @param world The world.
+ * @param cart The cart on the rail, may be null.
+ * @param i The rail X coordinate.
+ * @param j The rail Y coordinate.
+ * @param k The rail Z coordinate.
+ * @return The max speed of the current rail.
+ */
+ public float getRailMaxSpeed(World world, EntityMinecart cart, int i, int j, int k)
+ {
+ return 0.4f;
+ }
+
+ /**
+ * This function is called by any minecart that passes over this rail.
+ * It is called once per update tick that the minecart is on the rail.
+ * @param world The world.
+ * @param cart The cart on the rail.
+ * @param i The rail X coordinate.
+ * @param j The rail Y coordinate.
+ * @param k The rail Z coordinate.
+ */
+ public void onMinecartPass(World world, EntityMinecart cart, int i, int j, int k)
+ {
+ }
+
+ /**
+ * Return true if this rail uses the 4th bit as a power bit.
+ * Avoid using this function when getBasicRailMetadata() can be used instead.
+ * The only reason to use this function is if you wish to change the rails metadata.
+ * @param world The world.
+ * @param i The rail X coordinate.
+ * @param j The rail Y coordinate.
+ * @param k The rail Z coordinate.
+ * @return True if the 4th bit is a power bit.
+ */
+ public boolean hasPowerBit(World world, int i, int j, int k)
+ {
+ return isPowered;
+ }
}
@@ -11,7 +11,7 @@
- double d2 = (double)(world.rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D;
- EntityItem entityitem = new EntityItem(world, (double)i + d, (double)j + d1, (double)k + d2, new ItemStack(i1, 1, 0));
- entityitem.delayBeforeCanPickup = 10;
- world.entityJoinedWorld(entityitem);
- world.spawnEntityInWorld(entityitem);
- world.setBlockWithNotify(i, j, k, 0);
+
+ dropBlockAsItem(world,i,j,k,l,0);
@@ -42,4 +42,4 @@
+ return tr;
}
public int func_40198_a(int i, Random random)
public int quantityDroppedWithBonus(int i, Random random)
@@ -8,16 +8,36 @@
import java.io.PrintStream;
import java.util.*;
@@ -390,7 +391,7 @@
@@ -351,11 +352,12 @@
blocks[i << worldObj.xShift | k << worldObj.heightShift | j] = (byte)(byte0 & 0xff);
if(l1 != 0)
{
+ int meta = getBlockMetadata(i, j, k);
if(!worldObj.multiplayerWorld)
{
Block.blocksList[l1].onBlockRemoval(worldObj, i2, j, j2);
} else
- if(Block.blocksList[l1] instanceof BlockContainer)
+ if(Block.blocksList[l1] != null && Block.blocksList[l1].hasTileEntity(meta))
{
worldObj.removeBlockTileEntity(i2, j, j2);
}
@@ -385,12 +387,12 @@
{
Block.blocksList[l].onBlockAdded(worldObj, i2, j, j2);
}
- if(Block.blocksList[l] instanceof BlockContainer)
+ if(Block.blocksList[l] != null && Block.blocksList[l].hasTileEntity(i1))
{
TileEntity tileentity = getChunkBlockTileEntity(i, j, k);
if(tileentity == null)
{
- tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity();
+ tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity(i1);
+ tileentity = Block.blocksList[l].getTileEntity(i1);
worldObj.setBlockTileEntity(i, j, k, tileentity);
}
if(tileentity != null)
@@ -398,15 +399,7 @@
@@ -398,15 +400,7 @@
tileentity.updateContainingBlockInfo();
}
}
@@ -34,7 +54,7 @@
isModified = true;
return true;
}
@@ -430,7 +423,11 @@
@@ -430,7 +424,11 @@
blocks[i << worldObj.xShift | k << worldObj.heightShift | j] = (byte)(byte0 & 0xff);
if(k1 != 0)
{
@@ -47,17 +67,25 @@
}
data.setNibble(i, j, k, 0);
if(Block.lightOpacity[byte0 & 0xff] != 0)
@@ -458,7 +455,7 @@
@@ -453,27 +451,21 @@
{
Block.blocksList[l].onBlockAdded(worldObj, l1, j, i2);
}
- if(l > 0 && (Block.blocksList[l] instanceof BlockContainer))
+ int meta = getBlockMetadata(i, j, k);
+ if(l > 0 && Block.blocksList[l] != null && Block.blocksList[l].hasTileEntity(meta))
{
TileEntity tileentity = getChunkBlockTileEntity(i, j, k);
if(tileentity == null)
{
- tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity();
+ tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity(0);
+ tileentity = Block.blocksList[l].getTileEntity(meta);
worldObj.setBlockTileEntity(i, j, k, tileentity);
}
if(tileentity != null)
@@ -466,14 +463,6 @@
{
tileentity.updateContainingBlockInfo();
+ tileentity.blockMetadata = meta;
}
}
- } else
@@ -71,7 +99,17 @@
}
isModified = true;
return true;
@@ -609,6 +598,11 @@
@@ -494,7 +486,8 @@
}
data.setNibble(i, j, k, l);
int j1 = getBlockID(i, j, k);
- if(j1 > 0 && (Block.blocksList[j1] instanceof BlockContainer))
+
+ if(j1 > 0 && Block.blocksList[j1] != null && Block.blocksList[j1].hasTileEntity(i1))
{
TileEntity tileentity = getChunkBlockTileEntity(i, j, k);
if(tileentity != null)
@@ -609,27 +602,38 @@
{
ChunkPosition chunkposition = new ChunkPosition(i, j, k);
TileEntity tileentity = (TileEntity)chunkTileEntityMap.get(chunkposition);
@@ -83,12 +121,16 @@
if(tileentity == null)
{
int l = getBlockID(i, j, k);
@@ -618,18 +612,23 @@
- if(!Block.isBlockContainer[l])
+ int meta = getBlockMetadata(i, j, k);
+ if(Block.blocksList[l] == null || !Block.blocksList[l].hasTileEntity(meta))
{
return null;
}
if(tileentity == null)
{
- tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity();
+ tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity(getBlockMetadata(i,j,k));
+ tileentity = Block.blocksList[l].getTileEntity(meta);
worldObj.setBlockTileEntity(xPosition * 16 + i, j, zPosition * 16 + k, tileentity);
}
tileentity = (TileEntity)chunkTileEntityMap.get(chunkposition);
@@ -114,7 +156,7 @@
}
}
@@ -641,7 +640,7 @@
@@ -641,7 +645,7 @@
setChunkBlockTileEntity(i, j, k, tileentity);
if(isChunkLoaded)
{
@@ -123,7 +165,15 @@
}
}
@@ -657,6 +656,8 @@
@@ -652,11 +656,15 @@
tileentity.xCoord = xPosition * 16 + i;
tileentity.yCoord = j;
tileentity.zCoord = zPosition * 16 + k;
- if(getBlockID(i, j, k) == 0 || !(Block.blocksList[getBlockID(i, j, k)] instanceof BlockContainer))
+ int id = getBlockID(i, j, k);
+ int meta = getBlockMetadata(i, j, k);
+ if(id == 0 || Block.blocksList[id] == null || !Block.blocksList[id].hasTileEntity(meta))
{
return;
} else
{
@@ -132,7 +182,7 @@
tileentity.validate();
chunkTileEntityMap.put(chunkposition, tileentity);
return;
@@ -810,6 +811,15 @@
@@ -810,6 +818,15 @@
public int setChunkData(byte abyte0[], int i, int j, int k, int l, int i1, int j1,
int k1)
{
@@ -148,7 +198,7 @@
for(int l1 = i; l1 < l; l1++)
{
for(int l2 = k; l2 < j1; l2++)
@@ -859,12 +869,29 @@
@@ -859,12 +876,29 @@
}
@@ -0,0 +1,16 @@
--- ../src_base/minecraft/net/minecraft/src/Enchantment.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft/net/minecraft/src/Enchantment.java 0000-00-00 00:00:00.000000000 -0000
@@ -109,6 +109,13 @@
return (new StringBuilder()).append(s).append(" ").append(StatCollector.translateToLocal((new StringBuilder()).append("enchantment.level.").append(i).toString())).toString();
}
+ /* FORGE: Can enchantment be applied to item. Redirected to allow users to
+ * override it in their Enchantment class.
+ */
+ public boolean canEnchantItem(ItemStack ist) {
+ return type.canEnchantItem(ist.getItem());
+ }
+
static
{
looting = new EnchantmentLootBonus(21, 2, EnumEnchantmentType.weapon);
@@ -0,0 +1,11 @@
--- ../src_base/minecraft/net/minecraft/src/EnchantmentHelper.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft/net/minecraft/src/EnchantmentHelper.java 0000-00-00 00:00:00.000000000 -0000
@@ -271,7 +271,7 @@
for(int k = 0; k < j; k++)
{
Enchantment enchantment = aenchantment[k];
- if(enchantment == null || !enchantment.type.canEnchantItem(item))
+ if(enchantment == null || !enchantment.canEnchantItem(itemstack))
{
continue;
}
@@ -0,0 +1,54 @@
--- ../src_base/minecraft/net/minecraft/src/Entity.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft/net/minecraft/src/Entity.java 0000-00-00 00:00:00.000000000 -0000
@@ -83,6 +83,9 @@
public int serverPosZ;
public boolean ignoreFrustumCheck;
public boolean isAirBorne;
+
+ //Forge: Used to store custom data for each entity.
+ private NBTTagCompound customEntityData;
public Entity(World world)
{
@@ -123,6 +126,20 @@
}
protected abstract void entityInit();
+
+ /**
+ * Returns a NBTTagCompound that can be used to store custom data for this entity.
+ * It will be written, and read from disc, so it persists over world saves.
+ * @return A NBTTagCompound
+ */
+ public NBTTagCompound getEntityData()
+ {
+ if (customEntityData == null)
+ {
+ customEntityData = new NBTTagCompound();
+ }
+ return customEntityData;
+ }
public DataWatcher getDataWatcher()
{
@@ -955,6 +972,10 @@
nbttagcompound.setShort("Fire", (short)fire);
nbttagcompound.setShort("Air", (short)getAir());
nbttagcompound.setBoolean("OnGround", onGround);
+ if(customEntityData!=null) {
+ nbttagcompound.setCompoundTag("ForgeData",
+ customEntityData);
+ }
writeEntityToNBT(nbttagcompound);
}
@@ -989,6 +1010,9 @@
onGround = nbttagcompound.getBoolean("OnGround");
setPosition(posX, posY, posZ);
setRotation(rotationYaw, rotationPitch);
+ if(nbttagcompound.hasKey("ForgeData")) {
+ customEntityData=nbttagcompound.getCompoundTag("ForgeData");
+ }
readEntityFromNBT(nbttagcompound);
}
@@ -7,7 +7,7 @@
- return worldObj.getBlockId(i, j, k) == Block.ladder.blockID;
+ Block block=Block.blocksList[worldObj.getBlockId(i,j,k)];
+ if(block==null) return false;
+ return block.isLadder();
+ return block.isLadder(worldObj,i,j,k);
}
public void writeEntityToNBT(NBTTagCompound nbttagcompound)
@@ -0,0 +1,915 @@
--- ../src_base/minecraft/net/minecraft/src/EntityMinecart.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft/net/minecraft/src/EntityMinecart.java 0000-00-00 00:00:00.000000000 -0000
@@ -4,9 +4,14 @@
package net.minecraft.src;
+import java.util.ArrayList;
import java.util.List;
import java.util.Random;
+import net.minecraft.src.forge.ForgeHooks;
+import net.minecraft.src.forge.IMinecartCollisionHandler;
+import net.minecraft.src.forge.MinecraftForge;
+
// Referenced classes of package net.minecraft.src:
// Entity, IInventory, ItemStack, DataWatcher,
// World, Item, EntityItem, Block,
@@ -18,13 +23,13 @@
implements IInventory
{
- private ItemStack cargoItems[];
- private int fuel;
- private boolean field_856_i;
+ protected ItemStack cargoItems[];
+ protected int fuel;
+ protected boolean field_856_i;
public int minecartType;
public double pushX;
public double pushZ;
- private static final int field_855_j[][][] = {
+ protected static final int field_855_j[][][] = {
{
{
0, 0, -1
@@ -87,16 +92,36 @@
}
}
};
- private int minecartPosRotationIncrements;
- private double minecartX;
- private double minecartY;
- private double minecartZ;
- private double minecartYaw;
- private double minecartPitch;
- private double velocityX;
- private double velocityY;
- private double velocityZ;
-
+ protected int minecartPosRotationIncrements;
+ protected double minecartX;
+ protected double minecartY;
+ protected double minecartZ;
+ protected double minecartYaw;
+ protected double minecartPitch;
+ protected double velocityX;
+ protected double velocityY;
+ protected double velocityZ;
+
+ /*Forge: Minecart Compatibility Layer Integration.
+ */
+ public static float defaultMaxSpeedRail = 0.4f;
+ public static float defaultMaxSpeedGround = 0.4f;
+ public static float defaultMaxSpeedAirLateral = 0.4f;
+ public static float defaultMaxSpeedAirVertical = -1f;
+ public static double defaultDragAir = 0.94999998807907104D;
+ protected boolean canUseRail = true;
+ protected boolean canBePushed = true;
+ private static IMinecartCollisionHandler collisionHandler = null;
+
+ /*
+ * Instance versions of the above physics properties
+ */
+ protected float maxSpeedRail;
+ protected float maxSpeedGround;
+ protected float maxSpeedAirLateral;
+ protected float maxSpeedAirVertical;
+ protected double dragAir;
+
public EntityMinecart(World world)
{
super(world);
@@ -106,6 +131,18 @@
preventEntitySpawning = true;
setSize(0.98F, 0.7F);
yOffset = height / 2.0F;
+
+ maxSpeedRail = defaultMaxSpeedRail;
+ maxSpeedGround = defaultMaxSpeedGround;
+ maxSpeedAirLateral = defaultMaxSpeedAirLateral;
+ maxSpeedAirVertical = defaultMaxSpeedAirVertical;
+ dragAir = defaultDragAir;
+ }
+
+ public EntityMinecart(World world, int type)
+ {
+ this(world);
+ minecartType = type;
}
protected boolean canTriggerWalking()
@@ -123,17 +160,27 @@
public AxisAlignedBB getCollisionBox(Entity entity)
{
+ if (getCollisionHandler() != null)
+ {
+ return getCollisionHandler().getCollisionBox(this, entity);
+ }
+
return entity.boundingBox;
}
public AxisAlignedBB getBoundingBox()
{
+ if (getCollisionHandler() != null)
+ {
+ return getCollisionHandler().getBoundingBox(this);
+ }
+
return null;
}
public boolean canBePushed()
{
- return true;
+ return canBePushed;
}
public EntityMinecart(World world, double d, double d1, double d2,
@@ -172,8 +219,10 @@
riddenByEntity.mountEntity(this);
}
setEntityDead();
- dropItemWithOffset(Item.minecartEmpty.shiftedIndex, 1, 0.0F);
- if(minecartType == 1)
+
+ dropCartAsItem();
+
+ if(getSizeInventory() > 0)
{
EntityMinecart entityminecart = this;
label0:
@@ -207,12 +256,6 @@
worldObj.spawnEntityInWorld(entityitem);
} while(true);
}
-
- dropItemWithOffset(Block.chest.blockID, 1, 0.0F);
- } else
- if(minecartType == 2)
- {
- dropItemWithOffset(Block.stoneOvenIdle.blockID, 1, 0.0F);
}
}
return true;
@@ -277,7 +320,7 @@
{
func_41024_b(func_41025_i() - 1);
}
- if(isMinecartPowered() && rand.nextInt(4) == 0)
+ if(isMinecartPowered() && rand.nextInt(4) == 0 && minecartType == 2 && getClass() == EntityMinecart.class)
{
worldObj.spawnParticle("largesmoke", posX, posY + 0.80000000000000004D, posZ, 0.0D, 0.0D, 0.0D);
}
@@ -317,22 +360,19 @@
double d2 = 0.40000000000000002D;
double d4 = 0.0078125D;
int l = worldObj.getBlockId(i, j, k);
- if(BlockRail.isRailBlock(l))
+ if(canUseRail() && BlockRail.isRailBlock(l))
{
Vec3D vec3d = func_514_g(posX, posY, posZ);
- int i1 = worldObj.getBlockMetadata(i, j, k);
+ int i1 = ((BlockRail)Block.blocksList[l]).getBasicRailMetadata(worldObj, this, i, j, k);
posY = j;
boolean flag = false;
boolean flag1 = false;
if(l == Block.railPowered.blockID)
{
- flag = (i1 & 8) != 0;
+ flag = (worldObj.getBlockMetadata(i, j, k) & 8) != 0;
flag1 = !flag;
}
- if(((BlockRail)Block.blocksList[l]).getIsPowered())
- {
- i1 &= 7;
- }
+
if(i1 >= 2 && i1 <= 5)
{
posY = j + 1;
@@ -366,7 +406,8 @@
double d13 = Math.sqrt(motionX * motionX + motionZ * motionZ);
motionX = (d13 * d9) / d11;
motionZ = (d13 * d10) / d11;
- if(flag1)
+
+ if(flag1 && shouldDoRailFunctions())
{
double d16 = Math.sqrt(motionX * motionX + motionZ * motionZ);
if(d16 < 0.029999999999999999D)
@@ -407,30 +448,9 @@
posX = d18 + d9 * d17;
posZ = d19 + d10 * d17;
setPosition(posX, posY + (double)yOffset, posZ);
- double d23 = motionX;
- double d25 = motionZ;
- if(riddenByEntity != null)
- {
- d23 *= 0.75D;
- d25 *= 0.75D;
- }
- if(d23 < -d2)
- {
- d23 = -d2;
- }
- if(d23 > d2)
- {
- d23 = d2;
- }
- if(d25 < -d2)
- {
- d25 = -d2;
- }
- if(d25 > d2)
- {
- d25 = d2;
- }
- moveEntity(d23, 0.0D, d25);
+
+ moveMinecartOnRail(i, j, k);
+
if(ai[0][1] != 0 && MathHelper.floor_double(posX) - i == ai[0][0] && MathHelper.floor_double(posZ) - k == ai[0][2])
{
setPosition(posX, posY + (double)ai[0][1], posZ);
@@ -439,37 +459,9 @@
{
setPosition(posX, posY + (double)ai[1][1], posZ);
}
- if(riddenByEntity != null)
- {
- motionX *= 0.99699997901916504D;
- motionY *= 0.0D;
- motionZ *= 0.99699997901916504D;
- } else
- {
- if(minecartType == 2)
- {
- double d27 = MathHelper.sqrt_double(pushX * pushX + pushZ * pushZ);
- if(d27 > 0.01D)
- {
- pushX /= d27;
- pushZ /= d27;
- double d29 = 0.040000000000000001D;
- motionX *= 0.80000001192092896D;
- motionY *= 0.0D;
- motionZ *= 0.80000001192092896D;
- motionX += pushX * d29;
- motionZ += pushZ * d29;
- } else
- {
- motionX *= 0.89999997615814209D;
- motionY *= 0.0D;
- motionZ *= 0.89999997615814209D;
- }
- }
- motionX *= 0.95999997854232788D;
- motionY *= 0.0D;
- motionZ *= 0.95999997854232788D;
- }
+
+ applyDragAndPushForces();
+
Vec3D vec3d1 = func_514_g(posX, posY, posZ);
if(vec3d1 != null && vec3d != null)
{
@@ -490,25 +482,15 @@
motionX = d15 * (double)(k1 - i);
motionZ = d15 * (double)(l1 - k);
}
- if(minecartType == 2)
+
+ updatePushForces();
+
+ if (shouldDoRailFunctions())
{
- double d30 = MathHelper.sqrt_double(pushX * pushX + pushZ * pushZ);
- if(d30 > 0.01D && motionX * motionX + motionZ * motionZ > 0.001D)
- {
- pushX /= d30;
- pushZ /= d30;
- if(pushX * motionX + pushZ * motionZ < 0.0D)
- {
- pushX = 0.0D;
- pushZ = 0.0D;
- } else
- {
- pushX = motionX;
- pushZ = motionZ;
- }
- }
+ ((BlockRail)Block.blocksList[l]).onMinecartPass(worldObj, this, i, j, k);
}
- if(flag)
+
+ if(flag && shouldDoRailFunctions())
{
double d31 = Math.sqrt(motionX * motionX + motionZ * motionZ);
if(d31 > 0.01D)
@@ -540,37 +522,10 @@
}
}
}
- } else
+ }
+ else
{
- if(motionX < -d2)
- {
- motionX = -d2;
- }
- if(motionX > d2)
- {
- motionX = d2;
- }
- if(motionZ < -d2)
- {
- motionZ = -d2;
- }
- if(motionZ > d2)
- {
- motionZ = d2;
- }
- if(onGround)
- {
- motionX *= 0.5D;
- motionY *= 0.5D;
- motionZ *= 0.5D;
- }
- moveEntity(motionX, motionY, motionZ);
- if(!onGround)
- {
- motionX *= 0.94999998807907104D;
- motionY *= 0.94999998807907104D;
- motionZ *= 0.94999998807907104D;
- }
+ moveMinecartOffRail(i, j, k);
}
rotationPitch = 0.0F;
double d6 = prevPosX - posX;
@@ -592,7 +547,20 @@
field_856_i = !field_856_i;
}
setRotation(rotationYaw, rotationPitch);
- List list = worldObj.getEntitiesWithinAABBExcludingEntity(this, boundingBox.expand(0.20000000298023224D, 0.0D, 0.20000000298023224D));
+
+ AxisAlignedBB box = null;
+
+ if (getCollisionHandler() != null)
+ {
+ box = getCollisionHandler().getMinecartCollisionBox(this);
+ }
+ else
+ {
+
+ box = boundingBox.expand(0.20000000298023224D, 0.0D, 0.20000000298023224D);
+ }
+
+ List list = worldObj.getEntitiesWithinAABBExcludingEntity(this, box);
if(list != null && list.size() > 0)
{
for(int j1 = 0; j1 < list.size(); j1++)
@@ -613,6 +581,178 @@
}
riddenByEntity = null;
}
+ updateFuel();
+ ForgeHooks.onMinecartUpdate(this, i, j, k);
+ }
+
+ /**
+ * Carts should return their drag factor here
+ * @return The drag rate.
+ */
+ protected double getDrag()
+ {
+ if(riddenByEntity != null)
+ {
+ return 0.99699997901916504D;
+ }
+ return 0.95999997854232788D;
+ }
+
+ /**
+ * Moved to allow overrides.
+ * This code applies drag and updates push forces.
+ */
+ protected void applyDragAndPushForces()
+ {
+ if(isPoweredCart())
+ {
+ double d27 = MathHelper.sqrt_double(pushX * pushX + pushZ * pushZ);
+ if(d27 > 0.01D)
+ {
+ pushX /= d27;
+ pushZ /= d27;
+ double d29 = 0.040000000000000001D;
+ motionX *= 0.80000001192092896D;
+ motionY *= 0.0D;
+ motionZ *= 0.80000001192092896D;
+ motionX += pushX * d29;
+ motionZ += pushZ * d29;
+ } else
+ {
+ motionX *= 0.89999997615814209D;
+ motionY *= 0.0D;
+ motionZ *= 0.89999997615814209D;
+ }
+ }
+ motionX *= getDrag();
+ motionY *= 0.0D;
+ motionZ *= getDrag();
+ }
+
+ /**
+ * Moved to allow overrides.
+ * This code updates push forces.
+ */
+ protected void updatePushForces()
+ {
+ if(isPoweredCart())
+ {
+ double push = MathHelper.sqrt_double(pushX * pushX + pushZ * pushZ);
+ if(push > 0.01D && motionX * motionX + motionZ * motionZ > 0.001D)
+ {
+ pushX /= push;
+ pushZ /= push;
+ if(pushX * motionX + pushZ * motionZ < 0.0D)
+ {
+ pushX = 0.0D;
+ pushZ = 0.0D;
+ } else
+ {
+ pushX = motionX;
+ pushZ = motionZ;
+ }
+ }
+ }
+ }
+
+ /**
+ * Moved to allow overrides.
+ * This code handles minecart movement and speed capping when on a rail.
+ */
+ protected void moveMinecartOnRail(int i, int j, int k)
+ {
+ int id = worldObj.getBlockId(i, j, k);
+ if (!BlockRail.isRailBlock(id))
+ {
+ return;
+ }
+ float railMaxSpeed = ((BlockRail)Block.blocksList[id]).getRailMaxSpeed(worldObj, this, i, j, k);
+
+ double maxSpeed = Math.min(railMaxSpeed, getMaxSpeedRail());
+ double d23 = motionX;
+ double d25 = motionZ;
+ if(riddenByEntity != null)
+ {
+ d23 *= 0.75D;
+ d25 *= 0.75D;
+ }
+ if(d23 < -maxSpeed)
+ {
+ d23 = -maxSpeed;
+ }
+ if(d23 > maxSpeed)
+ {
+ d23 = maxSpeed;
+ }
+ if(d25 < -maxSpeed)
+ {
+ d25 = -maxSpeed;
+ }
+ if(d25 > maxSpeed)
+ {
+ d25 = maxSpeed;
+ }
+ moveEntity(d23, 0.0D, d25);
+ }
+
+ /**
+ * Moved to allow overrides.
+ * This code handles minecart movement and speed capping when not on a rail.
+ */
+ protected void moveMinecartOffRail(int i, int j, int k)
+ {
+ double d2 = getMaxSpeedGround();
+ if(!onGround)
+ {
+ d2 = getMaxSpeedAirLateral();
+ }
+ if(motionX < -d2)
+ {
+ motionX = -d2;
+ }
+ if(motionX > d2)
+ {
+ motionX = d2;
+ }
+ if(motionZ < -d2)
+ {
+ motionZ = -d2;
+ }
+ if(motionZ > d2)
+ {
+ motionZ = d2;
+ }
+ double moveY = motionY;
+ if(getMaxSpeedAirVertical() > 0 && motionY > getMaxSpeedAirVertical())
+ {
+ moveY = getMaxSpeedAirVertical();
+ if(Math.abs(motionX) < 0.3f && Math.abs(motionZ) < 0.3f)
+ {
+ moveY = 0.15f;
+ motionY = moveY;
+ }
+ }
+ if(onGround)
+ {
+ motionX *= 0.5D;
+ motionY *= 0.5D;
+ motionZ *= 0.5D;
+ }
+ moveEntity(motionX, moveY, motionZ);
+ if(!onGround)
+ {
+ motionX *= getDragAir();
+ motionY *= getDragAir();
+ motionZ *= getDragAir();
+ }
+ }
+
+ /**
+ * Moved to allow overrides.
+ * This code applies fuel consumption.
+ */
+ protected void updateFuel()
+ {
if(fuel > 0)
{
fuel--;
@@ -636,11 +776,8 @@
int l = worldObj.getBlockId(i, j, k);
if(BlockRail.isRailBlock(l))
{
- int i1 = worldObj.getBlockMetadata(i, j, k);
- if(((BlockRail)Block.blocksList[l]).getIsPowered())
- {
- i1 &= 7;
- }
+ int i1 = ((BlockRail)Block.blocksList[l]).getBasicRailMetadata(worldObj, this, i, j, k);
+
d1 = j;
if(i1 >= 2 && i1 <= 5)
{
@@ -681,12 +818,8 @@
int l = worldObj.getBlockId(i, j, k);
if(BlockRail.isRailBlock(l))
{
- int i1 = worldObj.getBlockMetadata(i, j, k);
+ int i1 = ((BlockRail)Block.blocksList[l]).getBasicRailMetadata(worldObj, this, i, j, k);
d1 = j;
- if(((BlockRail)Block.blocksList[l]).getIsPowered())
- {
- i1 &= 7;
- }
if(i1 >= 2 && i1 <= 5)
{
d1 = j + 1;
@@ -739,13 +872,14 @@
protected void writeEntityToNBT(NBTTagCompound nbttagcompound)
{
nbttagcompound.setInteger("Type", minecartType);
- if(minecartType == 2)
+ if(isPoweredCart())
{
nbttagcompound.setDouble("PushX", pushX);
nbttagcompound.setDouble("PushZ", pushZ);
- nbttagcompound.setShort("Fuel", (short)fuel);
- } else
- if(minecartType == 1)
+ nbttagcompound.setInteger("Fuel", fuel);
+ }
+
+ if(getSizeInventory() > 0)
{
NBTTagList nbttaglist = new NBTTagList();
for(int i = 0; i < cargoItems.length; i++)
@@ -766,13 +900,14 @@
protected void readEntityFromNBT(NBTTagCompound nbttagcompound)
{
minecartType = nbttagcompound.getInteger("Type");
- if(minecartType == 2)
+ if(isPoweredCart())
{
pushX = nbttagcompound.getDouble("PushX");
pushZ = nbttagcompound.getDouble("PushZ");
- fuel = nbttagcompound.getShort("Fuel");
- } else
- if(minecartType == 1)
+ fuel = nbttagcompound.getInteger("Fuel");
+ }
+
+ if(getSizeInventory() > 0)
{
NBTTagList nbttaglist = nbttagcompound.getTagList("Items");
cargoItems = new ItemStack[getSizeInventory()];
@@ -796,6 +931,16 @@
public void applyEntityCollision(Entity entity)
{
+ ForgeHooks.onMinecartEntityCollision(this, entity);
+
+
+ if (getCollisionHandler() != null)
+ {
+ getCollisionHandler().onEntityCollision(this, entity);
+ return;
+ }
+
+
if(worldObj.multiplayerWorld)
{
return;
@@ -804,7 +949,7 @@
{
return;
}
- if((entity instanceof EntityLiving) && !(entity instanceof EntityPlayer) && minecartType == 0 && motionX * motionX + motionZ * motionZ > 0.01D && riddenByEntity == null && entity.ridingEntity == null)
+ if((entity instanceof EntityLiving) && !(entity instanceof EntityPlayer) && canBeRidden() && motionX * motionX + motionZ * motionZ > 0.01D && riddenByEntity == null && entity.ridingEntity == null)
{
entity.mountEntity(this);
}
@@ -842,7 +987,7 @@
}
double d7 = entity.motionX + motionX;
double d8 = entity.motionZ + motionZ;
- if(((EntityMinecart)entity).minecartType == 2 && minecartType != 2)
+ if(((EntityMinecart)entity).isPoweredCart() && !isPoweredCart())
{
motionX *= 0.20000000298023224D;
motionZ *= 0.20000000298023224D;
@@ -850,7 +995,7 @@
entity.motionX *= 0.94999998807907104D;
entity.motionZ *= 0.94999998807907104D;
} else
- if(((EntityMinecart)entity).minecartType != 2 && minecartType == 2)
+ if(!((EntityMinecart)entity).isPoweredCart() && isPoweredCart())
{
entity.motionX *= 0.20000000298023224D;
entity.motionZ *= 0.20000000298023224D;
@@ -878,7 +1023,7 @@
public int getSizeInventory()
{
- return 27;
+ return (minecartType == 1 && getClass() == EntityMinecart.class ? 27 : 0);
}
public ItemStack getStackInSlot(int i)
@@ -933,7 +1078,12 @@
public boolean interact(EntityPlayer entityplayer)
{
- if(minecartType == 0)
+ if (!ForgeHooks.onMinecartInteract(this, entityplayer))
+ {
+ return true;
+ }
+
+ if(canBeRidden())
{
if(riddenByEntity != null && (riddenByEntity instanceof EntityPlayer) && riddenByEntity != entityplayer)
{
@@ -944,14 +1094,14 @@
entityplayer.mountEntity(this);
}
} else
- if(minecartType == 1)
+ if(getSizeInventory() > 0)
{
if(!worldObj.multiplayerWorld)
{
entityplayer.displayGUIChest(this);
}
} else
- if(minecartType == 2)
+ if(minecartType == 2 && getClass() == EntityMinecart.class)
{
ItemStack itemstack = entityplayer.inventory.getCurrentItem();
if(itemstack != null && itemstack.itemID == Item.coal.shiftedIndex)
@@ -998,7 +1148,7 @@
return entityplayer.getDistanceSqToEntity(this) <= 64D;
}
- protected boolean isMinecartPowered()
+ public boolean isMinecartPowered()
{
return (dataWatcher.getWatchableObjectByte(16) & 1) != 0;
}
@@ -1051,5 +1201,203 @@
{
return dataWatcher.getWatchableObjectInt(18);
}
+
+ /**
+ * Drops the cart as a item. The exact item dropped is defined by getItemDropped().
+ */
+ public void dropCartAsItem()
+ {
+ for(ItemStack item : getItemsDropped())
+ {
+ entityDropItem(item, 0);
+ }
+ }
+
+ /**
+ * Override this to define which items your cart drops when broken.
+ * This does not include items contained in the inventory,
+ * that is handled elsewhere.
+ * @return A list of items dropped.
+ */
+ public List<ItemStack> getItemsDropped()
+ {
+ List<ItemStack> items = new ArrayList<ItemStack>();
+ items.add(new ItemStack(Item.minecartEmpty));
+
+ switch(minecartType)
+ {
+ case 1:
+ items.add(new ItemStack(Block.chest));
+ break;
+ case 2:
+ items.add(new ItemStack(Block.stoneOvenIdle));
+ break;
+ }
+ return items;
+ }
+
+ /**
+ * This function returns an ItemStack that represents this cart.
+ * This should be an ItemStack that can be used by the player to place the cart.
+ * This is the item that was registered with the cart via the registerMinecart function,
+ * but is not necessary the item the cart drops when destroyed.
+ * @return An ItemStack that can be used to place the cart.
+ */
+ public ItemStack getCartItem()
+ {
+ return MinecraftForge.getItemForCart(this);
+ }
+
+ /**
+ * Returns true if this cart is self propelled.
+ * @return True if powered.
+ */
+ public boolean isPoweredCart()
+ {
+ 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.
+ * @return True if this cart should be classified as a storage cart.
+ */
+ public boolean isStorageCart()
+ {
+ return minecartType == 1 && getClass() == EntityMinecart.class;
+ }
+
+ /**
+ * Returns true if this cart can be ridden by an Entity.
+ * @return True if this cart can be ridden.
+ */
+ public boolean canBeRidden()
+ {
+ if(minecartType == 0 && getClass() == EntityMinecart.class)
+ {
+ return true;
+ }
+ 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.
+ */
+ public boolean canUseRail()
+ {
+ return canUseRail;
+ }
+
+ /**
+ * Set whether the minecart can use rails.
+ * This function is mainly used to gracefully detach a minecart from a rail.
+ * @param use Whether the minecart can currently use rails.
+ */
+ public void setCanUseRail(boolean use)
+ {
+ 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().
+ */
+ public boolean shouldDoRailFunctions()
+ {
+ return true;
+ }
+
+ /**
+ * Simply returns the minecartType variable.
+ * @return minecartType
+ */
+ public int getMinecartType()
+ {
+ return minecartType;
+ }
+
+ /**
+ * Gets the current global Minecart Collision handler if none
+ * is registered, returns null
+ * @return The collision handler or null
+ */
+ public static IMinecartCollisionHandler getCollisionHandler()
+ {
+ return collisionHandler;
+ }
+
+ /**
+ * Sets the global Minecart Collision handler, overwrites any
+ * that is currently set.
+ * @param handler The new handler
+ */
+ public static void setCollisionHandler(IMinecartCollisionHandler handler)
+ {
+ collisionHandler = handler;
+ }
+
+ /**
+ * Getters/setters for physics variables
+ */
+
+ /**
+ * Returns the carts max speed.
+ * Carts going faster than 1.1 cause issues with chunk loading.
+ * Carts cant traverse slopes or corners at greater than 0.5 - 0.6.
+ * This value is compared with the rails max speed to determine
+ * the carts current max speed. A normal rails max speed is 0.4.
+ * @return Carts max speed.
+ */
+ public float getMaxSpeedRail()
+ {
+ return maxSpeedRail;
+ }
+ public void setMaxSpeedRail(float value)
+ {
+ maxSpeedRail = value;
+ }
+
+ public float getMaxSpeedGround()
+ {
+ return maxSpeedGround;
+ }
+
+ public void setMaxSpeedGround(float value)
+ {
+ maxSpeedGround = value;
+ }
+
+ public float getMaxSpeedAirLateral()
+ {
+ return maxSpeedAirLateral;
+ }
+
+ public void setMaxSpeedAirLateral(float value)
+ {
+ maxSpeedAirLateral = value;
+ }
+
+ public float getMaxSpeedAirVertical()
+ {
+ return maxSpeedAirVertical;
+ }
+
+ public void setMaxSpeedAirVertical(float value)
+ {
+ maxSpeedAirVertical = value;
+ }
+
+ public double getDragAir()
+ {
+ return dragAir;
+ }
+
+ public void setDragAir(double value)
+ {
+ dragAir = value;
+ }
}
@@ -11,7 +11,15 @@
import java.util.*;
// Referenced classes of package net.minecraft.src:
@@ -502,7 +506,16 @@
@@ -166,6 +170,7 @@
clearItemInUse();
} else
{
+ itemInUse.getItem().onUsingItemTick(itemInUse,this,itemInUseCount);
if(itemInUseCount <= 25 && itemInUseCount % 4 == 0)
{
func_35201_a(itemstack, 5);
@@ -502,7 +507,16 @@
public void dropCurrentItem()
{
@@ -29,8 +37,8 @@
}
public void dropPlayerItem(ItemStack itemstack)
@@ -548,6 +561,8 @@
worldObj.entityJoinedWorld(entityitem);
@@ -548,6 +562,8 @@
worldObj.spawnEntityInWorld(entityitem);
}
+ /* FORGE: This isnt called anymore
@@ -38,7 +46,7 @@
public float getCurrentPlayerStrVsBlock(Block block)
{
float f = inventory.getStrVsBlock(block);
@@ -576,6 +591,45 @@
@@ -576,6 +592,45 @@
return f1;
}
@@ -84,33 +92,33 @@
public boolean canHarvestBlock(Block block)
{
return inventory.canHarvestBlock(block);
@@ -774,6 +828,25 @@
@@ -774,6 +829,25 @@
protected void damageEntity(DamageSource damagesource, int i)
{
+ boolean doRegularComputation = true;
+ int initialDamage = i;
+
+ for (ItemStack stack : inventory.armorInventory) {
+ if (stack != null && stack.getItem() instanceof ISpecialArmor) {
+ ISpecialArmor armor = (ISpecialArmor) stack.getItem();
+
+ ArmorProperties props = armor.getProperties(this, initialDamage, i);
+ i = i - props.damageRemove;
+ doRegularComputation = doRegularComputation
+ && props.allowRegularComputation;
+ }
+ }
+
+ if (!doRegularComputation) {
+ super.damageEntity(damagesource, i);
+ return;
+ }
+
if(!damagesource.unblockable() && func_35162_ad())
+ boolean doRegularComputation = true;
+ int initialDamage = i;
+
+ for (ItemStack stack : inventory.armorInventory) {
+ if (stack != null && stack.getItem() instanceof ISpecialArmor) {
+ ISpecialArmor armor = (ISpecialArmor) stack.getItem();
+
+ ArmorProperties props = armor.getProperties(this, initialDamage, i);
+ i = i - props.damageRemove;
+ doRegularComputation = doRegularComputation
+ && props.allowRegularComputation;
+ }
+ }
+
+ if (!doRegularComputation) {
+ super.damageEntity(damagesource, i);
+ return;
+ }
+
if(!damagesource.isUnblockable() && isBlocking())
{
i = 1 + i >> 1;
@@ -825,7 +898,9 @@
@@ -825,7 +899,9 @@
public void destroyCurrentEquippedItem()
{
@@ -120,7 +128,7 @@
}
public double getYOffset()
@@ -957,6 +1032,10 @@
@@ -957,6 +1033,10 @@
public EnumStatus sleepInBedAt(int i, int j, int k)
{
@@ -47,7 +47,7 @@
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer)
{
return itemstack;
@@ -278,6 +297,29 @@
@@ -278,6 +297,34 @@
return maxDamage > 0 && !hasSubtypes;
}
@@ -73,11 +73,16 @@
+ EntityPlayer player) {
+ return false;
+ }
+
+ /* FORGE: Called each tick while using an item.
+ */
+ public void onUsingItemTick(ItemStack ist, EntityPlayer player, int count) {
+ }
+
public boolean hitEntity(ItemStack itemstack, EntityLiving entityliving, EntityLiving entityliving1)
{
return false;
@@ -473,6 +515,32 @@
@@ -473,6 +520,32 @@
{
return 0;
}
@@ -0,0 +1,86 @@
--- ../src_base/minecraft/net/minecraft/src/RailLogic.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft/net/minecraft/src/RailLogic.java 0000-00-00 00:00:00.000000000 -0000
@@ -10,7 +10,7 @@
// Referenced classes of package net.minecraft.src:
// World, Block, BlockRail, ChunkPosition
-class RailLogic
+public class RailLogic
{
private World worldObj;
@@ -20,6 +20,7 @@
private final boolean isPoweredRail;
private List connectedTracks;
final BlockRail rail; /* synthetic field */
+ private final boolean canMakeSlopes;
public RailLogic(BlockRail blockrail, World world, int i, int j, int k)
{
@@ -31,15 +32,12 @@
trackY = j;
trackZ = k;
int l = world.getBlockId(i, j, k);
- int i1 = world.getBlockMetadata(i, j, k);
- if(BlockRail.isPoweredBlockRail((BlockRail)Block.blocksList[l]))
- {
- isPoweredRail = true;
- i1 &= -9;
- } else
- {
- isPoweredRail = false;
- }
+
+ BlockRail target = (BlockRail)Block.blocksList[l];
+ int i1 = target.getBasicRailMetadata(world, null, i, j, k);
+ isPoweredRail = !target.isFlexibleRail(world, i, j, k);
+ canMakeSlopes = target.canMakeSlopes(world, i, j, k);
+
setConnections(i1);
}
@@ -249,7 +247,7 @@
byte0 = 9;
}
}
- if(byte0 == 0)
+ if(byte0 == 0 && canMakeSlopes)
{
if(BlockRail.isRailBlockAt(worldObj, trackX, trackY + 1, trackZ - 1))
{
@@ -260,7 +258,7 @@
byte0 = 5;
}
}
- if(byte0 == 1)
+ if(byte0 == 1 && canMakeSlopes)
{
if(BlockRail.isRailBlockAt(worldObj, trackX + 1, trackY + 1, trackZ))
{
@@ -381,7 +379,7 @@
}
}
}
- if(byte0 == 0)
+ if(byte0 == 0 && canMakeSlopes)
{
if(BlockRail.isRailBlockAt(worldObj, trackX, trackY + 1, trackZ - 1))
{
@@ -392,7 +390,7 @@
byte0 = 5;
}
}
- if(byte0 == 1)
+ if(byte0 == 1 && canMakeSlopes)
{
if(BlockRail.isRailBlockAt(worldObj, trackX + 1, trackY + 1, trackZ))
{
@@ -433,7 +431,7 @@
}
}
- static int getNAdjacentTracks(RailLogic raillogic)
+ public static int getNAdjacentTracks(RailLogic raillogic)
{
return raillogic.getAdjacentTracks();
}
@@ -5,7 +5,7 @@
double d3 = ((float)j1 + 15.99F) / 256F;
float f = 1.4F;
- if(!blockAccess.isBlockNormalCube(i, j - 1, k) && !Block.fire.canBlockCatchFire(blockAccess, i, j - 1, k))
+ if(!blockAccess.isBlockNormalCube(i, j - 1, k) && !Block.fire.canBlockCatchFire(blockAccess, i, j - 1, k, 0))
+ if(!blockAccess.isBlockNormalCube(i, j - 1, k) && !Block.fire.canBlockCatchFire(blockAccess, i, j - 1, k, 1))
{
float f1 = 0.2F;
float f2 = 0.0625F;
@@ -14,7 +14,7 @@
d = d4;
}
- if(Block.fire.canBlockCatchFire(blockAccess, i - 1, j, k))
+ if(Block.fire.canBlockCatchFire(blockAccess, i - 1, j, k, 4))
+ if(Block.fire.canBlockCatchFire(blockAccess, i - 1, j, k, 5))
{
tessellator.addVertexWithUV((float)i + f1, (float)j + f + f2, k + 1, d1, d2);
tessellator.addVertexWithUV(i + 0, (float)(j + 0) + f2, k + 1, d1, d3);
@@ -23,7 +23,7 @@
tessellator.addVertexWithUV((float)i + f1, (float)j + f + f2, k + 1, d1, d2);
}
- if(Block.fire.canBlockCatchFire(blockAccess, i + 1, j, k))
+ if(Block.fire.canBlockCatchFire(blockAccess, i + 1, j, k, 5))
+ if(Block.fire.canBlockCatchFire(blockAccess, i + 1, j, k, 4))
{
tessellator.addVertexWithUV((float)(i + 1) - f1, (float)j + f + f2, k + 0, d, d2);
tessellator.addVertexWithUV((i + 1) - 0, (float)(j + 0) + f2, k + 0, d, d3);
@@ -50,7 +50,7 @@
tessellator.addVertexWithUV(i + 1, (float)j + f + f2, (float)(k + 1) - f1, d, d2);
}
- if(Block.fire.canBlockCatchFire(blockAccess, i, j + 1, k))
+ if(Block.fire.canBlockCatchFire(blockAccess, i, j + 1, k, 1))
+ if(Block.fire.canBlockCatchFire(blockAccess, i, j + 1, k, 0))
{
double d5 = (double)i + 0.5D + 0.5D;
double d7 = ((double)i + 0.5D) - 0.5D;
@@ -17,7 +17,7 @@
public static int chunksUpdated = 0;
public int posX;
public int posY;
@@ -160,8 +161,9 @@
@@ -160,10 +161,11 @@
GL11.glTranslatef((float)(-sizeDepth) / 2.0F, (float)(-sizeHeight) / 2.0F, (float)(-sizeDepth) / 2.0F);
GL11.glScalef(f, f, f);
GL11.glTranslatef((float)sizeDepth / 2.0F, (float)sizeHeight / 2.0F, (float)sizeDepth / 2.0F);
@@ -27,8 +27,11 @@
+ Tessellator.instance.startDrawingQuads();
+ Tessellator.instance.setTranslationD(-posX, -posY, -posZ);
}
if(i2 == 0 && Block.isBlockContainer[i3])
- if(i2 == 0 && Block.isBlockContainer[i3])
+ if(i2 == 0 && Block.blocksList[i3] != null && Block.blocksList[i3].hasTileEntity(chunkcache.getBlockMetadata(l2, j2, k2)))
{
TileEntity tileentity = chunkcache.getBlockTileEntity(l2, j2, k2);
if(TileEntityRenderer.instance.hasSpecialRenderer(tileentity))
@@ -177,15 +179,13 @@
{
flag1 = true;
@@ -16,7 +16,7 @@
+ */
+ public int quantityDropped(int meta, int fortune, Random random)
+ {
+ return func_40162_a(fortune, random);
+ return quantityDroppedWithBonus(fortune, random);
+ }
+
+ /* FORGE: Metadata-sensitive version.
@@ -97,10 +97,10 @@
{
return;
}
- int j1 = func_40162_a(i1, world.rand);
- int j1 = quantityDroppedWithBonus(i1, world.rand);
- for(int k1 = 0; k1 < j1; k1++)
+ ArrayList<ItemStack> ar = getBlockDropped(world, i, j, k, l, i1);
+ for (ItemStack ist : ar)
+ ArrayList<ItemStack> ar = getBlockDropped(world, i, j, k, l, i1);
+ for (ItemStack ist : ar)
{
if(world.rand.nextFloat() > f)
{
@@ -111,11 +111,20 @@
- {
- dropBlockAsItem_do(world, i, j, k, new ItemStack(l1, 1, damageDropped(l)));
- }
+ dropBlockAsItem_do(world, i, j, k, ist);
+ dropBlockAsItem_do(world, i, j, k, ist);
}
}
@@ -725,6 +767,197 @@
@@ -651,7 +693,7 @@
{
entityplayer.addStat(StatList.mineBlockStatArray[blockID], 1);
entityplayer.addExhaustion(0.025F);
- if(renderAsNormalBlock() && !isBlockContainer[blockID] && EnchantmentHelper.getSilkTouchModifier(entityplayer.inventory))
+ if(renderAsNormalBlock() && !hasTileEntity(l) && EnchantmentHelper.getSilkTouchModifier(entityplayer.inventory))
{
ItemStack itemstack = createStackedBlock(l);
if(itemstack != null)
@@ -725,6 +767,246 @@
return blockMaterial.getMaterialMobility();
}
@@ -127,17 +136,27 @@
+
+ /* FORGE: Implement and return true if you wish this block to behave
+ * like a ladder when the player is inside.
+ *
+ * This is deprecated in favor of the more flexible version below.
+ */
+ @Deprecated
+ public boolean isLadder() {
+ return false;
+ }
+
+ /* FORGE: Implement and return true if you wish this block to behave
+ * like a ladder when the player is inside.
+ */
+ public boolean isLadder(World world, int i, int j, int k) {
+ return isLadder();
+ }
+
+ /* FORGE: Return true if the block is a normal, solid cube. This
+ * determines indirect power state, entity ejection from blocks, and a few
+ * others.
+ */
+ public boolean isBlockNormalCube(World world, int i, int j, int k) {
+ return blockMaterial.getIsOpaque() && isACube();
+ return blockMaterial.getIsOpaque() && renderAsNormalBlock();
+ }
+
+ /* FORGE: Return true if the block is solid on the given side. This
@@ -218,8 +237,8 @@
+ {
+ }
+
+ private static int chanceToEncourageFire[] = new int[256];
+ private static int blockFlammability[] = new int[256];
+ protected static int blockFireSpreadSpeed[] = new int[256];
+ protected static int blockFlammability[] = new int[256];
+
+ /**
+ * Chance that fire will spread and consume this block.
@@ -267,9 +286,9 @@
+ * @param face The face that the fire is coming from
+ * @return A number that is used to determine the speed of fire growth around the block
+ */
+ public int chanceToEncourageFire(World world, int x, int y, int z, int metadata, int face)
+ public int getFireSpreadSpeed(World world, int x, int y, int z, int metadata, int face)
+ {
+ return chanceToEncourageFire[blockID];
+ return blockFireSpreadSpeed[blockID];
+ }
+
+ /**
@@ -304,11 +323,50 @@
+ * @param encouragement How much the block encourages fire to spread
+ * @param flammability how easy a block is to catch fire
+ */
+ protected static void setBurnRate(int id, int encouragement, int flammability)
+ public static void setBurnProperties(int id, int encouragement, int flammability)
+ {
+ chanceToEncourageFire[id] = encouragement;
+ blockFireSpreadSpeed[id] = encouragement;
+ blockFlammability[id] = flammability;
+ }
+
+ /**
+ * Called throughout the code as a replacement for block instanceof BlockContainer
+ * Moving this to the Block base class allows for mods that wish to extend vinella
+ * blocks, and also want to have a tile entity on that block, may.
+ *
+ * Return true from this function to specify this block has a tile entity.
+ *
+ * @param metadata Metadata of the current block
+ * @return True if block has a tile entity, false otherwise
+ */
+ public boolean hasTileEntity(int metadata)
+ {
+ if (isBlockContainer[blockID])
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ /**
+ * Called throughout the code as a replacement for BlockContainer.getBlockEntity
+ * Return the same thing you would from that function.
+ * This will fall back to BlockContainer.getBlockEntity if this block is a BlockContainer.
+ *
+ * @param metadata The Metadata of the current block
+ * @return A instance of a class extending TileEntity
+ */
+ public TileEntity getTileEntity(int metadata)
+ {
+ if (this instanceof BlockContainer)
+ {
+ return ((BlockContainer)this).getBlockEntity(metadata);
+ }
+ return null;
+ }
+
static Class _mthclass$(String s)
{
@@ -40,7 +40,7 @@
- float f4 = world.rand.nextFloat() * f1 + (1.0F - f1) * 0.5F;
- EntityItem entityitem = new EntityItem(world, (float)i + f2, (float)j + f3, (float)k + f4, new ItemStack(Item.seeds));
- entityitem.delayBeforeCanPickup = 10;
- world.entityJoinedWorld(entityitem);
- world.spawnEntityInWorld(entityitem);
+ tr.add(new ItemStack(Item.seeds));
}
}
@@ -1,35 +1,40 @@
--- ../src_base/minecraft_server/net/minecraft/src/BlockFire.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/BlockFire.java 0000-00-00 00:00:00.000000000 -0000
@@ -13,15 +13,9 @@
@@ -14,14 +14,14 @@
public class BlockFire extends Block
{
-
- private int chanceToEncourageFire[];
- private int abilityToCatchFire[];
-
+ private int chanceToEncourageFire[];
+ private int abilityToCatchFire[];
+
protected BlockFire(int i, int j)
{
super(i, j, Material.fire);
- chanceToEncourageFire = new int[256];
- abilityToCatchFire = new int[256];
+ chanceToEncourageFire = Block.blockFireSpreadSpeed;
+ abilityToCatchFire = Block.blockFlammability;
setTickOnLoad(true);
}
@@ -39,12 +33,6 @@
@@ -38,11 +38,10 @@
setBurnRate(Block.cloth.blockID, 30, 60);
setBurnRate(Block.vine.blockID, 15, 100);
}
- private void setBurnRate(int i, int j, int k)
- {
-
+
private void setBurnRate(int i, int j, int k)
{
- chanceToEncourageFire[i] = j;
- abilityToCatchFire[i] = k;
- }
-
+ Block.setBurnProperties(i, j, k);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int i, int j, int k)
{
return null;
@@ -77,11 +65,9 @@
@@ -77,11 +76,9 @@
public void updateTick(World world, int i, int j, int k, Random random)
{
@@ -44,7 +49,7 @@
if(!canPlaceBlockAt(world, i, j, k))
{
world.setBlockWithNotify(i, j, k, 0);
@@ -99,23 +85,23 @@
@@ -99,23 +96,23 @@
world.scheduleBlockUpdate(i, j, k, blockID, tickRate());
if(!flag && !func_268_g(world, i, j, k))
{
@@ -69,21 +74,31 @@
- tryToCatchBlockOnFire(world, i, j, k + 1, 300, random, l);
+ tryToCatchBlockOnFire(world, i + 1, j, k, 300, random, l, 4);
+ tryToCatchBlockOnFire(world, i - 1, j, k, 300, random, l, 5);
+ tryToCatchBlockOnFire(world, i, j - 1, k, 250, random, l, 0);
+ tryToCatchBlockOnFire(world, i, j + 1, k, 250, random, l, 1);
+ tryToCatchBlockOnFire(world, i, j - 1, k, 250, random, l, 1);
+ tryToCatchBlockOnFire(world, i, j + 1, k, 250, random, l, 0);
+ tryToCatchBlockOnFire(world, i, j, k - 1, 300, random, l, 3);
+ tryToCatchBlockOnFire(world, i, j, k + 1, 300, random, l, 2);
for(int i1 = i - 1; i1 <= i + 1; i1++)
{
for(int j1 = k - 1; j1 <= k + 1; j1++)
@@ -155,9 +141,14 @@
@@ -154,10 +151,24 @@
}
}
- private void tryToCatchBlockOnFire(World world, int i, int j, int k, int l, Random random, int i1)
+ private void tryToCatchBlockOnFire(World world, int i, int j, int k, int l, Random random, int i1, int face)
-
+
+ /*
+ * Added for backwards compatibility, should not be called by anyone who is making a mod for forge
+ */
+ @Deprecated
private void tryToCatchBlockOnFire(World world, int i, int j, int k, int l, Random random, int i1)
{
- int j1 = abilityToCatchFire[world.getBlockId(i, j, k)];
+ tryToCatchBlockOnFire(world, i, j, k, l, random, i1, 0);
+ }
+
+ private void tryToCatchBlockOnFire(World world, int i, int j, int k, int l, Random random, int i1, int face)
+ {
+ Block block = Block.blocksList[world.getBlockId(i, j, k)];
+ int j1 = 0;
+ if (block != null)
@@ -93,7 +108,7 @@
if(random.nextInt(l) < j1)
{
boolean flag = world.getBlockId(i, j, k) == Block.tnt.blockID;
@@ -182,27 +173,27 @@
@@ -182,27 +193,27 @@
private boolean func_268_g(World world, int i, int j, int k)
{
@@ -108,12 +123,12 @@
return true;
}
- if(canBlockCatchFire(world, i, j - 1, k))
+ if(canBlockCatchFire(world, i, j - 1, k, 0))
+ if(canBlockCatchFire(world, i, j - 1, k, 1))
{
return true;
}
- if(canBlockCatchFire(world, i, j + 1, k))
+ if(canBlockCatchFire(world, i, j + 1, k, 1))
+ if(canBlockCatchFire(world, i, j + 1, k, 0))
{
return true;
}
@@ -127,7 +142,7 @@
}
private int getChanceOfNeighborsEncouragingFire(World world, int i, int j, int k)
@@ -213,12 +204,12 @@
@@ -213,12 +224,12 @@
return 0;
} else
{
@@ -139,26 +154,31 @@
- l = getChanceToEncourageFire(world, i, j, k + 1, l);
+ l = getChanceToEncourageFire(world, i + 1, j, k, l, 5);
+ l = getChanceToEncourageFire(world, i - 1, j, k, l, 4);
+ l = getChanceToEncourageFire(world, i, j - 1, k, l, 0);
+ l = getChanceToEncourageFire(world, i, j + 1, k, l, 1);
+ l = getChanceToEncourageFire(world, i, j - 1, k, l, 1);
+ l = getChanceToEncourageFire(world, i, j + 1, k, l, 0);
+ l = getChanceToEncourageFire(world, i, j, k - 1, l, 3);
+ l = getChanceToEncourageFire(world, i, j, k + 1, l, 2);
return l;
}
}
@@ -228,14 +219,24 @@
@@ -227,15 +238,43 @@
{
return false;
}
- public boolean canBlockCatchFire(IBlockAccess iblockaccess, int i, int j, int k)
- {
- return chanceToEncourageFire[iblockaccess.getBlockId(i, j, k)] > 0;
- }
-
- public int getChanceToEncourageFire(World world, int i, int j, int k, int l)
+ public boolean canBlockCatchFire(IBlockAccess world, int i, int j, int k, int face)
+
+ /*
+ * Added for backwards compatibility, should not be called by anyone who is making a mod for forge
+ */
+ @Deprecated
public boolean canBlockCatchFire(IBlockAccess iblockaccess, int i, int j, int k)
{
- int i1 = chanceToEncourageFire[world.getBlockId(i, j, k)];
- return chanceToEncourageFire[iblockaccess.getBlockId(i, j, k)] > 0;
+ return canBlockCatchFire(iblockaccess, i, j, k, 0);
}
+ public boolean canBlockCatchFire(IBlockAccess world, int i, int j, int k, int face)
+ {
+ Block block = Block.blocksList[world.getBlockId(i, j, k)];
+ if (block != null)
+ {
@@ -167,18 +187,28 @@
+ return false;
+ }
+
+ /*
+ * Added for backwards compatibility, should not be called by anyone who is making a mod for forge
+ */
+ @Deprecated
public int getChanceToEncourageFire(World world, int i, int j, int k, int l)
{
- int i1 = chanceToEncourageFire[world.getBlockId(i, j, k)];
+ return getChanceToEncourageFire(world, i, j, k, l, 0);
+ }
+
+ public int getChanceToEncourageFire(World world, int i, int j, int k, int l, int face)
+ {
+ int i1 = 0;
+ Block block = Block.blocksList[world.getBlockId(i, j, k)];
+ if (block != null)
+ {
+ i1 = block.chanceToEncourageFire(world, i, j, k, world.getBlockMetadata(i, j, k), face);
+ i1 = block.getFireSpreadSpeed(world, i, j, k, world.getBlockMetadata(i, j, k), face);
+ }
if(i1 > l)
{
return i1;
@@ -247,12 +248,12 @@
@@ -247,12 +286,12 @@
public boolean canPlaceBlockAt(World world, int i, int j, int k)
{
@@ -193,7 +223,7 @@
{
world.setBlockWithNotify(i, j, k, 0);
return;
@@ -268,7 +269,7 @@
@@ -268,7 +307,7 @@
{
return;
}
@@ -5,7 +5,7 @@
}
+ /* FORGE: Implemented base method, see Block.isLadder */
+ public boolean isLadder() {
+ public boolean isLadder(World world, int i, int j, int k) {
+ return true;
+ }
+
@@ -0,0 +1,11 @@
--- ../src_base/minecraft_server/net/minecraft/src/BlockPistonBase.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/BlockPistonBase.java 0000-00-00 00:00:00.000000000 -0000
@@ -356,7 +356,7 @@
return false;
}
}
- return !(Block.blocksList[i] instanceof BlockContainer);
+ return !(Block.blocksList[i] != null && Block.blocksList[i].hasTileEntity(world.getBlockMetadata(j, l, l)));
}
private static boolean canExtend(World world, int i, int j, int k, int l)
@@ -1,21 +1,47 @@
--- ../src_base/minecraft_server/net/minecraft/src/BlockRail.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/BlockRail.java 0000-00-00 00:00:00.000000000 -0000
@@ -18,12 +18,12 @@
@@ -14,16 +14,29 @@
{
private final boolean isPowered;
+
+ /**
+ * Forge: Moved render type to a field and a setter.
+ * This allows for a mod to change the render type
+ * for vanilla rails, and any mod rails that extend
+ * this class.
+ */
+ private int renderType = 9;
+
+ public void setRenderType(int value)
+ {
+ renderType = value;
+ }
public static final boolean isRailBlockAt(World world, int i, int j, int k)
{
int l = world.getBlockId(i, j, k);
- return l == Block.rail.blockID || l == Block.railPowered.blockID || l == Block.railDetector.blockID;
+ return Block.blocksList[l] instanceof BlockRail;
+ return Block.blocksList[l] instanceof BlockRail;
}
public static final boolean isRailBlock(int i)
{
- return i == Block.rail.blockID || i == Block.railPowered.blockID || i == Block.railDetector.blockID;
+ return Block.blocksList[i] instanceof BlockRail;
+ return Block.blocksList[i] instanceof BlockRail;
}
protected BlockRail(int i, int j, boolean flag)
@@ -99,7 +99,7 @@
@@ -89,7 +102,7 @@
public int getRenderType()
{
- return 9;
+ return renderType;
}
public int quantityDropped(Random random)
@@ -99,7 +112,7 @@
public boolean canPlaceBlockAt(World world, int i, int j, int k)
{
@@ -24,7 +50,7 @@
}
public void onBlockAdded(World world, int i, int j, int k)
@@ -123,23 +123,23 @@
@@ -123,23 +136,23 @@
j1 &= 7;
}
boolean flag = false;
@@ -53,3 +79,122 @@
{
flag = true;
}
@@ -313,8 +326,118 @@
return 0;
}
+ /**
+ * This function is no longer called by Minecraft
+ */
static boolean isPoweredBlockRail(BlockRail blockrail)
{
return blockrail.isPowered;
}
+
+ /**
+ * Return true if the rail can make corners.
+ * Used by placement logic.
+ * @param world The world.
+ * @param i The rail X coordinate.
+ * @param j The rail Y coordinate.
+ * @param k The rail Z coordinate.
+ * @return True if the rail can make corners.
+ */
+ public boolean isFlexibleRail(World world, int i, int j, int k)
+ {
+ return !isPowered;
+ }
+
+ /**
+ * Returns true if the rail can make up and down slopes.
+ * Used by placement logic.
+ * @param world The world.
+ * @param i The rail X coordinate.
+ * @param j The rail Y coordinate.
+ * @param k The rail Z coordinate.
+ * @return True if the rail can make slopes.
+ */
+ public boolean canMakeSlopes(World world, int i, int j, int k)
+ {
+ return true;
+ }
+
+ /**
+ * Return the rails metadata (without the power bit if the rail uses one).
+ * Can be used to make the cart think the rail something other than it is,
+ * for example when making diamond junctions or switches.
+ * The cart parameter will often be null unless it it called from EntityMinecart.
+ *
+ * Valid rail metadata is defined as follows:
+ * 0x0: flat track going North-South
+ * 0x1: flat track going West-East
+ * 0x2: track ascending to the East
+ * 0x3: track ascending to the West
+ * 0x4: track ascending to the North
+ * 0x5: track ascending to the South
+ * 0x6: WestNorth corner (connecting East and South)
+ * 0x7: EastNorth corner (connecting West and South)
+ * 0x8: EastSouth corner (connecting West and North)
+ * 0x9: WestSouth corner (connecting East and North)
+ *
+ * All directions are Notch defined.
+ * In MC Beta 1.8.3 the Sun rises in the North.
+ * In MC 1.0.0 the Sun rises in the East.
+ * @param world The world.
+ * @param cart The cart asking for the metadata, null if it is not called by EntityMinecart.
+ * @param i The rail X coordinate.
+ * @param j The rail Y coordinate.
+ * @param k The rail Z coordinate.
+ * @return The metadata.
+ */
+ public int getBasicRailMetadata(IBlockAccess world, EntityMinecart cart, int i, int j, int k)
+ {
+ int meta = world.getBlockMetadata(i, j, k);
+ if(isPowered) {
+ meta = meta & 7;
+ }
+ return meta;
+ }
+
+ /**
+ * Returns the max speed of the rail at [i, j, k].
+ * @param world The world.
+ * @param cart The cart on the rail, may be null.
+ * @param i The rail X coordinate.
+ * @param j The rail Y coordinate.
+ * @param k The rail Z coordinate.
+ * @return The max speed of the current rail.
+ */
+ public float getRailMaxSpeed(World world, EntityMinecart cart, int i, int j, int k)
+ {
+ return 0.4f;
+ }
+
+ /**
+ * This function is called by any minecart that passes over this rail.
+ * It is called once per update tick that the minecart is on the rail.
+ * @param world The world.
+ * @param cart The cart on the rail.
+ * @param i The rail X coordinate.
+ * @param j The rail Y coordinate.
+ * @param k The rail Z coordinate.
+ */
+ public void onMinecartPass(World world, EntityMinecart cart, int i, int j, int k)
+ {
+ }
+
+ /**
+ * Return true if this rail uses the 4th bit as a power bit.
+ * Avoid using this function when getBasicRailMetadata() can be used instead.
+ * The only reason to use this function is if you wish to change the rails metadata.
+ * @param world The world.
+ * @param i The rail X coordinate.
+ * @param j The rail Y coordinate.
+ * @param k The rail Z coordinate.
+ * @return True if the 4th bit is a power bit.
+ */
+ public boolean hasPowerBit(World world, int i, int j, int k)
+ {
+ return isPowered;
+ }
}
@@ -11,7 +11,7 @@
- double d2 = (double)(world.rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D;
- EntityItem entityitem = new EntityItem(world, (double)i + d, (double)j + d1, (double)k + d2, new ItemStack(i1, 1, 0));
- entityitem.delayBeforeCanPickup = 10;
- world.entityJoinedWorld(entityitem);
- world.spawnEntityInWorld(entityitem);
- world.setBlockWithNotify(i, j, k, 0);
+ dropBlockAsItem(world,i,j,k,l,0);
entityplayer.addStat(StatList.mineBlockStatArray[blockID], 1);
@@ -41,4 +41,4 @@
+ return tr;
}
public int func_40162_a(int i, Random random)
public int quantityDroppedWithBonus(int i, Random random)
@@ -8,17 +8,37 @@
import java.io.PrintStream;
import java.util.*;
@@ -367,7 +368,7 @@
@@ -328,11 +329,12 @@
blocks[i << worldObj.xShift | k << worldObj.worldYBits | j] = (byte)(byte0 & 0xff);
if(l1 != 0)
{
+ int meta = getBlockMetadata(i, j, k);
if(!worldObj.singleplayerWorld)
{
Block.blocksList[l1].onBlockRemoval(worldObj, i2, j, j2);
} else
- if(Block.blocksList[l1] instanceof BlockContainer)
+ if(Block.blocksList[l1] != null && Block.blocksList[l1].hasTileEntity(meta))
{
worldObj.removeBlockTileEntity(i2, j, j2);
}
@@ -362,12 +364,12 @@
{
Block.blocksList[l].onBlockAdded(worldObj, i2, j, j2);
}
- if(Block.blocksList[l] instanceof BlockContainer)
+ if(Block.blocksList[l] != null && Block.blocksList[l].hasTileEntity(i1))
{
TileEntity tileentity = getChunkBlockTileEntity(i, j, k);
if(tileentity == null)
{
- tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity();
+ tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity(i1);
+ tileentity = Block.blocksList[l].getTileEntity(i1);
worldObj.setBlockTileEntity(i, j, k, tileentity);
}
if(tileentity != null)
@@ -375,14 +376,6 @@
tileentity.func_35164_g();
@@ -375,14 +377,6 @@
tileentity.updateContainingBlockInfo();
}
}
- } else
@@ -27,12 +47,12 @@
- TileEntity tileentity1 = getChunkBlockTileEntity(i, j, k);
- if(tileentity1 != null)
- {
- tileentity1.func_35164_g();
- tileentity1.updateContainingBlockInfo();
- }
}
isModified = true;
return true;
@@ -408,6 +401,11 @@
@@ -408,6 +402,11 @@
if(k1 != 0)
{
Block.blocksList[k1].onBlockRemoval(worldObj, l1, j, i2);
@@ -44,17 +64,24 @@
}
data.setNibble(i, j, k, 0);
if(Block.lightOpacity[byte0 & 0xff] != 0)
@@ -435,7 +433,7 @@
@@ -430,12 +429,13 @@
{
Block.blocksList[l].onBlockAdded(worldObj, l1, j, i2);
}
- if(l > 0 && (Block.blocksList[l] instanceof BlockContainer))
+ int meta = getBlockMetadata(i, j, k);
+ if(l > 0 && Block.blocksList[l] != null && Block.blocksList[l].hasTileEntity(meta))
{
TileEntity tileentity = getChunkBlockTileEntity(i, j, k);
if(tileentity == null)
{
- tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity();
+ tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity(0);
+ tileentity = Block.blocksList[l].getTileEntity(meta);
worldObj.setBlockTileEntity(i, j, k, tileentity);
}
if(tileentity != null)
@@ -443,14 +441,6 @@
tileentity.func_35164_g();
@@ -443,14 +443,6 @@
tileentity.updateContainingBlockInfo();
}
}
- } else
@@ -63,12 +90,21 @@
- TileEntity tileentity1 = getChunkBlockTileEntity(i, j, k);
- if(tileentity1 != null)
- {
- tileentity1.func_35164_g();
- tileentity1.updateContainingBlockInfo();
- }
}
isModified = true;
return true;
@@ -586,6 +576,11 @@
@@ -471,7 +463,7 @@
}
data.setNibble(i, j, k, l);
int j1 = getBlockID(i, j, k);
- if(j1 > 0 && (Block.blocksList[j1] instanceof BlockContainer))
+ if(j1 > 0 && Block.blocksList[j1] != null && Block.blocksList[j1].hasTileEntity(l))
{
TileEntity tileentity = getChunkBlockTileEntity(i, j, k);
if(tileentity != null)
@@ -586,27 +578,38 @@
{
ChunkPosition chunkposition = new ChunkPosition(i, j, k);
TileEntity tileentity = (TileEntity)chunkTileEntityMap.get(chunkposition);
@@ -80,12 +116,16 @@
if(tileentity == null)
{
int l = getBlockID(i, j, k);
@@ -595,18 +590,23 @@
- if(!Block.isBlockContainer[l])
+ int meta = getBlockMetadata(i, j, k);
+ if(Block.blocksList[l] == null || !Block.blocksList[l].hasTileEntity(meta))
{
return null;
}
if(tileentity == null)
{
- tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity();
+ tileentity = ((BlockContainer)Block.blocksList[l]).getBlockEntity(getBlockMetadata(i,j,k));
+ tileentity = Block.blocksList[l].getTileEntity(meta);
worldObj.setBlockTileEntity(xPosition * 16 + i, j, zPosition * 16 + k, tileentity);
}
tileentity = (TileEntity)chunkTileEntityMap.get(chunkposition);
@@ -95,7 +135,7 @@
- chunkTileEntityMap.remove(chunkposition);
- return null;
- } else
+ return tileentity;
+ return tileentity;
+ }
+
+ /* FORGE: Used to remove only invalid TileEntities */
@@ -111,7 +151,7 @@
}
}
@@ -618,7 +618,7 @@
@@ -618,7 +621,7 @@
setChunkBlockTileEntity(i, j, k, tileentity);
if(isChunkLoaded)
{
@@ -120,12 +160,25 @@
}
}
@@ -634,6 +634,8 @@
return;
} else
@@ -629,11 +632,19 @@
tileentity.xCoord = xPosition * 16 + i;
tileentity.yCoord = j;
tileentity.zCoord = zPosition * 16 + k;
- if(getBlockID(i, j, k) == 0 || !(Block.blocksList[getBlockID(i, j, k)] instanceof BlockContainer))
+ int id = getBlockID(i, j, k);
+ int meta = getBlockMetadata(i, j, k);
+ if(id == 0 || Block.blocksList[id] == null || !Block.blocksList[id].hasTileEntity(meta))
{
+ TileEntity old=(TileEntity)chunkTileEntityMap.get(chunkposition);
+ if(old!=null) old.invalidate();
return;
- } else
+ }
+ else
{
+ TileEntity old = (TileEntity)chunkTileEntityMap.get(chunkposition);
+ if (old != null)
+ {
+ old.invalidate();
+ }
tileentity.validate();
chunkTileEntityMap.put(chunkposition, tileentity);
return;
@@ -0,0 +1,16 @@
--- ../src_base/minecraft_server/net/minecraft/src/Enchantment.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/Enchantment.java 0000-00-00 00:00:00.000000000 -0000
@@ -98,6 +98,13 @@
return this;
}
+ /* FORGE: Can enchantment be applied to item. Redirected to allow users to
+ * override it in their Enchantment class.
+ */
+ public boolean canEnchantItem(ItemStack ist) {
+ return type.canEnchantItem(ist.getItem());
+ }
+
static
{
looting = new EnchantmentLootBonus(21, 2, EnumEnchantmentType.weapon);
@@ -0,0 +1,11 @@
--- ../src_base/minecraft_server/net/minecraft/src/EnchantmentHelper.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/EnchantmentHelper.java 0000-00-00 00:00:00.000000000 -0000
@@ -271,7 +271,7 @@
for(int k = 0; k < j; k++)
{
Enchantment enchantment = aenchantment[k];
- if(enchantment == null || !enchantment.type.canEnchantItem(item))
+ if(enchantment == null || !enchantment.canEnchantItem(itemstack))
{
continue;
}
@@ -0,0 +1,46 @@
--- ../src_base/minecraft_server/net/minecraft/src/Entity.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/Entity.java 0000-00-00 00:00:00.000000000 -0000
@@ -119,6 +119,22 @@
protected abstract void entityInit();
+ //Forge: Used to store custom data for each entity.
+ private NBTTagCompound customEntityData;
+ /**
+ * Returns a NBTTagCompound that can be used to store custom data for this entity.
+ * It will be written, and read from disc, so it persists over world saves.
+ * @return A NBTTagCompound
+ */
+ public NBTTagCompound getEntityData()
+ {
+ if (customEntityData == null)
+ {
+ customEntityData = new NBTTagCompound();
+ }
+ return customEntityData;
+ }
+
public DataWatcher getDataWatcher()
{
return dataWatcher;
@@ -873,6 +889,10 @@
nbttagcompound.setShort("Fire", (short)fire);
nbttagcompound.setShort("Air", (short)getAir());
nbttagcompound.setBoolean("OnGround", onGround);
+ if (customEntityData != null)
+ {
+ nbttagcompound.setCompoundTag("ForgeData", customEntityData);
+ }
writeEntityToNBT(nbttagcompound);
}
@@ -907,6 +927,9 @@
onGround = nbttagcompound.getBoolean("OnGround");
setPosition(posX, posY, posZ);
setRotation(rotationYaw, rotationPitch);
+ if (nbttagcompound.hasKey("ForgeData")) {
+ customEntityData=nbttagcompound.getCompoundTag("ForgeData");
+ }
readEntityFromNBT(nbttagcompound);
}
@@ -7,7 +7,7 @@
- return worldObj.getBlockId(i, j, k) == Block.ladder.blockID;
+ Block block=Block.blocksList[worldObj.getBlockId(i,j,k)];
+ if(block==null) return false;
+ return block.isLadder();
+ return block.isLadder(worldObj,i,j,k);
}
public void writeEntityToNBT(NBTTagCompound nbttagcompound)
@@ -0,0 +1,910 @@
--- ../src_base/minecraft_server/net/minecraft/src/EntityMinecart.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/EntityMinecart.java 0000-00-00 00:00:00.000000000 -0000
@@ -4,9 +4,14 @@
package net.minecraft.src;
+import java.util.ArrayList;
import java.util.List;
import java.util.Random;
+import net.minecraft.src.forge.ForgeHooks;
+import net.minecraft.src.forge.IMinecartCollisionHandler;
+import net.minecraft.src.forge.MinecraftForge;
+
// Referenced classes of package net.minecraft.src:
// Entity, IInventory, ItemStack, DataWatcher,
// World, Item, EntityItem, Block,
@@ -18,13 +23,13 @@
implements IInventory
{
- private ItemStack cargoItems[];
- private int fuel;
- private boolean field_469_aj;
+ protected ItemStack cargoItems[];
+ protected int fuel;
+ protected boolean field_469_aj;
public int minecartType;
public double pushX;
public double pushZ;
- private static final int field_468_ak[][][] = {
+ protected static final int field_468_ak[][][] = {
{
{
0, 0, -1
@@ -87,13 +92,36 @@
}
}
};
- private int turnProgress;
- private double minecartX;
- private double minecartY;
- private double minecartZ;
- private double field_9159_ar;
- private double minecartPitch;
-
+ protected int turnProgress;
+ protected double minecartX;
+ protected double minecartY;
+ protected double minecartZ;
+ protected double field_9159_ar;
+ protected double minecartPitch;
+
+ /*Forge: Minecart Compatibility Layer Integration.
+ */
+ protected double velocityX;
+ protected double velocityY;
+ protected double velocityZ;
+ public static float defaultMaxSpeedRail = 0.4f;
+ public static float defaultMaxSpeedGround = 0.4f;
+ public static float defaultMaxSpeedAirLateral = 0.4f;
+ public static float defaultMaxSpeedAirVertical = -1f;
+ public static double defaultDragAir = 0.94999998807907104D;
+ protected boolean canUseRail = true;
+ protected boolean canBePushed = true;
+ private static IMinecartCollisionHandler collisionHandler = null;
+
+ /*
+ * Instance versions of the above physics properties
+ */
+ protected float maxSpeedRail;
+ protected float maxSpeedGround;
+ protected float maxSpeedAirLateral;
+ protected float maxSpeedAirVertical;
+ protected double dragAir;
+
public EntityMinecart(World world)
{
super(world);
@@ -103,6 +131,18 @@
preventEntitySpawning = true;
setSize(0.98F, 0.7F);
yOffset = height / 2.0F;
+
+ maxSpeedRail = defaultMaxSpeedRail;
+ maxSpeedGround = defaultMaxSpeedGround;
+ maxSpeedAirLateral = defaultMaxSpeedAirLateral;
+ maxSpeedAirVertical = defaultMaxSpeedAirVertical;
+ dragAir = defaultDragAir;
+ }
+
+ public EntityMinecart(World world, int type)
+ {
+ this(world);
+ minecartType = type;
}
protected boolean canTriggerWalking()
@@ -120,17 +160,27 @@
public AxisAlignedBB getCollisionBox(Entity entity)
{
+ if (getCollisionHandler() != null)
+ {
+ return getCollisionHandler().getCollisionBox(this, entity);
+ }
+
return entity.boundingBox;
}
public AxisAlignedBB getBoundingBox()
{
+ if (getCollisionHandler() != null)
+ {
+ return getCollisionHandler().getBoundingBox(this);
+ }
+
return null;
}
public boolean canBePushed()
{
- return true;
+ return canBePushed;
}
public EntityMinecart(World world, double d, double d1, double d2,
@@ -169,8 +219,10 @@
riddenByEntity.mountEntity(this);
}
setEntityDead();
- dropItemWithOffset(Item.minecartEmpty.shiftedIndex, 1, 0.0F);
- if(minecartType == 1)
+
+ dropCartAsItem();
+
+ if(getSizeInventory() > 0)
{
EntityMinecart entityminecart = this;
label0:
@@ -204,12 +256,6 @@
worldObj.spawnEntityInWorld(entityitem);
} while(true);
}
-
- dropItemWithOffset(Block.chest.blockID, 1, 0.0F);
- } else
- if(minecartType == 2)
- {
- dropItemWithOffset(Block.stoneOvenIdle.blockID, 1, 0.0F);
}
}
return true;
@@ -267,7 +313,7 @@
{
func_41018_e_(func_41020_o() - 1);
}
- if(isMinecartPowered() && rand.nextInt(4) == 0)
+ if(isMinecartPowered() && rand.nextInt(4) == 0 && minecartType == 2 && getClass() == EntityMinecart.class)
{
worldObj.spawnParticle("largesmoke", posX, posY + 0.80000000000000004D, posZ, 0.0D, 0.0D, 0.0D);
}
@@ -307,22 +353,19 @@
double d2 = 0.40000000000000002D;
double d4 = 0.0078125D;
int l = worldObj.getBlockId(i, j, k);
- if(BlockRail.isRailBlock(l))
+ if(canUseRail() && BlockRail.isRailBlock(l))
{
Vec3D vec3d = func_182_g(posX, posY, posZ);
- int i1 = worldObj.getBlockMetadata(i, j, k);
+ int i1 = ((BlockRail)Block.blocksList[l]).getBasicRailMetadata(worldObj, this, i, j, k);;
posY = j;
boolean flag = false;
boolean flag1 = false;
if(l == Block.railPowered.blockID)
{
- flag = (i1 & 8) != 0;
+ flag = (worldObj.getBlockMetadata(i, j, k) & 8) != 0;
flag1 = !flag;
}
- if(((BlockRail)Block.blocksList[l]).getIsPowered())
- {
- i1 &= 7;
- }
+
if(i1 >= 2 && i1 <= 5)
{
posY = j + 1;
@@ -356,7 +399,8 @@
double d13 = Math.sqrt(motionX * motionX + motionZ * motionZ);
motionX = (d13 * d9) / d11;
motionZ = (d13 * d10) / d11;
- if(flag1)
+
+ if(flag1 && shouldDoRailFunctions())
{
double d16 = Math.sqrt(motionX * motionX + motionZ * motionZ);
if(d16 < 0.029999999999999999D)
@@ -397,30 +441,9 @@
posX = d18 + d9 * d17;
posZ = d19 + d10 * d17;
setPosition(posX, posY + (double)yOffset, posZ);
- double d23 = motionX;
- double d25 = motionZ;
- if(riddenByEntity != null)
- {
- d23 *= 0.75D;
- d25 *= 0.75D;
- }
- if(d23 < -d2)
- {
- d23 = -d2;
- }
- if(d23 > d2)
- {
- d23 = d2;
- }
- if(d25 < -d2)
- {
- d25 = -d2;
- }
- if(d25 > d2)
- {
- d25 = d2;
- }
- moveEntity(d23, 0.0D, d25);
+
+ moveMinecartOnRail(i, j, k);
+
if(ai[0][1] != 0 && MathHelper.floor_double(posX) - i == ai[0][0] && MathHelper.floor_double(posZ) - k == ai[0][2])
{
setPosition(posX, posY + (double)ai[0][1], posZ);
@@ -429,37 +452,9 @@
{
setPosition(posX, posY + (double)ai[1][1], posZ);
}
- if(riddenByEntity != null)
- {
- motionX *= 0.99699997901916504D;
- motionY *= 0.0D;
- motionZ *= 0.99699997901916504D;
- } else
- {
- if(minecartType == 2)
- {
- double d27 = MathHelper.sqrt_double(pushX * pushX + pushZ * pushZ);
- if(d27 > 0.01D)
- {
- pushX /= d27;
- pushZ /= d27;
- double d29 = 0.040000000000000001D;
- motionX *= 0.80000001192092896D;
- motionY *= 0.0D;
- motionZ *= 0.80000001192092896D;
- motionX += pushX * d29;
- motionZ += pushZ * d29;
- } else
- {
- motionX *= 0.89999997615814209D;
- motionY *= 0.0D;
- motionZ *= 0.89999997615814209D;
- }
- }
- motionX *= 0.95999997854232788D;
- motionY *= 0.0D;
- motionZ *= 0.95999997854232788D;
- }
+
+ applyDragAndPushForces();
+
Vec3D vec3d1 = func_182_g(posX, posY, posZ);
if(vec3d1 != null && vec3d != null)
{
@@ -480,25 +475,15 @@
motionX = d15 * (double)(k1 - i);
motionZ = d15 * (double)(l1 - k);
}
- if(minecartType == 2)
+
+ updatePushForces();
+
+ if (shouldDoRailFunctions())
{
- double d30 = MathHelper.sqrt_double(pushX * pushX + pushZ * pushZ);
- if(d30 > 0.01D && motionX * motionX + motionZ * motionZ > 0.001D)
- {
- pushX /= d30;
- pushZ /= d30;
- if(pushX * motionX + pushZ * motionZ < 0.0D)
- {
- pushX = 0.0D;
- pushZ = 0.0D;
- } else
- {
- pushX = motionX;
- pushZ = motionZ;
- }
- }
+ ((BlockRail)Block.blocksList[l]).onMinecartPass(worldObj, this, i, j, k);
}
- if(flag)
+
+ if(flag && shouldDoRailFunctions())
{
double d31 = Math.sqrt(motionX * motionX + motionZ * motionZ);
if(d31 > 0.01D)
@@ -530,37 +515,10 @@
}
}
}
- } else
+ }
+ else
{
- if(motionX < -d2)
- {
- motionX = -d2;
- }
- if(motionX > d2)
- {
- motionX = d2;
- }
- if(motionZ < -d2)
- {
- motionZ = -d2;
- }
- if(motionZ > d2)
- {
- motionZ = d2;
- }
- if(onGround)
- {
- motionX *= 0.5D;
- motionY *= 0.5D;
- motionZ *= 0.5D;
- }
- moveEntity(motionX, motionY, motionZ);
- if(!onGround)
- {
- motionX *= 0.94999998807907104D;
- motionY *= 0.94999998807907104D;
- motionZ *= 0.94999998807907104D;
- }
+ moveMinecartOffRail(i, j, k);
}
rotationPitch = 0.0F;
double d6 = prevPosX - posX;
@@ -582,7 +540,20 @@
field_469_aj = !field_469_aj;
}
setRotation(rotationYaw, rotationPitch);
- List list = worldObj.getEntitiesWithinAABBExcludingEntity(this, boundingBox.expand(0.20000000298023224D, 0.0D, 0.20000000298023224D));
+
+ AxisAlignedBB box = null;
+
+ if (getCollisionHandler() != null)
+ {
+ box = getCollisionHandler().getMinecartCollisionBox(this);
+ }
+ else
+ {
+
+ box = boundingBox.expand(0.20000000298023224D, 0.0D, 0.20000000298023224D);
+ }
+
+ List list = worldObj.getEntitiesWithinAABBExcludingEntity(this, box);
if(list != null && list.size() > 0)
{
for(int j1 = 0; j1 < list.size(); j1++)
@@ -603,6 +574,178 @@
}
riddenByEntity = null;
}
+ updateFuel();
+ ForgeHooks.onMinecartUpdate(this, i, j, k);
+ }
+
+ /**
+ * Carts should return their drag factor here
+ * @return The drag rate.
+ */
+ protected double getDrag()
+ {
+ if(riddenByEntity != null)
+ {
+ return 0.99699997901916504D;
+ }
+ return 0.95999997854232788D;
+ }
+
+ /**
+ * Moved to allow overrides.
+ * This code applies drag and updates push forces.
+ */
+ protected void applyDragAndPushForces()
+ {
+ if(isPoweredCart())
+ {
+ double d27 = MathHelper.sqrt_double(pushX * pushX + pushZ * pushZ);
+ if(d27 > 0.01D)
+ {
+ pushX /= d27;
+ pushZ /= d27;
+ double d29 = 0.040000000000000001D;
+ motionX *= 0.80000001192092896D;
+ motionY *= 0.0D;
+ motionZ *= 0.80000001192092896D;
+ motionX += pushX * d29;
+ motionZ += pushZ * d29;
+ } else
+ {
+ motionX *= 0.89999997615814209D;
+ motionY *= 0.0D;
+ motionZ *= 0.89999997615814209D;
+ }
+ }
+ motionX *= getDrag();
+ motionY *= 0.0D;
+ motionZ *= getDrag();
+ }
+
+ /**
+ * Moved to allow overrides.
+ * This code updates push forces.
+ */
+ protected void updatePushForces()
+ {
+ if(isPoweredCart())
+ {
+ double push = MathHelper.sqrt_double(pushX * pushX + pushZ * pushZ);
+ if(push > 0.01D && motionX * motionX + motionZ * motionZ > 0.001D)
+ {
+ pushX /= push;
+ pushZ /= push;
+ if(pushX * motionX + pushZ * motionZ < 0.0D)
+ {
+ pushX = 0.0D;
+ pushZ = 0.0D;
+ } else
+ {
+ pushX = motionX;
+ pushZ = motionZ;
+ }
+ }
+ }
+ }
+
+ /**
+ * Moved to allow overrides.
+ * This code handles minecart movement and speed capping when on a rail.
+ */
+ protected void moveMinecartOnRail(int i, int j, int k)
+ {
+ int id = worldObj.getBlockId(i, j, k);
+ if (!BlockRail.isRailBlock(id))
+ {
+ return;
+ }
+ float railMaxSpeed = ((BlockRail)Block.blocksList[id]).getRailMaxSpeed(worldObj, this, i, j, k);
+
+ double maxSpeed = Math.min(railMaxSpeed, getMaxSpeedRail());
+ double d23 = motionX;
+ double d25 = motionZ;
+ if(riddenByEntity != null)
+ {
+ d23 *= 0.75D;
+ d25 *= 0.75D;
+ }
+ if(d23 < -maxSpeed)
+ {
+ d23 = -maxSpeed;
+ }
+ if(d23 > maxSpeed)
+ {
+ d23 = maxSpeed;
+ }
+ if(d25 < -maxSpeed)
+ {
+ d25 = -maxSpeed;
+ }
+ if(d25 > maxSpeed)
+ {
+ d25 = maxSpeed;
+ }
+ moveEntity(d23, 0.0D, d25);
+ }
+
+ /**
+ * Moved to allow overrides.
+ * This code handles minecart movement and speed capping when not on a rail.
+ */
+ protected void moveMinecartOffRail(int i, int j, int k)
+ {
+ double d2 = getMaxSpeedGround();
+ if(!onGround)
+ {
+ d2 = getMaxSpeedAirLateral();
+ }
+ if(motionX < -d2)
+ {
+ motionX = -d2;
+ }
+ if(motionX > d2)
+ {
+ motionX = d2;
+ }
+ if(motionZ < -d2)
+ {
+ motionZ = -d2;
+ }
+ if(motionZ > d2)
+ {
+ motionZ = d2;
+ }
+ double moveY = motionY;
+ if(getMaxSpeedAirVertical() > 0 && motionY > getMaxSpeedAirVertical())
+ {
+ moveY = getMaxSpeedAirVertical();
+ if(Math.abs(motionX) < 0.3f && Math.abs(motionZ) < 0.3f)
+ {
+ moveY = 0.15f;
+ motionY = moveY;
+ }
+ }
+ if(onGround)
+ {
+ motionX *= 0.5D;
+ motionY *= 0.5D;
+ motionZ *= 0.5D;
+ }
+ moveEntity(motionX, moveY, motionZ);
+ if(!onGround)
+ {
+ motionX *= getDragAir();
+ motionY *= getDragAir();
+ motionZ *= getDragAir();
+ }
+ }
+
+ /**
+ * Moved to allow overrides.
+ * This code applies fuel consumption.
+ */
+ protected void updateFuel()
+ {
if(fuel > 0)
{
fuel--;
@@ -626,12 +769,8 @@
int l = worldObj.getBlockId(i, j, k);
if(BlockRail.isRailBlock(l))
{
- int i1 = worldObj.getBlockMetadata(i, j, k);
+ int i1 = ((BlockRail)Block.blocksList[l]).getBasicRailMetadata(worldObj, this, i, j, k);
d1 = j;
- if(((BlockRail)Block.blocksList[l]).getIsPowered())
- {
- i1 &= 7;
- }
if(i1 >= 2 && i1 <= 5)
{
d1 = j + 1;
@@ -684,13 +823,14 @@
protected void writeEntityToNBT(NBTTagCompound nbttagcompound)
{
nbttagcompound.setInteger("Type", minecartType);
- if(minecartType == 2)
+ if(isPoweredCart())
{
nbttagcompound.setDouble("PushX", pushX);
nbttagcompound.setDouble("PushZ", pushZ);
- nbttagcompound.setShort("Fuel", (short)fuel);
- } else
- if(minecartType == 1)
+ nbttagcompound.setInteger("Fuel", fuel);
+ }
+
+ if(getSizeInventory() > 0)
{
NBTTagList nbttaglist = new NBTTagList();
for(int i = 0; i < cargoItems.length; i++)
@@ -703,7 +843,6 @@
nbttaglist.setTag(nbttagcompound1);
}
}
-
nbttagcompound.setTag("Items", nbttaglist);
}
}
@@ -711,13 +850,14 @@
protected void readEntityFromNBT(NBTTagCompound nbttagcompound)
{
minecartType = nbttagcompound.getInteger("Type");
- if(minecartType == 2)
+ if(isPoweredCart())
{
pushX = nbttagcompound.getDouble("PushX");
pushZ = nbttagcompound.getDouble("PushZ");
- fuel = nbttagcompound.getShort("Fuel");
- } else
- if(minecartType == 1)
+ fuel = nbttagcompound.getInteger("Fuel");
+ }
+
+ if(getSizeInventory() > 0)
{
NBTTagList nbttaglist = nbttagcompound.getTagList("Items");
cargoItems = new ItemStack[getSizeInventory()];
@@ -730,12 +870,19 @@
cargoItems[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1);
}
}
-
}
}
public void applyEntityCollision(Entity entity)
{
+ ForgeHooks.onMinecartEntityCollision(this, entity);
+
+ if (getCollisionHandler() != null)
+ {
+ getCollisionHandler().onEntityCollision(this, entity);
+ return;
+ }
+
if(worldObj.singleplayerWorld)
{
return;
@@ -744,7 +891,7 @@
{
return;
}
- if((entity instanceof EntityLiving) && !(entity instanceof EntityPlayer) && minecartType == 0 && motionX * motionX + motionZ * motionZ > 0.01D && riddenByEntity == null && entity.ridingEntity == null)
+ if((entity instanceof EntityLiving) && !(entity instanceof EntityPlayer) && canBeRidden() && motionX * motionX + motionZ * motionZ > 0.01D && riddenByEntity == null && entity.ridingEntity == null)
{
entity.mountEntity(this);
}
@@ -782,7 +929,7 @@
}
double d7 = entity.motionX + motionX;
double d8 = entity.motionZ + motionZ;
- if(((EntityMinecart)entity).minecartType == 2 && minecartType != 2)
+ if(((EntityMinecart)entity).isPoweredCart() && !isPoweredCart())
{
motionX *= 0.20000000298023224D;
motionZ *= 0.20000000298023224D;
@@ -790,7 +937,7 @@
entity.motionX *= 0.94999998807907104D;
entity.motionZ *= 0.94999998807907104D;
} else
- if(((EntityMinecart)entity).minecartType != 2 && minecartType == 2)
+ if(!((EntityMinecart)entity).isPoweredCart() && isPoweredCart())
{
entity.motionX *= 0.20000000298023224D;
entity.motionZ *= 0.20000000298023224D;
@@ -818,7 +965,7 @@
public int getSizeInventory()
{
- return 27;
+ return (minecartType == 1 && getClass() == EntityMinecart.class ? 27 : 0);
}
public ItemStack getStackInSlot(int i)
@@ -873,7 +1020,12 @@
public boolean interact(EntityPlayer entityplayer)
{
- if(minecartType == 0)
+ if (!ForgeHooks.onMinecartInteract(this, entityplayer))
+ {
+ return true;
+ }
+
+ if(canBeRidden())
{
if(riddenByEntity != null && (riddenByEntity instanceof EntityPlayer) && riddenByEntity != entityplayer)
{
@@ -884,14 +1036,14 @@
entityplayer.mountEntity(this);
}
} else
- if(minecartType == 1)
+ if(getSizeInventory() > 0)
{
if(!worldObj.singleplayerWorld)
{
entityplayer.displayGUIChest(this);
}
} else
- if(minecartType == 2)
+ if(minecartType == 2 && getClass() == EntityMinecart.class)
{
ItemStack itemstack = entityplayer.inventory.getCurrentItem();
if(itemstack != null && itemstack.itemID == Item.coal.shiftedIndex)
@@ -917,7 +1069,7 @@
return entityplayer.getDistanceSqToEntity(this) <= 64D;
}
- protected boolean isMinecartPowered()
+ public boolean isMinecartPowered()
{
return (dataWatcher.getWatchableObjectByte(16) & 1) != 0;
}
@@ -970,5 +1122,203 @@
{
return dataWatcher.getWatchableObjectInt(18);
}
+
+ /**
+ * Drops the cart as a item. The exact item dropped is defined by getItemDropped().
+ */
+ public void dropCartAsItem()
+ {
+ for(ItemStack item : getItemsDropped())
+ {
+ entityDropItem(item, 0);
+ }
+ }
+
+ /**
+ * Override this to define which items your cart drops when broken.
+ * This does not include items contained in the inventory,
+ * that is handled elsewhere.
+ * @return A list of items dropped.
+ */
+ public List<ItemStack> getItemsDropped()
+ {
+ List<ItemStack> items = new ArrayList<ItemStack>();
+ items.add(new ItemStack(Item.minecartEmpty));
+
+ switch(minecartType)
+ {
+ case 1:
+ items.add(new ItemStack(Block.chest));
+ break;
+ case 2:
+ items.add(new ItemStack(Block.stoneOvenIdle));
+ break;
+ }
+ return items;
+ }
+
+ /**
+ * This function returns an ItemStack that represents this cart.
+ * This should be an ItemStack that can be used by the player to place the cart.
+ * This is the item that was registered with the cart via the registerMinecart function,
+ * but is not necessary the item the cart drops when destroyed.
+ * @return An ItemStack that can be used to place the cart.
+ */
+ public ItemStack getCartItem()
+ {
+ return MinecraftForge.getItemForCart(this);
+ }
+
+ /**
+ * Returns true if this cart is self propelled.
+ * @return True if powered.
+ */
+ public boolean isPoweredCart()
+ {
+ 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.
+ * @return True if this cart should be classified as a storage cart.
+ */
+ public boolean isStorageCart()
+ {
+ return minecartType == 1 && getClass() == EntityMinecart.class;
+ }
+
+ /**
+ * Returns true if this cart can be ridden by an Entity.
+ * @return True if this cart can be ridden.
+ */
+ public boolean canBeRidden()
+ {
+ if(minecartType == 0 && getClass() == EntityMinecart.class)
+ {
+ return true;
+ }
+ 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.
+ */
+ public boolean canUseRail()
+ {
+ return canUseRail;
+ }
+
+ /**
+ * Set whether the minecart can use rails.
+ * This function is mainly used to gracefully detach a minecart from a rail.
+ * @param use Whether the minecart can currently use rails.
+ */
+ public void setCanUseRail(boolean use)
+ {
+ 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().
+ */
+ public boolean shouldDoRailFunctions()
+ {
+ return true;
+ }
+
+ /**
+ * Simply returns the minecartType variable.
+ * @return minecartType
+ */
+ public int getMinecartType()
+ {
+ return minecartType;
+ }
+
+ /**
+ * Gets the current global Minecart Collision handler if none
+ * is registered, returns null
+ * @return The collision handler or null
+ */
+ public static IMinecartCollisionHandler getCollisionHandler()
+ {
+ return collisionHandler;
+ }
+
+ /**
+ * Sets the global Minecart Collision handler, overwrites any
+ * that is currently set.
+ * @param handler The new handler
+ */
+ public static void setCollisionHandler(IMinecartCollisionHandler handler)
+ {
+ collisionHandler = handler;
+ }
+
+ /**
+ * Getters/setters for physics variables
+ */
+
+ /**
+ * Returns the carts max speed.
+ * Carts going faster than 1.1 cause issues with chunk loading.
+ * Carts cant traverse slopes or corners at greater than 0.5 - 0.6.
+ * This value is compared with the rails max speed to determine
+ * the carts current max speed. A normal rails max speed is 0.4.
+ * @return Carts max speed.
+ */
+ public float getMaxSpeedRail()
+ {
+ return maxSpeedRail;
+ }
+ public void setMaxSpeedRail(float value)
+ {
+ maxSpeedRail = value;
+ }
+
+ public float getMaxSpeedGround()
+ {
+ return maxSpeedGround;
+ }
+
+ public void setMaxSpeedGround(float value)
+ {
+ maxSpeedGround = value;
+ }
+
+ public float getMaxSpeedAirLateral()
+ {
+ return maxSpeedAirLateral;
+ }
+
+ public void setMaxSpeedAirLateral(float value)
+ {
+ maxSpeedAirLateral = value;
+ }
+
+ public float getMaxSpeedAirVertical()
+ {
+ return maxSpeedAirVertical;
+ }
+
+ public void setMaxSpeedAirVertical(float value)
+ {
+ maxSpeedAirVertical = value;
+ }
+
+ public double getDragAir()
+ {
+ return dragAir;
+ }
+
+ public void setDragAir(double value)
+ {
+ dragAir = value;
+ }
}
@@ -11,7 +11,15 @@
// Referenced classes of package net.minecraft.src:
// EntityLiving, InventoryPlayer, FoodStats, PlayerCapabilities,
// ContainerPlayer, World, ChunkCoordinates, DataWatcher,
@@ -447,7 +451,16 @@
@@ -142,6 +146,7 @@
clearItemInUse();
} else
{
+ itemInUse.getItem().onUsingItemTick(itemInUse,this,itemInUseCount);
if(itemInUseCount <= 25 && itemInUseCount % 4 == 0)
{
func_35208_b(itemstack, 5);
@@ -447,7 +452,16 @@
public void dropCurrentItem()
{
@@ -29,8 +37,8 @@
}
public void dropPlayerItem(ItemStack itemstack)
@@ -493,6 +506,8 @@
worldObj.entityJoinedWorld(entityitem);
@@ -493,6 +507,8 @@
worldObj.spawnEntityInWorld(entityitem);
}
+ /* FORGE: This isnt called anymore
@@ -38,7 +46,7 @@
public float getCurrentPlayerStrVsBlock(Block block)
{
float f = inventory.getStrVsBlock(block);
@@ -521,6 +536,45 @@
@@ -521,6 +537,45 @@
return f1;
}
@@ -84,35 +92,33 @@
public boolean canHarvestBlock(Block block)
{
return inventory.canHarvestBlock(block);
@@ -718,7 +772,26 @@
}
@@ -719,6 +774,25 @@
protected void damageEntity(DamageSource damagesource, int i)
- {
+ {
+ boolean doRegularComputation = true;
+ int initialDamage = i;
+
+ for (ItemStack stack : inventory.armorInventory) {
+ if (stack != null && stack.getItem() instanceof ISpecialArmor) {
+ ISpecialArmor armor = (ISpecialArmor) stack.getItem();
+
+ ArmorProperties props = armor.getProperties(this, initialDamage, i);
+ i = i - props.damageRemove;
+ doRegularComputation = doRegularComputation
+ && props.allowRegularComputation;
+ }
+ }
+
+ if (!doRegularComputation) {
+ super.damageEntity(damagesource, i);
+ return;
+ }
+
if(!damagesource.unblockable() && func_35180_G())
{
+ boolean doRegularComputation = true;
+ int initialDamage = i;
+
+ for (ItemStack stack : inventory.armorInventory) {
+ if (stack != null && stack.getItem() instanceof ISpecialArmor) {
+ ISpecialArmor armor = (ISpecialArmor) stack.getItem();
+
+ ArmorProperties props = armor.getProperties(this, initialDamage, i);
+ i = i - props.damageRemove;
+ doRegularComputation = doRegularComputation
+ && props.allowRegularComputation;
+ }
+ }
+
+ if (!doRegularComputation) {
+ super.damageEntity(damagesource, i);
+ return;
+ }
+
if(!damagesource.isUnblockable() && isBlocking())
{
i = 1 + i >> 1;
@@ -770,7 +843,9 @@
@@ -770,7 +844,9 @@
public void destroyCurrentEquippedItem()
{
@@ -122,7 +128,7 @@
}
public double getYOffset()
@@ -896,6 +971,10 @@
@@ -896,6 +972,10 @@
public EnumStatus sleepInBedAt(int i, int j, int k)
{
@@ -47,7 +47,7 @@
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer)
{
return itemstack;
@@ -266,6 +285,29 @@
@@ -266,6 +285,34 @@
return maxDamage > 0 && !hasSubtypes;
}
@@ -73,11 +73,16 @@
+ EntityPlayer player) {
+ return false;
+ }
+
+ /* FORGE: Called each tick while using an item.
+ */
+ public void onUsingItemTick(ItemStack ist, EntityPlayer player, int count) {
+ }
+
public boolean hitEntity(ItemStack itemstack, EntityLiving entityliving, EntityLiving entityliving1)
{
return false;
@@ -414,6 +456,26 @@
@@ -414,6 +461,26 @@
return 0;
}
@@ -19,6 +19,6 @@
+ return customBucket;
+ }
+
if(!entityplayer.func_35200_c(i, j, k))
if(!entityplayer.canPlayerEdit(i, j, k))
{
return itemstack;
@@ -12,8 +12,8 @@
public boolean onItemUse(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l)
{
- if(!entityplayer.func_35200_c(i, j, k))
+ if(entityplayer!=null && !entityplayer.func_35200_c(i, j, k))
- if(!entityplayer.canPlayerEdit(i, j, k))
+ if(entityplayer!=null && !entityplayer.canPlayerEdit(i, j, k))
{
return false;
}
@@ -0,0 +1,77 @@
--- ../src_base/minecraft_server/net/minecraft/src/RailLogic.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/RailLogic.java 0000-00-00 00:00:00.000000000 -0000
@@ -10,7 +10,7 @@
// Referenced classes of package net.minecraft.src:
// World, Block, BlockRail, ChunkPosition
-class RailLogic
+public class RailLogic
{
private World worldObj;
@@ -20,6 +20,7 @@
private final boolean isPoweredRail;
private List connectedTracks;
final BlockRail rail; /* synthetic field */
+ private final boolean canMakeSlopes;
public RailLogic(BlockRail blockrail, World world, int i, int j, int k)
{
@@ -31,15 +32,12 @@
trackY = j;
trackZ = k;
int l = world.getBlockId(i, j, k);
- int i1 = world.getBlockMetadata(i, j, k);
- if(BlockRail.isPoweredBlockRail((BlockRail)Block.blocksList[l]))
- {
- isPoweredRail = true;
- i1 &= -9;
- } else
- {
- isPoweredRail = false;
- }
+
+ BlockRail target = (BlockRail)Block.blocksList[l];
+ int i1 = target.getBasicRailMetadata(world, null, i, j, k);
+ isPoweredRail = !target.isFlexibleRail(world, i, j, k);
+ canMakeSlopes = target.canMakeSlopes(world, i, j, k);
+
setConnections(i1);
}
@@ -249,7 +247,7 @@
byte0 = 9;
}
}
- if(byte0 == 0)
+ if(byte0 == 0 && canMakeSlopes)
{
if(BlockRail.isRailBlockAt(worldObj, trackX, trackY + 1, trackZ - 1))
{
@@ -260,7 +258,7 @@
byte0 = 5;
}
}
- if(byte0 == 1)
+ if(byte0 == 1 && canMakeSlopes)
{
if(BlockRail.isRailBlockAt(worldObj, trackX + 1, trackY + 1, trackZ))
{
@@ -381,7 +379,7 @@
}
}
}
- if(byte0 == 0)
+ if(byte0 == 0 && canMakeSlopes)
{
if(BlockRail.isRailBlockAt(worldObj, trackX, trackY + 1, trackZ - 1))
{
@@ -392,7 +390,7 @@
byte0 = 5;
}
}
- if(byte0 == 1)
+ if(byte0 == 1 && canMakeSlopes)
{
if(BlockRail.isRailBlockAt(worldObj, trackX + 1, trackY + 1, trackZ))
{
@@ -154,7 +154,7 @@
- return false;
- } else
- {
- return block.blockMaterial.getIsOpaque() && block.isACube();
- return block.blockMaterial.getIsOpaque() && block.renderAsNormalBlock();
- }
+ if(block == null) return false;
+ return block.isBlockNormalCube(this,i,j,k);
+1 -1
View File
@@ -8,6 +8,6 @@ set PATH=E:\cygwin\bin;%PATH%
cd forge
sh package.sh 1.2.2
sh package.sh 1.2.5
pause