Inital update to 1.4.6, Version bumped to 6.5

This commit is contained in:
LexManos 2012-12-17 22:33:28 -08:00
parent 420e04f1b9
commit a2f4a0d2dd
70 changed files with 761 additions and 744 deletions

View File

@ -251,7 +251,8 @@ public class ForgeHooksClient
float scale = (renderType == 1 || renderType == 19 || renderType == 12 || renderType == 2 ? 0.5F : 0.25F); float scale = (renderType == 1 || renderType == 19 || renderType == 12 || renderType == 2 ? 0.5F : 0.25F);
GL11.glScalef(scale, scale, scale); GL11.glScalef(scale, scale, scale);
int size = entity.item.stackSize;
int size = item.stackSize;
int count = (size > 20 ? 4 : (size > 5 ? 3 : (size > 1 ? 2 : 1))); int count = (size > 20 ? 4 : (size > 5 ? 3 : (size > 1 ? 2 : 1)));
for(int j = 0; j < count; j++) for(int j = 0; j < count; j++)

View File

@ -1,12 +1,11 @@
package net.minecraftforge.client; package net.minecraftforge.client;
import cpw.mods.fml.common.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.multiplayer.WorldClient; import net.minecraft.client.multiplayer.WorldClient;
//To-Do: Rename this to something more generic.. IRenderHandler? public abstract class IRenderHandler
public abstract class SkyProvider
{ {
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public abstract void render(float partialTicks, WorldClient world, Minecraft mc); public abstract void render(float partialTicks, WorldClient world, Minecraft mc);

View File

@ -1,83 +1,84 @@
#Main Forge Access Transformer configuration file #Main Forge Access Transformer configuration file
# RailLogic.getNAdjacentTracks # RailLogic.getNAdjacentTracks
public all.a(Lall;)I #MD:RailLogic/func_73650_a public als.a(Lals;)I #MD:RailLogic/func_73650_a
# Tessellator # Tessellator
public-f bao.a #FD:Tessellator/field_78398_a #instance public-f baz.a #FD:Tessellator/field_78398_a #instance
public bao.u #FD:Tessellator/field_78409_u #drawMode public baz.u #FD:Tessellator/field_78409_u #drawMode
public bao.v #FD:Tessellator/field_78408_v #xOffset public baz.v #FD:Tessellator/field_78408_v #xOffset
public bao.w #FD:Tessellator/field_78407_w #yOffset public baz.w #FD:Tessellator/field_78407_w #yOffset
public bao.x #FD:Tessellator/field_78417_x #zOffset public baz.x #FD:Tessellator/field_78417_x #zOffset
public bao.z #FD:Tessellator/field_78415_z #isDrawing public baz.z #FD:Tessellator/field_78415_z #isDrawing
# ItemPickaxe # ItemPickaxe
public ut.<init>(ILul;)V #MD:ItemPickaxe/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor public uy.<init>(ILuq;)V #MD:ItemPickaxe/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
public+f ut.c #FD:ItemPickaxe/field_77867_c #blocksEffectiveAgainst public+f uy.c #FD:ItemPickaxe/field_77867_c #blocksEffectiveAgainst
# ItemAxe # ItemAxe
public ui.<init>(ILul;)V #MD:ItemAxe/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor public un.<init>(ILuq;)V #MD:ItemAxe/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
public+f ui.c #FD:ItemAxe/field_77868_c #blocksEffectiveAgainst public+f un.c #FD:ItemAxe/field_77868_c #blocksEffectiveAgainst
# ItemSpade # ItemSpade
public ve.<init>(ILul;)V #MD:ItemSpade/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor public vj.<init>(ILuq;)V #MD:ItemSpade/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
public+f ve.c #FD:ItemSpade/field_77866_c #blocksEffectiveAgainst public+f vj.c #FD:ItemSpade/field_77866_c #blocksEffectiveAgainst
# ItemTool # ItemTool
public tu.a #FD:ItemTool/field_77864_a #efficiencyOnProperMaterial public tw.a #FD:ItemTool/field_77864_a #efficiencyOnProperMaterial
public tu.cl #FD:ItemTool/field_77865_bY #damageVsEntity public tw.co #FD:ItemTool/field_77865_bY #damageVsEntity
# EntityEnderman # EntityEnderman
public qd.d #FD:EntityEnderman/field_70827_d #carriableBlocks public qd.d #FD:EntityEnderman/field_70827_d #carriableBlocks
# RenderGlobal # RenderGlobal
public bak.h #FD:RenderGlobal/field_72769_h #theWorld public bav.h #FD:RenderGlobal/field_72769_h #theWorld
public bak.i #FD:RenderGlobal/field_72770_i #renderEngine public bav.i #FD:RenderGlobal/field_72770_i #renderEngine
public bak.q #FD:RenderGlobal/field_72777_q #mc public bav.q #FD:RenderGlobal/field_72777_q #mc
public bak.r #FD:RenderGlobal/field_72776_r #globalRenderBlocks public bav.r #FD:RenderGlobal/field_72776_r #globalRenderBlocks
public bak.E #FD:RenderGlobal/field_72738_E #damagedBlocks public bav.E #FD:RenderGlobal/field_72738_E #damagedBlocks
# SoundManager # SoundManager
public bek.a #FD:SoundManager/field_77381_a #sndSystem public bev.a #FD:SoundManager/field_77381_a #sndSystem
public bek.b #FD:SoundManager/field_77379_b #soundPoolSounds public bev.b #FD:SoundManager/field_77379_b #soundPoolSounds
public bek.c #FD:SoundManager/field_77380_c #soundPoolStreaming public bev.c #FD:SoundManager/field_77380_c #soundPoolStreaming
public bek.d #FD:SoundManager/field_77377_d #soundPoolMusic public bev.d #FD:SoundManager/field_77377_d #soundPoolMusic
# EntityMinecart # EntityMinecart
protected py.* #FD:EntityMinecart/* # All private -> protected protected py.* #FD:EntityMinecart/* # All private -> protected
public py.h()Z #MD:EntityMinecart/func_70490_h #isMinecartPowered public py.h()Z #MD:EntityMinecart/func_70490_h #isMinecartPowered
# Block # Block
public amj.<init>(ILagb;)V #MD:Block/<init>(ILnet/minecraft/src/Material;) #Constructor public amq.<init>(ILagi;)V #MD:Block/<init>(ILnet/minecraft/src/Material;) #Constructor
public amj.<init>(IILagb;)V #MD:Block/<init>(IILnet/minecraft/src/Material;) #Constructor public amq.<init>(IILagi;)V #MD:Block/<init>(IILnet/minecraft/src/Material;) #Constructor
public amj.r()Lamj; #MD:Block/func_71912_p #setRequiresSelfNotify public amq.r()Lamq; #MD:Block/func_71912_p #setRequiresSelfNotify
public amj.a(Lamn;)Lamj; #MD:Block/func_71884_a #setStepSound public amq.a(Lamu;)Lamq; #MD:Block/func_71884_a #setStepSound
public amj.b(F)Lamj; #MD:Block/func_71894_b #setResistance public amq.b(F)Lamq; #MD:Block/func_71894_b #setResistance
public amj.c(F)Lamj; #MD:Block/func_71848_c #setHardness public amq.c(F)Lamq; #MD:Block/func_71848_c #setHardness
public amj.h(I)Lamj; #MD:Block/func_71868_h #setLightOpacity public amq.h(I)Lamq; #MD:Block/func_71868_h #setLightOpacity
public amj.a(F)Lamj; #MD:Block/func_71900_a #setLightValue public amq.a(F)Lamq; #MD:Block/func_71900_a #setLightValue
public amj.s()Lamj; #MD:Block/func_71875_q #setBlockUnbreakable public amq.s()Lamq; #MD:Block/func_71875_q #setBlockUnbreakable
public amj.b(Z)Lamj; #MD:Block/func_71907_b #setTickRandomly public amq.b(Z)Lamq; #MD:Block/func_71907_b #setTickRandomly
public amj.a(FFFFFF)V #MD:Block/func_71905_a #setBlockBounds public amq.a(FFFFFF)V #MD:Block/func_71905_a #setBlockBounds
# NetServerHandler # NetServerHandler
public iv.g #FD:NetServerHandler/field_72572_g #playerInAirTime public iv.g #FD:NetServerHandler/field_72572_g #playerInAirTime
# TileEntity # TileEntity
public anq.k #FD:TileEntity/field_70331_k #worldObj public any.k #FD:TileEntity/field_70331_k #worldObj
# BlockLeavesBase # BlockLeavesBase
public amr.c #FD:BlockLeavesBase/field_72131_c #graphicsLevel public amy.c #FD:BlockLeavesBase/field_72131_c #graphicsLevel
# Item # Item
public uk.<init>(I)V #MD:Item/<init>(I) #Constructor public up.<init>(I)V #MD:Item/<init>(I) #Constructor
public uk.e(I)Luk; #MD:Item/func_77656_e #setMaxDamage public up.e(I)Lup; #MD:Item/func_77656_e #setMaxDamage
public-f uk.f(Lum;)I #MD:Item/func_77650_f #getIconIndex public-f up.h(Lur;)I #MD:Item/func_77650_f #getIconIndex
# RailLogic # RailLogic
public all #CL:RailLogic public als #CL:RailLogic
public all.a(Lall;)I #MD:RailLogic/func_73650_a #getNAdjacentTiles public als.a(Lals;)I #MD:RailLogic/func_73650_a #getNAdjacentTiles
# EntityPlayer # EntityPlayer
public qx.a(Lpx;)V #MD:EntityPlayer/func_71012_a #joinEntityItemWithWorld public qx.a(Lpx;)V #MD:EntityPlayer/func_71012_a #joinEntityItemWithWorld
public qx.i()V #MD:EntityPlayer/func_71053_j #closeScreen public qx.i()V #MD:EntityPlayer/func_71053_j #closeScreen
# EntityPlayerMP # EntityPlayerMP
public ayk.a(Lpx;)V #MD:EntityClientPlayerMP/func_71012_a #joinEntityItemWithWorld public ays.a(Lpx;)V #MD:EntityClientPlayerMP/func_71012_a #joinEntityItemWithWorld
# World Gen Chests Related # World Gen Chests Related
public in.T #FD:WorldServer/field_73069_S #bonusChestContent public kw.* #FD:WeightedRandomChestContent/* #all
public aci.a #FD:StructureMineshaftPieces/field_78818_a #mineshaftChestContents public in.S #FD:WorldServer/field_73069_S #bonusChestContent
public adm.i #FD:ComponentScatteredFeatureDesertPyramid/field_74941_i #itemsToGenerateInTemple public acp.a #FD:StructureMineshaftPieces/field_78818_a #mineshaftChestContents
public adn.l #FD:ComponentScatteredFeatureJunglePyramid/field_74943_l #junglePyramidsChestContents public adt.i #FD:ComponentScatteredFeatureDesertPyramid/field_74941_i #itemsToGenerateInTemple
public adn.m #FD:ComponentScatteredFeatureJunglePyramid/field_74944_m #junglePyramidsDispenserContents public adu.l #FD:ComponentScatteredFeatureJunglePyramid/field_74943_l #junglePyramidsChestContents
public adx.a #FD:ComponentStrongholdChestCorridor/field_75003_a #strongholdChestContents public adu.m #FD:ComponentScatteredFeatureJunglePyramid/field_74944_m #junglePyramidsDispenserContents
public aeb.b #FD:ComponentStrongholdLibrary/field_75007_b #strongholdLibraryChestContents public aee.a #FD:ComponentStrongholdChestCorridor/field_75003_a #strongholdChestContents
public aeg.c #FD:ComponentStrongholdRoomCrossing/field_75014_c #strongholdCorridorChestContents public aei.b #FD:ComponentStrongholdLibrary/field_75007_b #strongholdLibraryChestContents
public afh.a #FD:ComponentVillageHouse2/field_74918_a #villageBlacksmithChestContents public aen.c #FD:ComponentStrongholdRoomCrossing/field_75014_c #strongholdCorridorChestContents
public afo.a #FD:ComponentVillageHouse2/field_74918_a #villageBlacksmithChestContents
# AnvilChunkLoader.chunkSaveLocation # AnvilChunkLoader.chunkSaveLocation
public aaf.d #FD:AnvilChunkLoader/field_75825_d public aam.d #FD:AnvilChunkLoader/field_75825_d
# ChunkProviderServer.currentChunkLoader # ChunkProviderServer.currentChunkLoader
public im.e #FD:ChunkProviderServer/field_73247_e public im.e #FD:ChunkProviderServer/field_73247_e
# PlayerManager # PlayerManager
@ -85,27 +86,29 @@ public ik.a(IIZ)Lil; #MD:PlayerManager/func_72690_a #getOrCreateChunkWatcher
# PlayerInstance # PlayerInstance
public il #CL:PlayerInstance public il #CL:PlayerInstance
# World # World
public-f xv.C #FD:World/field_72982_D #villageCollectionObj public-f yc.B #FD:World/field_72982_D #villageCollectionObj
public xv.H #FD:World/field_72993_I #activeChunkSet public yc.G #FD:World/field_72993_I #activeChunkSet
# EntityLiving # EntityLiving
public md.bc #FD:EntityLiving/field_70728_aV #experienceValue public md.bd #FD:EntityLiving/field_70728_aV #experienceValue
# GuiFlatPresets # GuiFlatPresets
public atz.a(Ljava/lang/String;ILyr;Ljava/util/List;[Lace;)V #MD:GuiFlatPresets/func_82294_a public aug.a(Ljava/lang/String;ILyy;Ljava/util/List;[Lacl;)V #MD:GuiFlatPresets/func_82294_a
public atz.a(Ljava/lang/String;ILyr;[Lace;)V #MD:GuiFlatPresets/func_82297_a public aug.a(Ljava/lang/String;ILyy;[Lacl;)V #MD:GuiFlatPresets/func_82297_a
# BiomeGenBase # BiomeGenBase
public yr.*() #MD:BiomeGenBase/* #Everything protected->public public yy.*() #MD:BiomeGenBase/* #Everything protected->public
# MapGenVillage # MapGenVillage
public-f aev.e #FD:MapGenVillage/field_75055_e #villageSpawnBiomes public-f afc.e #FD:MapGenVillage/field_75055_e #villageSpawnBiomes
# ShapedRecipes # ShapedRecipes
public+f wk.d #FD:ShapedRecipes/field_77574_d #recipeItems public+f wq.d #FD:ShapedRecipes/field_77574_d #recipeItems
public+f wk.b #FD:ShapedRecipes/field_77576_b #recipeWidth public+f wq.b #FD:ShapedRecipes/field_77576_b #recipeWidth
public+f wk.c #FD:ShapedRecipes/field_77577_c #recipeHeight public+f wq.c #FD:ShapedRecipes/field_77577_c #recipeHeight
# ShapelessRecipes # ShapelessRecipes
public wl.b #FD:ShapelessRecipes/field_77579_b #recipeItems public wr.b #FD:ShapelessRecipes/field_77579_b #recipeItems
# GuiContainer # GuiContainer
protected auy.a(Lsq;)V #MD:GuiContainer/func_74192_a #drawSlotInventory protected avf.a(Lsr;)V #MD:GuiContainer/func_74192_a #drawSlotInventory
# BlockButton # BlockButton
protected aiy.o(Lxv;III)V #MD:BlockButton/func_82535_o #checkActivation protected ajf.o(Lyc;III)V #MD:BlockButton/func_82535_o #checkActivation
protected-f aiy.a #FD:BlockButton/field_82537_a #sensible protected-f ajf.a #FD:BlockButton/field_82537_a #sensible
# BiomeDecorator # BiomeDecorator
public yv.* #FD:EntityMinecart/* # All private -> protected public py.* #FD:EntityMinecart/* # All private -> protected
# CreativeTabs
public-f tj.a #FD:CreativeTabs/field_78032_a # creativeTabArray non-final

View File

@ -2,6 +2,7 @@ package net.minecraftforge.common;
import java.util.*; import java.util.*;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.util.WeightedRandomChestContent;
import net.minecraft.world.WorldServer; import net.minecraft.world.WorldServer;
@ -42,6 +43,15 @@ public class ChestGenHooks
addInfo(STRONGHOLD_CROSSING, ComponentStrongholdRoomCrossing.strongholdRoomCrossingChestContents, 1, 5); addInfo(STRONGHOLD_CROSSING, ComponentStrongholdRoomCrossing.strongholdRoomCrossingChestContents, 1, 5);
addInfo(VILLAGE_BLACKSMITH, ComponentVillageHouse2.villageBlacksmithChestContents, 3, 9); addInfo(VILLAGE_BLACKSMITH, ComponentVillageHouse2.villageBlacksmithChestContents, 3, 9);
addInfo(BONUS_CHEST, WorldServer.bonusChestContent, 10, 10); addInfo(BONUS_CHEST, WorldServer.bonusChestContent, 10, 10);
ItemStack book = new ItemStack(Item.field_92053_bW, 1, 0);
WeightedRandomChestContent tmp = new WeightedRandomChestContent(book, 1, 1, 1);
getInfo(MINESHAFT_CORRIDOR ).addItem(tmp);
getInfo(PYRAMID_DESERT_CHEST).addItem(tmp);
getInfo(PYRAMID_JUNGLE_CHEST).addItem(tmp);
getInfo(STRONGHOLD_CORRIDOR ).addItem(tmp);
getInfo(STRONGHOLD_LIBRARY ).addItem(new WeightedRandomChestContent(book, 1, 5, 2));
getInfo(STRONGHOLD_CROSSING ).addItem(tmp);
} }
private static void addInfo(String category, WeightedRandomChestContent[] items, int min, int max) private static void addInfo(String category, WeightedRandomChestContent[] items, int min, int max)
@ -103,7 +113,7 @@ public class ChestGenHooks
} }
//shortcut functions, See the non-static versions below //shortcut functions, See the non-static versions below
public static WeightedRandomChestContent[] getItems(String category){ return getInfo(category).getItems(); } public static WeightedRandomChestContent[] getItems(String category, Random rnd){ return getInfo(category).getItems(rnd); }
public static int getCount(String category, Random rand){ return getInfo(category).getCount(rand); } public static int getCount(String category, Random rand){ return getInfo(category).getCount(rand); }
public static void addItem(String category, WeightedRandomChestContent item){ getInfo(category).addItem(item); } public static void addItem(String category, WeightedRandomChestContent item){ getInfo(category).addItem(item); }
public static void removeItem(String category, ItemStack item){ getInfo(category).removeItem(item); } public static void removeItem(String category, ItemStack item){ getInfo(category).removeItem(item); }
@ -151,7 +161,7 @@ public class ChestGenHooks
while(itr.hasNext()) while(itr.hasNext())
{ {
WeightedRandomChestContent cont = itr.next(); WeightedRandomChestContent cont = itr.next();
if (item.isItemEqual(cont.itemStack) || (item.getItemDamage() == -1 && item.itemID == cont.itemStack.itemID)) if (item.isItemEqual(cont.theItemId) || (item.getItemDamage() == -1 && item.itemID == cont.theItemId.itemID))
{ {
itr.remove(); itr.remove();
} }
@ -163,9 +173,25 @@ public class ChestGenHooks
* *
* @return The random objects * @return The random objects
*/ */
public WeightedRandomChestContent[] getItems() public WeightedRandomChestContent[] getItems(Random rnd)
{ {
return contents.toArray(new WeightedRandomChestContent[contents.size()]); ArrayList<WeightedRandomChestContent> ret = new ArrayList<WeightedRandomChestContent>();
for (WeightedRandomChestContent orig : contents)
{
Item item = orig.theItemId.getItem();
if (item != null)
{
WeightedRandomChestContent n = item.getChestGenBase(this, rnd, orig);
if (n != null)
{
ret.add(n);
}
}
}
return ret.toArray(new WeightedRandomChestContent[ret.size()]);
} }
/** /**

View File

@ -32,7 +32,7 @@ public class ForgeInternalHandler
Entity entity = event.entity; Entity entity = event.entity;
if (entity.getClass().equals(EntityItem.class)) if (entity.getClass().equals(EntityItem.class))
{ {
ItemStack stack = ((EntityItem)entity).item; ItemStack stack = ((EntityItem)entity).getDataWatcher().getWatchableObjectItemStack(10);
if (stack == null) if (stack == null)
{ {

View File

@ -10,9 +10,9 @@ public class ForgeVersion
//This number is incremented every time we remove deprecated code/major API changes, never reset //This number is incremented every time we remove deprecated code/major API changes, never reset
public static final int majorVersion = 6; public static final int majorVersion = 6;
//This number is incremented every minecraft release, never reset //This number is incremented every minecraft release, never reset
public static final int minorVersion = 4; public static final int minorVersion = 5;
//This number is incremented every time a interface changes or new major feature is added, and reset every Minecraft version //This number is incremented every time a interface changes or new major feature is added, and reset every Minecraft version
public static final int revisionVersion = 2; public static final int revisionVersion = 0;
//This number is incremented every time Jenkins builds Forge, and never reset. Should always be 0 in the repo code. //This number is incremented every time Jenkins builds Forge, and never reset. Should always be 0 in the repo code.
public static final int buildVersion = 0; public static final int buildVersion = 0;

View File

@ -1,8 +1,7 @@
package net.minecraftforge.event.terraingen; package net.minecraftforge.event.terraingen;
import cpw.mods.fml.common.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.world.biome.BiomeDecorator; import net.minecraft.world.biome.BiomeDecorator;
import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.BiomeGenBase;
import net.minecraftforge.event.*; import net.minecraftforge.event.*;
@ -44,7 +43,7 @@ public class BiomeEvent extends Event
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public static class BiomeColor extends BiomeEvent public static class BiomeColor extends BiomeEvent
{ {
public final int originalColor; public final int originalColor;
public int newColor; public int newColor;

View File

@ -1,9 +1,10 @@
--- ../src_base/minecraft/net/minecraft/block/Block.java --- ../src_base/minecraft/net/minecraft/block/Block.java
+++ ../src_work/minecraft/net/minecraft/block/Block.java +++ ../src_work/minecraft/net/minecraft/block/Block.java
@@ -2,13 +2,16 @@ @@ -2,13 +2,17 @@
import cpw.mods.fml.common.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
+
+import java.util.ArrayList; +import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.Random;
@ -17,7 +18,7 @@
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.item.EntityXPOrb; import net.minecraft.entity.item.EntityXPOrb;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@@ -24,17 +27,27 @@ @@ -24,17 +28,27 @@
import net.minecraft.item.ItemSlab; import net.minecraft.item.ItemSlab;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.stats.StatList; import net.minecraft.stats.StatList;
@ -45,7 +46,7 @@
/** /**
* used as foreach item, if item.tab = current tab, display it on the screen * used as foreach item, if item.tab = current tab, display it on the screen
*/ */
@@ -319,6 +332,7 @@ @@ -319,6 +333,7 @@
lightOpacity[par1] = this.isOpaqueCube() ? 255 : 0; lightOpacity[par1] = this.isOpaqueCube() ? 255 : 0;
canBlockGrass[par1] = !par2Material.getCanBlockGrass(); canBlockGrass[par1] = !par2Material.getCanBlockGrass();
} }
@ -53,7 +54,7 @@
} }
/** /**
@@ -457,9 +471,10 @@ @@ -457,9 +472,10 @@
return this.needsRandomTick; return this.needsRandomTick;
} }
@ -65,7 +66,7 @@
} }
/** /**
@@ -482,7 +497,7 @@ @@ -482,7 +498,7 @@
*/ */
public float getBlockBrightness(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) public float getBlockBrightness(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)
{ {
@ -74,7 +75,7 @@
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@@ -492,7 +507,7 @@ @@ -492,7 +508,7 @@
*/ */
public int getMixedBrightnessForBlock(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) public int getMixedBrightnessForBlock(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)
{ {
@ -83,7 +84,7 @@
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@@ -637,7 +652,13 @@ @@ -637,7 +653,13 @@
/** /**
* ejects contained items into the world, and notifies neighbours of an update, as appropriate * ejects contained items into the world, and notifies neighbours of an update, as appropriate
*/ */
@ -98,7 +99,7 @@
/** /**
* Returns the quantity of items to drop on block destruction. * Returns the quantity of items to drop on block destruction.
@@ -661,8 +682,7 @@ @@ -661,8 +683,7 @@
*/ */
public float getPlayerRelativeBlockHardness(EntityPlayer par1EntityPlayer, World par2World, int par3, int par4, int par5) public float getPlayerRelativeBlockHardness(EntityPlayer par1EntityPlayer, World par2World, int par3, int par4, int par5)
{ {
@ -108,7 +109,7 @@
} }
/** /**
@@ -680,18 +700,13 @@ @@ -680,18 +701,13 @@
{ {
if (!par1World.isRemote) if (!par1World.isRemote)
{ {
@ -131,7 +132,7 @@
} }
} }
} }
@@ -1076,7 +1091,7 @@ @@ -1076,7 +1092,7 @@
par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1);
par2EntityPlayer.addExhaustion(0.025F); par2EntityPlayer.addExhaustion(0.025F);
@ -140,7 +141,7 @@
{ {
ItemStack var8 = this.createStackedBlock(par6); ItemStack var8 = this.createStackedBlock(par6);
@@ -1353,4 +1368,849 @@ @@ -1356,4 +1372,849 @@
canBlockGrass[0] = true; canBlockGrass[0] = true;
StatList.initBreakableStats(); StatList.initBreakableStats();
} }

View File

@ -2,15 +2,15 @@
+++ ../src_work/minecraft/net/minecraft/block/BlockCrops.java +++ ../src_work/minecraft/net/minecraft/block/BlockCrops.java
@@ -2,11 +2,14 @@ @@ -2,11 +2,14 @@
import cpw.mods.fml.common.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
+
+import java.util.ArrayList; +import java.util.ArrayList;
import java.util.Random; import java.util.Random;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.world.World; import net.minecraft.world.World;
+
+import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.common.ForgeDirection;
public class BlockCrops extends BlockFlower public class BlockCrops extends BlockFlower

View File

@ -1,7 +1,7 @@
--- ../src_base/minecraft/net/minecraft/block/BlockFarmland.java --- ../src_base/minecraft/net/minecraft/block/BlockFarmland.java
+++ ../src_work/minecraft/net/minecraft/block/BlockFarmland.java +++ ../src_work/minecraft/net/minecraft/block/BlockFarmland.java
@@ -7,6 +7,9 @@ @@ -8,6 +8,9 @@
import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
+ +
@ -10,7 +10,7 @@
public class BlockFarmland extends Block public class BlockFarmland extends Block
{ {
@@ -101,7 +104,8 @@ @@ -107,7 +110,8 @@
{ {
int var8 = par1World.getBlockId(var6, par3 + 1, var7); int var8 = par1World.getBlockId(var6, par3 + 1, var7);

View File

@ -10,7 +10,7 @@
public class BlockLadder extends Block public class BlockLadder extends Block
{ {
@@ -101,29 +104,32 @@ @@ -104,29 +107,32 @@
*/ */
public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
{ {
@ -48,7 +48,7 @@
{ {
var10 = 5; var10 = 5;
} }
@@ -140,22 +146,22 @@ @@ -143,22 +149,22 @@
int var6 = par1World.getBlockMetadata(par2, par3, par4); int var6 = par1World.getBlockMetadata(par2, par3, par4);
boolean var7 = false; boolean var7 = false;
@ -75,7 +75,7 @@
{ {
var7 = true; var7 = true;
} }
@@ -176,4 +182,10 @@ @@ -179,4 +185,10 @@
{ {
return 1; return 1;
} }

View File

@ -1,14 +1,15 @@
--- ../src_base/minecraft/net/minecraft/block/BlockLeaves.java --- ../src_base/minecraft/net/minecraft/block/BlockLeaves.java
+++ ../src_work/minecraft/net/minecraft/block/BlockLeaves.java +++ ../src_work/minecraft/net/minecraft/block/BlockLeaves.java
@@ -2,6 +2,7 @@ @@ -2,6 +2,8 @@
import cpw.mods.fml.common.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
+
+import java.util.ArrayList; +import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.Random;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
@@ -14,7 +15,9 @@ @@ -14,7 +16,9 @@
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -19,7 +20,7 @@
{ {
/** /**
* The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can
@@ -107,10 +110,9 @@ @@ -107,10 +111,9 @@
{ {
int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11);
@ -32,7 +33,7 @@
} }
} }
} }
@@ -156,11 +158,13 @@ @@ -156,11 +159,13 @@
{ {
var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14);
@ -48,7 +49,7 @@
{ {
this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2;
} }
@@ -303,15 +307,7 @@ @@ -303,15 +308,7 @@
*/ */
public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6)
{ {
@ -65,9 +66,9 @@
} }
/** /**
@@ -362,4 +358,30 @@ @@ -371,4 +368,30 @@
par3List.add(new ItemStack(par1, 1, 2)); {
par3List.add(new ItemStack(par1, 1, 3)); return new ItemStack(this.blockID, 1, par1 & 3);
} }
+ +
+ @Override + @Override

View File

@ -2,15 +2,15 @@
+++ ../src_work/minecraft/net/minecraft/block/BlockNetherStalk.java +++ ../src_work/minecraft/net/minecraft/block/BlockNetherStalk.java
@@ -2,11 +2,14 @@ @@ -2,11 +2,14 @@
import cpw.mods.fml.common.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
+
+import java.util.ArrayList; +import java.util.ArrayList;
import java.util.Random; import java.util.Random;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.world.World; import net.minecraft.world.World;
+
+import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.common.ForgeDirection;
public class BlockNetherStalk extends BlockFlower public class BlockNetherStalk extends BlockFlower

View File

@ -1,14 +1,15 @@
--- ../src_base/minecraft/net/minecraft/block/BlockStem.java --- ../src_base/minecraft/net/minecraft/block/BlockStem.java
+++ ../src_work/minecraft/net/minecraft/block/BlockStem.java +++ ../src_work/minecraft/net/minecraft/block/BlockStem.java
@@ -2,6 +2,7 @@ @@ -2,6 +2,8 @@
import cpw.mods.fml.common.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
+
+import java.util.ArrayList; +import java.util.ArrayList;
import java.util.Random; import java.util.Random;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item; import net.minecraft.item.Item;
@@ -9,6 +10,8 @@ @@ -9,6 +11,8 @@
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -17,7 +18,7 @@
public class BlockStem extends BlockFlower public class BlockStem extends BlockFlower
{ {
/** Defines if it is a Melon or a Pumpkin that the stem is producing. */ /** Defines if it is a Melon or a Pumpkin that the stem is producing. */
@@ -101,7 +104,8 @@ @@ -101,7 +105,8 @@
int var11 = par1World.getBlockId(var9, par3 - 1, var10); int var11 = par1World.getBlockId(var9, par3 - 1, var10);
@ -27,7 +28,7 @@
{ {
par1World.setBlockWithNotify(var9, par3, var10, this.fruitType.blockID); par1World.setBlockWithNotify(var9, par3, var10, this.fruitType.blockID);
} }
@@ -137,11 +141,11 @@ @@ -137,11 +142,11 @@
int var19 = par1World.getBlockId(var17, par3 - 1, var18); int var19 = par1World.getBlockId(var17, par3 - 1, var18);
float var20 = 0.0F; float var20 = 0.0F;
@ -41,7 +42,7 @@
{ {
var20 = 3.0F; var20 = 3.0F;
} }
@@ -241,29 +245,22 @@ @@ -241,29 +246,22 @@
public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7)
{ {
super.dropBlockAsItemWithChance(par1World, par2, par3, par4, par5, par6, par7); super.dropBlockAsItemWithChance(par1World, par2, par3, par4, par5, par6, par7);

View File

@ -1,14 +1,15 @@
--- ../src_base/minecraft/net/minecraft/block/BlockTallGrass.java --- ../src_base/minecraft/net/minecraft/block/BlockTallGrass.java
+++ ../src_work/minecraft/net/minecraft/block/BlockTallGrass.java +++ ../src_work/minecraft/net/minecraft/block/BlockTallGrass.java
@@ -2,6 +2,7 @@ @@ -2,6 +2,8 @@
import cpw.mods.fml.common.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
+
+import java.util.ArrayList; +import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.Random;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
@@ -15,7 +16,10 @@ @@ -15,7 +17,10 @@
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -20,7 +21,7 @@
{ {
protected BlockTallGrass(int par1, int par2) protected BlockTallGrass(int par1, int par2)
{ {
@@ -37,7 +41,7 @@ @@ -37,7 +42,7 @@
*/ */
public int idDropped(int par1, Random par2Random, int par3) public int idDropped(int par1, Random par2Random, int par3)
{ {
@ -29,7 +30,7 @@
} }
/** /**
@@ -54,15 +58,7 @@ @@ -54,15 +59,7 @@
*/ */
public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6)
{ {
@ -46,7 +47,7 @@
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@@ -115,4 +111,35 @@ @@ -115,4 +112,35 @@
par3List.add(new ItemStack(par1, 1, var4)); par3List.add(new ItemStack(par1, 1, var4));
} }
} }

View File

@ -1,14 +1,15 @@
--- ../src_base/minecraft/net/minecraft/block/BlockVine.java --- ../src_base/minecraft/net/minecraft/block/BlockVine.java
+++ ../src_work/minecraft/net/minecraft/block/BlockVine.java +++ ../src_work/minecraft/net/minecraft/block/BlockVine.java
@@ -2,6 +2,7 @@ @@ -2,6 +2,8 @@
import cpw.mods.fml.common.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
+
+import java.util.ArrayList; +import java.util.ArrayList;
import java.util.Random; import java.util.Random;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
@@ -15,7 +16,9 @@ @@ -15,7 +17,9 @@
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -19,7 +20,7 @@
{ {
public BlockVine(int par1) public BlockVine(int par1)
{ {
@@ -436,14 +439,26 @@ @@ -436,14 +440,26 @@
*/ */
public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6)
{ {

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/client/Minecraft.java --- ../src_base/minecraft/net/minecraft/client/Minecraft.java
+++ ../src_work/minecraft/net/minecraft/client/Minecraft.java +++ ../src_work/minecraft/net/minecraft/client/Minecraft.java
@@ -130,6 +130,10 @@ @@ -128,6 +128,10 @@
import com.google.common.collect.MapDifference; import com.google.common.collect.MapDifference;
@ -11,7 +11,7 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public abstract class Minecraft implements Runnable, IPlayerUsage public abstract class Minecraft implements Runnable, IPlayerUsage
{ {
@@ -1249,7 +1253,7 @@ @@ -1253,7 +1257,7 @@
if (this.thePlayer.canCurrentToolHarvestBlock(var3, var4, var5)) if (this.thePlayer.canCurrentToolHarvestBlock(var3, var4, var5))
{ {
@ -20,7 +20,7 @@
this.thePlayer.swingItem(); this.thePlayer.swingItem();
} }
} }
@@ -1315,7 +1319,8 @@ @@ -1319,7 +1323,8 @@
{ {
int var8 = var3 != null ? var3.stackSize : 0; int var8 = var3 != null ? var3.stackSize : 0;
@ -30,7 +30,7 @@
{ {
var2 = false; var2 = false;
this.thePlayer.swingItem(); this.thePlayer.swingItem();
@@ -1341,7 +1346,8 @@ @@ -1345,7 +1350,8 @@
{ {
ItemStack var9 = this.thePlayer.inventory.getCurrentItem(); ItemStack var9 = this.thePlayer.inventory.getCurrentItem();
@ -40,7 +40,7 @@
{ {
this.entityRenderer.itemRenderer.func_78445_c(); this.entityRenderer.itemRenderer.func_78445_c();
} }
@@ -2037,6 +2043,18 @@ @@ -2041,6 +2047,18 @@
if (this.theIntegratedServer != null) if (this.theIntegratedServer != null)
{ {
this.theIntegratedServer.initiateShutdown(); this.theIntegratedServer.initiateShutdown();
@ -59,7 +59,7 @@
} }
this.theIntegratedServer = null; this.theIntegratedServer = null;
@@ -2346,95 +2364,12 @@ @@ -2350,95 +2368,12 @@
if (this.objectMouseOver != null) if (this.objectMouseOver != null)
{ {
boolean var1 = this.thePlayer.capabilities.isCreativeMode; boolean var1 = this.thePlayer.capabilities.isCreativeMode;

View File

@ -7,10 +7,10 @@
+import net.minecraftforge.client.event.sound.*; +import net.minecraftforge.client.event.sound.*;
+import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.MinecraftForge;
+import static net.minecraftforge.client.event.sound.SoundEvent.*; +import static net.minecraftforge.client.event.sound.SoundEvent.*;
import cpw.mods.fml.common.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import java.io.File; import java.io.File;
@@ -50,9 +54,11 @@ @@ -53,9 +57,11 @@
private Random rand = new Random(); private Random rand = new Random();
private int ticksBeforeMusic; private int ticksBeforeMusic;
@ -23,7 +23,7 @@
} }
/** /**
@@ -67,6 +73,8 @@ @@ -70,6 +76,8 @@
{ {
this.tryToSetLibraryAndCodecs(); this.tryToSetLibraryAndCodecs();
} }
@ -32,7 +32,7 @@
} }
/** /**
@@ -86,6 +94,8 @@ @@ -89,6 +97,8 @@
SoundSystemConfig.setCodec("ogg", CodecJOrbis.class); SoundSystemConfig.setCodec("ogg", CodecJOrbis.class);
SoundSystemConfig.setCodec("mus", CodecMus.class); SoundSystemConfig.setCodec("mus", CodecMus.class);
SoundSystemConfig.setCodec("wav", CodecWav.class); SoundSystemConfig.setCodec("wav", CodecWav.class);
@ -41,7 +41,7 @@
sndSystem = new SoundSystem(); sndSystem = new SoundSystem();
this.options.soundVolume = var1; this.options.soundVolume = var1;
this.options.musicVolume = var2; this.options.musicVolume = var2;
@@ -174,10 +184,12 @@ @@ -177,10 +187,12 @@
} }
SoundPoolEntry var1 = this.soundPoolMusic.getRandomSound(); SoundPoolEntry var1 = this.soundPoolMusic.getRandomSound();
@ -55,7 +55,7 @@
sndSystem.backgroundMusic("BgMusic", var1.soundUrl, var1.soundName, false); sndSystem.backgroundMusic("BgMusic", var1.soundUrl, var1.soundName, false);
sndSystem.setVolume("BgMusic", this.options.musicVolume); sndSystem.setVolume("BgMusic", this.options.musicVolume);
sndSystem.play("BgMusic"); sndSystem.play("BgMusic");
@@ -244,6 +256,7 @@ @@ -247,6 +259,7 @@
if (par1Str != null) if (par1Str != null)
{ {
SoundPoolEntry var6 = this.soundPoolStreaming.getRandomSoundFromSoundPool(par1Str); SoundPoolEntry var6 = this.soundPoolStreaming.getRandomSoundFromSoundPool(par1Str);
@ -63,7 +63,7 @@
if (var6 != null) if (var6 != null)
{ {
@@ -255,6 +268,7 @@ @@ -258,6 +271,7 @@
float var7 = 16.0F; float var7 = 16.0F;
sndSystem.newStreamingSource(true, var5, var6.soundUrl, var6.soundName, false, par2, par3, par4, 2, var7 * 4.0F); sndSystem.newStreamingSource(true, var5, var6.soundUrl, var6.soundName, false, par2, par3, par4, 2, var7 * 4.0F);
sndSystem.setVolume(var5, 0.5F * this.options.soundVolume); sndSystem.setVolume(var5, 0.5F * this.options.soundVolume);
@ -71,7 +71,7 @@
sndSystem.play(var5); sndSystem.play(var5);
} }
} }
@@ -434,6 +448,7 @@ @@ -437,6 +451,7 @@
if (loaded && this.options.soundVolume != 0.0F) if (loaded && this.options.soundVolume != 0.0F)
{ {
SoundPoolEntry var7 = this.soundPoolSounds.getRandomSoundFromSoundPool(par1Str); SoundPoolEntry var7 = this.soundPoolSounds.getRandomSoundFromSoundPool(par1Str);
@ -79,7 +79,7 @@
if (var7 != null && par5 > 0.0F) if (var7 != null && par5 > 0.0F)
{ {
@@ -455,6 +470,7 @@ @@ -458,6 +473,7 @@
} }
sndSystem.setVolume(var8, par5 * this.options.soundVolume); sndSystem.setVolume(var8, par5 * this.options.soundVolume);
@ -87,7 +87,7 @@
sndSystem.play(var8); sndSystem.play(var8);
} }
} }
@@ -469,6 +485,7 @@ @@ -472,6 +488,7 @@
if (loaded && this.options.soundVolume != 0.0F) if (loaded && this.options.soundVolume != 0.0F)
{ {
SoundPoolEntry var4 = this.soundPoolSounds.getRandomSoundFromSoundPool(par1Str); SoundPoolEntry var4 = this.soundPoolSounds.getRandomSoundFromSoundPool(par1Str);
@ -95,7 +95,7 @@
if (var4 != null) if (var4 != null)
{ {
@@ -484,6 +501,7 @@ @@ -487,6 +504,7 @@
par2 *= 0.25F; par2 *= 0.25F;
sndSystem.setPitch(var5, par3); sndSystem.setPitch(var5, par3);
sndSystem.setVolume(var5, par2 * this.options.soundVolume); sndSystem.setVolume(var5, par2 * this.options.soundVolume);

View File

@ -1,7 +1,7 @@
--- ../src_base/minecraft/net/minecraft/client/audio/SoundPool.java --- ../src_base/minecraft/net/minecraft/client/audio/SoundPool.java
+++ ../src_work/minecraft/net/minecraft/client/audio/SoundPool.java +++ ../src_work/minecraft/net/minecraft/client/audio/SoundPool.java
@@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import java.io.File; import java.io.File;
import java.net.MalformedURLException; import java.net.MalformedURLException;
+import java.net.URL; +import java.net.URL;

View File

@ -9,7 +9,7 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class GuiIngame extends Gui public class GuiIngame extends Gui
{ {
@@ -157,7 +159,7 @@ @@ -159,7 +161,7 @@
var47 = var7 - 39; var47 = var7 - 39;
var22 = var47 - 10; var22 = var47 - 10;

View File

@ -1,15 +1,16 @@
--- ../src_base/minecraft/net/minecraft/client/gui/achievement/GuiAchievements.java --- ../src_base/minecraft/net/minecraft/client/gui/achievement/GuiAchievements.java
+++ ../src_work/minecraft/net/minecraft/client/gui/achievement/GuiAchievements.java +++ ../src_work/minecraft/net/minecraft/client/gui/achievement/GuiAchievements.java
@@ -2,6 +2,8 @@ @@ -2,6 +2,9 @@
import cpw.mods.fml.common.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
+
+import java.util.LinkedList; +import java.util.LinkedList;
+import java.util.List; +import java.util.List;
import java.util.Random; import java.util.Random;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
@@ -19,6 +21,8 @@ @@ -19,6 +22,8 @@
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12; import org.lwjgl.opengl.GL12;
@ -18,7 +19,7 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class GuiAchievements extends GuiScreen public class GuiAchievements extends GuiScreen
{ {
@@ -55,6 +59,10 @@ @@ -55,6 +60,10 @@
/** Whether the Mouse Button is down or not */ /** Whether the Mouse Button is down or not */
private int isMouseButtonDown = 0; private int isMouseButtonDown = 0;
private StatFileWriter statFileWriter; private StatFileWriter statFileWriter;
@ -29,7 +30,7 @@
public GuiAchievements(StatFileWriter par1StatFileWriter) public GuiAchievements(StatFileWriter par1StatFileWriter)
{ {
@@ -63,6 +71,14 @@ @@ -63,6 +72,14 @@
short var3 = 141; short var3 = 141;
this.field_74117_m = this.guiMapX = this.field_74124_q = (double)(AchievementList.openInventory.displayColumn * 24 - var2 / 2 - 12); this.field_74117_m = this.guiMapX = this.field_74124_q = (double)(AchievementList.openInventory.displayColumn * 24 - var2 / 2 - 12);
this.field_74115_n = this.guiMapY = this.field_74123_r = (double)(AchievementList.openInventory.displayRow * 24 - var3 / 2); this.field_74115_n = this.guiMapY = this.field_74123_r = (double)(AchievementList.openInventory.displayRow * 24 - var3 / 2);
@ -44,7 +45,7 @@
} }
/** /**
@@ -72,6 +88,7 @@ @@ -72,6 +89,7 @@
{ {
this.controlList.clear(); this.controlList.clear();
this.controlList.add(new GuiSmallButton(1, this.width / 2 + 24, this.height / 2 + 74, 80, 20, StatCollector.translateToLocal("gui.done"))); this.controlList.add(new GuiSmallButton(1, this.width / 2 + 24, this.height / 2 + 74, 80, 20, StatCollector.translateToLocal("gui.done")));
@ -52,7 +53,7 @@
} }
/** /**
@@ -83,6 +100,16 @@ @@ -83,6 +101,16 @@
{ {
this.mc.displayGuiScreen((GuiScreen)null); this.mc.displayGuiScreen((GuiScreen)null);
this.mc.setIngameFocus(); this.mc.setIngameFocus();
@ -69,7 +70,7 @@
} }
super.actionPerformed(par1GuiButton); super.actionPerformed(par1GuiButton);
@@ -307,11 +334,12 @@ @@ -307,11 +335,12 @@
int var27; int var27;
int var30; int var30;
@ -87,7 +88,7 @@
{ {
var24 = var33.displayColumn * 24 - var4 + 11 + var10; var24 = var33.displayColumn * 24 - var4 + 11 + var10;
var25 = var33.displayRow * 24 - var5 + 11 + var11; var25 = var33.displayRow * 24 - var5 + 11 + var11;
@@ -345,9 +373,9 @@ @@ -345,9 +374,9 @@
int var42; int var42;
int var41; int var41;

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/client/gui/inventory/GuiContainer.java --- ../src_base/minecraft/net/minecraft/client/gui/inventory/GuiContainer.java
+++ ../src_work/minecraft/net/minecraft/client/gui/inventory/GuiContainer.java +++ ../src_work/minecraft/net/minecraft/client/gui/inventory/GuiContainer.java
@@ -318,7 +318,7 @@ @@ -331,7 +331,7 @@
if (var6 >= 0) if (var6 >= 0)
{ {
GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_LIGHTING);

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java --- ../src_base/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java
+++ ../src_work/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java +++ ../src_work/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java
@@ -49,6 +49,8 @@ @@ -50,6 +50,8 @@
private Slot field_74235_v = null; private Slot field_74235_v = null;
private boolean field_74234_w = false; private boolean field_74234_w = false;
private CreativeCrafting field_82324_x; private CreativeCrafting field_82324_x;
@ -9,7 +9,7 @@
public GuiContainerCreative(EntityPlayer par1EntityPlayer) public GuiContainerCreative(EntityPlayer par1EntityPlayer)
{ {
@@ -223,6 +225,13 @@ @@ -224,6 +226,13 @@
this.func_74227_b(CreativeTabs.creativeTabArray[var1]); this.func_74227_b(CreativeTabs.creativeTabArray[var1]);
this.field_82324_x = new CreativeCrafting(this.mc); this.field_82324_x = new CreativeCrafting(this.mc);
this.mc.thePlayer.inventoryContainer.addCraftingToCrafters(this.field_82324_x); this.mc.thePlayer.inventoryContainer.addCraftingToCrafters(this.field_82324_x);
@ -23,7 +23,7 @@
} }
else else
{ {
@@ -343,7 +352,7 @@ @@ -358,7 +367,7 @@
{ {
CreativeTabs var3 = CreativeTabs.creativeTabArray[selectedTabIndex]; CreativeTabs var3 = CreativeTabs.creativeTabArray[selectedTabIndex];
@ -32,7 +32,7 @@
{ {
this.fontRenderer.drawString(var3.getTranslatedTabLabel(), 8, 6, 4210752); this.fontRenderer.drawString(var3.getTranslatedTabLabel(), 8, 6, 4210752);
} }
@@ -365,7 +374,7 @@ @@ -380,7 +389,7 @@
{ {
CreativeTabs var9 = var6[var8]; CreativeTabs var9 = var6[var8];
@ -41,7 +41,7 @@
{ {
this.func_74227_b(var9); this.func_74227_b(var9);
return; return;
@@ -381,11 +390,17 @@ @@ -396,11 +405,17 @@
*/ */
private boolean needsScrollBars() private boolean needsScrollBars()
{ {
@ -59,7 +59,7 @@
int var2 = selectedTabIndex; int var2 = selectedTabIndex;
selectedTabIndex = par1CreativeTabs.getTabIndex(); selectedTabIndex = par1CreativeTabs.getTabIndex();
ContainerCreative var3 = (ContainerCreative)this.inventorySlots; ContainerCreative var3 = (ContainerCreative)this.inventorySlots;
@@ -555,21 +570,42 @@ @@ -570,21 +585,42 @@
super.drawScreen(par1, par2, par3); super.drawScreen(par1, par2, par3);
CreativeTabs[] var11 = CreativeTabs.creativeTabArray; CreativeTabs[] var11 = CreativeTabs.creativeTabArray;
@ -107,7 +107,7 @@
} }
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
@@ -590,14 +626,32 @@ @@ -605,14 +641,32 @@
int var8 = var7.length; int var8 = var7.length;
int var9; int var9;
@ -142,7 +142,7 @@
} }
} }
@@ -615,6 +669,14 @@ @@ -630,6 +684,14 @@
this.drawTexturedModalRect(var11, var8 + (int)((float)(var9 - var8 - 17) * this.currentScroll), 232 + (this.needsScrollBars() ? 0 : 12), 0, 12, 15); this.drawTexturedModalRect(var11, var8 + (int)((float)(var9 - var8 - 17) * this.currentScroll), 232 + (this.needsScrollBars() ? 0 : 12), 0, 12, 15);
} }
@ -157,7 +157,7 @@
this.renderCreativeTab(var5); this.renderCreativeTab(var5);
if (var5 == CreativeTabs.tabInventory) if (var5 == CreativeTabs.tabInventory)
@@ -625,6 +687,15 @@ @@ -640,6 +702,15 @@
protected boolean func_74232_a(CreativeTabs par1CreativeTabs, int par2, int par3) protected boolean func_74232_a(CreativeTabs par1CreativeTabs, int par2, int par3)
{ {
@ -173,7 +173,7 @@
int var4 = par1CreativeTabs.getTabColumn(); int var4 = par1CreativeTabs.getTabColumn();
int var5 = 28 * var4; int var5 = 28 * var4;
byte var6 = 0; byte var6 = 0;
@@ -739,7 +810,7 @@ @@ -754,7 +825,7 @@
var8 += 8 + (var3 ? 1 : -1); var8 += 8 + (var3 ? 1 : -1);
GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL12.GL_RESCALE_NORMAL); GL11.glEnable(GL12.GL_RESCALE_NORMAL);
@ -182,7 +182,7 @@
itemRenderer.renderItemAndEffectIntoGUI(this.fontRenderer, this.mc.renderEngine, var10, var7, var8); itemRenderer.renderItemAndEffectIntoGUI(this.fontRenderer, this.mc.renderEngine, var10, var7, var8);
itemRenderer.renderItemOverlayIntoGUI(this.fontRenderer, this.mc.renderEngine, var10, var7, var8); itemRenderer.renderItemOverlayIntoGUI(this.fontRenderer, this.mc.renderEngine, var10, var7, var8);
GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_LIGHTING);
@@ -761,6 +832,15 @@ @@ -776,6 +847,15 @@
{ {
this.mc.displayGuiScreen(new GuiStats(this, this.mc.statFileWriter)); this.mc.displayGuiScreen(new GuiStats(this, this.mc.statFileWriter));
} }

View File

@ -1,7 +1,7 @@
--- ../src_base/minecraft/net/minecraft/client/model/ModelBox.java --- ../src_base/minecraft/net/minecraft/client/model/ModelBox.java
+++ ../src_work/minecraft/net/minecraft/client/model/ModelBox.java +++ ../src_work/minecraft/net/minecraft/client/model/ModelBox.java
@@ -4,7 +4,6 @@ @@ -4,7 +4,6 @@
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.Tessellator;
-@SideOnly(Side.CLIENT) -@SideOnly(Side.CLIENT)

View File

@ -1,7 +1,7 @@
--- ../src_base/minecraft/net/minecraft/client/model/PositionTextureVertex.java --- ../src_base/minecraft/net/minecraft/client/model/PositionTextureVertex.java
+++ ../src_work/minecraft/net/minecraft/client/model/PositionTextureVertex.java +++ ../src_work/minecraft/net/minecraft/client/model/PositionTextureVertex.java
@@ -4,7 +4,6 @@ @@ -4,7 +4,6 @@
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
-@SideOnly(Side.CLIENT) -@SideOnly(Side.CLIENT)

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/client/multiplayer/NetClientHandler.java --- ../src_base/minecraft/net/minecraft/client/multiplayer/NetClientHandler.java
+++ ../src_work/minecraft/net/minecraft/client/multiplayer/NetClientHandler.java +++ ../src_work/minecraft/net/minecraft/client/multiplayer/NetClientHandler.java
@@ -159,6 +159,11 @@ @@ -160,6 +160,11 @@
import net.minecraft.world.storage.MapStorage; import net.minecraft.world.storage.MapStorage;
import org.lwjgl.input.Keyboard; import org.lwjgl.input.Keyboard;
@ -12,7 +12,7 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class NetClientHandler extends NetHandler public class NetClientHandler extends NetHandler
{ {
@@ -746,7 +751,7 @@ @@ -741,7 +746,7 @@
public void handleKickDisconnect(Packet255KickDisconnect par1Packet255KickDisconnect) public void handleKickDisconnect(Packet255KickDisconnect par1Packet255KickDisconnect)
{ {
@ -21,7 +21,7 @@
this.disconnected = true; this.disconnected = true;
this.mc.loadWorld((WorldClient)null); this.mc.loadWorld((WorldClient)null);
this.mc.displayGuiScreen(new GuiDisconnected("disconnect.disconnected", "disconnect.genericReason", new Object[] {par1Packet255KickDisconnect.reason})); this.mc.displayGuiScreen(new GuiDisconnected("disconnect.disconnected", "disconnect.genericReason", new Object[] {par1Packet255KickDisconnect.reason}));
@@ -811,7 +816,11 @@ @@ -806,7 +811,11 @@
public void handleChat(Packet3Chat par1Packet3Chat) public void handleChat(Packet3Chat par1Packet3Chat)
{ {
FMLNetworkHandler.onConnectionClosed(this.netManager, this.getPlayer()); FMLNetworkHandler.onConnectionClosed(this.netManager, this.getPlayer());
@ -34,7 +34,7 @@
} }
public void handleAnimation(Packet18Animation par1Packet18Animation) public void handleAnimation(Packet18Animation par1Packet18Animation)
@@ -1193,6 +1202,10 @@ @@ -1188,6 +1197,10 @@
{ {
var2.readFromNBT(par1Packet132TileEntityData.customParam1); var2.readFromNBT(par1Packet132TileEntityData.customParam1);
} }

View File

@ -33,20 +33,21 @@
if (var8) if (var8)
{ {
@@ -334,6 +344,12 @@ @@ -345,6 +355,13 @@
float var11 = (float)par8Vec3.zCoord - (float)par6; }
boolean var12 = false; }
int var13 = par2World.getBlockId(par4, par5, par6);
+ if (par3ItemStack != null && + if (par3ItemStack != null &&
+ par3ItemStack.getItem() != null && + par3ItemStack.getItem() != null &&
+ par3ItemStack.getItem().onItemUseFirst(par3ItemStack, par1EntityPlayer, par2World, par4, par5, par6, par7, var9, var10, var11)) + par3ItemStack.getItem().onItemUseFirst(par3ItemStack, par1EntityPlayer, par2World, par4, par5, par6, par7, var9, var10, var11))
+ { + {
+ return true; + return true;
+ } + }
+
if (var13 > 0 && Block.blocksList[var13].onBlockActivated(par2World, par4, par5, par6, par1EntityPlayer, par7, var9, var10, var11)) if (!var12 && par3ItemStack != null && par3ItemStack.getItem() instanceof ItemBlock)
{ {
@@ -371,7 +387,15 @@ ItemBlock var16 = (ItemBlock)par3ItemStack.getItem();
@@ -376,7 +393,15 @@
} }
else else
{ {
@ -63,7 +64,7 @@
} }
} }
@@ -393,9 +417,10 @@ @@ -398,9 +423,10 @@
{ {
par1EntityPlayer.inventory.mainInventory[par1EntityPlayer.inventory.currentItem] = var5; par1EntityPlayer.inventory.mainInventory[par1EntityPlayer.inventory.currentItem] = var5;

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/client/multiplayer/WorldClient.java --- ../src_base/minecraft/net/minecraft/client/multiplayer/WorldClient.java
+++ ../src_work/minecraft/net/minecraft/client/multiplayer/WorldClient.java +++ ../src_work/minecraft/net/minecraft/client/multiplayer/WorldClient.java
@@ -25,6 +25,9 @@ @@ -27,6 +27,9 @@
import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.storage.SaveHandlerMP; import net.minecraft.world.storage.SaveHandlerMP;
@ -10,7 +10,7 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class WorldClient extends World public class WorldClient extends World
{ {
@@ -55,8 +58,11 @@ @@ -57,8 +60,11 @@
super(new SaveHandlerMP(), "MpServer", WorldProvider.getProviderForDimension(par3), par2WorldSettings, par5Profiler); super(new SaveHandlerMP(), "MpServer", WorldProvider.getProviderForDimension(par3), par2WorldSettings, par5Profiler);
this.sendQueue = par1NetClientHandler; this.sendQueue = par1NetClientHandler;
this.difficultySetting = par4; this.difficultySetting = par4;
@ -23,7 +23,7 @@
} }
/** /**
@@ -288,6 +294,12 @@ @@ -290,6 +296,12 @@
*/ */
protected void updateWeather() protected void updateWeather()
{ {
@ -35,4 +35,4 @@
+ { + {
if (!this.provider.hasNoSky) if (!this.provider.hasNoSky)
{ {
if (this.lastLightningBolt > 0) this.prevRainingStrength = this.rainingStrength;

View File

@ -1,8 +1,8 @@
--- ../src_base/minecraft/net/minecraft/client/particle/EffectRenderer.java --- ../src_base/minecraft/net/minecraft/client/particle/EffectRenderer.java
+++ ../src_work/minecraft/net/minecraft/client/particle/EffectRenderer.java +++ ../src_work/minecraft/net/minecraft/client/particle/EffectRenderer.java
@@ -3,7 +3,9 @@ @@ -3,16 +3,25 @@
import cpw.mods.fml.common.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import java.util.ArrayList; import java.util.ArrayList;
+import java.util.Iterator; +import java.util.Iterator;
import java.util.List; import java.util.List;
@ -10,14 +10,12 @@
import java.util.Random; import java.util.Random;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.client.renderer.ActiveRenderInfo; import net.minecraft.client.renderer.ActiveRenderInfo;
@@ -12,10 +14,17 @@ import net.minecraft.client.renderer.RenderEngine;
import net.minecraft.crash.CrashReport; import net.minecraft.client.renderer.Tessellator;
import net.minecraft.crash.CrashReportCategory;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
+import net.minecraft.item.Item; +import net.minecraft.item.Item;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
+import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.ReportedException;
import net.minecraft.world.World; import net.minecraft.world.World;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
+ +
@ -28,7 +26,7 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class EffectRenderer public class EffectRenderer
@@ -28,6 +37,8 @@ @@ -25,6 +34,8 @@
/** RNG. */ /** RNG. */
private Random rand = new Random(); private Random rand = new Random();
@ -37,27 +35,23 @@
public EffectRenderer(World par1World, RenderEngine par2RenderEngine) public EffectRenderer(World par1World, RenderEngine par2RenderEngine)
{ {
if (par1World != null) if (par1World != null)
@@ -66,9 +77,13 @@ @@ -59,12 +70,27 @@
for (int var3 = 0; var3 < this.fxLayers[var1].size(); ++var3) for (int var2 = 0; var2 < this.fxLayers[var1].size(); ++var2)
{ {
var2 = (EntityFX)this.fxLayers[var1].get(var3); EntityFX var3 = (EntityFX)this.fxLayers[var1].get(var2);
- var2.onUpdate(); - var3.onUpdate();
- -
- if (var2.isDead) - if (var3.isDead)
+ +
+ if (var2 != null) + if (var3 != null)
+ { + {
+ var2.onUpdate(); + var3.onUpdate();
+ } + }
+ +
+ if (var2 == null || var2.isDead) + if (var3 == null || var3.isDead)
{ {
this.fxLayers[var1].remove(var3--); this.fxLayers[var1].remove(var2--);
} }
@@ -81,6 +96,17 @@
var5.addCrashSectionCallable("Last ticked particle", new CallableLastTickedParticle(this, var2));
var5.addCrashSection("Texture index", Integer.valueOf(var1));
throw new ReportedException(var4);
+ } + }
+ } + }
+ +
@ -72,7 +66,7 @@
} }
} }
} }
@@ -130,6 +156,7 @@ @@ -115,6 +141,7 @@
for (int var11 = 0; var11 < this.fxLayers[var8].size(); ++var11) for (int var11 = 0; var11 < this.fxLayers[var8].size(); ++var11)
{ {
EntityFX var12 = (EntityFX)this.fxLayers[var8].get(var11); EntityFX var12 = (EntityFX)this.fxLayers[var8].get(var11);
@ -80,9 +74,9 @@
var10.setBrightness(var12.getBrightnessForRender(par2)); var10.setBrightness(var12.getBrightnessForRender(par2));
var12.renderParticle(var10, par2, var3, var7, var4, var5, var6); var12.renderParticle(var10, par2, var3, var7, var4, var5, var6);
} }
@@ -137,6 +164,27 @@ @@ -123,6 +150,27 @@
var10.draw();
GL11.glDisable(GL11.GL_BLEND); GL11.glDisable(GL11.GL_BLEND);
GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
} }
+ } + }
+ +
@ -108,7 +102,7 @@
} }
} }
@@ -156,6 +204,7 @@ @@ -142,6 +190,7 @@
for (int var11 = 0; var11 < this.fxLayers[var9].size(); ++var11) for (int var11 = 0; var11 < this.fxLayers[var9].size(); ++var11)
{ {
EntityFX var12 = (EntityFX)this.fxLayers[var9].get(var11); EntityFX var12 = (EntityFX)this.fxLayers[var9].get(var11);
@ -116,7 +110,7 @@
var10.setBrightness(var12.getBrightnessForRender(par2)); var10.setBrightness(var12.getBrightnessForRender(par2));
var12.renderParticle(var10, par2, var4, var8, var5, var6, var7); var12.renderParticle(var10, par2, var4, var8, var5, var6, var7);
} }
@@ -170,13 +219,15 @@ @@ -156,13 +205,15 @@
{ {
this.fxLayers[var2].clear(); this.fxLayers[var2].clear();
} }
@ -135,7 +129,7 @@
byte var7 = 4; byte var7 = 4;
for (int var8 = 0; var8 < var7; ++var8) for (int var8 = 0; var8 < var7; ++var8)
@@ -189,7 +240,7 @@ @@ -175,7 +226,7 @@
double var13 = (double)par2 + ((double)var9 + 0.5D) / (double)var7; double var13 = (double)par2 + ((double)var9 + 0.5D) / (double)var7;
double var15 = (double)par3 + ((double)var10 + 0.5D) / (double)var7; double var15 = (double)par3 + ((double)var10 + 0.5D) / (double)var7;
int var17 = this.rand.nextInt(6); int var17 = this.rand.nextInt(6);
@ -144,7 +138,7 @@
} }
} }
} }
@@ -241,12 +292,60 @@ @@ -227,12 +278,60 @@
var8 = (double)par1 + var6.getBlockBoundsMaxX() + (double)var7; var8 = (double)par1 + var6.getBlockBoundsMaxX() + (double)var7;
} }

View File

@ -56,7 +56,7 @@
GL11.glRotatef(var2.prevRotationYaw + (var2.rotationYaw - var2.prevRotationYaw) * par1 + 180.0F, 0.0F, -1.0F, 0.0F); GL11.glRotatef(var2.prevRotationYaw + (var2.rotationYaw - var2.prevRotationYaw) * par1 + 180.0F, 0.0F, -1.0F, 0.0F);
GL11.glRotatef(var2.prevRotationPitch + (var2.rotationPitch - var2.prevRotationPitch) * par1, -1.0F, 0.0F, 0.0F); GL11.glRotatef(var2.prevRotationPitch + (var2.rotationPitch - var2.prevRotationPitch) * par1, -1.0F, 0.0F, 0.0F);
} }
@@ -1136,8 +1140,11 @@ @@ -1139,8 +1143,11 @@
var17 = (EntityPlayer)var4; var17 = (EntityPlayer)var4;
GL11.glDisable(GL11.GL_ALPHA_TEST); GL11.glDisable(GL11.GL_ALPHA_TEST);
this.mc.mcProfiler.endStartSection("outline"); this.mc.mcProfiler.endStartSection("outline");
@ -70,7 +70,7 @@
GL11.glEnable(GL11.GL_ALPHA_TEST); GL11.glEnable(GL11.GL_ALPHA_TEST);
} }
} }
@@ -1201,15 +1208,18 @@ @@ -1204,15 +1211,18 @@
var17 = (EntityPlayer)var4; var17 = (EntityPlayer)var4;
GL11.glDisable(GL11.GL_ALPHA_TEST); GL11.glDisable(GL11.GL_ALPHA_TEST);
this.mc.mcProfiler.endStartSection("outline"); this.mc.mcProfiler.endStartSection("outline");
@ -92,7 +92,7 @@
GL11.glDisable(GL11.GL_BLEND); GL11.glDisable(GL11.GL_BLEND);
this.mc.mcProfiler.endStartSection("weather"); this.mc.mcProfiler.endStartSection("weather");
this.renderRainSnow(par1); this.renderRainSnow(par1);
@@ -1219,6 +1229,9 @@ @@ -1222,6 +1232,9 @@
{ {
this.func_82829_a(var5, par1); this.func_82829_a(var5, par1);
} }

View File

@ -60,7 +60,7 @@
Tessellator var5 = Tessellator.instance; Tessellator var5 = Tessellator.instance;
int var6 = par1EntityLiving.getItemIcon(par2ItemStack, par3); int var6 = par1EntityLiving.getItemIcon(par2ItemStack, par3);
@@ -280,8 +282,9 @@ @@ -279,8 +281,9 @@
Render var24; Render var24;
RenderPlayer var26; RenderPlayer var26;
@ -72,7 +72,7 @@
GL11.glPushMatrix(); GL11.glPushMatrix();
var7 = 0.8F; var7 = 0.8F;
var20 = var3.getSwingProgress(par1); var20 = var3.getSwingProgress(par1);
@@ -347,11 +350,17 @@ @@ -346,11 +349,17 @@
var28.addVertexWithUV((double)(128 + var27), (double)(0 - var27), 0.0D, 1.0D, 0.0D); var28.addVertexWithUV((double)(128 + var27), (double)(0 - var27), 0.0D, 1.0D, 0.0D);
var28.addVertexWithUV((double)(0 - var27), (double)(0 - var27), 0.0D, 0.0D, 0.0D); var28.addVertexWithUV((double)(0 - var27), (double)(0 - var27), 0.0D, 0.0D, 0.0D);
var28.draw(); var28.draw();
@ -95,7 +95,7 @@
} }
GL11.glPopMatrix(); GL11.glPopMatrix();
@@ -454,12 +463,15 @@ @@ -453,12 +462,15 @@
if (var17.getItem().requiresMultipleRenderPasses()) if (var17.getItem().requiresMultipleRenderPasses())
{ {
this.renderItem(var3, var17, 0); this.renderItem(var3, var17, 0);

View File

@ -9,7 +9,7 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RenderBlocks public class RenderBlocks
@@ -591,9 +593,8 @@ @@ -617,9 +619,8 @@
public boolean renderBlockBed(Block par1Block, int par2, int par3, int par4) public boolean renderBlockBed(Block par1Block, int par2, int par3, int par4)
{ {
Tessellator var5 = Tessellator.instance; Tessellator var5 = Tessellator.instance;
@ -21,7 +21,7 @@
float var9 = 0.5F; float var9 = 0.5F;
float var10 = 1.0F; float var10 = 1.0F;
float var11 = 0.8F; float var11 = 0.8F;
@@ -602,6 +603,7 @@ @@ -628,6 +629,7 @@
var5.setBrightness(var25); var5.setBrightness(var25);
var5.setColorOpaque_F(var9, var9, var9); var5.setColorOpaque_F(var9, var9, var9);
int var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 0); int var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 0);
@ -29,7 +29,7 @@
int var28 = (var27 & 15) << 4; int var28 = (var27 & 15) << 4;
int var29 = var27 & 240; int var29 = var27 & 240;
double var30 = (double)((float)var28 / 256.0F); double var30 = (double)((float)var28 / 256.0F);
@@ -620,6 +622,7 @@ @@ -646,6 +648,7 @@
var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4)); var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4));
var5.setColorOpaque_F(var10, var10, var10); var5.setColorOpaque_F(var10, var10, var10);
var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 1); var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 1);
@ -37,7 +37,7 @@
var28 = (var27 & 15) << 4; var28 = (var27 & 15) << 4;
var29 = var27 & 240; var29 = var27 & 240;
var30 = (double)((float)var28 / 256.0F); var30 = (double)((float)var28 / 256.0F);
@@ -2349,7 +2352,7 @@ @@ -2384,7 +2387,7 @@
double var28; double var28;
double var30; double var30;
@ -46,7 +46,7 @@
{ {
float var36 = 0.2F; float var36 = 0.2F;
float var19 = 0.0625F; float var19 = 0.0625F;
@@ -2369,7 +2372,7 @@ @@ -2404,7 +2407,7 @@
var9 = var20; var9 = var20;
} }
@ -55,7 +55,7 @@
{ {
var5.addVertexWithUV((double)((float)par2 + var36), (double)((float)par3 + var17 + var19), (double)(par4 + 1), var11, var13); var5.addVertexWithUV((double)((float)par2 + var36), (double)((float)par3 + var17 + var19), (double)(par4 + 1), var11, var13);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 1), var11, var15); var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 1), var11, var15);
@@ -2381,7 +2384,7 @@ @@ -2416,7 +2419,7 @@
var5.addVertexWithUV((double)((float)par2 + var36), (double)((float)par3 + var17 + var19), (double)(par4 + 1), var11, var13); var5.addVertexWithUV((double)((float)par2 + var36), (double)((float)par3 + var17 + var19), (double)(par4 + 1), var11, var13);
} }
@ -64,7 +64,7 @@
{ {
var5.addVertexWithUV((double)((float)(par2 + 1) - var36), (double)((float)par3 + var17 + var19), (double)(par4 + 0), var9, var13); var5.addVertexWithUV((double)((float)(par2 + 1) - var36), (double)((float)par3 + var17 + var19), (double)(par4 + 0), var9, var13);
var5.addVertexWithUV((double)(par2 + 1 - 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var9, var15); var5.addVertexWithUV((double)(par2 + 1 - 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var9, var15);
@@ -2393,7 +2396,7 @@ @@ -2428,7 +2431,7 @@
var5.addVertexWithUV((double)((float)(par2 + 1) - var36), (double)((float)par3 + var17 + var19), (double)(par4 + 0), var9, var13); var5.addVertexWithUV((double)((float)(par2 + 1) - var36), (double)((float)par3 + var17 + var19), (double)(par4 + 0), var9, var13);
} }
@ -73,7 +73,7 @@
{ {
var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17 + var19), (double)((float)par4 + var36), var11, var13); var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17 + var19), (double)((float)par4 + var36), var11, var13);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var11, var15); var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var11, var15);
@@ -2405,7 +2408,7 @@ @@ -2440,7 +2443,7 @@
var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17 + var19), (double)((float)par4 + var36), var11, var13); var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17 + var19), (double)((float)par4 + var36), var11, var13);
} }
@ -82,7 +82,7 @@
{ {
var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17 + var19), (double)((float)(par4 + 1) - var36), var9, var13); var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17 + var19), (double)((float)(par4 + 1) - var36), var9, var13);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 0) + var19), (double)(par4 + 1 - 0), var9, var15); var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 0) + var19), (double)(par4 + 1 - 0), var9, var15);
@@ -2417,7 +2420,7 @@ @@ -2452,7 +2455,7 @@
var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17 + var19), (double)((float)(par4 + 1) - var36), var9, var13); var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17 + var19), (double)((float)(par4 + 1) - var36), var9, var13);
} }
@ -91,7 +91,7 @@
{ {
var20 = (double)par2 + 0.5D + 0.5D; var20 = (double)par2 + 0.5D + 0.5D;
var22 = (double)par2 + 0.5D - 0.5D; var22 = (double)par2 + 0.5D - 0.5D;
@@ -4613,7 +4616,7 @@ @@ -4651,7 +4654,7 @@
var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2); var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2);
this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, var27); this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, var27);
@ -100,7 +100,7 @@
{ {
this.colorRedTopLeft *= par5; this.colorRedTopLeft *= par5;
this.colorRedBottomLeft *= par5; this.colorRedBottomLeft *= par5;
@@ -4736,7 +4739,7 @@ @@ -4774,7 +4777,7 @@
var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3); var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3);
this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3)); this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3));
@ -109,7 +109,7 @@
{ {
this.colorRedTopLeft *= par5; this.colorRedTopLeft *= par5;
this.colorRedBottomLeft *= par5; this.colorRedBottomLeft *= par5;
@@ -4859,7 +4862,7 @@ @@ -4897,7 +4900,7 @@
var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4); var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4);
this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, var27); this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, var27);
@ -118,7 +118,7 @@
{ {
this.colorRedTopLeft *= par5; this.colorRedTopLeft *= par5;
this.colorRedBottomLeft *= par5; this.colorRedBottomLeft *= par5;
@@ -4982,7 +4985,7 @@ @@ -5020,7 +5023,7 @@
var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5); var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5);
this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, var27); this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, var27);
@ -127,7 +127,7 @@
{ {
this.colorRedTopLeft *= par5; this.colorRedTopLeft *= par5;
this.colorRedBottomLeft *= par5; this.colorRedBottomLeft *= par5;
@@ -5094,7 +5097,7 @@ @@ -5132,7 +5135,7 @@
var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2); var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2);
this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, var28); this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, var28);
@ -136,7 +136,7 @@
{ {
var8.setColorOpaque_F(var18 * par5, var21 * par6, var24 * par7); var8.setColorOpaque_F(var18 * par5, var21 * par6, var24 * par7);
this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, 38); this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, 38);
@@ -5110,7 +5113,7 @@ @@ -5148,7 +5151,7 @@
var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3); var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3);
this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, var28); this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, var28);
@ -145,7 +145,7 @@
{ {
var8.setColorOpaque_F(var18 * par5, var21 * par6, var24 * par7); var8.setColorOpaque_F(var18 * par5, var21 * par6, var24 * par7);
this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, 38); this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, 38);
@@ -5126,7 +5129,7 @@ @@ -5164,7 +5167,7 @@
var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4); var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4);
this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, var28); this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, var28);
@ -154,7 +154,7 @@
{ {
var8.setColorOpaque_F(var19 * par5, var22 * par6, var25 * par7); var8.setColorOpaque_F(var19 * par5, var22 * par6, var25 * par7);
this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, 38); this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, 38);
@@ -5142,7 +5145,7 @@ @@ -5180,7 +5183,7 @@
var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5); var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5);
this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, var28); this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, var28);

View File

@ -1,20 +1,20 @@
--- ../src_base/minecraft/net/minecraft/client/renderer/RenderGlobal.java --- ../src_base/minecraft/net/minecraft/client/renderer/RenderGlobal.java
+++ ../src_work/minecraft/net/minecraft/client/renderer/RenderGlobal.java +++ ../src_work/minecraft/net/minecraft/client/renderer/RenderGlobal.java
@@ -61,6 +61,8 @@ @@ -62,6 +62,8 @@
import org.lwjgl.opengl.ARBOcclusionQuery; import org.lwjgl.opengl.ARBOcclusionQuery;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
+import net.minecraftforge.client.SkyProvider; +import net.minecraftforge.client.IRenderHandler;
+ +
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RenderGlobal implements IWorldAccess public class RenderGlobal implements IWorldAccess
{ {
@@ -928,6 +930,12 @@ @@ -929,6 +931,12 @@
*/ */
public void renderSky(float par1) public void renderSky(float par1)
{ {
+ SkyProvider skyProvider = null; + IRenderHandler skyProvider = null;
+ if ((skyProvider = this.mc.theWorld.provider.getSkyProvider()) != null) + if ((skyProvider = this.mc.theWorld.provider.getSkyRenderer()) != null)
+ { + {
+ skyProvider.render(par1, this.theWorld, mc); + skyProvider.render(par1, this.theWorld, mc);
+ return; + return;
@ -22,11 +22,11 @@
if (this.mc.theWorld.provider.dimensionId == 1) if (this.mc.theWorld.provider.dimensionId == 1)
{ {
GL11.glDisable(GL11.GL_FOG); GL11.glDisable(GL11.GL_FOG);
@@ -1166,6 +1174,13 @@ @@ -1167,6 +1175,13 @@
public void renderClouds(float par1) public void renderClouds(float par1)
{ {
+ SkyProvider renderer = null; + IRenderHandler renderer = null;
+ if ((renderer = theWorld.provider.getCloudRenderer()) != null) + if ((renderer = theWorld.provider.getCloudRenderer()) != null)
+ { + {
+ renderer.render(par1, theWorld, mc); + renderer.render(par1, theWorld, mc);
@ -36,7 +36,7 @@
if (this.mc.theWorld.provider.isSurfaceWorld()) if (this.mc.theWorld.provider.isSurfaceWorld())
{ {
if (this.mc.gameSettings.fancyGraphics) if (this.mc.gameSettings.fancyGraphics)
@@ -1592,6 +1607,11 @@ @@ -1596,6 +1611,11 @@
} }
public void drawBlockDamageTexture(Tessellator par1Tessellator, EntityPlayer par2EntityPlayer, float par3) public void drawBlockDamageTexture(Tessellator par1Tessellator, EntityPlayer par2EntityPlayer, float par3)
@ -48,7 +48,7 @@
{ {
double var4 = par2EntityPlayer.lastTickPosX + (par2EntityPlayer.posX - par2EntityPlayer.lastTickPosX) * (double)par3; double var4 = par2EntityPlayer.lastTickPosX + (par2EntityPlayer.posX - par2EntityPlayer.lastTickPosX) * (double)par3;
double var6 = par2EntityPlayer.lastTickPosY + (par2EntityPlayer.posY - par2EntityPlayer.lastTickPosY) * (double)par3; double var6 = par2EntityPlayer.lastTickPosY + (par2EntityPlayer.posY - par2EntityPlayer.lastTickPosY) * (double)par3;
@@ -1863,6 +1883,7 @@ @@ -1870,6 +1890,7 @@
double var17 = this.mc.renderViewEntity.posY - par4; double var17 = this.mc.renderViewEntity.posY - par4;
double var19 = this.mc.renderViewEntity.posZ - par6; double var19 = this.mc.renderViewEntity.posZ - par6;
EntityFX var21 = null; EntityFX var21 = null;
@ -56,7 +56,7 @@
if (par1Str.equals("hugeexplosion")) if (par1Str.equals("hugeexplosion"))
{ {
@@ -1995,6 +2016,7 @@ @@ -2006,6 +2027,7 @@
else if (par1Str.equals("snowballpoof")) else if (par1Str.equals("snowballpoof"))
{ {
var21 = new EntityBreakingFX(this.theWorld, par2, par4, par6, Item.snowball); var21 = new EntityBreakingFX(this.theWorld, par2, par4, par6, Item.snowball);
@ -64,7 +64,7 @@
} }
else if (par1Str.equals("dripWater")) else if (par1Str.equals("dripWater"))
{ {
@@ -2011,6 +2033,7 @@ @@ -2022,6 +2044,7 @@
else if (par1Str.equals("slime")) else if (par1Str.equals("slime"))
{ {
var21 = new EntityBreakingFX(this.theWorld, par2, par4, par6, Item.slimeBall); var21 = new EntityBreakingFX(this.theWorld, par2, par4, par6, Item.slimeBall);
@ -72,7 +72,7 @@
} }
else if (par1Str.equals("heart")) else if (par1Str.equals("heart"))
{ {
@@ -2032,6 +2055,7 @@ @@ -2043,6 +2066,7 @@
{ {
int var27 = Integer.parseInt(par1Str.substring(par1Str.indexOf("_") + 1)); int var27 = Integer.parseInt(par1Str.substring(par1Str.indexOf("_") + 1));
var21 = new EntityBreakingFX(this.theWorld, par2, par4, par6, par8, par10, par12, Item.itemsList[var27]); var21 = new EntityBreakingFX(this.theWorld, par2, par4, par6, par8, par10, par12, Item.itemsList[var27]);
@ -80,7 +80,7 @@
} }
else if (par1Str.startsWith("tilecrack_")) else if (par1Str.startsWith("tilecrack_"))
{ {
@@ -2039,11 +2063,12 @@ @@ -2050,11 +2074,12 @@
int var25 = Integer.parseInt(var28[1]); int var25 = Integer.parseInt(var28[1]);
int var26 = Integer.parseInt(var28[2]); int var26 = Integer.parseInt(var28[2]);
var21 = (new EntityDiggingFX(this.theWorld, par2, par4, par6, par8, par10, par12, Block.blocksList[var25], 0, var26)).func_90019_g(var26); var21 = (new EntityDiggingFX(this.theWorld, par2, par4, par6, par8, par10, par12, Block.blocksList[var25], 0, var26)).func_90019_g(var26);

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/client/renderer/entity/RenderItem.java --- ../src_base/minecraft/net/minecraft/client/renderer/entity/RenderItem.java
+++ ../src_work/minecraft/net/minecraft/client/renderer/entity/RenderItem.java +++ ../src_work/minecraft/net/minecraft/client/renderer/entity/RenderItem.java
@@ -12,11 +12,14 @@ @@ -13,11 +13,14 @@
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.Item; import net.minecraft.item.Item;
@ -15,7 +15,7 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RenderItem extends Render public class RenderItem extends Render
{ {
@@ -68,13 +71,16 @@ @@ -74,13 +77,16 @@
GL11.glTranslatef((float)par2, (float)par4 + var11, (float)par6); GL11.glTranslatef((float)par2, (float)par4 + var11, (float)par6);
GL11.glEnable(GL12.GL_RESCALE_NORMAL); GL11.glEnable(GL12.GL_RESCALE_NORMAL);
@ -34,7 +34,7 @@
{ {
GL11.glRotatef(var12, 0.0F, 1.0F, 0.0F); GL11.glRotatef(var12, 0.0F, 1.0F, 0.0F);
@@ -85,9 +91,9 @@ @@ -91,9 +97,9 @@
GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
} }
@ -46,7 +46,7 @@
if (var16 == 1 || var16 == 19 || var16 == 12 || var16 == 2) if (var16 == 1 || var16 == 19 || var16 == 12 || var16 == 2)
{ {
@@ -109,7 +115,7 @@ @@ -115,7 +121,7 @@
} }
var24 = 1.0F; var24 = 1.0F;
@ -55,25 +55,24 @@
GL11.glPopMatrix(); GL11.glPopMatrix();
} }
} }
@@ -131,11 +137,12 @@ @@ -136,12 +142,12 @@
GL11.glScalef(0.5F, 0.5F, 0.5F); GL11.glScalef(0.5F, 0.5F, 0.5F);
} }
- this.loadTexture("/gui/items.png"); - this.loadTexture("/gui/items.png");
- -
- for (var15 = 0; var15 <= 1; ++var15) - for (var15 = 0; var15 <= 1; ++var15)
- {
- var16 = var10.getItem().getIconFromDamageForRenderPass(var10.getItemDamage(), var15);
+ this.loadTexture(Item.itemsList[var10.itemID].getTextureFile()); + this.loadTexture(Item.itemsList[var10.itemID].getTextureFile());
+ +
+ for (var15 = 0; var15 < var10.getItem().getRenderPasses(var10.getItemDamage()); ++var15) + for (var15 = 0; var15 <= var10.getItem().getRenderPasses(var10.getItemDamage()); ++var15)
+ { {
+ this.random.setSeed(187L); //Fixes Vanilla bug where layers would not render aligns properly. this.random.setSeed(187L);
+ var16 = var10.getItem().getIconFromItemStackForMultiplePasses(var10, var15); - var16 = var10.getItem().getIconFromDamageForRenderPass(var10.getItemDamage(), var15);
+ var16 = var10.getItem().getIconIndex(var10, var15);
var17 = 1.0F; var17 = 1.0F;
if (this.field_77024_a) if (this.field_77024_a)
@@ -165,14 +172,7 @@ @@ -173,14 +179,7 @@
var15 = var10.getIconIndex(); var15 = var10.getIconIndex();
@ -89,7 +88,7 @@
if (this.field_77024_a) if (this.field_77024_a)
{ {
@@ -241,10 +241,10 @@ @@ -348,10 +347,10 @@
float var13; float var13;
float var16; float var16;
@ -103,7 +102,7 @@
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glTranslatef((float)(par4 - 2), (float)(par5 + 3), -3.0F + this.zLevel); GL11.glTranslatef((float)(par4 - 2), (float)(par5 + 3), -3.0F + this.zLevel);
GL11.glScalef(10.0F, 10.0F, 10.0F); GL11.glScalef(10.0F, 10.0F, 10.0F);
@@ -275,11 +275,11 @@ @@ -382,11 +381,11 @@
if (Item.itemsList[var6].requiresMultipleRenderPasses()) if (Item.itemsList[var6].requiresMultipleRenderPasses())
{ {
GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_LIGHTING);
@ -116,11 +115,11 @@
+ +
+ for (var9 = 0; var9 < Item.itemsList[var6].getRenderPasses(var7); ++var9) + for (var9 = 0; var9 < Item.itemsList[var6].getRenderPasses(var7); ++var9)
+ { + {
+ var10 = Item.itemsList[var6].getIconFromItemStackForMultiplePasses(par3ItemStack, var9); + var10 = Item.itemsList[var6].getIconIndex(par3ItemStack, var9);
int var11 = Item.itemsList[var6].getColorFromItemStack(par3ItemStack, var9); int var11 = Item.itemsList[var6].getColorFromItemStack(par3ItemStack, var9);
var12 = (float)(var11 >> 16 & 255) / 255.0F; var12 = (float)(var11 >> 16 & 255) / 255.0F;
var13 = (float)(var11 >> 8 & 255) / 255.0F; var13 = (float)(var11 >> 8 & 255) / 255.0F;
@@ -299,14 +299,7 @@ @@ -406,14 +405,7 @@
{ {
GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_LIGHTING);
@ -136,7 +135,7 @@
var9 = Item.itemsList[var6].getColorFromItemStack(par3ItemStack, 0); var9 = Item.itemsList[var6].getColorFromItemStack(par3ItemStack, 0);
float var17 = (float)(var9 >> 16 & 255) / 255.0F; float var17 = (float)(var9 >> 16 & 255) / 255.0F;
@@ -333,7 +326,10 @@ @@ -440,7 +432,10 @@
{ {
if (par3ItemStack != null) if (par3ItemStack != null)
{ {

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/client/renderer/entity/RenderManager.java --- ../src_base/minecraft/net/minecraft/client/renderer/entity/RenderManager.java
+++ ../src_work/minecraft/net/minecraft/client/renderer/entity/RenderManager.java +++ ../src_work/minecraft/net/minecraft/client/renderer/entity/RenderManager.java
@@ -211,12 +211,14 @@ @@ -213,12 +213,14 @@
if (par4EntityLiving.isPlayerSleeping()) if (par4EntityLiving.isPlayerSleeping())
{ {

View File

@ -1,23 +1,14 @@
--- ../src_base/minecraft/net/minecraft/creativetab/CreativeTabs.java --- ../src_base/minecraft/net/minecraft/creativetab/CreativeTabs.java
+++ ../src_work/minecraft/net/minecraft/creativetab/CreativeTabs.java +++ ../src_work/minecraft/net/minecraft/creativetab/CreativeTabs.java
@@ -2,13 +2,15 @@ @@ -7,6 +7,7 @@
import net.minecraft.enchantment.EnchantmentData;
import cpw.mods.fml.common.Side; import net.minecraft.enchantment.EnumEnchantmentType;
import cpw.mods.fml.common.asm.SideOnly;
+import java.util.Arrays;
import java.util.List;
import net.minecraft.item.Item; import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemStack;
import net.minecraft.util.StringTranslate; import net.minecraft.util.StringTranslate;
public class CreativeTabs public class CreativeTabs
{ @@ -34,8 +35,22 @@
- public static final CreativeTabs[] creativeTabArray = new CreativeTabs[12];
+ public static CreativeTabs[] creativeTabArray = new CreativeTabs[12];
public static final CreativeTabs tabBlock = new CreativeTabBlock(0, "buildingBlocks");
public static final CreativeTabs tabDecorations = new CreativeTabDeco(1, "decorations");
public static final CreativeTabs tabRedstone = new CreativeTabRedstone(2, "redstone");
@@ -31,8 +33,22 @@
/** Whether to draw the title in the foreground of the creative GUI */ /** Whether to draw the title in the foreground of the creative GUI */
private boolean drawTitle = true; private boolean drawTitle = true;
@ -40,7 +31,7 @@
this.tabIndex = par1; this.tabIndex = par1;
this.tabLabel = par2Str; this.tabLabel = par2Str;
creativeTabArray[par1] = this; creativeTabArray[par1] = this;
@@ -119,6 +135,10 @@ @@ -122,6 +137,10 @@
*/ */
public int getTabColumn() public int getTabColumn()
{ {
@ -51,7 +42,7 @@
return this.tabIndex % 6; return this.tabIndex % 6;
} }
@@ -129,6 +149,10 @@ @@ -132,6 +151,10 @@
*/ */
public boolean isTabInFirstRow() public boolean isTabInFirstRow()
{ {
@ -62,17 +53,19 @@
return this.tabIndex < 6; return this.tabIndex < 6;
} }
@@ -146,10 +170,40 @@ @@ -149,11 +172,41 @@
{ {
Item var5 = var2[var4]; Item var5 = var2[var4];
- if (var5 != null && var5.getCreativeTab() == this) - if (var5 != null && var5.getCreativeTab() == this)
+ if (var5 == null) - {
{
- var5.getSubItems(var5.shiftedIndex, this, par1List); - var5.getSubItems(var5.shiftedIndex, this, par1List);
+ continue; - }
}
- } - }
+ if (var5 == null)
+ {
+ continue;
+ }
+ +
+ for(CreativeTabs tab : var5.getCreativeTabs()) + for(CreativeTabs tab : var5.getCreativeTabs())
+ { + {
@ -105,4 +98,5 @@
+ { + {
+ return new ItemStack(getTabIconItem()); + return new ItemStack(getTabIconItem());
} }
}
@SideOnly(Side.CLIENT)

View File

@ -1,25 +0,0 @@
--- ../src_base/minecraft/net/minecraft/enchantment/Enchantment.java
+++ ../src_work/minecraft/net/minecraft/enchantment/Enchantment.java
@@ -1,6 +1,7 @@
package net.minecraft.enchantment;
import net.minecraft.entity.EntityLiving;
+import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
import net.minecraft.util.StatCollector;
@@ -195,4 +196,14 @@
String var2 = StatCollector.translateToLocal(this.getName());
return var2 + " " + StatCollector.translateToLocal("enchantment.level." + par1);
}
+
+ /**
+ * Called to determine if this enchantment can be applied to a ItemStack
+ * @param item The ItemStack that the enchantment might be put on
+ * @return True if the item is valid, false otherwise
+ */
+ public boolean canEnchantItem(ItemStack item)
+ {
+ return type.canEnchantItem(item.getItem());
+ }
}

View File

@ -1,11 +1,11 @@
--- ../src_base/minecraft/net/minecraft/enchantment/EnchantmentHelper.java --- ../src_base/minecraft/net/minecraft/enchantment/EnchantmentHelper.java
+++ ../src_work/minecraft/net/minecraft/enchantment/EnchantmentHelper.java +++ ../src_work/minecraft/net/minecraft/enchantment/EnchantmentHelper.java
@@ -418,7 +418,7 @@ @@ -463,7 +463,7 @@
{ {
Enchantment var7 = var4[var6]; Enchantment var8 = var5[var7];
- if (var7 != null && var7.type.canEnchantItem(var2)) - if (var8 != null && (var8.type.canEnchantItem(var2) || var4))
+ if (var7 != null && var7.canEnchantItem(par1ItemStack)) + if (var8 != null && (var8.func_92037_a(par1ItemStack) || var4))
{ {
for (int var8 = var7.getMinLevel(); var8 <= var7.getMaxLevel(); ++var8) for (int var9 = var8.getMinLevel(); var9 <= var8.getMaxLevel(); ++var9)
{ {

View File

@ -1,19 +1,21 @@
--- ../src_base/minecraft/net/minecraft/entity/Entity.java --- ../src_base/minecraft/net/minecraft/entity/Entity.java
+++ ../src_work/minecraft/net/minecraft/entity/Entity.java +++ ../src_work/minecraft/net/minecraft/entity/Entity.java
@@ -2,8 +2,10 @@ @@ -2,8 +2,12 @@
import cpw.mods.fml.common.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
+
+import java.util.ArrayList; +import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.Random;
+import java.util.UUID; +import java.util.UUID;
+
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockFluid; import net.minecraft.block.BlockFluid;
import net.minecraft.block.StepSound; import net.minecraft.block.StepSound;
@@ -11,8 +13,13 @@ @@ -12,8 +16,13 @@
import net.minecraft.crash.CrashReport;
import net.minecraft.crash.CrashReportCategory; import net.minecraft.crash.CrashReportCategory;
import net.minecraft.enchantment.EnchantmentProtection;
import net.minecraft.entity.effect.EntityLightningBolt; import net.minecraft.entity.effect.EntityLightningBolt;
+import net.minecraft.entity.item.EntityBoat; +import net.minecraft.entity.item.EntityBoat;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
@ -25,7 +27,7 @@
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagDouble; import net.minecraft.nbt.NBTTagDouble;
@@ -23,6 +30,7 @@ @@ -24,6 +33,7 @@
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.Direction; import net.minecraft.util.Direction;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
@ -33,7 +35,7 @@
import net.minecraft.util.ReportedException; import net.minecraft.util.ReportedException;
import net.minecraft.util.StatCollector; import net.minecraft.util.StatCollector;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
@@ -221,6 +229,11 @@ @@ -222,6 +232,11 @@
protected int field_82152_aq; protected int field_82152_aq;
private boolean field_83001_bt; private boolean field_83001_bt;
public EnumEntitySize myEntitySize; public EnumEntitySize myEntitySize;
@ -45,7 +47,7 @@
public Entity(World par1World) public Entity(World par1World)
{ {
@@ -543,7 +556,7 @@ @@ -543,7 +558,7 @@
if (!this.worldObj.isRemote) if (!this.worldObj.isRemote)
{ {
this.setFlag(0, this.fire > 0); this.setFlag(0, this.fire > 0);
@ -54,7 +56,7 @@
} }
this.firstUpdate = false; this.firstUpdate = false;
@@ -1513,6 +1526,15 @@ @@ -1514,6 +1529,15 @@
par1NBTTagCompound.setInteger("Dimension", this.dimension); par1NBTTagCompound.setInteger("Dimension", this.dimension);
par1NBTTagCompound.setBoolean("Invulnerable", this.field_83001_bt); par1NBTTagCompound.setBoolean("Invulnerable", this.field_83001_bt);
par1NBTTagCompound.setInteger("PortalCooldown", this.timeUntilPortal); par1NBTTagCompound.setInteger("PortalCooldown", this.timeUntilPortal);
@ -70,7 +72,7 @@
this.writeEntityToNBT(par1NBTTagCompound); this.writeEntityToNBT(par1NBTTagCompound);
} }
catch (Throwable var5) catch (Throwable var5)
@@ -1567,6 +1589,14 @@ @@ -1568,6 +1592,14 @@
this.timeUntilPortal = par1NBTTagCompound.getInteger("PortalCooldown"); this.timeUntilPortal = par1NBTTagCompound.getInteger("PortalCooldown");
this.setPosition(this.posX, this.posY, this.posZ); this.setPosition(this.posX, this.posY, this.posZ);
this.setRotation(this.rotationYaw, this.rotationPitch); this.setRotation(this.rotationYaw, this.rotationPitch);
@ -85,7 +87,7 @@
this.readEntityFromNBT(par1NBTTagCompound); this.readEntityFromNBT(par1NBTTagCompound);
} }
catch (Throwable var5) catch (Throwable var5)
@@ -1661,7 +1691,14 @@ @@ -1662,7 +1694,14 @@
{ {
EntityItem var3 = new EntityItem(this.worldObj, this.posX, this.posY + (double)par2, this.posZ, par1ItemStack); EntityItem var3 = new EntityItem(this.worldObj, this.posX, this.posY + (double)par2, this.posZ, par1ItemStack);
var3.delayBeforeCanPickup = 10; var3.delayBeforeCanPickup = 10;
@ -101,7 +103,7 @@
return var3; return var3;
} }
@@ -2020,7 +2057,7 @@ @@ -2021,7 +2060,7 @@
*/ */
public boolean isRiding() public boolean isRiding()
{ {
@ -110,7 +112,7 @@
} }
/** /**
@@ -2355,7 +2392,7 @@ @@ -2356,7 +2395,7 @@
public float func_82146_a(Explosion par1Explosion, Block par2Block, int par3, int par4, int par5) public float func_82146_a(Explosion par1Explosion, Block par2Block, int par3, int par4, int par5)
{ {
@ -119,7 +121,7 @@
} }
public int func_82143_as() public int func_82143_as()
@@ -2391,4 +2428,84 @@ @@ -2396,4 +2435,84 @@
{ {
return this.isBurning(); return this.isBurning();
} }

View File

@ -20,7 +20,7 @@
public abstract class EntityLiving extends Entity public abstract class EntityLiving extends Entity
{ {
/** /**
@@ -381,6 +387,7 @@ @@ -387,6 +393,7 @@
public void setAttackTarget(EntityLiving par1EntityLiving) public void setAttackTarget(EntityLiving par1EntityLiving)
{ {
this.attackTarget = par1EntityLiving; this.attackTarget = par1EntityLiving;
@ -28,7 +28,7 @@
} }
/** /**
@@ -477,6 +484,7 @@ @@ -483,6 +490,7 @@
{ {
this.entityLivingToAttack = par1EntityLiving; this.entityLivingToAttack = par1EntityLiving;
this.revengeTimer = this.entityLivingToAttack != null ? 60 : 0; this.revengeTimer = this.entityLivingToAttack != null ? 60 : 0;
@ -36,7 +36,7 @@
} }
protected void entityInit() protected void entityInit()
@@ -766,6 +774,11 @@ @@ -792,6 +800,11 @@
*/ */
public void onUpdate() public void onUpdate()
{ {
@ -48,7 +48,7 @@
super.onUpdate(); super.onUpdate();
if (!this.worldObj.isRemote) if (!this.worldObj.isRemote)
@@ -951,6 +964,11 @@ @@ -977,6 +990,11 @@
*/ */
public boolean attackEntityFrom(DamageSource par1DamageSource, int par2) public boolean attackEntityFrom(DamageSource par1DamageSource, int par2)
{ {
@ -60,7 +60,7 @@
if (this.func_85032_ar()) if (this.func_85032_ar())
{ {
return false; return false;
@@ -1161,6 +1179,11 @@ @@ -1188,6 +1206,11 @@
{ {
if (!this.func_85032_ar()) if (!this.func_85032_ar())
{ {
@ -72,7 +72,7 @@
par2 = this.applyArmorCalculations(par1DamageSource, par2); par2 = this.applyArmorCalculations(par1DamageSource, par2);
par2 = this.applyPotionDamageCalculations(par1DamageSource, par2); par2 = this.applyPotionDamageCalculations(par1DamageSource, par2);
this.health -= par2; this.health -= par2;
@@ -1225,6 +1248,11 @@ @@ -1252,6 +1275,11 @@
*/ */
public void onDeath(DamageSource par1DamageSource) public void onDeath(DamageSource par1DamageSource)
{ {
@ -84,7 +84,7 @@
Entity var2 = par1DamageSource.getEntity(); Entity var2 = par1DamageSource.getEntity();
if (this.scoreValue >= 0 && var2 != null) if (this.scoreValue >= 0 && var2 != null)
@@ -1247,6 +1275,10 @@ @@ -1274,6 +1302,10 @@
{ {
var3 = EnchantmentHelper.getLootingModifier((EntityLiving)var2); var3 = EnchantmentHelper.getLootingModifier((EntityLiving)var2);
} }
@ -95,7 +95,7 @@
if (!this.isChild() && this.worldObj.getGameRules().getGameRuleBooleanValue("doMobLoot")) if (!this.isChild() && this.worldObj.getGameRules().getGameRuleBooleanValue("doMobLoot"))
{ {
@@ -1255,7 +1287,7 @@ @@ -1282,7 +1314,7 @@
if (this.recentlyHit > 0) if (this.recentlyHit > 0)
{ {
@ -104,7 +104,7 @@
if (var4 < 5) if (var4 < 5)
{ {
@@ -1263,6 +1295,16 @@ @@ -1290,6 +1322,16 @@
} }
} }
} }
@ -121,7 +121,7 @@
} }
this.worldObj.setEntityState(this, (byte)3); this.worldObj.setEntityState(this, (byte)3);
@@ -1306,6 +1348,12 @@ @@ -1333,6 +1375,12 @@
*/ */
protected void fall(float par1) protected void fall(float par1)
{ {
@ -134,7 +134,7 @@
super.fall(par1); super.fall(par1);
int var2 = MathHelper.ceiling_float_int(par1 - 3.0F); int var2 = MathHelper.ceiling_float_int(par1 - 3.0F);
@@ -1508,7 +1556,7 @@ @@ -1535,7 +1583,7 @@
int var2 = MathHelper.floor_double(this.boundingBox.minY); int var2 = MathHelper.floor_double(this.boundingBox.minY);
int var3 = MathHelper.floor_double(this.posZ); int var3 = MathHelper.floor_double(this.posZ);
int var4 = this.worldObj.getBlockId(var1, var2, var3); int var4 = this.worldObj.getBlockId(var1, var2, var3);
@ -143,7 +143,7 @@
} }
/** /**
@@ -1915,6 +1963,7 @@ @@ -1948,6 +1996,7 @@
} }
this.isAirBorne = true; this.isAirBorne = true;
@ -151,7 +151,7 @@
} }
/** /**
@@ -2452,8 +2501,6 @@ @@ -2485,8 +2534,6 @@
return this.getCreatureAttribute() == EnumCreatureAttribute.UNDEAD; return this.getCreatureAttribute() == EnumCreatureAttribute.UNDEAD;
} }
@ -160,7 +160,7 @@
/** /**
* Remove the speified potion effect from this entity. * Remove the speified potion effect from this entity.
*/ */
@@ -2904,4 +2951,42 @@ @@ -2943,4 +2990,42 @@
{ {
this.dataWatcher.updateObject(10, Byte.valueOf((byte)par1)); this.dataWatcher.updateObject(10, Byte.valueOf((byte)par1));
} }

View File

@ -12,31 +12,33 @@
import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.block.Block; import net.minecraft.block.Block;
@@ -33,6 +38,11 @@ @@ -29,6 +34,11 @@
/** The EntityItem's random initial float height. */
public float hoverStart = (float)(Math.random() * Math.PI * 2.0D);
/** The EntityItem's random initial float height. */
public float hoverStart;
+
+ /** + /**
+ * The maximum age of this EntityItem. The item is expired once this is reached. + * The maximum age of this EntityItem. The item is expired once this is reached.
+ */ + */
+ public int lifespan = 6000; + public int lifespan = 6000;
+
public EntityItem(World par1World, double par2, double par4, double par6, ItemStack par8ItemStack) public EntityItem(World par1World, double par2, double par4, double par6)
{ {
super(par1World); @@ -49,6 +59,7 @@
@@ -44,6 +54,7 @@ {
this.motionX = (double)((float)(Math.random() * 0.20000000298023224D - 0.10000000149011612D)); this(par1World, par2, par4, par6);
this.motionY = 0.20000000298023224D; this.func_92013_a(par8ItemStack);
this.motionZ = (double)((float)(Math.random() * 0.20000000298023224D - 0.10000000149011612D));
+ this.lifespan = (par8ItemStack.getItem() == null ? 6000 : par8ItemStack.getItem().getEntityLifespan(par8ItemStack, par1World)); + this.lifespan = (par8ItemStack.getItem() == null ? 6000 : par8ItemStack.getItem().getEntityLifespan(par8ItemStack, par1World));
} }
/** /**
@@ -124,7 +135,20 @@ @@ -135,7 +146,22 @@
++this.age; ++this.age;
- if (!this.worldObj.isRemote && this.age >= 6000) - if (!this.worldObj.isRemote && this.age >= 6000)
+ ItemStack item = getDataWatcher().getWatchableObjectItemStack(10);
+
+ if (!this.worldObj.isRemote && this.age >= lifespan) + if (!this.worldObj.isRemote && this.age >= lifespan)
+ { + {
+ ItemExpireEvent event = new ItemExpireEvent(this, (item.getItem() == null ? 6000 : item.getItem().getEntityLifespan(item, worldObj))); + ItemExpireEvent event = new ItemExpireEvent(this, (item.getItem() == null ? 6000 : item.getItem().getEntityLifespan(item, worldObj)));
@ -50,24 +52,26 @@
+ } + }
+ } + }
+ +
+ if (this.item == null || this.item.stackSize <= 0) + if (item == null || item.stackSize <= 0)
{ {
this.setDead(); this.setDead();
} }
@@ -240,6 +264,7 @@ @@ -263,6 +289,7 @@
{ {
par1NBTTagCompound.setShort("Health", (short)((byte)this.health)); par1NBTTagCompound.setShort("Health", (short)((byte)this.health));
par1NBTTagCompound.setShort("Age", (short)this.age); par1NBTTagCompound.setShort("Age", (short)this.age);
+ par1NBTTagCompound.setInteger("Lifespan", lifespan); + par1NBTTagCompound.setInteger("Lifespan", lifespan);
if (this.item != null) if (this.func_92014_d() != null)
{ {
@@ -257,10 +282,15 @@ @@ -280,10 +307,17 @@
NBTTagCompound var2 = par1NBTTagCompound.getCompoundTag("Item"); NBTTagCompound var2 = par1NBTTagCompound.getCompoundTag("Item");
this.item = ItemStack.loadItemStackFromNBT(var2); this.func_92013_a(ItemStack.loadItemStackFromNBT(var2));
- if (this.item == null) - if (this.func_92014_d() == null)
+ if (this.item == null || this.item.stackSize <= 0) + ItemStack item = getDataWatcher().getWatchableObjectItemStack(10);
+
+ if (item == null || item.stackSize <= 0)
{ {
this.setDead(); this.setDead();
} }
@ -79,7 +83,7 @@
} }
/** /**
@@ -270,9 +300,21 @@ @@ -293,10 +327,22 @@
{ {
if (!this.worldObj.isRemote) if (!this.worldObj.isRemote)
{ {
@ -95,10 +99,11 @@
+ return; + return;
+ } + }
+ +
int var2 = this.item.stackSize; ItemStack var2 = this.func_92014_d();
int var3 = var2.stackSize;
- if (this.delayBeforeCanPickup == 0 && par1EntityPlayer.inventory.addItemStackToInventory(this.item)) - if (this.delayBeforeCanPickup == 0 && par1EntityPlayer.inventory.addItemStackToInventory(var2))
+ if (this.delayBeforeCanPickup <= 0 && (event.getResult() == Result.ALLOW || var2 <= 0 || par1EntityPlayer.inventory.addItemStackToInventory(this.item))) + if (this.delayBeforeCanPickup <= 0 && (event.getResult() == Result.ALLOW || var3 <= 0 || par1EntityPlayer.inventory.addItemStackToInventory(var2)))
{ {
if (this.item.itemID == Block.wood.blockID) if (var2.itemID == Block.wood.blockID)
{ {

View File

@ -2,16 +2,16 @@
+++ ../src_work/minecraft/net/minecraft/entity/item/EntityMinecart.java +++ ../src_work/minecraft/net/minecraft/entity/item/EntityMinecart.java
@@ -2,6 +2,8 @@ @@ -2,6 +2,8 @@
import cpw.mods.fml.common.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
+ +
+import java.util.ArrayList; +import java.util.ArrayList;
import java.util.List; import java.util.List;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockRail; import net.minecraft.block.BlockRail;
@@ -21,6 +23,11 @@ @@ -23,6 +25,11 @@
import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraft.world.WorldServer;
+import net.minecraftforge.common.IMinecartCollisionHandler; +import net.minecraftforge.common.IMinecartCollisionHandler;
+import net.minecraftforge.common.MinecartRegistry; +import net.minecraftforge.common.MinecartRegistry;
@ -21,9 +21,9 @@
public class EntityMinecart extends Entity implements IInventory public class EntityMinecart extends Entity implements IInventory
{ {
/** Array of item stacks stored in minecart (for storage minecarts). */ /** Array of item stacks stored in minecart (for storage minecarts). */
@@ -50,6 +57,25 @@ @@ -52,6 +59,25 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
protected double velocityZ; public double velocityZ;
+ /* Forge: Minecart Compatibility Layer Integration. */ + /* Forge: Minecart Compatibility Layer Integration. */
+ public static float defaultMaxSpeedRail = 0.4f; + public static float defaultMaxSpeedRail = 0.4f;
@ -47,7 +47,7 @@
public EntityMinecart(World par1World) public EntityMinecart(World par1World)
{ {
super(par1World); super(par1World);
@@ -61,6 +87,18 @@ @@ -63,6 +89,18 @@
this.setSize(0.98F, 0.7F); this.setSize(0.98F, 0.7F);
this.yOffset = this.height / 2.0F; this.yOffset = this.height / 2.0F;
this.field_82344_g = par1World != null ? par1World.func_82735_a(this) : null; this.field_82344_g = par1World != null ? par1World.func_82735_a(this) : null;
@ -66,7 +66,7 @@
} }
/** /**
@@ -86,6 +124,10 @@ @@ -88,6 +126,10 @@
*/ */
public AxisAlignedBB getCollisionBox(Entity par1Entity) public AxisAlignedBB getCollisionBox(Entity par1Entity)
{ {
@ -77,7 +77,7 @@
return par1Entity.canBePushed() ? par1Entity.boundingBox : null; return par1Entity.canBePushed() ? par1Entity.boundingBox : null;
} }
@@ -94,6 +136,10 @@ @@ -96,6 +138,10 @@
*/ */
public AxisAlignedBB getBoundingBox() public AxisAlignedBB getBoundingBox()
{ {
@ -88,7 +88,7 @@
return null; return null;
} }
@@ -102,7 +148,7 @@ @@ -104,7 +150,7 @@
*/ */
public boolean canBePushed() public boolean canBePushed()
{ {
@ -97,7 +97,7 @@
} }
public EntityMinecart(World par1World, double par2, double par4, double par6, int par8) public EntityMinecart(World par1World, double par2, double par4, double par6, int par8)
@@ -157,48 +203,7 @@ @@ -159,48 +205,7 @@
} }
this.setDead(); this.setDead();
@ -147,7 +147,7 @@
} }
return true; return true;
@@ -316,7 +321,7 @@ @@ -318,7 +323,7 @@
this.kill(); this.kill();
} }
@ -156,29 +156,7 @@
{ {
this.worldObj.spawnParticle("largesmoke", this.posX, this.posY + 0.8D, this.posZ, 0.0D, 0.0D, 0.0D); this.worldObj.spawnParticle("largesmoke", this.posX, this.posY + 0.8D, this.posZ, 0.0D, 0.0D, 0.0D);
} }
@@ -360,18 +365,18 @@ @@ -441,25 +446,7 @@
double var6 = 0.0078125D;
int var8 = this.worldObj.getBlockId(var1, var2, var3);
- if (BlockRail.isRailBlock(var8))
+ if (canUseRail() && BlockRail.isRailBlock(var8))
{
this.fallDistance = 0.0F;
Vec3 var9 = this.func_70489_a(this.posX, this.posY, this.posZ);
- int var10 = this.worldObj.getBlockMetadata(var1, var2, var3);
+ int var10 = ((BlockRail)Block.blocksList[var8]).getBasicRailMetadata(worldObj, this, var1, var2, var3);
this.posY = (double)var2;
boolean var11 = false;
boolean var12 = false;
if (var8 == Block.railPowered.blockID)
{
- var11 = (var10 & 8) != 0;
+ var11 = (worldObj.getBlockMetadata(var1, var2, var3) & 8) != 0;
var12 = !var11;
}
@@ -385,25 +390,7 @@
this.posY = (double)(var2 + 1); this.posY = (double)(var2 + 1);
} }
@ -205,7 +183,7 @@
int[][] var13 = field_70500_g[var10]; int[][] var13 = field_70500_g[var10];
double var14 = (double)(var13[1][0] - var13[0][0]); double var14 = (double)(var13[1][0] - var13[0][0]);
@@ -436,7 +423,7 @@ @@ -492,7 +479,7 @@
} }
} }
@ -214,7 +192,7 @@
{ {
var24 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); var24 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
@@ -484,36 +471,8 @@ @@ -540,36 +527,8 @@
this.posX = var26 + var14 * var24; this.posX = var26 + var14 * var24;
this.posZ = var28 + var16 * var24; this.posZ = var28 + var16 * var24;
this.setPosition(this.posX, this.posY + (double)this.yOffset, this.posZ); this.setPosition(this.posX, this.posY + (double)this.yOffset, this.posZ);
@ -249,11 +227,11 @@
- -
- this.moveEntity(var34, 0.0D, var36); - this.moveEntity(var34, 0.0D, var36);
+ +
+ moveMinecartOnRail(var1, var2, var3); + moveMinecartOnRail(var45, var2, var47);
if (var13[0][1] != 0 && MathHelper.floor_double(this.posX) - var1 == var13[0][0] && MathHelper.floor_double(this.posZ) - var3 == var13[0][2]) if (var13[0][1] != 0 && MathHelper.floor_double(this.posX) - var45 == var13[0][0] && MathHelper.floor_double(this.posZ) - var47 == var13[0][2])
{ {
@@ -524,42 +483,7 @@ @@ -580,42 +539,7 @@
this.setPosition(this.posX, this.posY + (double)var13[1][1], this.posZ); this.setPosition(this.posX, this.posY + (double)var13[1][1], this.posZ);
} }
@ -295,9 +273,9 @@
- } - }
+ applyDragAndPushForces(); + applyDragAndPushForces();
Vec3 var52 = this.func_70489_a(this.posX, this.posY, this.posZ); Vec3 var54 = this.func_70489_a(this.posX, this.posY, this.posZ);
@@ -589,30 +513,14 @@ @@ -645,30 +569,14 @@
double var41; double var41;
@ -329,14 +307,14 @@
+ +
+ if(shouldDoRailFunctions()) + if(shouldDoRailFunctions())
+ { + {
+ ((BlockRail)Block.blocksList[var8]).onMinecartPass(worldObj, this, var1, var2, var3); + ((BlockRail)Block.blocksList[var8]).onMinecartPass(worldObj, this, var45, var2, var47);
+ } + }
+ +
+ if (var11 && shouldDoRailFunctions()) + if (var11 && shouldDoRailFunctions())
{ {
var41 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); var41 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
@@ -648,41 +556,7 @@ @@ -704,41 +612,7 @@
} }
else else
{ {
@ -375,11 +353,11 @@
- this.motionY *= 0.949999988079071D; - this.motionY *= 0.949999988079071D;
- this.motionZ *= 0.949999988079071D; - this.motionZ *= 0.949999988079071D;
- } - }
+ moveMinecartOffRail(var1, var2, var3); + moveMinecartOffRail(var45, var2, var47);
} }
this.doBlockCollisions(); this.doBlockCollisions();
@@ -709,7 +583,18 @@ @@ -765,7 +639,18 @@
} }
this.setRotation(this.rotationYaw, this.rotationPitch); this.setRotation(this.rotationYaw, this.rotationPitch);
@ -399,7 +377,7 @@
if (var15 != null && !var15.isEmpty()) if (var15 != null && !var15.isEmpty())
{ {
@@ -734,17 +619,8 @@ @@ -790,17 +675,8 @@
this.riddenByEntity = null; this.riddenByEntity = null;
} }
@ -415,11 +393,11 @@
- -
- this.setMinecartPowered(this.fuel > 0); - this.setMinecartPowered(this.fuel > 0);
+ updateFuel(); + updateFuel();
+ MinecraftForge.EVENT_BUS.post(new MinecartUpdateEvent(this, var1, var2, var3)); + MinecraftForge.EVENT_BUS.post(new MinecartUpdateEvent(this, var45, var2, var47));
} }
} }
@@ -768,12 +644,7 @@ @@ -824,12 +700,7 @@
} }
else else
{ {
@ -433,7 +411,7 @@
par3 = (double)var10; par3 = (double)var10;
@@ -819,13 +690,8 @@ @@ -875,13 +746,8 @@
if (BlockRail.isRailBlock(var10)) if (BlockRail.isRailBlock(var10))
{ {
@ -448,7 +426,7 @@
if (var11 >= 2 && var11 <= 5) if (var11 >= 2 && var11 <= 5)
{ {
@@ -890,13 +756,14 @@ @@ -946,13 +812,14 @@
{ {
par1NBTTagCompound.setInteger("Type", this.minecartType); par1NBTTagCompound.setInteger("Type", this.minecartType);
@ -467,7 +445,7 @@
{ {
NBTTagList var2 = new NBTTagList(); NBTTagList var2 = new NBTTagList();
@@ -922,13 +789,21 @@ @@ -978,13 +845,21 @@
{ {
this.minecartType = par1NBTTagCompound.getInteger("Type"); this.minecartType = par1NBTTagCompound.getInteger("Type");
@ -493,7 +471,7 @@
{ {
NBTTagList var2 = par1NBTTagCompound.getTagList("Items"); NBTTagList var2 = par1NBTTagCompound.getTagList("Items");
this.cargoItems = new ItemStack[this.getSizeInventory()]; this.cargoItems = new ItemStack[this.getSizeInventory()];
@@ -957,11 +832,17 @@ @@ -1013,11 +888,17 @@
*/ */
public void applyEntityCollision(Entity par1Entity) public void applyEntityCollision(Entity par1Entity)
{ {
@ -512,7 +490,7 @@
{ {
par1Entity.mountEntity(this); par1Entity.mountEntity(this);
} }
@@ -1007,7 +888,7 @@ @@ -1063,7 +944,7 @@
double var18 = par1Entity.motionX + this.motionX; double var18 = par1Entity.motionX + this.motionX;
double var20 = par1Entity.motionZ + this.motionZ; double var20 = par1Entity.motionZ + this.motionZ;
@ -521,7 +499,7 @@
{ {
this.motionX *= 0.20000000298023224D; this.motionX *= 0.20000000298023224D;
this.motionZ *= 0.20000000298023224D; this.motionZ *= 0.20000000298023224D;
@@ -1015,7 +896,7 @@ @@ -1071,7 +952,7 @@
par1Entity.motionX *= 0.949999988079071D; par1Entity.motionX *= 0.949999988079071D;
par1Entity.motionZ *= 0.949999988079071D; par1Entity.motionZ *= 0.949999988079071D;
} }
@ -530,7 +508,7 @@
{ {
par1Entity.motionX *= 0.20000000298023224D; par1Entity.motionX *= 0.20000000298023224D;
par1Entity.motionZ *= 0.20000000298023224D; par1Entity.motionZ *= 0.20000000298023224D;
@@ -1050,7 +931,7 @@ @@ -1106,7 +987,7 @@
*/ */
public int getSizeInventory() public int getSizeInventory()
{ {
@ -539,7 +517,7 @@
} }
/** /**
@@ -1153,7 +1034,12 @@ @@ -1209,7 +1090,12 @@
*/ */
public boolean interact(EntityPlayer par1EntityPlayer) public boolean interact(EntityPlayer par1EntityPlayer)
{ {
@ -553,7 +531,7 @@
{ {
if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer && this.riddenByEntity != par1EntityPlayer) if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer && this.riddenByEntity != par1EntityPlayer)
{ {
@@ -1165,14 +1051,14 @@ @@ -1221,14 +1107,14 @@
par1EntityPlayer.mountEntity(this); par1EntityPlayer.mountEntity(this);
} }
} }
@ -570,7 +548,7 @@
{ {
ItemStack var2 = par1EntityPlayer.inventory.getCurrentItem(); ItemStack var2 = par1EntityPlayer.inventory.getCurrentItem();
@@ -1296,4 +1182,375 @@ @@ -1352,4 +1238,375 @@
{ {
return this.dataWatcher.getWatchableObjectInt(18); return this.dataWatcher.getWatchableObjectInt(18);
} }

View File

@ -2,8 +2,8 @@
+++ ../src_work/minecraft/net/minecraft/entity/passive/EntitySheep.java +++ ../src_work/minecraft/net/minecraft/entity/passive/EntitySheep.java
@@ -2,6 +2,8 @@ @@ -2,6 +2,8 @@
import cpw.mods.fml.common.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
+ +
+import java.util.ArrayList; +import java.util.ArrayList;
import java.util.Random; import java.util.Random;

View File

@ -75,25 +75,29 @@
} }
if (par1DamageSource != null) if (par1DamageSource != null)
@@ -671,7 +702,16 @@ @@ -671,7 +702,20 @@
*/ */
public EntityItem dropOneItem() public EntityItem dropOneItem(boolean par1)
{ {
- return this.dropPlayerItemWithRandomChoice(this.inventory.decrStackSize(this.inventory.currentItem, 1), false); - return this.dropPlayerItemWithRandomChoice(this.inventory.decrStackSize(this.inventory.currentItem, par1 && this.inventory.getCurrentItem() != null ? this.inventory.getCurrentItem().stackSize : 1), false);
+ ItemStack stack = inventory.getCurrentItem(); + ItemStack stack = inventory.getCurrentItem();
+
+ if (stack == null) + if (stack == null)
+ { + {
+ return null; + return null;
+ } + }
+
+ if (stack.getItem().onDroppedByPlayer(stack, this)) + if (stack.getItem().onDroppedByPlayer(stack, this))
+ { + {
+ return ForgeHooks.onPlayerTossEvent(this, inventory.decrStackSize(inventory.currentItem, 1)); + int count = par1 && this.inventory.getCurrentItem() != null ? this.inventory.getCurrentItem().stackSize : 1;
+ return ForgeHooks.onPlayerTossEvent(this, inventory.decrStackSize(inventory.currentItem, count));
+ } + }
+
+ return null; + return null;
} }
/** /**
@@ -680,7 +720,7 @@ @@ -680,7 +724,7 @@
*/ */
public EntityItem dropPlayerItem(ItemStack par1ItemStack) public EntityItem dropPlayerItem(ItemStack par1ItemStack)
{ {
@ -102,7 +106,7 @@
} }
/** /**
@@ -732,18 +772,33 @@ @@ -732,23 +776,39 @@
*/ */
public void joinEntityItemWithWorld(EntityItem par1EntityItem) public void joinEntityItemWithWorld(EntityItem par1EntityItem)
{ {
@ -134,13 +138,20 @@
+ ItemStack stack = inventory.getCurrentItem(); + ItemStack stack = inventory.getCurrentItem();
+ float var2 = (stack == null ? 1.0F : stack.getItem().getStrVsBlock(stack, par1Block, meta)); + float var2 = (stack == null ? 1.0F : stack.getItem().getStrVsBlock(stack, par1Block, meta));
int var3 = EnchantmentHelper.getEfficiencyModifier(this); int var3 = EnchantmentHelper.getEfficiencyModifier(this);
ItemStack var4 = this.inventory.getCurrentItem();
- if (var3 > 0 && this.inventory.canHarvestBlock(par1Block)) if (var3 > 0 && var4 != null)
+ if (var3 > 0 && ForgeHooks.canHarvestBlock(par1Block, this, meta))
{ {
var2 += (float)(var3 * var3 + 1); float var5 = (float)(var3 * var3 + 1);
} -
@@ -768,7 +823,8 @@ - if (!var4.canHarvestBlock(par1Block) && var2 <= 1.0F)
+ boolean canHarvest = ForgeHooks.canHarvestBlock(par1Block, this, meta);
+
+ if (!canHarvest && var2 <= 1.0F)
{
var2 += var5 * 0.08F;
}
@@ -778,7 +838,8 @@
var2 /= 5.0F; var2 /= 5.0F;
} }
@ -150,7 +161,7 @@
} }
/** /**
@@ -776,7 +832,7 @@ @@ -786,7 +847,7 @@
*/ */
public boolean canHarvestBlock(Block par1Block) public boolean canHarvestBlock(Block par1Block)
{ {
@ -159,7 +170,7 @@
} }
/** /**
@@ -1061,12 +1117,22 @@ @@ -1073,12 +1134,22 @@
{ {
if (!this.func_85032_ar()) if (!this.func_85032_ar())
{ {
@ -183,7 +194,7 @@
par2 = this.applyPotionDamageCalculations(par1DamageSource, par2); par2 = this.applyPotionDamageCalculations(par1DamageSource, par2);
this.addExhaustion(par1DamageSource.getHungerDamage()); this.addExhaustion(par1DamageSource.getHungerDamage());
this.health -= par2; this.health -= par2;
@@ -1107,6 +1173,10 @@ @@ -1119,6 +1190,10 @@
public boolean interactWith(Entity par1Entity) public boolean interactWith(Entity par1Entity)
{ {
@ -194,7 +205,7 @@
if (par1Entity.interact(this)) if (par1Entity.interact(this))
{ {
return true; return true;
@@ -1150,7 +1220,9 @@ @@ -1162,7 +1237,9 @@
*/ */
public void destroyCurrentEquippedItem() public void destroyCurrentEquippedItem()
{ {
@ -204,7 +215,7 @@
} }
/** /**
@@ -1167,6 +1239,15 @@ @@ -1179,6 +1256,15 @@
*/ */
public void attackTargetEntityWithCurrentItem(Entity par1Entity) public void attackTargetEntityWithCurrentItem(Entity par1Entity)
{ {
@ -220,7 +231,7 @@
if (par1Entity.canAttackWithItem()) if (par1Entity.canAttackWithItem())
{ {
if (!par1Entity.func_85031_j(this)) if (!par1Entity.func_85031_j(this))
@@ -1325,6 +1406,12 @@ @@ -1342,6 +1428,12 @@
*/ */
public EnumStatus sleepInBedAt(int par1, int par2, int par3) public EnumStatus sleepInBedAt(int par1, int par2, int par3)
{ {
@ -233,7 +244,7 @@
if (!this.worldObj.isRemote) if (!this.worldObj.isRemote)
{ {
if (this.isPlayerSleeping() || !this.isEntityAlive()) if (this.isPlayerSleeping() || !this.isEntityAlive())
@@ -1364,6 +1451,11 @@ @@ -1381,6 +1473,11 @@
{ {
int var9 = this.worldObj.getBlockMetadata(par1, par2, par3); int var9 = this.worldObj.getBlockMetadata(par1, par2, par3);
int var5 = BlockBed.getDirection(var9); int var5 = BlockBed.getDirection(var9);
@ -245,7 +256,7 @@
float var10 = 0.5F; float var10 = 0.5F;
float var7 = 0.5F; float var7 = 0.5F;
@@ -1434,10 +1526,12 @@ @@ -1451,10 +1548,12 @@
ChunkCoordinates var4 = this.playerLocation; ChunkCoordinates var4 = this.playerLocation;
ChunkCoordinates var5 = this.playerLocation; ChunkCoordinates var5 = this.playerLocation;
@ -262,7 +273,7 @@
if (var5 == null) if (var5 == null)
{ {
@@ -1474,7 +1568,9 @@ @@ -1491,7 +1590,9 @@
*/ */
private boolean isInBed() private boolean isInBed()
{ {
@ -273,7 +284,7 @@
} }
/** /**
@@ -1489,9 +1585,12 @@ @@ -1506,9 +1607,12 @@
var3.loadChunk(par1ChunkCoordinates.posX - 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4); var3.loadChunk(par1ChunkCoordinates.posX - 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4);
var3.loadChunk(par1ChunkCoordinates.posX + 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4); var3.loadChunk(par1ChunkCoordinates.posX + 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4);
@ -289,7 +300,7 @@
return var8; return var8;
} }
else else
@@ -1513,8 +1612,11 @@ @@ -1530,8 +1634,11 @@
{ {
if (this.playerLocation != null) if (this.playerLocation != null)
{ {
@ -303,16 +314,16 @@
switch (var2) switch (var2)
{ {
@@ -1823,7 +1925,7 @@ @@ -1840,7 +1947,7 @@
{ {
if (par1ItemStack.getItem().requiresMultipleRenderPasses()) if (par1ItemStack.getItem().requiresMultipleRenderPasses())
{ {
- return par1ItemStack.getItem().getIconFromDamageForRenderPass(par1ItemStack.getItemDamage(), par2); - return par1ItemStack.getItem().getIconFromDamageForRenderPass(par1ItemStack.getItemDamage(), par2);
+ return par1ItemStack.getItem().getIconFromItemStackForMultiplePasses(par1ItemStack, par2); + return par1ItemStack.getItem().getIconIndex(par1ItemStack, par2);
} }
if (this.itemInUse != null && par1ItemStack.itemID == Item.bow.shiftedIndex) if (this.itemInUse != null && par1ItemStack.itemID == Item.bow.shiftedIndex)
@@ -1845,6 +1947,7 @@ @@ -1862,6 +1969,7 @@
return 101; return 101;
} }
} }
@ -320,7 +331,7 @@
} }
return var3; return var3;
@@ -2063,6 +2166,14 @@ @@ -2082,6 +2190,14 @@
} }
this.theInventoryEnderChest = par1EntityPlayer.theInventoryEnderChest; this.theInventoryEnderChest = par1EntityPlayer.theInventoryEnderChest;

View File

@ -69,7 +69,7 @@
+ return; + return;
+ } + }
+ +
this.mcServer.getConfigurationManager().sendPacketToAllPlayers(new Packet3Chat(par1DamageSource.getDeathMessage(this))); this.mcServer.getConfigurationManager().func_92027_k(par1DamageSource.getDeathMessage(this));
if (!this.worldObj.getGameRules().getGameRuleBooleanValue("keepInventory")) if (!this.worldObj.getGameRules().getGameRuleBooleanValue("keepInventory"))
{ {

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/item/Item.java --- ../src_base/minecraft/net/minecraft/item/Item.java
+++ ../src_work/minecraft/net/minecraft/item/Item.java +++ ../src_work/minecraft/net/minecraft/item/Item.java
@@ -14,6 +14,7 @@ @@ -13,6 +13,7 @@
import net.minecraft.entity.item.EntityItemFrame; import net.minecraft.entity.item.EntityItemFrame;
import net.minecraft.entity.item.EntityPainting; import net.minecraft.entity.item.EntityPainting;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@ -8,7 +8,17 @@
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionHelper; import net.minecraft.potion.PotionHelper;
import net.minecraft.stats.StatList; import net.minecraft.stats.StatList;
@@ -227,6 +228,9 @@ @@ -21,7 +22,9 @@
import net.minecraft.util.StatCollector;
import net.minecraft.util.StringTranslate;
import net.minecraft.util.Vec3;
+import net.minecraft.util.WeightedRandomChestContent;
import net.minecraft.world.World;
+import net.minecraftforge.common.ChestGenHooks;
public class Item
{
@@ -229,6 +232,9 @@
/** full name of item from language file */ /** full name of item from language file */
private String itemName; private String itemName;
@ -18,7 +28,7 @@
public Item(int par1) public Item(int par1)
{ {
@@ -234,12 +238,17 @@ @@ -236,12 +242,17 @@
if (itemsList[256 + par1] != null) if (itemsList[256 + par1] != null)
{ {
@ -37,7 +47,7 @@
} }
/** /**
@@ -625,6 +634,10 @@ @@ -627,6 +638,10 @@
float var18 = var15 * var16; float var18 = var15 * var16;
float var20 = var14 * var16; float var20 = var14 * var16;
double var21 = 5.0D; double var21 = 5.0D;
@ -48,7 +58,7 @@
Vec3 var23 = var13.addVector((double)var18 * var21, (double)var17 * var21, (double)var20 * var21); Vec3 var23 = var13.addVector((double)var18 * var21, (double)var17 * var21, (double)var20 * var21);
return par1World.rayTraceBlocks_do_do(var13, var23, par3, !par3); return par1World.rayTraceBlocks_do_do(var13, var23, par3, !par3);
} }
@@ -699,4 +712,279 @@ @@ -701,4 +716,299 @@
{ {
StatList.initStats(); StatList.initStats();
} }
@ -323,8 +333,28 @@
+ * @param pass the multi-render pass + * @param pass the multi-render pass
+ * @return the icon index + * @return the icon index
+ */ + */
+ public int getIconFromItemStackForMultiplePasses(ItemStack stack, int pass) + public int getIconIndex(ItemStack stack, int pass)
+ { + {
+ return getIconFromDamageForRenderPass(stack.getItemDamage(), pass); + return getIconFromDamageForRenderPass(stack.getItemDamage(), pass);
+ }
+
+ /**
+ * Generates the base Random item for a specific instance of the chest gen,
+ * Enchanted books use this to pick a random enchantment.
+ *
+ * @param chest The chest category to generate for
+ * @param rnd World RNG
+ * @param original Original result registered with the chest gen hooks.
+ * @return New values to use as the random item, typically this will be original
+ */
+ public WeightedRandomChestContent getChestGenBase(ChestGenHooks chest, Random rnd, WeightedRandomChestContent original)
+ {
+ if (this instanceof ItemEnchantedBook)
+ {
+ return ((ItemEnchantedBook)this).func_92058_a(rnd,
+ original.theMinimumChanceToGenerateItem,
+ original.theMaximumChanceToGenerateItem, original.itemWeight);
+ }
+ return original;
+ } + }
} }

View File

@ -1,14 +1,15 @@
--- ../src_base/minecraft/net/minecraft/item/ItemHoe.java --- ../src_base/minecraft/net/minecraft/item/ItemHoe.java
+++ ../src_work/minecraft/net/minecraft/item/ItemHoe.java +++ ../src_work/minecraft/net/minecraft/item/ItemHoe.java
@@ -1,5 +1,8 @@ @@ -6,6 +6,9 @@
package net.minecraft.item; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
+import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.Event.Result; +import net.minecraftforge.event.Event.Result;
+import net.minecraftforge.event.entity.player.UseHoeEvent; +import net.minecraftforge.event.entity.player.UseHoeEvent;
import cpw.mods.fml.common.Side;
import cpw.mods.fml.common.asm.SideOnly; public class ItemHoe extends Item
import net.minecraft.block.Block; {
@@ -32,6 +35,18 @@ @@ -32,6 +35,18 @@
} }
else else

View File

@ -20,7 +20,7 @@
/** The world object that this object is connected to. */ /** The world object that this object is connected to. */
public World theWorld; public World theWorld;
@@ -142,6 +153,13 @@ @@ -145,6 +156,13 @@
{ {
if (!this.gameType.isAdventure() || this.thisPlayerMP.canCurrentToolHarvestBlock(par1, par2, par3)) if (!this.gameType.isAdventure() || this.thisPlayerMP.canCurrentToolHarvestBlock(par1, par2, par3))
{ {
@ -34,7 +34,7 @@
if (this.isCreative()) if (this.isCreative())
{ {
if (!this.theWorld.extinguishFire((EntityPlayer)null, par1, par2, par3, par4)) if (!this.theWorld.extinguishFire((EntityPlayer)null, par1, par2, par3, par4))
@@ -151,15 +169,32 @@ @@ -154,15 +172,32 @@
} }
else else
{ {
@ -73,7 +73,7 @@
} }
if (var6 > 0 && var5 >= 1.0F) if (var6 > 0 && var5 >= 1.0F)
@@ -233,7 +268,7 @@ @@ -236,7 +271,7 @@
var4.onBlockHarvested(this.theWorld, par1, par2, par3, var5, this.thisPlayerMP); var4.onBlockHarvested(this.theWorld, par1, par2, par3, var5, this.thisPlayerMP);
} }
@ -82,7 +82,7 @@
if (var4 != null && var6) if (var4 != null && var6)
{ {
@@ -254,19 +289,30 @@ @@ -257,19 +292,30 @@
} }
else else
{ {
@ -115,7 +115,7 @@
if (var7 != null) if (var7 != null)
{ {
@@ -278,6 +324,7 @@ @@ -281,6 +327,7 @@
} }
} }
@ -123,7 +123,7 @@
if (var6 && var8) if (var6 && var8)
{ {
Block.blocksList[var4].harvestBlock(this.theWorld, this.thisPlayerMP, par1, par2, par3, var5); Block.blocksList[var4].harvestBlock(this.theWorld, this.thisPlayerMP, par1, par2, par3, var5);
@@ -318,6 +365,7 @@ @@ -321,6 +368,7 @@
if (var6.stackSize == 0) if (var6.stackSize == 0)
{ {
par1EntityPlayer.inventory.mainInventory[par1EntityPlayer.inventory.currentItem] = null; par1EntityPlayer.inventory.mainInventory[par1EntityPlayer.inventory.currentItem] = null;
@ -131,10 +131,11 @@
} }
if (!par1EntityPlayer.isUsingItem()) if (!par1EntityPlayer.isUsingItem())
@@ -335,29 +383,56 @@ @@ -338,35 +386,65 @@
*/ */
public boolean activateBlockOrUseItem(EntityPlayer par1EntityPlayer, World par2World, ItemStack par3ItemStack, int par4, int par5, int par6, int par7, float par8, float par9, float par10) public boolean activateBlockOrUseItem(EntityPlayer par1EntityPlayer, World par2World, ItemStack par3ItemStack, int par4, int par5, int par6, int par7, float par8, float par9, float par10)
{ {
- int var11;
+ PlayerInteractEvent event = ForgeEventFactory.onPlayerInteract(par1EntityPlayer, Action.RIGHT_CLICK_BLOCK, par4, par5, par6, par7); + PlayerInteractEvent event = ForgeEventFactory.onPlayerInteract(par1EntityPlayer, Action.RIGHT_CLICK_BLOCK, par4, par5, par6, par7);
+ if (event.isCanceled()) + if (event.isCanceled())
+ { + {
@ -142,6 +143,35 @@
+ return false; + return false;
+ } + }
+ +
+ int var11 = par2World.getBlockId(par4, par5, par6);
if (!par1EntityPlayer.isSneaking() || par1EntityPlayer.getHeldItem() == null)
{
- var11 = par2World.getBlockId(par4, par5, par6);
-
if (var11 > 0 && Block.blocksList[var11].onBlockActivated(par2World, par4, par5, par6, par1EntityPlayer, par7, par8, par9, par10))
{
return true;
}
}
- if (par3ItemStack == null)
- {
- return false;
- }
- else if (this.isCreative())
- {
- var11 = par3ItemStack.getItemDamage();
- int var12 = par3ItemStack.stackSize;
- boolean var13 = par3ItemStack.tryPlaceItemIntoWorld(par1EntityPlayer, par2World, par4, par5, par6, par7, par8, par9, par10);
- par3ItemStack.setItemDamage(var11);
- par3ItemStack.stackSize = var12;
- return var13;
- }
- else
- {
- return par3ItemStack.tryPlaceItemIntoWorld(par1EntityPlayer, par2World, par4, par5, par6, par7, par8, par9, par10);
- }
+ Item item = (par3ItemStack != null ? par3ItemStack.getItem() : null); + Item item = (par3ItemStack != null ? par3ItemStack.getItem() : null);
+ if (item != null && item.onItemUseFirst(par3ItemStack, par1EntityPlayer, par2World, par4, par5, par6, par7, par8, par9, par10)) + if (item != null && item.onItemUseFirst(par3ItemStack, par1EntityPlayer, par2World, par4, par5, par6, par7, par8, par9, par10))
+ { + {
@ -149,29 +179,6 @@
+ return true; + return true;
+ } + }
+ +
int var11 = par2World.getBlockId(par4, par5, par6);
-
- if (var11 > 0 && Block.blocksList[var11].onBlockActivated(par2World, par4, par5, par6, par1EntityPlayer, par7, par8, par9, par10))
- {
- return true;
- }
- else if (par3ItemStack == null)
- {
- return false;
- }
- else if (this.isCreative())
- {
- int var12 = par3ItemStack.getItemDamage();
- int var13 = par3ItemStack.stackSize;
- boolean var14 = par3ItemStack.tryPlaceItemIntoWorld(par1EntityPlayer, par2World, par4, par5, par6, par7, par8, par9, par10);
- par3ItemStack.setItemDamage(var12);
- par3ItemStack.stackSize = var13;
- return var14;
- }
- else
- {
- return par3ItemStack.tryPlaceItemIntoWorld(par1EntityPlayer, par2World, par4, par5, par6, par7, par8, par9, par10);
- }
+ Block block = Block.blocksList[var11]; + Block block = Block.blocksList[var11];
+ boolean result = false; + boolean result = false;
+ +
@ -210,7 +217,7 @@
} }
/** /**
@@ -367,4 +442,13 @@ @@ -376,4 +454,13 @@
{ {
this.theWorld = par1WorldServer; this.theWorld = par1WorldServer;
} }

View File

@ -1,12 +1,13 @@
--- ../src_base/minecraft/net/minecraft/item/ItemTool.java --- ../src_base/minecraft/net/minecraft/item/ItemTool.java
+++ ../src_work/minecraft/net/minecraft/item/ItemTool.java +++ ../src_work/minecraft/net/minecraft/item/ItemTool.java
@@ -1,5 +1,6 @@ @@ -7,6 +7,7 @@
package net.minecraft.item; import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.world.World;
+import net.minecraftforge.common.ForgeHooks; +import net.minecraftforge.common.ForgeHooks;
import cpw.mods.fml.common.Side;
import cpw.mods.fml.common.asm.SideOnly; public class ItemTool extends Item
import net.minecraft.block.Block; {
@@ -110,4 +111,15 @@ @@ -110,4 +111,15 @@
{ {
return this.toolMaterial.getToolCraftingMaterial() == par2ItemStack.itemID ? true : super.getIsRepairable(par1ItemStack, par2ItemStack); return this.toolMaterial.getToolCraftingMaterial() == par2ItemStack.itemID ? true : super.getIsRepairable(par1ItemStack, par2ItemStack);

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/item/crafting/CraftingManager.java --- ../src_base/minecraft/net/minecraft/item/crafting/CraftingManager.java
+++ ../src_work/minecraft/net/minecraft/item/crafting/CraftingManager.java +++ ../src_work/minecraft/net/minecraft/item/crafting/CraftingManager.java
@@ -268,7 +268,7 @@ @@ -269,7 +269,7 @@
} }
} }

View File

@ -76,27 +76,27 @@
this.playerEntity.onGround = par1Packet10Flying.onGround; this.playerEntity.onGround = par1Packet10Flying.onGround;
this.mcServer.getConfigurationManager().serverUpdateMountedMovingPlayer(this.playerEntity); this.mcServer.getConfigurationManager().serverUpdateMountedMovingPlayer(this.playerEntity);
this.playerEntity.updateFlyingState(this.playerEntity.posY - var3, par1Packet10Flying.onGround); this.playerEntity.updateFlyingState(this.playerEntity.posY - var3, par1Packet10Flying.onGround);
@@ -437,7 +464,10 @@ @@ -447,7 +474,10 @@
double var12 = this.playerEntity.posZ - ((double)var7 + 0.5D); double var13 = this.playerEntity.posZ - ((double)var8 + 0.5D);
double var14 = var8 * var8 + var10 * var10 + var12 * var12; double var15 = var9 * var9 + var11 * var11 + var13 * var13;
- if (var14 > 36.0D) - if (var15 > 36.0D)
+ double dist = playerEntity.theItemInWorldManager.getBlockReachDistance() + 1; + double dist = playerEntity.theItemInWorldManager.getBlockReachDistance() + 1;
+ dist *= dist; + dist *= dist;
+ +
+ if (var14 > dist) + if (var15 > dist)
{ {
return; return;
} }
@@ -461,6 +491,7 @@ @@ -471,6 +501,7 @@
{ {
if (var20 <= this.mcServer.getSpawnProtectionSize() && !var3) if (var18 <= var3 && !var4)
{ {
+ ForgeEventFactory.onPlayerInteract(playerEntity, Action.LEFT_CLICK_BLOCK, var5, var6, var7, 0); + ForgeEventFactory.onPlayerInteract(playerEntity, Action.LEFT_CLICK_BLOCK, var6, var7, var8, 0);
this.playerEntity.playerNetServerHandler.sendPacketToPlayer(new Packet53BlockChange(var5, var6, var7, var2)); this.playerEntity.playerNetServerHandler.sendPacketToPlayer(new Packet53BlockChange(var6, var7, var8, var2));
} }
else else
@@ -519,7 +550,11 @@ @@ -518,7 +549,11 @@
return; return;
} }
@ -109,18 +109,18 @@
} }
else if (par1Packet15Place.getYPosition() >= this.mcServer.getBuildLimit() - 1 && (par1Packet15Place.getDirection() == 1 || par1Packet15Place.getYPosition() >= this.mcServer.getBuildLimit())) else if (par1Packet15Place.getYPosition() >= this.mcServer.getBuildLimit() - 1 && (par1Packet15Place.getDirection() == 1 || par1Packet15Place.getYPosition() >= this.mcServer.getBuildLimit()))
{ {
@@ -537,7 +572,9 @@ @@ -536,7 +571,9 @@
var12 = var11; var13 = var12;
} }
- if (this.hasMoved && this.playerEntity.getDistanceSq((double)var5 + 0.5D, (double)var6 + 0.5D, (double)var7 + 0.5D) < 64.0D && (var12 > this.mcServer.getSpawnProtectionSize() || var9)) - if (this.hasMoved && this.playerEntity.getDistanceSq((double)var5 + 0.5D, (double)var6 + 0.5D, (double)var7 + 0.5D) < 64.0D && (var13 > var9 || var10))
+ double dist = playerEntity.theItemInWorldManager.getBlockReachDistance() + 1; + double dist = playerEntity.theItemInWorldManager.getBlockReachDistance() + 1;
+ dist *= dist; + dist *= dist;
+ if (this.hasMoved && this.playerEntity.getDistanceSq((double)var5 + 0.5D, (double)var6 + 0.5D, (double)var7 + 0.5D) < dist && (var12 > this.mcServer.getSpawnProtectionSize() || var9)) + if (this.hasMoved && this.playerEntity.getDistanceSq((double)var5 + 0.5D, (double)var6 + 0.5D, (double)var7 + 0.5D) < dist && (var13 > var9 || var10))
{ {
this.playerEntity.theItemInWorldManager.activateBlockOrUseItem(this.playerEntity, var2, var3, var5, var6, var7, var8, par1Packet15Place.getXOffset(), par1Packet15Place.getYOffset(), par1Packet15Place.getZOffset()); this.playerEntity.theItemInWorldManager.activateBlockOrUseItem(this.playerEntity, var2, var3, var5, var6, var7, var8, par1Packet15Place.getXOffset(), par1Packet15Place.getYOffset(), par1Packet15Place.getZOffset());
} }
@@ -704,8 +741,12 @@ @@ -703,8 +740,12 @@
this.sendPacketToPlayer(new Packet3Chat("Cannot send chat message.")); this.sendPacketToPlayer(new Packet3Chat("Cannot send chat message."));
return; return;
} }
@ -135,7 +135,7 @@
logger.info(var2); logger.info(var2);
this.mcServer.getConfigurationManager().sendPacketToAllPlayers(new Packet3Chat(var2, false)); this.mcServer.getConfigurationManager().sendPacketToAllPlayers(new Packet3Chat(var2, false));
} }
@@ -836,7 +877,7 @@ @@ -835,7 +876,7 @@
return; return;
} }

View File

@ -1,17 +1,16 @@
--- ../src_base/minecraft/net/minecraft/network/packet/Packet56MapChunks.java --- ../src_base/minecraft/net/minecraft/network/packet/Packet56MapChunks.java
+++ ../src_work/minecraft/net/minecraft/network/packet/Packet56MapChunks.java +++ ../src_work/minecraft/net/minecraft/network/packet/Packet56MapChunks.java
@@ -122,7 +122,13 @@ @@ -135,6 +135,13 @@
var7 += this.field_73590_a[var6] >> var8 & 1; var9 += 2048 * var7;
} }
- var8 = 2048 * 5 * var7 + 256;
+ int msb = 0; //BugFix: MC does not read the MSB array from the packet properly, causing issues for servers that use blocks > 256 + int msb = 0; //BugFix: MC does not read the MSB array from the packet properly, causing issues for servers that use blocks > 256
+ for (int x = 0; x < 16; x++) + for (int x = 0; x < 16; x++)
+ { + {
+ msb += (field_73588_b[var6] >> x) & 1; + msb += (field_73588_b[var6] >> x) & 1;
+ } + }
+ var9 += (2048 * msb);
+ +
+ var8 = 2048 * 5 * var7 + (2048 * msb) + 256; this.field_73584_f[var6] = new byte[var9];
this.field_73584_f[var6] = new byte[var8]; System.arraycopy(var3, var5, this.field_73584_f[var6], 0, var9);
System.arraycopy(var3, var5, this.field_73584_f[var6], 0, var8); var5 += var9;
var5 += var8;

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/server/MinecraftServer.java --- ../src_base/minecraft/net/minecraft/server/MinecraftServer.java
+++ ../src_work/minecraft/net/minecraft/server/MinecraftServer.java +++ ../src_work/minecraft/net/minecraft/server/MinecraftServer.java
@@ -13,6 +13,7 @@ @@ -12,6 +12,7 @@
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
@ -29,7 +29,7 @@
private KeyPair serverKeyPair; private KeyPair serverKeyPair;
/** Username of the server owner (for integrated servers) */ /** Username of the server owner (for integrated servers) */
@@ -237,8 +243,6 @@ @@ -238,8 +244,6 @@
{ {
this.convertMapIfNeeded(par1Str); this.convertMapIfNeeded(par1Str);
this.setUserMessage("menu.loadingLevel"); this.setUserMessage("menu.loadingLevel");
@ -38,7 +38,7 @@
ISaveHandler var7 = this.anvilConverterForAnvilFile.getSaveLoader(par1Str, true); ISaveHandler var7 = this.anvilConverterForAnvilFile.getSaveLoader(par1Str, true);
WorldInfo var9 = var7.loadWorldInfo(); WorldInfo var9 = var7.loadWorldInfo();
WorldSettings var8; WorldSettings var8;
@@ -258,46 +262,23 @@ @@ -259,46 +263,23 @@
var8.enableBonusChest(); var8.enableBonusChest();
} }
@ -96,7 +96,7 @@
this.setDifficultyForAllWorlds(this.getDifficulty()); this.setDifficultyForAllWorlds(this.getDifficulty());
this.initialWorldChunkLoad(); this.initialWorldChunkLoad();
} }
@@ -426,7 +407,14 @@ @@ -427,7 +408,14 @@
for (int var1 = 0; var1 < this.worldServers.length; ++var1) for (int var1 = 0; var1 < this.worldServers.length; ++var1)
{ {
WorldServer var2 = this.worldServers[var1]; WorldServer var2 = this.worldServers[var1];
@ -111,7 +111,7 @@
} }
if (this.usageSnooper != null && this.usageSnooper.isSnooperRunning()) if (this.usageSnooper != null && this.usageSnooper.isSnooperRunning())
@@ -649,13 +637,15 @@ @@ -650,13 +638,15 @@
this.theProfiler.startSection("levels"); this.theProfiler.startSection("levels");
int var1; int var1;
@ -132,7 +132,7 @@
this.theProfiler.startSection(var4.getWorldInfo().getWorldName()); this.theProfiler.startSection(var4.getWorldInfo().getWorldName());
this.theProfiler.startSection("pools"); this.theProfiler.startSection("pools");
var4.getWorldVec3Pool().clear(); var4.getWorldVec3Pool().clear();
@@ -702,9 +692,11 @@ @@ -703,9 +693,11 @@
this.theProfiler.endSection(); this.theProfiler.endSection();
} }
@ -147,7 +147,7 @@
this.theProfiler.endStartSection("connection"); this.theProfiler.endStartSection("connection");
this.getNetworkThread().networkTick(); this.getNetworkThread().networkTick();
this.theProfiler.endStartSection("players"); this.theProfiler.endStartSection("players");
@@ -758,7 +750,13 @@ @@ -759,7 +751,13 @@
*/ */
public WorldServer worldServerForDimension(int par1) public WorldServer worldServerForDimension(int par1)
{ {
@ -162,7 +162,7 @@
} }
@SideOnly(Side.SERVER) @SideOnly(Side.SERVER)
@@ -1129,6 +1127,7 @@ @@ -1130,6 +1128,7 @@
if (var2 != null) if (var2 != null)
{ {

View File

@ -15,7 +15,7 @@
public abstract class ServerConfigurationManager public abstract class ServerConfigurationManager
{ {
@@ -322,6 +326,16 @@ @@ -323,6 +327,16 @@
*/ */
public EntityPlayerMP respawnPlayer(EntityPlayerMP par1EntityPlayerMP, int par2, boolean par3) public EntityPlayerMP respawnPlayer(EntityPlayerMP par1EntityPlayerMP, int par2, boolean par3)
{ {
@ -32,7 +32,7 @@
par1EntityPlayerMP.getServerForPlayer().getEntityTracker().removeAllTrackingPlayers(par1EntityPlayerMP); par1EntityPlayerMP.getServerForPlayer().getEntityTracker().removeAllTrackingPlayers(par1EntityPlayerMP);
par1EntityPlayerMP.getServerForPlayer().getEntityTracker().removeEntityFromAllTrackingPlayers(par1EntityPlayerMP); par1EntityPlayerMP.getServerForPlayer().getEntityTracker().removeEntityFromAllTrackingPlayers(par1EntityPlayerMP);
par1EntityPlayerMP.getServerForPlayer().getPlayerManager().removePlayer(par1EntityPlayerMP); par1EntityPlayerMP.getServerForPlayer().getPlayerManager().removePlayer(par1EntityPlayerMP);
@@ -344,6 +358,7 @@ @@ -345,6 +359,7 @@
EntityPlayerMP var7 = new EntityPlayerMP(this.mcServer, this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension), par1EntityPlayerMP.username, (ItemInWorldManager)var6); EntityPlayerMP var7 = new EntityPlayerMP(this.mcServer, this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension), par1EntityPlayerMP.username, (ItemInWorldManager)var6);
var7.playerNetServerHandler = par1EntityPlayerMP.playerNetServerHandler; var7.playerNetServerHandler = par1EntityPlayerMP.playerNetServerHandler;
var7.clonePlayer(par1EntityPlayerMP, par3); var7.clonePlayer(par1EntityPlayerMP, par3);
@ -40,7 +40,7 @@
var7.entityId = par1EntityPlayerMP.entityId; var7.entityId = par1EntityPlayerMP.entityId;
WorldServer var8 = this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension); WorldServer var8 = this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension);
this.func_72381_a(var7, par1EntityPlayerMP, var8); this.func_72381_a(var7, par1EntityPlayerMP, var8);
@@ -387,14 +402,20 @@ @@ -388,14 +403,20 @@
public void transferPlayerToDimension(EntityPlayerMP par1EntityPlayerMP, int par2) public void transferPlayerToDimension(EntityPlayerMP par1EntityPlayerMP, int par2)
{ {
@ -62,7 +62,7 @@
this.func_72375_a(par1EntityPlayerMP, var4); this.func_72375_a(par1EntityPlayerMP, var4);
par1EntityPlayerMP.playerNetServerHandler.setPlayerLocation(par1EntityPlayerMP.posX, par1EntityPlayerMP.posY, par1EntityPlayerMP.posZ, par1EntityPlayerMP.rotationYaw, par1EntityPlayerMP.rotationPitch); par1EntityPlayerMP.playerNetServerHandler.setPlayerLocation(par1EntityPlayerMP.posX, par1EntityPlayerMP.posY, par1EntityPlayerMP.posZ, par1EntityPlayerMP.rotationYaw, par1EntityPlayerMP.rotationPitch);
par1EntityPlayerMP.theItemInWorldManager.setWorld(var5); par1EntityPlayerMP.theItemInWorldManager.setWorld(var5);
@@ -416,38 +437,23 @@ @@ -417,38 +438,23 @@
*/ */
public void transferEntityToWorld(Entity par1Entity, int par2, WorldServer par3WorldServer, WorldServer par4WorldServer) public void transferEntityToWorld(Entity par1Entity, int par2, WorldServer par3WorldServer, WorldServer par4WorldServer)
{ {
@ -112,7 +112,7 @@
{ {
ChunkCoordinates var18; ChunkCoordinates var18;
@@ -484,7 +490,7 @@ @@ -485,7 +491,7 @@
par4WorldServer.spawnEntityInWorld(par1Entity); par4WorldServer.spawnEntityInWorld(par1Entity);
par1Entity.setLocationAndAngles(var5, par1Entity.posY, var7, par1Entity.rotationYaw, par1Entity.rotationPitch); par1Entity.setLocationAndAngles(var5, par1Entity.posY, var7, par1Entity.rotationYaw, par1Entity.rotationPitch);
par4WorldServer.updateEntityWithOptionalForce(par1Entity, false); par4WorldServer.updateEntityWithOptionalForce(par1Entity, false);

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/util/WeightedRandomChestContent.java --- ../src_base/minecraft/net/minecraft/util/WeightedRandomChestContent.java
+++ ../src_work/minecraft/net/minecraft/util/WeightedRandomChestContent.java +++ ../src_work/minecraft/net/minecraft/util/WeightedRandomChestContent.java
@@ -5,6 +5,7 @@ @@ -4,6 +4,7 @@
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntityChest; import net.minecraft.tileentity.TileEntityChest;
import net.minecraft.tileentity.TileEntityDispenser; import net.minecraft.tileentity.TileEntityDispenser;
@ -8,72 +8,53 @@
public class WeightedRandomChestContent extends WeightedRandomItem public class WeightedRandomChestContent extends WeightedRandomItem
{ {
@@ -19,6 +20,8 @@ @@ -40,22 +41,11 @@
/** The maximum chance of item generating. */
private int theMaximumChanceToGenerateItem;
+
+ public final ItemStack itemStack;
public WeightedRandomChestContent(int par1, int par2, int par3, int par4, int par5)
{
@@ -27,8 +30,16 @@
this.theItemDamage = par2;
this.theMinimumChanceToGenerateItem = par3;
this.theMaximumChanceToGenerateItem = par4;
+ itemStack = new ItemStack(par1, 1, par2);
}
-
+
+ public WeightedRandomChestContent(ItemStack stack, int min, int max, int weight)
+ {
+ super(weight);
+ itemStack = stack;
+ theMinimumChanceToGenerateItem = min;
+ theMaximumChanceToGenerateItem = max;
+ }
/**
* Generates the Chest contents.
*/
@@ -37,18 +48,11 @@
for (int var4 = 0; var4 < par3; ++var4) for (int var4 = 0; var4 < par3; ++var4)
{ {
WeightedRandomChestContent var5 = (WeightedRandomChestContent)WeightedRandom.getRandomItem(par0Random, par1ArrayOfWeightedRandomChestContent); WeightedRandomChestContent var5 = (WeightedRandomChestContent)WeightedRandom.getRandomItem(par0Random, par1ArrayOfWeightedRandomChestContent);
- int var6 = var5.theMinimumChanceToGenerateItem + par0Random.nextInt(var5.theMaximumChanceToGenerateItem - var5.theMinimumChanceToGenerateItem + 1); - int var6 = var5.theMinimumChanceToGenerateItem + par0Random.nextInt(var5.theMaximumChanceToGenerateItem - var5.theMinimumChanceToGenerateItem + 1);
+ ItemStack[] stacks = ChestGenHooks.generateStacks(par0Random, var5.itemStack, var5.theMinimumChanceToGenerateItem, var5.theMaximumChanceToGenerateItem); + ItemStack[] stacks = ChestGenHooks.generateStacks(par0Random, var5.theItemId, var5.theMinimumChanceToGenerateItem, var5.theMaximumChanceToGenerateItem);
- if (Item.itemsList[var5.theItemId].getItemStackLimit() >= var6) - if (var5.theItemId.getMaxStackSize() >= var6)
+ for (ItemStack item : stacks) + for (ItemStack item : stacks)
{ {
- par2TileEntityChest.setInventorySlotContents(par0Random.nextInt(par2TileEntityChest.getSizeInventory()), new ItemStack(var5.theItemId, var6, var5.theItemDamage)); - ItemStack var7 = var5.theItemId.copy();
- var7.stackSize = var6;
- par2TileEntityChest.setInventorySlotContents(par0Random.nextInt(par2TileEntityChest.getSizeInventory()), var7);
- } - }
- else - else
- { - {
- for (int var7 = 0; var7 < var6; ++var7) - for (int var9 = 0; var9 < var6; ++var9)
- { - {
- par2TileEntityChest.setInventorySlotContents(par0Random.nextInt(par2TileEntityChest.getSizeInventory()), new ItemStack(var5.theItemId, 1, var5.theItemDamage)); - ItemStack var8 = var5.theItemId.copy();
- var8.stackSize = 1;
- par2TileEntityChest.setInventorySlotContents(par0Random.nextInt(par2TileEntityChest.getSizeInventory()), var8);
- } - }
+ par2TileEntityChest.setInventorySlotContents(par0Random.nextInt(par2TileEntityChest.getSizeInventory()), item); + par2TileEntityChest.setInventorySlotContents(par0Random.nextInt(par2TileEntityChest.getSizeInventory()), item);
} }
} }
} }
@@ -61,18 +65,11 @@ @@ -68,22 +58,11 @@
for (int var4 = 0; var4 < par3; ++var4) for (int var4 = 0; var4 < par3; ++var4)
{ {
WeightedRandomChestContent var5 = (WeightedRandomChestContent)WeightedRandom.getRandomItem(par0Random, par1ArrayOfWeightedRandomChestContent); WeightedRandomChestContent var5 = (WeightedRandomChestContent)WeightedRandom.getRandomItem(par0Random, par1ArrayOfWeightedRandomChestContent);
- int var6 = var5.theMinimumChanceToGenerateItem + par0Random.nextInt(var5.theMaximumChanceToGenerateItem - var5.theMinimumChanceToGenerateItem + 1); - int var6 = var5.theMinimumChanceToGenerateItem + par0Random.nextInt(var5.theMaximumChanceToGenerateItem - var5.theMinimumChanceToGenerateItem + 1);
+ ItemStack[] stacks = ChestGenHooks.generateStacks(par0Random, var5.itemStack, var5.theMinimumChanceToGenerateItem, var5.theMaximumChanceToGenerateItem); + ItemStack[] stacks = ChestGenHooks.generateStacks(par0Random, var5.theItemId, var5.theMinimumChanceToGenerateItem, var5.theMaximumChanceToGenerateItem);
- if (Item.itemsList[var5.theItemId].getItemStackLimit() >= var6) - if (var5.theItemId.getMaxStackSize() >= var6)
+ for (ItemStack item : stacks) + for (ItemStack item : stacks)
{ {
- par2TileEntityDispenser.setInventorySlotContents(par0Random.nextInt(par2TileEntityDispenser.getSizeInventory()), new ItemStack(var5.theItemId, var6, var5.theItemDamage)); - ItemStack var7 = var5.theItemId.copy();
- var7.stackSize = var6;
- par2TileEntityDispenser.setInventorySlotContents(par0Random.nextInt(par2TileEntityDispenser.getSizeInventory()), var7);
- } - }
- else - else
- { - {
- for (int var7 = 0; var7 < var6; ++var7) - for (int var9 = 0; var9 < var6; ++var9)
- { - {
- par2TileEntityDispenser.setInventorySlotContents(par0Random.nextInt(par2TileEntityDispenser.getSizeInventory()), new ItemStack(var5.theItemId, 1, var5.theItemDamage)); - ItemStack var8 = var5.theItemId.copy();
- var8.stackSize = 1;
- par2TileEntityDispenser.setInventorySlotContents(par0Random.nextInt(par2TileEntityDispenser.getSizeInventory()), var8);
- } - }
+ par2TileEntityDispenser.setInventorySlotContents(par0Random.nextInt(par2TileEntityDispenser.getSizeInventory()), item); + par2TileEntityDispenser.setInventorySlotContents(par0Random.nextInt(par2TileEntityDispenser.getSizeInventory()), item);
} }

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/world/Explosion.java --- ../src_base/minecraft/net/minecraft/world/Explosion.java
+++ ../src_work/minecraft/net/minecraft/world/Explosion.java +++ ../src_work/minecraft/net/minecraft/world/Explosion.java
@@ -89,7 +89,7 @@ @@ -90,7 +90,7 @@
if (var25 > 0) if (var25 > 0)
{ {
Block var26 = Block.blocksList[var25]; Block var26 = Block.blocksList[var25];

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/world/World.java --- ../src_base/minecraft/net/minecraft/world/World.java
+++ ../src_work/minecraft/net/minecraft/world/World.java +++ ../src_work/minecraft/net/minecraft/world/World.java
@@ -43,8 +43,30 @@ @@ -44,8 +44,30 @@
import net.minecraft.world.storage.MapStorage; import net.minecraft.world.storage.MapStorage;
import net.minecraft.world.storage.WorldInfo; import net.minecraft.world.storage.WorldInfo;
@ -31,7 +31,7 @@
/** /**
* boolean; if true updates scheduled by scheduleBlockUpdate happen immediately * boolean; if true updates scheduled by scheduleBlockUpdate happen immediately
*/ */
@@ -169,6 +191,11 @@ @@ -165,6 +187,11 @@
* Gets the biome for a given set of x/z coordinates * Gets the biome for a given set of x/z coordinates
*/ */
public BiomeGenBase getBiomeGenForCoords(int par1, int par2) public BiomeGenBase getBiomeGenForCoords(int par1, int par2)
@ -43,7 +43,7 @@
{ {
if (this.blockExists(par1, 0, par2)) if (this.blockExists(par1, 0, par2))
{ {
@@ -199,7 +226,13 @@ @@ -195,7 +222,13 @@
this.theProfiler = par5Profiler; this.theProfiler = par5Profiler;
this.worldInfo = new WorldInfo(par4WorldSettings, par2Str); this.worldInfo = new WorldInfo(par4WorldSettings, par2Str);
this.provider = par3WorldProvider; this.provider = par3WorldProvider;
@ -58,7 +58,7 @@
VillageCollection var6 = (VillageCollection)this.mapStorage.loadData(VillageCollection.class, "villages"); VillageCollection var6 = (VillageCollection)this.mapStorage.loadData(VillageCollection.class, "villages");
if (var6 == null) if (var6 == null)
@@ -213,7 +246,7 @@ @@ -209,7 +242,7 @@
this.villageCollectionObj.func_82566_a(this); this.villageCollectionObj.func_82566_a(this);
} }
@ -67,7 +67,7 @@
this.chunkProvider = this.createChunkProvider(); this.chunkProvider = this.createChunkProvider();
this.calculateInitialSkylight(); this.calculateInitialSkylight();
this.calculateInitialWeather(); this.calculateInitialWeather();
@@ -227,7 +260,7 @@ @@ -223,7 +256,7 @@
this.isRemote = false; this.isRemote = false;
this.saveHandler = par1ISaveHandler; this.saveHandler = par1ISaveHandler;
this.theProfiler = par5Profiler; this.theProfiler = par5Profiler;
@ -76,7 +76,7 @@
this.worldInfo = par1ISaveHandler.loadWorldInfo(); this.worldInfo = par1ISaveHandler.loadWorldInfo();
if (par4WorldProvider != null) if (par4WorldProvider != null)
@@ -280,12 +313,20 @@ @@ -276,12 +309,20 @@
this.worldInfo.setServerInitialized(true); this.worldInfo.setServerInitialized(true);
} }
@ -99,7 +99,7 @@
} }
else else
{ {
@@ -295,6 +336,19 @@ @@ -291,6 +332,19 @@
this.calculateInitialSkylight(); this.calculateInitialSkylight();
this.calculateInitialWeather(); this.calculateInitialWeather();
@ -119,7 +119,7 @@
} }
/** /**
@@ -383,7 +437,8 @@ @@ -379,7 +433,8 @@
*/ */
public boolean isAirBlock(int par1, int par2, int par3) public boolean isAirBlock(int par1, int par2, int par3)
{ {
@ -129,7 +129,7 @@
} }
/** /**
@@ -392,7 +447,8 @@ @@ -388,7 +443,8 @@
public boolean blockHasTileEntity(int par1, int par2, int par3) public boolean blockHasTileEntity(int par1, int par2, int par3)
{ {
int var4 = this.getBlockId(par1, par2, par3); int var4 = this.getBlockId(par1, par2, par3);
@ -139,7 +139,7 @@
} }
public int func_85175_e(int par1, int par2, int par3) public int func_85175_e(int par1, int par2, int par3)
@@ -1134,7 +1190,7 @@ @@ -1130,7 +1186,7 @@
*/ */
public boolean isDaytime() public boolean isDaytime()
{ {
@ -148,7 +148,7 @@
} }
/** /**
@@ -1166,7 +1222,7 @@ @@ -1162,7 +1218,7 @@
int var12 = this.getBlockMetadata(var8, var9, var10); int var12 = this.getBlockMetadata(var8, var9, var10);
Block var13 = Block.blocksList[var11]; Block var13 = Block.blocksList[var11];
@ -157,7 +157,7 @@
{ {
MovingObjectPosition var14 = var13.collisionRayTrace(this, var8, var9, var10, par1Vec3, par2Vec3); MovingObjectPosition var14 = var13.collisionRayTrace(this, var8, var9, var10, par1Vec3, par2Vec3);
@@ -1366,6 +1422,12 @@ @@ -1362,6 +1418,12 @@
*/ */
public void playSoundAtEntity(Entity par1Entity, String par2Str, float par3, float par4) public void playSoundAtEntity(Entity par1Entity, String par2Str, float par3, float par4)
{ {
@ -170,7 +170,7 @@
if (par1Entity != null && par2Str != null) if (par1Entity != null && par2Str != null)
{ {
for (int var5 = 0; var5 < this.worldAccesses.size(); ++var5) for (int var5 = 0; var5 < this.worldAccesses.size(); ++var5)
@@ -1377,6 +1439,12 @@ @@ -1373,6 +1435,12 @@
public void func_85173_a(EntityPlayer par1EntityPlayer, String par2Str, float par3, float par4) public void func_85173_a(EntityPlayer par1EntityPlayer, String par2Str, float par3, float par4)
{ {
@ -183,7 +183,7 @@
if (par1EntityPlayer != null && par2Str != null) if (par1EntityPlayer != null && par2Str != null)
{ {
for (int var5 = 0; var5 < this.worldAccesses.size(); ++var5) for (int var5 = 0; var5 < this.worldAccesses.size(); ++var5)
@@ -1463,6 +1531,11 @@ @@ -1459,6 +1527,11 @@
EntityPlayer var5 = (EntityPlayer)par1Entity; EntityPlayer var5 = (EntityPlayer)par1Entity;
this.playerEntities.add(var5); this.playerEntities.add(var5);
this.updateAllPlayersSleepingFlag(); this.updateAllPlayersSleepingFlag();
@ -195,7 +195,7 @@
} }
this.getChunkFromChunkCoords(var2, var3).addEntity(par1Entity); this.getChunkFromChunkCoords(var2, var3).addEntity(par1Entity);
@@ -1706,6 +1779,12 @@ @@ -1702,6 +1775,12 @@
* Calculates the color for the skybox * Calculates the color for the skybox
*/ */
public Vec3 getSkyColor(Entity par1Entity, float par2) public Vec3 getSkyColor(Entity par1Entity, float par2)
@ -208,7 +208,7 @@
{ {
float var3 = this.getCelestialAngle(par2); float var3 = this.getCelestialAngle(par2);
float var4 = MathHelper.cos(var3 * (float)Math.PI * 2.0F) * 2.0F + 0.5F; float var4 = MathHelper.cos(var3 * (float)Math.PI * 2.0F) * 2.0F + 0.5F;
@@ -1801,6 +1880,12 @@ @@ -1797,6 +1876,12 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public Vec3 drawClouds(float par1) public Vec3 drawClouds(float par1)
{ {
@ -221,7 +221,7 @@
float var2 = this.getCelestialAngle(par1); float var2 = this.getCelestialAngle(par1);
float var3 = MathHelper.cos(var2 * (float)Math.PI * 2.0F) * 2.0F + 0.5F; float var3 = MathHelper.cos(var2 * (float)Math.PI * 2.0F) * 2.0F + 0.5F;
@@ -1879,7 +1964,7 @@ @@ -1875,7 +1960,7 @@
{ {
int var5 = var3.getBlockID(par1, var4, par2); int var5 = var3.getBlockID(par1, var4, par2);
@ -230,7 +230,7 @@
{ {
return var4 + 1; return var4 + 1;
} }
@@ -1894,6 +1979,12 @@ @@ -1890,6 +1975,12 @@
* How bright are stars in the sky * How bright are stars in the sky
*/ */
public float getStarBrightness(float par1) public float getStarBrightness(float par1)
@ -243,7 +243,7 @@
{ {
float var2 = this.getCelestialAngle(par1); float var2 = this.getCelestialAngle(par1);
float var3 = 1.0F - (MathHelper.cos(var2 * (float)Math.PI * 2.0F) * 2.0F + 0.25F); float var3 = 1.0F - (MathHelper.cos(var2 * (float)Math.PI * 2.0F) * 2.0F + 0.25F);
@@ -2094,7 +2185,7 @@ @@ -2091,7 +2182,7 @@
if (var11 != null) if (var11 != null)
{ {
@ -252,7 +252,7 @@
} }
} }
} }
@@ -2103,6 +2194,10 @@ @@ -2100,6 +2191,10 @@
if (!this.entityRemoval.isEmpty()) if (!this.entityRemoval.isEmpty())
{ {
@ -263,7 +263,7 @@
this.loadedTileEntityList.removeAll(this.entityRemoval); this.loadedTileEntityList.removeAll(this.entityRemoval);
this.entityRemoval.clear(); this.entityRemoval.clear();
} }
@@ -2123,18 +2218,18 @@ @@ -2120,18 +2215,18 @@
{ {
this.loadedTileEntityList.add(var12); this.loadedTileEntityList.add(var12);
} }
@ -286,7 +286,7 @@
} }
} }
@@ -2147,13 +2242,13 @@ @@ -2144,13 +2239,13 @@
public void addTileEntity(Collection par1Collection) public void addTileEntity(Collection par1Collection)
{ {
@ -307,7 +307,7 @@
} }
} }
@@ -2173,9 +2268,17 @@ @@ -2170,9 +2265,17 @@
{ {
int var3 = MathHelper.floor_double(par1Entity.posX); int var3 = MathHelper.floor_double(par1Entity.posX);
int var4 = MathHelper.floor_double(par1Entity.posZ); int var4 = MathHelper.floor_double(par1Entity.posZ);
@ -328,7 +328,7 @@
{ {
par1Entity.lastTickPosX = par1Entity.posX; par1Entity.lastTickPosX = par1Entity.posX;
par1Entity.lastTickPosY = par1Entity.posY; par1Entity.lastTickPosY = par1Entity.posY;
@@ -2407,6 +2510,14 @@ @@ -2405,6 +2508,14 @@
{ {
return true; return true;
} }
@ -343,7 +343,7 @@
} }
} }
} }
@@ -2712,25 +2823,21 @@ @@ -2710,25 +2821,21 @@
*/ */
public void setBlockTileEntity(int par1, int par2, int par3, TileEntity par4TileEntity) public void setBlockTileEntity(int par1, int par2, int par3, TileEntity par4TileEntity)
{ {
@ -384,7 +384,7 @@
} }
} }
@@ -2739,27 +2846,10 @@ @@ -2737,27 +2844,10 @@
*/ */
public void removeBlockTileEntity(int par1, int par2, int par3) public void removeBlockTileEntity(int par1, int par2, int par3)
{ {
@ -416,7 +416,7 @@
} }
} }
@@ -2785,7 +2875,8 @@ @@ -2783,7 +2873,8 @@
*/ */
public boolean isBlockNormalCube(int par1, int par2, int par3) public boolean isBlockNormalCube(int par1, int par2, int par3)
{ {
@ -426,7 +426,7 @@
} }
public boolean func_85174_u(int par1, int par2, int par3) public boolean func_85174_u(int par1, int par2, int par3)
@@ -2808,8 +2899,7 @@ @@ -2806,8 +2897,7 @@
*/ */
public boolean doesBlockHaveSolidTopSurface(int par1, int par2, int par3) public boolean doesBlockHaveSolidTopSurface(int par1, int par2, int par3)
{ {
@ -436,7 +436,7 @@
} }
/** /**
@@ -2825,7 +2915,7 @@ @@ -2823,7 +2913,7 @@
if (var5 != null && !var5.isEmpty()) if (var5 != null && !var5.isEmpty())
{ {
Block var6 = Block.blocksList[this.getBlockId(par1, par2, par3)]; Block var6 = Block.blocksList[this.getBlockId(par1, par2, par3)];
@ -445,7 +445,7 @@
} }
else else
{ {
@@ -2856,8 +2946,7 @@ @@ -2854,8 +2944,7 @@
*/ */
public void setAllowedSpawnTypes(boolean par1, boolean par2) public void setAllowedSpawnTypes(boolean par1, boolean par2)
{ {
@ -455,7 +455,7 @@
} }
/** /**
@@ -2873,6 +2962,11 @@ @@ -2871,6 +2960,11 @@
*/ */
private void calculateInitialWeather() private void calculateInitialWeather()
{ {
@ -467,7 +467,7 @@
if (this.worldInfo.isRaining()) if (this.worldInfo.isRaining())
{ {
this.rainingStrength = 1.0F; this.rainingStrength = 1.0F;
@@ -2888,6 +2982,11 @@ @@ -2886,6 +2980,11 @@
* Updates all weather states. * Updates all weather states.
*/ */
protected void updateWeather() protected void updateWeather()
@ -479,7 +479,7 @@
{ {
if (!this.provider.hasNoSky) if (!this.provider.hasNoSky)
{ {
@@ -2990,12 +3089,14 @@ @@ -2983,12 +3082,14 @@
public void toggleRain() public void toggleRain()
{ {
@ -495,7 +495,7 @@
this.theProfiler.startSection("buildList"); this.theProfiler.startSection("buildList");
int var1; int var1;
EntityPlayer var2; EntityPlayer var2;
@@ -3102,6 +3203,11 @@ @@ -3095,6 +3196,11 @@
*/ */
public boolean canBlockFreeze(int par1, int par2, int par3, boolean par4) public boolean canBlockFreeze(int par1, int par2, int par3, boolean par4)
{ {
@ -507,7 +507,7 @@
BiomeGenBase var5 = this.getBiomeGenForCoords(par1, par3); BiomeGenBase var5 = this.getBiomeGenForCoords(par1, par3);
float var6 = var5.getFloatTemperature(); float var6 = var5.getFloatTemperature();
@@ -3159,6 +3265,11 @@ @@ -3152,6 +3258,11 @@
* Tests whether or not snow can be placed at a given location * Tests whether or not snow can be placed at a given location
*/ */
public boolean canSnowAt(int par1, int par2, int par3) public boolean canSnowAt(int par1, int par2, int par3)
@ -519,7 +519,7 @@
{ {
BiomeGenBase var4 = this.getBiomeGenForCoords(par1, par3); BiomeGenBase var4 = this.getBiomeGenForCoords(par1, par3);
float var5 = var4.getFloatTemperature(); float var5 = var4.getFloatTemperature();
@@ -3252,7 +3363,7 @@ @@ -3245,7 +3356,7 @@
private int computeBlockLightValue(int par1, int par2, int par3, int par4, int par5, int par6) private int computeBlockLightValue(int par1, int par2, int par3, int par4, int par5, int par6)
{ {
@ -528,7 +528,7 @@
int var8 = this.getSavedLightValue(EnumSkyBlock.Block, par2 - 1, par3, par4) - par6; int var8 = this.getSavedLightValue(EnumSkyBlock.Block, par2 - 1, par3, par4) - par6;
int var9 = this.getSavedLightValue(EnumSkyBlock.Block, par2 + 1, par3, par4) - par6; int var9 = this.getSavedLightValue(EnumSkyBlock.Block, par2 + 1, par3, par4) - par6;
int var10 = this.getSavedLightValue(EnumSkyBlock.Block, par2, par3 - 1, par4) - par6; int var10 = this.getSavedLightValue(EnumSkyBlock.Block, par2, par3 - 1, par4) - par6;
@@ -3387,7 +3498,7 @@ @@ -3380,7 +3491,7 @@
int var21 = var24 + (var18 / 2 + 1) % 3 / 2 * var19; int var21 = var24 + (var18 / 2 + 1) % 3 / 2 * var19;
int var22 = var12 + (var18 / 2 + 2) % 3 / 2 * var19; int var22 = var12 + (var18 / 2 + 2) % 3 / 2 * var19;
var14 = this.getSavedLightValue(par1EnumSkyBlock, var20, var21, var22); var14 = this.getSavedLightValue(par1EnumSkyBlock, var20, var21, var22);
@ -537,7 +537,7 @@
if (var23 == 0) if (var23 == 0)
{ {
@@ -3418,7 +3529,7 @@ @@ -3411,7 +3522,7 @@
var12 = (var9 >> 12 & 63) - 32 + par4; var12 = (var9 >> 12 & 63) - 32 + par4;
var13 = this.getSavedLightValue(par1EnumSkyBlock, var10, var24, var12); var13 = this.getSavedLightValue(par1EnumSkyBlock, var10, var24, var12);
var14 = this.getBlockId(var10, var24, var12); var14 = this.getBlockId(var10, var24, var12);
@ -546,7 +546,7 @@
if (var15 == 0) if (var15 == 0)
{ {
@@ -3520,10 +3631,10 @@ @@ -3513,10 +3624,10 @@
public List getEntitiesWithinAABBExcludingEntity(Entity par1Entity, AxisAlignedBB par2AxisAlignedBB) public List getEntitiesWithinAABBExcludingEntity(Entity par1Entity, AxisAlignedBB par2AxisAlignedBB)
{ {
this.entitiesWithinAABBExcludingEntity.clear(); this.entitiesWithinAABBExcludingEntity.clear();
@ -561,7 +561,7 @@
for (int var7 = var3; var7 <= var4; ++var7) for (int var7 = var3; var7 <= var4; ++var7)
{ {
@@ -3549,10 +3660,10 @@ @@ -3542,10 +3653,10 @@
public List selectEntitiesWithinAABB(Class par1Class, AxisAlignedBB par2AxisAlignedBB, IEntitySelector par3IEntitySelector) public List selectEntitiesWithinAABB(Class par1Class, AxisAlignedBB par2AxisAlignedBB, IEntitySelector par3IEntitySelector)
{ {
@ -576,7 +576,7 @@
ArrayList var8 = new ArrayList(); ArrayList var8 = new ArrayList();
for (int var9 = var4; var9 <= var5; ++var9) for (int var9 = var4; var9 <= var5; ++var9)
@@ -3645,11 +3756,14 @@ @@ -3638,11 +3749,14 @@
*/ */
public void addLoadedEntities(List par1List) public void addLoadedEntities(List par1List)
{ {
@ -594,7 +594,7 @@
} }
} }
@@ -3683,6 +3797,11 @@ @@ -3676,6 +3790,11 @@
else else
{ {
if (var9 != null && (var9 == Block.waterMoving || var9 == Block.waterStill || var9 == Block.lavaMoving || var9 == Block.lavaStill || var9 == Block.fire || var9.blockMaterial.isReplaceable())) if (var9 != null && (var9 == Block.waterMoving || var9 == Block.waterStill || var9 == Block.lavaMoving || var9 == Block.lavaStill || var9 == Block.fire || var9.blockMaterial.isReplaceable()))
@ -606,7 +606,7 @@
{ {
var9 = null; var9 = null;
} }
@@ -3900,7 +4019,7 @@ @@ -3893,7 +4012,7 @@
*/ */
public long getSeed() public long getSeed()
{ {
@ -615,7 +615,7 @@
} }
public long getTotalWorldTime() public long getTotalWorldTime()
@@ -3910,7 +4029,7 @@ @@ -3903,7 +4022,7 @@
public long getWorldTime() public long getWorldTime()
{ {
@ -624,7 +624,7 @@
} }
/** /**
@@ -3918,7 +4037,7 @@ @@ -3911,7 +4030,7 @@
*/ */
public void setWorldTime(long par1) public void setWorldTime(long par1)
{ {
@ -633,7 +633,7 @@
} }
/** /**
@@ -3926,13 +4045,13 @@ @@ -3919,13 +4038,13 @@
*/ */
public ChunkCoordinates getSpawnPoint() public ChunkCoordinates getSpawnPoint()
{ {
@ -649,7 +649,7 @@
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@@ -3956,7 +4075,10 @@ @@ -3949,7 +4068,10 @@
if (!this.loadedEntityList.contains(par1Entity)) if (!this.loadedEntityList.contains(par1Entity))
{ {
@ -661,7 +661,7 @@
} }
} }
@@ -3964,6 +4086,11 @@ @@ -3957,6 +4079,11 @@
* Called when checking if a certain block can be mined or not. The 'spawn safe zone' check is located here. * Called when checking if a certain block can be mined or not. The 'spawn safe zone' check is located here.
*/ */
public boolean canMineBlock(EntityPlayer par1EntityPlayer, int par2, int par3, int par4) public boolean canMineBlock(EntityPlayer par1EntityPlayer, int par2, int par3, int par4)
@ -673,7 +673,7 @@
{ {
return true; return true;
} }
@@ -4084,8 +4211,7 @@ @@ -4077,8 +4204,7 @@
*/ */
public boolean isBlockHighHumidity(int par1, int par2, int par3) public boolean isBlockHighHumidity(int par1, int par2, int par3)
{ {
@ -683,7 +683,7 @@
} }
/** /**
@@ -4147,7 +4273,7 @@ @@ -4153,7 +4279,7 @@
*/ */
public int getHeight() public int getHeight()
{ {
@ -692,7 +692,7 @@
} }
/** /**
@@ -4155,7 +4281,7 @@ @@ -4161,7 +4287,7 @@
*/ */
public int getActualHeight() public int getActualHeight()
{ {
@ -701,7 +701,7 @@
} }
public IUpdatePlayerListBox func_82735_a(EntityMinecart par1EntityMinecart) public IUpdatePlayerListBox func_82735_a(EntityMinecart par1EntityMinecart)
@@ -4198,7 +4324,7 @@ @@ -4204,7 +4330,7 @@
*/ */
public double getHorizon() public double getHorizon()
{ {
@ -710,10 +710,10 @@
} }
/** /**
@@ -4256,4 +4382,75 @@ @@ -4265,4 +4391,75 @@
return this.theCalendar; @SideOnly(Side.CLIENT)
} public void func_92088_a(double par1, double par3, double par5, double par7, double par9, double par11, NBTTagCompound par13NBTTagCompound) {}
+ +
+ /** + /**
+ * Adds a single TileEntity to the world. + * Adds a single TileEntity to the world.
@ -732,48 +732,48 @@
+ * Determine if the given block is considered solid on the + * Determine if the given block is considered solid on the
+ * specified side. Used by placement logic. + * specified side. Used by placement logic.
+ * + *
+ * @param X Block X Position + * @param x Block X Position
+ * @param Y Block Y Position + * @param y Block Y Position
+ * @param Z Block Z Position + * @param z Block Z Position
+ * @param side The Side in question + * @param side The Side in question
+ * @return True if the side is solid + * @return True if the side is solid
+ */ + */
+ public boolean isBlockSolidOnSide(int X, int Y, int Z, ForgeDirection side) + public boolean isBlockSolidOnSide(int x, int y, int z, ForgeDirection side)
+ { + {
+ return isBlockSolidOnSide(X, Y, Z, side, false); + return isBlockSolidOnSide(x, y, z, side, false);
+ } + }
+ +
+ /** + /**
+ * Determine if the given block is considered solid on the + * Determine if the given block is considered solid on the
+ * specified side. Used by placement logic. + * specified side. Used by placement logic.
+ * + *
+ * @param X Block X Position + * @param x Block X Position
+ * @param Y Block Y Position + * @param y Block Y Position
+ * @param Z Block Z Position + * @param z Block Z Position
+ * @param side The Side in question + * @param side The Side in question
+ * @param _default The defult to return if the block doesn't exist. + * @param _default The defult to return if the block doesn't exist.
+ * @return True if the side is solid + * @return True if the side is solid
+ */ + */
+ public boolean isBlockSolidOnSide(int X, int Y, int Z, ForgeDirection side, boolean _default) + public boolean isBlockSolidOnSide(int x, int y, int z, ForgeDirection side, boolean _default)
+ { + {
+ if (X < -30000000 || Z < -30000000 || X >= 30000000 || Z >= 30000000) + if (x < -30000000 || z < -30000000 || x >= 30000000 || z >= 30000000)
+ { + {
+ return _default; + return _default;
+ } + }
+ +
+ Chunk var5 = this.chunkProvider.provideChunk(X >> 4, Z >> 4); + Chunk var5 = this.chunkProvider.provideChunk(x >> 4, z >> 4);
+ if (var5 == null || var5.isEmpty()) + if (var5 == null || var5.isEmpty())
+ { + {
+ return _default; + return _default;
+ } + }
+ +
+ Block block = Block.blocksList[getBlockId(X, Y, Z)]; + Block block = Block.blocksList[getBlockId(x, y, z)];
+ if(block == null) + if(block == null)
+ { + {
+ return false; + return false;
+ } + }
+ +
+ return block.isBlockSolidOnSide(this, X, Y, Z, side); + return block.isBlockSolidOnSide(this, x, y, z, side);
+ } + }
+ +
+ /** + /**

View File

@ -1,12 +1,8 @@
--- ../src_base/minecraft/net/minecraft/world/WorldProvider.java --- ../src_base/minecraft/net/minecraft/world/WorldProvider.java
+++ ../src_work/minecraft/net/minecraft/world/WorldProvider.java +++ ../src_work/minecraft/net/minecraft/world/WorldProvider.java
@@ -1,18 +1,25 @@ @@ -3,16 +3,23 @@
package net.minecraft.world; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraftforge.client.SkyProvider;
+import net.minecraftforge.common.DimensionManager;
import cpw.mods.fml.common.Side;
import cpw.mods.fml.common.asm.SideOnly;
import net.minecraft.block.Block; import net.minecraft.block.Block;
+import net.minecraft.entity.Entity; +import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayer;
@ -23,6 +19,8 @@
import net.minecraft.world.gen.ChunkProviderGenerate; import net.minecraft.world.gen.ChunkProviderGenerate;
import net.minecraft.world.gen.FlatGeneratorInfo; import net.minecraft.world.gen.FlatGeneratorInfo;
+import net.minecraft.world.storage.WorldInfo; +import net.minecraft.world.storage.WorldInfo;
+import net.minecraftforge.client.IRenderHandler;
+import net.minecraftforge.common.DimensionManager;
public abstract class WorldProvider public abstract class WorldProvider
{ {
@ -41,8 +39,8 @@
public abstract String getDimensionName(); public abstract String getDimensionName();
+ +
+ /*======================================= Forge Start =========================================*/ + /*======================================= Forge Start =========================================*/
+ private SkyProvider skyProvider = null; + private IRenderHandler skyRenderer = null;
+ private SkyProvider cloudRenderer = null; + private IRenderHandler cloudRenderer = null;
+ +
+ /** + /**
+ * Sets the providers current dimension ID, used in default getSaveFolder() + * Sets the providers current dimension ID, used in default getSaveFolder()
@ -117,25 +115,25 @@
+ } + }
+ +
+ @SideOnly(Side.CLIENT) + @SideOnly(Side.CLIENT)
+ public SkyProvider getSkyProvider() + public IRenderHandler getSkyRenderer()
+ { + {
+ return this.skyProvider; + return this.skyRenderer;
+ } + }
+ +
+ @SideOnly(Side.CLIENT) + @SideOnly(Side.CLIENT)
+ public void setSkyProvider(SkyProvider skyProvider) + public void setSkyRenderer(IRenderHandler skyRenderer)
+ { + {
+ this.skyProvider = skyProvider; + this.skyRenderer = skyRenderer;
+ } + }
+ +
+ @SideOnly(Side.CLIENT) + @SideOnly(Side.CLIENT)
+ public SkyProvider getCloudRenderer() + public IRenderHandler getCloudRenderer()
+ { + {
+ return cloudRenderer; + return cloudRenderer;
+ } + }
+ +
+ @SideOnly(Side.CLIENT) + @SideOnly(Side.CLIENT)
+ public void setCloudRenderer(SkyProvider renderer) + public void setCloudRenderer(IRenderHandler renderer)
+ { + {
+ cloudRenderer = renderer; + cloudRenderer = renderer;
+ } + }

View File

@ -2,8 +2,8 @@
+++ ../src_work/minecraft/net/minecraft/world/WorldServer.java +++ ../src_work/minecraft/net/minecraft/world/WorldServer.java
@@ -2,6 +2,8 @@ @@ -2,6 +2,8 @@
import cpw.mods.fml.common.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
+ +
+import java.io.File; +import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
@ -104,7 +104,7 @@
{ {
this.updateLCG = this.updateLCG * 3 + 1013904223; this.updateLCG = this.updateLCG * 3 + 1013904223;
var8 = this.updateLCG >> 2; var8 = this.updateLCG >> 2;
@@ -333,7 +358,7 @@ @@ -332,7 +357,7 @@
this.theProfiler.endStartSection("iceandsnow"); this.theProfiler.endStartSection("iceandsnow");
int var13; int var13;
@ -113,7 +113,7 @@
{ {
this.updateLCG = this.updateLCG * 3 + 1013904223; this.updateLCG = this.updateLCG * 3 + 1013904223;
var8 = this.updateLCG >> 2; var8 = this.updateLCG >> 2;
@@ -412,7 +437,8 @@ @@ -411,7 +436,8 @@
public void func_82740_a(int par1, int par2, int par3, int par4, int par5, int par6) public void func_82740_a(int par1, int par2, int par3, int par4, int par5, int par6)
{ {
NextTickListEntry var7 = new NextTickListEntry(par1, par2, par3, par4); NextTickListEntry var7 = new NextTickListEntry(par1, par2, par3, par4);
@ -123,7 +123,7 @@
if (this.scheduledUpdatesAreImmediate && par4 > 0) if (this.scheduledUpdatesAreImmediate && par4 > 0)
{ {
@@ -474,7 +500,7 @@ @@ -473,7 +499,7 @@
*/ */
public void updateEntities() public void updateEntities()
{ {
@ -132,7 +132,7 @@
{ {
if (this.updateEntityTick++ >= 1200) if (this.updateEntityTick++ >= 1200)
{ {
@@ -526,7 +552,8 @@ @@ -525,7 +551,8 @@
this.pendingTickListEntries.remove(var4); this.pendingTickListEntries.remove(var4);
this.field_73064_N.remove(var4); this.field_73064_N.remove(var4);
@ -142,7 +142,7 @@
if (this.checkChunksExist(var4.xCoord - var5, var4.yCoord - var5, var4.zCoord - var5, var4.xCoord + var5, var4.yCoord + var5, var4.zCoord + var5)) if (this.checkChunksExist(var4.xCoord - var5, var4.yCoord - var5, var4.zCoord - var5, var4.xCoord + var5, var4.yCoord + var5, var4.zCoord + var5))
{ {
@@ -645,16 +672,28 @@ @@ -644,16 +671,28 @@
{ {
ArrayList var7 = new ArrayList(); ArrayList var7 = new ArrayList();
@ -181,7 +181,7 @@
return var7; return var7;
} }
@@ -662,6 +701,11 @@ @@ -661,6 +700,11 @@
* Called when checking if a certain block can be mined or not. The 'spawn safe zone' check is located here. * Called when checking if a certain block can be mined or not. The 'spawn safe zone' check is located here.
*/ */
public boolean canMineBlock(EntityPlayer par1EntityPlayer, int par2, int par3, int par4) public boolean canMineBlock(EntityPlayer par1EntityPlayer, int par2, int par3, int par4)
@ -193,7 +193,7 @@
{ {
int var5 = MathHelper.abs_int(par2 - this.worldInfo.getSpawnX()); int var5 = MathHelper.abs_int(par2 - this.worldInfo.getSpawnX());
int var6 = MathHelper.abs_int(par4 - this.worldInfo.getSpawnZ()); int var6 = MathHelper.abs_int(par4 - this.worldInfo.getSpawnZ());
@@ -671,7 +715,7 @@ @@ -670,7 +714,7 @@
var6 = var5; var6 = var5;
} }
@ -202,16 +202,16 @@
} }
protected void initialize(WorldSettings par1WorldSettings) protected void initialize(WorldSettings par1WorldSettings)
@@ -754,7 +798,7 @@ @@ -753,7 +797,7 @@
*/ */
protected void createBonusChest() protected void createBonusChest()
{ {
- WorldGeneratorBonusChest var1 = new WorldGeneratorBonusChest(bonusChestContent, 10); - WorldGeneratorBonusChest var1 = new WorldGeneratorBonusChest(bonusChestContent, 10);
+ WorldGeneratorBonusChest var1 = new WorldGeneratorBonusChest(ChestGenHooks.getItems(BONUS_CHEST), ChestGenHooks.getCount(BONUS_CHEST, rand)); + WorldGeneratorBonusChest var1 = new WorldGeneratorBonusChest(ChestGenHooks.getItems(BONUS_CHEST, rand), ChestGenHooks.getCount(BONUS_CHEST, rand));
for (int var2 = 0; var2 < 10; ++var2) for (int var2 = 0; var2 < 10; ++var2)
{ {
@@ -797,6 +841,7 @@ @@ -796,6 +840,7 @@
} }
this.chunkProvider.saveChunks(par1, par2IProgressUpdate); this.chunkProvider.saveChunks(par1, par2IProgressUpdate);
@ -219,7 +219,7 @@
} }
} }
@@ -808,6 +853,7 @@ @@ -807,6 +852,7 @@
this.checkSessionLock(); this.checkSessionLock();
this.saveHandler.saveWorldInfoWithPlayer(this.worldInfo, this.mcServer.getConfigurationManager().getTagsFromLastWrite()); this.saveHandler.saveWorldInfoWithPlayer(this.worldInfo, this.mcServer.getConfigurationManager().getTagsFromLastWrite());
this.mapStorage.saveAllData(); this.mapStorage.saveAllData();
@ -227,7 +227,7 @@
} }
/** /**
@@ -1030,4 +1076,9 @@ @@ -1029,4 +1075,9 @@
{ {
return this.field_85177_Q; return this.field_85177_Q;
} }

View File

@ -1,8 +1,8 @@
--- ../src_base/minecraft/net/minecraft/world/biome/WorldChunkManager.java --- ../src_base/minecraft/net/minecraft/world/biome/WorldChunkManager.java
+++ ../src_work/minecraft/net/minecraft/world/biome/WorldChunkManager.java +++ ../src_work/minecraft/net/minecraft/world/biome/WorldChunkManager.java
@@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
import cpw.mods.fml.common.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import java.util.ArrayList; import java.util.ArrayList;
+import java.util.Arrays; +import java.util.Arrays;
import java.util.List; import java.util.List;

View File

@ -56,7 +56,7 @@
+ +
+ if (this.storageArrays[var10] == null) + if (this.storageArrays[var10] == null)
+ { + {
+ this.storageArrays[var10] = new ExtendedBlockStorage(var10 << 4); + this.storageArrays[var10] = new ExtendedBlockStorage(var10 << 4, !world.provider.hasNoSky);
+ } + }
+ +
+ this.storageArrays[var10].setExtBlockID(x, y & 15, z, id); + this.storageArrays[var10].setExtBlockID(x, y & 15, z, id);
@ -98,7 +98,7 @@
+ int storageBlock = y >> 4; + int storageBlock = y >> 4;
+ +
+ if (this.storageArrays[storageBlock] == null) { + if (this.storageArrays[storageBlock] == null) {
+ this.storageArrays[storageBlock] = new ExtendedBlockStorage(storageBlock << 4); + this.storageArrays[storageBlock] = new ExtendedBlockStorage(storageBlock << 4, !world.provider.hasNoSky);
+ } + }
+ +
+ this.storageArrays[storageBlock].setExtBlockID(x, y & 15, z, id); + this.storageArrays[storageBlock].setExtBlockID(x, y & 15, z, id);
@ -247,7 +247,7 @@
{ {
- ExtendedBlockStorage var5 = this.storageArrays[par3 >> 4]; - ExtendedBlockStorage var5 = this.storageArrays[par3 >> 4];
+ ExtendedBlockStorage var5 = (par3 >> 4 >= storageArrays.length || par3 >> 4 < 0 ? null : storageArrays[par3 >> 4]); + ExtendedBlockStorage var5 = (par3 >> 4 >= storageArrays.length || par3 >> 4 < 0 ? null : storageArrays[par3 >> 4]);
return var5 == null ? (this.canBlockSeeTheSky(par2, par3, par4) ? par1EnumSkyBlock.defaultLightValue : 0) : (par1EnumSkyBlock == EnumSkyBlock.Sky ? var5.getExtSkylightValue(par2, par3 & 15, par4) : (par1EnumSkyBlock == EnumSkyBlock.Block ? var5.getExtBlocklightValue(par2, par3 & 15, par4) : par1EnumSkyBlock.defaultLightValue)); return var5 == null ? (this.canBlockSeeTheSky(par2, par3, par4) ? par1EnumSkyBlock.defaultLightValue : 0) : (par1EnumSkyBlock == EnumSkyBlock.Sky ? (this.worldObj.provider.hasNoSky ? 0 : var5.getExtSkylightValue(par2, par3 & 15, par4)) : (par1EnumSkyBlock == EnumSkyBlock.Block ? var5.getExtBlocklightValue(par2, par3 & 15, par4) : par1EnumSkyBlock.defaultLightValue));
} }
@@ -754,6 +848,11 @@ @@ -754,6 +848,11 @@
@ -403,9 +403,9 @@
+ } + }
+ +
int var5 = 0; int var5 = 0;
int var6; boolean var6 = !this.worldObj.provider.hasNoSky;
int var7;
@@ -1342,12 +1458,26 @@ @@ -1346,12 +1462,26 @@
} }
this.generateHeightMap(); this.generateHeightMap();
@ -413,8 +413,8 @@
- -
- while (var10.hasNext()) - while (var10.hasNext())
- { - {
- TileEntity var9 = (TileEntity)var10.next(); - TileEntity var11 = (TileEntity)var10.next();
- var9.updateContainingBlockInfo(); - var11.updateContainingBlockInfo();
+ +
+ List<TileEntity> invalidList = new ArrayList<TileEntity>(); + List<TileEntity> invalidList = new ArrayList<TileEntity>();
+ iterator = chunkTileEntityMap.values().iterator(); + iterator = chunkTileEntityMap.values().iterator();
@ -438,7 +438,7 @@
} }
} }
@@ -1456,4 +1586,18 @@ @@ -1460,4 +1590,18 @@
} }
} }
} }

View File

@ -1,16 +1,15 @@
--- ../src_base/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java --- ../src_base/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java
+++ ../src_work/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java +++ ../src_work/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java
@@ -28,6 +28,9 @@ @@ -27,6 +27,8 @@
import net.minecraft.world.chunk.NibbleArray;
import net.minecraft.world.storage.IThreadedFileIO; import net.minecraft.world.storage.IThreadedFileIO;
import net.minecraft.world.storage.ThreadedFileIOBase; import net.minecraft.world.storage.ThreadedFileIOBase;
+import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.world.ChunkDataEvent; +import net.minecraftforge.event.world.ChunkDataEvent;
+
public class AnvilChunkLoader implements IThreadedFileIO, IChunkLoader public class AnvilChunkLoader implements IChunkLoader, IThreadedFileIO
{ {
private List chunksToRemove = new ArrayList(); @@ -108,6 +110,7 @@
@@ -108,6 +111,7 @@
var5 = this.readChunkFromNBT(par1World, par4NBTTagCompound.getCompoundTag("Level")); var5 = this.readChunkFromNBT(par1World, par4NBTTagCompound.getCompoundTag("Level"));
} }
@ -18,7 +17,7 @@
return var5; return var5;
} }
} }
@@ -123,6 +127,7 @@ @@ -123,6 +126,7 @@
var3.setTag("Level", var4); var3.setTag("Level", var4);
this.writeChunkToNBT(par2Chunk, par1World, var4); this.writeChunkToNBT(par2Chunk, par1World, var4);
this.func_75824_a(par2Chunk.getChunkCoordIntPair(), var3); this.func_75824_a(par2Chunk.getChunkCoordIntPair(), var3);

View File

@ -1,8 +1,8 @@
--- ../src_base/minecraft/net/minecraft/world/gen/structure/ComponentMineshaftCorridor.java --- ../src_base/minecraft/net/minecraft/world/gen/structure/ComponentMineshaftCorridor.java
+++ ../src_work/minecraft/net/minecraft/world/gen/structure/ComponentMineshaftCorridor.java +++ ../src_work/minecraft/net/minecraft/world/gen/structure/ComponentMineshaftCorridor.java
@@ -5,6 +5,9 @@ @@ -7,6 +7,9 @@
import net.minecraft.block.Block;
import net.minecraft.tileentity.TileEntityMobSpawner; import net.minecraft.tileentity.TileEntityMobSpawner;
import net.minecraft.util.WeightedRandomChestContent;
import net.minecraft.world.World; import net.minecraft.world.World;
+ +
+import net.minecraftforge.common.ChestGenHooks; +import net.minecraftforge.common.ChestGenHooks;
@ -10,7 +10,7 @@
public class ComponentMineshaftCorridor extends StructureComponent public class ComponentMineshaftCorridor extends StructureComponent
{ {
@@ -234,14 +237,16 @@ @@ -236,14 +239,16 @@
this.randomlyPlaceBlock(par1World, par3StructureBoundingBox, par2Random, 0.05F, 1, 2, var10 - 1, Block.torchWood.blockID, 0); this.randomlyPlaceBlock(par1World, par3StructureBoundingBox, par2Random, 0.05F, 1, 2, var10 - 1, Block.torchWood.blockID, 0);
this.randomlyPlaceBlock(par1World, par3StructureBoundingBox, par2Random, 0.05F, 1, 2, var10 + 1, Block.torchWood.blockID, 0); this.randomlyPlaceBlock(par1World, par3StructureBoundingBox, par2Random, 0.05F, 1, 2, var10 + 1, Block.torchWood.blockID, 0);
@ -18,14 +18,14 @@
+ +
if (par2Random.nextInt(100) == 0) if (par2Random.nextInt(100) == 0)
{ {
- this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 2, 0, var10 - 1, StructureMineshaftPieces.func_78816_a(), 3 + par2Random.nextInt(4)); - this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 2, 0, var10 - 1, WeightedRandomChestContent.func_92029_a(StructureMineshaftPieces.func_78816_a(), new WeightedRandomChestContent[] {Item.field_92053_bW.func_92059_b(par2Random)}), 3 + par2Random.nextInt(4));
+ this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 2, 0, var10 - 1, info.getItems(), info.getCount(par2Random)); + this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 2, 0, var10 - 1, info.getItems(par2Random), info.getCount(par2Random));
} }
if (par2Random.nextInt(100) == 0) if (par2Random.nextInt(100) == 0)
{ {
- this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 0, 0, var10 + 1, StructureMineshaftPieces.func_78816_a(), 3 + par2Random.nextInt(4)); - this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 0, 0, var10 + 1, WeightedRandomChestContent.func_92029_a(StructureMineshaftPieces.func_78816_a(), new WeightedRandomChestContent[] {Item.field_92053_bW.func_92059_b(par2Random)}), 3 + par2Random.nextInt(4));
+ this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 0, 0, var10 + 1, info.getItems(), info.getCount(par2Random)); + this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 0, 0, var10 + 1, info.getItems(par2Random), info.getCount(par2Random));
} }
if (this.hasSpiders && !this.spawnerPlaced) if (this.hasSpiders && !this.spawnerPlaced)

View File

@ -10,12 +10,19 @@
public class ComponentScatteredFeatureDesertPyramid extends ComponentScatteredFeature public class ComponentScatteredFeatureDesertPyramid extends ComponentScatteredFeature
{ {
@@ -221,7 +224,7 @@ @@ -215,13 +218,14 @@
this.placeBlockAtCurrentPosition(par1World, Block.sandStone.blockID, 1, 10, -10, 13, par3StructureBoundingBox);
this.placeBlockAtCurrentPosition(par1World, Block.sandStone.blockID, 2, 10, -11, 13, par3StructureBoundingBox);
+ ChestGenHooks info = ChestGenHooks.getInfo(PYRAMID_DESERT_CHEST);
for (var10 = 0; var10 < 4; ++var10)
{
if (!this.field_74940_h[var10])
{ {
int var11 = Direction.offsetX[var10] * 2; int var11 = Direction.offsetX[var10] * 2;
int var12 = Direction.offsetZ[var10] * 2; int var12 = Direction.offsetZ[var10] * 2;
- this.field_74940_h[var10] = this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 10 + var11, -11, 10 + var12, itemsToGenerateInTemple, 2 + par2Random.nextInt(5)); - this.field_74940_h[var10] = this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 10 + var11, -11, 10 + var12, WeightedRandomChestContent.func_92029_a(itemsToGenerateInTemple, new WeightedRandomChestContent[] {Item.field_92053_bW.func_92059_b(par2Random)}), 2 + par2Random.nextInt(5));
+ this.field_74940_h[var10] = this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 10 + var11, -11, 10 + var12, ChestGenHooks.getItems(PYRAMID_DESERT_CHEST), ChestGenHooks.getCount(PYRAMID_DESERT_CHEST, par2Random)); + this.field_74940_h[var10] = this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 10 + var11, -11, 10 + var12, info.getItems(par2Random), info.getCount(par2Random));
} }
} }

View File

@ -20,7 +20,7 @@
if (!this.field_74945_j) if (!this.field_74945_j)
{ {
- this.field_74945_j = this.generateStructureDispenserContents(par1World, par3StructureBoundingBox, par2Random, 3, -2, 1, 2, junglePyramidsDispenserContents, 2); - this.field_74945_j = this.generateStructureDispenserContents(par1World, par3StructureBoundingBox, par2Random, 3, -2, 1, 2, junglePyramidsDispenserContents, 2);
+ this.field_74945_j = this.generateStructureDispenserContents(par1World, par3StructureBoundingBox, par2Random, 3, -2, 1, 2, dispenser.getItems(), dispenser.getCount(par2Random)); + this.field_74945_j = this.generateStructureDispenserContents(par1World, par3StructureBoundingBox, par2Random, 3, -2, 1, 2, dispenser.getItems(par2Random), dispenser.getCount(par2Random));
} }
this.placeBlockAtCurrentPosition(par1World, Block.vine.blockID, 15, 3, -2, 2, par3StructureBoundingBox); this.placeBlockAtCurrentPosition(par1World, Block.vine.blockID, 15, 3, -2, 2, par3StructureBoundingBox);
@ -29,7 +29,7 @@
if (!this.field_74946_k) if (!this.field_74946_k)
{ {
- this.field_74946_k = this.generateStructureDispenserContents(par1World, par3StructureBoundingBox, par2Random, 9, -2, 3, 4, junglePyramidsDispenserContents, 2); - this.field_74946_k = this.generateStructureDispenserContents(par1World, par3StructureBoundingBox, par2Random, 9, -2, 3, 4, junglePyramidsDispenserContents, 2);
+ this.field_74946_k = this.generateStructureDispenserContents(par1World, par3StructureBoundingBox, par2Random, 9, -2, 3, 4, dispenser.getItems(), dispenser.getCount(par2Random)); + this.field_74946_k = this.generateStructureDispenserContents(par1World, par3StructureBoundingBox, par2Random, 9, -2, 3, 4, dispenser.getItems(par2Random), dispenser.getCount(par2Random));
} }
this.placeBlockAtCurrentPosition(par1World, Block.vine.blockID, 15, 8, -1, 3, par3StructureBoundingBox); this.placeBlockAtCurrentPosition(par1World, Block.vine.blockID, 15, 8, -1, 3, par3StructureBoundingBox);
@ -37,8 +37,8 @@
if (!this.field_74947_h) if (!this.field_74947_h)
{ {
- this.field_74947_h = this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 8, -3, 3, junglePyramidsChestContents, 2 + par2Random.nextInt(5)); - this.field_74947_h = this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 8, -3, 3, WeightedRandomChestContent.func_92029_a(junglePyramidsChestContents, new WeightedRandomChestContent[] {Item.field_92053_bW.func_92059_b(par2Random)}), 2 + par2Random.nextInt(5));
+ this.field_74947_h = this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 8, -3, 3, chest.getItems(), chest.getCount(par2Random)); + this.field_74947_h = this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 8, -3, 3, chest.getItems(par2Random), chest.getCount(par2Random));
} }
this.placeBlockAtCurrentPosition(par1World, Block.cobblestoneMossy.blockID, 0, 9, -3, 2, par3StructureBoundingBox); this.placeBlockAtCurrentPosition(par1World, Block.cobblestoneMossy.blockID, 0, 9, -3, 2, par3StructureBoundingBox);
@ -46,8 +46,8 @@
if (!this.field_74948_i) if (!this.field_74948_i)
{ {
- this.field_74948_i = this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 9, -3, 10, junglePyramidsChestContents, 2 + par2Random.nextInt(5)); - this.field_74948_i = this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 9, -3, 10, WeightedRandomChestContent.func_92029_a(junglePyramidsChestContents, new WeightedRandomChestContent[] {Item.field_92053_bW.func_92059_b(par2Random)}), 2 + par2Random.nextInt(5));
+ this.field_74948_i = this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 9, -3, 10, chest.getItems(), chest.getCount(par2Random)); + this.field_74948_i = this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 9, -3, 10, chest.getItems(par2Random), chest.getCount(par2Random));
} }
return true; return true;

View File

@ -14,8 +14,8 @@
if (par3StructureBoundingBox.isVecInside(var5, var4, var6)) if (par3StructureBoundingBox.isVecInside(var5, var4, var6))
{ {
this.hasMadeChest = true; this.hasMadeChest = true;
- this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 3, 2, 3, strongholdChestContents, 2 + par2Random.nextInt(2)); - this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 3, 2, 3, WeightedRandomChestContent.func_92029_a(strongholdChestContents, new WeightedRandomChestContent[] {Item.field_92053_bW.func_92059_b(par2Random)}), 2 + par2Random.nextInt(2));
+ this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 3, 2, 3, ChestGenHooks.getItems(STRONGHOLD_CORRIDOR), ChestGenHooks.getCount(STRONGHOLD_CORRIDOR, par2Random)); + this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 3, 2, 3, ChestGenHooks.getItems(STRONGHOLD_CORRIDOR, par2Random), ChestGenHooks.getCount(STRONGHOLD_CORRIDOR, par2Random));
} }
} }

View File

@ -10,19 +10,20 @@
public class ComponentStrongholdLibrary extends ComponentStronghold public class ComponentStrongholdLibrary extends ComponentStronghold
{ {
@@ -145,12 +148,13 @@ @@ -145,12 +148,14 @@
this.placeBlockAtCurrentPosition(par1World, Block.torchWood.blockID, 0, var8, 8, var9 + 1, par3StructureBoundingBox); this.placeBlockAtCurrentPosition(par1World, Block.torchWood.blockID, 0, var8, 8, var9 + 1, par3StructureBoundingBox);
} }
- this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 3, 3, 5, strongholdLibraryChestContents, 1 + par2Random.nextInt(4)); - this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 3, 3, 5, WeightedRandomChestContent.func_92029_a(strongholdLibraryChestContents, new WeightedRandomChestContent[] {Item.field_92053_bW.func_92058_a(par2Random, 1, 5, 2)}), 1 + par2Random.nextInt(4));
+ ChestGenHooks info = ChestGenHooks.getInfo(STRONGHOLD_LIBRARY); + ChestGenHooks info = ChestGenHooks.getInfo(STRONGHOLD_LIBRARY);
+ this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 3, 3, 5, info.getItems(), info.getCount(par2Random)); +
+ this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 3, 3, 5, info.getItems(par2Random), info.getCount(par2Random));
if (this.isLargeRoom) if (this.isLargeRoom)
{ {
this.placeBlockAtCurrentPosition(par1World, 0, 0, 12, 9, 1, par3StructureBoundingBox); this.placeBlockAtCurrentPosition(par1World, 0, 0, 12, 9, 1, par3StructureBoundingBox);
- this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 12, 8, 1, strongholdLibraryChestContents, 1 + par2Random.nextInt(4)); - this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 12, 8, 1, WeightedRandomChestContent.func_92029_a(strongholdLibraryChestContents, new WeightedRandomChestContent[] {Item.field_92053_bW.func_92058_a(par2Random, 1, 5, 2)}), 1 + par2Random.nextInt(4));
+ this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 12, 8, 1, info.getItems(), info.getCount(par2Random)); + this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 12, 8, 1, info.getItems(par2Random), info.getCount(par2Random));
} }
return true; return true;

View File

@ -14,8 +14,8 @@
this.placeBlockAtCurrentPosition(par1World, Block.ladder.blockID, this.getMetadataWithOffset(Block.ladder.blockID, 4), 9, 1, 3, par3StructureBoundingBox); this.placeBlockAtCurrentPosition(par1World, Block.ladder.blockID, this.getMetadataWithOffset(Block.ladder.blockID, 4), 9, 1, 3, par3StructureBoundingBox);
this.placeBlockAtCurrentPosition(par1World, Block.ladder.blockID, this.getMetadataWithOffset(Block.ladder.blockID, 4), 9, 2, 3, par3StructureBoundingBox); this.placeBlockAtCurrentPosition(par1World, Block.ladder.blockID, this.getMetadataWithOffset(Block.ladder.blockID, 4), 9, 2, 3, par3StructureBoundingBox);
this.placeBlockAtCurrentPosition(par1World, Block.ladder.blockID, this.getMetadataWithOffset(Block.ladder.blockID, 4), 9, 3, 3, par3StructureBoundingBox); this.placeBlockAtCurrentPosition(par1World, Block.ladder.blockID, this.getMetadataWithOffset(Block.ladder.blockID, 4), 9, 3, 3, par3StructureBoundingBox);
- this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 3, 4, 8, strongholdRoomCrossingChestContents, 1 + par2Random.nextInt(4)); - this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 3, 4, 8, WeightedRandomChestContent.func_92029_a(strongholdRoomCrossingChestContents, new WeightedRandomChestContent[] {Item.field_92053_bW.func_92059_b(par2Random)}), 1 + par2Random.nextInt(4));
+ this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 3, 4, 8, ChestGenHooks.getItems(STRONGHOLD_CROSSING), ChestGenHooks.getCount(STRONGHOLD_CROSSING, par2Random)); + this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 3, 4, 8, ChestGenHooks.getItems(STRONGHOLD_CROSSING, par2Random), ChestGenHooks.getCount(STRONGHOLD_CROSSING, par2Random));
} }
return true; return true;

View File

@ -15,7 +15,7 @@
{ {
this.hasMadeChest = true; this.hasMadeChest = true;
- this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 5, 1, 5, villageBlacksmithChestContents, 3 + par2Random.nextInt(6)); - this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 5, 1, 5, villageBlacksmithChestContents, 3 + par2Random.nextInt(6));
+ this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 5, 1, 5, ChestGenHooks.getItems(VILLAGE_BLACKSMITH), ChestGenHooks.getCount(VILLAGE_BLACKSMITH, par2Random)); + this.generateStructureChestContents(par1World, par3StructureBoundingBox, par2Random, 5, 1, 5, ChestGenHooks.getItems(VILLAGE_BLACKSMITH, par2Random), ChestGenHooks.getCount(VILLAGE_BLACKSMITH, par2Random));
} }
} }