Sync up with FML, Will not run nativly as you need deobfusication_data.zip in your libs folder.

We have not setup the download for that yet, to make it yourself just zip joined.srg name it deobfusication_data.zip and put it in lib
This commit is contained in:
LexManos 2013-02-28 03:53:42 -08:00
parent 082ee1a5ea
commit a04e7912b0
61 changed files with 822 additions and 707 deletions

View File

@ -9,6 +9,7 @@ import net.minecraft.client.gui.GuiControls;
import net.minecraft.client.gui.GuiSlot; import net.minecraft.client.gui.GuiSlot;
import net.minecraft.client.settings.KeyBinding; import net.minecraft.client.settings.KeyBinding;
import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.Tessellator;
import net.minecraft.util.EnumChatFormatting;
public class GuiControlsScrollPanel extends GuiSlot public class GuiControlsScrollPanel extends GuiSlot
{ {
@ -105,8 +106,9 @@ public class GuiControlsScrollPanel extends GuiSlot
break; break;
} }
} }
String str = (conflict ? "\247c" : "") + options.getOptionDisplayString(index);
str = (index == selected ? "\247f> \247e??? \247f<" : str); String str = (conflict ? EnumChatFormatting.RED : "") + options.getOptionDisplayString(index);
str = (index == selected ? EnumChatFormatting.WHITE + "> " + EnumChatFormatting.YELLOW + "??? " + EnumChatFormatting.WHITE + "<" : str);
controls.drawCenteredString(mc.fontRenderer, str, xPosition + (width / 2), yPosition + (height - 8) / 2, 0xFFFFFFFF); controls.drawCenteredString(mc.fontRenderer, str, xPosition + (width / 2), yPosition + (height - 8) / 2, 0xFFFFFFFF);
} }

View File

@ -1,128 +1,126 @@
#Main Forge Access Transformer configuration file #Main Forge Access Transformer configuration file
# RailLogic.getNAdjacentTracks
# -- MISSING MAPPING public als.a(Lals;)I #MD:RailLogic/func_73650_a
# Tessellator # Tessellator
public-f bcc.a #FD:Tessellator/field_78398_a #instance public-f bfc.a #FD:Tessellator/field_78398_a #instance
public bcc.u #FD:Tessellator/field_78409_u #drawMode public bfc.u #FD:Tessellator/field_78409_u #drawMode
public bcc.v #FD:Tessellator/field_78408_v #xOffset public bfc.v #FD:Tessellator/field_78408_v #xOffset
public bcc.w #FD:Tessellator/field_78407_w #yOffset public bfc.w #FD:Tessellator/field_78407_w #yOffset
public bcc.x #FD:Tessellator/field_78417_x #zOffset public bfc.x #FD:Tessellator/field_78417_x #zOffset
public bcc.z #FD:Tessellator/field_78415_z #isDrawing public bfc.z #FD:Tessellator/field_78415_z #isDrawing
# ItemPickaxe # ItemPickaxe
public vj.<init>(ILvb;)V #MD:ItemPickaxe/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor public wf.<init>(ILvw;)V #MD:ItemPickaxe/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
public+f vj.c #FD:ItemPickaxe/field_77867_c #blocksEffectiveAgainst public+f wf.c #FD:ItemPickaxe/field_77867_c #blocksEffectiveAgainst
# ItemAxe # ItemAxe
public uy.<init>(ILvb;)V #MD:ItemAxe/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor public vt.<init>(ILvw;)V #MD:ItemAxe/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
public+f uy.c #FD:ItemAxe/field_77868_c #blocksEffectiveAgainst public+f vt.c #FD:ItemAxe/field_77868_c #blocksEffectiveAgainst
# ItemSpade # ItemSpade
public vu.<init>(ILvb;)V #MD:ItemSpade/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor public wq.<init>(ILvw;)V #MD:ItemSpade/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
public+f vu.c #FD:ItemSpade/field_77866_c #blocksEffectiveAgainst public+f wq.c #FD:ItemSpade/field_77866_c #blocksEffectiveAgainst
# ItemTool # ItemTool
public uh.a #FD:ItemTool/field_77864_a #efficiencyOnProperMaterial public vc.a #FD:ItemTool/field_77864_a #efficiencyOnProperMaterial
public uh.d #FD:ItemTool/field_77865_bY #damageVsEntity public vc.d #FD:ItemTool/field_77865_bY #damageVsEntity
# EntityEnderman # EntityEnderman
public qn.d #FD:EntityEnderman/field_70827_d #carriableBlocks public rg.d #FD:EntityEnderman/field_70827_d #carriableBlocks
# RenderGlobal # RenderGlobal
public bbx.h #FD:RenderGlobal/field_72769_h #theWorld public bex.h #FD:RenderGlobal/field_72769_h #theWorld
public bbx.i #FD:RenderGlobal/field_72770_i #renderEngine public bex.i #FD:RenderGlobal/field_72770_i #renderEngine
public bbx.q #FD:RenderGlobal/field_72777_q #mc public bex.q #FD:RenderGlobal/field_72777_q #mc
public bbx.r #FD:RenderGlobal/field_72776_r #globalRenderBlocks public bex.r #FD:RenderGlobal/field_72776_r #globalRenderBlocks
public bbx.E #FD:RenderGlobal/field_72738_E #damagedBlocks public bex.E #FD:RenderGlobal/field_72738_E #damagedBlocks
# SoundManager # SoundManager
public bfz.a #FD:SoundManager/field_77381_a #sndSystem public biz.a #FD:SoundManager/field_77381_a #sndSystem
public bfz.b #FD:SoundManager/field_77379_b #soundPoolSounds public biz.b #FD:SoundManager/field_77379_b #soundPoolSounds
public bfz.c #FD:SoundManager/field_77380_c #soundPoolStreaming public biz.c #FD:SoundManager/field_77380_c #soundPoolStreaming
public bfz.d #FD:SoundManager/field_77377_d #soundPoolMusic public biz.d #FD:SoundManager/field_77377_d #soundPoolMusic
# EntityMinecart # EntityMinecart
protected qe.* #FD:EntityMinecart/* # All private -> protected protected qv.* #FD:EntityMinecart/* # All private -> protected
# -- MISSING MAPPING public py.h()Z #MD:EntityMinecart/func_70490_h #isMinecartPowered # -- MISSING MAPPING public py.h()Z #MD:EntityMinecart/func_70490_h #isMinecartPowered
# Block # Block
public ank.<init>(ILags;)V #MD:Block/<init>(ILnet/minecraft/src/Material;) #Constructor public aoj.<init>(ILahp;)V #MD:Block/<init>(ILnet/minecraft/src/Material;) #Constructor
public ank.<init>(IILags;)V #MD:Block/<init>(IILnet/minecraft/src/Material;) #Constructor public aoj.<init>(IILahp;)V #MD:Block/<init>(IILnet/minecraft/src/Material;) #Constructor
# -- MISSING MAPPING public amq.r()Lamq; #MD:Block/func_71912_p #setRequiresSelfNotify # -- MISSING MAPPING public amq.r()Lamq; #MD:Block/func_71912_p #setRequiresSelfNotify
public ank.a(Lano;)Lank; #MD:Block/func_71884_a #setStepSound public aoj.a(Laon;)Laoj; #MD:Block/func_71884_a #setStepSound
public ank.b(F)Lank; #MD:Block/func_71894_b #setResistance public aoj.b(F)Laoj; #MD:Block/func_71894_b #setResistance
public ank.c(F)Lank; #MD:Block/func_71848_c #setHardness public aoj.c(F)Laoj; #MD:Block/func_71848_c #setHardness
public ank.j(I)Lank; #MD:Block/func_71868_h #setLightOpacity public aoj.k(I)Laoj; #MD:Block/func_71868_h #setLightOpacity
public ank.a(F)Lank; #MD:Block/func_71900_a #setLightValue public aoj.a(F)Laoj; #MD:Block/func_71900_a #setLightValue
public ank.q()Lank; #MD:Block/func_71875_q #setBlockUnbreakable public aoj.r()Laoj; #MD:Block/func_71875_q #setBlockUnbreakable
public ank.b(Z)Lank; #MD:Block/func_71907_b #setTickRandomly public aoj.b(Z)Laoj; #MD:Block/func_71907_b #setTickRandomly
public ank.a(FFFFFF)V #MD:Block/func_71905_a #setBlockBounds public aoj.a(FFFFFF)V #MD:Block/func_71905_a #setBlockBounds
# NetServerHandler # NetServerHandler
public iv.g #FD:NetServerHandler/field_72572_g #playerInAirTime public jh.g #FD:NetServerHandler/field_72572_g #playerInAirTime
# TileEntity # TileEntity
public aox.k #FD:TileEntity/field_70331_k #worldObj public apy.k #FD:TileEntity/field_70331_k #worldObj
# BlockLeavesBase # BlockLeavesBase
public ans.cO #FD:BlockLeavesBase/field_72131_c #graphicsLevel public aor.d #FD:BlockLeavesBase/field_72131_c #graphicsLevel
# Item # Item
public va.<init>(I)V #MD:Item/<init>(I) #Constructor public vv.<init>(I)V #MD:Item/<init>(I) #Constructor
public va.e(I)Lva; #MD:Item/func_77656_e #setMaxDamage public vv.e(I)Lvv; #MD:Item/func_77656_e #setMaxDamage
public-f up.h(Lur;)I #MD:Item/func_94580_h #getIconIndex public-f up.h(Lur;)I #MD:Item/func_94580_h #getIconIndex
# RailLogic # -- MISSING MAPPING# RailLogic
# -- MISSING MAPPING public als #CL:RailLogic # -- MISSING MAPPING public als #CL:RailLogic
# -- MISSING MAPPING public als.a(Lals;)I #MD:RailLogic/func_73650_a #getNAdjacentTiles # -- MISSING MAPPING public als.a(Lals;)I #MD:RailLogic/func_73650_a #getNAdjacentTiles
# EntityPlayer # EntityPlayer
public rh.a(Lqd;)V #MD:EntityPlayer/func_71012_a #joinEntityItemWithWorld public sb.a(Lqu;)V #MD:EntityPlayer/func_71012_a #joinEntityItemWithWorld
public rh.i()V #MD:EntityPlayer/func_71053_j #closeScreen public sb.h()V #MD:EntityPlayer/func_71053_j #closeScreen
# EntityPlayerMP # EntityPlayerMP
public azu.a(Lqd;)V #MD:EntityClientPlayerMP/func_71012_a #joinEntityItemWithWorld public bcu.a(Lqu;)V #MD:EntityClientPlayerMP/func_71012_a #joinEntityItemWithWorld
# World Gen Chests Related # World Gen Chests Related
public kw.* #FD:WeightedRandomChestContent/* #all public lj.* #FD:WeightedRandomChestContent/* #all
public in.R #FD:WorldServer/field_73069_S #bonusChestContent public iz.S #FD:WorldServer/field_73069_S #bonusChestContent
public acz.a #FD:StructureMineshaftPieces/field_78818_a #mineshaftChestContents public adw.a #FD:StructureMineshaftPieces/field_78818_a #mineshaftChestContents
public aed.i #FD:ComponentScatteredFeatureDesertPyramid/field_74941_i #itemsToGenerateInTemple public afa.i #FD:ComponentScatteredFeatureDesertPyramid/field_74941_i #itemsToGenerateInTemple
public aee.l #FD:ComponentScatteredFeatureJunglePyramid/field_74943_l #junglePyramidsChestContents public afb.l #FD:ComponentScatteredFeatureJunglePyramid/field_74943_l #junglePyramidsChestContents
public aee.m #FD:ComponentScatteredFeatureJunglePyramid/field_74944_m #junglePyramidsDispenserContents public afb.m #FD:ComponentScatteredFeatureJunglePyramid/field_74944_m #junglePyramidsDispenserContents
public aeo.a #FD:ComponentStrongholdChestCorridor/field_75003_a #strongholdChestContents public afl.a #FD:ComponentStrongholdChestCorridor/field_75003_a #strongholdChestContents
public aes.b #FD:ComponentStrongholdLibrary/field_75007_b #strongholdLibraryChestContents public afp.b #FD:ComponentStrongholdLibrary/field_75007_b #strongholdLibraryChestContents
public aex.c #FD:ComponentStrongholdRoomCrossing/field_75014_c #strongholdCorridorChestContents public afu.c #FD:ComponentStrongholdRoomCrossing/field_75014_c #strongholdCorridorChestContents
public afy.a #FD:ComponentVillageHouse2/field_74918_a #villageBlacksmithChestContents public agv.a #FD:ComponentVillageHouse2/field_74918_a #villageBlacksmithChestContents
# AnvilChunkLoader.chunkSaveLocation # AnvilChunkLoader.chunkSaveLocation
public aaw.d #FD:AnvilChunkLoader/field_75825_d public abt.d #FD:AnvilChunkLoader/field_75825_d
# ChunkProviderServer.currentChunkLoader # ChunkProviderServer.currentChunkLoader
public im.e #FD:ChunkProviderServer/field_73247_e public iy.e #FD:ChunkProviderServer/field_73247_e
# PlayerManager # PlayerManager
public ik.a(IIZ)Lil; #MD:PlayerManager/func_72690_a #getOrCreateChunkWatcher public iw.a(IIZ)Lix; #MD:PlayerManager/func_72690_a #getOrCreateChunkWatcher
# PlayerInstance # PlayerInstance
public il #CL:PlayerInstance public ix #CL:PlayerInstance
# World # World
public-f yn.A #FD:World/field_72982_D #villageCollectionObj public-f zk.A #FD:World/field_72982_D #villageCollectionObj
public yn.F #FD:World/field_72993_I #activeChunkSet public zk.G #FD:World/field_72993_I #activeChunkSet
# EntityLiving # EntityLiving
public mj.bd #FD:EntityLiving/field_70728_aV #experienceValue public na.bd #FD:EntityLiving/field_70728_aV #experienceValue
# GuiFlatPresets # GuiFlatPresets
public avh.a(Ljava/lang/String;ILzi;Ljava/util/List;[Lacv;)V #MD:GuiFlatPresets/func_82294_a public awt.a(Ljava/lang/String;ILaaf;Ljava/util/List;[Lads;)V #MD:GuiFlatPresets/func_82294_a
public avh.a(Ljava/lang/String;ILzi;[Lacv;)V #MD:GuiFlatPresets/func_82297_a public awt.a(Ljava/lang/String;ILaaf;[Lads;)V #MD:GuiFlatPresets/func_82297_a
# BiomeGenBase # BiomeGenBase
public zi.*() #MD:BiomeGenBase/* #Everything protected->public public aaf.*() #MD:BiomeGenBase/* #Everything protected->public
# MapGenVillage # MapGenVillage
public-f afm.e #FD:MapGenVillage/field_75055_e #villageSpawnBiomes public-f agj.e #FD:MapGenVillage/field_75055_e #villageSpawnBiomes
# ShapedRecipes # ShapedRecipes
public+f xb.d #FD:ShapedRecipes/field_77574_d #recipeItems public+f xy.d #FD:ShapedRecipes/field_77574_d #recipeItems
public+f xb.b #FD:ShapedRecipes/field_77576_b #recipeWidth public+f xy.b #FD:ShapedRecipes/field_77576_b #recipeWidth
public+f xb.c #FD:ShapedRecipes/field_77577_c #recipeHeight public+f xy.c #FD:ShapedRecipes/field_77577_c #recipeHeight
# ShapelessRecipes # ShapelessRecipes
public xc.b #FD:ShapelessRecipes/field_77579_b #recipeItems public xz.b #FD:ShapelessRecipes/field_77579_b #recipeItems
# GuiContainer # GuiContainer
protected awg.a(Ltc;)V #MD:GuiContainer/func_74192_a #drawSlotInventory protected axs.a(Ltw;)V #MD:GuiContainer/func_74192_a #drawSlotInventory
# BlockButton # BlockButton
protected ajt.n(Lyn;III)V #MD:BlockButton/func_82535_o #checkActivation protected akr.n(Lzk;III)V #MD:BlockButton/func_82535_o #checkActivation
protected-f ajt.a #FD:BlockButton/field_82537_a #sensible protected-f akr.a #FD:BlockButton/field_82537_a #sensible
# BiomeDecorator # BiomeDecorator
public zm.* #FD:BiomeDecorator/* # All private -> protected public aaj.* #FD:BiomeDecorator/* # All private -> protected
# CreativeTabs # CreativeTabs
public-f tu.a #FD:CreativeTabs/field_78032_a # creativeTabArray non-final public-f up.a #FD:CreativeTabs/field_78032_a # creativeTabArray non-final
# Packet # Packet
public ef.a(IZZLjava/lang/Class;)V #MD:Packet/func_73285_a #addIdClassMapping public eg.a(IZZLjava/lang/Class;)V #MD:Packet/func_73285_a #addIdClassMapping
# SaveHandler # SaveHandler
public aig.b()Ljava/io/File; #MD:SaveHandler/func_75765_b public ajd.b()Ljava/io/File; #MD:SaveHandler/func_75765_b
# World stuff # World stuff
public yn.b(Llv;)V #MD:World/func_72847_b #releaseEntitySkin public zk.b(Lmj;)V #MD:World/func_72847_b #releaseEntitySkin
public yn.m #FD:World/field_73003_n #prevRainingStrength public zk.m #FD:World/field_73003_n #prevRainingStrength
public yn.n #FD:World/field_73004_o #rainingStrength public zk.n #FD:World/field_73004_o #rainingStrength
public yn.p #FD:World/field_73017_q #thunderingStrength public zk.p #FD:World/field_73017_q #thunderingStrength
public yn.o #FD:World/field_73018_p #prevThunderingStrength public zk.o #FD:World/field_73018_p #prevThunderingStrength
#WorldClient #WorldClient
public azr.b(Llv;)V #MD:WorldClient/func_72847_b #releaseEntitySkin public bcr.b(Lmj;)V #MD:WorldClient/func_72847_b #releaseEntitySkin
#WorldServer #WorldServer
public in.b(Llv;)V #MD:WorldServer/func_72847_b #releaseEntitySkin public iz.b(Lmj;)V #MD:WorldServer/func_72847_b #releaseEntitySkin

View File

@ -0,0 +1,22 @@
package net.minecraftforge.common;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.World;
//Preliminary, simple Fake Player class
public class FakePlayer extends EntityPlayer
{
public FakePlayer(World world, String name)
{
super(world);
this.username = name;
}
public void sendChatToPlayer(String s){}
public boolean canCommandSenderUseCommand(int i, String s){ return false; }
public ChunkCoordinates getPlayerCoordinates()
{
return new ChunkCoordinates(0,0,0);
}
}

View File

@ -0,0 +1,18 @@
package net.minecraftforge.common;
import net.minecraft.world.World;
//To be expanded for generic Mod fake players?
public class FakePlayerFactory
{
private static FakePlayer MINECRAFT_PLAYER = null;
public static FakePlayer getMinecraft(World world)
{
if (MINECRAFT_PLAYER == null)
{
MINECRAFT_PLAYER = new FakePlayer(world, "[Minecraft]");
}
return MINECRAFT_PLAYER;
}
}

View File

@ -19,14 +19,7 @@ public class ForgeInternalHandler
{ {
if (!event.world.isRemote) if (!event.world.isRemote)
{ {
if (event.entity.getPersistentID() == null) ForgeChunkManager.loadEntity(event.entity);
{
event.entity.generatePersistentID();
}
else
{
ForgeChunkManager.loadEntity(event.entity);
}
} }
Entity entity = event.entity; Entity entity = event.entity;

View File

@ -7,9 +7,12 @@ import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.ModContainer; import cpw.mods.fml.common.ModContainer;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.entity.monster.EntityEnderman; import net.minecraft.entity.monster.EntityEnderman;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -33,8 +36,6 @@ public class MinecraftForge
public static final EventBus EVENT_BUS = new EventBus(); public static final EventBus EVENT_BUS = new EventBus();
public static final EventBus TERRAIN_GEN_BUS = new EventBus(); public static final EventBus TERRAIN_GEN_BUS = new EventBus();
public static final EventBus ORE_GEN_BUS = new EventBus(); public static final EventBus ORE_GEN_BUS = new EventBus();
@Deprecated //Vanilla feature now
public static boolean SPAWNER_ALLOW_ON_INVERTED = false;
private static final ForgeInternalHandler INTERNAL_HANDLER = new ForgeInternalHandler(); private static final ForgeInternalHandler INTERNAL_HANDLER = new ForgeInternalHandler();
@ -183,10 +184,14 @@ public class MinecraftForge
System.out.printf("MinecraftForge v%s Initialized\n", ForgeVersion.getVersion()); System.out.printf("MinecraftForge v%s Initialized\n", ForgeVersion.getVersion());
FMLLog.info("MinecraftForge v%s Initialized", ForgeVersion.getVersion()); FMLLog.info("MinecraftForge v%s Initialized", ForgeVersion.getVersion());
Block filler = new Block(0, Material.air); Block filler = new Block(0, Material.air)
{
@SideOnly(Side.CLIENT) public void func_94332_a(IconRegister register){}
};
Block.blocksList[0] = null; Block.blocksList[0] = null;
Block.opaqueCubeLookup[0] = false; Block.opaqueCubeLookup[0] = false;
Block.lightOpacity[0] = 0; Block.lightOpacity[0] = 0;
filler.setBlockName("ForgeFiller");
for (int x = 256; x < 4096; x++) for (int x = 256; x < 4096; x++)
{ {

View File

@ -20,7 +20,7 @@ public class EventTransformer implements IClassTransformer
} }
@Override @Override
public byte[] transform(String name, byte[] bytes) public byte[] transform(String name, String transformedName, byte[] bytes)
{ {
if (bytes == null || name.equals("net.minecraftforge.event.Event") || name.startsWith("net.minecraft.") || name.indexOf('.') == -1) if (bytes == null || name.equals("net.minecraftforge.event.Event") || name.startsWith("net.minecraft.") || name.indexOf('.') == -1)
{ {
@ -162,5 +162,4 @@ public class EventTransformer implements IClassTransformer
classNode.methods.add(method); classNode.methods.add(method);
return true; return true;
} }
} }

Binary file not shown.

View File

@ -23,8 +23,8 @@
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;
@@ -25,8 +30,10 @@ @@ -26,8 +31,10 @@
import net.minecraft.item.ItemSlab; import net.minecraft.item.ItemSnow;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.stats.StatList; import net.minecraft.stats.StatList;
+import net.minecraft.tileentity.TileEntity; +import net.minecraft.tileentity.TileEntity;
@ -34,7 +34,7 @@
import net.minecraft.util.Icon; import net.minecraft.util.Icon;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.StatCollector; import net.minecraft.util.StatCollector;
@@ -34,9 +41,20 @@ @@ -35,9 +42,20 @@
import net.minecraft.world.Explosion; import net.minecraft.world.Explosion;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -55,7 +55,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
*/ */
@@ -328,6 +346,7 @@ @@ -330,6 +348,7 @@
lightOpacity[par1] = this.isOpaqueCube() ? 255 : 0; lightOpacity[par1] = this.isOpaqueCube() ? 255 : 0;
canBlockGrass[par1] = !par2Material.getCanBlockGrass(); canBlockGrass[par1] = !par2Material.getCanBlockGrass();
} }
@ -63,7 +63,7 @@
} }
/** /**
@@ -450,9 +469,10 @@ @@ -452,9 +471,10 @@
return this.needsRandomTick; return this.needsRandomTick;
} }
@ -75,7 +75,7 @@
} }
/** /**
@@ -475,7 +495,7 @@ @@ -477,7 +497,7 @@
*/ */
public float getBlockBrightness(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) public float getBlockBrightness(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)
{ {
@ -84,7 +84,7 @@
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@@ -485,7 +505,7 @@ @@ -487,7 +507,7 @@
*/ */
public int getMixedBrightnessForBlock(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) public int getMixedBrightnessForBlock(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)
{ {
@ -93,7 +93,7 @@
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@@ -634,7 +654,13 @@ @@ -636,7 +656,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
*/ */
@ -108,7 +108,7 @@
/** /**
* Returns the quantity of items to drop on block destruction. * Returns the quantity of items to drop on block destruction.
@@ -658,8 +684,7 @@ @@ -660,8 +686,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)
{ {
@ -118,7 +118,7 @@
} }
/** /**
@@ -677,18 +702,13 @@ @@ -679,18 +704,13 @@
{ {
if (!par1World.isRemote) if (!par1World.isRemote)
{ {
@ -141,7 +141,7 @@
} }
} }
} }
@@ -1081,7 +1101,7 @@ @@ -1083,7 +1103,7 @@
par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1);
par2EntityPlayer.addExhaustion(0.025F); par2EntityPlayer.addExhaustion(0.025F);
@ -150,7 +150,7 @@
{ {
ItemStack itemstack = this.createStackedBlock(par6); ItemStack itemstack = this.createStackedBlock(par6);
@@ -1097,12 +1117,13 @@ @@ -1099,12 +1119,13 @@
} }
} }
@ -165,7 +165,7 @@
} }
/** /**
@@ -1398,4 +1419,870 @@ @@ -1406,4 +1427,871 @@
canBlockGrass[0] = true; canBlockGrass[0] = true;
StatList.initBreakableStats(); StatList.initBreakableStats();
} }
@ -435,6 +435,7 @@
+ blockFlammability[id] = flammability; + blockFlammability[id] = flammability;
+ } + }
+ +
+ private boolean isTileProvider = this instanceof ITileEntityProvider;
+ /** + /**
+ * Called throughout the code as a replacement for block instanceof BlockContainer + * Called throughout the code as a replacement for block instanceof BlockContainer
+ * Moving this to the Block base class allows for mods that wish to extend vinella + * Moving this to the Block base class allows for mods that wish to extend vinella
@ -447,22 +448,22 @@
+ */ + */
+ public boolean hasTileEntity(int metadata) + public boolean hasTileEntity(int metadata)
+ { + {
+ return isBlockContainer; + return isTileProvider;
+ } + }
+ +
+ /** + /**
+ * Called throughout the code as a replacement for BlockContainer.getBlockEntity + * Called throughout the code as a replacement for ITileEntityProvider.createNewTileEntity
+ * Return the same thing you would from that function. + * Return the same thing you would from that function.
+ * This will fall back to BlockContainer.getBlockEntity if this block is a BlockContainer. + * This will fall back to ITileEntityProvider.createNewTileEntity(World) if this block is a ITileEntityProvider
+ * + *
+ * @param metadata The Metadata of the current block + * @param metadata The Metadata of the current block
+ * @return A instance of a class extending TileEntity + * @return A instance of a class extending TileEntity
+ */ + */
+ public TileEntity createTileEntity(World world, int metadata) + public TileEntity createTileEntity(World world, int metadata)
+ { + {
+ if (this instanceof BlockContainer) + if (isTileProvider)
+ { + {
+ return ((BlockContainer)this).createNewTileEntity(world, metadata); + return ((ITileEntityProvider)this).createNewTileEntity(world);
+ } + }
+ return null; + return null;
+ } + }
@ -960,7 +961,7 @@
+ { + {
+ if (blockID == grass.blockID) + if (blockID == grass.blockID)
+ { + {
+ world.func_94575_c(x, y, z, dirt.blockID); + world.setBlockAndMetadataWithNotify(x, y, z, dirt.blockID, 0, 2);
+ } + }
+ } + }
+ +

View File

@ -9,16 +9,3 @@
} }
/** /**
@@ -34,6 +34,12 @@
* Returns a new instance of a block's tile entity class. Called on placing the block.
*/
public abstract TileEntity createNewTileEntity(World world);
+
+
+ public TileEntity createNewTileEntity(World world, int metadata)
+ {
+ return createNewTileEntity(world);
+ }
/**
* Called when the block receives a BlockEvent - see World.addBlockEvent. By default, passes it on to the tile

View File

@ -8,15 +8,15 @@
import java.util.Random; import java.util.Random;
import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
@@ -9,6 +10,7 @@ @@ -10,6 +11,7 @@
import net.minecraft.item.ItemStack;
import net.minecraft.util.Icon; import net.minecraft.util.Icon;
import net.minecraft.util.MathHelper;
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
{ {
@@ -95,11 +97,11 @@ @@ -103,11 +105,11 @@
int j3 = par1World.getBlockId(l2, par3 - 1, i3); int j3 = par1World.getBlockId(l2, par3 - 1, i3);
float f1 = 0.0F; float f1 = 0.0F;
@ -30,7 +30,7 @@
{ {
f1 = 3.0F; f1 = 3.0F;
} }
@@ -167,22 +169,25 @@ @@ -175,22 +177,25 @@
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, 0); super.dropBlockAsItemWithChance(par1World, par2, par3, par4, par5, par6, 0);

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/block/BlockDoor.java --- ../src_base/minecraft/net/minecraft/block/BlockDoor.java
+++ ../src_work/minecraft/net/minecraft/block/BlockDoor.java +++ ../src_work/minecraft/net/minecraft/block/BlockDoor.java
@@ -235,7 +235,7 @@ @@ -296,7 +296,7 @@
{ {
if (this.blockMaterial == Material.iron) if (this.blockMaterial == Material.iron)
{ {

View File

@ -1,15 +1,15 @@
--- ../src_base/minecraft/net/minecraft/block/BlockPistonBase.java --- ../src_base/minecraft/net/minecraft/block/BlockPistonBase.java
+++ ../src_work/minecraft/net/minecraft/block/BlockPistonBase.java +++ ../src_work/minecraft/net/minecraft/block/BlockPistonBase.java
@@ -406,7 +406,7 @@ @@ -413,7 +413,7 @@
return false; return false;
} }
- return !(Block.blocksList[par0] instanceof BlockContainer); - return !(Block.blocksList[par0] instanceof ITileEntityProvider);
+ return !par1World.blockHasTileEntity(par2, par3, par4); + return !par1World.blockHasTileEntity(par2, par3, par4);
} }
} }
@@ -424,7 +424,7 @@ @@ -431,7 +431,7 @@
{ {
if (l1 < 13) if (l1 < 13)
{ {
@ -18,7 +18,7 @@
{ {
return false; return false;
} }
@@ -474,7 +474,7 @@ @@ -481,7 +481,7 @@
if (l1 < 13) if (l1 < 13)
{ {

View File

@ -26,9 +26,9 @@
} }
/** /**
@@ -216,4 +217,107 @@ @@ -236,4 +237,107 @@
{ par1World.notifyBlocksOfNeighborChange(par2, par3 + 1, par4, par5);
return 0; }
} }
+ +
+ /** + /**

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/block/BlockRedstoneWire.java --- ../src_base/minecraft/net/minecraft/block/BlockRedstoneWire.java
+++ ../src_work/minecraft/net/minecraft/block/BlockRedstoneWire.java +++ ../src_work/minecraft/net/minecraft/block/BlockRedstoneWire.java
@@ -521,7 +521,7 @@ @@ -522,7 +522,7 @@
} }
else if (!Block.redstoneRepeaterIdle.func_94487_f(i1)) else if (!Block.redstoneRepeaterIdle.func_94487_f(i1))
{ {

View File

@ -1,15 +1,15 @@
--- ../src_base/minecraft/net/minecraft/block/BlockSapling.java --- ../src_base/minecraft/net/minecraft/block/BlockSapling.java
+++ ../src_work/minecraft/net/minecraft/block/BlockSapling.java +++ ../src_work/minecraft/net/minecraft/block/BlockSapling.java
@@ -15,6 +15,8 @@ @@ -16,6 +16,8 @@
import net.minecraft.world.gen.feature.WorldGenTaiga2;
import net.minecraft.world.gen.feature.WorldGenTrees; import net.minecraft.world.gen.feature.WorldGenTrees;
import net.minecraft.world.gen.feature.WorldGenerator; import net.minecraft.world.gen.feature.WorldGenerator;
+
+import net.minecraftforge.event.terraingen.TerrainGen;
+import net.minecraftforge.event.terraingen.TerrainGen;
+
public class BlockSapling extends BlockFlower public class BlockSapling extends BlockFlower
{ {
@@ -72,6 +74,8 @@ public static final String[] WOOD_TYPES = new String[] {"oak", "spruce", "birch", "jungle"};
@@ -77,6 +79,8 @@
*/ */
public void growTree(World par1World, int par2, int par3, int par4, Random par5Random) public void growTree(World par1World, int par2, int par3, int par4, Random par5Random)
{ {

View File

@ -9,7 +9,7 @@
import java.util.Random; import java.util.Random;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.client.renderer.texture.IconRegister;
@@ -134,11 +136,6 @@ @@ -135,11 +137,6 @@
} }
/** /**
@ -21,7 +21,7 @@
* Called when the block is attempted to be harvested * Called when the block is attempted to be harvested
*/ */
public void onBlockHarvested(World par1World, int par2, int par3, int par4, int par5, EntityPlayer par6EntityPlayer) public void onBlockHarvested(World par1World, int par2, int par3, int par4, int par5, EntityPlayer par6EntityPlayer)
@@ -149,6 +146,8 @@ @@ -150,6 +147,8 @@
par1World.setBlockMetadataWithNotify(par2, par3, par4, par5, 4); par1World.setBlockMetadataWithNotify(par2, par3, par4, par5, 4);
} }
@ -30,7 +30,7 @@
super.onBlockHarvested(par1World, par2, par3, par4, par5, par6EntityPlayer); super.onBlockHarvested(par1World, par2, par3, par4, par5, par6EntityPlayer);
} }
@@ -157,24 +156,30 @@ @@ -158,24 +157,30 @@
*/ */
public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6)
{ {

View File

@ -1,16 +1,21 @@
--- ../src_base/minecraft/net/minecraft/block/BlockSnow.java --- ../src_base/minecraft/net/minecraft/block/BlockSnow.java
+++ ../src_work/minecraft/net/minecraft/block/BlockSnow.java +++ ../src_work/minecraft/net/minecraft/block/BlockSnow.java
@@ -74,7 +74,8 @@ @@ -88,8 +88,12 @@
*/
public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
{ {
int l = par1World.getBlockId(par2, par3 - 1, par4); - int l = par1World.getBlockId(par2, par3 - 1, par4);
- return l != 0 && (l == Block.leaves.blockID || Block.blocksList[l].isOpaqueCube()) ? par1World.getBlockMaterial(par2, par3 - 1, par4).blocksMovement() : false; - return l == 0 ? false : (l == this.blockID && (par1World.getBlockMetadata(par2, par3 - 1, par4) & 7) == 7 ? true : (l != Block.leaves.blockID && !Block.blocksList[l].isOpaqueCube() ? false : par1World.getBlockMaterial(par2, par3 - 1, par4).blocksMovement()));
+ int l = par1World.getBlockId(par2, par3 - 1, par4);
+ Block block = Block.blocksList[l]; + Block block = Block.blocksList[l];
+ return block != null && (block.isLeaves(par1World, par2, par3 - 1, par4) || Block.blocksList[l].isOpaqueCube()) ? par1World.getBlockMaterial(par2, par3 - 1, par4).blocksMovement() : false; + if (block == null) return false;
+ if (block == this && (par1World.getBlockMetadata(par2, par3 - 1, par4) & 7) == 7) return true;
+ if (block.isLeaves(par1World, par2, par3 - 1, par4) && Block.blocksList[l].isOpaqueCube()) return false;
+ return par1World.getBlockMaterial(par2, par3 - 1, par4).blocksMovement();
} }
/** /**
@@ -93,7 +94,6 @@ @@ -108,7 +112,6 @@
{ {
if (!this.canPlaceBlockAt(par1World, par2, par3, par4)) if (!this.canPlaceBlockAt(par1World, par2, par3, par4))
{ {
@ -18,19 +23,20 @@
par1World.func_94571_i(par2, par3, par4); par1World.func_94571_i(par2, par3, par4);
return false; return false;
} }
@@ -109,10 +109,8 @@ @@ -124,11 +127,8 @@
*/ */
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)
{ {
- int i1 = Item.snowball.itemID; - int i1 = Item.snowball.itemID;
- this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(i1, 1, 0)); - int j1 = par6 & 7;
- this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(i1, j1 + 1, 0));
+ super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6);
par1World.func_94571_i(par3, par4, par5); par1World.func_94571_i(par3, par4, par5);
- par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); - par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1);
} }
/** /**
@@ -128,7 +126,7 @@ @@ -144,7 +144,7 @@
*/ */
public int quantityDropped(Random par1Random) public int quantityDropped(Random par1Random)
{ {
@ -39,7 +45,7 @@
} }
/** /**
@@ -138,7 +136,6 @@ @@ -154,7 +154,6 @@
{ {
if (par1World.getSavedLightValue(EnumSkyBlock.Block, par2, par3, par4) > 11) if (par1World.getSavedLightValue(EnumSkyBlock.Block, par2, par3, par4) > 11)
{ {
@ -47,3 +53,14 @@
par1World.func_94571_i(par2, par3, par4); par1World.func_94571_i(par2, par3, par4);
} }
} }
@@ -169,4 +168,10 @@
{
return par5 == 1 ? true : super.shouldSideBeRendered(par1IBlockAccess, par2, par3, par4, par5);
}
+
+ @Override
+ public int quantityDropped(int meta, int fortune, Random random)
+ {
+ return (meta & 7) + 1;
+ }
}

View File

@ -9,7 +9,7 @@
import java.util.Random; import java.util.Random;
import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
@@ -11,6 +13,8 @@ @@ -12,6 +14,8 @@
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -18,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. */
@@ -105,7 +109,8 @@ @@ -106,7 +110,8 @@
int l1 = par1World.getBlockId(j1, par3 - 1, k1); int l1 = par1World.getBlockId(j1, par3 - 1, k1);
@ -28,7 +28,7 @@
{ {
par1World.func_94575_c(j1, par3, k1, this.fruitType.blockID); par1World.func_94575_c(j1, par3, k1, this.fruitType.blockID);
} }
@@ -141,11 +146,11 @@ @@ -149,11 +154,11 @@
int j3 = par1World.getBlockId(l2, par3 - 1, i3); int j3 = par1World.getBlockId(l2, par3 - 1, i3);
float f1 = 0.0F; float f1 = 0.0F;
@ -42,12 +42,16 @@
{ {
f1 = 3.0F; f1 = 3.0F;
} }
@@ -237,29 +242,22 @@ @@ -245,29 +250,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);
- -
- if (!par1World.isRemote) - if (!par1World.isRemote)
- {
- Item item = null;
-
- if (this.fruitType == Block.pumpkin)
+ } + }
+ +
+ @Override + @Override
@ -56,14 +60,12 @@
+ ArrayList<ItemStack> ret = new ArrayList<ItemStack>(); + ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
+ +
+ for (int i = 0; i < 3; i++) + for (int i = 0; i < 3; i++)
{ + {
- Item item = null;
-
- if (this.fruitType == Block.pumpkin)
+ if (world.rand.nextInt(15) <= metadata) + if (world.rand.nextInt(15) <= metadata)
{ {
- item = Item.pumpkinSeeds; - item = Item.pumpkinSeeds;
- } + ret.add(new ItemStack(fruitType == pumpkin ? Item.pumpkinSeeds : Item.melonSeeds));
}
- -
- if (this.fruitType == Block.melon) - if (this.fruitType == Block.melon)
- { - {
@ -76,9 +78,9 @@
- { - {
- this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(item)); - this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(item));
- } - }
+ ret.add(new ItemStack(fruitType == pumpkin ? Item.pumpkinSeeds : Item.melonSeeds)); - }
} - }
} + }
+ +
+ return ret; + return ret;
} }

View File

@ -11,7 +11,7 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public abstract class Minecraft implements Runnable, IPlayerUsage public abstract class Minecraft implements Runnable, IPlayerUsage
{ {
@@ -1239,7 +1243,7 @@ @@ -1240,7 +1244,7 @@
if (this.thePlayer.canCurrentToolHarvestBlock(j, k, l)) if (this.thePlayer.canCurrentToolHarvestBlock(j, k, l))
{ {
@ -20,7 +20,7 @@
this.thePlayer.swingItem(); this.thePlayer.swingItem();
} }
} }
@@ -1305,7 +1309,8 @@ @@ -1306,7 +1310,8 @@
{ {
int j1 = itemstack != null ? itemstack.stackSize : 0; int j1 = itemstack != null ? itemstack.stackSize : 0;
@ -30,7 +30,7 @@
{ {
flag = false; flag = false;
this.thePlayer.swingItem(); this.thePlayer.swingItem();
@@ -1331,7 +1336,8 @@ @@ -1332,7 +1337,8 @@
{ {
ItemStack itemstack1 = this.thePlayer.inventory.getCurrentItem(); ItemStack itemstack1 = this.thePlayer.inventory.getCurrentItem();
@ -40,7 +40,7 @@
{ {
this.entityRenderer.itemRenderer.resetEquippedProgress2(); this.entityRenderer.itemRenderer.resetEquippedProgress2();
} }
@@ -2028,6 +2034,18 @@ @@ -2029,6 +2035,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;
@@ -2339,95 +2357,12 @@ @@ -2340,103 +2358,12 @@
if (this.objectMouseOver != null) if (this.objectMouseOver != null)
{ {
boolean flag = this.thePlayer.capabilities.isCreativeMode; boolean flag = this.thePlayer.capabilities.isCreativeMode;
@ -129,6 +129,14 @@
- { - {
- j = Item.minecartCrate.itemID; - j = Item.minecartCrate.itemID;
- } - }
- else if (entityminecart.func_94087_l() == 3)
- {
- j = Item.field_94582_cb.itemID;
- }
- else if (entityminecart.func_94087_l() == 5)
- {
- j = Item.field_96600_cc.itemID;
- }
- else - else
- { - {
- j = Item.minecartEmpty.itemID; - j = Item.minecartEmpty.itemID;

View File

@ -1,15 +1,15 @@
--- ../src_base/minecraft/net/minecraft/client/gui/GuiControls.java --- ../src_base/minecraft/net/minecraft/client/gui/GuiControls.java
+++ ../src_work/minecraft/net/minecraft/client/gui/GuiControls.java +++ ../src_work/minecraft/net/minecraft/client/gui/GuiControls.java
@@ -5,6 +5,8 @@ @@ -6,6 +6,8 @@
import net.minecraft.client.settings.GameSettings;
import net.minecraft.client.settings.KeyBinding; import net.minecraft.client.settings.KeyBinding;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StringTranslate; import net.minecraft.util.StringTranslate;
+ +
+import net.minecraftforge.client.GuiControlsScrollPanel; +import net.minecraftforge.client.GuiControlsScrollPanel;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class GuiControls extends GuiScreen public class GuiControls extends GuiScreen
@@ -23,6 +25,8 @@ @@ -24,6 +26,8 @@
/** The ID of the button that has been pressed. */ /** The ID of the button that has been pressed. */
private int buttonId = -1; private int buttonId = -1;
@ -18,7 +18,7 @@
public GuiControls(GuiScreen par1GuiScreen, GameSettings par2GameSettings) public GuiControls(GuiScreen par1GuiScreen, GameSettings par2GameSettings)
{ {
this.parentScreen = par1GuiScreen; this.parentScreen = par1GuiScreen;
@@ -39,15 +43,12 @@ @@ -40,15 +44,12 @@
*/ */
public void initGui() public void initGui()
{ {
@ -37,7 +37,7 @@
this.screenTitle = stringtranslate.translateKey("controls.title"); this.screenTitle = stringtranslate.translateKey("controls.title");
} }
@@ -56,19 +57,9 @@ @@ -57,19 +58,9 @@
*/ */
protected void actionPerformed(GuiButton par1GuiButton) protected void actionPerformed(GuiButton par1GuiButton)
{ {
@ -57,7 +57,7 @@
} }
} }
@@ -77,17 +68,7 @@ @@ -78,17 +69,7 @@
*/ */
protected void mouseClicked(int par1, int par2, int par3) protected void mouseClicked(int par1, int par2, int par3)
{ {
@ -76,7 +76,7 @@
} }
/** /**
@@ -95,14 +76,7 @@ @@ -96,14 +77,7 @@
*/ */
protected void keyTyped(char par1, int par2) protected void keyTyped(char par1, int par2)
{ {
@ -92,7 +92,7 @@
{ {
super.keyTyped(par1, par2); super.keyTyped(par1, par2);
} }
@@ -114,47 +88,8 @@ @@ -115,47 +89,8 @@
public void drawScreen(int par1, int par2, float par3) public void drawScreen(int par1, int par2, float par3)
{ {
this.drawDefaultBackground(); this.drawDefaultBackground();
@ -120,11 +120,11 @@
- -
- if (this.buttonId == l) - if (this.buttonId == l)
- { - {
- ((GuiButton)this.controlList.get(l)).displayString = "\u00a7f> \u00a7e??? \u00a7f<"; - ((GuiButton)this.controlList.get(l)).displayString = "" + EnumChatFormatting.WHITE + "> " + EnumChatFormatting.YELLOW + "??? " + EnumChatFormatting.WHITE + "<";
- } - }
- else if (flag) - else if (flag)
- { - {
- ((GuiButton)this.controlList.get(l)).displayString = "\u00a7c" + this.options.getOptionDisplayString(l); - ((GuiButton)this.controlList.get(l)).displayString = EnumChatFormatting.RED + this.options.getOptionDisplayString(l);
- } - }
- else - else
- { - {

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/client/gui/GuiIngame.java --- ../src_base/minecraft/net/minecraft/client/gui/GuiIngame.java
+++ ../src_work/minecraft/net/minecraft/client/gui/GuiIngame.java +++ ../src_work/minecraft/net/minecraft/client/gui/GuiIngame.java
@@ -27,6 +27,8 @@ @@ -34,6 +34,8 @@
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12; import org.lwjgl.opengl.GL12;
@ -9,10 +9,10 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class GuiIngame extends Gui public class GuiIngame extends Gui
{ {
@@ -160,7 +162,7 @@ @@ -170,7 +172,7 @@
j3 = l - 39; k3 = l - 39;
l2 = j3 - 10; l2 = k3 - 10;
- k2 = this.mc.thePlayer.getTotalArmorValue(); - k2 = this.mc.thePlayer.getTotalArmorValue();
+ k2 = ForgeHooks.getTotalArmorValue(mc.thePlayer); + k2 = ForgeHooks.getTotalArmorValue(mc.thePlayer);
i3 = -1; i3 = -1;

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
@@ -161,6 +161,11 @@ @@ -172,6 +172,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
{ {
@@ -737,7 +742,7 @@ @@ -748,7 +753,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}));
@@ -803,7 +808,11 @@ @@ -814,7 +819,11 @@
public void handleChat(Packet3Chat par1Packet3Chat) public void handleChat(Packet3Chat par1Packet3Chat)
{ {
par1Packet3Chat = FMLNetworkHandler.handleChatMessage(this, par1Packet3Chat); par1Packet3Chat = FMLNetworkHandler.handleChatMessage(this, par1Packet3Chat);
@ -34,7 +34,7 @@
} }
public void handleAnimation(Packet18Animation par1Packet18Animation) public void handleAnimation(Packet18Animation par1Packet18Animation)
@@ -1217,6 +1226,10 @@ @@ -1248,6 +1257,10 @@
{ {
tileentity.readFromNBT(par1Packet132TileEntityData.customParam1); tileentity.readFromNBT(par1Packet132TileEntityData.customParam1);
} }

View File

@ -33,7 +33,7 @@
if (flag) if (flag)
{ {
@@ -328,6 +338,12 @@ @@ -336,6 +346,12 @@
float f2 = (float)par8Vec3.zCoord - (float)par6; float f2 = (float)par8Vec3.zCoord - (float)par6;
boolean flag = false; boolean flag = false;
int i1; int i1;
@ -46,7 +46,7 @@
if (!par1EntityPlayer.isSneaking() || par1EntityPlayer.getHeldItem() == null) if (!par1EntityPlayer.isSneaking() || par1EntityPlayer.getHeldItem() == null)
{ {
@@ -370,7 +386,15 @@ @@ -378,7 +394,15 @@
} }
else else
{ {
@ -63,7 +63,7 @@
} }
} }
@@ -392,9 +416,10 @@ @@ -400,9 +424,10 @@
{ {
par1EntityPlayer.inventory.mainInventory[par1EntityPlayer.inventory.currentItem] = itemstack1; par1EntityPlayer.inventory.mainInventory[par1EntityPlayer.inventory.currentItem] = itemstack1;

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
@@ -27,6 +27,9 @@ @@ -28,6 +28,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
{ {
@@ -57,8 +60,11 @@ @@ -58,8 +61,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 @@
} }
/** /**
@@ -289,6 +295,12 @@ @@ -290,6 +296,12 @@
*/ */
protected void updateWeather() protected void updateWeather()
{ {

View File

@ -12,7 +12,7 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class EntityRenderer public class EntityRenderer
{ {
@@ -333,8 +338,15 @@ @@ -339,8 +344,15 @@
*/ */
private void updateFovModifierHand() private void updateFovModifierHand()
{ {
@ -30,7 +30,7 @@
this.fovModifierHandPrev = this.fovModifierHand; this.fovModifierHandPrev = this.fovModifierHand;
this.fovModifierHand += (this.fovMultiplierTemp - this.fovModifierHand) * 0.5F; this.fovModifierHand += (this.fovMultiplierTemp - this.fovModifierHand) * 0.5F;
} }
@@ -350,7 +362,7 @@ @@ -356,7 +368,7 @@
} }
else else
{ {
@ -39,7 +39,7 @@
float f1 = 70.0F; float f1 = 70.0F;
if (par2) if (par2)
@@ -437,15 +449,7 @@ @@ -443,15 +455,7 @@
if (!this.mc.gameSettings.debugCamEnable) if (!this.mc.gameSettings.debugCamEnable)
{ {
@ -56,7 +56,7 @@
GL11.glRotatef(entityliving.prevRotationYaw + (entityliving.rotationYaw - entityliving.prevRotationYaw) * par1 + 180.0F, 0.0F, -1.0F, 0.0F); GL11.glRotatef(entityliving.prevRotationYaw + (entityliving.rotationYaw - entityliving.prevRotationYaw) * par1 + 180.0F, 0.0F, -1.0F, 0.0F);
GL11.glRotatef(entityliving.prevRotationPitch + (entityliving.rotationPitch - entityliving.prevRotationPitch) * par1, -1.0F, 0.0F, 0.0F); GL11.glRotatef(entityliving.prevRotationPitch + (entityliving.rotationPitch - entityliving.prevRotationPitch) * par1, -1.0F, 0.0F, 0.0F);
} }
@@ -1139,8 +1143,11 @@ @@ -1145,8 +1149,11 @@
entityplayer = (EntityPlayer)entityliving; entityplayer = (EntityPlayer)entityliving;
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);
} }
} }
@@ -1204,15 +1211,18 @@ @@ -1210,15 +1217,18 @@
entityplayer = (EntityPlayer)entityliving; entityplayer = (EntityPlayer)entityliving;
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);
@@ -1222,6 +1232,9 @@ @@ -1228,6 +1238,9 @@
{ {
this.renderCloudsCheck(renderglobal, par1); this.renderCloudsCheck(renderglobal, par1);
} }

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/client/renderer/ItemRenderer.java --- ../src_base/minecraft/net/minecraft/client/renderer/ItemRenderer.java
+++ ../src_work/minecraft/net/minecraft/client/renderer/ItemRenderer.java +++ ../src_work/minecraft/net/minecraft/client/renderer/ItemRenderer.java
@@ -15,6 +15,8 @@ @@ -14,6 +14,8 @@
import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLiving;
import net.minecraft.item.EnumAction; import net.minecraft.item.EnumAction;
import net.minecraft.item.Item; import net.minecraft.item.Item;
@ -9,7 +9,7 @@
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.Icon; import net.minecraft.util.Icon;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
@@ -22,6 +24,12 @@ @@ -21,6 +23,12 @@
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12; import org.lwjgl.opengl.GL12;
@ -22,7 +22,7 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class ItemRenderer public class ItemRenderer
{ {
@@ -54,8 +62,21 @@ @@ -53,8 +61,21 @@
public void renderItem(EntityLiving par1EntityLiving, ItemStack par2ItemStack, int par3) public void renderItem(EntityLiving par1EntityLiving, ItemStack par2ItemStack, int par3)
{ {
GL11.glPushMatrix(); GL11.glPushMatrix();
@ -46,7 +46,7 @@
{ {
GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.mc.renderEngine.getTexture("/terrain.png")); GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.mc.renderEngine.getTexture("/terrain.png"));
this.renderBlocksInstance.renderBlockAsItem(Block.blocksList[par2ItemStack.itemID], par2ItemStack.getItemDamage(), 1.0F); this.renderBlocksInstance.renderBlockAsItem(Block.blocksList[par2ItemStack.itemID], par2ItemStack.getItemDamage(), 1.0F);
@@ -274,7 +295,7 @@ @@ -272,7 +293,7 @@
Render render; Render render;
RenderPlayer renderplayer; RenderPlayer renderplayer;
@ -55,7 +55,7 @@
{ {
GL11.glPushMatrix(); GL11.glPushMatrix();
f4 = 0.8F; f4 = 0.8F;
@@ -341,11 +362,20 @@ @@ -339,11 +360,20 @@
tessellator.addVertexWithUV((double)(128 + b0), (double)(0 - b0), 0.0D, 1.0D, 0.0D); tessellator.addVertexWithUV((double)(128 + b0), (double)(0 - b0), 0.0D, 1.0D, 0.0D);
tessellator.addVertexWithUV((double)(0 - b0), (double)(0 - b0), 0.0D, 0.0D, 0.0D); tessellator.addVertexWithUV((double)(0 - b0), (double)(0 - b0), 0.0D, 0.0D, 0.0D);
tessellator.draw(); tessellator.draw();
@ -81,7 +81,7 @@
} }
GL11.glPopMatrix(); GL11.glPopMatrix();
@@ -448,12 +478,15 @@ @@ -446,12 +476,15 @@
if (itemstack.getItem().requiresMultipleRenderPasses()) if (itemstack.getItem().requiresMultipleRenderPasses())
{ {
this.renderItem(entityclientplayermp, itemstack, 0); this.renderItem(entityclientplayermp, itemstack, 0);

View File

@ -9,7 +9,7 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RenderBlocks public class RenderBlocks
{ {
@@ -603,9 +605,8 @@ @@ -604,9 +606,8 @@
public boolean renderBlockBed(Block par1Block, int par2, int par3, int par4) public boolean renderBlockBed(Block par1Block, int par2, int par3, int par4)
{ {
Tessellator tessellator = Tessellator.instance; Tessellator tessellator = Tessellator.instance;
@ -21,7 +21,7 @@
float f = 0.5F; float f = 0.5F;
float f1 = 1.0F; float f1 = 1.0F;
float f2 = 0.8F; float f2 = 0.8F;
@@ -614,6 +615,7 @@ @@ -615,6 +616,7 @@
tessellator.setBrightness(j1); tessellator.setBrightness(j1);
tessellator.setColorOpaque_F(f, f, f); tessellator.setColorOpaque_F(f, f, f);
Icon icon = this.func_94170_a(par1Block, this.blockAccess, par2, par3, par4, 0); Icon icon = this.func_94170_a(par1Block, this.blockAccess, par2, par3, par4, 0);
@ -29,7 +29,7 @@
double d0 = (double)icon.func_94209_e(); double d0 = (double)icon.func_94209_e();
double d1 = (double)icon.func_94212_f(); double d1 = (double)icon.func_94212_f();
double d2 = (double)icon.func_94206_g(); double d2 = (double)icon.func_94206_g();
@@ -630,6 +632,7 @@ @@ -631,6 +633,7 @@
tessellator.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4)); tessellator.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4));
tessellator.setColorOpaque_F(f1, f1, f1); tessellator.setColorOpaque_F(f1, f1, f1);
icon = this.func_94170_a(par1Block, this.blockAccess, par2, par3, par4, 1); icon = this.func_94170_a(par1Block, this.blockAccess, par2, par3, par4, 1);
@ -37,7 +37,7 @@
d0 = (double)icon.func_94209_e(); d0 = (double)icon.func_94209_e();
d1 = (double)icon.func_94212_f(); d1 = (double)icon.func_94212_f();
d2 = (double)icon.func_94206_g(); d2 = (double)icon.func_94206_g();
@@ -2418,7 +2421,7 @@ @@ -2421,7 +2424,7 @@
double d9; double d9;
double d10; double d10;
@ -46,7 +46,7 @@
{ {
float f1 = 0.2F; float f1 = 0.2F;
float f2 = 0.0625F; float f2 = 0.0625F;
@@ -2438,7 +2441,7 @@ @@ -2441,7 +2444,7 @@
d0 = d5; d0 = d5;
} }
@ -55,7 +55,7 @@
{ {
tessellator.addVertexWithUV((double)((float)par2 + f1), (double)((float)par3 + f + f2), (double)(par4 + 1), d2, d1); tessellator.addVertexWithUV((double)((float)par2 + f1), (double)((float)par3 + f + f2), (double)(par4 + 1), d2, d1);
tessellator.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + f2), (double)(par4 + 1), d2, d3); tessellator.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + f2), (double)(par4 + 1), d2, d3);
@@ -2450,7 +2453,7 @@ @@ -2453,7 +2456,7 @@
tessellator.addVertexWithUV((double)((float)par2 + f1), (double)((float)par3 + f + f2), (double)(par4 + 1), d2, d1); tessellator.addVertexWithUV((double)((float)par2 + f1), (double)((float)par3 + f + f2), (double)(par4 + 1), d2, d1);
} }
@ -64,7 +64,7 @@
{ {
tessellator.addVertexWithUV((double)((float)(par2 + 1) - f1), (double)((float)par3 + f + f2), (double)(par4 + 0), d0, d1); tessellator.addVertexWithUV((double)((float)(par2 + 1) - f1), (double)((float)par3 + f + f2), (double)(par4 + 0), d0, d1);
tessellator.addVertexWithUV((double)(par2 + 1 - 0), (double)((float)(par3 + 0) + f2), (double)(par4 + 0), d0, d3); tessellator.addVertexWithUV((double)(par2 + 1 - 0), (double)((float)(par3 + 0) + f2), (double)(par4 + 0), d0, d3);
@@ -2462,7 +2465,7 @@ @@ -2465,7 +2468,7 @@
tessellator.addVertexWithUV((double)((float)(par2 + 1) - f1), (double)((float)par3 + f + f2), (double)(par4 + 0), d0, d1); tessellator.addVertexWithUV((double)((float)(par2 + 1) - f1), (double)((float)par3 + f + f2), (double)(par4 + 0), d0, d1);
} }
@ -73,7 +73,7 @@
{ {
tessellator.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + f + f2), (double)((float)par4 + f1), d2, d1); tessellator.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + f + f2), (double)((float)par4 + f1), d2, d1);
tessellator.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + f2), (double)(par4 + 0), d2, d3); tessellator.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + f2), (double)(par4 + 0), d2, d3);
@@ -2474,7 +2477,7 @@ @@ -2477,7 +2480,7 @@
tessellator.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + f + f2), (double)((float)par4 + f1), d2, d1); tessellator.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + f + f2), (double)((float)par4 + f1), d2, d1);
} }
@ -82,7 +82,7 @@
{ {
tessellator.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + f + f2), (double)((float)(par4 + 1) - f1), d0, d1); tessellator.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + f + f2), (double)((float)(par4 + 1) - f1), d0, d1);
tessellator.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 0) + f2), (double)(par4 + 1 - 0), d0, d3); tessellator.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 0) + f2), (double)(par4 + 1 - 0), d0, d3);
@@ -2486,7 +2489,7 @@ @@ -2489,7 +2492,7 @@
tessellator.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + f + f2), (double)((float)(par4 + 1) - f1), d0, d1); tessellator.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + f + f2), (double)((float)(par4 + 1) - f1), d0, d1);
} }

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/client/renderer/RenderEngine.java --- ../src_base/minecraft/net/minecraft/client/renderer/RenderEngine.java
+++ ../src_work/minecraft/net/minecraft/client/renderer/RenderEngine.java +++ ../src_work/minecraft/net/minecraft/client/renderer/RenderEngine.java
@@ -27,6 +27,8 @@ @@ -28,6 +28,8 @@
import net.minecraft.util.IntHashMap; import net.minecraft.util.IntHashMap;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
@ -9,7 +9,7 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RenderEngine public class RenderEngine
{ {
@@ -199,6 +201,7 @@ @@ -202,6 +204,7 @@
try try
{ {
@ -17,7 +17,7 @@
this.singleIntBuffer.clear(); this.singleIntBuffer.clear();
GLAllocation.generateTextureNames(this.singleIntBuffer); GLAllocation.generateTextureNames(this.singleIntBuffer);
int i = this.singleIntBuffer.get(0); int i = this.singleIntBuffer.get(0);
@@ -242,6 +245,7 @@ @@ -247,6 +250,7 @@
} }
this.textureMap.put(par1Str, Integer.valueOf(i)); this.textureMap.put(par1Str, Integer.valueOf(i));

View File

@ -1,6 +1,6 @@
--- ../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
@@ -64,6 +64,8 @@ @@ -65,6 +65,8 @@
import org.lwjgl.opengl.ARBOcclusionQuery; import org.lwjgl.opengl.ARBOcclusionQuery;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
@ -9,7 +9,33 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RenderGlobal implements IWorldAccess public class RenderGlobal implements IWorldAccess
{ {
@@ -932,6 +934,12 @@ @@ -677,8 +679,8 @@
this.sortedWorldRenderers[i1].isVisible = true;
}
-
this.theWorld.theProfiler.endStartSection("render");
+ System.out.println("1"+this.theWorld.theProfiler.getNameOfLastSection());
k = b0 + this.renderSortedRenderers(b1, l, par2, par3);
do
@@ -776,6 +778,7 @@
GL11.glEnable(GL11.GL_ALPHA_TEST);
GL11.glEnable(GL11.GL_FOG);
this.theWorld.theProfiler.endStartSection("render");
+ System.out.println("2"+this.theWorld.theProfiler.getNameOfLastSection());
k += this.renderSortedRenderers(j1, l, par2, par3);
}
while (l < this.sortedWorldRenderers.length);
@@ -783,6 +786,7 @@
else
{
this.theWorld.theProfiler.endStartSection("render");
+ System.out.println("3"+this.theWorld.theProfiler.getNameOfLastSection());
k = b0 + this.renderSortedRenderers(0, this.sortedWorldRenderers.length, par2, par3);
}
@@ -934,6 +938,12 @@
*/ */
public void renderSky(float par1) public void renderSky(float par1)
{ {
@ -22,7 +48,7 @@
if (this.mc.theWorld.provider.dimensionId == 1) if (this.mc.theWorld.provider.dimensionId == 1)
{ {
GL11.glDisable(GL11.GL_FOG); GL11.glDisable(GL11.GL_FOG);
@@ -1170,6 +1178,13 @@ @@ -1172,6 +1182,13 @@
public void renderClouds(float par1) public void renderClouds(float par1)
{ {
@ -36,7 +62,7 @@
if (this.mc.theWorld.provider.isSurfaceWorld()) if (this.mc.theWorld.provider.isSurfaceWorld())
{ {
if (this.mc.gameSettings.fancyGraphics) if (this.mc.gameSettings.fancyGraphics)
@@ -1599,6 +1614,11 @@ @@ -1601,6 +1618,11 @@
} }
public void drawBlockDamageTexture(Tessellator par1Tessellator, EntityPlayer par2EntityPlayer, float par3) public void drawBlockDamageTexture(Tessellator par1Tessellator, EntityPlayer par2EntityPlayer, float par3)

View File

@ -76,7 +76,7 @@
f8 = 1.0F; f8 = 1.0F;
if (this.field_77024_a) if (this.field_77024_a)
@@ -232,32 +223,26 @@ @@ -238,32 +229,26 @@
f11 = 0.021875F; f11 = 0.021875F;
ItemStack itemstack = par1EntityItem.getEntityItem(); ItemStack itemstack = par1EntityItem.getEntityItem();
int j = itemstack.stackSize; int j = itemstack.stackSize;
@ -124,7 +124,7 @@
{ {
this.loadTexture("/terrain.png"); this.loadTexture("/terrain.png");
} }
@@ -346,11 +331,12 @@ @@ -352,11 +337,12 @@
float f; float f;
float f1; float f1;
float f2; float f2;
@ -140,7 +140,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);
@@ -383,9 +369,9 @@ @@ -389,9 +375,9 @@
GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_LIGHTING);
par2RenderEngine.bindTexture(par2RenderEngine.getTexture("/gui/items.png")); par2RenderEngine.bindTexture(par2RenderEngine.getTexture("/gui/items.png"));
@ -153,7 +153,7 @@
int k1 = Item.itemsList[k].getColorFromItemStack(par3ItemStack, j1); int k1 = Item.itemsList[k].getColorFromItemStack(par3ItemStack, j1);
f = (float)(k1 >> 16 & 255) / 255.0F; f = (float)(k1 >> 16 & 255) / 255.0F;
f1 = (float)(k1 >> 8 & 255) / 255.0F; f1 = (float)(k1 >> 8 & 255) / 255.0F;
@@ -439,7 +425,10 @@ @@ -450,7 +436,10 @@
{ {
if (par3ItemStack != null) if (par3ItemStack != null)
{ {
@ -163,9 +163,9 @@
+ this.renderItemIntoGUI(par1FontRenderer, par2RenderEngine, par3ItemStack, par4, par5); + this.renderItemIntoGUI(par1FontRenderer, par2RenderEngine, par3ItemStack, par4, par5);
+ } + }
if (par3ItemStack != null && par3ItemStack.hasEffect()) if (par3ItemStack.hasEffect())
{ {
@@ -576,4 +565,47 @@ @@ -587,4 +576,47 @@
{ {
this.doRenderItem((EntityItem)par1Entity, par2, par4, par6, par8, par9); this.doRenderItem((EntityItem)par1Entity, par2, par4, par6, par8, par9);
} }

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
@@ -216,12 +216,14 @@ @@ -218,12 +218,14 @@
if (par4EntityLiving.isPlayerSleeping()) if (par4EntityLiving.isPlayerSleeping())
{ {

View File

@ -1,24 +1,20 @@
--- ../src_base/minecraft/net/minecraft/client/renderer/entity/RenderPlayer.java --- ../src_base/minecraft/net/minecraft/client/renderer/entity/RenderPlayer.java
+++ ../src_work/minecraft/net/minecraft/client/renderer/entity/RenderPlayer.java +++ ../src_work/minecraft/net/minecraft/client/renderer/entity/RenderPlayer.java
@@ -13,10 +13,17 @@ @@ -19,7 +19,13 @@
import net.minecraft.item.EnumAction; import net.minecraft.scoreboard.ScoreObjective;
import net.minecraft.item.EnumArmorMaterial; import net.minecraft.scoreboard.Scoreboard;
import net.minecraft.item.Item;
+import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import org.lwjgl.opengl.GL11; +import net.minecraftforge.client.ForgeHooksClient;
+
+import static net.minecraftforge.client.IItemRenderer.ItemRenderType.*;
+import static net.minecraftforge.client.IItemRenderer.ItemRendererHelper.*;
+import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer;
+import net.minecraftforge.client.MinecraftForgeClient; +import net.minecraftforge.client.MinecraftForgeClient;
+import net.minecraftforge.client.ForgeHooksClient; import org.lwjgl.opengl.GL11;
+import net.minecraft.item.ItemBlock;
+import static net.minecraftforge.client.IItemRenderer.ItemRenderType.EQUIPPED;
+import static net.minecraftforge.client.IItemRenderer.ItemRendererHelper.BLOCK_3D;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RenderPlayer extends RenderLiving public class RenderPlayer extends RenderLiving
@@ -25,6 +32,8 @@ @@ -28,6 +34,8 @@
private ModelBiped modelArmorChestplate; private ModelBiped modelArmorChestplate;
private ModelBiped modelArmor; private ModelBiped modelArmor;
public static String[] armorFilenamePrefix = new String[] {"cloth", "chain", "iron", "diamond", "gold"}; public static String[] armorFilenamePrefix = new String[] {"cloth", "chain", "iron", "diamond", "gold"};
@ -27,7 +23,7 @@
public RenderPlayer() public RenderPlayer()
{ {
@@ -48,7 +57,7 @@ @@ -51,7 +59,7 @@
if (item instanceof ItemArmor) if (item instanceof ItemArmor)
{ {
ItemArmor itemarmor = (ItemArmor)item; ItemArmor itemarmor = (ItemArmor)item;
@ -36,7 +32,7 @@
ModelBiped modelbiped = par2 == 2 ? this.modelArmor : this.modelArmorChestplate; ModelBiped modelbiped = par2 == 2 ? this.modelArmor : this.modelArmorChestplate;
modelbiped.bipedHead.showModel = par2 == 0; modelbiped.bipedHead.showModel = par2 == 0;
modelbiped.bipedHeadwear.showModel = par2 == 0; modelbiped.bipedHeadwear.showModel = par2 == 0;
@@ -117,7 +126,7 @@ @@ -120,7 +128,7 @@
if (item instanceof ItemArmor) if (item instanceof ItemArmor)
{ {
ItemArmor itemarmor = (ItemArmor)item; ItemArmor itemarmor = (ItemArmor)item;
@ -45,7 +41,7 @@
float f1 = 1.0F; float f1 = 1.0F;
GL11.glColor3f(f1, f1, f1); GL11.glColor3f(f1, f1, f1);
} }
@@ -176,9 +185,12 @@ @@ -179,9 +187,12 @@
this.modelBipedMain.bipedHead.postRender(0.0625F); this.modelBipedMain.bipedHead.postRender(0.0625F);
float f2; float f2;
@ -61,7 +57,7 @@
{ {
f2 = 0.625F; f2 = 0.625F;
GL11.glTranslatef(0.0F, -0.25F, 0.0F); GL11.glTranslatef(0.0F, -0.25F, 0.0F);
@@ -296,7 +308,10 @@ @@ -299,7 +310,10 @@
enumaction = itemstack1.getItemUseAction(); enumaction = itemstack1.getItemUseAction();
} }
@ -73,7 +69,7 @@
{ {
f3 = 0.5F; f3 = 0.5F;
GL11.glTranslatef(0.0F, 0.1875F, -0.3125F); GL11.glTranslatef(0.0F, 0.1875F, -0.3125F);
@@ -353,7 +368,7 @@ @@ -356,7 +370,7 @@
if (itemstack1.getItem().requiresMultipleRenderPasses()) if (itemstack1.getItem().requiresMultipleRenderPasses())
{ {

View File

@ -1,8 +1,8 @@
--- ../src_base/minecraft/net/minecraft/command/CommandHandler.java --- ../src_base/minecraft/net/minecraft/command/CommandHandler.java
+++ ../src_work/minecraft/net/minecraft/command/CommandHandler.java +++ ../src_work/minecraft/net/minecraft/command/CommandHandler.java
@@ -10,6 +10,9 @@ @@ -11,6 +11,9 @@
import java.util.Map.Entry;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.EnumChatFormatting;
+import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.CommandEvent; +import net.minecraftforge.event.CommandEvent;
@ -10,7 +10,7 @@
public class CommandHandler implements ICommandManager public class CommandHandler implements ICommandManager
{ {
/** Map of Strings to the ICommand objects they represent */ /** Map of Strings to the ICommand objects they represent */
@@ -40,6 +43,16 @@ @@ -42,6 +45,16 @@
if (icommand.canCommandSenderUseCommand(par1ICommandSender)) if (icommand.canCommandSenderUseCommand(par1ICommandSender))
{ {
@ -21,7 +21,7 @@
+ { + {
+ throw event.exception; + throw event.exception;
+ } + }
+ return; + return 1;
+ } + }
+ +
if (i > -1) if (i > -1)

View File

@ -1,19 +1,14 @@
--- ../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,12 @@ @@ -2,6 +2,7 @@
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.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;
+ @@ -13,8 +14,13 @@
import net.minecraft.block.Block;
import net.minecraft.block.BlockFluid;
import net.minecraft.block.StepSound;
@@ -12,8 +16,13 @@
import net.minecraft.crash.CrashReportCategory; import net.minecraft.crash.CrashReportCategory;
import net.minecraft.enchantment.EnchantmentProtection; import net.minecraft.enchantment.EnchantmentProtection;
import net.minecraft.entity.effect.EntityLightningBolt; import net.minecraft.entity.effect.EntityLightningBolt;
@ -27,7 +22,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;
@@ -24,6 +33,7 @@ @@ -25,6 +31,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;
@ -35,9 +30,9 @@
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;
@@ -222,6 +232,11 @@ @@ -224,6 +231,11 @@
protected int field_82152_aq;
private boolean invulnerable; private boolean invulnerable;
private UUID field_96093_i;
public EnumEntitySize myEntitySize; public EnumEntitySize myEntitySize;
+ /** Forge: Used to store custom data for each entity. */ + /** Forge: Used to store custom data for each entity. */
+ private NBTTagCompound customEntityData; + private NBTTagCompound customEntityData;
@ -47,7 +42,7 @@
public Entity(World par1World) public Entity(World par1World)
{ {
@@ -543,7 +558,7 @@ @@ -546,7 +558,7 @@
if (!this.worldObj.isRemote) if (!this.worldObj.isRemote)
{ {
this.setFlag(0, this.fire > 0); this.setFlag(0, this.fire > 0);
@ -56,32 +51,10 @@
} }
this.firstUpdate = false; this.firstUpdate = false;
@@ -847,6 +862,8 @@ @@ -1510,6 +1522,10 @@
par5 = d11;
this.boundingBox.setBB(axisalignedbb1);
}
+ /* Fixes a vanilla bug where the player view would dip when stepping between certain blocks
+ * https://mojang.atlassian.net/browse/MC-1594
else
{
double d13 = this.boundingBox.minY - (double)((int)this.boundingBox.minY);
@@ -856,6 +873,7 @@
this.ySize = (float)((double)this.ySize + d13 + 0.01D);
}
}
+ */
}
this.worldObj.theProfiler.endSection();
@@ -1514,6 +1532,15 @@
par1NBTTagCompound.setInteger("Dimension", this.dimension);
par1NBTTagCompound.setBoolean("Invulnerable", this.invulnerable);
par1NBTTagCompound.setInteger("PortalCooldown", this.timeUntilPortal); par1NBTTagCompound.setInteger("PortalCooldown", this.timeUntilPortal);
+ if (persistentID != null) par1NBTTagCompound.setLong("UUIDMost", this.field_96093_i.getMostSignificantBits());
+ { par1NBTTagCompound.setLong("UUIDLeast", this.field_96093_i.getLeastSignificantBits());
+ par1NBTTagCompound.setLong("PersistentIDMSB", persistentID.getMostSignificantBits());
+ par1NBTTagCompound.setLong("PersistentIDLSB", persistentID.getLeastSignificantBits());
+ }
+ if (customEntityData != null) + if (customEntityData != null)
+ { + {
+ par1NBTTagCompound.setCompoundTag("ForgeData", customEntityData); + par1NBTTagCompound.setCompoundTag("ForgeData", customEntityData);
@ -89,22 +62,23 @@
this.writeEntityToNBT(par1NBTTagCompound); this.writeEntityToNBT(par1NBTTagCompound);
} }
catch (Throwable throwable) catch (Throwable throwable)
@@ -1568,6 +1595,14 @@ @@ -1570,6 +1586,15 @@
this.timeUntilPortal = par1NBTTagCompound.getInteger("PortalCooldown");
this.setPosition(this.posX, this.posY, this.posZ); this.setPosition(this.posX, this.posY, this.posZ);
this.setRotation(this.rotationYaw, this.rotationPitch); this.setRotation(this.rotationYaw, this.rotationPitch);
+ if (par1NBTTagCompound.hasKey("ForgeData")) + if (par1NBTTagCompound.hasKey("ForgeData"))
+ { + {
+ customEntityData = par1NBTTagCompound.getCompoundTag("ForgeData"); + customEntityData = par1NBTTagCompound.getCompoundTag("ForgeData");
+ } + }
+ //Rawr, legacy code, Vanilla added a UUID, keep this so older maps will convert properly
+ if (par1NBTTagCompound.hasKey("PersistentIDMSB") && par1NBTTagCompound.hasKey("PersistentIDLSB")) + if (par1NBTTagCompound.hasKey("PersistentIDMSB") && par1NBTTagCompound.hasKey("PersistentIDLSB"))
+ { + {
+ persistentID = new UUID(par1NBTTagCompound.getLong("PersistentIDMSB"), par1NBTTagCompound.getLong("PersistentIDLSB")); + this.field_96093_i = new UUID(par1NBTTagCompound.getLong("PersistentIDMSB"), par1NBTTagCompound.getLong("PersistentIDLSB"));
+ } + }
this.readEntityFromNBT(par1NBTTagCompound); this.readEntityFromNBT(par1NBTTagCompound);
} }
catch (Throwable throwable) catch (Throwable throwable)
@@ -1662,7 +1697,14 @@ @@ -1664,7 +1689,14 @@
{ {
EntityItem entityitem = new EntityItem(this.worldObj, this.posX, this.posY + (double)par2, this.posZ, par1ItemStack); EntityItem entityitem = new EntityItem(this.worldObj, this.posX, this.posY + (double)par2, this.posZ, par1ItemStack);
entityitem.delayBeforeCanPickup = 10; entityitem.delayBeforeCanPickup = 10;
@ -120,7 +94,7 @@
return entityitem; return entityitem;
} }
@@ -2021,7 +2063,7 @@ @@ -2026,7 +2058,7 @@
*/ */
public boolean isRiding() public boolean isRiding()
{ {
@ -129,18 +103,18 @@
} }
/** /**
@@ -2359,7 +2401,7 @@ @@ -2364,7 +2396,7 @@
public float func_82146_a(Explosion par1Explosion, Block par2Block, int par3, int par4, int par5) public float func_82146_a(Explosion par1Explosion, World par2World, int par3, int par4, int par5, Block par6Block)
{ {
- return par2Block.getExplosionResistance(this); - return par6Block.getExplosionResistance(this);
+ return par2Block.getExplosionResistance(this, worldObj, par3, par4, par5, posX, posY + (double)getEyeHeight(), posZ); + return par6Block.getExplosionResistance(this, par2World, par3, par4, par5, posX, posY + (double)getEyeHeight(), posZ);
} }
public int func_82143_as() public boolean func_96091_a(Explosion par1Explosion, World par2World, int par3, int par4, int par5, int par6, float par7)
@@ -2399,4 +2441,92 @@ @@ -2419,4 +2451,84 @@
{ {
return this.isBurning(); return this.getEntityName();
} }
+ +
+ /* ================================== Forge Start =====================================*/ + /* ================================== Forge Start =====================================*/
@ -212,15 +186,7 @@
+ +
+ public UUID getPersistentID() + public UUID getPersistentID()
+ { + {
+ return persistentID; + return field_96093_i;
+ }
+
+ public synchronized void generatePersistentID()
+ {
+ if (persistentID == null)
+ {
+ persistentID = UUID.randomUUID();
+ }
+ } + }
+ +
+ /** + /**

View File

@ -20,7 +20,7 @@
public abstract class EntityLiving extends Entity public abstract class EntityLiving extends Entity
{ {
/** /**
@@ -390,6 +396,7 @@ @@ -395,6 +401,7 @@
public void setAttackTarget(EntityLiving par1EntityLiving) public void setAttackTarget(EntityLiving par1EntityLiving)
{ {
this.attackTarget = par1EntityLiving; this.attackTarget = par1EntityLiving;
@ -28,7 +28,7 @@
} }
/** /**
@@ -486,6 +493,7 @@ @@ -491,6 +498,7 @@
{ {
this.entityLivingToAttack = par1EntityLiving; this.entityLivingToAttack = par1EntityLiving;
this.revengeTimer = this.entityLivingToAttack != null ? 100 : 0; this.revengeTimer = this.entityLivingToAttack != null ? 100 : 0;
@ -36,7 +36,7 @@
} }
protected void entityInit() protected void entityInit()
@@ -797,6 +805,11 @@ @@ -802,6 +810,11 @@
*/ */
public void onUpdate() public void onUpdate()
{ {
@ -48,7 +48,7 @@
super.onUpdate(); super.onUpdate();
if (!this.worldObj.isRemote) if (!this.worldObj.isRemote)
@@ -982,6 +995,11 @@ @@ -987,6 +1000,11 @@
*/ */
public boolean attackEntityFrom(DamageSource par1DamageSource, int par2) public boolean attackEntityFrom(DamageSource par1DamageSource, int par2)
{ {
@ -60,7 +60,7 @@
if (this.isEntityInvulnerable()) if (this.isEntityInvulnerable())
{ {
return false; return false;
@@ -1193,6 +1211,11 @@ @@ -1224,6 +1242,11 @@
{ {
if (!this.isEntityInvulnerable()) if (!this.isEntityInvulnerable())
{ {
@ -72,7 +72,7 @@
par2 = this.applyArmorCalculations(par1DamageSource, par2); par2 = this.applyArmorCalculations(par1DamageSource, par2);
par2 = this.applyPotionDamageCalculations(par1DamageSource, par2); par2 = this.applyPotionDamageCalculations(par1DamageSource, par2);
int j = this.getHealth(); int j = this.getHealth();
@@ -1259,6 +1282,11 @@ @@ -1290,6 +1313,11 @@
*/ */
public void onDeath(DamageSource par1DamageSource) public void onDeath(DamageSource par1DamageSource)
{ {
@ -82,20 +82,20 @@
+ } + }
+ +
Entity entity = par1DamageSource.getEntity(); Entity entity = par1DamageSource.getEntity();
EntityLiving entityliving = this.func_94060_bK();
if (this.scoreValue >= 0 && entity != null) @@ -1314,6 +1342,10 @@
@@ -1281,6 +1309,10 @@
{
i = EnchantmentHelper.getLootingModifier((EntityLiving)entity); i = EnchantmentHelper.getLootingModifier((EntityLiving)entity);
} }
+
+ captureDrops = true; + captureDrops = true;
+ capturedDrops.clear(); + capturedDrops.clear();
+ int j = 0; + int j = 0;
+
if (!this.isChild() && this.worldObj.getGameRules().getGameRuleBooleanValue("doMobLoot")) if (!this.isChild() && this.worldObj.getGameRules().getGameRuleBooleanValue("doMobLoot"))
{ {
@@ -1289,7 +1321,7 @@ this.dropFewItems(this.recentlyHit > 0, i);
@@ -1321,7 +1353,7 @@
if (this.recentlyHit > 0) if (this.recentlyHit > 0)
{ {
@ -104,7 +104,7 @@
if (j < 5) if (j < 5)
{ {
@@ -1297,6 +1329,16 @@ @@ -1329,6 +1361,16 @@
} }
} }
} }
@ -121,7 +121,7 @@
} }
this.worldObj.setEntityState(this, (byte)3); this.worldObj.setEntityState(this, (byte)3);
@@ -1341,6 +1383,12 @@ @@ -1373,6 +1415,12 @@
*/ */
protected void fall(float par1) protected void fall(float par1)
{ {
@ -134,7 +134,7 @@
super.fall(par1); super.fall(par1);
int i = MathHelper.ceiling_float_int(par1 - 3.0F); int i = MathHelper.ceiling_float_int(par1 - 3.0F);
@@ -1543,7 +1591,7 @@ @@ -1575,7 +1623,7 @@
int j = MathHelper.floor_double(this.boundingBox.minY); int j = MathHelper.floor_double(this.boundingBox.minY);
int k = MathHelper.floor_double(this.posZ); int k = MathHelper.floor_double(this.posZ);
int l = this.worldObj.getBlockId(i, j, k); int l = this.worldObj.getBlockId(i, j, k);
@ -143,7 +143,7 @@
} }
/** /**
@@ -1965,6 +2013,7 @@ @@ -1997,6 +2045,7 @@
} }
this.isAirBorne = true; this.isAirBorne = true;
@ -151,7 +151,7 @@
} }
/** /**
@@ -2502,8 +2551,6 @@ @@ -2534,8 +2583,6 @@
return this.getCreatureAttribute() == EnumCreatureAttribute.UNDEAD; return this.getCreatureAttribute() == EnumCreatureAttribute.UNDEAD;
} }
@ -160,9 +160,9 @@
/** /**
* Remove the speified potion effect from this entity. * Remove the speified potion effect from this entity.
*/ */
@@ -3004,4 +3051,42 @@ @@ -3044,4 +3091,42 @@
{ {
return this.func_94062_bN(); this.equipmentDropChances[par1] = par2;
} }
+ +
+ /*** + /***

View File

@ -1,5 +1,5 @@
--- ../src_base/minecraft/net/minecraft/entity/EntityMinecartChest.java --- ../src_base/minecraft/net/minecraft/entity/EntityMinecartContainer.java
+++ ../src_work/minecraft/net/minecraft/entity/EntityMinecartChest.java +++ ../src_work/minecraft/net/minecraft/entity/EntityMinecartContainer.java
@@ -10,6 +10,8 @@ @@ -10,6 +10,8 @@
import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagList;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
@ -7,9 +7,9 @@
+import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.entity.minecart.MinecartInteractEvent; +import net.minecraftforge.event.entity.minecart.MinecartInteractEvent;
public class EntityMinecartChest extends EntityMinecart implements IInventory public abstract class EntityMinecartContainer extends EntityMinecart implements IInventory
{ {
@@ -292,6 +294,10 @@ @@ -277,6 +279,10 @@
*/ */
public boolean interact(EntityPlayer par1EntityPlayer) public boolean interact(EntityPlayer par1EntityPlayer)
{ {

View File

@ -1,7 +1,7 @@
--- ../src_base/minecraft/net/minecraft/entity/EntityMinecartFurnace.java --- ../src_base/minecraft/net/minecraft/entity/EntityMinecartFurnace.java
+++ ../src_work/minecraft/net/minecraft/entity/EntityMinecartFurnace.java +++ ../src_work/minecraft/net/minecraft/entity/EntityMinecartFurnace.java
@@ -8,6 +8,8 @@ @@ -9,6 +9,8 @@
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
+import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.MinecraftForge;
@ -9,7 +9,7 @@
public class EntityMinecartFurnace extends EntityMinecart public class EntityMinecartFurnace extends EntityMinecart
{ {
@@ -116,6 +118,10 @@ @@ -127,6 +129,10 @@
*/ */
public boolean interact(EntityPlayer par1EntityPlayer) public boolean interact(EntityPlayer par1EntityPlayer)
{ {

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/entity/item/EntityMinecart.java --- ../src_base/minecraft/net/minecraft/entity/item/EntityMinecart.java
+++ ../src_work/minecraft/net/minecraft/entity/item/EntityMinecart.java +++ ../src_work/minecraft/net/minecraft/entity/item/EntityMinecart.java
@@ -24,6 +24,10 @@ @@ -25,6 +25,10 @@
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraft.world.WorldServer; import net.minecraft.world.WorldServer;
@ -11,7 +11,7 @@
public abstract class EntityMinecart extends Entity public abstract class EntityMinecart extends Entity
{ {
@@ -48,6 +52,20 @@ @@ -49,6 +53,20 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
protected double velocityZ; protected double velocityZ;
@ -32,7 +32,7 @@
public EntityMinecart(World par1World) public EntityMinecart(World par1World)
{ {
super(par1World); super(par1World);
@@ -99,6 +117,10 @@ @@ -102,6 +120,10 @@
*/ */
public AxisAlignedBB getCollisionBox(Entity par1Entity) public AxisAlignedBB getCollisionBox(Entity par1Entity)
{ {
@ -43,7 +43,7 @@
return par1Entity.canBePushed() ? par1Entity.boundingBox : null; return par1Entity.canBePushed() ? par1Entity.boundingBox : null;
} }
@@ -107,6 +129,10 @@ @@ -110,6 +132,10 @@
*/ */
public AxisAlignedBB getBoundingBox() public AxisAlignedBB getBoundingBox()
{ {
@ -54,7 +54,7 @@
return null; return null;
} }
@@ -115,7 +141,7 @@ @@ -118,7 +144,7 @@
*/ */
public boolean canBePushed() public boolean canBePushed()
{ {
@ -63,19 +63,25 @@
} }
public EntityMinecart(World par1World, double par2, double par4, double par6) public EntityMinecart(World par1World, double par2, double par4, double par6)
@@ -349,13 +375,16 @@ @@ -350,10 +376,13 @@
double d5 = 0.0078125D; double d5 = 0.0078125D;
int l = this.worldObj.getBlockId(j, i, k); int l = this.worldObj.getBlockId(j, i, k);
- if (BlockRailBase.isRailBlock(l)) - if (BlockRailBase.isRailBlock(l))
- { - {
- this.func_94091_a(j, i, k, d4, d5, l, this.worldObj.getBlockMetadata(j, i, k)); - int i1 = this.worldObj.getBlockMetadata(j, i, k);
- this.func_94091_a(j, i, k, d4, d5, l, i1);
+ if (canUseRail() && BlockRailBase.isRailBlock(l)) + if (canUseRail() && BlockRailBase.isRailBlock(l))
+ { + {
+ BlockRailBase rail = (BlockRailBase)Block.blocksList[l]; + BlockRailBase rail = (BlockRailBase)Block.blocksList[l];
+ float railMaxSpeed = rail.getRailMaxSpeed(worldObj, this, j, i, k); + float railMaxSpeed = rail.getRailMaxSpeed(worldObj, this, j, i, k);
+ double maxSpeed = Math.min(railMaxSpeed, getCurrentCartSpeedCapOnRail()); + double maxSpeed = Math.min(railMaxSpeed, getCurrentCartSpeedCapOnRail());
+ this.func_94091_a(j, i, k, maxSpeed, getSlopeAdjustment(), l, rail.getBasicRailMetadata(worldObj, this, j, i, k)); + int i1 = rail.getBasicRailMetadata(worldObj, this, j, i, k);
+ this.func_94091_a(j, i, k, maxSpeed, getSlopeAdjustment(), l, i1);
if (l == Block.field_94337_cv.blockID)
{
@@ -362,7 +391,7 @@
} }
else else
{ {
@ -84,7 +90,7 @@
} }
this.doBlockCollisions(); this.doBlockCollisions();
@@ -382,7 +411,18 @@ @@ -389,7 +418,18 @@
} }
this.setRotation(this.rotationYaw, this.rotationPitch); this.setRotation(this.rotationYaw, this.rotationPitch);
@ -104,7 +110,7 @@
if (list != null && !list.isEmpty()) if (list != null && !list.isEmpty())
{ {
@@ -406,6 +446,8 @@ @@ -413,6 +453,8 @@
this.riddenByEntity = null; this.riddenByEntity = null;
} }
@ -113,7 +119,7 @@
} }
} }
@@ -429,6 +471,17 @@ @@ -438,6 +480,17 @@
if (this.motionZ > par1) if (this.motionZ > par1)
{ {
this.motionZ = par1; this.motionZ = par1;
@ -131,7 +137,7 @@
} }
if (this.onGround) if (this.onGround)
@@ -438,13 +491,13 @@ @@ -447,13 +500,13 @@
this.motionZ *= 0.5D; this.motionZ *= 0.5D;
} }
@ -149,7 +155,7 @@
} }
} }
@@ -458,7 +511,7 @@ @@ -467,7 +520,7 @@
if (par8 == Block.railPowered.blockID) if (par8 == Block.railPowered.blockID)
{ {
@ -158,7 +164,7 @@
flag1 = !flag; flag1 = !flag;
} }
@@ -523,7 +576,7 @@ @@ -532,7 +585,7 @@
} }
} }
@ -167,7 +173,7 @@
{ {
d7 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); d7 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
@@ -571,36 +624,8 @@ @@ -580,36 +633,8 @@
this.posX = d8 + d2 * d7; this.posX = d8 + d2 * d7;
this.posZ = d9 + d3 * d7; this.posZ = d9 + d3 * d7;
this.setPosition(this.posX, this.posY + (double)this.yOffset, this.posZ); this.setPosition(this.posX, this.posY + (double)this.yOffset, this.posZ);
@ -206,7 +212,7 @@
if (aint[0][1] != 0 && MathHelper.floor_double(this.posX) - par1 == aint[0][0] && MathHelper.floor_double(this.posZ) - par3 == aint[0][2]) if (aint[0][1] != 0 && MathHelper.floor_double(this.posX) - par1 == aint[0][0] && MathHelper.floor_double(this.posZ) - par3 == aint[0][2])
{ {
@@ -638,7 +663,12 @@ @@ -647,7 +672,12 @@
this.motionZ = d6 * (double)(k1 - par3); this.motionZ = d6 * (double)(k1 - par3);
} }
@ -220,7 +226,7 @@
{ {
double d15 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); double d15 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
@@ -709,12 +739,7 @@ @@ -718,12 +748,7 @@
} }
else else
{ {
@ -234,7 +240,7 @@
par3 = (double)j; par3 = (double)j;
@@ -760,13 +785,8 @@ @@ -769,13 +794,8 @@
if (BlockRailBase.isRailBlock(l)) if (BlockRailBase.isRailBlock(l))
{ {
@ -249,7 +255,7 @@
if (i1 >= 2 && i1 <= 5) if (i1 >= 2 && i1 <= 5)
{ {
@@ -872,11 +892,17 @@ @@ -881,11 +901,17 @@
*/ */
public void applyEntityCollision(Entity par1Entity) public void applyEntityCollision(Entity par1Entity)
{ {
@ -268,7 +274,7 @@
{ {
par1Entity.mountEntity(this); par1Entity.mountEntity(this);
} }
@@ -922,7 +948,7 @@ @@ -931,7 +957,7 @@
double d7 = par1Entity.motionX + this.motionX; double d7 = par1Entity.motionX + this.motionX;
double d8 = par1Entity.motionZ + this.motionZ; double d8 = par1Entity.motionZ + this.motionZ;
@ -277,7 +283,7 @@
{ {
this.motionX *= 0.20000000298023224D; this.motionX *= 0.20000000298023224D;
this.motionZ *= 0.20000000298023224D; this.motionZ *= 0.20000000298023224D;
@@ -930,7 +956,7 @@ @@ -939,7 +965,7 @@
par1Entity.motionX *= 0.949999988079071D; par1Entity.motionX *= 0.949999988079071D;
par1Entity.motionZ *= 0.949999988079071D; par1Entity.motionZ *= 0.949999988079071D;
} }
@ -286,9 +292,9 @@
{ {
par1Entity.motionX *= 0.20000000298023224D; par1Entity.motionX *= 0.20000000298023224D;
par1Entity.motionZ *= 0.20000000298023224D; par1Entity.motionZ *= 0.20000000298023224D;
@@ -1118,4 +1144,206 @@ @@ -1142,4 +1168,211 @@
{ {
return this.field_94102_c != null ? this.field_94102_c : super.getEntityName(); return this.field_94102_c;
} }
+ +
+ /** + /**
@ -354,19 +360,24 @@
+ * but is not necessary the item the cart drops when destroyed. + * but is not necessary the item the cart drops when destroyed.
+ * @return An ItemStack that can be used to place the cart. + * @return An ItemStack that can be used to place the cart.
+ */ + */
+ public ItemStack getCartItem() { + public ItemStack getCartItem()
+ {
+ if (this instanceof EntityMinecartChest) + if (this instanceof EntityMinecartChest)
+ { + {
+ return new ItemStack(Item.minecartCrate); + return new ItemStack(Item.minecartCrate);
+ } + }
+ if (this instanceof EntityMinecartTNT) + else if (this instanceof EntityMinecartTNT)
+ { + {
+ return new ItemStack(Item.field_94582_cb); + return new ItemStack(Item.field_94582_cb);
+ } + }
+ if (this instanceof EntityMinecartFurnace) + else if (this instanceof EntityMinecartFurnace)
+ { + {
+ return new ItemStack(Item.minecartPowered); + return new ItemStack(Item.minecartPowered);
+ } + }
+ else if (this instanceof EntityMinecartHopper)
+ {
+ return new ItemStack(Item.field_96600_cc);
+ }
+ return new ItemStack(Item.minecartEmpty); + return new ItemStack(Item.minecartEmpty);
+ } + }
+ +

View File

@ -20,7 +20,7 @@
{ {
private final InventoryCrafting field_90016_e = new InventoryCrafting(new ContainerSheep(this), 2, 1); private final InventoryCrafting field_90016_e = new InventoryCrafting(new ContainerSheep(this), 2, 1);
@@ -139,28 +143,6 @@ @@ -159,28 +163,6 @@
*/ */
public boolean interact(EntityPlayer par1EntityPlayer) public boolean interact(EntityPlayer par1EntityPlayer)
{ {

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/entity/player/EntityPlayer.java --- ../src_base/minecraft/net/minecraft/entity/player/EntityPlayer.java
+++ ../src_work/minecraft/net/minecraft/entity/player/EntityPlayer.java +++ ../src_work/minecraft/net/minecraft/entity/player/EntityPlayer.java
@@ -57,8 +57,21 @@ @@ -64,8 +64,21 @@
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.chunk.IChunkProvider;
@ -22,7 +22,7 @@
/** Inventory of the player */ /** Inventory of the player */
public InventoryPlayer inventory = new InventoryPlayer(this); public InventoryPlayer inventory = new InventoryPlayer(this);
private InventoryEnderChest theInventoryEnderChest = new InventoryEnderChest(); private InventoryEnderChest theInventoryEnderChest = new InventoryEnderChest();
@@ -261,6 +274,7 @@ @@ -268,6 +281,7 @@
if (itemstack == this.itemInUse) if (itemstack == this.itemInUse)
{ {
@ -30,7 +30,7 @@
if (this.itemInUseCount <= 25 && this.itemInUseCount % 4 == 0) if (this.itemInUseCount <= 25 && this.itemInUseCount % 4 == 0)
{ {
this.updateItemUse(itemstack, 5); this.updateItemUse(itemstack, 5);
@@ -499,11 +513,11 @@ @@ -506,11 +520,11 @@
this.cameraYaw = 0.0F; this.cameraYaw = 0.0F;
this.addMountedMovementStat(this.posX - d0, this.posY - d1, this.posZ - d2); this.addMountedMovementStat(this.posX - d0, this.posY - d1, this.posZ - d2);
@ -44,7 +44,7 @@
} }
} }
@@ -632,6 +646,9 @@ @@ -639,6 +653,9 @@
this.setPosition(this.posX, this.posY, this.posZ); this.setPosition(this.posX, this.posY, this.posZ);
this.motionY = 0.10000000149011612D; this.motionY = 0.10000000149011612D;
@ -54,7 +54,7 @@
if (this.username.equals("Notch")) if (this.username.equals("Notch"))
{ {
this.dropPlayerItemWithRandomChoice(new ItemStack(Item.appleRed, 1), true); this.dropPlayerItemWithRandomChoice(new ItemStack(Item.appleRed, 1), true);
@@ -640,6 +657,20 @@ @@ -647,6 +664,20 @@
if (!this.worldObj.getGameRules().getGameRuleBooleanValue("keepInventory")) if (!this.worldObj.getGameRules().getGameRuleBooleanValue("keepInventory"))
{ {
this.inventory.dropAllItems(); this.inventory.dropAllItems();
@ -75,7 +75,7 @@
} }
if (par1DamageSource != null) if (par1DamageSource != null)
@@ -679,7 +710,20 @@ @@ -697,7 +728,20 @@
*/ */
public EntityItem dropOneItem(boolean par1) public EntityItem dropOneItem(boolean par1)
{ {
@ -97,7 +97,7 @@
} }
/** /**
@@ -688,7 +732,7 @@ @@ -706,7 +750,7 @@
*/ */
public EntityItem dropPlayerItem(ItemStack par1ItemStack) public EntityItem dropPlayerItem(ItemStack par1ItemStack)
{ {
@ -106,7 +106,7 @@
} }
/** /**
@@ -740,23 +784,39 @@ @@ -758,23 +802,39 @@
*/ */
public void joinEntityItemWithWorld(EntityItem par1EntityItem) public void joinEntityItemWithWorld(EntityItem par1EntityItem)
{ {
@ -151,7 +151,7 @@
{ {
f += f1 * 0.08F; f += f1 * 0.08F;
} }
@@ -786,7 +846,8 @@ @@ -804,7 +864,8 @@
f /= 5.0F; f /= 5.0F;
} }
@ -161,7 +161,7 @@
} }
/** /**
@@ -794,7 +855,7 @@ @@ -812,7 +873,7 @@
*/ */
public boolean canHarvestBlock(Block par1Block) public boolean canHarvestBlock(Block par1Block)
{ {
@ -170,7 +170,7 @@
} }
/** /**
@@ -1083,12 +1144,22 @@ @@ -1070,12 +1131,22 @@
{ {
if (!this.isEntityInvulnerable()) if (!this.isEntityInvulnerable())
{ {
@ -194,7 +194,7 @@
par2 = this.applyPotionDamageCalculations(par1DamageSource, par2); par2 = this.applyPotionDamageCalculations(par1DamageSource, par2);
this.addExhaustion(par1DamageSource.getHungerDamage()); this.addExhaustion(par1DamageSource.getHungerDamage());
int j = this.getHealth(); int j = this.getHealth();
@@ -1131,6 +1202,10 @@ @@ -1118,6 +1189,10 @@
public boolean interactWith(Entity par1Entity) public boolean interactWith(Entity par1Entity)
{ {
@ -205,7 +205,7 @@
if (par1Entity.interact(this)) if (par1Entity.interact(this))
{ {
return true; return true;
@@ -1174,7 +1249,9 @@ @@ -1161,7 +1236,9 @@
*/ */
public void destroyCurrentEquippedItem() public void destroyCurrentEquippedItem()
{ {
@ -215,7 +215,7 @@
} }
/** /**
@@ -1191,6 +1268,15 @@ @@ -1178,6 +1255,15 @@
*/ */
public void attackTargetEntityWithCurrentItem(Entity par1Entity) public void attackTargetEntityWithCurrentItem(Entity par1Entity)
{ {
@ -231,7 +231,7 @@
if (par1Entity.canAttackWithItem()) if (par1Entity.canAttackWithItem())
{ {
if (!par1Entity.func_85031_j(this)) if (!par1Entity.func_85031_j(this))
@@ -1354,6 +1440,12 @@ @@ -1341,6 +1427,12 @@
*/ */
public EnumStatus sleepInBedAt(int par1, int par2, int par3) public EnumStatus sleepInBedAt(int par1, int par2, int par3)
{ {
@ -244,7 +244,7 @@
if (!this.worldObj.isRemote) if (!this.worldObj.isRemote)
{ {
if (this.isPlayerSleeping() || !this.isEntityAlive()) if (this.isPlayerSleeping() || !this.isEntityAlive())
@@ -1393,6 +1485,11 @@ @@ -1380,6 +1472,11 @@
{ {
int l = this.worldObj.getBlockMetadata(par1, par2, par3); int l = this.worldObj.getBlockMetadata(par1, par2, par3);
int i1 = BlockBed.getDirection(l); int i1 = BlockBed.getDirection(l);
@ -256,7 +256,7 @@
float f = 0.5F; float f = 0.5F;
float f1 = 0.5F; float f1 = 0.5F;
@@ -1463,10 +1560,12 @@ @@ -1450,10 +1547,12 @@
ChunkCoordinates chunkcoordinates = this.playerLocation; ChunkCoordinates chunkcoordinates = this.playerLocation;
ChunkCoordinates chunkcoordinates1 = this.playerLocation; ChunkCoordinates chunkcoordinates1 = this.playerLocation;
@ -273,7 +273,7 @@
if (chunkcoordinates1 == null) if (chunkcoordinates1 == null)
{ {
@@ -1503,7 +1602,9 @@ @@ -1490,7 +1589,9 @@
*/ */
private boolean isInBed() private boolean isInBed()
{ {
@ -284,7 +284,7 @@
} }
/** /**
@@ -1518,9 +1619,12 @@ @@ -1505,9 +1606,12 @@
ichunkprovider.loadChunk(par1ChunkCoordinates.posX - 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4); ichunkprovider.loadChunk(par1ChunkCoordinates.posX - 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4);
ichunkprovider.loadChunk(par1ChunkCoordinates.posX + 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4); ichunkprovider.loadChunk(par1ChunkCoordinates.posX + 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4);
@ -300,7 +300,7 @@
return chunkcoordinates1; return chunkcoordinates1;
} }
else else
@@ -1542,10 +1646,13 @@ @@ -1529,10 +1633,13 @@
{ {
if (this.playerLocation != null) if (this.playerLocation != null)
{ {
@ -318,7 +318,7 @@
{ {
case 0: case 0:
return 90.0F; return 90.0F;
@@ -1852,7 +1959,7 @@ @@ -1839,7 +1946,7 @@
{ {
if (par1ItemStack.getItem().requiresMultipleRenderPasses()) if (par1ItemStack.getItem().requiresMultipleRenderPasses())
{ {
@ -327,7 +327,7 @@
} }
if (this.itemInUse != null && par1ItemStack.itemID == Item.bow.itemID) if (this.itemInUse != null && par1ItemStack.itemID == Item.bow.itemID)
@@ -1874,6 +1981,7 @@ @@ -1861,6 +1968,7 @@
return Item.bow.func_94599_c(0); return Item.bow.func_94599_c(0);
} }
} }
@ -335,7 +335,7 @@
} }
return icon; return icon;
@@ -2105,6 +2213,14 @@ @@ -2092,6 +2200,14 @@
} }
this.theInventoryEnderChest = par1EntityPlayer.theInventoryEnderChest; this.theInventoryEnderChest = par1EntityPlayer.theInventoryEnderChest;
@ -350,7 +350,7 @@
} }
/** /**
@@ -2176,7 +2292,14 @@ @@ -2163,7 +2279,14 @@
*/ */
public void setCurrentItemOrArmor(int par1, ItemStack par2ItemStack) public void setCurrentItemOrArmor(int par1, ItemStack par2ItemStack)
{ {
@ -365,4 +365,4 @@
+ } + }
} }
public ItemStack[] getLastActiveItems() /**

View File

@ -1,14 +1,14 @@
--- ../src_base/minecraft/net/minecraft/entity/player/EntityPlayerMP.java --- ../src_base/minecraft/net/minecraft/entity/player/EntityPlayerMP.java
+++ ../src_work/minecraft/net/minecraft/entity/player/EntityPlayerMP.java +++ ../src_work/minecraft/net/minecraft/entity/player/EntityPlayerMP.java
@@ -9,6 +9,7 @@ @@ -15,6 +15,7 @@
import java.util.List; import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.Entity; import net.minecraft.entity.EntityMinecartHopper;
import net.minecraft.entity.IMerchant; import net.minecraft.entity.IMerchant;
+import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.entity.projectile.EntityArrow;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
import net.minecraft.inventory.ContainerBeacon; import net.minecraft.inventory.ContainerBeacon;
@@ -76,6 +77,11 @@ @@ -87,6 +88,11 @@
import net.minecraft.world.WorldServer; import net.minecraft.world.WorldServer;
import net.minecraft.world.chunk.Chunk; import net.minecraft.world.chunk.Chunk;
@ -20,7 +20,7 @@
public class EntityPlayerMP extends EntityPlayer implements ICrafting public class EntityPlayerMP extends EntityPlayer implements ICrafting
{ {
private StringTranslate translator = new StringTranslate("en_US"); private StringTranslate translator = new StringTranslate("en_US");
@@ -147,18 +153,10 @@ @@ -158,18 +164,10 @@
par4ItemInWorldManager.thisPlayerMP = this; par4ItemInWorldManager.thisPlayerMP = this;
this.theItemInWorldManager = par4ItemInWorldManager; this.theItemInWorldManager = par4ItemInWorldManager;
this.renderDistance = par1MinecraftServer.getConfigurationManager().getViewDistance(); this.renderDistance = par1MinecraftServer.getConfigurationManager().getViewDistance();
@ -38,9 +38,9 @@
- k = par2World.getTopSolidOrLiquidBlock(i, j); - k = par2World.getTopSolidOrLiquidBlock(i, j);
- } - }
this.setLocationAndAngles((double)i + 0.5D, (double)k, (double)j + 0.5D, 0.0F, 0.0F);
this.mcServer = par1MinecraftServer; this.mcServer = par1MinecraftServer;
@@ -255,7 +253,10 @@ this.stepHeight = 0.0F;
@@ -271,7 +269,10 @@
if (chunkcoordintpair != null && this.worldObj.blockExists(chunkcoordintpair.chunkXPos << 4, 0, chunkcoordintpair.chunkZPos << 4)) if (chunkcoordintpair != null && this.worldObj.blockExists(chunkcoordintpair.chunkXPos << 4, 0, chunkcoordintpair.chunkZPos << 4))
{ {
arraylist.add(this.worldObj.getChunkFromChunkCoords(chunkcoordintpair.chunkXPos, chunkcoordintpair.chunkZPos)); arraylist.add(this.worldObj.getChunkFromChunkCoords(chunkcoordintpair.chunkXPos, chunkcoordintpair.chunkZPos));
@ -52,7 +52,7 @@
} }
} }
@@ -276,6 +277,7 @@ @@ -292,6 +293,7 @@
{ {
Chunk chunk = (Chunk)iterator2.next(); Chunk chunk = (Chunk)iterator2.next();
this.getServerForPlayer().getEntityTracker().func_85172_a(this, chunk); this.getServerForPlayer().getEntityTracker().func_85172_a(this, chunk);
@ -60,7 +60,7 @@
} }
} }
} }
@@ -320,11 +322,29 @@ @@ -359,11 +361,29 @@
*/ */
public void onDeath(DamageSource par1DamageSource) public void onDeath(DamageSource par1DamageSource)
{ {
@ -88,5 +88,5 @@
+ } + }
+ } + }
} }
}
Collection collection = this.worldObj.func_96441_U().func_96520_a(ScoreObjectiveCriteria.field_96642_c);

View File

@ -1,17 +1,17 @@
--- ../src_base/minecraft/net/minecraft/entity/player/InventoryPlayer.java --- ../src_base/minecraft/net/minecraft/entity/player/InventoryPlayer.java
+++ ../src_work/minecraft/net/minecraft/entity/player/InventoryPlayer.java +++ ../src_work/minecraft/net/minecraft/entity/player/InventoryPlayer.java
@@ -337,6 +337,14 @@ @@ -338,6 +338,14 @@
if (this.mainInventory[i] != null)
{
this.mainInventory[i].updateAnimation(this.player.worldObj, this.player, i, this.currentItem == i); this.mainInventory[i].updateAnimation(this.player.worldObj, this.player, i, this.currentItem == i);
} + }
} + }
+ +
+ for (int i = 0; i < this.armorInventory.length; i++) + for (int i = 0; i < this.armorInventory.length; i++)
+ { + {
+ if (this.armorInventory[i] != null) + if (this.armorInventory[i] != null)
+ { + {
+ this.armorInventory[i].getItem().onArmorTickUpdate(this.player.worldObj, this.player, this.armorInventory[i]); + this.armorInventory[i].getItem().onArmorTickUpdate(this.player.worldObj, this.player, this.armorInventory[i]);
+ } }
+ } }
} }
/**

View File

@ -18,7 +18,7 @@
public class Item public class Item
{ {
@@ -237,13 +240,16 @@ @@ -242,13 +245,16 @@
/** Icon index in the icons table. */ /** Icon index in the icons table. */
protected Icon iconIndex; protected Icon iconIndex;
@ -36,7 +36,7 @@
} }
itemsList[256 + par1] = this; itemsList[256 + par1] = this;
@@ -625,6 +631,10 @@ @@ -630,6 +636,10 @@
float f7 = f4 * f5; float f7 = f4 * f5;
float f8 = f3 * f5; float f8 = f3 * f5;
double d3 = 5.0D; double d3 = 5.0D;
@ -47,7 +47,7 @@
Vec3 vec31 = vec3.addVector((double)f7 * d3, (double)f6 * d3, (double)f8 * d3); Vec3 vec31 = vec3.addVector((double)f7 * d3, (double)f6 * d3, (double)f8 * d3);
return par1World.rayTraceBlocks_do_do(vec3, vec31, par3, !par3); return par1World.rayTraceBlocks_do_do(vec3, vec31, par3, !par3);
} }
@@ -705,4 +715,324 @@ @@ -710,4 +720,324 @@
{ {
StatList.initStats(); StatList.initStats();
} }

View File

@ -1,9 +1,10 @@
--- ../src_base/minecraft/net/minecraft/item/ItemDye.java --- ../src_base/minecraft/net/minecraft/item/ItemDye.java
+++ ../src_work/minecraft/net/minecraft/item/ItemDye.java +++ ../src_work/minecraft/net/minecraft/item/ItemDye.java
@@ -20,6 +20,11 @@ @@ -21,6 +21,12 @@
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
+import net.minecraftforge.common.FakePlayerFactory;
+import net.minecraftforge.common.ForgeHooks; +import net.minecraftforge.common.ForgeHooks;
+import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.Event.Result; +import net.minecraftforge.event.Event.Result;
@ -12,44 +13,50 @@
public class ItemDye extends Item public class ItemDye extends Item
{ {
/** List of dye color names */ /** List of dye color names */
@@ -73,6 +78,21 @@ @@ -137,7 +143,27 @@
if (par1ItemStack.getItemDamage() == 15)
{
i1 = par3World.getBlockId(par4, par5, par6);
+
+ BonemealEvent event = new BonemealEvent(par2EntityPlayer, par3World, i1, par4, par5, par6);
+ if (MinecraftForge.EVENT_BUS.post(event))
+ {
+ return false;
+ }
+
+ if (event.getResult() == Result.ALLOW)
+ {
+ if (!par3World.isRemote)
+ {
+ par1ItemStack.stackSize--;
+ }
+ return true;
+ }
if (i1 == Block.sapling.blockID) public static boolean func_96604_a(ItemStack par0ItemStack, World par1World, int par2, int par3, int par4)
{ {
@@ -172,16 +192,9 @@ + return applyBonemeal(par0ItemStack, par1World, par2, par3, par4, FakePlayerFactory.getMinecraft(par1World));
par3World.setBlockAndMetadataWithNotify(k1, l1, i2, Block.tallGrass.blockID, 1, 3); + }
+
+ public static boolean applyBonemeal(ItemStack par0ItemStack, World par1World, int par2, int par3, int par4, EntityPlayer player)
+ {
int l = par1World.getBlockId(par2, par3, par4);
+
+ BonemealEvent event = new BonemealEvent(player, par1World, l, par2, par3, par4);
+ if (MinecraftForge.EVENT_BUS.post(event))
+ {
+ return false;
+ }
+
+ if (event.getResult() == Result.ALLOW)
+ {
+ if (!par1World.isRemote)
+ {
+ par0ItemStack.stackSize--;
+ }
+ return true;
+ }
if (l == Block.sapling.blockID)
{
@@ -240,16 +266,9 @@
par1World.setBlockAndMetadataWithNotify(j1, k1, l1, Block.tallGrass.blockID, 1, 3);
}
}
- else if (itemRand.nextInt(3) != 0)
+ else
{
- if (Block.plantYellow.canBlockStay(par1World, j1, k1, l1))
- {
- par1World.func_94575_c(j1, k1, l1, Block.plantYellow.blockID);
- }
- }
- else if (Block.plantRed.canBlockStay(par1World, j1, k1, l1))
- {
- par1World.func_94575_c(j1, k1, l1, Block.plantRed.blockID);
+ ForgeHooks.plantGrass(par1World, j1, k1, l1);
} }
} }
- else if (itemRand.nextInt(3) != 0)
+ else
{
- if (Block.plantYellow.canBlockStay(par3World, k1, l1, i2))
- {
- par3World.func_94575_c(k1, l1, i2, Block.plantYellow.blockID);
- }
- }
- else if (Block.plantRed.canBlockStay(par3World, k1, l1, i2))
- {
- par3World.func_94575_c(k1, l1, i2, Block.plantRed.blockID);
+ ForgeHooks.plantGrass(par3World, k1, l1, i2);
}
} }
}

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
@@ -279,7 +279,7 @@ @@ -282,7 +282,7 @@
} }
} }

View File

@ -1,7 +1,7 @@
--- ../src_base/minecraft/net/minecraft/network/NetServerHandler.java --- ../src_base/minecraft/net/minecraft/network/NetServerHandler.java
+++ ../src_work/minecraft/net/minecraft/network/NetServerHandler.java +++ ../src_work/minecraft/net/minecraft/network/NetServerHandler.java
@@ -64,6 +64,13 @@ @@ -63,6 +63,13 @@
import net.minecraft.util.MathHelper; import net.minecraft.util.IntHashMap;
import net.minecraft.world.WorldServer; import net.minecraft.world.WorldServer;
+import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.MinecraftForge;
@ -14,7 +14,7 @@
public class NetServerHandler extends NetHandler public class NetServerHandler extends NetHandler
{ {
/** The logging system. */ /** The logging system. */
@@ -235,6 +242,11 @@ @@ -239,6 +246,11 @@
if (this.playerEntity.ridingEntity != null) if (this.playerEntity.ridingEntity != null)
{ {
this.playerEntity.ridingEntity.updateRiderPosition(); this.playerEntity.ridingEntity.updateRiderPosition();
@ -26,7 +26,7 @@
} }
this.mcServer.getConfigurationManager().serverUpdateMountedMovingPlayer(this.playerEntity); this.mcServer.getConfigurationManager().serverUpdateMountedMovingPlayer(this.playerEntity);
@@ -307,9 +319,9 @@ @@ -311,9 +323,9 @@
d4 = d1 - this.playerEntity.posX; d4 = d1 - this.playerEntity.posX;
double d6 = d2 - this.playerEntity.posY; double d6 = d2 - this.playerEntity.posY;
double d7 = d3 - this.playerEntity.posZ; double d7 = d3 - this.playerEntity.posZ;
@ -39,7 +39,7 @@
double d11 = d8 * d8 + d9 * d9 + d10 * d10; double d11 = d8 * d8 + d9 * d9 + d10 * d10;
if (d11 > 100.0D && (!this.mcServer.isSinglePlayer() || !this.mcServer.getServerOwner().equals(this.playerEntity.username))) if (d11 > 100.0D && (!this.mcServer.isSinglePlayer() || !this.mcServer.getServerOwner().equals(this.playerEntity.username)))
@@ -325,6 +337,11 @@ @@ -329,6 +341,11 @@
if (this.playerEntity.onGround && !par1Packet10Flying.onGround && d6 > 0.0D) if (this.playerEntity.onGround && !par1Packet10Flying.onGround && d6 > 0.0D)
{ {
this.playerEntity.addExhaustion(0.2F); this.playerEntity.addExhaustion(0.2F);
@ -51,7 +51,7 @@
} }
this.playerEntity.moveEntity(d4, d6, d7); this.playerEntity.moveEntity(d4, d6, d7);
@@ -349,10 +366,15 @@ @@ -353,10 +370,15 @@
logger.warning(this.playerEntity.username + " moved wrongly!"); logger.warning(this.playerEntity.username + " moved wrongly!");
} }
@ -68,7 +68,7 @@
{ {
this.setPlayerLocation(this.lastPosX, this.lastPosY, this.lastPosZ, f2, f3); this.setPlayerLocation(this.lastPosX, this.lastPosY, this.lastPosZ, f2, f3);
return; return;
@@ -360,7 +382,7 @@ @@ -364,7 +386,7 @@
AxisAlignedBB axisalignedbb = this.playerEntity.boundingBox.copy().expand((double)f4, (double)f4, (double)f4).addCoord(0.0D, -0.55D, 0.0D); AxisAlignedBB axisalignedbb = this.playerEntity.boundingBox.copy().expand((double)f4, (double)f4, (double)f4).addCoord(0.0D, -0.55D, 0.0D);
@ -77,7 +77,7 @@
{ {
if (d12 >= -0.03125D) if (d12 >= -0.03125D)
{ {
@@ -379,6 +401,11 @@ @@ -383,6 +405,11 @@
this.ticksForFloatKick = 0; this.ticksForFloatKick = 0;
} }
@ -89,8 +89,8 @@
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 - d0, par1Packet10Flying.onGround); this.playerEntity.updateFlyingState(this.playerEntity.posY - d0, par1Packet10Flying.onGround);
@@ -447,7 +474,10 @@ @@ -449,7 +476,10 @@
double d2 = this.playerEntity.posZ - ((double)l + 0.5D); double d2 = this.playerEntity.posZ - ((double)k + 0.5D);
double d3 = d0 * d0 + d1 * d1 + d2 * d2; double d3 = d0 * d0 + d1 * d1 + d2 * d2;
- if (d3 > 36.0D) - if (d3 > 36.0D)
@ -101,15 +101,7 @@
{ {
return; return;
} }
@@ -471,6 +501,7 @@ @@ -509,7 +539,11 @@
{
if (j1 <= i && !flag)
{
+ ForgeEventFactory.onPlayerInteract(playerEntity, Action.LEFT_CLICK_BLOCK, j, k, l, 0);
this.playerEntity.playerNetServerHandler.sendPacketToPlayer(new Packet53BlockChange(j, k, l, worldserver));
}
else
@@ -518,7 +549,11 @@
return; return;
} }
@ -122,24 +114,23 @@
} }
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()))
{ {
@@ -536,7 +571,9 @@ @@ -518,7 +552,9 @@
k1 = j1; }
} else
{
- if (this.hasMoved && this.playerEntity.getDistanceSq((double)i + 0.5D, (double)j + 0.5D, (double)k + 0.5D) < 64.0D && (k1 > i1 || flag1)) - if (this.hasMoved && this.playerEntity.getDistanceSq((double)i + 0.5D, (double)j + 0.5D, (double)k + 0.5D) < 64.0D && !this.mcServer.func_96290_a(worldserver, i, j, k, this.playerEntity))
+ double dist = playerEntity.theItemInWorldManager.getBlockReachDistance() + 1; + double dist = playerEntity.theItemInWorldManager.getBlockReachDistance() + 1;
+ dist *= dist; + dist *= dist;
+ if (this.hasMoved && this.playerEntity.getDistanceSq((double)i + 0.5D, (double)j + 0.5D, (double)k + 0.5D) < dist && (k1 > i1 || flag1)) + if (this.hasMoved && this.playerEntity.getDistanceSq((double)i + 0.5D, (double)j + 0.5D, (double)k + 0.5D) < dist && !this.mcServer.func_96290_a(worldserver, i, j, k, this.playerEntity))
{ {
this.playerEntity.theItemInWorldManager.activateBlockOrUseItem(this.playerEntity, worldserver, itemstack, i, j, k, l, par1Packet15Place.getXOffset(), par1Packet15Place.getYOffset(), par1Packet15Place.getZOffset()); this.playerEntity.theItemInWorldManager.activateBlockOrUseItem(this.playerEntity, worldserver, itemstack, i, j, k, l, par1Packet15Place.getXOffset(), par1Packet15Place.getYOffset(), par1Packet15Place.getZOffset());
} }
@@ -703,8 +740,12 @@ @@ -686,7 +722,12 @@
this.sendPacketToPlayer(new Packet3Chat("Cannot send chat message."));
return; return;
} }
-
- s = "<" + this.playerEntity.username + "> " + s; - s = "<" + this.playerEntity.func_96090_ax() + "> " + s;
+ ServerChatEvent event = new ServerChatEvent(this.playerEntity, s, "<" + this.playerEntity.username + "> " + s); + ServerChatEvent event = new ServerChatEvent(this.playerEntity, s, "<" + this.playerEntity.func_96090_ax() + "> " + s);
+ if (MinecraftForge.EVENT_BUS.post(event)) + if (MinecraftForge.EVENT_BUS.post(event))
+ { + {
+ return; + return;
@ -148,7 +139,7 @@
logger.info(s); logger.info(s);
this.mcServer.getConfigurationManager().sendPacketToAllPlayers(new Packet3Chat(s, false)); this.mcServer.getConfigurationManager().sendPacketToAllPlayers(new Packet3Chat(s, false));
} }
@@ -835,7 +876,7 @@ @@ -817,7 +858,7 @@
return; return;
} }
@ -157,12 +148,11 @@
} }
} }
} }
@@ -1233,7 +1274,7 @@ @@ -1215,7 +1256,6 @@
} }
} }
} }
- -
+
@Override @Override

View File

@ -8,7 +8,7 @@
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.logging.Level; import java.util.logging.Level;
@@ -66,6 +67,10 @@ @@ -55,6 +56,10 @@
import net.minecraft.world.storage.ISaveHandler; import net.minecraft.world.storage.ISaveHandler;
import net.minecraft.world.storage.WorldInfo; import net.minecraft.world.storage.WorldInfo;
@ -19,7 +19,7 @@
public abstract class MinecraftServer implements ICommandSender, Runnable, IPlayerUsage public abstract class MinecraftServer implements ICommandSender, Runnable, IPlayerUsage
{ {
/** The logging system. */ /** The logging system. */
@@ -146,7 +151,8 @@ @@ -135,7 +140,8 @@
public final long[] tickTimeArray = new long[100]; public final long[] tickTimeArray = new long[100];
/** Stats are [dimension][tick%100] system.nanoTime is stored. */ /** Stats are [dimension][tick%100] system.nanoTime is stored. */
@ -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) */
@@ -239,8 +245,6 @@ @@ -211,8 +217,6 @@
{ {
this.convertMapIfNeeded(par1Str); this.convertMapIfNeeded(par1Str);
this.setUserMessage("menu.loadingLevel"); this.setUserMessage("menu.loadingLevel");
@ -38,7 +38,7 @@
ISaveHandler isavehandler = this.anvilConverterForAnvilFile.getSaveLoader(par1Str, true); ISaveHandler isavehandler = this.anvilConverterForAnvilFile.getSaveLoader(par1Str, true);
WorldInfo worldinfo = isavehandler.loadWorldInfo(); WorldInfo worldinfo = isavehandler.loadWorldInfo();
WorldSettings worldsettings; WorldSettings worldsettings;
@@ -260,46 +264,23 @@ @@ -232,46 +236,23 @@
worldsettings.enableBonusChest(); worldsettings.enableBonusChest();
} }
@ -96,7 +96,7 @@
this.setDifficultyForAllWorlds(this.getDifficulty()); this.setDifficultyForAllWorlds(this.getDifficulty());
this.initialWorldChunkLoad(); this.initialWorldChunkLoad();
} }
@@ -428,7 +409,14 @@ @@ -400,7 +381,14 @@
for (int i = 0; i < this.worldServers.length; ++i) for (int i = 0; i < this.worldServers.length; ++i)
{ {
WorldServer worldserver = this.worldServers[i]; WorldServer worldserver = this.worldServers[i];
@ -111,7 +111,7 @@
} }
if (this.usageSnooper != null && this.usageSnooper.isSnooperRunning()) if (this.usageSnooper != null && this.usageSnooper.isSnooperRunning())
@@ -652,13 +640,15 @@ @@ -624,13 +612,15 @@
this.theProfiler.startSection("levels"); this.theProfiler.startSection("levels");
int i; int i;
@ -132,7 +132,7 @@
this.theProfiler.startSection(worldserver.getWorldInfo().getWorldName()); this.theProfiler.startSection(worldserver.getWorldInfo().getWorldName());
this.theProfiler.startSection("pools"); this.theProfiler.startSection("pools");
worldserver.getWorldVec3Pool().clear(); worldserver.getWorldVec3Pool().clear();
@@ -705,9 +695,11 @@ @@ -677,9 +667,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");
@@ -761,7 +753,13 @@ @@ -733,7 +725,13 @@
*/ */
public WorldServer worldServerForDimension(int par1) public WorldServer worldServerForDimension(int par1)
{ {
@ -162,7 +162,7 @@
} }
@SideOnly(Side.SERVER) @SideOnly(Side.SERVER)
@@ -1132,6 +1130,7 @@ @@ -1107,6 +1105,7 @@
if (worldserver != null) if (worldserver != null)
{ {

View File

@ -8,111 +8,79 @@
import java.util.List; import java.util.List;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.network.packet.Packet; import net.minecraft.network.packet.Packet;
@@ -10,9 +11,13 @@ @@ -9,11 +10,14 @@
import net.minecraft.network.packet.Packet53BlockChange;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.ChunkCoordIntPair;
+import net.minecraftforge.common.ForgeDummyContainer; +import net.minecraftforge.common.ForgeDummyContainer;
+import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.world.ChunkWatchEvent; +import net.minecraftforge.event.world.ChunkWatchEvent;
+
public class PlayerInstance public class PlayerInstance
{ {
- private final List playersInChunk; /** the list of all players in this instance (chunk) */
+ public final List playersInChunk; - private final List players;
+ public final List players;
/** note: this is final */ /** note: this is final */
private final ChunkCoordIntPair chunkLocation; private final ChunkCoordIntPair chunkLocation;
@@ -56,6 +61,8 @@ @@ -64,6 +68,8 @@
this.playersInChunk.remove(par1EntityPlayerMP); this.players.remove(par1EntityPlayerMP);
par1EntityPlayerMP.loadedChunks.remove(this.chunkLocation); par1EntityPlayerMP.loadedChunks.remove(this.chunkLocation);
+ MinecraftForge.EVENT_BUS.post(new ChunkWatchEvent.UnWatch(chunkLocation, par1EntityPlayerMP)); + MinecraftForge.EVENT_BUS.post(new ChunkWatchEvent.UnWatch(chunkLocation, par1EntityPlayerMP));
+ +
if (this.playersInChunk.isEmpty()) if (this.players.isEmpty())
{ {
long i = (long)this.chunkLocation.chunkXPos + 2147483647L | (long)this.chunkLocation.chunkZPos + 2147483647L << 32; long i = (long)this.chunkLocation.chunkXPos + 2147483647L | (long)this.chunkLocation.chunkZPos + 2147483647L << 32;
@@ -80,20 +87,21 @@ @@ -91,7 +97,7 @@
this.field_73260_f |= 1 << (par2 >> 4); this.field_73260_f |= 1 << (par2 >> 4);
- if (this.numberOfTilesToUpdate < 64) - if (this.numBlocksToUpdate < 64)
+ short var4 = (short)(par1 << 12 | par3 << 8 | par2); + //if (this.numBlocksToUpdate < 64) //Forge; Cache everything, so always run
+
+ for (int var5 = 0; var5 < this.numberOfTilesToUpdate; ++var5)
{ {
- short short1 = (short)(par1 << 12 | par3 << 8 | par2); short short1 = (short)(par1 << 12 | par3 << 8 | par2);
+ if (this.locationOfBlockChange[var5] == var4)
@@ -103,6 +109,10 @@
}
}
+ if (this.numBlocksToUpdate == blocksToUpdate.length)
+ { + {
+ return; + this.blocksToUpdate = Arrays.copyOf(this.blocksToUpdate, blocksToUpdate.length << 1);
+ } + }
+ } this.blocksToUpdate[this.numBlocksToUpdate++] = short1;
- for (int l = 0; l < this.numberOfTilesToUpdate; ++l)
- {
- if (this.locationOfBlockChange[l] == short1)
- {
- return;
- }
- }
-
- this.locationOfBlockChange[this.numberOfTilesToUpdate++] = short1;
+ if (this.numberOfTilesToUpdate == locationOfBlockChange.length)
+ {
+ this.locationOfBlockChange = Arrays.copyOf(this.locationOfBlockChange, locationOfBlockChange.length << 1);
} }
+ this.locationOfBlockChange[this.numberOfTilesToUpdate++] = var4;
} }
@@ -147,12 +157,13 @@
public void sendToAllPlayersWatchingChunk(Packet par1Packet)
@@ -133,40 +141,26 @@
{ {
int l; int l;
- if (this.numberOfTilesToUpdate == 64) - if (this.numBlocksToUpdate == 64)
+ if (this.numberOfTilesToUpdate >= ForgeDummyContainer.clumpingThreshold) + if (this.numBlocksToUpdate >= ForgeDummyContainer.clumpingThreshold)
{ {
i = this.chunkLocation.chunkXPos * 16; i = this.chunkLocation.chunkXPos * 16;
j = this.chunkLocation.chunkZPos * 16; j = this.chunkLocation.chunkZPos * 16;
this.sendToAllPlayersWatchingChunk(new Packet51MapChunk(PlayerManager.getWorldServer(this.myManager).getChunkFromChunkCoords(this.chunkLocation.chunkXPos, this.chunkLocation.chunkZPos), false, this.field_73260_f)); this.sendPacketToPlayersInInstance(new Packet51MapChunk(PlayerManager.getWorldServer(this.myManager).getChunkFromChunkCoords(this.chunkLocation.chunkXPos, this.chunkLocation.chunkZPos), false, this.field_73260_f));
-
- for (k = 0; k < 16; ++k) + /* Forge: Grabings ALL tile entities is costly on a modded server, only send needed ones
- { for (k = 0; k < 16; ++k)
- if ((this.field_73260_f & 1 << k) != 0) {
- { if ((this.field_73260_f & 1 << k) != 0)
- l = k << 4; @@ -166,11 +177,14 @@
- List list = PlayerManager.getWorldServer(this.myManager).getAllTileEntityInBox(i, l, j, i + 16, l + 16, j + 16); }
- }
- for (int i1 = 0; i1 < list.size(); ++i1) }
- { + */
- this.sendTileToAllPlayersWatchingChunk((TileEntity)list.get(i1));
- }
- }
- }
} }
else else
{ {
this.sendToAllPlayersWatchingChunk(new Packet52MultiBlockChange(this.chunkLocation.chunkXPos, this.chunkLocation.chunkZPos, this.locationOfBlockChange, this.numberOfTilesToUpdate, PlayerManager.getWorldServer(this.myManager))); this.sendPacketToPlayersInInstance(new Packet52MultiBlockChange(this.chunkLocation.chunkXPos, this.chunkLocation.chunkZPos, this.blocksToUpdate, this.numBlocksToUpdate, PlayerManager.getWorldServer(this.myManager)));
+ }
- for (i = 0; i < this.numberOfTilesToUpdate; ++i)
+ for (i = 0; i < this.numberOfTilesToUpdate; ++i)
+ {
+ j = this.chunkLocation.chunkXPos * 16 + (this.locationOfBlockChange[i] >> 12 & 15);
+ k = this.locationOfBlockChange[i] & 255;
+ l = this.chunkLocation.chunkZPos * 16 + (this.locationOfBlockChange[i] >> 8 & 15);
+
+ if (PlayerManager.getWorldServer(this.myManager).blockHasTileEntity(j, k, l))
{
- j = this.chunkLocation.chunkXPos * 16 + (this.locationOfBlockChange[i] >> 12 & 15);
- k = this.locationOfBlockChange[i] & 255;
- l = this.chunkLocation.chunkZPos * 16 + (this.locationOfBlockChange[i] >> 8 & 15);
- -
- if (PlayerManager.getWorldServer(this.myManager).blockHasTileEntity(j, k, l)) + }
- { +
- this.sendTileToAllPlayersWatchingChunk(PlayerManager.getWorldServer(this.myManager).getBlockTileEntity(j, k, l)); + { //Forge: Send only the tile entities that are updated, Adding this brace lets us keep the indent and the patch small
- } for (i = 0; i < this.numBlocksToUpdate; ++i)
+ this.sendTileToAllPlayersWatchingChunk(PlayerManager.getWorldServer(this.myManager).getBlockTileEntity(j, k, l)); {
} j = this.chunkLocation.chunkXPos * 16 + (this.blocksToUpdate[i] >> 12 & 15);
}
}

View File

@ -1,7 +1,7 @@
--- ../src_base/minecraft/net/minecraft/server/management/ServerConfigurationManager.java --- ../src_base/minecraft/net/minecraft/server/management/ServerConfigurationManager.java
+++ ../src_work/minecraft/net/minecraft/server/management/ServerConfigurationManager.java +++ ../src_work/minecraft/net/minecraft/server/management/ServerConfigurationManager.java
@@ -38,10 +38,14 @@ @@ -47,10 +47,14 @@
import net.minecraft.util.ChunkCoordinates; import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.world.EnumGameType; import net.minecraft.world.EnumGameType;
+import net.minecraft.world.Teleporter; +import net.minecraft.world.Teleporter;
@ -15,7 +15,7 @@
public abstract class ServerConfigurationManager public abstract class ServerConfigurationManager
{ {
@@ -323,6 +327,16 @@ @@ -364,6 +368,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);
@@ -345,6 +359,7 @@ @@ -386,6 +400,7 @@
EntityPlayerMP entityplayermp1 = new EntityPlayerMP(this.mcServer, this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension), par1EntityPlayerMP.username, (ItemInWorldManager)object); EntityPlayerMP entityplayermp1 = new EntityPlayerMP(this.mcServer, this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension), par1EntityPlayerMP.username, (ItemInWorldManager)object);
entityplayermp1.playerNetServerHandler = par1EntityPlayerMP.playerNetServerHandler; entityplayermp1.playerNetServerHandler = par1EntityPlayerMP.playerNetServerHandler;
entityplayermp1.clonePlayer(par1EntityPlayerMP, par3); entityplayermp1.clonePlayer(par1EntityPlayerMP, par3);
@ -40,8 +40,8 @@
entityplayermp1.entityId = par1EntityPlayerMP.entityId; entityplayermp1.entityId = par1EntityPlayerMP.entityId;
WorldServer worldserver = this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension); WorldServer worldserver = this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension);
this.func_72381_a(entityplayermp1, par1EntityPlayerMP, worldserver); this.func_72381_a(entityplayermp1, par1EntityPlayerMP, worldserver);
@@ -388,6 +403,11 @@ @@ -433,6 +448,11 @@
*/
public void transferPlayerToDimension(EntityPlayerMP par1EntityPlayerMP, int par2) public void transferPlayerToDimension(EntityPlayerMP par1EntityPlayerMP, int par2)
{ {
+ transferPlayerToDimension(par1EntityPlayerMP, par2, mcServer.worldServerForDimension(par2).func_85176_s()); + transferPlayerToDimension(par1EntityPlayerMP, par2, mcServer.worldServerForDimension(par2).func_85176_s());
@ -52,7 +52,7 @@
int j = par1EntityPlayerMP.dimension; int j = par1EntityPlayerMP.dimension;
WorldServer worldserver = this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension); WorldServer worldserver = this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension);
par1EntityPlayerMP.dimension = par2; par1EntityPlayerMP.dimension = par2;
@@ -395,7 +415,7 @@ @@ -440,7 +460,7 @@
par1EntityPlayerMP.playerNetServerHandler.sendPacketToPlayer(new Packet9Respawn(par1EntityPlayerMP.dimension, (byte)par1EntityPlayerMP.worldObj.difficultySetting, worldserver1.getWorldInfo().getTerrainType(), worldserver1.getHeight(), par1EntityPlayerMP.theItemInWorldManager.getGameType())); par1EntityPlayerMP.playerNetServerHandler.sendPacketToPlayer(new Packet9Respawn(par1EntityPlayerMP.dimension, (byte)par1EntityPlayerMP.worldObj.difficultySetting, worldserver1.getWorldInfo().getTerrainType(), worldserver1.getHeight(), par1EntityPlayerMP.theItemInWorldManager.getGameType()));
worldserver.removePlayerEntityDangerously(par1EntityPlayerMP); worldserver.removePlayerEntityDangerously(par1EntityPlayerMP);
par1EntityPlayerMP.isDead = false; par1EntityPlayerMP.isDead = false;
@ -61,7 +61,7 @@
this.func_72375_a(par1EntityPlayerMP, worldserver); this.func_72375_a(par1EntityPlayerMP, worldserver);
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(worldserver1); par1EntityPlayerMP.theItemInWorldManager.setWorld(worldserver1);
@@ -417,38 +437,23 @@ @@ -462,38 +482,23 @@
*/ */
public void transferEntityToWorld(Entity par1Entity, int par2, WorldServer par3WorldServer, WorldServer par4WorldServer) public void transferEntityToWorld(Entity par1Entity, int par2, WorldServer par3WorldServer, WorldServer par4WorldServer)
{ {
@ -111,7 +111,7 @@
{ {
ChunkCoordinates chunkcoordinates; ChunkCoordinates chunkcoordinates;
@@ -485,7 +490,7 @@ @@ -530,7 +535,7 @@
par4WorldServer.spawnEntityInWorld(par1Entity); par4WorldServer.spawnEntityInWorld(par1Entity);
par1Entity.setLocationAndAngles(d0, par1Entity.posY, d1, par1Entity.rotationYaw, par1Entity.rotationPitch); par1Entity.setLocationAndAngles(d0, par1Entity.posY, d1, par1Entity.rotationYaw, par1Entity.rotationPitch);
par4WorldServer.updateEntityWithOptionalForce(par1Entity, false); par4WorldServer.updateEntityWithOptionalForce(par1Entity, false);

View File

@ -1,7 +1,7 @@
--- ../src_base/minecraft/net/minecraft/tileentity/TileEntity.java --- ../src_base/minecraft/net/minecraft/tileentity/TileEntity.java
+++ ../src_work/minecraft/net/minecraft/tileentity/TileEntity.java +++ ../src_work/minecraft/net/minecraft/tileentity/TileEntity.java
@@ -11,7 +11,10 @@ @@ -10,7 +10,10 @@
import net.minecraft.block.TileEntityRecordPlayer; import net.minecraft.block.Block;
import net.minecraft.crash.CrashReportCategory; import net.minecraft.crash.CrashReportCategory;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.network.INetworkManager; +import net.minecraft.network.INetworkManager;
@ -11,9 +11,9 @@
import net.minecraft.world.World; import net.minecraft.world.World;
public class TileEntity public class TileEntity
@@ -300,4 +303,93 @@ @@ -304,4 +307,93 @@
addMapping(TileEntityDaylightDetector.class, "DLDetector");
addMapping(TileEntityHopper.class, "Hopper"); addMapping(TileEntityHopper.class, "Hopper");
addMapping(TileEntityComparator.class, "Comparator");
} }
+ +
+ // -- BEGIN FORGE PATCHES -- + // -- BEGIN FORGE PATCHES --

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/tileentity/TileEntityBeacon.java --- ../src_base/minecraft/net/minecraft/tileentity/TileEntityBeacon.java
+++ ../src_work/minecraft/net/minecraft/tileentity/TileEntityBeacon.java +++ ../src_work/minecraft/net/minecraft/tileentity/TileEntityBeacon.java
@@ -116,8 +116,9 @@ @@ -117,8 +117,9 @@
for (int l = this.zCoord - i; l <= this.zCoord + i; ++l) for (int l = this.zCoord - i; l <= this.zCoord + i; ++l)
{ {
int i1 = this.worldObj.getBlockId(k, j, l); int i1 = this.worldObj.getBlockId(k, j, l);

View File

@ -4,8 +4,8 @@
if (k1 > 0) if (k1 > 0)
{ {
Block block = Block.blocksList[k1]; Block block = Block.blocksList[k1];
- float f3 = this.exploder != null ? this.exploder.func_82146_a(this, block, l, i1, j1) : block.getExplosionResistance(this.exploder); - float f3 = this.exploder != null ? this.exploder.func_82146_a(this, this.worldObj, l, i1, j1, block) : block.getExplosionResistance(this.exploder);
+ float f3 = this.exploder != null ? this.exploder.func_82146_a(this, block, l, i1, j1) : block.getExplosionResistance(this.exploder, worldObj, l, i1, j1, explosionX, explosionY, explosionZ); + float f3 = this.exploder != null ? this.exploder.func_82146_a(this, this.worldObj, l, i1, j1, block) : block.getExplosionResistance(this.exploder, worldObj, l, i1, j1, explosionX, explosionY, explosionZ);
f1 -= (f3 + 0.3F) * f2; f1 -= (f3 + 0.3F) * f2;
} }

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
@@ -47,8 +47,30 @@ @@ -50,8 +50,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
*/ */
@@ -162,6 +184,11 @@ @@ -166,6 +188,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))
{ {
@@ -192,7 +219,13 @@ @@ -196,7 +223,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 villagecollection = (VillageCollection)this.mapStorage.loadData(VillageCollection.class, "villages"); VillageCollection villagecollection = (VillageCollection)this.mapStorage.loadData(VillageCollection.class, "villages");
if (villagecollection == null) if (villagecollection == null)
@@ -206,7 +239,7 @@ @@ -210,7 +243,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();
@@ -220,7 +253,7 @@ @@ -224,7 +257,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)
@@ -273,12 +306,20 @@ @@ -277,12 +310,20 @@
this.worldInfo.setServerInitialized(true); this.worldInfo.setServerInitialized(true);
} }
@ -99,7 +99,7 @@
} }
else else
{ {
@@ -288,6 +329,19 @@ @@ -292,6 +333,19 @@
this.calculateInitialSkylight(); this.calculateInitialSkylight();
this.calculateInitialWeather(); this.calculateInitialWeather();
@ -119,7 +119,7 @@
} }
/** /**
@@ -376,7 +430,8 @@ @@ -380,7 +434,8 @@
*/ */
public boolean isAirBlock(int par1, int par2, int par3) public boolean isAirBlock(int par1, int par2, int par3)
{ {
@ -129,7 +129,7 @@
} }
/** /**
@@ -385,7 +440,8 @@ @@ -389,7 +444,8 @@
public boolean blockHasTileEntity(int par1, int par2, int par3) public boolean blockHasTileEntity(int par1, int par2, int par3)
{ {
int l = this.getBlockId(par1, par2, par3); int l = this.getBlockId(par1, par2, par3);
@ -139,7 +139,7 @@
} }
/** /**
@@ -1085,7 +1141,7 @@ @@ -1141,7 +1197,7 @@
*/ */
public boolean isDaytime() public boolean isDaytime()
{ {
@ -148,7 +148,7 @@
} }
/** /**
@@ -1117,7 +1173,7 @@ @@ -1173,7 +1229,7 @@
int l1 = this.getBlockMetadata(l, i1, j1); int l1 = this.getBlockMetadata(l, i1, j1);
Block block = Block.blocksList[k1]; Block block = Block.blocksList[k1];
@ -157,7 +157,7 @@
{ {
MovingObjectPosition movingobjectposition = block.collisionRayTrace(this, l, i1, j1, par1Vec3, par2Vec3); MovingObjectPosition movingobjectposition = block.collisionRayTrace(this, l, i1, j1, par1Vec3, par2Vec3);
@@ -1317,6 +1373,12 @@ @@ -1373,6 +1429,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 i = 0; i < this.worldAccesses.size(); ++i) for (int i = 0; i < this.worldAccesses.size(); ++i)
@@ -1331,6 +1393,12 @@ @@ -1387,6 +1449,12 @@
*/ */
public void playSoundToNearExcept(EntityPlayer par1EntityPlayer, String par2Str, float par3, float par4) public void playSoundToNearExcept(EntityPlayer par1EntityPlayer, String par2Str, float par3, float par4)
{ {
@ -183,7 +183,7 @@
if (par1EntityPlayer != null && par2Str != null) if (par1EntityPlayer != null && par2Str != null)
{ {
for (int i = 0; i < this.worldAccesses.size(); ++i) for (int i = 0; i < this.worldAccesses.size(); ++i)
@@ -1417,6 +1485,11 @@ @@ -1473,6 +1541,11 @@
EntityPlayer entityplayer = (EntityPlayer)par1Entity; EntityPlayer entityplayer = (EntityPlayer)par1Entity;
this.playerEntities.add(entityplayer); this.playerEntities.add(entityplayer);
this.updateAllPlayersSleepingFlag(); this.updateAllPlayersSleepingFlag();
@ -195,7 +195,7 @@
} }
this.getChunkFromChunkCoords(i, j).addEntity(par1Entity); this.getChunkFromChunkCoords(i, j).addEntity(par1Entity);
@@ -1663,6 +1736,12 @@ @@ -1719,6 +1792,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 f1 = this.getCelestialAngle(par2); float f1 = this.getCelestialAngle(par2);
float f2 = MathHelper.cos(f1 * (float)Math.PI * 2.0F) * 2.0F + 0.5F; float f2 = MathHelper.cos(f1 * (float)Math.PI * 2.0F) * 2.0F + 0.5F;
@@ -1756,6 +1835,12 @@ @@ -1812,6 +1891,12 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public Vec3 drawClouds(float par1) public Vec3 drawClouds(float par1)
{ {
@ -221,7 +221,7 @@
float f1 = this.getCelestialAngle(par1); float f1 = this.getCelestialAngle(par1);
float f2 = MathHelper.cos(f1 * (float)Math.PI * 2.0F) * 2.0F + 0.5F; float f2 = MathHelper.cos(f1 * (float)Math.PI * 2.0F) * 2.0F + 0.5F;
@@ -1834,7 +1919,7 @@ @@ -1890,7 +1975,7 @@
{ {
int l = chunk.getBlockID(par1, k, par2); int l = chunk.getBlockID(par1, k, par2);
@ -230,7 +230,7 @@
{ {
return k + 1; return k + 1;
} }
@@ -1849,6 +1934,12 @@ @@ -1905,6 +1990,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 f1 = this.getCelestialAngle(par1); float f1 = this.getCelestialAngle(par1);
float f2 = 1.0F - (MathHelper.cos(f1 * (float)Math.PI * 2.0F) * 2.0F + 0.25F); float f2 = 1.0F - (MathHelper.cos(f1 * (float)Math.PI * 2.0F) * 2.0F + 0.25F);
@@ -1984,16 +2075,8 @@ @@ -2040,16 +2131,8 @@
if (entity.isDead) if (entity.isDead)
{ {
@ -262,7 +262,7 @@
} }
this.theProfiler.endSection(); this.theProfiler.endSection();
@@ -2032,7 +2115,7 @@ @@ -2088,7 +2171,7 @@
if (chunk != null) if (chunk != null)
{ {
@ -271,7 +271,7 @@
} }
} }
} }
@@ -2041,6 +2124,10 @@ @@ -2097,6 +2180,10 @@
if (!this.entityRemoval.isEmpty()) if (!this.entityRemoval.isEmpty())
{ {
@ -282,7 +282,7 @@
this.loadedTileEntityList.removeAll(this.entityRemoval); this.loadedTileEntityList.removeAll(this.entityRemoval);
this.entityRemoval.clear(); this.entityRemoval.clear();
} }
@@ -2061,18 +2148,18 @@ @@ -2117,18 +2204,18 @@
{ {
this.loadedTileEntityList.add(tileentity1); this.loadedTileEntityList.add(tileentity1);
} }
@ -305,7 +305,7 @@
} }
} }
@@ -2085,13 +2172,13 @@ @@ -2141,13 +2228,13 @@
public void addTileEntity(Collection par1Collection) public void addTileEntity(Collection par1Collection)
{ {
@ -326,7 +326,7 @@
} }
} }
@@ -2111,9 +2198,17 @@ @@ -2167,9 +2254,17 @@
{ {
int i = MathHelper.floor_double(par1Entity.posX); int i = MathHelper.floor_double(par1Entity.posX);
int j = MathHelper.floor_double(par1Entity.posZ); int j = MathHelper.floor_double(par1Entity.posZ);
@ -347,7 +347,7 @@
{ {
par1Entity.lastTickPosX = par1Entity.posX; par1Entity.lastTickPosX = par1Entity.posX;
par1Entity.lastTickPosY = par1Entity.posY; par1Entity.lastTickPosY = par1Entity.posY;
@@ -2346,6 +2441,14 @@ @@ -2402,6 +2497,14 @@
{ {
return true; return true;
} }
@ -362,7 +362,7 @@
} }
} }
} }
@@ -2651,25 +2754,21 @@ @@ -2707,25 +2810,21 @@
*/ */
public void setBlockTileEntity(int par1, int par2, int par3, TileEntity par4TileEntity) public void setBlockTileEntity(int par1, int par2, int par3, TileEntity par4TileEntity)
{ {
@ -403,7 +403,7 @@
} }
} }
@@ -2678,27 +2777,10 @@ @@ -2734,27 +2833,10 @@
*/ */
public void removeBlockTileEntity(int par1, int par2, int par3) public void removeBlockTileEntity(int par1, int par2, int par3)
{ {
@ -435,7 +435,7 @@
} }
} }
@@ -2724,7 +2806,8 @@ @@ -2780,7 +2862,8 @@
*/ */
public boolean isBlockNormalCube(int par1, int par2, int par3) public boolean isBlockNormalCube(int par1, int par2, int par3)
{ {
@ -445,17 +445,17 @@
} }
public boolean func_85174_u(int par1, int par2, int par3) public boolean func_85174_u(int par1, int par2, int par3)
@@ -2747,8 +2830,7 @@ @@ -2803,8 +2886,7 @@
*/ */
public boolean doesBlockHaveSolidTopSurface(int par1, int par2, int par3) public boolean doesBlockHaveSolidTopSurface(int par1, int par2, int par3)
{ {
- Block block = Block.blocksList[this.getBlockId(par1, par2, par3)]; - Block block = Block.blocksList[this.getBlockId(par1, par2, par3)];
- return block == null ? false : (block.blockMaterial.isOpaque() && block.renderAsNormalBlock() ? true : (block instanceof BlockStairs ? (this.getBlockMetadata(par1, par2, par3) & 4) == 4 : (block instanceof BlockHalfSlab ? (this.getBlockMetadata(par1, par2, par3) & 8) == 8 : block instanceof BlockHopper))); - return block == null ? false : (block.blockMaterial.isOpaque() && block.renderAsNormalBlock() ? true : (block instanceof BlockStairs ? (this.getBlockMetadata(par1, par2, par3) & 4) == 4 : (block instanceof BlockHalfSlab ? (this.getBlockMetadata(par1, par2, par3) & 8) == 8 : (block instanceof BlockHopper ? true : (block instanceof BlockSnow ? (this.getBlockMetadata(par1, par2, par3) & 7) == 7 : false)))));
+ return isBlockSolidOnSide(par1, par2, par3, ForgeDirection.UP); + return isBlockSolidOnSide(par1, par2, par3, ForgeDirection.UP);
} }
/** /**
@@ -2764,7 +2846,7 @@ @@ -2820,7 +2902,7 @@
if (chunk != null && !chunk.isEmpty()) if (chunk != null && !chunk.isEmpty())
{ {
Block block = Block.blocksList[this.getBlockId(par1, par2, par3)]; Block block = Block.blocksList[this.getBlockId(par1, par2, par3)];
@ -464,7 +464,7 @@
} }
else else
{ {
@@ -2795,8 +2877,7 @@ @@ -2851,8 +2933,7 @@
*/ */
public void setAllowedSpawnTypes(boolean par1, boolean par2) public void setAllowedSpawnTypes(boolean par1, boolean par2)
{ {
@ -474,7 +474,7 @@
} }
/** /**
@@ -2812,6 +2893,11 @@ @@ -2868,6 +2949,11 @@
*/ */
private void calculateInitialWeather() private void calculateInitialWeather()
{ {
@ -486,7 +486,7 @@
if (this.worldInfo.isRaining()) if (this.worldInfo.isRaining())
{ {
this.rainingStrength = 1.0F; this.rainingStrength = 1.0F;
@@ -2827,6 +2913,11 @@ @@ -2883,6 +2969,11 @@
* Updates all weather states. * Updates all weather states.
*/ */
protected void updateWeather() protected void updateWeather()
@ -498,9 +498,9 @@
{ {
if (!this.provider.hasNoSky) if (!this.provider.hasNoSky)
{ {
@@ -2924,12 +3015,14 @@ @@ -2983,12 +3074,14 @@
*/
public void toggleRain() public void commandToggleDownfall()
{ {
- this.worldInfo.setRainTime(1); - this.worldInfo.setRainTime(1);
+ provider.toggleRain(); + provider.toggleRain();
@ -514,7 +514,7 @@
this.theProfiler.startSection("buildList"); this.theProfiler.startSection("buildList");
int i; int i;
EntityPlayer entityplayer; EntityPlayer entityplayer;
@@ -3036,6 +3129,11 @@ @@ -3095,6 +3188,11 @@
*/ */
public boolean canBlockFreeze(int par1, int par2, int par3, boolean par4) public boolean canBlockFreeze(int par1, int par2, int par3, boolean par4)
{ {
@ -526,7 +526,7 @@
BiomeGenBase biomegenbase = this.getBiomeGenForCoords(par1, par3); BiomeGenBase biomegenbase = this.getBiomeGenForCoords(par1, par3);
float f = biomegenbase.getFloatTemperature(); float f = biomegenbase.getFloatTemperature();
@@ -3093,6 +3191,11 @@ @@ -3152,6 +3250,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)
@ -538,7 +538,7 @@
{ {
BiomeGenBase biomegenbase = this.getBiomeGenForCoords(par1, par3); BiomeGenBase biomegenbase = this.getBiomeGenForCoords(par1, par3);
float f = biomegenbase.getFloatTemperature(); float f = biomegenbase.getFloatTemperature();
@@ -3186,7 +3289,7 @@ @@ -3245,7 +3348,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)
{ {
@ -547,7 +547,7 @@
int l1 = this.getSavedLightValue(EnumSkyBlock.Block, par2 - 1, par3, par4) - par6; int l1 = this.getSavedLightValue(EnumSkyBlock.Block, par2 - 1, par3, par4) - par6;
int i2 = this.getSavedLightValue(EnumSkyBlock.Block, par2 + 1, par3, par4) - par6; int i2 = this.getSavedLightValue(EnumSkyBlock.Block, par2 + 1, par3, par4) - par6;
int j2 = this.getSavedLightValue(EnumSkyBlock.Block, par2, par3 - 1, par4) - par6; int j2 = this.getSavedLightValue(EnumSkyBlock.Block, par2, par3 - 1, par4) - par6;
@@ -3321,7 +3424,7 @@ @@ -3380,7 +3483,7 @@
int k4 = i2 + (i4 / 2 + 1) % 3 / 2 * l3; int k4 = i2 + (i4 / 2 + 1) % 3 / 2 * l3;
int l4 = j2 + (i4 / 2 + 2) % 3 / 2 * l3; int l4 = j2 + (i4 / 2 + 2) % 3 / 2 * l3;
l2 = this.getSavedLightValue(par1EnumSkyBlock, j4, k4, l4); l2 = this.getSavedLightValue(par1EnumSkyBlock, j4, k4, l4);
@ -556,7 +556,7 @@
if (i5 == 0) if (i5 == 0)
{ {
@@ -3352,7 +3455,7 @@ @@ -3411,7 +3514,7 @@
j2 = (k1 >> 12 & 63) - 32 + par4; j2 = (k1 >> 12 & 63) - 32 + par4;
k2 = this.getSavedLightValue(par1EnumSkyBlock, l1, i2, j2); k2 = this.getSavedLightValue(par1EnumSkyBlock, l1, i2, j2);
l2 = this.getBlockId(l1, i2, j2); l2 = this.getBlockId(l1, i2, j2);
@ -565,7 +565,7 @@
if (i3 == 0) if (i3 == 0)
{ {
@@ -3459,10 +3562,10 @@ @@ -3518,10 +3621,10 @@
public List func_94576_a(Entity par1Entity, AxisAlignedBB par2AxisAlignedBB, IEntitySelector par3IEntitySelector) public List func_94576_a(Entity par1Entity, AxisAlignedBB par2AxisAlignedBB, IEntitySelector par3IEntitySelector)
{ {
this.entitiesWithinAABBExcludingEntity.clear(); this.entitiesWithinAABBExcludingEntity.clear();
@ -580,7 +580,7 @@
for (int i1 = i; i1 <= j; ++i1) for (int i1 = i; i1 <= j; ++i1)
{ {
@@ -3488,10 +3591,10 @@ @@ -3547,10 +3650,10 @@
public List selectEntitiesWithinAABB(Class par1Class, AxisAlignedBB par2AxisAlignedBB, IEntitySelector par3IEntitySelector) public List selectEntitiesWithinAABB(Class par1Class, AxisAlignedBB par2AxisAlignedBB, IEntitySelector par3IEntitySelector)
{ {
@ -595,7 +595,7 @@
ArrayList arraylist = new ArrayList(); ArrayList arraylist = new ArrayList();
for (int i1 = i; i1 <= j; ++i1) for (int i1 = i; i1 <= j; ++i1)
@@ -3584,11 +3687,14 @@ @@ -3643,11 +3746,14 @@
*/ */
public void addLoadedEntities(List par1List) public void addLoadedEntities(List par1List)
{ {
@ -613,7 +613,7 @@
} }
} }
@@ -3622,6 +3728,11 @@ @@ -3681,6 +3787,11 @@
else else
{ {
if (block != null && (block == Block.waterMoving || block == Block.waterStill || block == Block.lavaMoving || block == Block.lavaStill || block == Block.fire || block.blockMaterial.isReplaceable())) if (block != null && (block == Block.waterMoving || block == Block.waterStill || block == Block.lavaMoving || block == Block.lavaStill || block == Block.fire || block.blockMaterial.isReplaceable()))
@ -625,7 +625,7 @@
{ {
block = null; block = null;
} }
@@ -3910,7 +4021,7 @@ @@ -3969,7 +4080,7 @@
*/ */
public long getSeed() public long getSeed()
{ {
@ -634,7 +634,7 @@
} }
public long getTotalWorldTime() public long getTotalWorldTime()
@@ -3920,7 +4031,7 @@ @@ -3979,7 +4090,7 @@
public long getWorldTime() public long getWorldTime()
{ {
@ -643,7 +643,7 @@
} }
/** /**
@@ -3928,7 +4039,7 @@ @@ -3987,7 +4098,7 @@
*/ */
public void setWorldTime(long par1) public void setWorldTime(long par1)
{ {
@ -652,7 +652,7 @@
} }
/** /**
@@ -3936,13 +4047,13 @@ @@ -3995,13 +4106,13 @@
*/ */
public ChunkCoordinates getSpawnPoint() public ChunkCoordinates getSpawnPoint()
{ {
@ -668,7 +668,7 @@
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@@ -3966,7 +4077,10 @@ @@ -4025,7 +4136,10 @@
if (!this.loadedEntityList.contains(par1Entity)) if (!this.loadedEntityList.contains(par1Entity))
{ {
@ -680,7 +680,7 @@
} }
} }
@@ -3974,6 +4088,11 @@ @@ -4033,6 +4147,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)
@ -692,7 +692,7 @@
{ {
return true; return true;
} }
@@ -4094,8 +4213,7 @@ @@ -4153,8 +4272,7 @@
*/ */
public boolean isBlockHighHumidity(int par1, int par2, int par3) public boolean isBlockHighHumidity(int par1, int par2, int par3)
{ {
@ -702,7 +702,7 @@
} }
/** /**
@@ -4170,7 +4288,7 @@ @@ -4229,7 +4347,7 @@
*/ */
public int getHeight() public int getHeight()
{ {
@ -711,7 +711,7 @@
} }
/** /**
@@ -4178,7 +4296,7 @@ @@ -4237,7 +4355,7 @@
*/ */
public int getActualHeight() public int getActualHeight()
{ {
@ -720,7 +720,7 @@
} }
public IUpdatePlayerListBox func_82735_a(EntityMinecart par1EntityMinecart) public IUpdatePlayerListBox func_82735_a(EntityMinecart par1EntityMinecart)
@@ -4221,7 +4339,7 @@ @@ -4280,7 +4398,7 @@
*/ */
public double getHorizon() public double getHorizon()
{ {
@ -729,10 +729,11 @@
} }
/** /**
@@ -4282,4 +4400,75 @@ @@ -4378,4 +4496,75 @@
}
@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.
@ -804,4 +805,4 @@
+ { + {
+ return ForgeChunkManager.getPersistentChunksFor(this); + return ForgeChunkManager.getPersistentChunksFor(this);
+ } + }
} +}

View File

@ -9,7 +9,7 @@
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
@@ -45,11 +47,18 @@ @@ -46,11 +48,18 @@
import net.minecraft.world.biome.WorldChunkManager; import net.minecraft.world.biome.WorldChunkManager;
import net.minecraft.world.chunk.Chunk; import net.minecraft.world.chunk.Chunk;
import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.chunk.IChunkProvider;
@ -28,7 +28,7 @@
public class WorldServer extends World public class WorldServer extends World
{ {
@@ -86,6 +95,10 @@ @@ -87,6 +96,10 @@
/** An IntHashMap of entity IDs (integers) to their Entity objects. */ /** An IntHashMap of entity IDs (integers) to their Entity objects. */
private IntHashMap entityIdMap; private IntHashMap entityIdMap;
@ -39,15 +39,15 @@
public WorldServer(MinecraftServer par1MinecraftServer, ISaveHandler par2ISaveHandler, String par3Str, int par4, WorldSettings par5WorldSettings, Profiler par6Profiler) public WorldServer(MinecraftServer par1MinecraftServer, ISaveHandler par2ISaveHandler, String par3Str, int par4, WorldSettings par5WorldSettings, Profiler par6Profiler)
{ {
super(par2ISaveHandler, par3Str, par5WorldSettings, WorldProvider.getProviderForDimension(par4), par6Profiler); super(par2ISaveHandler, par3Str, par5WorldSettings, WorldProvider.getProviderForDimension(par4), par6Profiler);
@@ -109,6 +122,7 @@ @@ -121,6 +134,7 @@
}
this.field_85177_Q = new Teleporter(this); scoreboardsavedata.func_96499_a(this.field_96442_D);
((ServerScoreboard)this.field_96442_D).func_96547_a(scoreboardsavedata);
+ DimensionManager.setWorld(par4, this); + DimensionManager.setWorld(par4, this);
} }
/** /**
@@ -172,6 +186,10 @@ @@ -184,6 +198,10 @@
this.villageSiegeObj.tick(); this.villageSiegeObj.tick();
this.theProfiler.endStartSection("portalForcer"); this.theProfiler.endStartSection("portalForcer");
this.field_85177_Q.func_85189_a(this.getTotalWorldTime()); this.field_85177_Q.func_85189_a(this.getTotalWorldTime());
@ -58,7 +58,7 @@
this.theProfiler.endSection(); this.theProfiler.endSection();
this.sendAndApplyBlockEvents(); this.sendAndApplyBlockEvents();
} }
@@ -225,10 +243,7 @@ @@ -237,10 +255,7 @@
private void resetRainAndThunder() private void resetRainAndThunder()
{ {
@ -70,7 +70,7 @@
} }
public boolean areAllPlayersAsleep() public boolean areAllPlayersAsleep()
@@ -299,6 +314,14 @@ @@ -311,6 +326,14 @@
int i = 0; int i = 0;
int j = 0; int j = 0;
Iterator iterator = this.activeChunkSet.iterator(); Iterator iterator = this.activeChunkSet.iterator();
@ -85,7 +85,7 @@
while (iterator.hasNext()) while (iterator.hasNext())
{ {
@@ -309,14 +332,18 @@ @@ -321,14 +344,18 @@
Chunk chunk = this.getChunkFromChunkCoords(chunkcoordintpair.chunkXPos, chunkcoordintpair.chunkZPos); Chunk chunk = this.getChunkFromChunkCoords(chunkcoordintpair.chunkXPos, chunkcoordintpair.chunkZPos);
this.moodSoundAndLightCheck(k, l, chunk); this.moodSoundAndLightCheck(k, l, chunk);
this.theProfiler.endStartSection("tickChunk"); this.theProfiler.endStartSection("tickChunk");
@ -106,7 +106,7 @@
{ {
this.updateLCG = this.updateLCG * 3 + 1013904223; this.updateLCG = this.updateLCG * 3 + 1013904223;
i1 = this.updateLCG >> 2; i1 = this.updateLCG >> 2;
@@ -333,7 +360,7 @@ @@ -345,7 +372,7 @@
this.theProfiler.endStartSection("iceandsnow"); this.theProfiler.endStartSection("iceandsnow");
int i2; int i2;
@ -115,7 +115,7 @@
{ {
this.updateLCG = this.updateLCG * 3 + 1013904223; this.updateLCG = this.updateLCG * 3 + 1013904223;
i1 = this.updateLCG >> 2; i1 = this.updateLCG >> 2;
@@ -418,7 +445,8 @@ @@ -430,7 +457,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 nextticklistentry = new NextTickListEntry(par1, par2, par3, par4); NextTickListEntry nextticklistentry = new NextTickListEntry(par1, par2, par3, par4);
@ -125,7 +125,7 @@
if (this.scheduledUpdatesAreImmediate && par4 > 0) if (this.scheduledUpdatesAreImmediate && par4 > 0)
{ {
@@ -480,7 +508,7 @@ @@ -492,7 +520,7 @@
*/ */
public void updateEntities() public void updateEntities()
{ {
@ -134,7 +134,7 @@
{ {
if (this.updateEntityTick++ >= 1200) if (this.updateEntityTick++ >= 1200)
{ {
@@ -546,7 +574,8 @@ @@ -558,7 +586,8 @@
{ {
nextticklistentry = (NextTickListEntry)iterator.next(); nextticklistentry = (NextTickListEntry)iterator.next();
iterator.remove(); iterator.remove();
@ -144,7 +144,7 @@
if (this.checkChunksExist(nextticklistentry.xCoord - b0, nextticklistentry.yCoord - b0, nextticklistentry.zCoord - b0, nextticklistentry.xCoord + b0, nextticklistentry.yCoord + b0, nextticklistentry.zCoord + b0)) if (this.checkChunksExist(nextticklistentry.xCoord - b0, nextticklistentry.yCoord - b0, nextticklistentry.zCoord - b0, nextticklistentry.xCoord + b0, nextticklistentry.yCoord + b0, nextticklistentry.zCoord + b0))
{ {
@@ -667,16 +696,28 @@ @@ -679,16 +708,28 @@
{ {
ArrayList arraylist = new ArrayList(); ArrayList arraylist = new ArrayList();
@ -183,7 +183,7 @@
return arraylist; return arraylist;
} }
@@ -684,6 +725,11 @@ @@ -696,6 +737,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,18 +193,9 @@
+ +
+ public boolean canMineBlockBody(EntityPlayer par1EntityPlayer, int par2, int par3, int par4) + public boolean canMineBlockBody(EntityPlayer par1EntityPlayer, int par2, int par3, int par4)
{ {
int l = MathHelper.abs_int(par2 - this.worldInfo.getSpawnX()); return !this.mcServer.func_96290_a(this, par2, par3, par4, par1EntityPlayer);
int i1 = MathHelper.abs_int(par4 - this.worldInfo.getSpawnZ());
@@ -693,7 +739,7 @@
i1 = l;
}
- return i1 > 16 || this.mcServer.getConfigurationManager().areCommandsAllowed(par1EntityPlayer.username) || this.mcServer.isSinglePlayer();
+ return i1 > mcServer.getSpawnProtectionSize() || this.mcServer.getConfigurationManager().areCommandsAllowed(par1EntityPlayer.username) || this.mcServer.isSinglePlayer();
} }
@@ -780,7 +826,7 @@
protected void initialize(WorldSettings par1WorldSettings)
@@ -776,7 +822,7 @@
*/ */
protected void createBonusChest() protected void createBonusChest()
{ {
@ -213,7 +204,7 @@
for (int i = 0; i < 10; ++i) for (int i = 0; i < 10; ++i)
{ {
@@ -819,6 +865,7 @@ @@ -823,6 +869,7 @@
} }
this.chunkProvider.saveChunks(par1, par2IProgressUpdate); this.chunkProvider.saveChunks(par1, par2IProgressUpdate);
@ -221,7 +212,7 @@
} }
} }
@@ -830,6 +877,7 @@ @@ -834,6 +881,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();
@ -229,7 +220,7 @@
} }
/** /**
@@ -1052,4 +1100,9 @@ @@ -1056,4 +1104,9 @@
{ {
return this.field_85177_Q; return this.field_85177_Q;
} }

View File

@ -168,7 +168,7 @@
{ {
Block.blocksList[l1].breakBlock(this.worldObj, j2, par2, k2, l1, i2); Block.blocksList[l1].breakBlock(this.worldObj, j2, par2, k2, l1, i2);
} }
- else if (Block.blocksList[l1] instanceof BlockContainer && l1 != par4) - else if (Block.blocksList[l1] instanceof ITileEntityProvider && l1 != par4)
- { - {
- this.worldObj.removeBlockTileEntity(j2, par2, k2); - this.worldObj.removeBlockTileEntity(j2, par2, k2);
+ else if (Block.blocksList[l1] != null && Block.blocksList[l1].hasTileEntity(i2)) + else if (Block.blocksList[l1] != null && Block.blocksList[l1].hasTileEntity(i2))
@ -194,14 +194,14 @@
Block.blocksList[par4].onBlockAdded(this.worldObj, j2, par2, k2); Block.blocksList[par4].onBlockAdded(this.worldObj, j2, par2, k2);
} }
- if (Block.blocksList[par4] instanceof BlockContainer) - if (Block.blocksList[par4] instanceof ITileEntityProvider)
+ if (Block.blocksList[par4] != null && Block.blocksList[par4].hasTileEntity(par5)) + if (Block.blocksList[par4] != null && Block.blocksList[par4].hasTileEntity(par5))
{ {
tileentity = this.getChunkBlockTileEntity(par1, par2, par3); tileentity = this.getChunkBlockTileEntity(par1, par2, par3);
if (tileentity == null) if (tileentity == null)
{ {
- tileentity = ((BlockContainer)Block.blocksList[par4]).createNewTileEntity(this.worldObj); - tileentity = ((ITileEntityProvider)Block.blocksList[par4]).createNewTileEntity(this.worldObj);
+ tileentity = Block.blocksList[par4].createTileEntity(this.worldObj, par5); + tileentity = Block.blocksList[par4].createTileEntity(this.worldObj, par5);
this.worldObj.setBlockTileEntity(j2, par2, k2, tileentity); this.worldObj.setBlockTileEntity(j2, par2, k2, tileentity);
} }
@ -213,7 +213,7 @@
} }
- } - }
- } - }
- else if (l1 > 0 && Block.blocksList[l1] instanceof BlockContainer) - else if (l1 > 0 && Block.blocksList[l1] instanceof ITileEntityProvider)
- { - {
- tileentity = this.getChunkBlockTileEntity(par1, par2, par3); - tileentity = this.getChunkBlockTileEntity(par1, par2, par3);
- -
@ -236,7 +236,7 @@
extendedblockstorage.setExtBlockMetadata(par1, par2 & 15, par3, par4); extendedblockstorage.setExtBlockMetadata(par1, par2 & 15, par3, par4);
int j1 = extendedblockstorage.getExtBlockID(par1, par2 & 15, par3); int j1 = extendedblockstorage.getExtBlockID(par1, par2 & 15, par3);
- if (j1 > 0 && Block.blocksList[j1] instanceof BlockContainer) - if (j1 > 0 && Block.blocksList[j1] instanceof ITileEntityProvider)
+ if (j1 > 0 && Block.blocksList[j1] != null && Block.blocksList[j1].hasTileEntity(par4)) + if (j1 > 0 && Block.blocksList[j1] != null && Block.blocksList[j1].hasTileEntity(par4))
{ {
TileEntity tileentity = this.getChunkBlockTileEntity(par1, par2, par3); TileEntity tileentity = this.getChunkBlockTileEntity(par1, par2, par3);
@ -280,7 +280,7 @@
par1Entity.addedToChunk = true; par1Entity.addedToChunk = true;
par1Entity.chunkCoordX = this.xPosition; par1Entity.chunkCoordX = this.xPosition;
par1Entity.chunkCoordY = k; par1Entity.chunkCoordY = k;
@@ -877,33 +976,33 @@ @@ -877,33 +976,32 @@
ChunkPosition chunkposition = new ChunkPosition(par1, par2, par3); ChunkPosition chunkposition = new ChunkPosition(par1, par2, par3);
TileEntity tileentity = (TileEntity)this.chunkTileEntityMap.get(chunkposition); TileEntity tileentity = (TileEntity)this.chunkTileEntityMap.get(chunkposition);
@ -293,7 +293,7 @@
if (tileentity == null) if (tileentity == null)
{ {
int l = this.getBlockID(par1, par2, par3); int l = this.getBlockID(par1, par2, par3);
-
- if (l <= 0 || !Block.blocksList[l].hasTileEntity()) - if (l <= 0 || !Block.blocksList[l].hasTileEntity())
+ int meta = this.getBlockMetadata(par1, par2, par3); + int meta = this.getBlockMetadata(par1, par2, par3);
+ +
@ -304,7 +304,7 @@
if (tileentity == null) if (tileentity == null)
{ {
- tileentity = ((BlockContainer)Block.blocksList[l]).createNewTileEntity(this.worldObj); - tileentity = ((ITileEntityProvider)Block.blocksList[l]).createNewTileEntity(this.worldObj);
+ tileentity = Block.blocksList[l].createTileEntity(this.worldObj, meta); + tileentity = Block.blocksList[l].createTileEntity(this.worldObj, meta);
this.worldObj.setBlockTileEntity(this.xPosition * 16 + par1, par2, this.zPosition * 16 + par3, tileentity); this.worldObj.setBlockTileEntity(this.xPosition * 16 + par1, par2, this.zPosition * 16 + par3, tileentity);
} }
@ -325,7 +325,7 @@
} }
/** /**
@@ -918,7 +1017,7 @@ @@ -918,7 +1016,7 @@
if (this.isChunkLoaded) if (this.isChunkLoaded)
{ {
@ -334,11 +334,11 @@
} }
} }
@@ -933,8 +1032,14 @@ @@ -933,8 +1031,14 @@
par4TileEntity.yCoord = par2; par4TileEntity.yCoord = par2;
par4TileEntity.zCoord = this.zPosition * 16 + par3; par4TileEntity.zCoord = this.zPosition * 16 + par3;
- if (this.getBlockID(par1, par2, par3) != 0 && Block.blocksList[this.getBlockID(par1, par2, par3)] instanceof BlockContainer) - if (this.getBlockID(par1, par2, par3) != 0 && Block.blocksList[this.getBlockID(par1, par2, par3)] instanceof ITileEntityProvider)
- { - {
+ Block block = Block.blocksList[getBlockID(par1, par2, par3)]; + Block block = Block.blocksList[getBlockID(par1, par2, par3)];
+ if (block != null && block.hasTileEntity(getBlockMetadata(par1, par2, par3))) + if (block != null && block.hasTileEntity(getBlockMetadata(par1, par2, par3)))
@ -351,7 +351,7 @@
par4TileEntity.validate(); par4TileEntity.validate();
this.chunkTileEntityMap.put(chunkposition, par4TileEntity); this.chunkTileEntityMap.put(chunkposition, par4TileEntity);
} }
@@ -970,6 +1075,7 @@ @@ -970,6 +1074,7 @@
{ {
this.worldObj.addLoadedEntities(this.entityLists[i]); this.worldObj.addLoadedEntities(this.entityLists[i]);
} }
@ -359,7 +359,7 @@
} }
/** /**
@@ -990,6 +1096,7 @@ @@ -990,6 +1095,7 @@
{ {
this.worldObj.unloadEntities(this.entityLists[i]); this.worldObj.unloadEntities(this.entityLists[i]);
} }
@ -367,7 +367,7 @@
} }
/** /**
@@ -1006,8 +1113,8 @@ @@ -1006,8 +1112,8 @@
*/ */
public void getEntitiesWithinAABBForEntity(Entity par1Entity, AxisAlignedBB par2AxisAlignedBB, List par3List, IEntitySelector par4IEntitySelector) public void getEntitiesWithinAABBForEntity(Entity par1Entity, AxisAlignedBB par2AxisAlignedBB, List par3List, IEntitySelector par4IEntitySelector)
{ {
@ -378,7 +378,7 @@
if (i < 0) if (i < 0)
{ {
@@ -1054,8 +1161,8 @@ @@ -1054,8 +1160,8 @@
*/ */
public void getEntitiesOfTypeWithinAAAB(Class par1Class, AxisAlignedBB par2AxisAlignedBB, List par3List, IEntitySelector par4IEntitySelector) public void getEntitiesOfTypeWithinAAAB(Class par1Class, AxisAlignedBB par2AxisAlignedBB, List par3List, IEntitySelector par4IEntitySelector)
{ {
@ -389,7 +389,7 @@
if (i < 0) if (i < 0)
{ {
@@ -1238,6 +1345,15 @@ @@ -1238,6 +1344,15 @@
*/ */
public void fillChunk(byte[] par1ArrayOfByte, int par2, int par3, boolean par4) public void fillChunk(byte[] par1ArrayOfByte, int par2, int par3, boolean par4)
{ {
@ -405,7 +405,7 @@
int k = 0; int k = 0;
boolean flag1 = !this.worldObj.provider.hasNoSky; boolean flag1 = !this.worldObj.provider.hasNoSky;
int l; int l;
@@ -1338,12 +1454,26 @@ @@ -1338,12 +1453,26 @@
} }
this.generateHeightMap(); this.generateHeightMap();
@ -436,7 +436,7 @@
} }
} }
@@ -1452,4 +1582,18 @@ @@ -1452,4 +1581,18 @@
} }
} }
} }

View File

@ -10,7 +10,7 @@
import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.crash.CrashReport; import net.minecraft.crash.CrashReport;
@@ -66,7 +69,7 @@ @@ -74,7 +77,7 @@
*/ */
public void unloadChunksIfNotNearSpawn(int par1, int par2) public void unloadChunksIfNotNearSpawn(int par1, int par2)
{ {
@ -19,7 +19,7 @@
{ {
ChunkCoordinates chunkcoordinates = this.worldObj.getSpawnPoint(); ChunkCoordinates chunkcoordinates = this.worldObj.getSpawnPoint();
int k = par1 * 16 + 8 - chunkcoordinates.posX; int k = par1 * 16 + 8 - chunkcoordinates.posX;
@@ -109,7 +112,11 @@ @@ -117,7 +120,11 @@
if (chunk == null) if (chunk == null)
{ {
@ -32,7 +32,7 @@
if (chunk == null) if (chunk == null)
{ {
@@ -306,6 +313,11 @@ @@ -314,6 +321,11 @@
{ {
if (!this.worldObj.canNotSave) if (!this.worldObj.canNotSave)
{ {
@ -44,14 +44,14 @@
for (int i = 0; i < 100; ++i) for (int i = 0; i < 100; ++i)
{ {
if (!this.chunksToUnload.isEmpty()) if (!this.chunksToUnload.isEmpty())
@@ -318,6 +330,11 @@ @@ -326,6 +338,11 @@
this.chunksToUnload.remove(olong); this.chunksToUnload.remove(olong);
this.loadedChunkHashMap.remove(olong.longValue()); this.id2ChunkMap.remove(olong.longValue());
this.loadedChunks.remove(chunk); this.loadedChunks.remove(chunk);
+ ForgeChunkManager.putDormantChunk(ChunkCoordIntPair.chunkXZ2Int(chunk.xPosition, chunk.zPosition), chunk); + ForgeChunkManager.putDormantChunk(ChunkCoordIntPair.chunkXZ2Int(chunk.xPosition, chunk.zPosition), chunk);
+ if(loadedChunks.size() == 0 && ForgeChunkManager.getPersistentChunksFor(this.worldObj).size() == 0 && !DimensionManager.shouldLoadSpawn(this.worldObj.provider.dimensionId)) { + if(loadedChunks.size() == 0 && ForgeChunkManager.getPersistentChunksFor(this.worldObj).size() == 0 && !DimensionManager.shouldLoadSpawn(this.worldObj.provider.dimensionId)) {
+ DimensionManager.unloadWorld(this.worldObj.provider.dimensionId); + DimensionManager.unloadWorld(this.worldObj.provider.dimensionId);
+ return currentChunkProvider.unload100OldestChunks(); + return serverChunkGenerator.unload100OldestChunks();
+ } + }
} }
} }

View File

@ -31,10 +31,10 @@
- if ((i1 == Block.grass.blockID || i1 == Block.dirt.blockID) && par4 < 256 - l - 1) - if ((i1 == Block.grass.blockID || i1 == Block.dirt.blockID) && par4 < 256 - l - 1)
- { - {
- par1World.setBlockAndMetadataWithNotify(par3, par4 - 1, par5, Block.dirt.blockID, 0, 4); - par1World.setBlockAndMetadataWithNotify(par3, par4 - 1, par5, Block.dirt.blockID, 0, 2);
- par1World.setBlockAndMetadataWithNotify(par3 + 1, par4 - 1, par5, Block.dirt.blockID, 0, 4); - par1World.setBlockAndMetadataWithNotify(par3 + 1, par4 - 1, par5, Block.dirt.blockID, 0, 2);
- par1World.setBlockAndMetadataWithNotify(par3, par4 - 1, par5 + 1, Block.dirt.blockID, 0, 4); - par1World.setBlockAndMetadataWithNotify(par3, par4 - 1, par5 + 1, Block.dirt.blockID, 0, 2);
- par1World.setBlockAndMetadataWithNotify(par3 + 1, par4 - 1, par5 + 1, Block.dirt.blockID, 0, 4); - par1World.setBlockAndMetadataWithNotify(par3 + 1, par4 - 1, par5 + 1, Block.dirt.blockID, 0, 2);
+ Block soil = Block.blocksList[i1]; + Block soil = Block.blocksList[i1];
+ boolean isValidSoil = soil != null && soil.canSustainPlant(par1World, par3, par4 - 1, par5, ForgeDirection.UP, (BlockSapling)Block.sapling); + boolean isValidSoil = soil != null && soil.canSustainPlant(par1World, par3, par4 - 1, par5, ForgeDirection.UP, (BlockSapling)Block.sapling);
+ +

View File

@ -29,8 +29,8 @@
+ Block block = Block.blocksList[par1World.getBlockId(k2, l2, i3)]; + Block block = Block.blocksList[par1World.getBlockId(k2, l2, i3)];
+ if (d12 * d12 + d13 * d13 + d14 * d14 < 1.0D && (block != null && block.isGenMineableReplaceable(par1World, k2, l2, i3, field_94523_c))) + if (d12 * d12 + d13 * d13 + d14 * d14 < 1.0D && (block != null && block.isGenMineableReplaceable(par1World, k2, l2, i3, field_94523_c)))
{ {
- par1World.setBlockAndMetadataWithNotify(k2, l2, i3, this.minableBlockId, 0, 4); - par1World.setBlockAndMetadataWithNotify(k2, l2, i3, this.minableBlockId, 0, 2);
+ par1World.setBlockAndMetadataWithNotify(k2, l2, i3, this.minableBlockId, minableBlockMeta, 4); + par1World.setBlockAndMetadataWithNotify(k2, l2, i3, this.minableBlockId, minableBlockMeta, 2);
} }
} }
} }

107
updateasmdata.py Normal file
View File

@ -0,0 +1,107 @@
import os, os.path, sys
import shutil, glob, fnmatch
import csv, re
ctorsigre = re.compile('<init>\((.*)\)')
ctorparamre = re.compile('(([ZBCSIJFD]|L([\w\/]+);))')
def get_merged_info():
mcp_dir = os.path.join(os.getcwd(), 'mcp')
joined = os.path.join(mcp_dir, 'conf', 'joined.srg')
values = {'PK:': {}, 'CL:': {}, 'FD:': {}, 'MD:': {}}
if not os.path.isfile(joined):
sys.path.append('install')
from fml import gen_merged_srg
values = gen_merged_srg(mcp_dir, None)
else:
with open(joined, 'r') as fh:
for line in fh:
pts = line.rstrip('\r\n').split(' ')
if pts[0] == 'MD:':
values[pts[0]][pts[1] + ' ' + pts[2]] = pts[3] + ' ' + pts[4]
else:
values[pts[0]][pts[1]] = pts[2]
return {t:{v.split(' ')[0]:k for k, v in m.items()} for t,m in values.items()}
def process_file(file, srg):
name = os.path.basename(file)
print 'Processing: ' + name
if name == 'mcp_merge.cfg':
with open(file + '-new','w') as nf:
with open(file) as f:
for line in f:
parts = line.split('#')
target = parts[1].strip()
newpart = '%s%s #%s\n' % (parts[0][0], srg['CL:'][target], target)
nf.write(newpart)
else:
with open(file + '-new', 'wb') as nf:
with open(file) as f:
for line in f:
parts = line.split('#')
if len(parts) < 2:
nf.write(line)
continue
if len(parts[1]) < 4:
nf.write(line)
continue
typ = parts[1][0:3]
if not srg.has_key(typ):
nf.write(line)
continue
name = parts[1][3:].strip()
name = (name if name.startswith('net/minecraft/') else 'net/minecraft/src/' + name)
action = parts[0].split(' ')
if name.endswith('/*'):
targ = srg['CL:'][name[:-2]]
wildcard = ('.*()' if typ == 'MD:' else '.*')
newline = '%s %s%s #%s' % (action[0], targ, wildcard, '#'.join(parts[1:]))
nf.write(newline)
elif name.find('/<init>') >= 0:
targ = srg['CL:'][name[:name.find('/<init>')]]
args = '<init>('
armatch = ctorsigre.search(name).group(1)
for bit in ctorparamre.findall(armatch):
if len(bit[2]) > 0 and srg['CL:'].has_key(bit[2]):
cl = 'L' + srg['CL:'][bit[2]] + ';'
else:
cl = bit[1]
args += cl
args += ')V'
newline = ('%s %s.%s #%s' % (action[0], targ, args, '#'.join(parts[1:])))
nf.write(newline)
else:
if name not in srg[typ]:
nf.write("%s # -- MISSING MAPPING" %( line ))
print("%s is missing a mapping"% name)
else:
targ = srg[typ][name]
args = targ.replace('/', '.', 1).replace(' ', '', 1)
newline = ('%s %s #%s' % (action[0], args, '#'.join(parts[1:])))
nf.write(newline)
def main():
srg = get_merged_info()
for arg in sys.argv:
path = os.path.join(os.getcwd(), arg)
if arg.endswith('_at.cfg') or arg == 'mcp_merge.cfg':
process_file(path, srg)
elif os.path.isdir(path):
for file in os.listdir(path):
if file.endswith('_at.cfg'):
process_file(os.path.join(path, file), srg)
if __name__ == '__main__':
main()