Initial patch update to 1.6, Does not compile, need to update references to the old TexturePack system.
This commit is contained in:
parent
7326f00a85
commit
d2144f274b
126 changed files with 1527 additions and 1666 deletions
|
@ -19,8 +19,8 @@ import net.minecraft.block.Block;
|
|||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.client.texturepacks.ITexturePack;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
@ -28,47 +28,34 @@ import net.minecraft.util.MathHelper;
|
|||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.client.model.ModelBiped;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.renderer.RenderEngine;
|
||||
import net.minecraft.client.renderer.RenderGlobal;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.entity.RenderItem;
|
||||
import net.minecraft.client.renderer.texture.TextureManager;
|
||||
import net.minecraft.client.renderer.texture.TextureMap;
|
||||
import net.minecraftforge.client.IItemRenderer.ItemRenderType;
|
||||
import net.minecraftforge.client.event.DrawBlockHighlightEvent;
|
||||
import net.minecraftforge.client.event.RenderWorldLastEvent;
|
||||
import net.minecraftforge.client.event.TextureLoadEvent;
|
||||
import net.minecraftforge.client.event.TextureStitchEvent;
|
||||
import net.minecraftforge.common.IArmorTextureProvider;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import static net.minecraftforge.client.IItemRenderer.ItemRenderType.*;
|
||||
import static net.minecraftforge.client.IItemRenderer.ItemRendererHelper.*;
|
||||
|
||||
public class ForgeHooksClient
|
||||
{
|
||||
static RenderEngine engine()
|
||||
static TextureManager engine()
|
||||
{
|
||||
return FMLClientHandler.instance().getClient().renderEngine;
|
||||
}
|
||||
|
||||
@Deprecated //Deprecated in 1.5.1, move to the more detailed one below.
|
||||
@SuppressWarnings("deprecation")
|
||||
public static String getArmorTexture(ItemStack armor, String _default)
|
||||
{
|
||||
String result = null;
|
||||
if (armor.getItem() instanceof IArmorTextureProvider)
|
||||
{
|
||||
result = ((IArmorTextureProvider)armor.getItem()).getArmorTextureFile(armor);
|
||||
}
|
||||
return result != null ? result : _default;
|
||||
}
|
||||
|
||||
public static String getArmorTexture(Entity entity, ItemStack armor, String _default, int slot, int layer)
|
||||
public static String getArmorTexture(Entity entity, ItemStack armor, String _default, int slot, int layer, String type)
|
||||
{
|
||||
String result = armor.getItem().getArmorTexture(armor, entity, slot, layer);
|
||||
return result != null ? result : _default;
|
||||
}
|
||||
|
||||
public static boolean renderEntityItem(EntityItem entity, ItemStack item, float bobing, float rotation, Random random, RenderEngine engine, RenderBlocks renderBlocks)
|
||||
public static boolean renderEntityItem(EntityItem entity, ItemStack item, float bobing, float rotation, Random random, TextureManager engine, RenderBlocks renderBlocks)
|
||||
{
|
||||
IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(item, ENTITY);
|
||||
if (customRenderer == null)
|
||||
|
@ -86,7 +73,7 @@ public class ForgeHooksClient
|
|||
}
|
||||
boolean is3D = customRenderer.shouldUseRenderHelper(ENTITY, item, BLOCK_3D);
|
||||
|
||||
engine.bindTexture(item.getItemSpriteNumber() == 0 ? "/terrain.png" : "/gui/items.png");
|
||||
engine.func_110577_a(item.getItemSpriteNumber() == 0 ? TextureMap.field_110575_b : TextureMap.field_110576_c);
|
||||
Block block = (item.itemID < Block.blocksList.length ? Block.blocksList[item.itemID] : null);
|
||||
if (is3D || (block != null && RenderBlocks.renderItemIn3d(block.getRenderType())))
|
||||
{
|
||||
|
@ -127,7 +114,7 @@ public class ForgeHooksClient
|
|||
return true;
|
||||
}
|
||||
|
||||
public static boolean renderInventoryItem(RenderBlocks renderBlocks, RenderEngine engine, ItemStack item, boolean inColor, float zLevel, float x, float y)
|
||||
public static boolean renderInventoryItem(RenderBlocks renderBlocks, TextureManager engine, ItemStack item, boolean inColor, float zLevel, float x, float y)
|
||||
{
|
||||
IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(item, INVENTORY);
|
||||
if (customRenderer == null)
|
||||
|
@ -135,7 +122,7 @@ public class ForgeHooksClient
|
|||
return false;
|
||||
}
|
||||
|
||||
engine.bindTexture(item.getItemSpriteNumber() == 0 ? "/terrain.png" : "/gui/items.png");
|
||||
engine.func_110577_a(item.getItemSpriteNumber() == 0 ? TextureMap.field_110575_b : TextureMap.field_110576_c);
|
||||
if (customRenderer.shouldUseRenderHelper(INVENTORY, item, INVENTORY_BLOCK))
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
|
@ -182,14 +169,8 @@ public class ForgeHooksClient
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static void renderEquippedItem(IItemRenderer customRenderer, RenderBlocks renderBlocks, EntityLiving entity, ItemStack item)
|
||||
{
|
||||
renderEquippedItem(ItemRenderType.EQUIPPED, customRenderer, renderBlocks, entity, item);
|
||||
}
|
||||
|
||||
public static void renderEquippedItem(ItemRenderType type, IItemRenderer customRenderer, RenderBlocks renderBlocks, EntityLiving entity, ItemStack item)
|
||||
public static void renderEquippedItem(ItemRenderType type, IItemRenderer customRenderer, RenderBlocks renderBlocks, EntityLivingBase entity, ItemStack item)
|
||||
{
|
||||
if (customRenderer.shouldUseRenderHelper(type, item, EQUIPPED_BLOCK))
|
||||
{
|
||||
|
@ -216,7 +197,7 @@ public class ForgeHooksClient
|
|||
//Optifine Helper Functions u.u, these are here specifically for Optifine
|
||||
//Note: When using Optfine, these methods are invoked using reflection, which
|
||||
//incurs a major performance penalty.
|
||||
public static void orientBedCamera(Minecraft mc, EntityLiving entity)
|
||||
public static void orientBedCamera(Minecraft mc, EntityLivingBase entity)
|
||||
{
|
||||
int x = MathHelper.floor_double(entity.posX);
|
||||
int y = MathHelper.floor_double(entity.posY);
|
||||
|
@ -285,7 +266,7 @@ public class ForgeHooksClient
|
|||
renderPass = pass;
|
||||
}
|
||||
|
||||
public static ModelBiped getArmorModel(EntityLiving entityLiving, ItemStack itemStack, int slotID, ModelBiped _default)
|
||||
public static ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int slotID, ModelBiped _default)
|
||||
{
|
||||
ModelBiped modelbiped = itemStack.getItem().getArmorModel(entityLiving, itemStack, slotID);
|
||||
return modelbiped == null ? _default : modelbiped;
|
||||
|
|
|
@ -9,6 +9,7 @@ import net.minecraft.client.gui.GuiControls;
|
|||
import net.minecraft.client.gui.GuiSlot;
|
||||
import net.minecraft.client.settings.KeyBinding;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.texture.TextureMap;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
|
||||
public class GuiControlsScrollPanel extends GuiSlot
|
||||
|
@ -60,7 +61,7 @@ public class GuiControlsScrollPanel extends GuiSlot
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void drawBackground() {}
|
||||
protected void func_130003_c() {}
|
||||
|
||||
@Override
|
||||
public void drawScreen(int mX, int mY, float f)
|
||||
|
@ -91,7 +92,7 @@ public class GuiControlsScrollPanel extends GuiSlot
|
|||
boolean flag = _mouseX >= xPosition && _mouseY >= yPosition && _mouseX < xPosition + width && _mouseY < yPosition + height;
|
||||
int k = (flag ? 2 : 1);
|
||||
|
||||
mc.renderEngine.bindTexture("/gui/gui.png");
|
||||
mc.renderEngine.func_110577_a(TextureMap.field_110576_c);
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
controls.drawTexturedModalRect(xPosition, yPosition, 0, 46 + k * 20, width / 2, height);
|
||||
controls.drawTexturedModalRect(xPosition + width / 2, yPosition, 200 - width / 2, 46 + k * 20, width / 2, height);
|
||||
|
|
|
@ -24,6 +24,8 @@ import net.minecraft.client.multiplayer.NetClientHandler;
|
|||
import net.minecraft.client.renderer.RenderHelper;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.entity.RenderItem;
|
||||
import net.minecraft.client.renderer.texture.TextureMap;
|
||||
import net.minecraft.client.resources.ResourceLocation;
|
||||
import net.minecraft.crash.CallableMinecraftVersion;
|
||||
import net.minecraft.entity.boss.BossStatus;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
|
@ -112,7 +114,7 @@ public class GuiIngameForge extends GuiIngame
|
|||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
zLevel = -90.0F;
|
||||
rand.setSeed((long)(updateCounter * 312871));
|
||||
mc.renderEngine.bindTexture("/gui/icons.png");
|
||||
mc.renderEngine.func_110577_a(TextureMap.field_110576_c);
|
||||
|
||||
if (renderCrosshairs) renderCrosshairs(width, height);
|
||||
if (renderBossHealth) renderBossHealth();
|
||||
|
@ -167,7 +169,7 @@ public class GuiIngameForge extends GuiIngame
|
|||
GL11.glEnable(GL11.GL_BLEND);
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
mc.renderEngine.bindTexture("/gui/gui.png");
|
||||
mc.renderEngine.func_110577_a("/gui/gui.png");
|
||||
|
||||
InventoryPlayer inv = mc.thePlayer.inventory;
|
||||
drawTexturedModalRect(width / 2 - 91, height - 22, 0, 0, 182, 22);
|
||||
|
@ -311,7 +313,7 @@ public class GuiIngameForge extends GuiIngame
|
|||
}
|
||||
|
||||
int health = mc.thePlayer.getHealth();
|
||||
int healthLast = mc.thePlayer.prevHealth;
|
||||
float healthLast = mc.thePlayer.prevHealth;
|
||||
int left = width / 2 - 91;
|
||||
int top = height - 39;
|
||||
|
||||
|
|
|
@ -1,18 +1,16 @@
|
|||
package net.minecraftforge.client.event;
|
||||
|
||||
import net.minecraft.client.renderer.entity.RenderLiving;
|
||||
import net.minecraft.client.renderer.entity.RenderPlayer;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.client.render.entity.RendererLivingEntity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraftforge.event.Cancelable;
|
||||
import net.minecraftforge.event.Event;
|
||||
|
||||
public abstract class RenderLivingEvent extends Event
|
||||
{
|
||||
public final EntityLiving entity;
|
||||
public final RenderLiving renderer;
|
||||
public final EntityLivingBase entity;
|
||||
public final RendererLivingEntity renderer;
|
||||
|
||||
public RenderLivingEvent(EntityLiving entity, RenderLiving renderer)
|
||||
public RenderLivingEvent(EntityLivingBase entity, RendererLivingEntity renderer)
|
||||
{
|
||||
this.entity = entity;
|
||||
this.renderer = renderer;
|
||||
|
@ -20,16 +18,16 @@ public abstract class RenderLivingEvent extends Event
|
|||
|
||||
public abstract static class Specials extends RenderLivingEvent
|
||||
{
|
||||
public Specials(EntityLiving entity, RenderLiving renderer){ super(entity, renderer); }
|
||||
public Specials(EntityLivingBase entity, RendererLivingEntity renderer){ super(entity, renderer); }
|
||||
|
||||
@Cancelable
|
||||
public static class Pre extends Specials
|
||||
{
|
||||
public Pre(EntityLiving entity, RenderLiving renderer){ super(entity, renderer); }
|
||||
public Pre(EntityLivingBase entity, RendererLivingEntity renderer){ super(entity, renderer); }
|
||||
}
|
||||
public static class Post extends Specials
|
||||
{
|
||||
public Post(EntityLiving entity, RenderLiving renderer){ super(entity, renderer); }
|
||||
public Post(EntityLivingBase entity, RendererLivingEntity renderer){ super(entity, renderer); }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,158 +1,162 @@
|
|||
#Main Forge Access Transformer configuration file
|
||||
# Tessellator
|
||||
public-f bgd.a #FD:Tessellator/field_78398_a #instance
|
||||
public bgd.u #FD:Tessellator/field_78409_u #drawMode
|
||||
public bgd.v #FD:Tessellator/field_78408_v #xOffset
|
||||
public bgd.w #FD:Tessellator/field_78407_w #yOffset
|
||||
public bgd.x #FD:Tessellator/field_78417_x #zOffset
|
||||
public bgd.z #FD:Tessellator/field_78415_z #isDrawing
|
||||
public-f bfc.a #FD:Tessellator/field_78398_a #instance
|
||||
public bfc.u #FD:Tessellator/field_78409_u #drawMode
|
||||
public bfc.v #FD:Tessellator/field_78408_v #xOffset
|
||||
public bfc.w #FD:Tessellator/field_78407_w #yOffset
|
||||
public bfc.x #FD:Tessellator/field_78417_x #zOffset
|
||||
public bfc.z #FD:Tessellator/field_78415_z #isDrawing
|
||||
# ItemPickaxe
|
||||
public wu.<init>(ILwl;)V #MD:ItemPickaxe/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
|
||||
public+f wu.c #FD:ItemPickaxe/field_77867_c #blocksEffectiveAgainst
|
||||
public yh.<init>(ILxx;)V #MD:ItemPickaxe/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
|
||||
public+f yh.c #FD:ItemPickaxe/field_77867_c #blocksEffectiveAgainst
|
||||
# ItemAxe
|
||||
public wi.<init>(ILwl;)V #MD:ItemAxe/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
|
||||
public+f wi.c #FD:ItemAxe/field_77868_c #blocksEffectiveAgainst
|
||||
public xu.<init>(ILxx;)V #MD:ItemAxe/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
|
||||
public+f xu.c #FD:ItemAxe/field_77868_c #blocksEffectiveAgainst
|
||||
# ItemSpade
|
||||
public xf.<init>(ILwl;)V #MD:ItemSpade/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
|
||||
public+f xf.c #FD:ItemSpade/field_77866_c #blocksEffectiveAgainst
|
||||
public ys.<init>(ILxx;)V #MD:ItemSpade/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
|
||||
public+f ys.c #FD:ItemSpade/field_77866_c #blocksEffectiveAgainst
|
||||
# ItemTool
|
||||
public vr.a #FD:ItemTool/field_77864_a #efficiencyOnProperMaterial
|
||||
public vr.d #FD:ItemTool/field_77865_bY #damageVsEntity
|
||||
public xd.a #FD:ItemTool/field_77864_a #efficiencyOnProperMaterial
|
||||
public xd.d #FD:ItemTool/field_77865_bY #damageVsEntity
|
||||
# EntityEnderman
|
||||
public rv.d #FD:EntityEnderman/field_70827_d #carriableBlocks
|
||||
public tc.br #FD:EntityEnderman/field_70827_d #carriableBlocks
|
||||
# RenderEngine
|
||||
public bge.f(Ljava/lang/String;)I #MD:RenderEngine/func_78341_b #getTexture
|
||||
public bge.i #FD:RenderEngine/field_94154_l #terrainTextureMap
|
||||
public bge.j #FD:RenderEngine/field_94155_m #itemTextureMap
|
||||
# -- MISSING MAPPING public bge.f(Ljava/lang/String;)I #MD:RenderEngine/func_78341_b #getTexture
|
||||
# -- MISSING MAPPING public bge.i #FD:RenderEngine/field_94154_l #terrainTextureMap
|
||||
# -- MISSING MAPPING public bge.j #FD:RenderEngine/field_94155_m #itemTextureMap
|
||||
# RenderGlobal
|
||||
public bfy.h #FD:RenderGlobal/field_72769_h #theWorld
|
||||
public bfy.i #FD:RenderGlobal/field_72770_i #renderEngine
|
||||
public bfy.q #FD:RenderGlobal/field_72777_q #mc
|
||||
public bfy.r #FD:RenderGlobal/field_72776_r #globalRenderBlocks
|
||||
public bfy.E #FD:RenderGlobal/field_72738_E #damagedBlocks
|
||||
public bex.k #FD:RenderGlobal/field_72769_h #theWorld
|
||||
public bex.l #FD:RenderGlobal/field_72770_i #renderEngine
|
||||
public bex.t #FD:RenderGlobal/field_72777_q #mc
|
||||
public bex.u #FD:RenderGlobal/field_72776_r #globalRenderBlocks
|
||||
public bex.H #FD:RenderGlobal/field_72738_E #damagedBlocks
|
||||
# SoundManager
|
||||
public bkc.a #FD:SoundManager/field_77381_a #sndSystem
|
||||
public bkc.b #FD:SoundManager/field_77379_b #soundPoolSounds
|
||||
public bkc.c #FD:SoundManager/field_77380_c #soundPoolStreaming
|
||||
public bkc.d #FD:SoundManager/field_77377_d #soundPoolMusic
|
||||
public bla.b #FD:SoundManager/field_77381_a #sndSystem
|
||||
public bla.d #FD:SoundManager/field_77379_b #soundPoolSounds
|
||||
public bla.e #FD:SoundManager/field_77380_c #soundPoolStreaming
|
||||
public bla.f #FD:SoundManager/field_77377_d #soundPoolMusic
|
||||
# EntityMinecart
|
||||
protected ri.* #FD:EntityMinecart/* # All private -> protected
|
||||
protected sp.* #FD:EntityMinecart/* # All private -> protected
|
||||
# -- MISSING MAPPING public py.h()Z #MD:EntityMinecart/func_70490_h #isMinecartPowered
|
||||
# Block
|
||||
public apa.<init>(ILaif;)V #MD:Block/<init>(ILnet/minecraft/src/Material;) #Constructor
|
||||
public apa.<init>(IILaif;)V #MD:Block/<init>(IILnet/minecraft/src/Material;) #Constructor
|
||||
public apa.cB #FD:Block/field_72029_cc #blockResistance
|
||||
public apa.cA #FD:Block/field_71989_cb #blockHardness
|
||||
public aqr.<init>(ILaju;)V #MD:Block/<init>(ILnet/minecraft/src/Material;) #Constructor
|
||||
public aqr.<init>(IILaju;)V #MD:Block/<init>(IILnet/minecraft/src/Material;) #Constructor
|
||||
public aqr.cH #FD:Block/field_72029_cc #blockResistance
|
||||
public aqr.cG #FD:Block/field_71989_cb #blockHardness
|
||||
# -- MISSING MAPPING public amq.r()Lamq; #MD:Block/func_71912_p #setRequiresSelfNotify
|
||||
public apa.a(Lape;)Lapa; #MD:Block/func_71884_a #setStepSound
|
||||
public apa.b(F)Lapa; #MD:Block/func_71894_b #setResistance
|
||||
public apa.c(F)Lapa; #MD:Block/func_71848_c #setHardness
|
||||
public apa.k(I)Lapa; #MD:Block/func_71868_h #setLightOpacity
|
||||
public apa.a(F)Lapa; #MD:Block/func_71900_a #setLightValue
|
||||
public apa.r()Lapa; #MD:Block/func_71875_q #setBlockUnbreakable
|
||||
public apa.b(Z)Lapa; #MD:Block/func_71907_b #setTickRandomly
|
||||
public apa.a(FFFFFF)V #MD:Block/func_71905_a #setBlockBounds
|
||||
public aqr.a(Laqv;)Laqr; #MD:Block/func_71884_a #setStepSound
|
||||
public aqr.b(F)Laqr; #MD:Block/func_71894_b #setResistance
|
||||
public aqr.c(F)Laqr; #MD:Block/func_71848_c #setHardness
|
||||
public aqr.k(I)Laqr; #MD:Block/func_71868_h #setLightOpacity
|
||||
public aqr.a(F)Laqr; #MD:Block/func_71900_a #setLightValue
|
||||
public aqr.r()Laqr; #MD:Block/func_71875_q #setBlockUnbreakable
|
||||
public aqr.b(Z)Laqr; #MD:Block/func_71907_b #setTickRandomly
|
||||
public aqr.a(FFFFFF)V #MD:Block/func_71905_a #setBlockBounds
|
||||
# NetServerHandler
|
||||
public jh.f #FD:NetServerHandler/field_72572_g #playerInAirTime
|
||||
public jw.f #FD:NetServerHandler/field_72572_g #playerInAirTime
|
||||
# TileEntity
|
||||
public aqp.k #FD:TileEntity/field_70331_k #worldObj
|
||||
public ash.k #FD:TileEntity/field_70331_k #worldObj
|
||||
# BlockLeavesBase
|
||||
public api.d #FD:BlockLeavesBase/field_72131_c #graphicsLevel
|
||||
public aqz.d #FD:BlockLeavesBase/field_72131_c #graphicsLevel
|
||||
# Item
|
||||
public wk.<init>(I)V #MD:Item/<init>(I) #Constructor
|
||||
public wk.e(I)Lwk; #MD:Item/func_77656_e #setMaxDamage
|
||||
public-f wk.h(Lwm;)Llx; #MD:Item/func_77650_f #getIconIndex
|
||||
public wk.c(Ljava/lang/String;)Lwk; #MD:Item/func_77631_c #setPotionEffect
|
||||
public xw.<init>(I)V #MD:Item/<init>(I) #Constructor
|
||||
public xw.e(I)Lxw; #MD:Item/func_77656_e #setMaxDamage
|
||||
public-f xw.h(Lxy;)Lmo; #MD:Item/func_77650_f #getIconIndex
|
||||
public xw.c(Ljava/lang/String;)Lxw; #MD:Item/func_77631_c #setPotionEffect
|
||||
# RailLogic
|
||||
public alc #CL:BlockBaseRailLogic
|
||||
public alc.a()I #MD:BlockBaseRailLogic/func_94505_a #getNAdjacentTiles
|
||||
public amr #CL:BlockBaseRailLogic
|
||||
public amr.a()I #MD:BlockBaseRailLogic/func_94505_a #getNAdjacentTiles
|
||||
# EntityPlayer
|
||||
public sq.a(Lrh;)V #MD:EntityPlayer/func_71012_a #joinEntityItemWithWorld
|
||||
public sq.h()V #MD:EntityPlayer/func_71053_j #closeScreen
|
||||
public sq.b #FD:EntityPlayer/field_71076_b #sleepTimer
|
||||
public tz.a(Lso;)V #MD:EntityPlayer/func_71012_a #joinEntityItemWithWorld
|
||||
public tz.i()V #MD:EntityPlayer/func_71053_j #closeScreen
|
||||
public tz.b #FD:EntityPlayer/field_71076_b #sleepTimer
|
||||
# EntityPlayerMP
|
||||
public bdv.a(Lrh;)V #MD:EntityClientPlayerMP/func_71012_a #joinEntityItemWithWorld
|
||||
public bcu.a(Lso;)V #MD:EntityClientPlayerMP/func_71012_a #joinEntityItemWithWorld
|
||||
# World Gen Chests Related
|
||||
public lp.* #FD:WeightedRandomChestContent/* #all
|
||||
public iz.S #FD:WorldServer/field_73069_S #bonusChestContent
|
||||
public aem.a #FD:StructureMineshaftPieces/field_78818_a #mineshaftChestContents
|
||||
public afq.i #FD:ComponentScatteredFeatureDesertPyramid/field_74941_i #itemsToGenerateInTemple
|
||||
public afr.l #FD:ComponentScatteredFeatureJunglePyramid/field_74943_l #junglePyramidsChestContents
|
||||
public afr.m #FD:ComponentScatteredFeatureJunglePyramid/field_74944_m #junglePyramidsDispenserContents
|
||||
public agb.a #FD:ComponentStrongholdChestCorridor/field_75003_a #strongholdChestContents
|
||||
public agf.b #FD:ComponentStrongholdLibrary/field_75007_b #strongholdLibraryChestContents
|
||||
public agk.c #FD:ComponentStrongholdRoomCrossing/field_75014_c #strongholdCorridorChestContents
|
||||
public ahl.a #FD:ComponentVillageHouse2/field_74918_a #villageBlacksmithChestContents
|
||||
public mg.* #FD:WeightedRandomChestContent/* #all
|
||||
public jo.T #FD:WorldServer/field_73069_S #bonusChestContent
|
||||
public agb.a #FD:StructureMineshaftPieces/field_78818_a #mineshaftChestContents
|
||||
public ahf.i #FD:ComponentScatteredFeatureDesertPyramid/field_74941_i #itemsToGenerateInTemple
|
||||
public ahg.l #FD:ComponentScatteredFeatureJunglePyramid/field_74943_l #junglePyramidsChestContents
|
||||
public ahg.m #FD:ComponentScatteredFeatureJunglePyramid/field_74944_m #junglePyramidsDispenserContents
|
||||
public ahq.a #FD:ComponentStrongholdChestCorridor/field_75003_a #strongholdChestContents
|
||||
public ahu.b #FD:ComponentStrongholdLibrary/field_75007_b #strongholdLibraryChestContents
|
||||
public ahz.c #FD:ComponentStrongholdRoomCrossing/field_75014_c #strongholdCorridorChestContents
|
||||
public aja.a #FD:ComponentVillageHouse2/field_74918_a #villageBlacksmithChestContents
|
||||
# AnvilChunkLoader.chunkSaveLocation
|
||||
public acj.d #FD:AnvilChunkLoader/field_75825_d
|
||||
public ady.d #FD:AnvilChunkLoader/field_75825_d
|
||||
# ChunkProviderServer.currentChunkLoader
|
||||
public iy.e #FD:ChunkProviderServer/field_73247_e
|
||||
public jn.e #FD:ChunkProviderServer/field_73247_e
|
||||
# PlayerManager
|
||||
public iw.a(IIZ)Lix; #MD:PlayerManager/func_72690_a #getOrCreateChunkWatcher
|
||||
public jl.a(IIZ)Ljm; #MD:PlayerManager/func_72690_a #getOrCreateChunkWatcher
|
||||
# PlayerInstance
|
||||
public ix #CL:PlayerInstance
|
||||
public jm #CL:PlayerInstance
|
||||
# World
|
||||
public-f aab.A #FD:World/field_72982_D #villageCollectionObj
|
||||
public aab.G #FD:World/field_72993_I #activeChunkSet
|
||||
public-f abq.A #FD:World/field_72982_D #villageCollectionObj
|
||||
public abq.G #FD:World/field_72993_I #activeChunkSet
|
||||
# EntityLiving
|
||||
public ng.be #FD:EntityLiving/field_70728_aV #experienceValue
|
||||
public ng.bt #FD:EntityLiving/field_94063_bt #combatTracker
|
||||
public ng.bp #FD:EntityLiving/field_70715_bh #targetTasks
|
||||
public oc.b #FD:EntityLiving/field_70728_aV #experienceValue
|
||||
# -- MISSING MAPPING public ng.bt #FD:EntityLiving/field_94063_bt #combatTracker
|
||||
public oc.d #FD:EntityLiving/field_70715_bh #targetTasks
|
||||
# GuiFlatPresets
|
||||
public axm.a(Ljava/lang/String;ILaav;Ljava/util/List;[Laei;)V #MD:GuiFlatPresets/func_82294_a
|
||||
public axm.a(Ljava/lang/String;ILaav;[Laei;)V #MD:GuiFlatPresets/func_82297_a
|
||||
public avp.a(Ljava/lang/String;ILack;Ljava/util/List;[Lafx;)V #MD:GuiFlatPresets/func_82294_a
|
||||
public avp.a(Ljava/lang/String;ILack;[Lafx;)V #MD:GuiFlatPresets/func_82297_a
|
||||
# BiomeGenBase
|
||||
public aav.*() #MD:BiomeGenBase/* #Everything protected->public
|
||||
public ack.*() #MD:BiomeGenBase/* #Everything protected->public
|
||||
# MapGenVillage
|
||||
public-f agz.e #FD:MapGenVillage/field_75055_e #villageSpawnBiomes
|
||||
public-f aio.e #FD:MapGenVillage/field_75055_e #villageSpawnBiomes
|
||||
# ShapedRecipes
|
||||
public+f yn.d #FD:ShapedRecipes/field_77574_d #recipeItems
|
||||
public+f yn.b #FD:ShapedRecipes/field_77576_b #recipeWidth
|
||||
public+f yn.c #FD:ShapedRecipes/field_77577_c #recipeHeight
|
||||
public+f aac.d #FD:ShapedRecipes/field_77574_d #recipeItems
|
||||
public+f aac.b #FD:ShapedRecipes/field_77576_b #recipeWidth
|
||||
public+f aac.c #FD:ShapedRecipes/field_77577_c #recipeHeight
|
||||
# ShapelessRecipes
|
||||
public yo.b #FD:ShapelessRecipes/field_77579_b #recipeItems
|
||||
public aad.b #FD:ShapelessRecipes/field_77579_b #recipeItems
|
||||
# GuiContainer
|
||||
protected ayl.a(Lul;)V #MD:GuiContainer/func_74192_a #drawSlotInventory
|
||||
protected awo.a(Lvy;)V #MD:GuiContainer/func_74192_a #drawSlotInventory
|
||||
# ContainerPlayer
|
||||
protected tz.h #FD:ContainerPlayer/field_82862_h #player
|
||||
protected vp.h #FD:ContainerPlayer/field_82862_h #player
|
||||
# BlockButton
|
||||
protected ali.n(Laab;III)V #MD:BlockButton/func_82535_o #checkActivation
|
||||
protected-f ali.a #FD:BlockButton/field_82537_a #sensible
|
||||
protected amx.n(Labq;III)V #MD:BlockButton/func_82535_o #checkActivation
|
||||
protected-f amx.a #FD:BlockButton/field_82537_a #sensible
|
||||
# BiomeDecorator
|
||||
public aaz.* #FD:BiomeDecorator/* # All private -> protected
|
||||
public aco.* #FD:BiomeDecorator/* # All private -> protected
|
||||
# CreativeTabs
|
||||
public-f ve.a #FD:CreativeTabs/field_78032_a # creativeTabArray non-final
|
||||
public-f wq.a #FD:CreativeTabs/field_78032_a # creativeTabArray non-final
|
||||
# Packet
|
||||
public ei.a(IZZLjava/lang/Class;)V #MD:Packet/func_73285_a #addIdClassMapping
|
||||
public ew.a(IZZLjava/lang/Class;)V #MD:Packet/func_73285_a #addIdClassMapping
|
||||
# SaveHandler
|
||||
public ajt.b()Ljava/io/File; #MD:SaveHandler/func_75765_b
|
||||
public ali.b()Ljava/io/File; #MD:SaveHandler/func_75765_b
|
||||
# World stuff
|
||||
public aab.b(Lmp;)V #MD:World/func_72847_b #releaseEntitySkin
|
||||
public aab.m #FD:World/field_73003_n #prevRainingStrength
|
||||
public aab.n #FD:World/field_73004_o #rainingStrength
|
||||
public aab.p #FD:World/field_73017_q #thunderingStrength
|
||||
public aab.o #FD:World/field_73018_p #prevThunderingStrength
|
||||
public abq.b(Lnj;)V #MD:World/func_72847_b #releaseEntitySkin
|
||||
public abq.m #FD:World/field_73003_n #prevRainingStrength
|
||||
public abq.n #FD:World/field_73004_o #rainingStrength
|
||||
public abq.p #FD:World/field_73017_q #thunderingStrength
|
||||
public abq.o #FD:World/field_73018_p #prevThunderingStrength
|
||||
#WorldClient
|
||||
public bds.b(Lmp;)V #MD:WorldClient/func_72847_b #releaseEntitySkin
|
||||
public bcr.b(Lnj;)V #MD:WorldClient/func_72847_b #releaseEntitySkin
|
||||
#WorldServer
|
||||
public iz.b(Lmp;)V #MD:WorldServer/func_72847_b #releaseEntitySkin
|
||||
public iz.N #FD:WorldServer/field_73068_P #allPlayersSleeping
|
||||
public jo.b(Lnj;)V #MD:WorldServer/func_72847_b #releaseEntitySkin
|
||||
public jo.N #FD:WorldServer/field_73068_P #allPlayersSleeping
|
||||
#TextureMap
|
||||
public bir.a #FD:TextureMap/field_94255_a
|
||||
public bir.b #FD:TextureMap/field_94253_b
|
||||
public bir.c #FD:TextureMap/field_94254_c
|
||||
public bir.d #FD:TextureMap/field_94251_d
|
||||
public bhw.g #FD:TextureMap/field_94255_a
|
||||
# -- MISSING MAPPING public bir.b #FD:TextureMap/field_94253_b
|
||||
public bhw.h #FD:TextureMap/field_94254_c
|
||||
# -- MISSING MAPPING public bir.d #FD:TextureMap/field_94251_d
|
||||
#Potion
|
||||
public mk.b(II)Lmk; #MD:Potion/func_76399_b #setIconIndex
|
||||
public ne.b(II)Lne; #MD:Potion/func_76399_b #setIconIndex
|
||||
#PotionHelper
|
||||
public xu.m #FD:PotionHelper/field_77927_l #potionRequirements
|
||||
public xu.n #FD:PotionHelper/field_77928_m #potionAmplifiers
|
||||
public zj.m #FD:PotionHelper/field_77927_l #potionRequirements
|
||||
public zj.n #FD:PotionHelper/field_77928_m #potionAmplifiers
|
||||
#PotionEffect
|
||||
public ml.b #FD:PotionEffect/field_76460_b #duration
|
||||
public nf.b #FD:PotionEffect/field_76460_b #duration
|
||||
#BlockFluid
|
||||
protected ane.a #FD:BlockFluid/field_94425_a #theIcon
|
||||
protected aou.a #FD:BlockFluid/field_94425_a #theIcon
|
||||
#GuiIngame
|
||||
protected aww.* #FD:GuiIngame/* # All private -> protected
|
||||
protected aww.*() #MD:GuiIngame/* # All private -> protected
|
||||
protected auz.* #FD:GuiIngame/* # All private -> protected
|
||||
protected auz.*() #MD:GuiIngame/* # All private -> protected
|
||||
#ItemStack
|
||||
default wm.e #FD:ItemStack/field_77991_e # make default access for itemDamage
|
||||
default xy.f #FD:ItemStack/field_77991_e # make default access for itemDamage
|
||||
#GuiSlot
|
||||
protected avw.b(IIII)V #MD:GuiSlot/func_77206_b #overlayBackground
|
||||
#EntityPlayer
|
||||
public tz.bu #FD:EntityPlayer/field_71092_bJ #username
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package net.minecraftforge.common;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.ChatMessageComponent;
|
||||
import net.minecraft.util.ChunkCoordinates;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
|
@ -9,8 +10,7 @@ public class FakePlayer extends EntityPlayer
|
|||
{
|
||||
public FakePlayer(World world, String name)
|
||||
{
|
||||
super(world);
|
||||
this.username = name;
|
||||
super(world, name);
|
||||
}
|
||||
|
||||
public void sendChatToPlayer(String s){}
|
||||
|
@ -19,4 +19,7 @@ public class FakePlayer extends EntityPlayer
|
|||
{
|
||||
return new ChunkCoordinates(0,0,0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void func_110122_a(ChatMessageComponent chatmessagecomponent){}
|
||||
}
|
||||
|
|
|
@ -1,16 +1,14 @@
|
|||
package net.minecraftforge.common;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import com.google.common.collect.ArrayListMultimap;
|
||||
import com.google.common.collect.ListMultimap;
|
||||
|
||||
import cpw.mods.fml.common.FMLLog;
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
|
@ -19,6 +17,8 @@ import net.minecraft.item.ItemAxe;
|
|||
import net.minecraft.item.ItemPickaxe;
|
||||
import net.minecraft.item.ItemSpade;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.network.NetServerHandler;
|
||||
import net.minecraft.util.ChatMessageComponent;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.EnumMovingObjectType;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
|
@ -26,9 +26,16 @@ import net.minecraft.util.WeightedRandom;
|
|||
import net.minecraft.util.WeightedRandomItem;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.event.ForgeEventFactory;
|
||||
import net.minecraftforge.event.ServerChatEvent;
|
||||
import net.minecraftforge.event.entity.item.ItemTossEvent;
|
||||
import net.minecraftforge.event.entity.living.*;
|
||||
import net.minecraftforge.event.entity.living.LivingEvent.*;
|
||||
import net.minecraftforge.event.entity.living.LivingAttackEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingDeathEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingDropsEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingEvent.LivingJumpEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingFallEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingHurtEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingSetAttackTargetEvent;
|
||||
|
||||
public class ForgeHooks
|
||||
{
|
||||
|
@ -307,54 +314,49 @@ public class ForgeHooks
|
|||
//Optifine Helper Functions u.u, these are here specifically for Optifine
|
||||
//Note: When using Optfine, these methods are invoked using reflection, which
|
||||
//incurs a major performance penalty.
|
||||
public static void onLivingSetAttackTarget(EntityLiving entity, EntityLiving target)
|
||||
public static void onLivingSetAttackTarget(EntityLivingBase entity, EntityLivingBase target)
|
||||
{
|
||||
MinecraftForge.EVENT_BUS.post(new LivingSetAttackTargetEvent(entity, target));
|
||||
}
|
||||
|
||||
public static boolean onLivingUpdate(EntityLiving entity)
|
||||
public static boolean onLivingUpdate(EntityLivingBase entity)
|
||||
{
|
||||
return MinecraftForge.EVENT_BUS.post(new LivingUpdateEvent(entity));
|
||||
}
|
||||
|
||||
public static boolean onLivingAttack(EntityLiving entity, DamageSource src, int amount)
|
||||
public static boolean onLivingAttack(EntityLivingBase entity, DamageSource src, float amount)
|
||||
{
|
||||
return MinecraftForge.EVENT_BUS.post(new LivingAttackEvent(entity, src, amount));
|
||||
}
|
||||
|
||||
public static int onLivingHurt(EntityLiving entity, DamageSource src, int amount)
|
||||
public static float onLivingHurt(EntityLivingBase entity, DamageSource src, float amount)
|
||||
{
|
||||
LivingHurtEvent event = new LivingHurtEvent(entity, src, amount);
|
||||
return (MinecraftForge.EVENT_BUS.post(event) ? 0 : event.ammount);
|
||||
}
|
||||
|
||||
public static boolean onLivingDeath(EntityLiving entity, DamageSource src)
|
||||
public static boolean onLivingDeath(EntityLivingBase entity, DamageSource src)
|
||||
{
|
||||
return MinecraftForge.EVENT_BUS.post(new LivingDeathEvent(entity, src));
|
||||
}
|
||||
|
||||
public static boolean onLivingDrops(EntityLiving entity, DamageSource source, ArrayList<EntityItem> drops, int lootingLevel, boolean recentlyHit, int specialDropValue)
|
||||
public static boolean onLivingDrops(EntityLivingBase entity, DamageSource source, ArrayList<EntityItem> drops, int lootingLevel, boolean recentlyHit, int specialDropValue)
|
||||
{
|
||||
return MinecraftForge.EVENT_BUS.post(new LivingDropsEvent(entity, source, drops, lootingLevel, recentlyHit, specialDropValue));
|
||||
}
|
||||
|
||||
public static float onLivingFall(EntityLiving entity, float distance)
|
||||
public static float onLivingFall(EntityLivingBase entity, float distance)
|
||||
{
|
||||
LivingFallEvent event = new LivingFallEvent(entity, distance);
|
||||
return (MinecraftForge.EVENT_BUS.post(event) ? 0.0f : event.distance);
|
||||
}
|
||||
|
||||
public static boolean isLivingOnLadder(Block block, World world, int x, int y, int z, EntityLiving entity)
|
||||
public static boolean isLivingOnLadder(Block block, World world, int x, int y, int z, EntityLivingBase entity)
|
||||
{
|
||||
return block != null && block.isLadder(world, x, y, z, entity);
|
||||
}
|
||||
@Deprecated //See above
|
||||
public static boolean isLivingOnLadder(Block block, World world, int x, int y, int z)
|
||||
{
|
||||
return block != null && block.isLadder(world, x, y, z);
|
||||
}
|
||||
|
||||
public static void onLivingJump(EntityLiving entity)
|
||||
public static void onLivingJump(EntityLivingBase entity)
|
||||
{
|
||||
MinecraftForge.EVENT_BUS.post(new LivingJumpEvent(entity));
|
||||
}
|
||||
|
@ -386,4 +388,14 @@ public class ForgeHooks
|
|||
Block block = Block.blocksList[world.getBlockId(x, y, z)];
|
||||
return (block == null ? 0 : block.getEnchantPowerBonus(world, x, y, z));
|
||||
}
|
||||
|
||||
public static ChatMessageComponent onServerChatEvent(NetServerHandler net, String raw, ChatMessageComponent comp)
|
||||
{
|
||||
ServerChatEvent event = new ServerChatEvent(net.playerEntity, raw, comp);
|
||||
if (MinecraftForge.EVENT_BUS.post(event))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return event.component;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ import java.util.ArrayList;
|
|||
import java.util.Arrays;
|
||||
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemArmor;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
@ -39,7 +39,7 @@ public interface ISpecialArmor
|
|||
* @param slot The armor slot the item is in.
|
||||
* @return A ArmorProperties instance holding information about how the armor effects damage.
|
||||
*/
|
||||
public ArmorProperties getProperties(EntityLiving player, ItemStack armor, DamageSource source, double damage, int slot);
|
||||
public ArmorProperties getProperties(EntityLivingBase player, ItemStack armor, DamageSource source, double damage, int slot);
|
||||
|
||||
/**
|
||||
* Get the displayed effective armor.
|
||||
|
@ -63,7 +63,7 @@ public interface ISpecialArmor
|
|||
* @param damage The amount of damage being applied to the armor
|
||||
* @param slot The armor slot the item is in.
|
||||
*/
|
||||
public abstract void damageArmor(EntityLiving entity, ItemStack stack, DamageSource source, int damage, int slot);
|
||||
public abstract void damageArmor(EntityLivingBase entity, ItemStack stack, DamageSource source, int damage, int slot);
|
||||
|
||||
public static class ArmorProperties implements Comparable<ArmorProperties>
|
||||
{
|
||||
|
@ -90,7 +90,7 @@ public interface ISpecialArmor
|
|||
* @param damage The total damage being done
|
||||
* @return The left over damage that has not been absorbed by the armor
|
||||
*/
|
||||
public static int ApplyArmor(EntityLiving entity, ItemStack[] inventory, DamageSource source, double damage)
|
||||
public static float ApplyArmor(EntityLivingBase entity, ItemStack[] inventory, DamageSource source, double damage)
|
||||
{
|
||||
if (DEBUG)
|
||||
{
|
||||
|
@ -167,13 +167,11 @@ public interface ISpecialArmor
|
|||
}
|
||||
damage -= (damage * ratio);
|
||||
}
|
||||
damage += entity.carryoverDamage;
|
||||
if (DEBUG)
|
||||
{
|
||||
System.out.println("Return: " + (int)(damage / 25D) + " " + damage);
|
||||
System.out.println("Return: " + (int)(damage / 25.0F) + " " + damage);
|
||||
}
|
||||
entity.carryoverDamage = (int)damage % 25;
|
||||
return (int)(damage / 25D);
|
||||
return (float)(damage / 25.0F);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,19 +1,20 @@
|
|||
package net.minecraftforge.event;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.util.ChatMessageComponent;
|
||||
|
||||
@Cancelable
|
||||
public class ServerChatEvent extends Event
|
||||
{
|
||||
public final String message, username;
|
||||
public final EntityPlayerMP player;
|
||||
public String line;
|
||||
public ServerChatEvent(EntityPlayerMP player, String message, String line)
|
||||
public ChatMessageComponent component;
|
||||
public ServerChatEvent(EntityPlayerMP player, String message, ChatMessageComponent line)
|
||||
{
|
||||
super();
|
||||
this.message = message;
|
||||
this.player = player;
|
||||
this.username = player.username;
|
||||
this.line = line;
|
||||
this.component = component;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package net.minecraftforge.event.entity.living;
|
||||
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraftforge.event.Cancelable;
|
||||
import net.minecraftforge.event.Event;
|
||||
|
||||
|
@ -16,9 +17,9 @@ public class EnderTeleportEvent extends LivingEvent
|
|||
public double targetX;
|
||||
public double targetY;
|
||||
public double targetZ;
|
||||
public int attackDamage;
|
||||
public float attackDamage;
|
||||
|
||||
public EnderTeleportEvent(EntityLiving entity, double targetX, double targetY, double targetZ, int attackDamage)
|
||||
public EnderTeleportEvent(EntityLivingBase entity, double targetX, double targetY, double targetZ, float attackDamage)
|
||||
{
|
||||
super(entity);
|
||||
this.targetX = targetX;
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
package net.minecraftforge.event.entity.living;
|
||||
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraftforge.event.Cancelable;
|
||||
|
||||
@Cancelable
|
||||
public class LivingAttackEvent extends LivingEvent
|
||||
{
|
||||
public final DamageSource source;
|
||||
public final int ammount;
|
||||
public LivingAttackEvent(EntityLiving entity, DamageSource source, int ammount)
|
||||
public final float ammount;
|
||||
public LivingAttackEvent(EntityLivingBase entity, DamageSource source, float ammount)
|
||||
{
|
||||
super(entity);
|
||||
this.source = source;
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
package net.minecraftforge.event.entity.living;
|
||||
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraftforge.event.Cancelable;
|
||||
|
||||
@Cancelable
|
||||
public class LivingDeathEvent extends LivingEvent
|
||||
{
|
||||
public final DamageSource source;
|
||||
public LivingDeathEvent(EntityLiving entity, DamageSource source)
|
||||
public LivingDeathEvent(EntityLivingBase entity, DamageSource source)
|
||||
{
|
||||
super(entity);
|
||||
this.source = source;
|
||||
|
|
|
@ -4,7 +4,7 @@ import java.util.ArrayList;
|
|||
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraftforge.event.Cancelable;
|
||||
|
||||
@Cancelable
|
||||
|
@ -16,7 +16,7 @@ public class LivingDropsEvent extends LivingEvent
|
|||
public final boolean recentlyHit;
|
||||
public final int specialDropValue;
|
||||
|
||||
public LivingDropsEvent(EntityLiving entity, DamageSource source, ArrayList<EntityItem> drops, int lootingLevel, boolean recentlyHit, int specialDropValue)
|
||||
public LivingDropsEvent(EntityLivingBase entity, DamageSource source, ArrayList<EntityItem> drops, int lootingLevel, boolean recentlyHit, int specialDropValue)
|
||||
{
|
||||
super(entity);
|
||||
this.source = source;
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
package net.minecraftforge.event.entity.living;
|
||||
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraftforge.event.Cancelable;
|
||||
import net.minecraftforge.event.entity.EntityEvent;
|
||||
|
||||
public class LivingEvent extends EntityEvent
|
||||
{
|
||||
public final EntityLiving entityLiving;
|
||||
public LivingEvent(EntityLiving entity)
|
||||
public final EntityLivingBase entityLiving;
|
||||
public LivingEvent(EntityLivingBase entity)
|
||||
{
|
||||
super(entity);
|
||||
entityLiving = entity;
|
||||
|
@ -16,11 +16,11 @@ public class LivingEvent extends EntityEvent
|
|||
@Cancelable
|
||||
public static class LivingUpdateEvent extends LivingEvent
|
||||
{
|
||||
public LivingUpdateEvent(EntityLiving e){ super(e); }
|
||||
public LivingUpdateEvent(EntityLivingBase e){ super(e); }
|
||||
}
|
||||
|
||||
public static class LivingJumpEvent extends LivingEvent
|
||||
{
|
||||
public LivingJumpEvent(EntityLiving e){ super(e); }
|
||||
public LivingJumpEvent(EntityLivingBase e){ super(e); }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
package net.minecraftforge.event.entity.living;
|
||||
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraftforge.event.Cancelable;
|
||||
|
||||
@Cancelable
|
||||
public class LivingFallEvent extends LivingEvent
|
||||
{
|
||||
public float distance;
|
||||
public LivingFallEvent(EntityLiving entity, float distance)
|
||||
public LivingFallEvent(EntityLivingBase entity, float distance)
|
||||
{
|
||||
super(entity);
|
||||
this.distance = distance;
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
package net.minecraftforge.event.entity.living;
|
||||
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraftforge.event.Cancelable;
|
||||
|
||||
@Cancelable
|
||||
public class LivingHurtEvent extends LivingEvent
|
||||
{
|
||||
public final DamageSource source;
|
||||
public int ammount;
|
||||
public LivingHurtEvent(EntityLiving entity, DamageSource source, int ammount)
|
||||
public float ammount;
|
||||
public LivingHurtEvent(EntityLivingBase entity, DamageSource source, float ammount)
|
||||
{
|
||||
super(entity);
|
||||
this.source = source;
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
package net.minecraftforge.event.entity.living;
|
||||
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
|
||||
public class LivingSetAttackTargetEvent extends LivingEvent
|
||||
{
|
||||
|
||||
public final EntityLiving target;
|
||||
public LivingSetAttackTargetEvent(EntityLiving entity, EntityLiving target)
|
||||
public final EntityLivingBase target;
|
||||
public LivingSetAttackTargetEvent(EntityLivingBase entity, EntityLivingBase target)
|
||||
{
|
||||
super(entity);
|
||||
this.target = target;
|
||||
|
|
|
@ -2,6 +2,7 @@ package net.minecraftforge.transformers;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.launchwrapper.IClassTransformer;
|
||||
import net.minecraftforge.event.Event;
|
||||
import net.minecraftforge.event.ListenerList;
|
||||
|
||||
|
@ -11,8 +12,6 @@ import static org.objectweb.asm.Opcodes.*;
|
|||
import static org.objectweb.asm.Type.*;
|
||||
import static org.objectweb.asm.ClassWriter.*;
|
||||
|
||||
import cpw.mods.fml.relauncher.IClassTransformer;
|
||||
|
||||
public class EventTransformer implements IClassTransformer
|
||||
{
|
||||
public EventTransformer()
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
+import net.minecraft.entity.EnumCreatureType;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.item.EntityXPOrb;
|
||||
|
@ -54,7 +54,7 @@
|
|||
/**
|
||||
* used as foreach item, if item.tab = current tab, display it on the screen
|
||||
*/
|
||||
@@ -454,9 +471,10 @@
|
||||
@@ -460,9 +477,10 @@
|
||||
return this.needsRandomTick;
|
||||
}
|
||||
|
||||
|
@ -66,7 +66,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -479,7 +497,7 @@
|
||||
@@ -485,7 +503,7 @@
|
||||
*/
|
||||
public float getBlockBrightness(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)
|
||||
{
|
||||
|
@ -75,7 +75,7 @@
|
|||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@@ -489,7 +507,7 @@
|
||||
@@ -495,7 +513,7 @@
|
||||
*/
|
||||
public int getMixedBrightnessForBlock(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)
|
||||
{
|
||||
|
@ -84,7 +84,7 @@
|
|||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@@ -639,7 +657,13 @@
|
||||
@@ -645,7 +663,13 @@
|
||||
/**
|
||||
* ejects contained items into the world, and notifies neighbours of an update, as appropriate
|
||||
*/
|
||||
|
@ -99,7 +99,7 @@
|
|||
|
||||
/**
|
||||
* Returns the quantity of items to drop on block destruction.
|
||||
@@ -664,7 +688,7 @@
|
||||
@@ -670,7 +694,7 @@
|
||||
public float getPlayerRelativeBlockHardness(EntityPlayer par1EntityPlayer, World par2World, int par3, int par4, int par5)
|
||||
{
|
||||
float f = this.getBlockHardness(par2World, par3, par4, par5);
|
||||
|
@ -108,7 +108,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -682,18 +706,13 @@
|
||||
@@ -688,18 +712,13 @@
|
||||
{
|
||||
if (!par1World.isRemote)
|
||||
{
|
||||
|
@ -131,7 +131,7 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
@@ -926,7 +945,8 @@
|
||||
@@ -932,7 +951,8 @@
|
||||
public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
|
||||
{
|
||||
int l = par1World.getBlockId(par2, par3, par4);
|
||||
|
@ -141,7 +141,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -1086,7 +1106,7 @@
|
||||
@@ -1092,7 +1112,7 @@
|
||||
par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1);
|
||||
par2EntityPlayer.addExhaustion(0.025F);
|
||||
|
||||
|
@ -150,7 +150,7 @@
|
|||
{
|
||||
ItemStack itemstack = this.createStackedBlock(par6);
|
||||
|
||||
@@ -1102,12 +1122,13 @@
|
||||
@@ -1108,12 +1128,13 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -165,7 +165,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -1443,4 +1464,950 @@
|
||||
@@ -1453,4 +1474,945 @@
|
||||
canBlockGrass[0] = true;
|
||||
StatList.initBreakableStats();
|
||||
}
|
||||
|
@ -200,12 +200,7 @@
|
|||
+ * @param entity The entity trying to use the ladder, CAN be null.
|
||||
+ * @return True if the block should act like a ladder
|
||||
+ */
|
||||
+ public boolean isLadder(World world, int x, int y, int z, EntityLiving entity)
|
||||
+ {
|
||||
+ return isLadder(world, x, y, z);
|
||||
+ }
|
||||
+ @Deprecated //See EntityLiving sensitive version above
|
||||
+ public boolean isLadder(World world, int x, int y, int z)
|
||||
+ public boolean isLadder(World world, int x, int y, int z, EntityLivingBase entity)
|
||||
+ {
|
||||
+ return false;
|
||||
+ }
|
||||
|
@ -575,7 +570,7 @@
|
|||
+ * @param player The player or camera entity, null in some cases.
|
||||
+ * @return True to treat this as a bed
|
||||
+ */
|
||||
+ public boolean isBed(World world, int x, int y, int z, EntityLiving player)
|
||||
+ public boolean isBed(World world, int x, int y, int z, EntityLivingBase player)
|
||||
+ {
|
||||
+ return blockID == Block.bed.blockID;
|
||||
+ }
|
||||
|
|
|
@ -8,12 +8,12 @@
|
|||
+
|
||||
final BlockRailBase theRail;
|
||||
|
||||
public BlockBaseRailLogic(BlockRailBase par1, World par2, int par3, int par4, int par5)
|
||||
public BlockBaseRailLogic(BlockRailBase par1BlockRailBase, World par2World, int par3, int par4, int par5)
|
||||
@@ -27,17 +29,11 @@
|
||||
this.railY = par4;
|
||||
this.railZ = par5;
|
||||
int l = par2.getBlockId(par3, par4, par5);
|
||||
- int i1 = par2.getBlockMetadata(par3, par4, par5);
|
||||
int l = par2World.getBlockId(par3, par4, par5);
|
||||
- int i1 = par2World.getBlockMetadata(par3, par4, par5);
|
||||
-
|
||||
- if (((BlockRailBase)Block.blocksList[l]).isPowered)
|
||||
- {
|
||||
|
@ -26,9 +26,9 @@
|
|||
- }
|
||||
+
|
||||
+ BlockRailBase target = (BlockRailBase)Block.blocksList[l];
|
||||
+ int i1 = target.getBasicRailMetadata(par2, null, par3, par4, par5);
|
||||
+ isStraightRail = !target.isFlexibleRail(par2, par3, par4, par5);
|
||||
+ canMakeSlopes = target.canMakeSlopes(par2, par3, par4, par5);
|
||||
+ int i1 = target.getBasicRailMetadata(par2World, null, par3, par4, par5);
|
||||
+ isStraightRail = !target.isFlexibleRail(par2World, par3, par4, par5);
|
||||
+ canMakeSlopes = target.canMakeSlopes(par2World, par3, par4, par5);
|
||||
|
||||
this.setBasicRail(i1);
|
||||
}
|
||||
|
|
|
@ -23,8 +23,8 @@
|
|||
}
|
||||
|
||||
@@ -182,4 +186,22 @@
|
||||
this.cactusTopIcon = par1IconRegister.registerIcon("cactus_top");
|
||||
this.cactusBottomIcon = par1IconRegister.registerIcon("cactus_bottom");
|
||||
this.cactusTopIcon = par1IconRegister.registerIcon(this.func_111023_E() + "_top");
|
||||
this.cactusBottomIcon = par1IconRegister.registerIcon(this.func_111023_E() + "_bottom");
|
||||
}
|
||||
+
|
||||
+ @Override
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
@@ -202,7 +204,14 @@
|
||||
@@ -201,7 +203,14 @@
|
||||
*/
|
||||
public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7)
|
||||
{
|
||||
|
@ -25,7 +25,7 @@
|
|||
byte b0 = 1;
|
||||
|
||||
if (j1 >= 2)
|
||||
@@ -212,8 +221,9 @@
|
||||
@@ -211,8 +220,9 @@
|
||||
|
||||
for (int k1 = 0; k1 < b0; ++k1)
|
||||
{
|
||||
|
@ -37,8 +37,8 @@
|
|||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@@ -249,4 +259,10 @@
|
||||
this.iconArray[i] = par1IconRegister.registerIcon(cocoaIcons[i]);
|
||||
@@ -248,4 +258,10 @@
|
||||
this.iconArray[i] = par1IconRegister.registerIcon(this.func_111023_E() + "_stage_" + i);
|
||||
}
|
||||
}
|
||||
+
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/block/BlockDoor.java
|
||||
+++ ../src_work/minecraft/net/minecraft/block/BlockDoor.java
|
||||
@@ -303,7 +303,7 @@
|
||||
@@ -290,7 +290,7 @@
|
||||
{
|
||||
if (this.blockMaterial == Material.iron)
|
||||
{
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
this.setBurnRate(Block.planks.blockID, 5, 20);
|
||||
this.setBurnRate(Block.woodDoubleSlab.blockID, 5, 20);
|
||||
this.setBurnRate(Block.woodSingleSlab.blockID, 5, 20);
|
||||
@@ -60,8 +65,7 @@
|
||||
@@ -62,8 +67,7 @@
|
||||
*/
|
||||
private void setBurnRate(int par1, int par2, int par3)
|
||||
{
|
||||
|
@ -29,7 +29,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -121,12 +125,8 @@
|
||||
@@ -123,12 +127,8 @@
|
||||
{
|
||||
if (par1World.getGameRules().getGameRuleBooleanValue("doFireTick"))
|
||||
{
|
||||
|
@ -44,7 +44,7 @@
|
|||
|
||||
if (!this.canPlaceBlockAt(par1World, par2, par3, par4))
|
||||
{
|
||||
@@ -155,7 +155,7 @@
|
||||
@@ -157,7 +157,7 @@
|
||||
par1World.setBlockToAir(par2, par3, par4);
|
||||
}
|
||||
}
|
||||
|
@ -53,7 +53,7 @@
|
|||
{
|
||||
par1World.setBlockToAir(par2, par3, par4);
|
||||
}
|
||||
@@ -169,12 +169,12 @@
|
||||
@@ -171,12 +171,12 @@
|
||||
b0 = -50;
|
||||
}
|
||||
|
||||
|
@ -72,7 +72,7 @@
|
|||
|
||||
for (int i1 = par2 - 1; i1 <= par2 + 1; ++i1)
|
||||
{
|
||||
@@ -228,9 +228,20 @@
|
||||
@@ -230,9 +230,20 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -94,7 +94,7 @@
|
|||
|
||||
if (par6Random.nextInt(par5) < j1)
|
||||
{
|
||||
@@ -264,7 +275,12 @@
|
||||
@@ -266,7 +277,12 @@
|
||||
*/
|
||||
private boolean canNeighborBurn(World par1World, int par2, int par3, int par4)
|
||||
{
|
||||
|
@ -108,7 +108,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -280,12 +296,12 @@
|
||||
@@ -282,12 +298,12 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -127,7 +127,7 @@
|
|||
return l;
|
||||
}
|
||||
}
|
||||
@@ -300,21 +316,24 @@
|
||||
@@ -302,21 +318,24 @@
|
||||
|
||||
/**
|
||||
* Checks the specified block coordinate to see if it can catch fire. Args: blockAccess, x, y, z
|
||||
|
@ -157,7 +157,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -372,9 +391,9 @@
|
||||
@@ -374,9 +393,9 @@
|
||||
float f1;
|
||||
float f2;
|
||||
|
||||
|
@ -170,7 +170,7 @@
|
|||
{
|
||||
for (l = 0; l < 2; ++l)
|
||||
{
|
||||
@@ -385,7 +404,7 @@
|
||||
@@ -387,7 +406,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -179,7 +179,7 @@
|
|||
{
|
||||
for (l = 0; l < 2; ++l)
|
||||
{
|
||||
@@ -396,7 +415,7 @@
|
||||
@@ -398,7 +417,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -188,7 +188,7 @@
|
|||
{
|
||||
for (l = 0; l < 2; ++l)
|
||||
{
|
||||
@@ -407,7 +426,7 @@
|
||||
@@ -409,7 +428,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -197,7 +197,7 @@
|
|||
{
|
||||
for (l = 0; l < 2; ++l)
|
||||
{
|
||||
@@ -418,7 +437,7 @@
|
||||
@@ -420,7 +439,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -206,7 +206,7 @@
|
|||
{
|
||||
for (l = 0; l < 2; ++l)
|
||||
{
|
||||
@@ -467,4 +486,46 @@
|
||||
@@ -469,4 +488,46 @@
|
||||
{
|
||||
return this.iconArray[0];
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
+import net.minecraft.entity.EntityLiving;
|
||||
+import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
@ -86,7 +86,7 @@
|
|||
}
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isLadder(World world, int x, int y, int z, EntityLiving entity)
|
||||
+ public boolean isLadder(World world, int x, int y, int z, EntityLivingBase entity)
|
||||
+ {
|
||||
+ return true;
|
||||
+ }
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
+public class BlockLeaves extends BlockLeavesBase implements IShearable
|
||||
{
|
||||
public static final String[] LEAF_TYPES = new String[] {"oak", "spruce", "birch", "jungle"};
|
||||
public static final String[][] field_94396_b = new String[][] {{"leaves", "leaves_spruce", "leaves", "leaves_jungle"}, {"leaves_opaque", "leaves_spruce_opaque", "leaves_opaque", "leaves_jungle_opaque"}};
|
||||
public static final String[][] field_94396_b = new String[][] {{"leaves_oak", "leaves_spruce", "leaves_birch", "leaves_jungle"}, {"leaves_oak_opaque", "leaves_spruce_opaque", "leaves_birch_opaque", "leaves_jungle_opaque"}};
|
||||
@@ -107,10 +111,9 @@
|
||||
{
|
||||
int j2 = par1World.getBlockId(par2 + k1, par3 + l1, par4 + i2);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/block/BlockLog.java
|
||||
+++ ../src_work/minecraft/net/minecraft/block/BlockLog.java
|
||||
@@ -69,14 +69,9 @@
|
||||
@@ -60,14 +60,9 @@
|
||||
{
|
||||
int j2 = par1World.getBlockId(par2 + k1, par3 + l1, par4 + i2);
|
||||
|
||||
|
@ -17,8 +17,8 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
@@ -176,4 +171,16 @@
|
||||
this.iconArray[i] = par1IconRegister.registerIcon(treeTextureTypes[i]);
|
||||
@@ -125,4 +120,16 @@
|
||||
this.tree_top[i] = par1IconRegister.registerIcon(this.func_111023_E() + "_" + woodType[i] + "_top");
|
||||
}
|
||||
}
|
||||
+
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
--- ../src_base/minecraft/net/minecraft/block/BlockMushroom.java
|
||||
+++ ../src_work/minecraft/net/minecraft/block/BlockMushroom.java
|
||||
@@ -6,6 +6,8 @@
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
@@ -3,6 +3,8 @@
|
||||
import java.util.Random;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.gen.feature.WorldGenBigMushroom;
|
||||
+
|
||||
|
@ -9,7 +9,7 @@
|
|||
|
||||
public class BlockMushroom extends BlockFlower
|
||||
{
|
||||
@@ -102,7 +104,9 @@
|
||||
@@ -96,7 +98,9 @@
|
||||
if (par3 >= 0 && par3 < 256)
|
||||
{
|
||||
int l = par1World.getBlockId(par2, par3 - 1, par4);
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
public class BlockNetherStalk extends BlockFlower
|
||||
{
|
||||
@@ -39,7 +42,8 @@
|
||||
@@ -38,7 +41,8 @@
|
||||
*/
|
||||
public boolean canBlockStay(World par1World, int par2, int par3, int par4)
|
||||
{
|
||||
|
@ -27,7 +27,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -81,25 +85,7 @@
|
||||
@@ -80,25 +84,7 @@
|
||||
*/
|
||||
public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7)
|
||||
{
|
||||
|
@ -54,8 +54,8 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -143,4 +129,23 @@
|
||||
this.iconArray[i] = par1IconRegister.registerIcon(field_94373_a[i]);
|
||||
@@ -142,4 +128,23 @@
|
||||
this.iconArray[i] = par1IconRegister.registerIcon(this.func_111023_E() + "_stage_" + i);
|
||||
}
|
||||
}
|
||||
+
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/block/BlockPistonBase.java
|
||||
+++ ../src_work/minecraft/net/minecraft/block/BlockPistonBase.java
|
||||
@@ -437,7 +437,7 @@
|
||||
@@ -439,7 +439,7 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -455,14 +455,14 @@
|
||||
@@ -457,14 +457,14 @@
|
||||
{
|
||||
if (l1 < 13)
|
||||
{
|
||||
|
@ -26,7 +26,7 @@
|
|||
{
|
||||
if (!canPushBlock(i2, par0World, i1, j1, k1, true))
|
||||
{
|
||||
@@ -505,14 +505,14 @@
|
||||
@@ -507,14 +507,14 @@
|
||||
|
||||
if (l1 < 13)
|
||||
{
|
||||
|
@ -43,7 +43,7 @@
|
|||
{
|
||||
if (!canPushBlock(i2, par1World, i1, j1, k1, true))
|
||||
{
|
||||
@@ -533,7 +533,9 @@
|
||||
@@ -535,7 +535,9 @@
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
public class BlockSapling extends BlockFlower
|
||||
{
|
||||
public static final String[] WOOD_TYPES = new String[] {"oak", "spruce", "birch", "jungle"};
|
||||
@@ -77,6 +79,8 @@
|
||||
@@ -76,6 +78,8 @@
|
||||
*/
|
||||
public void growTree(World par1World, int par2, int par3, int par4, Random par5Random)
|
||||
{
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
+import net.minecraft.entity.EntityLiving;
|
||||
+import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
@ -24,7 +24,7 @@
|
|||
{
|
||||
public BlockVine(int par1)
|
||||
{
|
||||
@@ -439,14 +444,26 @@
|
||||
@@ -440,14 +445,26 @@
|
||||
*/
|
||||
public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6)
|
||||
{
|
||||
|
@ -55,7 +55,7 @@
|
|||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isLadder(World world, int x, int y, int z, EntityLiving entity)
|
||||
+ public boolean isLadder(World world, int x, int y, int z, EntityLivingBase entity)
|
||||
+ {
|
||||
+ return true;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/Minecraft.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/Minecraft.java
|
||||
@@ -123,6 +123,14 @@
|
||||
@@ -136,6 +136,14 @@
|
||||
|
||||
import com.google.common.collect.MapDifference;
|
||||
|
||||
|
@ -13,9 +13,9 @@
|
|||
+import net.minecraftforge.event.world.WorldEvent;
|
||||
+
|
||||
@SideOnly(Side.CLIENT)
|
||||
public abstract class Minecraft implements Runnable, IPlayerUsage
|
||||
public class Minecraft implements IPlayerUsage
|
||||
{
|
||||
@@ -372,7 +380,7 @@
|
||||
@@ -414,7 +422,7 @@
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -24,16 +24,16 @@
|
|||
}
|
||||
catch (LWJGLException lwjglexception)
|
||||
{
|
||||
@@ -450,7 +458,7 @@
|
||||
}
|
||||
|
||||
@@ -493,7 +501,7 @@
|
||||
this.effectRenderer = new EffectRenderer(this.theWorld, this.renderEngine);
|
||||
FMLClientHandler.instance().finishMinecraftLoading();
|
||||
this.checkGLError("Post startup");
|
||||
- this.ingameGUI = new GuiIngame(this);
|
||||
+ this.ingameGUI = new GuiIngameForge(this);
|
||||
|
||||
if (this.serverName != null)
|
||||
{
|
||||
@@ -1238,7 +1246,7 @@
|
||||
@@ -1292,7 +1300,7 @@
|
||||
|
||||
if (this.thePlayer.canCurrentToolHarvestBlock(j, k, l))
|
||||
{
|
||||
|
@ -42,7 +42,7 @@
|
|||
this.thePlayer.swingItem();
|
||||
}
|
||||
}
|
||||
@@ -1304,7 +1312,8 @@
|
||||
@@ -1358,7 +1366,8 @@
|
||||
{
|
||||
int j1 = itemstack != null ? itemstack.stackSize : 0;
|
||||
|
||||
|
@ -52,7 +52,7 @@
|
|||
{
|
||||
flag = false;
|
||||
this.thePlayer.swingItem();
|
||||
@@ -1330,7 +1339,8 @@
|
||||
@@ -1384,7 +1393,8 @@
|
||||
{
|
||||
ItemStack itemstack1 = this.thePlayer.inventory.getCurrentItem();
|
||||
|
||||
|
@ -62,7 +62,7 @@
|
|||
{
|
||||
this.entityRenderer.itemRenderer.resetEquippedProgress2();
|
||||
}
|
||||
@@ -2010,6 +2020,11 @@
|
||||
@@ -2032,6 +2042,11 @@
|
||||
{
|
||||
this.statFileWriter.syncStats();
|
||||
|
||||
|
@ -74,7 +74,7 @@
|
|||
if (par1WorldClient == null)
|
||||
{
|
||||
NetClientHandler netclienthandler = this.getNetHandler();
|
||||
@@ -2027,6 +2042,18 @@
|
||||
@@ -2049,6 +2064,18 @@
|
||||
if (this.theIntegratedServer != null)
|
||||
{
|
||||
this.theIntegratedServer.initiateShutdown();
|
||||
|
@ -93,7 +93,7 @@
|
|||
}
|
||||
|
||||
this.theIntegratedServer = null;
|
||||
@@ -2354,103 +2381,12 @@
|
||||
@@ -2219,103 +2246,12 @@
|
||||
if (this.objectMouseOver != null)
|
||||
{
|
||||
boolean flag = this.thePlayer.capabilities.isCreativeMode;
|
||||
|
@ -201,7 +201,7 @@
|
|||
|
||||
if (flag)
|
||||
{
|
||||
@@ -2539,11 +2475,18 @@
|
||||
@@ -2397,11 +2333,18 @@
|
||||
par1PlayerUsageSnooper.addData("gl_max_texture_size", Integer.valueOf(getGLMaximumTextureSize()));
|
||||
}
|
||||
|
||||
|
@ -220,7 +220,7 @@
|
|||
for (int i = 16384; i > 0; i >>= 1)
|
||||
{
|
||||
GL11.glTexImage2D(GL11.GL_PROXY_TEXTURE_2D, 0, GL11.GL_RGBA, i, i, 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, (ByteBuffer)null);
|
||||
@@ -2551,6 +2494,7 @@
|
||||
@@ -2409,6 +2352,7 @@
|
||||
|
||||
if (j != 0)
|
||||
{
|
||||
|
|
|
@ -10,52 +10,49 @@
|
|||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.io.File;
|
||||
@@ -53,9 +57,11 @@
|
||||
@@ -61,9 +65,11 @@
|
||||
private Random rand = new Random();
|
||||
private int ticksBeforeMusic;
|
||||
|
||||
+ public static int MUSIC_INTERVAL = 12000;
|
||||
+
|
||||
public SoundManager()
|
||||
public SoundManager(ResourceManager par1ResourceManager, GameSettings par2GameSettings, File par3File)
|
||||
{
|
||||
- this.ticksBeforeMusic = this.rand.nextInt(12000);
|
||||
+ this.ticksBeforeMusic = this.rand.nextInt(MUSIC_INTERVAL);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -70,6 +76,8 @@
|
||||
{
|
||||
this.tryToSetLibraryAndCodecs();
|
||||
this.options = par2GameSettings;
|
||||
this.field_130085_i = par3File;
|
||||
this.soundPoolSounds = new SoundPool(par1ResourceManager, "sound", true);
|
||||
@@ -75,6 +81,7 @@
|
||||
SoundSystemConfig.addLibrary(LibraryLWJGLOpenAL.class);
|
||||
SoundSystemConfig.setCodec("ogg", CodecJOrbis.class);
|
||||
SoundSystemConfig.setCodec("wav", CodecWav.class);
|
||||
+ MinecraftForge.EVENT_BUS.post(new SoundSetupEvent(this));
|
||||
}
|
||||
+ ModCompatibilityClient.audioModLoad(this);
|
||||
catch (SoundSystemException soundsystemexception)
|
||||
{
|
||||
@@ -90,6 +97,7 @@
|
||||
this.stopAllSounds();
|
||||
this.closeMinecraft();
|
||||
this.tryToSetLibraryAndCodecs();
|
||||
+ MinecraftForge.EVENT_BUS.post(new SoundLoadEvent(this));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -89,6 +97,8 @@
|
||||
SoundSystemConfig.setCodec("ogg", CodecJOrbis.class);
|
||||
SoundSystemConfig.setCodec("mus", CodecMus.class);
|
||||
SoundSystemConfig.setCodec("wav", CodecWav.class);
|
||||
+ ModCompatibilityClient.audioModAddCodecs();
|
||||
+ MinecraftForge.EVENT_BUS.post(new SoundSetupEvent(this));
|
||||
sndSystem = new SoundSystem();
|
||||
this.options.soundVolume = f;
|
||||
this.options.musicVolume = f1;
|
||||
@@ -179,10 +189,12 @@
|
||||
}
|
||||
|
||||
SoundPoolEntry soundpoolentry = this.soundPoolMusic.getRandomSound();
|
||||
+ soundpoolentry = ModCompatibilityClient.audioModPickBackgroundMusic(this, soundpoolentry);
|
||||
+ soundpoolentry = SoundEvent.getResult(new PlayBackgroundMusicEvent(this, soundpoolentry));
|
||||
|
||||
if (soundpoolentry != null)
|
||||
private void func_130083_h()
|
||||
@@ -236,10 +244,11 @@
|
||||
else
|
||||
{
|
||||
- this.ticksBeforeMusic = this.rand.nextInt(12000) + 12000;
|
||||
+ this.ticksBeforeMusic = this.rand.nextInt(MUSIC_INTERVAL) + MUSIC_INTERVAL;
|
||||
sndSystem.backgroundMusic("BgMusic", soundpoolentry.soundUrl, soundpoolentry.soundName, false);
|
||||
sndSystem.setVolume("BgMusic", this.options.musicVolume);
|
||||
sndSystem.play("BgMusic");
|
||||
@@ -249,6 +261,7 @@
|
||||
SoundPoolEntry soundpoolentry = this.soundPoolMusic.getRandomSound();
|
||||
+ soundpoolentry = SoundEvent.getResult(new PlayBackgroundMusicEvent(this, soundpoolentry));
|
||||
|
||||
if (soundpoolentry != null)
|
||||
{
|
||||
- this.ticksBeforeMusic = this.rand.nextInt(12000) + 12000;
|
||||
+ this.ticksBeforeMusic = this.rand.nextInt(MUSIC_INTERVAL) + MUSIC_INTERVAL;
|
||||
this.sndSystem.backgroundMusic("BgMusic", soundpoolentry.func_110457_b(), soundpoolentry.func_110458_a(), false);
|
||||
this.sndSystem.setVolume("BgMusic", this.options.musicVolume);
|
||||
this.sndSystem.play("BgMusic");
|
||||
@@ -307,6 +316,7 @@
|
||||
if (par1Str != null)
|
||||
{
|
||||
SoundPoolEntry soundpoolentry = this.soundPoolStreaming.getRandomSoundFromSoundPool(par1Str);
|
||||
|
@ -63,43 +60,43 @@
|
|||
|
||||
if (soundpoolentry != null)
|
||||
{
|
||||
@@ -260,6 +273,7 @@
|
||||
float f3 = 16.0F;
|
||||
sndSystem.newStreamingSource(true, s1, soundpoolentry.soundUrl, soundpoolentry.soundName, false, par2, par3, par4, 2, f3 * 4.0F);
|
||||
sndSystem.setVolume(s1, 0.5F * this.options.soundVolume);
|
||||
@@ -317,6 +327,7 @@
|
||||
|
||||
this.sndSystem.newStreamingSource(true, s1, soundpoolentry.func_110457_b(), soundpoolentry.func_110458_a(), false, par2, par3, par4, 2, 64.0F);
|
||||
this.sndSystem.setVolume(s1, 0.5F * this.options.soundVolume);
|
||||
+ MinecraftForge.EVENT_BUS.post(new PlayStreamingSourceEvent(this, s1, par2, par3, par4));
|
||||
sndSystem.play(s1);
|
||||
this.sndSystem.play(s1);
|
||||
}
|
||||
}
|
||||
@@ -439,6 +453,7 @@
|
||||
if (loaded && this.options.soundVolume != 0.0F)
|
||||
@@ -485,6 +496,7 @@
|
||||
if (this.loaded && this.options.soundVolume != 0.0F)
|
||||
{
|
||||
SoundPoolEntry soundpoolentry = this.soundPoolSounds.getRandomSoundFromSoundPool(par1Str);
|
||||
+ soundpoolentry = SoundEvent.getResult(new PlaySoundEvent(this, soundpoolentry, par1Str, par2, par3, par4, par5, par6));
|
||||
|
||||
if (soundpoolentry != null && par5 > 0.0F)
|
||||
{
|
||||
@@ -460,6 +475,7 @@
|
||||
}
|
||||
@@ -506,6 +518,7 @@
|
||||
|
||||
sndSystem.setVolume(s1, par5 * this.options.soundVolume);
|
||||
this.sndSystem.setPitch(s1, par6);
|
||||
this.sndSystem.setVolume(s1, par5 * this.options.soundVolume);
|
||||
+ MinecraftForge.EVENT_BUS.post(new PlaySoundSourceEvent(this, s1, par2, par3, par4));
|
||||
sndSystem.play(s1);
|
||||
this.sndSystem.play(s1);
|
||||
}
|
||||
}
|
||||
@@ -474,6 +490,7 @@
|
||||
if (loaded && this.options.soundVolume != 0.0F)
|
||||
@@ -520,6 +533,7 @@
|
||||
if (this.loaded && this.options.soundVolume != 0.0F)
|
||||
{
|
||||
SoundPoolEntry soundpoolentry = this.soundPoolSounds.getRandomSoundFromSoundPool(par1Str);
|
||||
+ soundpoolentry = SoundEvent.getResult(new PlaySoundEffectEvent(this, soundpoolentry, par1Str, par2, par3));
|
||||
|
||||
if (soundpoolentry != null)
|
||||
if (soundpoolentry != null && par2 > 0.0F)
|
||||
{
|
||||
@@ -489,6 +506,7 @@
|
||||
@@ -535,6 +549,7 @@
|
||||
par2 *= 0.25F;
|
||||
sndSystem.setPitch(s1, par3);
|
||||
sndSystem.setVolume(s1, par2 * this.options.soundVolume);
|
||||
this.sndSystem.setPitch(s1, par3);
|
||||
this.sndSystem.setVolume(s1, par2 * this.options.soundVolume);
|
||||
+ MinecraftForge.EVENT_BUS.post(new PlaySoundEffectSourceEvent(this, s1));
|
||||
sndSystem.play(s1);
|
||||
this.sndSystem.play(s1);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/entity/EntityPlayerSP.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/entity/EntityPlayerSP.java
|
||||
@@ -46,6 +46,8 @@
|
||||
@@ -49,6 +49,8 @@
|
||||
import net.minecraft.util.MovementInput;
|
||||
import net.minecraft.util.Session;
|
||||
import net.minecraft.util.StringUtils;
|
||||
import net.minecraft.world.World;
|
||||
+import net.minecraftforge.common.MinecraftForge;
|
||||
+import net.minecraftforge.event.entity.PlaySoundAtEntityEvent;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class EntityPlayerSP extends EntityPlayer
|
||||
@@ -661,6 +663,12 @@
|
||||
public class EntityPlayerSP extends AbstractClientPlayer
|
||||
@@ -685,6 +687,12 @@
|
||||
|
||||
public void playSound(String par1Str, float par2, float par3)
|
||||
{
|
||||
|
@ -21,4 +21,4 @@
|
|||
+ par1Str = event.name;
|
||||
this.worldObj.playSound(this.posX, this.posY - (double)this.yOffset, this.posZ, par1Str, par2, par3, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/gui/GuiControls.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/gui/GuiControls.java
|
||||
@@ -6,6 +6,8 @@
|
||||
import net.minecraft.client.settings.GameSettings;
|
||||
import net.minecraft.client.settings.KeyBinding;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.StringTranslate;
|
||||
+
|
||||
+import net.minecraftforge.client.GuiControlsScrollPanel;
|
||||
|
||||
|
@ -18,12 +18,10 @@
|
|||
|
||||
public GuiControls(GuiScreen par1GuiScreen, GameSettings par2GameSettings)
|
||||
{
|
||||
@@ -43,15 +47,10 @@
|
||||
@@ -43,14 +47,9 @@
|
||||
*/
|
||||
public void initGui()
|
||||
{
|
||||
+ scrollPane = new GuiControlsScrollPanel(this, options, mc);
|
||||
StringTranslate stringtranslate = StringTranslate.getInstance();
|
||||
- int i = this.getLeftBorder();
|
||||
-
|
||||
- for (int j = 0; j < this.options.keyBindings.length; ++j)
|
||||
|
@ -31,13 +29,14 @@
|
|||
- this.buttonList.add(new GuiSmallButton(j, i + j % 2 * 160, this.height / 6 + 24 * (j >> 1), 70, 20, this.options.getOptionDisplayString(j)));
|
||||
- }
|
||||
-
|
||||
- this.buttonList.add(new GuiButton(200, this.width / 2 - 100, this.height / 6 + 168, stringtranslate.translateKey("gui.done")));
|
||||
+ this.buttonList.add(new GuiButton(200, this.width / 2 - 100, this.height - 28, stringtranslate.translateKey("gui.done")));
|
||||
+ scrollPane.registerScrollButtons(buttonList, 7, 8);
|
||||
this.screenTitle = stringtranslate.translateKey("controls.title");
|
||||
- this.buttonList.add(new GuiButton(200, this.width / 2 - 100, this.height / 6 + 168, I18n.func_135053_a("gui.done")));
|
||||
+ scrollPane = new GuiControlsScrollPanel(this, options, mc);
|
||||
+ this.buttonList.add(new GuiButton(200, this.width / 2 - 100, this.height - 28, I18n.func_135053_a("gui.done")));
|
||||
+ scrollPane.func_110509_d(7, 8);
|
||||
this.screenTitle = I18n.func_135053_a("controls.title");
|
||||
}
|
||||
|
||||
@@ -59,20 +58,10 @@
|
||||
@@ -58,20 +57,10 @@
|
||||
* Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e).
|
||||
*/
|
||||
protected void actionPerformed(GuiButton par1GuiButton)
|
||||
|
@ -59,7 +58,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -81,17 +70,7 @@
|
||||
@@ -80,17 +69,7 @@
|
||||
*/
|
||||
protected void mouseClicked(int par1, int par2, int par3)
|
||||
{
|
||||
|
@ -78,7 +77,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -99,14 +78,7 @@
|
||||
@@ -98,14 +77,7 @@
|
||||
*/
|
||||
protected void keyTyped(char par1, int par2)
|
||||
{
|
||||
|
@ -94,7 +93,7 @@
|
|||
{
|
||||
super.keyTyped(par1, par2);
|
||||
}
|
||||
@@ -118,6 +90,7 @@
|
||||
@@ -117,6 +89,7 @@
|
||||
public void drawScreen(int par1, int par2, float par3)
|
||||
{
|
||||
this.drawDefaultBackground();
|
||||
|
@ -102,7 +101,7 @@
|
|||
this.drawCenteredString(this.fontRenderer, this.screenTitle, this.width / 2, 20, 16777215);
|
||||
int k = this.getLeftBorder();
|
||||
int l = 0;
|
||||
@@ -158,6 +131,10 @@
|
||||
@@ -157,6 +130,10 @@
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/gui/GuiCreateWorld.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/gui/GuiCreateWorld.java
|
||||
@@ -377,7 +377,7 @@
|
||||
@@ -376,7 +376,7 @@
|
||||
}
|
||||
else if (par1GuiButton.id == 8)
|
||||
{
|
||||
|
@ -9,13 +9,12 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
@@ -395,7 +395,8 @@
|
||||
@@ -394,7 +394,7 @@
|
||||
this.buttonBonusItems.drawButton = this.moreOptions;
|
||||
this.buttonWorldType.drawButton = this.moreOptions;
|
||||
this.buttonAllowCommands.drawButton = this.moreOptions;
|
||||
- this.buttonCustomize.drawButton = this.moreOptions && WorldType.worldTypes[this.worldTypeId] == WorldType.FLAT;
|
||||
+ this.buttonCustomize.drawButton = this.moreOptions && (WorldType.worldTypes[this.worldTypeId].isCustomizable());
|
||||
+
|
||||
StringTranslate stringtranslate;
|
||||
|
||||
if (this.moreOptions)
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/gui/GuiIngame.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/gui/GuiIngame.java
|
||||
@@ -34,6 +34,8 @@
|
||||
@@ -40,6 +40,8 @@
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL12;
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
|||
@SideOnly(Side.CLIENT)
|
||||
public class GuiIngame extends Gui
|
||||
{
|
||||
@@ -90,9 +92,16 @@
|
||||
@@ -99,9 +101,16 @@
|
||||
|
||||
ItemStack itemstack = this.mc.thePlayer.inventory.armorItemInSlot(3);
|
||||
|
||||
|
@ -29,30 +29,29 @@
|
|||
}
|
||||
|
||||
if (!this.mc.thePlayer.isPotionActive(Potion.confusion))
|
||||
@@ -174,7 +183,7 @@
|
||||
|
||||
k3 = l - 39;
|
||||
l2 = k3 - 10;
|
||||
- k2 = this.mc.thePlayer.getTotalArmorValue();
|
||||
+ k2 = ForgeHooks.getTotalArmorValue(mc.thePlayer);
|
||||
i3 = -1;
|
||||
|
||||
if (this.mc.thePlayer.isPotionActive(Potion.regeneration))
|
||||
@@ -435,7 +444,16 @@
|
||||
GL11.glPushMatrix();
|
||||
@@ -275,6 +284,16 @@
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
||||
- fontrenderer.drawStringWithShadow(s1, i1, j1, 16777215 + (j5 << 24));
|
||||
fontrenderer.drawStringWithShadow(s1, k1, i2, 16777215 + (j2 << 24));
|
||||
+ FontRenderer font = highlightingItemStack.getItem().getFontRenderer(highlightingItemStack);
|
||||
+ if (font != null)
|
||||
+ {
|
||||
+ i1 = (k - font.getStringWidth(s1)) / 2;
|
||||
+ font.drawStringWithShadow(s1, i1, j1, 16777215 + (j5 << 24));
|
||||
+ k1 = (k - font.getStringWidth(s1)) / 2;
|
||||
+ font.drawStringWithShadow(s1, k1, i2, 16777215 + (j2 << 24));
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ fontrenderer.drawStringWithShadow(s1, i1, j1, 16777215 + (j5 << 24));
|
||||
+ fontrenderer.drawStringWithShadow(s1, k1, i2, 16777215 + (j2 << 24));
|
||||
+ }
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
@@ -563,7 +582,7 @@
|
||||
int k2 = Math.max(10 - (j2 - 2), 3);
|
||||
int l2 = i2 - (j2 - 1) * k2 - 10;
|
||||
float f2 = f1;
|
||||
- int i3 = this.mc.thePlayer.getTotalArmorValue();
|
||||
+ int i3 = ForgeHooks.getTotalArmorValue(mc.thePlayer);
|
||||
int j3 = -1;
|
||||
|
||||
if (this.mc.thePlayer.isPotionActive(Potion.regeneration))
|
||||
|
|
|
@ -1,19 +1,10 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/gui/GuiSlot.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/gui/GuiSlot.java
|
||||
@@ -68,6 +68,8 @@
|
||||
private boolean showSelectionBox = true;
|
||||
private boolean field_77243_s;
|
||||
private int field_77242_t;
|
||||
+
|
||||
+ public String BACKGROUND_IMAGE = "/gui/background.png";
|
||||
|
||||
public GuiSlot(Minecraft par1Minecraft, int par2, int par3, int par4, int par5, int par6)
|
||||
{
|
||||
@@ -332,16 +334,7 @@
|
||||
@@ -325,16 +325,7 @@
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
GL11.glDisable(GL11.GL_FOG);
|
||||
Tessellator tessellator = Tessellator.instance;
|
||||
- this.mc.renderEngine.bindTexture("/gui/background.png");
|
||||
- this.mc.func_110434_K().func_110577_a(Gui.field_110325_k);
|
||||
- GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
- float f1 = 32.0F;
|
||||
- tessellator.startDrawingQuads();
|
||||
|
@ -27,27 +18,14 @@
|
|||
j1 = this.width / 2 - 92 - 16;
|
||||
k1 = this.top + 4 - (int)this.amountScrolled;
|
||||
|
||||
@@ -470,10 +463,10 @@
|
||||
/**
|
||||
* Overlays the background to hide scrolled items
|
||||
*/
|
||||
- private void overlayBackground(int par1, int par2, int par3, int par4)
|
||||
+ protected void overlayBackground(int par1, int par2, int par3, int par4)
|
||||
{
|
||||
Tessellator tessellator = Tessellator.instance;
|
||||
- this.mc.renderEngine.bindTexture("/gui/background.png");
|
||||
+ this.mc.renderEngine.bindTexture(BACKGROUND_IMAGE);
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
float f = 32.0F;
|
||||
tessellator.startDrawingQuads();
|
||||
@@ -485,4 +478,18 @@
|
||||
@@ -478,4 +469,18 @@
|
||||
tessellator.addVertexWithUV(0.0D, (double)par1, 0.0D, 0.0D, (double)((float)par1 / f));
|
||||
tessellator.draw();
|
||||
}
|
||||
+
|
||||
+ protected void drawContainerBackground(Tessellator tess)
|
||||
+ {
|
||||
+ this.mc.renderEngine.bindTexture(BACKGROUND_IMAGE);
|
||||
+ this.mc.func_110434_K().func_110577_a(Gui.field_110325_k);
|
||||
+ GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
+ float height = 32.0F;
|
||||
+ tess.startDrawingQuads();
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
import java.util.Random;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.Minecraft;
|
||||
@@ -20,6 +23,8 @@
|
||||
@@ -22,6 +25,8 @@
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL12;
|
||||
|
||||
|
@ -19,8 +19,8 @@
|
|||
@SideOnly(Side.CLIENT)
|
||||
public class GuiAchievements extends GuiScreen
|
||||
{
|
||||
@@ -57,6 +62,10 @@
|
||||
private int isMouseButtonDown = 0;
|
||||
@@ -60,6 +65,10 @@
|
||||
private int isMouseButtonDown;
|
||||
private StatFileWriter statFileWriter;
|
||||
|
||||
+ private int currentPage = -1;
|
||||
|
@ -30,7 +30,7 @@
|
|||
public GuiAchievements(StatFileWriter par1StatFileWriter)
|
||||
{
|
||||
this.statFileWriter = par1StatFileWriter;
|
||||
@@ -64,6 +73,14 @@
|
||||
@@ -67,6 +76,14 @@
|
||||
short short2 = 141;
|
||||
this.field_74117_m = this.guiMapX = this.field_74124_q = (double)(AchievementList.openInventory.displayColumn * 24 - short1 / 2 - 12);
|
||||
this.field_74115_n = this.guiMapY = this.field_74123_r = (double)(AchievementList.openInventory.displayRow * 24 - short2 / 2);
|
||||
|
@ -45,15 +45,15 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -73,6 +90,7 @@
|
||||
@@ -76,6 +93,7 @@
|
||||
{
|
||||
this.buttonList.clear();
|
||||
this.buttonList.add(new GuiSmallButton(1, this.width / 2 + 24, this.height / 2 + 74, 80, 20, StatCollector.translateToLocal("gui.done")));
|
||||
this.buttonList.add(new GuiSmallButton(1, this.width / 2 + 24, this.height / 2 + 74, 80, 20, I18n.func_135053_a("gui.done")));
|
||||
+ this.buttonList.add(button = new GuiSmallButton(2, (width - achievementsPaneWidth) / 2 + 24, height / 2 + 74, 125, 20, AchievementPage.getTitle(currentPage)));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -84,6 +102,16 @@
|
||||
@@ -87,6 +105,16 @@
|
||||
{
|
||||
this.mc.displayGuiScreen((GuiScreen)null);
|
||||
this.mc.setIngameFocus();
|
||||
|
@ -70,7 +70,7 @@
|
|||
}
|
||||
|
||||
super.actionPerformed(par1GuiButton);
|
||||
@@ -306,11 +334,12 @@
|
||||
@@ -314,11 +342,12 @@
|
||||
int i4;
|
||||
int j4;
|
||||
|
||||
|
@ -88,7 +88,7 @@
|
|||
{
|
||||
k3 = achievement.displayColumn * 24 - k + 11 + k1;
|
||||
j3 = achievement.displayRow * 24 - l + 11 + l1;
|
||||
@@ -344,9 +373,9 @@
|
||||
@@ -352,9 +381,9 @@
|
||||
int l4;
|
||||
int i5;
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.client.renderer.OpenGlHelper;
|
||||
import net.minecraft.client.renderer.RenderHelper;
|
||||
@@ -139,7 +140,11 @@
|
||||
@@ -143,7 +144,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -20,21 +20,21 @@
|
|||
InventoryPlayer inventoryplayer = this.mc.thePlayer.inventory;
|
||||
ItemStack itemstack = this.draggedStack == null ? inventoryplayer.getItemStack() : this.draggedStack;
|
||||
|
||||
@@ -203,8 +208,11 @@
|
||||
@@ -207,8 +212,11 @@
|
||||
GL11.glTranslatef(0.0F, 0.0F, 32.0F);
|
||||
this.zLevel = 200.0F;
|
||||
itemRenderer.zLevel = 200.0F;
|
||||
- itemRenderer.renderItemAndEffectIntoGUI(this.fontRenderer, this.mc.renderEngine, par1ItemStack, par2, par3);
|
||||
- itemRenderer.renderItemOverlayIntoGUI(this.fontRenderer, this.mc.renderEngine, par1ItemStack, par2, par3 - (this.draggedStack == null ? 0 : 8), par4Str);
|
||||
- itemRenderer.func_110797_b(this.fontRenderer, this.mc.func_110434_K(), par1ItemStack, par2, par3);
|
||||
- itemRenderer.func_110793_a(this.fontRenderer, this.mc.func_110434_K(), par1ItemStack, par2, par3 - (this.draggedStack == null ? 0 : 8), par4Str);
|
||||
+ FontRenderer font = null;
|
||||
+ if (par1ItemStack != null) font = par1ItemStack.getItem().getFontRenderer(par1ItemStack);
|
||||
+ if (font == null) font = fontRenderer;
|
||||
+ itemRenderer.renderItemAndEffectIntoGUI(font, this.mc.renderEngine, par1ItemStack, par2, par3);
|
||||
+ itemRenderer.renderItemOverlayIntoGUI(font, this.mc.renderEngine, par1ItemStack, par2, par3 - (this.draggedStack == null ? 0 : 8), par4Str);
|
||||
+ itemRenderer.func_110797_b(font, this.mc.func_110434_K(), par1ItemStack, par2, par3);
|
||||
+ itemRenderer.func_110793_a(font, this.mc.func_110434_K(), par1ItemStack, par2, par3 - (this.draggedStack == null ? 0 : 8), par4Str);
|
||||
this.zLevel = 0.0F;
|
||||
itemRenderer.zLevel = 0.0F;
|
||||
}
|
||||
@@ -225,7 +233,8 @@
|
||||
@@ -229,7 +237,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -238,6 +247,11 @@
|
||||
@@ -242,6 +251,11 @@
|
||||
}
|
||||
|
||||
protected void func_102021_a(List par1List, int par2, int par3)
|
||||
|
@ -56,7 +56,7 @@
|
|||
{
|
||||
if (!par1List.isEmpty())
|
||||
{
|
||||
@@ -251,7 +265,7 @@
|
||||
@@ -255,7 +269,7 @@
|
||||
while (iterator.hasNext())
|
||||
{
|
||||
String s = (String)iterator.next();
|
||||
|
@ -65,7 +65,7 @@
|
|||
|
||||
if (l > k)
|
||||
{
|
||||
@@ -296,7 +310,7 @@
|
||||
@@ -300,7 +314,7 @@
|
||||
for (int k2 = 0; k2 < par1List.size(); ++k2)
|
||||
{
|
||||
String s1 = (String)par1List.get(k2);
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java
|
||||
@@ -56,6 +56,8 @@
|
||||
private Slot field_74235_v = null;
|
||||
private boolean field_74234_w = false;
|
||||
@@ -61,6 +61,8 @@
|
||||
private Slot field_74235_v;
|
||||
private boolean field_74234_w;
|
||||
private CreativeCrafting field_82324_x;
|
||||
+ private static int tabPage = 0;
|
||||
+ private int maxPages = 0;
|
||||
|
||||
public GuiContainerCreative(EntityPlayer par1EntityPlayer)
|
||||
{
|
||||
@@ -196,7 +198,7 @@
|
||||
@@ -201,7 +203,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
|||
{
|
||||
if (par3 == 0)
|
||||
{
|
||||
@@ -274,6 +276,13 @@
|
||||
@@ -279,6 +281,13 @@
|
||||
this.setCurrentCreativeTab(CreativeTabs.creativeTabArray[i]);
|
||||
this.field_82324_x = new CreativeCrafting(this.mc);
|
||||
this.mc.thePlayer.inventoryContainer.addCraftingToCrafters(this.field_82324_x);
|
||||
|
@ -32,16 +32,16 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@@ -408,7 +417,7 @@
|
||||
@@ -413,7 +422,7 @@
|
||||
{
|
||||
CreativeTabs creativetabs = CreativeTabs.creativeTabArray[selectedTabIndex];
|
||||
|
||||
- if (creativetabs.drawInForegroundOfTab())
|
||||
+ if (creativetabs != null && creativetabs.drawInForegroundOfTab())
|
||||
{
|
||||
this.fontRenderer.drawString(creativetabs.getTranslatedTabLabel(), 8, 6, 4210752);
|
||||
this.fontRenderer.drawString(I18n.func_135053_a(creativetabs.getTranslatedTabLabel()), 8, 6, 4210752);
|
||||
}
|
||||
@@ -457,7 +466,7 @@
|
||||
@@ -462,7 +471,7 @@
|
||||
{
|
||||
CreativeTabs creativetabs = acreativetabs[k1];
|
||||
|
||||
|
@ -50,7 +50,7 @@
|
|||
{
|
||||
this.setCurrentCreativeTab(creativetabs);
|
||||
return;
|
||||
@@ -473,11 +482,17 @@
|
||||
@@ -478,11 +487,17 @@
|
||||
*/
|
||||
private boolean needsScrollBars()
|
||||
{
|
||||
|
@ -68,7 +68,7 @@
|
|||
int i = selectedTabIndex;
|
||||
selectedTabIndex = par1CreativeTabs.getTabIndex();
|
||||
ContainerCreative containercreative = (ContainerCreative)this.inventorySlots;
|
||||
@@ -648,21 +663,42 @@
|
||||
@@ -653,21 +668,42 @@
|
||||
|
||||
super.drawScreen(par1, par2, par3);
|
||||
CreativeTabs[] acreativetabs = CreativeTabs.creativeTabArray;
|
||||
|
@ -86,7 +86,7 @@
|
|||
|
||||
- if (this.renderCreativeInventoryHoveringText(creativetabs, par1, par2))
|
||||
- {
|
||||
+ if (creativetabs != null && renderCreativeInventoryHoveringText(creativetabs, par1, par2))
|
||||
+ if (creativetabs != null && this.renderCreativeInventoryHoveringText(creativetabs, par1, par2))
|
||||
+ {
|
||||
+ rendered = true;
|
||||
break;
|
||||
|
@ -100,7 +100,7 @@
|
|||
+
|
||||
if (this.field_74235_v != null && selectedTabIndex == CreativeTabs.tabInventory.getTabIndex() && this.isPointInRegion(this.field_74235_v.xDisplayPosition, this.field_74235_v.yDisplayPosition, 16, 16, par1, par2))
|
||||
{
|
||||
this.drawCreativeTabHoveringText(StringTranslate.getInstance().translateKey("inventory.binSlot"), par1, par2);
|
||||
this.drawCreativeTabHoveringText(I18n.func_135053_a("inventory.binSlot"), par1, par2);
|
||||
+ }
|
||||
+
|
||||
+ if (maxPages != 0)
|
||||
|
@ -116,7 +116,7 @@
|
|||
}
|
||||
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
@@ -681,14 +717,32 @@
|
||||
@@ -741,14 +777,32 @@
|
||||
int k = acreativetabs.length;
|
||||
int l;
|
||||
|
||||
|
@ -128,7 +128,7 @@
|
|||
+ for (l = start; l < k; ++l)
|
||||
{
|
||||
CreativeTabs creativetabs1 = acreativetabs[l];
|
||||
this.mc.renderEngine.bindTexture("/gui/allitems.png");
|
||||
this.mc.func_110434_K().func_110577_a(field_110424_t);
|
||||
|
||||
- if (creativetabs1.getTabIndex() != selectedTabIndex)
|
||||
+ if (creativetabs1 != null && creativetabs1.getTabIndex() != selectedTabIndex)
|
||||
|
@ -141,17 +141,17 @@
|
|||
+ {
|
||||
+ if (creativetabs != CreativeTabs.tabAllSearch)
|
||||
+ {
|
||||
+ mc.renderEngine.bindTexture("/gui/allitems.png");
|
||||
+ this.mc.func_110434_K().func_110577_a(field_110424_t);
|
||||
+ renderCreativeTab(CreativeTabs.tabAllSearch);
|
||||
+ }
|
||||
+ if (creativetabs != CreativeTabs.tabInventory)
|
||||
+ {
|
||||
+ mc.renderEngine.bindTexture("/gui/allitems.png");
|
||||
+ this.mc.func_110434_K().func_110577_a(field_110424_t);
|
||||
+ renderCreativeTab(CreativeTabs.tabInventory);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -706,6 +760,14 @@
|
||||
@@ -766,6 +820,14 @@
|
||||
this.drawTexturedModalRect(i1, k + (int)((float)(l - k - 17) * this.currentScroll), 232 + (this.needsScrollBars() ? 0 : 12), 0, 12, 15);
|
||||
}
|
||||
|
||||
|
@ -166,7 +166,7 @@
|
|||
this.renderCreativeTab(creativetabs);
|
||||
|
||||
if (creativetabs == CreativeTabs.tabInventory)
|
||||
@@ -716,6 +778,15 @@
|
||||
@@ -776,6 +838,15 @@
|
||||
|
||||
protected boolean func_74232_a(CreativeTabs par1CreativeTabs, int par2, int par3)
|
||||
{
|
||||
|
@ -182,7 +182,7 @@
|
|||
int k = par1CreativeTabs.getTabColumn();
|
||||
int l = 28 * k;
|
||||
byte b0 = 0;
|
||||
@@ -823,6 +894,7 @@
|
||||
@@ -883,6 +954,7 @@
|
||||
}
|
||||
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
|
@ -190,16 +190,16 @@
|
|||
this.drawTexturedModalRect(l, i1, j, k, 28, b0);
|
||||
this.zLevel = 100.0F;
|
||||
itemRenderer.zLevel = 100.0F;
|
||||
@@ -830,7 +902,7 @@
|
||||
@@ -890,7 +962,7 @@
|
||||
i1 += 8 + (flag1 ? 1 : -1);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
|
||||
- ItemStack itemstack = new ItemStack(par1CreativeTabs.getTabIconItem());
|
||||
+ ItemStack itemstack = par1CreativeTabs.getIconItemStack();
|
||||
itemRenderer.renderItemAndEffectIntoGUI(this.fontRenderer, this.mc.renderEngine, itemstack, l, i1);
|
||||
itemRenderer.renderItemOverlayIntoGUI(this.fontRenderer, this.mc.renderEngine, itemstack, l, i1);
|
||||
itemRenderer.func_110797_b(this.fontRenderer, this.mc.func_110434_K(), itemstack, l, i1);
|
||||
itemRenderer.func_110794_c(this.fontRenderer, this.mc.func_110434_K(), itemstack, l, i1);
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
@@ -852,6 +924,15 @@
|
||||
@@ -912,6 +984,15 @@
|
||||
{
|
||||
this.mc.displayGuiScreen(new GuiStats(this, this.mc.statFileWriter));
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
+++ ../src_work/minecraft/net/minecraft/client/model/ModelBase.java
|
||||
@@ -10,7 +10,6 @@
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
|
||||
-@SideOnly(Side.CLIENT)
|
||||
public abstract class ModelBase
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
public class ModelRenderer
|
||||
{
|
||||
/** The size of the texture file's width in pixels. */
|
||||
@@ -121,7 +120,8 @@
|
||||
@@ -117,7 +116,8 @@
|
||||
this.rotationPointY = par2;
|
||||
this.rotationPointZ = par3;
|
||||
}
|
||||
|
@ -18,7 +18,7 @@
|
|||
public void render(float par1)
|
||||
{
|
||||
if (!this.isHidden)
|
||||
@@ -204,6 +204,7 @@
|
||||
@@ -200,6 +200,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
|||
public void renderWithRotation(float par1)
|
||||
{
|
||||
if (!this.isHidden)
|
||||
@@ -242,6 +243,7 @@
|
||||
@@ -238,6 +239,7 @@
|
||||
/**
|
||||
* Allows the changing of Angles after a box has been rendered
|
||||
*/
|
||||
|
@ -34,7 +34,7 @@
|
|||
public void postRender(float par1)
|
||||
{
|
||||
if (!this.isHidden)
|
||||
@@ -286,6 +288,7 @@
|
||||
@@ -282,6 +284,7 @@
|
||||
/**
|
||||
* Compiles a GL display list for this model
|
||||
*/
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/multiplayer/NetClientHandler.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/multiplayer/NetClientHandler.java
|
||||
@@ -176,6 +176,11 @@
|
||||
@@ -186,6 +186,11 @@
|
||||
import net.minecraft.world.storage.MapStorage;
|
||||
import org.lwjgl.input.Keyboard;
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
|||
@SideOnly(Side.CLIENT)
|
||||
public class NetClientHandler extends NetHandler
|
||||
{
|
||||
@@ -762,7 +767,7 @@
|
||||
@@ -778,7 +783,7 @@
|
||||
|
||||
public void handleKickDisconnect(Packet255KickDisconnect par1Packet255KickDisconnect)
|
||||
{
|
||||
|
@ -21,20 +21,20 @@
|
|||
this.disconnected = true;
|
||||
this.mc.loadWorld((WorldClient)null);
|
||||
|
||||
@@ -844,7 +849,11 @@
|
||||
@@ -860,7 +865,11 @@
|
||||
public void handleChat(Packet3Chat par1Packet3Chat)
|
||||
{
|
||||
par1Packet3Chat = FMLNetworkHandler.handleChatMessage(this, par1Packet3Chat);
|
||||
- this.mc.ingameGUI.getChatGUI().printChatMessage(par1Packet3Chat.message);
|
||||
- this.mc.ingameGUI.getChatGUI().printChatMessage(ChatMessageComponent.func_111078_c(par1Packet3Chat.message).func_111068_a(true));
|
||||
+ ClientChatReceivedEvent event = new ClientChatReceivedEvent(par1Packet3Chat.message);
|
||||
+ if (!MinecraftForge.EVENT_BUS.post(event) && event.message != null)
|
||||
+ {
|
||||
+ this.mc.ingameGUI.getChatGUI().printChatMessage(par1Packet3Chat.message);
|
||||
+ this.mc.ingameGUI.getChatGUI().printChatMessage(ChatMessageComponent.func_111078_c(event.message).func_111068_a(true));
|
||||
+ }
|
||||
}
|
||||
|
||||
public void handleAnimation(Packet18Animation par1Packet18Animation)
|
||||
@@ -1278,6 +1287,10 @@
|
||||
@@ -1329,6 +1338,10 @@
|
||||
{
|
||||
tileentity.readFromNBT(par1Packet132TileEntityData.customParam1);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/multiplayer/PlayerControllerMP.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/multiplayer/PlayerControllerMP.java
|
||||
@@ -20,6 +20,10 @@
|
||||
@@ -22,6 +22,10 @@
|
||||
import net.minecraft.world.EnumGameType;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
|||
@SideOnly(Side.CLIENT)
|
||||
public class PlayerControllerMP
|
||||
{
|
||||
@@ -124,6 +128,12 @@
|
||||
@@ -125,6 +129,12 @@
|
||||
*/
|
||||
public boolean onPlayerDestroyBlock(int par1, int par2, int par3, int par4)
|
||||
{
|
||||
|
@ -24,7 +24,7 @@
|
|||
if (this.currentGameType.isAdventure() && !this.mc.thePlayer.canCurrentToolHarvestBlock(par1, par2, par3))
|
||||
{
|
||||
return false;
|
||||
@@ -141,7 +151,7 @@
|
||||
@@ -146,7 +156,7 @@
|
||||
{
|
||||
worldclient.playAuxSFX(2001, par1, par2, par3, block.blockID + (worldclient.getBlockMetadata(par1, par2, par3) << 12));
|
||||
int i1 = worldclient.getBlockMetadata(par1, par2, par3);
|
||||
|
@ -33,7 +33,7 @@
|
|||
|
||||
if (flag)
|
||||
{
|
||||
@@ -342,6 +352,12 @@
|
||||
@@ -347,6 +357,12 @@
|
||||
float f2 = (float)par8Vec3.zCoord - (float)par6;
|
||||
boolean flag = false;
|
||||
int i1;
|
||||
|
@ -46,7 +46,7 @@
|
|||
|
||||
if (!par1EntityPlayer.isSneaking() || par1EntityPlayer.getHeldItem() == null)
|
||||
{
|
||||
@@ -384,7 +400,15 @@
|
||||
@@ -389,7 +405,15 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -63,7 +63,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -406,9 +430,10 @@
|
||||
@@ -411,9 +435,10 @@
|
||||
{
|
||||
par1EntityPlayer.inventory.mainInventory[par1EntityPlayer.inventory.currentItem] = itemstack1;
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -291,6 +297,12 @@
|
||||
@@ -296,6 +302,12 @@
|
||||
*/
|
||||
protected void updateWeather()
|
||||
{
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/particle/EffectRenderer.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/particle/EffectRenderer.java
|
||||
@@ -11,6 +11,7 @@
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
@@ -13,6 +13,7 @@
|
||||
import net.minecraft.client.resources.ResourceLocation;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.MathHelper;
|
||||
+import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
@@ -59,9 +60,13 @@
|
||||
@@ -63,9 +64,13 @@
|
||||
for (int j = 0; j < this.fxLayers[i].size(); ++j)
|
||||
{
|
||||
EntityFX entityfx = (EntityFX)this.fxLayers[i].get(j);
|
||||
|
@ -25,7 +25,7 @@
|
|||
{
|
||||
this.fxLayers[i].remove(j--);
|
||||
}
|
||||
@@ -111,6 +116,7 @@
|
||||
@@ -115,6 +120,7 @@
|
||||
for (int j = 0; j < this.fxLayers[i].size(); ++j)
|
||||
{
|
||||
EntityFX entityfx = (EntityFX)this.fxLayers[i].get(j);
|
||||
|
@ -33,15 +33,15 @@
|
|||
tessellator.setBrightness(entityfx.getBrightnessForRender(par2));
|
||||
entityfx.renderParticle(tessellator, par2, f1, f5, f2, f3, f4);
|
||||
}
|
||||
@@ -139,6 +145,7 @@
|
||||
for (int i = 0; i < this.fxLayers[b0].size(); ++i)
|
||||
@@ -145,6 +151,7 @@
|
||||
for (int i = 0; i < list.size(); ++i)
|
||||
{
|
||||
EntityFX entityfx = (EntityFX)this.fxLayers[b0].get(i);
|
||||
EntityFX entityfx = (EntityFX)list.get(i);
|
||||
+ if (entityfx == null) continue;
|
||||
tessellator.setBrightness(entityfx.getBrightnessForRender(par2));
|
||||
entityfx.renderParticle(tessellator, par2, f1, f5, f2, f3, f4);
|
||||
entityfx.renderParticle(tessellator, par2, f2, f6, f3, f4, f5);
|
||||
}
|
||||
@@ -157,9 +164,9 @@
|
||||
@@ -163,9 +170,9 @@
|
||||
|
||||
public void addBlockDestroyEffects(int par1, int par2, int par3, int par4, int par5)
|
||||
{
|
||||
|
@ -54,7 +54,7 @@
|
|||
byte b0 = 4;
|
||||
|
||||
for (int j1 = 0; j1 < b0; ++j1)
|
||||
@@ -232,4 +239,13 @@
|
||||
@@ -237,4 +244,13 @@
|
||||
{
|
||||
return "" + (this.fxLayers[0].size() + this.fxLayers[1].size() + this.fxLayers[2].size());
|
||||
}
|
||||
|
|
|
@ -1,21 +1,26 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/particle/EntityDiggingFX.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/particle/EntityDiggingFX.java
|
||||
@@ -11,20 +11,22 @@
|
||||
@@ -10,20 +10,27 @@
|
||||
public class EntityDiggingFX extends EntityFX
|
||||
{
|
||||
private Block blockInstance;
|
||||
+ private int side;
|
||||
|
||||
public EntityDiggingFX(World par1World, double par2, double par4, double par6, double par8, double par10, double par12, Block par14Block, int par15, int par16, RenderEngine par17RenderEngine)
|
||||
public EntityDiggingFX(World par1World, double par2, double par4, double par6, double par8, double par10, double par12, Block par14Block, int par15)
|
||||
{
|
||||
+ this(par1World, par2, par4, par6, par8, par10, par12, par14Block, par15, par1World.rand.nextInt(6));
|
||||
+ }
|
||||
+
|
||||
+ public EntityDiggingFX(World par1World, double par2, double par4, double par6, double par8, double par10, double par12, Block par14Block, int par15, int side)
|
||||
+ {
|
||||
super(par1World, par2, par4, par6, par8, par10, par12);
|
||||
this.blockInstance = par14Block;
|
||||
- this.setParticleIcon(par17RenderEngine, par14Block.getIcon(0, par16));
|
||||
+ this.setParticleIcon(par17RenderEngine, par14Block.getIcon(par15, par16));
|
||||
- this.func_110125_a(par14Block.getIcon(0, par15));
|
||||
+ this.func_110125_a(par14Block.getIcon(side, par15));
|
||||
this.particleGravity = par14Block.blockParticleGravity;
|
||||
this.particleRed = this.particleGreen = this.particleBlue = 0.6F;
|
||||
this.particleScale /= 2.0F;
|
||||
+ this.side = par15;
|
||||
+ this.side = side;
|
||||
}
|
||||
|
||||
public EntityDiggingFX func_70596_a(int par1, int par2, int par3)
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/render/entity/RendererLivingEntity.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/render/entity/RendererLivingEntity.java
|
||||
@@ -18,6 +18,9 @@
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.projectile.EntityArrow;
|
||||
import net.minecraft.util.MathHelper;
|
||||
+import net.minecraftforge.client.event.RenderLivingEvent;
|
||||
+import net.minecraftforge.common.MinecraftForge;
|
||||
+
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL12;
|
||||
|
||||
@@ -29,6 +32,9 @@
|
||||
|
||||
/** The model to be used during the render passes. */
|
||||
protected ModelBase renderPassModel;
|
||||
+
|
||||
+ public static float NAME_TAG_RANGE = 64.0f;
|
||||
+ public static float NAME_TAG_RANGE_SNEAK = 32.0f;
|
||||
|
||||
public RendererLivingEntity(ModelBase par1ModelBase, float par2)
|
||||
{
|
||||
@@ -440,12 +446,13 @@
|
||||
|
||||
protected void func_130008_a(EntityLivingBase par1EntityLivingBase, double par2, double par4, double par6)
|
||||
{
|
||||
+ if (MinecraftForge.EVENT_BUS.post(new RenderLivingEvent.Specials.Pre(par1EntityLivingBase, this))) return;
|
||||
if (this.func_110813_b(par1EntityLivingBase))
|
||||
{
|
||||
float f = 1.6F;
|
||||
float f1 = 0.016666668F * f;
|
||||
double d3 = par1EntityLivingBase.getDistanceSqToEntity(this.renderManager.livingPlayer);
|
||||
- float f2 = par1EntityLivingBase.isSneaking() ? 32.0F : 64.0F;
|
||||
+ float f2 = par1EntityLivingBase.isSneaking() ? NAME_TAG_RANGE_SNEAK : NAME_TAG_RANGE;
|
||||
|
||||
if (d3 < (double)(f2 * f2))
|
||||
{
|
||||
@@ -489,6 +496,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
+ MinecraftForge.EVENT_BUS.post(new RenderLivingEvent.Specials.Post(par1EntityLivingBase, this));
|
||||
}
|
||||
|
||||
protected boolean func_110813_b(EntityLivingBase par1EntityLivingBase)
|
|
@ -1,8 +1,8 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/renderer/EntityRenderer.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/renderer/EntityRenderer.java
|
||||
@@ -37,6 +37,11 @@
|
||||
@@ -40,6 +40,11 @@
|
||||
import org.lwjgl.opengl.GLContext;
|
||||
import org.lwjgl.util.glu.GLU;
|
||||
import org.lwjgl.util.glu.Project;
|
||||
|
||||
+import net.minecraftforge.client.ForgeHooksClient;
|
||||
+import net.minecraftforge.client.event.DrawBlockHighlightEvent;
|
||||
|
@ -12,7 +12,7 @@
|
|||
@SideOnly(Side.CLIENT)
|
||||
public class EntityRenderer
|
||||
{
|
||||
@@ -339,8 +344,15 @@
|
||||
@@ -354,8 +359,15 @@
|
||||
*/
|
||||
private void updateFovModifierHand()
|
||||
{
|
||||
|
@ -30,87 +30,84 @@
|
|||
this.fovModifierHandPrev = this.fovModifierHand;
|
||||
this.fovModifierHand += (this.fovMultiplierTemp - this.fovModifierHand) * 0.5F;
|
||||
|
||||
@@ -366,7 +378,7 @@
|
||||
@@ -381,7 +393,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
- EntityPlayer entityplayer = (EntityPlayer)this.mc.renderViewEntity;
|
||||
+ EntityLiving entityplayer = (EntityLiving)this.mc.renderViewEntity;
|
||||
+ EntityLivingBase entityplayer = (EntityLivingBase)this.mc.renderViewEntity;
|
||||
float f1 = 70.0F;
|
||||
|
||||
if (par2)
|
||||
@@ -453,15 +465,7 @@
|
||||
@@ -468,15 +480,7 @@
|
||||
|
||||
if (!this.mc.gameSettings.debugCamEnable)
|
||||
{
|
||||
- int i = this.mc.theWorld.getBlockId(MathHelper.floor_double(entityliving.posX), MathHelper.floor_double(entityliving.posY), MathHelper.floor_double(entityliving.posZ));
|
||||
- int i = this.mc.theWorld.getBlockId(MathHelper.floor_double(entitylivingbase.posX), MathHelper.floor_double(entitylivingbase.posY), MathHelper.floor_double(entitylivingbase.posZ));
|
||||
-
|
||||
- if (i == Block.bed.blockID)
|
||||
- {
|
||||
- int j = this.mc.theWorld.getBlockMetadata(MathHelper.floor_double(entityliving.posX), MathHelper.floor_double(entityliving.posY), MathHelper.floor_double(entityliving.posZ));
|
||||
- int j = this.mc.theWorld.getBlockMetadata(MathHelper.floor_double(entitylivingbase.posX), MathHelper.floor_double(entitylivingbase.posY), MathHelper.floor_double(entitylivingbase.posZ));
|
||||
- int k = j & 3;
|
||||
- GL11.glRotatef((float)(k * 90), 0.0F, 1.0F, 0.0F);
|
||||
- }
|
||||
-
|
||||
+ ForgeHooksClient.orientBedCamera(mc, entityliving);
|
||||
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);
|
||||
+ ForgeHooksClient.orientBedCamera(mc, entitylivingbase);
|
||||
GL11.glRotatef(entitylivingbase.prevRotationYaw + (entitylivingbase.rotationYaw - entitylivingbase.prevRotationYaw) * par1 + 180.0F, 0.0F, -1.0F, 0.0F);
|
||||
GL11.glRotatef(entitylivingbase.prevRotationPitch + (entitylivingbase.rotationPitch - entitylivingbase.prevRotationPitch) * par1, -1.0F, 0.0F, 0.0F);
|
||||
}
|
||||
@@ -1142,23 +1146,20 @@
|
||||
@@ -1152,7 +1156,10 @@
|
||||
{
|
||||
RenderHelper.enableStandardItemLighting();
|
||||
this.mc.mcProfiler.endStartSection("entities");
|
||||
+ ForgeHooksClient.setRenderPass(0);
|
||||
renderglobal.renderEntities(entityliving.getPosition(par1), frustrum, par1);
|
||||
- this.enableLightmap((double)par1);
|
||||
- this.mc.mcProfiler.endStartSection("litParticles");
|
||||
- effectrenderer.renderLitParticles(entityliving, par1);
|
||||
- RenderHelper.disableStandardItemLighting();
|
||||
- this.setupFog(0, par1);
|
||||
- this.mc.mcProfiler.endStartSection("particles");
|
||||
- effectrenderer.renderParticles(entityliving, par1);
|
||||
- this.disableLightmap((double)par1);
|
||||
+ ForgeHooksClient.setRenderPass(-1);
|
||||
renderglobal.renderEntities(entitylivingbase.getPosition(par1), frustrum, par1);
|
||||
+ ForgeHooksClient.setRenderPass(0);
|
||||
+ /* Forge: Moved down
|
||||
this.enableLightmap((double)par1);
|
||||
this.mc.mcProfiler.endStartSection("litParticles");
|
||||
effectrenderer.renderLitParticles(entitylivingbase, par1);
|
||||
@@ -1161,13 +1168,17 @@
|
||||
this.mc.mcProfiler.endStartSection("particles");
|
||||
effectrenderer.renderParticles(entitylivingbase, par1);
|
||||
this.disableLightmap((double)par1);
|
||||
+ */
|
||||
|
||||
if (this.mc.objectMouseOver != null && entityliving.isInsideOfMaterial(Material.water) && entityliving instanceof EntityPlayer && !this.mc.gameSettings.hideGUI)
|
||||
if (this.mc.objectMouseOver != null && entitylivingbase.isInsideOfMaterial(Material.water) && entitylivingbase instanceof EntityPlayer && !this.mc.gameSettings.hideGUI)
|
||||
{
|
||||
entityplayer = (EntityPlayer)entityliving;
|
||||
entityplayer = (EntityPlayer)entitylivingbase;
|
||||
GL11.glDisable(GL11.GL_ALPHA_TEST);
|
||||
this.mc.mcProfiler.endStartSection("outline");
|
||||
- renderglobal.drawBlockBreaking(entityplayer, this.mc.objectMouseOver, 0, entityplayer.inventory.getCurrentItem(), par1);
|
||||
- renderglobal.drawSelectionBox(entityplayer, this.mc.objectMouseOver, 0, entityplayer.inventory.getCurrentItem(), par1);
|
||||
- renderglobal.drawSelectionBox(entityplayer, this.mc.objectMouseOver, 0, par1);
|
||||
+ if (!ForgeHooksClient.onDrawBlockHighlight(renderglobal, entityplayer, mc.objectMouseOver, 0, entityplayer.inventory.getCurrentItem(), par1))
|
||||
+ {
|
||||
+ renderglobal.drawBlockBreaking(entityplayer, this.mc.objectMouseOver, 0, entityplayer.inventory.getCurrentItem(), par1);
|
||||
+ renderglobal.drawSelectionBox(entityplayer, this.mc.objectMouseOver, 0, entityplayer.inventory.getCurrentItem(), par1);
|
||||
+ renderglobal.drawSelectionBox(entityplayer, this.mc.objectMouseOver, 0, par1);
|
||||
+ }
|
||||
GL11.glEnable(GL11.GL_ALPHA_TEST);
|
||||
}
|
||||
}
|
||||
@@ -1213,6 +1214,13 @@
|
||||
renderglobal.sortAndRender(entityliving, 1, (double)par1);
|
||||
@@ -1222,6 +1233,13 @@
|
||||
renderglobal.sortAndRender(entitylivingbase, 1, (double)par1);
|
||||
}
|
||||
|
||||
+ RenderHelper.enableStandardItemLighting();
|
||||
+ this.mc.mcProfiler.endStartSection("entities");
|
||||
+ ForgeHooksClient.setRenderPass(1);
|
||||
+ renderglobal.renderEntities(entityliving.getPosition(par1), frustrum, par1);
|
||||
+ renderglobal.renderEntities(entitylivingbase.getPosition(par1), frustrum, par1);
|
||||
+ ForgeHooksClient.setRenderPass(-1);
|
||||
+ RenderHelper.disableStandardItemLighting();
|
||||
+
|
||||
GL11.glDepthMask(true);
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
@@ -1222,15 +1230,18 @@
|
||||
entityplayer = (EntityPlayer)entityliving;
|
||||
@@ -1231,14 +1249,17 @@
|
||||
entityplayer = (EntityPlayer)entitylivingbase;
|
||||
GL11.glDisable(GL11.GL_ALPHA_TEST);
|
||||
this.mc.mcProfiler.endStartSection("outline");
|
||||
- renderglobal.drawBlockBreaking(entityplayer, this.mc.objectMouseOver, 0, entityplayer.inventory.getCurrentItem(), par1);
|
||||
- renderglobal.drawSelectionBox(entityplayer, this.mc.objectMouseOver, 0, entityplayer.inventory.getCurrentItem(), par1);
|
||||
- renderglobal.drawSelectionBox(entityplayer, this.mc.objectMouseOver, 0, par1);
|
||||
+ if (!ForgeHooksClient.onDrawBlockHighlight(renderglobal, entityplayer, mc.objectMouseOver, 0, entityplayer.inventory.getCurrentItem(), par1))
|
||||
+ {
|
||||
+ renderglobal.drawBlockBreaking(entityplayer, this.mc.objectMouseOver, 0, entityplayer.inventory.getCurrentItem(), par1);
|
||||
+ renderglobal.drawSelectionBox(entityplayer, this.mc.objectMouseOver, 0, entityplayer.inventory.getCurrentItem(), par1);
|
||||
+ renderglobal.drawSelectionBox(entityplayer, this.mc.objectMouseOver, 0, par1);
|
||||
+ }
|
||||
GL11.glEnable(GL11.GL_ALPHA_TEST);
|
||||
}
|
||||
|
@ -118,12 +115,12 @@
|
|||
this.mc.mcProfiler.endStartSection("destroyProgress");
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
|
||||
- renderglobal.drawBlockDamageTexture(Tessellator.instance, (EntityPlayer)entityliving, par1);
|
||||
+ renderglobal.drawBlockDamageTexture(Tessellator.instance, entityliving, par1);
|
||||
- renderglobal.drawBlockDamageTexture(Tessellator.instance, (EntityPlayer)entitylivingbase, par1);
|
||||
+ renderglobal.drawBlockDamageTexture(Tessellator.instance, entitylivingbase, par1);
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
this.mc.mcProfiler.endStartSection("weather");
|
||||
this.renderRainSnow(par1);
|
||||
@@ -1240,6 +1251,19 @@
|
||||
@@ -1248,6 +1269,20 @@
|
||||
{
|
||||
this.renderCloudsCheck(renderglobal, par1);
|
||||
}
|
||||
|
@ -131,12 +128,13 @@
|
|||
+ //Forge: Moved section from above, now particles are the last thing to render.
|
||||
+ this.enableLightmap((double)par1);
|
||||
+ this.mc.mcProfiler.endStartSection("litParticles");
|
||||
+ effectrenderer.renderLitParticles(entityliving, par1);
|
||||
+ effectrenderer.renderLitParticles(entitylivingbase, par1);
|
||||
+ RenderHelper.disableStandardItemLighting();
|
||||
+ this.setupFog(0, par1);
|
||||
+ this.mc.mcProfiler.endStartSection("particles");
|
||||
+ effectrenderer.renderParticles(entityliving, par1);
|
||||
+ effectrenderer.renderParticles(entitylivingbase, par1);
|
||||
+ this.disableLightmap((double)par1);
|
||||
+ //Forge: End Move
|
||||
+
|
||||
+ this.mc.mcProfiler.endStartSection("FRenderLast");
|
||||
+ ForgeHooksClient.dispatchRenderLast(renderglobal, par1);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/renderer/ItemRenderer.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/renderer/ItemRenderer.java
|
||||
@@ -14,6 +14,8 @@
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
@@ -17,6 +17,8 @@
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.EnumAction;
|
||||
import net.minecraft.item.Item;
|
||||
+import net.minecraft.item.ItemBlock;
|
||||
|
@ -9,7 +9,7 @@
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
@@ -21,6 +23,13 @@
|
||||
@@ -24,6 +26,13 @@
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL12;
|
||||
|
||||
|
@ -23,25 +23,25 @@
|
|||
@SideOnly(Side.CLIENT)
|
||||
public class ItemRenderer
|
||||
{
|
||||
@@ -46,15 +55,40 @@
|
||||
this.mc = par1Minecraft;
|
||||
this.mapItemRenderer = new MapItemRenderer(par1Minecraft.fontRenderer, par1Minecraft.gameSettings, par1Minecraft.renderEngine);
|
||||
@@ -54,15 +63,32 @@
|
||||
this.mapItemRenderer = new MapItemRenderer(par1Minecraft.gameSettings, par1Minecraft.func_110434_K());
|
||||
}
|
||||
+
|
||||
+ public void renderItem(EntityLiving par1EntityLiving, ItemStack par2ItemStack, int par3)
|
||||
+ {
|
||||
+ this.renderItem(par1EntityLiving, par2ItemStack, par3, ItemRenderType.EQUIPPED);
|
||||
+ }
|
||||
|
||||
+ public void renderItem(EntityLivingBase par1EntityLivingBase, ItemStack par2ItemStack, int par3)
|
||||
+ {
|
||||
+ this.renderItem(par1EntityLivingBase, par2ItemStack, par3, ItemRenderType.EQUIPPED);
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* Renders the item stack for being in an entity's hand Args: itemStack
|
||||
*/
|
||||
- public void renderItem(EntityLiving par1EntityLiving, ItemStack par2ItemStack, int par3)
|
||||
+ public void renderItem(EntityLiving par1EntityLiving, ItemStack par2ItemStack, int par3, ItemRenderType type)
|
||||
- public void renderItem(EntityLivingBase par1EntityLivingBase, ItemStack par2ItemStack, int par3)
|
||||
+ public void renderItem(EntityLivingBase par1EntityLivingBase, ItemStack par2ItemStack, int par3, ItemRenderType type)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
TextureManager texturemanager = this.mc.func_110434_K();
|
||||
|
||||
- if (par2ItemStack.getItemSpriteNumber() == 0 && Block.blocksList[par2ItemStack.itemID] != null && RenderBlocks.renderItemIn3d(Block.blocksList[par2ItemStack.itemID].getRenderType()))
|
||||
- if (par2ItemStack.getItemSpriteNumber() == 0 && par2ItemStack.itemID < Block.blocksList.length && Block.blocksList[par2ItemStack.itemID] != null && RenderBlocks.renderItemIn3d(Block.blocksList[par2ItemStack.itemID].getRenderType()))
|
||||
+ Block block = null;
|
||||
+ if (par2ItemStack.getItem() instanceof ItemBlock && par2ItemStack.itemID < Block.blocksList.length)
|
||||
+ {
|
||||
|
@ -49,24 +49,16 @@
|
|||
+ }
|
||||
+
|
||||
+ IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(par2ItemStack, type);
|
||||
+ //Backwards compatibility, Remove in 1.6, For 1.5 if they implement EQUIPPED then
|
||||
+ //they must handle it how it was when 1.5 began.
|
||||
+ if (customRenderer == null && type == ItemRenderType.EQUIPPED_FIRST_PERSON)
|
||||
+ {
|
||||
+ type = ItemRenderType.EQUIPPED;
|
||||
+ customRenderer = MinecraftForgeClient.getItemRenderer(par2ItemStack, type);
|
||||
+ }
|
||||
+
|
||||
+ if (customRenderer != null)
|
||||
+ {
|
||||
+ this.mc.renderEngine.bindTexture(par2ItemStack.getItemSpriteNumber() == 0 ? "/terrain.png" : "/gui/items.png");
|
||||
+ ForgeHooksClient.renderEquippedItem(type, customRenderer, renderBlocksInstance, par1EntityLiving, par2ItemStack);
|
||||
+ texturemanager.func_110577_a(texturemanager.func_130087_a(par2ItemStack.getItemSpriteNumber()));
|
||||
+ ForgeHooksClient.renderEquippedItem(type, customRenderer, renderBlocksInstance, par1EntityLivingBase, par2ItemStack);
|
||||
+ }
|
||||
+ else if (block != null && par2ItemStack.getItemSpriteNumber() == 0 && RenderBlocks.renderItemIn3d(Block.blocksList[par2ItemStack.itemID].getRenderType()))
|
||||
{
|
||||
this.mc.renderEngine.bindTexture("/terrain.png");
|
||||
texturemanager.func_110577_a(texturemanager.func_130087_a(0));
|
||||
this.renderBlocksInstance.renderBlockAsItem(Block.blocksList[par2ItemStack.itemID], par2ItemStack.getItemDamage(), 1.0F);
|
||||
@@ -272,7 +306,7 @@
|
||||
@@ -266,7 +292,7 @@
|
||||
Render render;
|
||||
RenderPlayer renderplayer;
|
||||
|
||||
|
@ -74,8 +66,8 @@
|
|||
+ if (itemstack != null && itemstack.getItem() instanceof ItemMap)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
f4 = 0.8F;
|
||||
@@ -340,11 +374,20 @@
|
||||
f12 = 0.8F;
|
||||
@@ -333,11 +359,20 @@
|
||||
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.draw();
|
||||
|
@ -83,7 +75,7 @@
|
|||
-
|
||||
- if (mapdata != null)
|
||||
- {
|
||||
- this.mapItemRenderer.renderMap(this.mc.thePlayer, this.mc.renderEngine, mapdata);
|
||||
- this.mapItemRenderer.func_111275_a(this.mc.thePlayer, this.mc.func_110434_K(), mapdata);
|
||||
+
|
||||
+ IItemRenderer custom = MinecraftForgeClient.getItemRenderer(itemstack, FIRST_PERSON_MAP);
|
||||
+ MapData mapdata = ((ItemMap)itemstack.getItem()).getMapData(itemstack, this.mc.theWorld);
|
||||
|
@ -92,34 +84,34 @@
|
|||
+ {
|
||||
+ if (mapdata != null)
|
||||
+ {
|
||||
+ this.mapItemRenderer.renderMap(this.mc.thePlayer, this.mc.renderEngine, mapdata);
|
||||
+ this.mapItemRenderer.func_111275_a(this.mc.thePlayer, this.mc.func_110434_K(), mapdata);
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ custom.renderItem(FIRST_PERSON_MAP, itemstack, mc.thePlayer, mc.renderEngine, mapdata);
|
||||
+ custom.renderItem(FIRST_PERSON_MAP, itemstack, mc.thePlayer, mc.func_110434_K(), mapdata);
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
@@ -446,17 +489,20 @@
|
||||
@@ -439,17 +474,20 @@
|
||||
|
||||
if (itemstack.getItem().requiresMultipleRenderPasses())
|
||||
{
|
||||
- this.renderItem(entityclientplayermp, itemstack, 0);
|
||||
- int i1 = Item.itemsList[itemstack.itemID].getColorFromItemStack(itemstack, 1);
|
||||
- f10 = (float)(i1 >> 16 & 255) / 255.0F;
|
||||
- f11 = (float)(i1 >> 8 & 255) / 255.0F;
|
||||
- f12 = (float)(i1 & 255) / 255.0F;
|
||||
- GL11.glColor4f(f3 * f10, f3 * f11, f3 * f12, 1.0F);
|
||||
- f11 = (float)(i1 >> 16 & 255) / 255.0F;
|
||||
- f13 = (float)(i1 >> 8 & 255) / 255.0F;
|
||||
- f14 = (float)(i1 & 255) / 255.0F;
|
||||
- GL11.glColor4f(f5 * f11, f5 * f13, f5 * f14, 1.0F);
|
||||
- this.renderItem(entityclientplayermp, itemstack, 1);
|
||||
+ this.renderItem(entityclientplayermp, itemstack, 0, ItemRenderType.EQUIPPED_FIRST_PERSON);
|
||||
+ for (int x = 1; x < itemstack.getItem().getRenderPasses(itemstack.getItemDamage()); x++)
|
||||
+ {
|
||||
+ int i1 = Item.itemsList[itemstack.itemID].getColorFromItemStack(itemstack, x);
|
||||
+ f10 = (float)(i1 >> 16 & 255) / 255.0F;
|
||||
+ f11 = (float)(i1 >> 8 & 255) / 255.0F;
|
||||
+ f12 = (float)(i1 & 255) / 255.0F;
|
||||
+ GL11.glColor4f(f3 * f10, f3 * f11, f3 * f12, 1.0F);
|
||||
+ f11 = (float)(i1 >> 16 & 255) / 255.0F;
|
||||
+ f13 = (float)(i1 >> 8 & 255) / 255.0F;
|
||||
+ f14 = (float)(i1 & 255) / 255.0F;
|
||||
+ GL11.glColor4f(f5 * f11, f5 * f13, f5 * f14, 1.0F);
|
||||
+ this.renderItem(entityclientplayermp, itemstack, x, ItemRenderType.EQUIPPED_FIRST_PERSON);
|
||||
+ }
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
@@ -25,6 +25,10 @@
|
||||
* True if the renderer supports multitextures and the OpenGL version != 1.3
|
||||
*/
|
||||
private static boolean useMultitextureARB = false;
|
||||
private static boolean useMultitextureARB;
|
||||
+
|
||||
+ /* Stores the last values sent into setLightmapTextureCoords */
|
||||
+ public static float lastBrightnessX = 0.0f;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/renderer/RenderBlocks.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/renderer/RenderBlocks.java
|
||||
@@ -44,6 +44,8 @@
|
||||
@@ -45,6 +45,8 @@
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL12;
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
|||
@SideOnly(Side.CLIENT)
|
||||
public class RenderBlocks
|
||||
{
|
||||
@@ -533,9 +535,8 @@
|
||||
@@ -534,9 +536,8 @@
|
||||
public boolean renderBlockBed(Block par1Block, int par2, int par3, int par4)
|
||||
{
|
||||
Tessellator tessellator = Tessellator.instance;
|
||||
|
@ -21,7 +21,7 @@
|
|||
float f = 0.5F;
|
||||
float f1 = 1.0F;
|
||||
float f2 = 0.8F;
|
||||
@@ -544,6 +545,7 @@
|
||||
@@ -545,6 +546,7 @@
|
||||
tessellator.setBrightness(j1);
|
||||
tessellator.setColorOpaque_F(f, f, f);
|
||||
Icon icon = this.getBlockIcon(par1Block, this.blockAccess, par2, par3, par4, 0);
|
||||
|
@ -29,7 +29,7 @@
|
|||
double d0 = (double)icon.getMinU();
|
||||
double d1 = (double)icon.getMaxU();
|
||||
double d2 = (double)icon.getMinV();
|
||||
@@ -560,6 +562,7 @@
|
||||
@@ -561,6 +563,7 @@
|
||||
tessellator.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4));
|
||||
tessellator.setColorOpaque_F(f1, f1, f1);
|
||||
icon = this.getBlockIcon(par1Block, this.blockAccess, par2, par3, par4, 1);
|
||||
|
@ -37,7 +37,7 @@
|
|||
d0 = (double)icon.getMinU();
|
||||
d1 = (double)icon.getMaxU();
|
||||
d2 = (double)icon.getMinV();
|
||||
@@ -2351,7 +2354,7 @@
|
||||
@@ -2358,7 +2361,7 @@
|
||||
double d9;
|
||||
double d10;
|
||||
|
||||
|
@ -46,7 +46,7 @@
|
|||
{
|
||||
float f1 = 0.2F;
|
||||
float f2 = 0.0625F;
|
||||
@@ -2371,7 +2374,7 @@
|
||||
@@ -2378,7 +2381,7 @@
|
||||
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)(par2 + 0), (double)((float)(par3 + 0) + f2), (double)(par4 + 1), d2, d3);
|
||||
@@ -2383,7 +2386,7 @@
|
||||
@@ -2390,7 +2393,7 @@
|
||||
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)(par2 + 1 - 0), (double)((float)(par3 + 0) + f2), (double)(par4 + 0), d0, d3);
|
||||
@@ -2395,7 +2398,7 @@
|
||||
@@ -2402,7 +2405,7 @@
|
||||
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 + 0) + f2), (double)(par4 + 0), d2, d3);
|
||||
@@ -2407,7 +2410,7 @@
|
||||
@@ -2414,7 +2417,7 @@
|
||||
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 + 0) + f2), (double)(par4 + 1 - 0), d0, d3);
|
||||
@@ -2419,7 +2422,7 @@
|
||||
@@ -2426,7 +2429,7 @@
|
||||
tessellator.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + f + f2), (double)((float)(par4 + 1) - f1), d0, d1);
|
||||
}
|
||||
|
||||
|
@ -91,7 +91,7 @@
|
|||
{
|
||||
d5 = (double)par2 + 0.5D + 0.5D;
|
||||
d6 = (double)par2 + 0.5D - 0.5D;
|
||||
@@ -3050,10 +3053,10 @@
|
||||
@@ -3057,10 +3060,10 @@
|
||||
double d17 = (double)par2 + 0.5D + 0.0625D;
|
||||
double d18 = (double)par4 + 0.5D - 0.0625D;
|
||||
double d19 = (double)par4 + 0.5D + 0.0625D;
|
||||
|
@ -105,4 +105,4 @@
|
|||
+ boolean flag3 = par1BlockPane.canPaneConnectTo(this.blockAccess,par2, par3, par4, EAST);
|
||||
boolean flag4 = par1BlockPane.shouldSideBeRendered(this.blockAccess, par2, par3 + 1, par4, 1);
|
||||
boolean flag5 = par1BlockPane.shouldSideBeRendered(this.blockAccess, par2, par3 - 1, par4, 0);
|
||||
|
||||
double d20 = 0.01D;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/renderer/RenderGlobal.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/renderer/RenderGlobal.java
|
||||
@@ -65,6 +65,9 @@
|
||||
@@ -67,6 +67,9 @@
|
||||
import org.lwjgl.opengl.ARBOcclusionQuery;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
|||
@SideOnly(Side.CLIENT)
|
||||
public class RenderGlobal implements IWorldAccess
|
||||
{
|
||||
@@ -443,35 +446,47 @@
|
||||
@@ -446,35 +449,47 @@
|
||||
*/
|
||||
public void renderEntities(Vec3 par1Vec3, ICamera par2ICamera, float par3)
|
||||
{
|
||||
|
@ -26,32 +26,32 @@
|
|||
else
|
||||
{
|
||||
this.theWorld.theProfiler.startSection("prepare");
|
||||
- TileEntityRenderer.instance.cacheActiveRenderInfo(this.theWorld, this.renderEngine, this.mc.fontRenderer, this.mc.renderViewEntity, par3);
|
||||
- RenderManager.instance.cacheActiveRenderInfo(this.theWorld, this.renderEngine, this.mc.fontRenderer, this.mc.renderViewEntity, this.mc.pointedEntityLiving, this.mc.gameSettings, par3);
|
||||
- TileEntityRenderer.instance.cacheActiveRenderInfo(this.theWorld, this.mc.func_110434_K(), this.mc.fontRenderer, this.mc.renderViewEntity, par3);
|
||||
- RenderManager.instance.cacheActiveRenderInfo(this.theWorld, this.mc.func_110434_K(), this.mc.fontRenderer, this.mc.renderViewEntity, this.mc.pointedEntityLiving, this.mc.gameSettings, par3);
|
||||
- this.countEntitiesTotal = 0;
|
||||
- this.countEntitiesRendered = 0;
|
||||
- this.countEntitiesHidden = 0;
|
||||
- EntityLiving entityliving = this.mc.renderViewEntity;
|
||||
- RenderManager.renderPosX = entityliving.lastTickPosX + (entityliving.posX - entityliving.lastTickPosX) * (double)par3;
|
||||
- RenderManager.renderPosY = entityliving.lastTickPosY + (entityliving.posY - entityliving.lastTickPosY) * (double)par3;
|
||||
- RenderManager.renderPosZ = entityliving.lastTickPosZ + (entityliving.posZ - entityliving.lastTickPosZ) * (double)par3;
|
||||
- TileEntityRenderer.staticPlayerX = entityliving.lastTickPosX + (entityliving.posX - entityliving.lastTickPosX) * (double)par3;
|
||||
- TileEntityRenderer.staticPlayerY = entityliving.lastTickPosY + (entityliving.posY - entityliving.lastTickPosY) * (double)par3;
|
||||
- TileEntityRenderer.staticPlayerZ = entityliving.lastTickPosZ + (entityliving.posZ - entityliving.lastTickPosZ) * (double)par3;
|
||||
- EntityLivingBase entitylivingbase = this.mc.renderViewEntity;
|
||||
- RenderManager.renderPosX = entitylivingbase.lastTickPosX + (entitylivingbase.posX - entitylivingbase.lastTickPosX) * (double)par3;
|
||||
- RenderManager.renderPosY = entitylivingbase.lastTickPosY + (entitylivingbase.posY - entitylivingbase.lastTickPosY) * (double)par3;
|
||||
- RenderManager.renderPosZ = entitylivingbase.lastTickPosZ + (entitylivingbase.posZ - entitylivingbase.lastTickPosZ) * (double)par3;
|
||||
- TileEntityRenderer.staticPlayerX = entitylivingbase.lastTickPosX + (entitylivingbase.posX - entitylivingbase.lastTickPosX) * (double)par3;
|
||||
- TileEntityRenderer.staticPlayerY = entitylivingbase.lastTickPosY + (entitylivingbase.posY - entitylivingbase.lastTickPosY) * (double)par3;
|
||||
- TileEntityRenderer.staticPlayerZ = entitylivingbase.lastTickPosZ + (entitylivingbase.posZ - entitylivingbase.lastTickPosZ) * (double)par3;
|
||||
+ if (pass == 0)
|
||||
+ {
|
||||
+ TileEntityRenderer.instance.cacheActiveRenderInfo(this.theWorld, this.renderEngine, this.mc.fontRenderer, this.mc.renderViewEntity, par3);
|
||||
+ RenderManager.instance.cacheActiveRenderInfo(this.theWorld, this.renderEngine, this.mc.fontRenderer, this.mc.renderViewEntity, this.mc.pointedEntityLiving, this.mc.gameSettings, par3);
|
||||
+ TileEntityRenderer.instance.cacheActiveRenderInfo(this.theWorld, this.mc.func_110434_K(), this.mc.fontRenderer, this.mc.renderViewEntity, par3);
|
||||
+ RenderManager.instance.cacheActiveRenderInfo(this.theWorld, this.mc.func_110434_K(), this.mc.fontRenderer, this.mc.renderViewEntity, this.mc.pointedEntityLiving, this.mc.gameSettings, par3);
|
||||
+ this.countEntitiesTotal = 0;
|
||||
+ this.countEntitiesRendered = 0;
|
||||
+ this.countEntitiesHidden = 0;
|
||||
+ EntityLiving entityliving = this.mc.renderViewEntity;
|
||||
+ RenderManager.renderPosX = entityliving.lastTickPosX + (entityliving.posX - entityliving.lastTickPosX) * (double)par3;
|
||||
+ RenderManager.renderPosY = entityliving.lastTickPosY + (entityliving.posY - entityliving.lastTickPosY) * (double)par3;
|
||||
+ RenderManager.renderPosZ = entityliving.lastTickPosZ + (entityliving.posZ - entityliving.lastTickPosZ) * (double)par3;
|
||||
+ TileEntityRenderer.staticPlayerX = entityliving.lastTickPosX + (entityliving.posX - entityliving.lastTickPosX) * (double)par3;
|
||||
+ TileEntityRenderer.staticPlayerY = entityliving.lastTickPosY + (entityliving.posY - entityliving.lastTickPosY) * (double)par3;
|
||||
+ TileEntityRenderer.staticPlayerZ = entityliving.lastTickPosZ + (entityliving.posZ - entityliving.lastTickPosZ) * (double)par3;
|
||||
+ EntityLivingBase entitylivingbase = this.mc.renderViewEntity;
|
||||
+ RenderManager.renderPosX = entitylivingbase.lastTickPosX + (entitylivingbase.posX - entitylivingbase.lastTickPosX) * (double)par3;
|
||||
+ RenderManager.renderPosY = entitylivingbase.lastTickPosY + (entitylivingbase.posY - entitylivingbase.lastTickPosY) * (double)par3;
|
||||
+ RenderManager.renderPosZ = entitylivingbase.lastTickPosZ + (entitylivingbase.posZ - entitylivingbase.lastTickPosZ) * (double)par3;
|
||||
+ TileEntityRenderer.staticPlayerX = entitylivingbase.lastTickPosX + (entitylivingbase.posX - entitylivingbase.lastTickPosX) * (double)par3;
|
||||
+ TileEntityRenderer.staticPlayerY = entitylivingbase.lastTickPosY + (entitylivingbase.posY - entitylivingbase.lastTickPosY) * (double)par3;
|
||||
+ TileEntityRenderer.staticPlayerZ = entitylivingbase.lastTickPosZ + (entitylivingbase.posZ - entitylivingbase.lastTickPosZ) * (double)par3;
|
||||
+ }
|
||||
this.mc.entityRenderer.enableLightmap((double)par3);
|
||||
this.theWorld.theProfiler.endStartSection("global");
|
||||
|
@ -71,7 +71,7 @@
|
|||
++this.countEntitiesRendered;
|
||||
|
||||
if (entity.isInRangeToRenderVec3D(par1Vec3))
|
||||
@@ -485,6 +500,7 @@
|
||||
@@ -488,6 +503,7 @@
|
||||
for (i = 0; i < list.size(); ++i)
|
||||
{
|
||||
entity = (Entity)list.get(i);
|
||||
|
@ -79,7 +79,7 @@
|
|||
|
||||
if (entity.isInRangeToRenderVec3D(par1Vec3) && (entity.ignoreFrustumCheck || par2ICamera.isBoundingBoxInFrustum(entity.boundingBox) || entity.riddenByEntity == this.mc.thePlayer) && (entity != this.mc.renderViewEntity || this.mc.gameSettings.thirdPersonView != 0 || this.mc.renderViewEntity.isPlayerSleeping()) && this.theWorld.blockExists(MathHelper.floor_double(entity.posX), 0, MathHelper.floor_double(entity.posZ)))
|
||||
{
|
||||
@@ -498,7 +514,11 @@
|
||||
@@ -501,7 +517,11 @@
|
||||
|
||||
for (i = 0; i < this.tileEntities.size(); ++i)
|
||||
{
|
||||
|
@ -92,7 +92,7 @@
|
|||
}
|
||||
|
||||
this.mc.entityRenderer.disableLightmap((double)par3);
|
||||
@@ -933,6 +953,12 @@
|
||||
@@ -936,6 +956,12 @@
|
||||
*/
|
||||
public void renderSky(float par1)
|
||||
{
|
||||
|
@ -105,7 +105,7 @@
|
|||
if (this.mc.theWorld.provider.dimensionId == 1)
|
||||
{
|
||||
GL11.glDisable(GL11.GL_FOG);
|
||||
@@ -1171,6 +1197,13 @@
|
||||
@@ -1174,6 +1200,13 @@
|
||||
|
||||
public void renderClouds(float par1)
|
||||
{
|
||||
|
@ -119,15 +119,15 @@
|
|||
if (this.mc.theWorld.provider.isSurfaceWorld())
|
||||
{
|
||||
if (this.mc.gameSettings.fancyGraphics)
|
||||
@@ -1599,6 +1632,11 @@
|
||||
@@ -1582,6 +1615,11 @@
|
||||
}
|
||||
|
||||
public void drawBlockDamageTexture(Tessellator par1Tessellator, EntityPlayer par2EntityPlayer, float par3)
|
||||
+ {
|
||||
+ drawBlockDamageTexture(par1Tessellator, (EntityLiving)par2EntityPlayer, par3);
|
||||
+ drawBlockDamageTexture(par1Tessellator, (EntityLivingBase)par2EntityPlayer, par3);
|
||||
+ }
|
||||
+
|
||||
+ public void drawBlockDamageTexture(Tessellator par1Tessellator, EntityLiving par2EntityPlayer, float par3)
|
||||
+ public void drawBlockDamageTexture(Tessellator par1Tessellator, EntityLivingBase par2EntityPlayer, float par3)
|
||||
{
|
||||
double d0 = par2EntityPlayer.lastTickPosX + (par2EntityPlayer.posX - par2EntityPlayer.lastTickPosX) * (double)par3;
|
||||
double d1 = par2EntityPlayer.lastTickPosY + (par2EntityPlayer.posY - par2EntityPlayer.lastTickPosY) * (double)par3;
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* Boolean used to check whether quads should be drawn as two triangles. Initialized to false and never changed.
|
||||
*/
|
||||
@@ -25,16 +33,16 @@
|
||||
private static boolean tryVBO = false;
|
||||
private static boolean tryVBO;
|
||||
|
||||
/** The byte buffer used for GL allocation. */
|
||||
- private ByteBuffer byteBuffer;
|
||||
|
@ -44,10 +44,10 @@
|
|||
/** Raw integer array. */
|
||||
private int[] rawBuffer;
|
||||
@@ -110,10 +118,10 @@
|
||||
public boolean isDrawing = false;
|
||||
public boolean isDrawing;
|
||||
|
||||
/** Whether we are currently using VBO or not. */
|
||||
- private boolean useVBO = false;
|
||||
- private boolean useVBO;
|
||||
+ private static boolean useVBO = false;
|
||||
|
||||
/** An IntBuffer used to store the indices of vertex buffer objects. */
|
||||
|
@ -57,7 +57,7 @@
|
|||
/**
|
||||
* The index of the last VBO used. This is used in round-robin fashion, sequentially, through the vboCount vertex
|
||||
@@ -122,25 +130,28 @@
|
||||
private int vboIndex = 0;
|
||||
private int vboIndex;
|
||||
|
||||
/** Number of vertex buffer objects allocated for use. */
|
||||
- private int vboCount = 10;
|
||||
|
|
|
@ -1,23 +1,15 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/renderer/WorldRenderer.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/renderer/WorldRenderer.java
|
||||
@@ -17,13 +17,15 @@
|
||||
import net.minecraft.world.chunk.Chunk;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
+import net.minecraftforge.client.ForgeHooksClient;
|
||||
+
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class WorldRenderer
|
||||
{
|
||||
@@ -23,7 +23,7 @@
|
||||
/** Reference to the World object. */
|
||||
public World worldObj;
|
||||
private int glRenderList = -1;
|
||||
- private static Tessellator tessellator = Tessellator.instance;
|
||||
+ //private static Tessellator tessellator = Tessellator.instance;
|
||||
public static int chunksUpdated = 0;
|
||||
public static int chunksUpdated;
|
||||
public int posX;
|
||||
public int posY;
|
||||
@@ -192,15 +194,16 @@
|
||||
@@ -192,15 +192,16 @@
|
||||
GL11.glTranslatef(-8.0F, -8.0F, -8.0F);
|
||||
GL11.glScalef(f, f, f);
|
||||
GL11.glTranslatef(8.0F, 8.0F, 8.0F);
|
||||
|
@ -37,7 +29,7 @@
|
|||
{
|
||||
TileEntity tileentity = chunkcache.getBlockTileEntity(k2, i2, j2);
|
||||
|
||||
@@ -212,14 +215,15 @@
|
||||
@@ -212,14 +213,15 @@
|
||||
|
||||
int i3 = block.getRenderBlockPass();
|
||||
|
||||
|
@ -56,7 +48,7 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
@@ -228,10 +232,11 @@
|
||||
@@ -228,10 +230,11 @@
|
||||
|
||||
if (flag2)
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/renderer/entity/RenderBiped.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/renderer/entity/RenderBiped.java
|
||||
@@ -11,9 +11,15 @@
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
@@ -14,9 +14,15 @@
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.EnumArmorMaterial;
|
||||
import net.minecraft.item.Item;
|
||||
+import net.minecraft.item.ItemBlock;
|
||||
|
@ -16,25 +16,72 @@
|
|||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class RenderBiped extends RenderLiving
|
||||
@@ -59,7 +65,7 @@
|
||||
@@ -49,11 +55,13 @@
|
||||
this.field_82425_h = new ModelBiped(0.5F);
|
||||
}
|
||||
|
||||
+ @Deprecated //Use the more sensitve version getArmorResource below
|
||||
public static ResourceLocation func_110857_a(ItemArmor par0ItemArmor, int par1)
|
||||
{
|
||||
return func_110858_a(par0ItemArmor, par1, (String)null);
|
||||
}
|
||||
|
||||
+ @Deprecated //Use the more sensitve version getArmorResource below
|
||||
public static ResourceLocation func_110858_a(ItemArmor par0ItemArmor, int par1, String par2Str)
|
||||
{
|
||||
String s1 = String.format("textures/models/armor/%s_layer_%d%s.png", new Object[] {bipedArmorFilenamePrefix[par0ItemArmor.renderIndex], Integer.valueOf(par1 == 2 ? 2 : 1), par2Str == null ? "" : String.format("_%s", new Object[]{par2Str})});
|
||||
@@ -68,6 +76,33 @@
|
||||
return resourcelocation;
|
||||
}
|
||||
|
||||
+ /**
|
||||
+ * More generic ForgeHook version of the above function, it allows for Items to have more control over what texture they provide.
|
||||
+ *
|
||||
+ * @param entity Entity wearing the armor
|
||||
+ * @param stack ItemStack for the armor
|
||||
+ * @param slot Slot ID that the item is in
|
||||
+ * @param type Subtype, can be null or "overlay"
|
||||
+ * @return ResourceLocation pointing at the armor's texture
|
||||
+ */
|
||||
+ public static ResourceLocation getArmorResource(Entity entity, ItemStack stack, int slot, String type)
|
||||
+ {
|
||||
+ ItemArmor item = (ItemArmor)stack.getItem();
|
||||
+ String s1 = String.format("textures/models/armor/%s_layer_%d%s.png",
|
||||
+ bipedArmorFilenamePrefix[item.renderIndex], (slot == 2 ? 2 : 1), type == null ? "" : String.format("_%s", type));
|
||||
+
|
||||
+ s1 = ForgeHooksClient.getArmorTexture(entity, stack, s1, slot, (slot == 2 ? 2 : 1), type);
|
||||
+ ResourceLocation resourcelocation = (ResourceLocation)field_110859_k.get(s1);
|
||||
+
|
||||
+ if (resourcelocation == null)
|
||||
+ {
|
||||
+ resourcelocation = new ResourceLocation(s1);
|
||||
+ field_110859_k.put(s1, resourcelocation);
|
||||
+ }
|
||||
+
|
||||
+ return resourcelocation;
|
||||
+ }
|
||||
+
|
||||
protected int func_130006_a(EntityLiving par1EntityLiving, int par2, float par3)
|
||||
{
|
||||
ItemStack itemstack = par1EntityLiving.getCurrentArmor(3 - par2);
|
||||
@@ -79,7 +114,7 @@
|
||||
if (item instanceof ItemArmor)
|
||||
{
|
||||
ItemArmor itemarmor = (ItemArmor)item;
|
||||
- this.loadTexture("/armor/" + bipedArmorFilenamePrefix[itemarmor.renderIndex] + "_" + (par2 == 2 ? 2 : 1) + ".png");
|
||||
+ this.loadTexture(ForgeHooksClient.getArmorTexture(par1EntityLiving, itemstack, "/armor/" + bipedArmorFilenamePrefix[itemarmor.renderIndex] + "_" + (par2 == 2 ? 2 : 1) + ".png", par2, 1));
|
||||
- this.func_110776_a(func_110857_a(itemarmor, par2));
|
||||
+ this.func_110776_a(getArmorResource(par1EntityLiving, itemstack, par2, null));
|
||||
ModelBiped modelbiped = par2 == 2 ? this.field_82425_h : this.field_82423_g;
|
||||
modelbiped.bipedHead.showModel = par2 == 0;
|
||||
modelbiped.bipedHeadwear.showModel = par2 == 0;
|
||||
@@ -68,6 +74,7 @@
|
||||
@@ -88,15 +123,17 @@
|
||||
modelbiped.bipedLeftArm.showModel = par2 == 1;
|
||||
modelbiped.bipedRightLeg.showModel = par2 == 2 || par2 == 3;
|
||||
modelbiped.bipedLeftLeg.showModel = par2 == 2 || par2 == 3;
|
||||
+ modelbiped = ForgeHooksClient.getArmorModel(par1EntityLiving, itemstack, par2, modelbiped);
|
||||
this.setRenderPassModel(modelbiped);
|
||||
|
||||
if (modelbiped != null)
|
||||
@@ -87,9 +94,10 @@
|
||||
|
||||
modelbiped.onGround = this.mainModel.onGround;
|
||||
modelbiped.isRiding = this.mainModel.isRiding;
|
||||
modelbiped.isChild = this.mainModel.isChild;
|
||||
float f1 = 1.0F;
|
||||
|
||||
- if (itemarmor.getArmorMaterial() == EnumArmorMaterial.CLOTH)
|
||||
|
@ -47,16 +94,16 @@
|
|||
float f2 = (float)(j >> 16 & 255) / 255.0F;
|
||||
float f3 = (float)(j >> 8 & 255) / 255.0F;
|
||||
float f4 = (float)(j & 255) / 255.0F;
|
||||
@@ -128,7 +136,7 @@
|
||||
@@ -134,7 +171,7 @@
|
||||
|
||||
if (item instanceof ItemArmor)
|
||||
{
|
||||
ItemArmor itemarmor = (ItemArmor)item;
|
||||
- this.loadTexture("/armor/" + bipedArmorFilenamePrefix[itemarmor.renderIndex] + "_" + (par2 == 2 ? 2 : 1) + "_b.png");
|
||||
+ this.loadTexture(ForgeHooksClient.getArmorTexture(par1EntityLiving, itemstack, "/armor/" + bipedArmorFilenamePrefix[itemarmor.renderIndex] + "_" + (par2 == 2 ? 2 : 1) + "_b.png", par2, 2));
|
||||
- this.func_110776_a(func_110858_a((ItemArmor)item, par2, "overlay"));
|
||||
+ this.func_110776_a(getArmorResource(par1EntityLiving, itemstack, par2, "overlay"));
|
||||
float f1 = 1.0F;
|
||||
GL11.glColor3f(f1, f1, f1);
|
||||
}
|
||||
@@ -174,9 +182,12 @@
|
||||
@@ -185,9 +222,12 @@
|
||||
GL11.glPushMatrix();
|
||||
this.modelBipedMain.bipedHead.postRender(0.0625F);
|
||||
|
||||
|
@ -72,7 +119,7 @@
|
|||
{
|
||||
f2 = 0.625F;
|
||||
GL11.glTranslatef(0.0F, -0.25F, 0.0F);
|
||||
@@ -218,7 +229,10 @@
|
||||
@@ -229,7 +269,10 @@
|
||||
this.modelBipedMain.bipedRightArm.postRender(0.0625F);
|
||||
GL11.glTranslatef(-0.0625F, 0.4375F, 0.0625F);
|
||||
|
||||
|
@ -84,7 +131,7 @@
|
|||
{
|
||||
f2 = 0.5F;
|
||||
GL11.glTranslatef(0.0F, 0.1875F, -0.3125F);
|
||||
@@ -265,7 +279,10 @@
|
||||
@@ -276,7 +319,10 @@
|
||||
|
||||
if (itemstack.getItem().requiresMultipleRenderPasses())
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/renderer/entity/RenderItem.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/renderer/entity/RenderItem.java
|
||||
@@ -19,6 +19,8 @@
|
||||
@@ -21,6 +21,8 @@
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL12;
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
|||
@SideOnly(Side.CLIENT)
|
||||
public class RenderItem extends Render
|
||||
{
|
||||
@@ -49,29 +51,9 @@
|
||||
@@ -53,29 +55,9 @@
|
||||
if (itemstack.getItem() != null)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
|
@ -41,11 +41,11 @@
|
|||
|
||||
GL11.glTranslatef((float)par2, (float)par4 + f2, (float)par6);
|
||||
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
|
||||
@@ -80,9 +62,18 @@
|
||||
float f5;
|
||||
@@ -84,9 +66,18 @@
|
||||
float f6;
|
||||
int i;
|
||||
|
||||
- if (itemstack.getItemSpriteNumber() == 0 && Block.blocksList[itemstack.itemID] != null && RenderBlocks.renderItemIn3d(Block.blocksList[itemstack.itemID].getRenderType()))
|
||||
- if (itemstack.getItemSpriteNumber() == 0 && itemstack.itemID < Block.blocksList.length && Block.blocksList[itemstack.itemID] != null && RenderBlocks.renderItemIn3d(Block.blocksList[itemstack.itemID].getRenderType()))
|
||||
- {
|
||||
- Block block = Block.blocksList[itemstack.itemID];
|
||||
+ Block block = null;
|
||||
|
@ -63,9 +63,9 @@
|
|||
GL11.glRotatef(f3, 0.0F, 1.0F, 0.0F);
|
||||
|
||||
if (renderInFrame)
|
||||
@@ -138,10 +129,10 @@
|
||||
|
||||
this.loadTexture("/gui/items.png");
|
||||
@@ -139,10 +130,10 @@
|
||||
GL11.glScalef(0.5F, 0.5F, 0.5F);
|
||||
}
|
||||
|
||||
- for (int k = 0; k <= 1; ++k)
|
||||
+ for (int k = 0; k < itemstack.getItem().getRenderPasses(itemstack.getItemDamage()); ++k)
|
||||
|
@ -76,7 +76,7 @@
|
|||
f8 = 1.0F;
|
||||
|
||||
if (this.renderWithColor)
|
||||
@@ -241,32 +232,26 @@
|
||||
@@ -240,32 +231,26 @@
|
||||
f11 = 0.021875F;
|
||||
ItemStack itemstack = par1EntityItem.getEntityItem();
|
||||
int j = itemstack.stackSize;
|
||||
|
@ -122,9 +122,9 @@
|
|||
+
|
||||
+ if (itemstack.getItemSpriteNumber() == 0)
|
||||
{
|
||||
this.loadTexture("/terrain.png");
|
||||
this.func_110776_a(TextureMap.field_110575_b);
|
||||
}
|
||||
@@ -356,10 +341,10 @@
|
||||
@@ -353,10 +338,10 @@
|
||||
float f1;
|
||||
float f2;
|
||||
|
||||
|
@ -132,41 +132,41 @@
|
|||
+ Block block = (k < Block.blocksList.length ? Block.blocksList[k] : null);
|
||||
+ if (par3ItemStack.getItemSpriteNumber() == 0 && block != null && RenderBlocks.renderItemIn3d(Block.blocksList[k].getRenderType()))
|
||||
{
|
||||
par2RenderEngine.bindTexture("/terrain.png");
|
||||
par2TextureManager.func_110577_a(TextureMap.field_110575_b);
|
||||
- Block block = Block.blocksList[k];
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float)(par4 - 2), (float)(par5 + 3), -3.0F + this.zLevel);
|
||||
GL11.glScalef(10.0F, 10.0F, 10.0F);
|
||||
@@ -390,11 +375,11 @@
|
||||
if (Item.itemsList[k].requiresMultipleRenderPasses())
|
||||
{
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
- par2RenderEngine.bindTexture("/gui/items.png");
|
||||
@@ -383,11 +368,11 @@
|
||||
else if (Item.itemsList[k].requiresMultipleRenderPasses())
|
||||
{
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
- par2TextureManager.func_110577_a(TextureMap.field_110576_c);
|
||||
-
|
||||
- for (j1 = 0; j1 <= 1; ++j1)
|
||||
- {
|
||||
- Icon icon1 = Item.itemsList[k].getIconFromDamageForRenderPass(l, j1);
|
||||
+ par2RenderEngine.bindTexture(par3ItemStack.getItemSpriteNumber() == 0 ? "/terrain.png" : "/gui/items.png");
|
||||
- for (int j1 = 0; j1 <= 1; ++j1)
|
||||
- {
|
||||
- Icon icon = Item.itemsList[k].getIconFromDamageForRenderPass(l, j1);
|
||||
+ par2TextureManager.func_110577_a(par3ItemStack.getItemSpriteNumber() == 0 ? TextureMap.field_110575_b : TextureMap.field_110576_c);
|
||||
+
|
||||
+ for (j1 = 0; j1 < Item.itemsList[k].getRenderPasses(l); ++j1)
|
||||
+ {
|
||||
+ Icon icon1 = Item.itemsList[k].getIcon(par3ItemStack, j1);
|
||||
int k1 = Item.itemsList[k].getColorFromItemStack(par3ItemStack, j1);
|
||||
f = (float)(k1 >> 16 & 255) / 255.0F;
|
||||
f1 = (float)(k1 >> 8 & 255) / 255.0F;
|
||||
@@ -453,7 +438,10 @@
|
||||
+ for (int j1 = 0; j1 <= Item.itemsList[k].getRenderPasses(l); ++j1)
|
||||
+ {
|
||||
+ Icon icon = Item.itemsList[k].getIcon(par3ItemStack, j1);
|
||||
int k1 = Item.itemsList[k].getColorFromItemStack(par3ItemStack, j1);
|
||||
f1 = (float)(k1 >> 16 & 255) / 255.0F;
|
||||
f2 = (float)(k1 >> 8 & 255) / 255.0F;
|
||||
@@ -435,7 +420,10 @@
|
||||
{
|
||||
if (par3ItemStack != null)
|
||||
{
|
||||
- this.renderItemIntoGUI(par1FontRenderer, par2RenderEngine, par3ItemStack, par4, par5);
|
||||
+ if (!ForgeHooksClient.renderInventoryItem(renderBlocks, par2RenderEngine, par3ItemStack, renderWithColor, zLevel, (float)par4, (float)par5))
|
||||
- this.func_110795_a(par1FontRenderer, par2TextureManager, par3ItemStack, par4, par5);
|
||||
+ if (!ForgeHooksClient.renderInventoryItem(renderBlocks, par2TextureManager, par3ItemStack, renderWithColor, zLevel, (float)par4, (float)par5))
|
||||
+ {
|
||||
+ this.renderItemIntoGUI(par1FontRenderer, par2RenderEngine, par3ItemStack, par4, par5);
|
||||
+ this.func_110795_a(par1FontRenderer, par2TextureManager, par3ItemStack, par4, par5);
|
||||
+ }
|
||||
|
||||
if (par3ItemStack.hasEffect())
|
||||
{
|
||||
@@ -590,4 +578,47 @@
|
||||
@@ -573,4 +561,47 @@
|
||||
{
|
||||
this.doRenderItem((EntityItem)par1Entity, par2, par4, par6, par8, par9);
|
||||
}
|
||||
|
|
|
@ -1,44 +0,0 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/renderer/entity/RenderLiving.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/renderer/entity/RenderLiving.java
|
||||
@@ -15,6 +15,9 @@
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.projectile.EntityArrow;
|
||||
import net.minecraft.util.MathHelper;
|
||||
+import net.minecraftforge.client.event.RenderLivingEvent;
|
||||
+import net.minecraftforge.common.MinecraftForge;
|
||||
+
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL12;
|
||||
|
||||
@@ -25,6 +28,8 @@
|
||||
|
||||
/** The model to be used during the render passes. */
|
||||
protected ModelBase renderPassModel;
|
||||
+ public static float NAME_TAG_RANGE = 64.0f;
|
||||
+ public static float NAME_TAG_RANGE_SNEAK = 32.0f;
|
||||
|
||||
public RenderLiving(ModelBase par1ModelBase, float par2)
|
||||
{
|
||||
@@ -413,12 +418,13 @@
|
||||
*/
|
||||
protected void passSpecialRender(EntityLiving par1EntityLiving, double par2, double par4, double par6)
|
||||
{
|
||||
+ if (MinecraftForge.EVENT_BUS.post(new RenderLivingEvent.Specials.Pre(par1EntityLiving, this))) return;
|
||||
if (Minecraft.isGuiEnabled() && par1EntityLiving != this.renderManager.livingPlayer && !par1EntityLiving.func_98034_c(Minecraft.getMinecraft().thePlayer) && (par1EntityLiving.func_94059_bO() || par1EntityLiving.func_94056_bM() && par1EntityLiving == this.renderManager.field_96451_i))
|
||||
{
|
||||
float f = 1.6F;
|
||||
float f1 = 0.016666668F * f;
|
||||
double d3 = par1EntityLiving.getDistanceSqToEntity(this.renderManager.livingPlayer);
|
||||
- float f2 = par1EntityLiving.isSneaking() ? 32.0F : 64.0F;
|
||||
+ float f2 = par1EntityLiving.isSneaking() ? NAME_TAG_RANGE_SNEAK : NAME_TAG_RANGE;
|
||||
|
||||
if (d3 < (double)(f2 * f2))
|
||||
{
|
||||
@@ -462,6 +468,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
+ MinecraftForge.EVENT_BUS.post(new RenderLivingEvent.Specials.Post(par1EntityLiving, this));
|
||||
}
|
||||
|
||||
protected void func_96449_a(EntityLiving par1EntityLiving, double par2, double par4, double par6, String par8Str, float par9, double par10)
|
|
@ -1,22 +1,22 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/renderer/entity/RenderManager.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/renderer/entity/RenderManager.java
|
||||
@@ -221,12 +221,14 @@
|
||||
@@ -227,12 +227,14 @@
|
||||
|
||||
if (par4EntityLiving.isPlayerSleeping())
|
||||
if (par4EntityLivingBase.isPlayerSleeping())
|
||||
{
|
||||
- int i = par1World.getBlockId(MathHelper.floor_double(par4EntityLiving.posX), MathHelper.floor_double(par4EntityLiving.posY), MathHelper.floor_double(par4EntityLiving.posZ));
|
||||
- int i = par1World.getBlockId(MathHelper.floor_double(par4EntityLivingBase.posX), MathHelper.floor_double(par4EntityLivingBase.posY), MathHelper.floor_double(par4EntityLivingBase.posZ));
|
||||
-
|
||||
- if (i == Block.bed.blockID)
|
||||
+ int x = MathHelper.floor_double(par4EntityLiving.posX);
|
||||
+ int y = MathHelper.floor_double(par4EntityLiving.posY);
|
||||
+ int z = MathHelper.floor_double(par4EntityLiving.posZ);
|
||||
+ int x = MathHelper.floor_double(par4EntityLivingBase.posX);
|
||||
+ int y = MathHelper.floor_double(par4EntityLivingBase.posY);
|
||||
+ int z = MathHelper.floor_double(par4EntityLivingBase.posZ);
|
||||
+ Block block = Block.blocksList[par1World.getBlockId(x, y, z)];
|
||||
+
|
||||
+ if (block != null && block.isBed(par1World, x, y, z, par4EntityLiving))
|
||||
+ if (block != null && block.isBed(par1World, x, y, z, par4EntityLivingBase))
|
||||
{
|
||||
- int j = par1World.getBlockMetadata(MathHelper.floor_double(par4EntityLiving.posX), MathHelper.floor_double(par4EntityLiving.posY), MathHelper.floor_double(par4EntityLiving.posZ));
|
||||
- int j = par1World.getBlockMetadata(MathHelper.floor_double(par4EntityLivingBase.posX), MathHelper.floor_double(par4EntityLivingBase.posY), MathHelper.floor_double(par4EntityLivingBase.posZ));
|
||||
- int k = j & 3;
|
||||
+ int k = block.getBedDirection(par1World, x, y, z);;
|
||||
+ int k = block.getBedDirection(par1World, x, y, z);
|
||||
this.playerViewY = (float)(k * 90 + 180);
|
||||
this.playerViewX = 0.0F;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/renderer/entity/RenderPlayer.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/renderer/entity/RenderPlayer.java
|
||||
@@ -19,7 +19,16 @@
|
||||
@@ -22,7 +22,16 @@
|
||||
import net.minecraft.scoreboard.ScoreObjective;
|
||||
import net.minecraft.scoreboard.Scoreboard;
|
||||
import net.minecraft.util.MathHelper;
|
||||
|
@ -16,23 +16,12 @@
|
|||
+import static net.minecraftforge.client.IItemRenderer.ItemRendererHelper.BLOCK_3D;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class RenderPlayer extends RenderLiving
|
||||
@@ -28,6 +37,10 @@
|
||||
private ModelBiped modelArmorChestplate;
|
||||
private ModelBiped modelArmor;
|
||||
public static String[] armorFilenamePrefix = new String[] {"cloth", "chain", "iron", "diamond", "gold"};
|
||||
+ @Deprecated //Old dead code, tags are now in RenderLiving
|
||||
+ public static float NAME_TAG_RANGE = 64.0f;
|
||||
+ @Deprecated //Old dead code, tags are now in RenderLiving
|
||||
+ public static float NAME_TAG_RANGE_SNEAK = 32.0f;
|
||||
|
||||
public RenderPlayer()
|
||||
public class RenderPlayer extends RendererLivingEntity
|
||||
@@ -44,6 +53,13 @@
|
||||
{
|
||||
@@ -49,6 +62,13 @@
|
||||
{
|
||||
ItemStack itemstack = par1EntityPlayer.inventory.armorItemInSlot(3 - par2);
|
||||
ItemStack itemstack = par1AbstractClientPlayer.inventory.armorItemInSlot(3 - par2);
|
||||
|
||||
+ RenderPlayerEvent.SetArmorModel event = new RenderPlayerEvent.SetArmorModel(par1EntityPlayer, this, 3 - par2, par3, itemstack);
|
||||
+ RenderPlayerEvent.SetArmorModel event = new RenderPlayerEvent.SetArmorModel(par1AbstractClientPlayer, this, 3 - par2, par3, itemstack);
|
||||
+ MinecraftForge.EVENT_BUS.post(event);
|
||||
+ if (event.result != -1)
|
||||
+ {
|
||||
|
@ -42,25 +31,24 @@
|
|||
if (itemstack != null)
|
||||
{
|
||||
Item item = itemstack.getItem();
|
||||
@@ -56,7 +76,7 @@
|
||||
@@ -51,7 +67,7 @@
|
||||
if (item instanceof ItemArmor)
|
||||
{
|
||||
ItemArmor itemarmor = (ItemArmor)item;
|
||||
- this.loadTexture("/armor/" + armorFilenamePrefix[itemarmor.renderIndex] + "_" + (par2 == 2 ? 2 : 1) + ".png");
|
||||
+ this.loadTexture(ForgeHooksClient.getArmorTexture(par1EntityPlayer, itemstack, "/armor/" + armorFilenamePrefix[itemarmor.renderIndex] + "_" + (par2 == 2 ? 2 : 1) + ".png", par2, 1));
|
||||
- this.func_110776_a(RenderBiped.func_110857_a(itemarmor, par2));
|
||||
+ this.func_110776_a(RenderBiped.getArmorResource(par1AbstractClientPlayer, itemstack, par2, null));
|
||||
ModelBiped modelbiped = par2 == 2 ? this.modelArmor : this.modelArmorChestplate;
|
||||
modelbiped.bipedHead.showModel = par2 == 0;
|
||||
modelbiped.bipedHeadwear.showModel = par2 == 0;
|
||||
@@ -65,6 +85,7 @@
|
||||
@@ -60,15 +76,17 @@
|
||||
modelbiped.bipedLeftArm.showModel = par2 == 1;
|
||||
modelbiped.bipedRightLeg.showModel = par2 == 2 || par2 == 3;
|
||||
modelbiped.bipedLeftLeg.showModel = par2 == 2 || par2 == 3;
|
||||
+ modelbiped = ForgeHooksClient.getArmorModel(par1EntityPlayer, itemstack, par2, modelbiped);
|
||||
+ modelbiped = ForgeHooksClient.getArmorModel(par1AbstractClientPlayer, itemstack, par2, modelbiped);
|
||||
this.setRenderPassModel(modelbiped);
|
||||
|
||||
if (modelbiped != null)
|
||||
@@ -84,9 +105,10 @@
|
||||
|
||||
modelbiped.onGround = this.mainModel.onGround;
|
||||
modelbiped.isRiding = this.mainModel.isRiding;
|
||||
modelbiped.isChild = this.mainModel.isChild;
|
||||
float f1 = 1.0F;
|
||||
|
||||
- if (itemarmor.getArmorMaterial() == EnumArmorMaterial.CLOTH)
|
||||
|
@ -73,36 +61,36 @@
|
|||
float f2 = (float)(j >> 16 & 255) / 255.0F;
|
||||
float f3 = (float)(j >> 8 & 255) / 255.0F;
|
||||
float f4 = (float)(j & 255) / 255.0F;
|
||||
@@ -125,7 +147,7 @@
|
||||
@@ -106,7 +124,7 @@
|
||||
|
||||
if (item instanceof ItemArmor)
|
||||
{
|
||||
ItemArmor itemarmor = (ItemArmor)item;
|
||||
- this.loadTexture("/armor/" + armorFilenamePrefix[itemarmor.renderIndex] + "_" + (par2 == 2 ? 2 : 1) + "_b.png");
|
||||
+ this.loadTexture(ForgeHooksClient.getArmorTexture(par1EntityPlayer, itemstack, "/armor/" + armorFilenamePrefix[itemarmor.renderIndex] + "_" + (par2 == 2 ? 2 : 1) + "_b.png", par2, 2));
|
||||
- this.func_110776_a(RenderBiped.func_110858_a((ItemArmor)item, par2, "overlay"));
|
||||
+ this.func_110776_a(RenderBiped.getArmorResource(par1AbstractClientPlayer, itemstack, par2, "overlay"));
|
||||
float f1 = 1.0F;
|
||||
GL11.glColor3f(f1, f1, f1);
|
||||
}
|
||||
@@ -134,6 +156,7 @@
|
||||
@@ -115,6 +133,7 @@
|
||||
|
||||
public void renderPlayer(EntityPlayer par1EntityPlayer, double par2, double par4, double par6, float par8, float par9)
|
||||
public void func_110819_a(AbstractClientPlayer par1AbstractClientPlayer, double par2, double par4, double par6, float par8, float par9)
|
||||
{
|
||||
+ if (MinecraftForge.EVENT_BUS.post(new RenderPlayerEvent.Pre(par1EntityPlayer, this))) return;
|
||||
+ if (MinecraftForge.EVENT_BUS.post(new RenderPlayerEvent.Pre(par1AbstractClientPlayer, this))) return;
|
||||
float f2 = 1.0F;
|
||||
GL11.glColor3f(f2, f2, f2);
|
||||
ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem();
|
||||
@@ -165,6 +188,7 @@
|
||||
ItemStack itemstack = par1AbstractClientPlayer.inventory.getCurrentItem();
|
||||
@@ -146,6 +165,7 @@
|
||||
this.modelArmorChestplate.aimedBow = this.modelArmor.aimedBow = this.modelBipedMain.aimedBow = false;
|
||||
this.modelArmorChestplate.isSneak = this.modelArmor.isSneak = this.modelBipedMain.isSneak = false;
|
||||
this.modelArmorChestplate.heldItemRight = this.modelArmor.heldItemRight = this.modelBipedMain.heldItemRight = 0;
|
||||
+ MinecraftForge.EVENT_BUS.post(new RenderPlayerEvent.Post(par1EntityPlayer, this));
|
||||
+ MinecraftForge.EVENT_BUS.post(new RenderPlayerEvent.Post(par1AbstractClientPlayer, this));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -172,21 +196,30 @@
|
||||
*/
|
||||
protected void renderSpecials(EntityPlayer par1EntityPlayer, float par2)
|
||||
protected ResourceLocation func_110817_a(AbstractClientPlayer par1AbstractClientPlayer)
|
||||
@@ -155,21 +175,30 @@
|
||||
|
||||
protected void func_110820_a(AbstractClientPlayer par1AbstractClientPlayer, float par2)
|
||||
{
|
||||
+ RenderPlayerEvent.Specials.Pre event = new RenderPlayerEvent.Specials.Pre(par1EntityPlayer, this, par2);
|
||||
+ RenderPlayerEvent.Specials.Pre event = new RenderPlayerEvent.Specials.Pre(par1AbstractClientPlayer, this, par2);
|
||||
+ if (MinecraftForge.EVENT_BUS.post(event))
|
||||
+ {
|
||||
+ return;
|
||||
|
@ -110,9 +98,9 @@
|
|||
+
|
||||
float f1 = 1.0F;
|
||||
GL11.glColor3f(f1, f1, f1);
|
||||
super.renderEquippedItems(par1EntityPlayer, par2);
|
||||
super.renderArrowsStuckInEntity(par1EntityPlayer, par2);
|
||||
ItemStack itemstack = par1EntityPlayer.inventory.armorItemInSlot(3);
|
||||
super.renderEquippedItems(par1AbstractClientPlayer, par2);
|
||||
super.renderArrowsStuckInEntity(par1AbstractClientPlayer, par2);
|
||||
ItemStack itemstack = par1AbstractClientPlayer.inventory.armorItemInSlot(3);
|
||||
|
||||
- if (itemstack != null)
|
||||
+ if (itemstack != null && event.renderHelmet)
|
||||
|
@ -133,27 +121,26 @@
|
|||
{
|
||||
f2 = 0.625F;
|
||||
GL11.glTranslatef(0.0F, -0.25F, 0.0F);
|
||||
@@ -238,7 +271,7 @@
|
||||
|
||||
@@ -221,6 +250,7 @@
|
||||
boolean flag = par1AbstractClientPlayer.func_110310_o().func_110557_a();
|
||||
boolean flag1 = !par1AbstractClientPlayer.isInvisible();
|
||||
boolean flag2 = !par1AbstractClientPlayer.getHideCape();
|
||||
+ flag = event.renderCape && flag;
|
||||
float f6;
|
||||
|
||||
- if (this.loadDownloadableImageTexture(par1EntityPlayer.cloakUrl, (String)null) && !par1EntityPlayer.isInvisible() && !par1EntityPlayer.getHideCape())
|
||||
+ if (event.renderCape && this.loadDownloadableImageTexture(par1EntityPlayer.cloakUrl, (String)null) && !par1EntityPlayer.isInvisible() && !par1EntityPlayer.getHideCape())
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef(0.0F, 0.0F, 0.125F);
|
||||
@@ -286,7 +319,7 @@
|
||||
if (flag && flag1 && flag2)
|
||||
@@ -272,7 +302,7 @@
|
||||
|
||||
ItemStack itemstack1 = par1EntityPlayer.inventory.getCurrentItem();
|
||||
ItemStack itemstack1 = par1AbstractClientPlayer.inventory.getCurrentItem();
|
||||
|
||||
- if (itemstack1 != null)
|
||||
+ if (itemstack1 != null && event.renderItem)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
this.modelBipedMain.bipedRightArm.postRender(0.0625F);
|
||||
@@ -304,7 +337,11 @@
|
||||
enumaction = itemstack1.getItemUseAction();
|
||||
}
|
||||
@@ -292,7 +322,11 @@
|
||||
|
||||
float f11;
|
||||
|
||||
- if (itemstack1.itemID < 256 && RenderBlocks.renderItemIn3d(Block.blocksList[itemstack1.itemID].getRenderType()))
|
||||
+ IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(itemstack1, EQUIPPED);
|
||||
|
@ -162,9 +149,9 @@
|
|||
+
|
||||
+ if (is3D || (isBlock && RenderBlocks.renderItemIn3d(Block.blocksList[itemstack1.itemID].getRenderType())))
|
||||
{
|
||||
f3 = 0.5F;
|
||||
f11 = 0.5F;
|
||||
GL11.glTranslatef(0.0F, 0.1875F, -0.3125F);
|
||||
@@ -361,7 +398,7 @@
|
||||
@@ -349,7 +383,7 @@
|
||||
|
||||
if (itemstack1.getItem().requiresMultipleRenderPasses())
|
||||
{
|
||||
|
@ -172,12 +159,12 @@
|
|||
+ for (j = 0; j < itemstack1.getItem().getRenderPasses(itemstack1.getItemDamage()); ++j)
|
||||
{
|
||||
int k = itemstack1.getItem().getColorFromItemStack(itemstack1, j);
|
||||
f12 = (float)(k >> 16 & 255) / 255.0F;
|
||||
@@ -383,6 +420,7 @@
|
||||
f13 = (float)(k >> 16 & 255) / 255.0F;
|
||||
@@ -371,6 +405,7 @@
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
+ MinecraftForge.EVENT_BUS.post(new RenderPlayerEvent.Specials.Post(par1EntityPlayer, this, par2));
|
||||
+ MinecraftForge.EVENT_BUS.post(new RenderPlayerEvent.Specials.Post(par1AbstractClientPlayer, this, par2));
|
||||
}
|
||||
|
||||
protected void renderPlayerScale(EntityPlayer par1EntityPlayer, float par2)
|
||||
protected void renderPlayerScale(AbstractClientPlayer par1AbstractClientPlayer, float par2)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/renderer/entity/RenderSnowMan.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/renderer/entity/RenderSnowMan.java
|
||||
@@ -7,8 +7,14 @@
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
@@ -9,8 +9,14 @@
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.monster.EntitySnowman;
|
||||
+import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
@ -15,7 +15,7 @@
|
|||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class RenderSnowMan extends RenderLiving
|
||||
@@ -31,12 +37,15 @@
|
||||
@@ -35,12 +41,15 @@
|
||||
super.renderEquippedItems(par1EntitySnowman, par2);
|
||||
ItemStack itemstack = new ItemStack(Block.pumpkin, 1);
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/renderer/texture/Stitcher.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/renderer/texture/Stitcher.java
|
||||
@@ -182,7 +182,7 @@
|
||||
@@ -184,7 +184,7 @@
|
||||
|
||||
if (flag4 ^ flag5)
|
||||
{
|
||||
|
|
|
@ -1,105 +1,40 @@
|
|||
--- ../src_base/minecraft/net/minecraft/client/renderer/texture/TextureMap.java
|
||||
+++ ../src_work/minecraft/net/minecraft/client/renderer/texture/TextureMap.java
|
||||
@@ -20,6 +20,8 @@
|
||||
import net.minecraft.client.texturepacks.ITexturePack;
|
||||
@@ -21,6 +21,7 @@
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.util.ReportedException;
|
||||
+import net.minecraftforge.client.ForgeHooksClient;
|
||||
+import net.minecraftforge.common.ForgeDummyContainer;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class TextureMap implements IconRegister
|
||||
@@ -48,6 +50,7 @@
|
||||
public void refreshTextures()
|
||||
{
|
||||
this.textureStichedMap.clear();
|
||||
public class TextureMap extends AbstractTexture implements TickableTextureObject, IconRegister
|
||||
@@ -62,6 +63,7 @@
|
||||
Stitcher stitcher = new Stitcher(i, i, true);
|
||||
this.mapTexturesStiched.clear();
|
||||
this.listTextureStiched.clear();
|
||||
+ ForgeHooksClient.onTextureStitchedPre(this);
|
||||
int i;
|
||||
int j;
|
||||
|
||||
@@ -91,14 +94,22 @@
|
||||
StitchHolder stitchholder = new StitchHolder(texture);
|
||||
stitcher.addStitchHolder(stitchholder);
|
||||
hashmap.put(stitchholder, Arrays.asList(new Texture[] {texture}));
|
||||
- Iterator iterator = this.textureStichedMap.keySet().iterator();
|
||||
-
|
||||
- while (iterator.hasNext())
|
||||
- {
|
||||
- String s = (String)iterator.next();
|
||||
- String s1 = this.basePath + s + this.textureExt;
|
||||
- List list = TextureManager.instance().createTexture(s1);
|
||||
-
|
||||
+
|
||||
+ for (Map.Entry<String, TextureStitched> entry : ((Map<String, TextureStitched>)textureStichedMap).entrySet())
|
||||
+ {
|
||||
+ String name = entry.getKey();
|
||||
+ String path;
|
||||
+ if (name.indexOf(':') == -1)
|
||||
+ {
|
||||
+ path = this.basePath + name + this.textureExt;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ String domain = name.substring(0, name.indexOf(':'));
|
||||
+ String file = name.substring(name.indexOf(':') + 1);
|
||||
+ path = "mods/" + domain +"/" + basePath + file + textureExt;
|
||||
+ }
|
||||
+ List list = TextureManager.instance().createNewTexture(name, path, entry.getValue());
|
||||
if (!list.isEmpty())
|
||||
{
|
||||
StitchHolder stitchholder1 = new StitchHolder((Texture)list.get(0));
|
||||
@@ -117,7 +128,7 @@
|
||||
}
|
||||
|
||||
this.atlasTexture = stitcher.getTexture();
|
||||
- iterator = stitcher.getStichSlots().iterator();
|
||||
+ Iterator iterator = stitcher.getStichSlots().iterator();
|
||||
Iterator iterator = this.field_110574_e.entrySet().iterator();
|
||||
|
||||
while (iterator.hasNext())
|
||||
{
|
||||
@@ -151,7 +162,17 @@
|
||||
if (list1.size() > 1)
|
||||
{
|
||||
this.listTextureStiched.add(texturestitched);
|
||||
- String s3 = this.basePath + s2 + ".txt";
|
||||
+ String s3;
|
||||
+ if (s2.indexOf(':') == -1)
|
||||
+ {
|
||||
+ s3 = basePath + s2 + ".txt";
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ String domain = s2.substring(0, s2.indexOf(':'));
|
||||
+ String file = s2.substring(s2.indexOf(':') + 1);
|
||||
+ s3 = "mods/" + domain + "/" + basePath + file + ".txt";
|
||||
+ }
|
||||
ITexturePack itexturepack = Minecraft.getMinecraft().texturePackList.getSelectedTexturePack();
|
||||
boolean flag1 = !itexturepack.func_98138_b("/" + this.basePath + s2 + ".png", false);
|
||||
|
||||
@@ -177,7 +198,11 @@
|
||||
texturestitched1.copyFrom(this.missingTextureStiched);
|
||||
@@ -142,6 +144,7 @@
|
||||
textureatlassprite1 = (TextureAtlasSprite)iterator1.next();
|
||||
textureatlassprite1.copyFrom(this.missingImage);
|
||||
}
|
||||
|
||||
- this.atlasTexture.writeImage("debug.stitched_" + this.textureName + ".png");
|
||||
+ if (!ForgeDummyContainer.disableStitchedFileSaving)
|
||||
+ {
|
||||
+ this.atlasTexture.writeImage("debug.stitched_" + this.textureName + ".png");
|
||||
+ }
|
||||
+ ForgeHooksClient.onTextureStitchedPost(this);
|
||||
this.atlasTexture.uploadTexture();
|
||||
}
|
||||
|
||||
@@ -202,6 +227,7 @@
|
||||
private void func_110573_f()
|
||||
@@ -212,6 +215,7 @@
|
||||
if (par1Str == null)
|
||||
{
|
||||
(new RuntimeException("Don\'t register null!")).printStackTrace();
|
||||
+ par1Str = "null"; //Don't allow things to actually register null..
|
||||
}
|
||||
|
||||
TextureStitched texturestitched = (TextureStitched)this.textureStichedMap.get(par1Str);
|
||||
@@ -219,4 +245,37 @@
|
||||
Object object = (TextureAtlasSprite)this.field_110574_e.get(par1Str);
|
||||
@@ -253,4 +257,37 @@
|
||||
{
|
||||
return this.missingTextureStiched;
|
||||
this.updateAnimations();
|
||||
}
|
||||
+
|
||||
+ //===================================================================================================
|
||||
|
@ -107,14 +42,14 @@
|
|||
+ //===================================================================================================
|
||||
+ /**
|
||||
+ * Grabs the registered entry for the specified name, returning null if there was not a entry.
|
||||
+ * Opposed to func_94245_a, this will not instantiate the entry, useful to test if a maping exists.
|
||||
+ * Opposed to registerIcon, this will not instantiate the entry, useful to test if a mapping exists.
|
||||
+ *
|
||||
+ * @param name The name of the entry to find
|
||||
+ * @return The registered entry, null if nothing was registered.
|
||||
+ */
|
||||
+ public TextureStitched getTextureExtry(String name)
|
||||
+ public TextureAtlasSprite getTextureExtry(String name)
|
||||
+ {
|
||||
+ return (TextureStitched)textureStichedMap.get(name);
|
||||
+ return (TextureAtlasSprite)field_110574_e.get(name);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
|
@ -125,11 +60,11 @@
|
|||
+ * @param entry Entry instance
|
||||
+ * @return True if the entry was added to the map, false otherwise.
|
||||
+ */
|
||||
+ public boolean setTextureEntry(String name, TextureStitched entry)
|
||||
+ public boolean setTextureEntry(String name, TextureAtlasSprite entry)
|
||||
+ {
|
||||
+ if (!textureStichedMap.containsKey(name))
|
||||
+ if (!field_110574_e.containsKey(name))
|
||||
+ {
|
||||
+ textureStichedMap.put(name, entry);
|
||||
+ field_110574_e.put(name, entry);
|
||||
+ return true;
|
||||
+ }
|
||||
+ return false;
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.util.Calendar;
|
||||
@@ -52,7 +53,15 @@
|
||||
@@ -60,7 +61,15 @@
|
||||
|
||||
if (block instanceof BlockChest && i == 0)
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
--- ../src_base/minecraft/net/minecraft/command/CommandHandler.java
|
||||
+++ ../src_work/minecraft/net/minecraft/command/CommandHandler.java
|
||||
@@ -11,6 +11,9 @@
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
@@ -12,6 +12,9 @@
|
||||
import net.minecraft.util.ChatMessageComponent;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
|
||||
+import net.minecraftforge.common.MinecraftForge;
|
||||
|
@ -10,7 +10,7 @@
|
|||
public class CommandHandler implements ICommandManager
|
||||
{
|
||||
/** Map of Strings to the ICommand objects they represent */
|
||||
@@ -44,6 +47,16 @@
|
||||
@@ -45,6 +48,16 @@
|
||||
|
||||
if (icommand.canCommandSenderUseCommand(par1ICommandSender))
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/crash/CrashReport.java
|
||||
+++ ../src_work/minecraft/net/minecraft/crash/CrashReport.java
|
||||
@@ -253,7 +253,8 @@
|
||||
@@ -245,7 +245,8 @@
|
||||
StackTraceElement stacktraceelement = null;
|
||||
StackTraceElement stacktraceelement1 = null;
|
||||
|
||||
|
|
|
@ -5,12 +5,12 @@
|
|||
import net.minecraft.enchantment.EnumEnchantmentType;
|
||||
import net.minecraft.item.Item;
|
||||
+import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.StringTranslate;
|
||||
|
||||
public class CreativeTabs
|
||||
{
|
||||
@@ -34,8 +35,22 @@
|
||||
/** Whether to draw the title in the foreground of the creative GUI */
|
||||
private boolean drawTitle = true;
|
||||
private EnumEnchantmentType[] field_111230_s;
|
||||
|
||||
+ public CreativeTabs(String label)
|
||||
+ {
|
||||
|
@ -53,29 +53,31 @@
|
|||
return this.tabIndex < 6;
|
||||
}
|
||||
|
||||
@@ -149,11 +172,41 @@
|
||||
@@ -187,9 +210,17 @@
|
||||
{
|
||||
Item item = aitem[j];
|
||||
|
||||
- if (item != null && item.getCreativeTab() == this)
|
||||
- {
|
||||
- item.getSubItems(item.itemID, this, par1List);
|
||||
- }
|
||||
- }
|
||||
+ if (item == null)
|
||||
+ {
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ for(CreativeTabs tab : item.getCreativeTabs())
|
||||
+ for (CreativeTabs tab : item.getCreativeTabs())
|
||||
+ {
|
||||
+ if (tab == this)
|
||||
+ {
|
||||
+ item.getSubItems(item.itemID, this, par1List);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -228,4 +259,26 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
+
|
||||
+ public int getTabPage()
|
||||
+ {
|
||||
|
@ -97,6 +99,5 @@
|
|||
+ public ItemStack getIconItemStack()
|
||||
+ {
|
||||
+ return new ItemStack(getTabIconItem());
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
+ }
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
+
|
||||
+import com.google.common.collect.ObjectArrays;
|
||||
+
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.DamageSource;
|
||||
@@ -205,6 +208,27 @@
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagDouble;
|
||||
@@ -25,12 +33,16 @@
|
||||
@@ -26,12 +34,16 @@
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.MathHelper;
|
||||
|
@ -42,7 +42,7 @@
|
|||
|
||||
public abstract class Entity
|
||||
{
|
||||
@@ -225,6 +237,13 @@
|
||||
@@ -218,6 +230,13 @@
|
||||
private boolean invulnerable;
|
||||
private UUID entityUniqueID;
|
||||
public EnumEntitySize myEntitySize;
|
||||
|
@ -56,7 +56,7 @@
|
|||
|
||||
public Entity(World par1World)
|
||||
{
|
||||
@@ -274,6 +293,15 @@
|
||||
@@ -245,6 +264,15 @@
|
||||
this.dataWatcher.addObject(0, Byte.valueOf((byte)0));
|
||||
this.dataWatcher.addObject(1, Short.valueOf((short)300));
|
||||
this.entityInit();
|
||||
|
@ -72,16 +72,7 @@
|
|||
}
|
||||
|
||||
protected abstract void entityInit();
|
||||
@@ -554,7 +582,7 @@
|
||||
if (!this.worldObj.isRemote)
|
||||
{
|
||||
this.setFlag(0, this.fire > 0);
|
||||
- this.setFlag(2, this.ridingEntity != null);
|
||||
+ this.setFlag(2, this.ridingEntity != null && ridingEntity.shouldRiderSit());
|
||||
}
|
||||
|
||||
this.firstUpdate = false;
|
||||
@@ -1534,6 +1562,21 @@
|
||||
@@ -1515,6 +1543,21 @@
|
||||
par1NBTTagCompound.setInteger("PortalCooldown", this.timeUntilPortal);
|
||||
par1NBTTagCompound.setLong("UUIDMost", this.entityUniqueID.getMostSignificantBits());
|
||||
par1NBTTagCompound.setLong("UUIDLeast", this.entityUniqueID.getLeastSignificantBits());
|
||||
|
@ -103,7 +94,7 @@
|
|||
this.writeEntityToNBT(par1NBTTagCompound);
|
||||
|
||||
if (this.ridingEntity != null)
|
||||
@@ -1604,6 +1647,26 @@
|
||||
@@ -1585,6 +1628,26 @@
|
||||
|
||||
this.setPosition(this.posX, this.posY, this.posZ);
|
||||
this.setRotation(this.rotationYaw, this.rotationPitch);
|
||||
|
@ -130,32 +121,32 @@
|
|||
this.readEntityFromNBT(par1NBTTagCompound);
|
||||
}
|
||||
catch (Throwable throwable)
|
||||
@@ -1698,7 +1761,14 @@
|
||||
{
|
||||
EntityItem entityitem = new EntityItem(this.worldObj, this.posX, this.posY + (double)par2, this.posZ, par1ItemStack);
|
||||
entityitem.delayBeforeCanPickup = 10;
|
||||
- this.worldObj.spawnEntityInWorld(entityitem);
|
||||
+ if (captureDrops)
|
||||
+ {
|
||||
+ capturedDrops.add(entityitem);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ this.worldObj.spawnEntityInWorld(entityitem);
|
||||
+ }
|
||||
return entityitem;
|
||||
@@ -1687,7 +1750,14 @@
|
||||
{
|
||||
EntityItem entityitem = new EntityItem(this.worldObj, this.posX, this.posY + (double)par2, this.posZ, par1ItemStack);
|
||||
entityitem.delayBeforeCanPickup = 10;
|
||||
- this.worldObj.spawnEntityInWorld(entityitem);
|
||||
+ if (captureDrops)
|
||||
+ {
|
||||
+ capturedDrops.add(entityitem);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ this.worldObj.spawnEntityInWorld(entityitem);
|
||||
+ }
|
||||
return entityitem;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2056,7 +2126,7 @@
|
||||
@@ -1985,7 +2055,7 @@
|
||||
*/
|
||||
public boolean isRiding()
|
||||
{
|
||||
- return this.ridingEntity != null || this.getFlag(2);
|
||||
+ return (this.ridingEntity != null && ridingEntity.shouldRiderSit()) || this.getFlag(2);
|
||||
- return this.ridingEntity != null;
|
||||
+ return this.ridingEntity != null && ridingEntity.shouldRiderSit();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2400,7 +2470,7 @@
|
||||
@@ -2344,7 +2414,7 @@
|
||||
|
||||
public float func_82146_a(Explosion par1Explosion, World par2World, int par3, int par4, int par5, Block par6Block)
|
||||
{
|
||||
|
@ -164,7 +155,7 @@
|
|||
}
|
||||
|
||||
public boolean func_96091_a(Explosion par1Explosion, World par2World, int par3, int par4, int par5, int par6, float par7)
|
||||
@@ -2458,4 +2528,145 @@
|
||||
@@ -2407,4 +2477,145 @@
|
||||
{
|
||||
return this.getEntityName();
|
||||
}
|
||||
|
|
|
@ -1,223 +1,27 @@
|
|||
--- ../src_base/minecraft/net/minecraft/entity/EntityLiving.java
|
||||
+++ ../src_work/minecraft/net/minecraft/entity/EntityLiving.java
|
||||
@@ -22,6 +22,7 @@
|
||||
import net.minecraft.entity.item.EntityXPOrb;
|
||||
import net.minecraft.entity.monster.EntityCreeper;
|
||||
import net.minecraft.entity.monster.EntityGhast;
|
||||
+import net.minecraft.entity.passive.EntityPig;
|
||||
import net.minecraft.entity.passive.EntityWolf;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.projectile.EntityArrow;
|
||||
@@ -50,6 +51,11 @@
|
||||
@@ -31,6 +31,7 @@
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldServer;
|
||||
|
||||
+import net.minecraftforge.common.ForgeHooks;
|
||||
+import net.minecraftforge.common.MinecraftForge;
|
||||
+import net.minecraftforge.event.entity.living.*;
|
||||
+import static net.minecraftforge.event.entity.living.LivingEvent.*;
|
||||
+
|
||||
public abstract class EntityLiving extends Entity
|
||||
|
||||
public abstract class EntityLiving extends EntityLivingBase
|
||||
{
|
||||
/**
|
||||
@@ -400,6 +406,7 @@
|
||||
public void setAttackTarget(EntityLiving par1EntityLiving)
|
||||
@@ -141,6 +142,7 @@
|
||||
public void setAttackTarget(EntityLivingBase par1EntityLivingBase)
|
||||
{
|
||||
this.attackTarget = par1EntityLiving;
|
||||
+ ForgeHooks.onLivingSetAttackTarget(this, par1EntityLiving);
|
||||
this.attackTarget = par1EntityLivingBase;
|
||||
+ ForgeHooks.onLivingSetAttackTarget(this, par1EntityLivingBase);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -496,6 +503,7 @@
|
||||
{
|
||||
this.entityLivingToAttack = par1EntityLiving;
|
||||
this.revengeTimer = this.entityLivingToAttack != null ? 100 : 0;
|
||||
+ ForgeHooks.onLivingSetAttackTarget(this, par1EntityLiving);
|
||||
}
|
||||
|
||||
protected void entityInit()
|
||||
@@ -807,6 +815,11 @@
|
||||
*/
|
||||
public void onUpdate()
|
||||
{
|
||||
+ if (ForgeHooks.onLivingUpdate(this))
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
super.onUpdate();
|
||||
|
||||
if (!this.worldObj.isRemote)
|
||||
@@ -992,6 +1005,11 @@
|
||||
*/
|
||||
public boolean attackEntityFrom(DamageSource par1DamageSource, int par2)
|
||||
{
|
||||
+ if (ForgeHooks.onLivingAttack(this, par1DamageSource, par2))
|
||||
+ {
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
if (this.isEntityInvulnerable())
|
||||
{
|
||||
return false;
|
||||
@@ -1229,6 +1247,11 @@
|
||||
{
|
||||
if (!this.isEntityInvulnerable())
|
||||
{
|
||||
+ par2 = ForgeHooks.onLivingHurt(this, par1DamageSource, par2);
|
||||
+ if (par2 <= 0)
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
par2 = this.applyArmorCalculations(par1DamageSource, par2);
|
||||
par2 = this.applyPotionDamageCalculations(par1DamageSource, par2);
|
||||
int j = this.getHealth();
|
||||
@@ -1295,6 +1318,11 @@
|
||||
*/
|
||||
public void onDeath(DamageSource par1DamageSource)
|
||||
{
|
||||
+ if (ForgeHooks.onLivingDeath(this, par1DamageSource))
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
Entity entity = par1DamageSource.getEntity();
|
||||
EntityLiving entityliving = this.func_94060_bK();
|
||||
|
||||
@@ -1319,6 +1347,10 @@
|
||||
i = EnchantmentHelper.getLootingModifier((EntityLiving)entity);
|
||||
}
|
||||
|
||||
+ captureDrops = true;
|
||||
+ capturedDrops.clear();
|
||||
+ int j = 0;
|
||||
+
|
||||
if (!this.isChild() && this.worldObj.getGameRules().getGameRuleBooleanValue("doMobLoot"))
|
||||
{
|
||||
this.dropFewItems(this.recentlyHit > 0, i);
|
||||
@@ -1326,7 +1358,7 @@
|
||||
|
||||
if (this.recentlyHit > 0)
|
||||
{
|
||||
- int j = this.rand.nextInt(200) - i;
|
||||
+ j = this.rand.nextInt(200) - i;
|
||||
|
||||
if (j < 5)
|
||||
{
|
||||
@@ -1334,6 +1366,16 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
+
|
||||
+ captureDrops = false;
|
||||
+
|
||||
+ if (!ForgeHooks.onLivingDrops(this, par1DamageSource, capturedDrops, i, recentlyHit > 0, j))
|
||||
+ {
|
||||
+ for (EntityItem item : capturedDrops)
|
||||
+ {
|
||||
+ worldObj.spawnEntityInWorld(item);
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
this.worldObj.setEntityState(this, (byte)3);
|
||||
@@ -1378,6 +1420,12 @@
|
||||
*/
|
||||
protected void fall(float par1)
|
||||
{
|
||||
+ par1 = ForgeHooks.onLivingFall(this, par1);
|
||||
+ if (par1 <= 0)
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
super.fall(par1);
|
||||
int i = MathHelper.ceiling_float_int(par1 - 3.0F);
|
||||
|
||||
@@ -1580,7 +1628,7 @@
|
||||
int j = MathHelper.floor_double(this.boundingBox.minY);
|
||||
int k = MathHelper.floor_double(this.posZ);
|
||||
int l = this.worldObj.getBlockId(i, j, k);
|
||||
- return l == Block.ladder.blockID || l == Block.vine.blockID;
|
||||
+ return ForgeHooks.isLivingOnLadder(Block.blocksList[l], worldObj, i, j, k, this);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2002,6 +2050,7 @@
|
||||
}
|
||||
|
||||
this.isAirBorne = true;
|
||||
+ ForgeHooks.onLivingJump(this);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2554,8 +2603,6 @@
|
||||
return this.getCreatureAttribute() == EnumCreatureAttribute.UNDEAD;
|
||||
@@ -726,8 +728,6 @@
|
||||
return this.worldObj.checkNoEntityCollision(this.boundingBox) && this.worldObj.getCollidingBoundingBoxes(this, this.boundingBox).isEmpty() && !this.worldObj.isAnyLiquid(this.boundingBox);
|
||||
}
|
||||
|
||||
- @SideOnly(Side.CLIENT)
|
||||
-
|
||||
/**
|
||||
* Remove the speified potion effect from this entity.
|
||||
* Returns render size modifier
|
||||
*/
|
||||
@@ -2984,6 +3031,17 @@
|
||||
*/
|
||||
public void swingItem()
|
||||
{
|
||||
+ ItemStack stack = this.getHeldItem();
|
||||
+
|
||||
+ if (stack != null && stack.getItem() != null)
|
||||
+ {
|
||||
+ Item item = stack.getItem();
|
||||
+ if (item.onEntitySwing(this, stack))
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (!this.isSwingInProgress || this.swingProgressInt >= this.getArmSwingAnimationEnd() / 2 || this.swingProgressInt < 0)
|
||||
{
|
||||
this.swingProgressInt = -1;
|
||||
@@ -3084,4 +3142,42 @@
|
||||
{
|
||||
return this.persistenceRequired;
|
||||
}
|
||||
+
|
||||
+ /***
|
||||
+ * Removes all potion effects that have curativeItem as a curative item for its effect
|
||||
+ * @param curativeItem The itemstack we are using to cure potion effects
|
||||
+ */
|
||||
+ public void curePotionEffects(ItemStack curativeItem)
|
||||
+ {
|
||||
+ Iterator<Integer> potionKey = activePotionsMap.keySet().iterator();
|
||||
+
|
||||
+ if (worldObj.isRemote)
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ while (potionKey.hasNext())
|
||||
+ {
|
||||
+ Integer key = potionKey.next();
|
||||
+ PotionEffect effect = (PotionEffect)activePotionsMap.get(key);
|
||||
+
|
||||
+ if (effect.isCurativeItem(curativeItem))
|
||||
+ {
|
||||
+ potionKey.remove();
|
||||
+ onFinishedPotionEffect(effect);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Returns true if the entity's rider (EntityPlayer) should face forward when mounted.
|
||||
+ * currently only used in vanilla code by pigs.
|
||||
+ *
|
||||
+ * @param player The player who is riding the entity.
|
||||
+ * @return If the player should orient the same direction as this entity.
|
||||
+ */
|
||||
+ public boolean shouldRiderFaceForward(EntityPlayer player)
|
||||
+ {
|
||||
+ return this instanceof EntityPig;
|
||||
+ }
|
||||
}
|
||||
|
|
|
@ -0,0 +1,198 @@
|
|||
--- ../src_base/minecraft/net/minecraft/entity/EntityLivingBase.java
|
||||
+++ ../src_work/minecraft/net/minecraft/entity/EntityLivingBase.java
|
||||
@@ -21,9 +21,11 @@
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.item.EntityXPOrb;
|
||||
import net.minecraft.entity.monster.EntityZombie;
|
||||
+import net.minecraft.entity.passive.EntityPig;
|
||||
import net.minecraft.entity.passive.EntityWolf;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.projectile.EntityArrow;
|
||||
+import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemArmor;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTBase;
|
||||
@@ -46,6 +48,7 @@
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldServer;
|
||||
+import net.minecraftforge.common.ForgeHooks;
|
||||
|
||||
public abstract class EntityLivingBase extends Entity
|
||||
{
|
||||
@@ -451,6 +454,7 @@
|
||||
{
|
||||
this.entityLivingToAttack = par1EntityLivingBase;
|
||||
this.revengeTimer = this.entityLivingToAttack != null ? 100 : 0;
|
||||
+ ForgeHooks.onLivingSetAttackTarget(this, par1EntityLivingBase);
|
||||
}
|
||||
|
||||
public EntityLivingBase func_110144_aD()
|
||||
@@ -738,8 +742,6 @@
|
||||
return this.getCreatureAttribute() == EnumCreatureAttribute.UNDEAD;
|
||||
}
|
||||
|
||||
- @SideOnly(Side.CLIENT)
|
||||
-
|
||||
/**
|
||||
* Remove the speified potion effect from this entity.
|
||||
*/
|
||||
@@ -824,6 +826,7 @@
|
||||
*/
|
||||
public boolean attackEntityFrom(DamageSource par1DamageSource, float par2)
|
||||
{
|
||||
+ if (ForgeHooks.onLivingAttack(this, par1DamageSource, par2)) return false;
|
||||
if (this.isEntityInvulnerable())
|
||||
{
|
||||
return false;
|
||||
@@ -974,6 +977,7 @@
|
||||
*/
|
||||
public void onDeath(DamageSource par1DamageSource)
|
||||
{
|
||||
+ if (ForgeHooks.onLivingDeath(this, par1DamageSource)) return;
|
||||
Entity entity = par1DamageSource.getEntity();
|
||||
EntityLivingBase entitylivingbase = this.func_94060_bK();
|
||||
|
||||
@@ -998,6 +1002,10 @@
|
||||
i = EnchantmentHelper.getLootingModifier((EntityLivingBase)entity);
|
||||
}
|
||||
|
||||
+ captureDrops = true;
|
||||
+ capturedDrops.clear();
|
||||
+ int j = 0;
|
||||
+
|
||||
if (!this.isChild() && this.worldObj.getGameRules().getGameRuleBooleanValue("doMobLoot"))
|
||||
{
|
||||
this.dropFewItems(this.recentlyHit > 0, i);
|
||||
@@ -1005,12 +1013,22 @@
|
||||
|
||||
if (this.recentlyHit > 0)
|
||||
{
|
||||
- int j = this.rand.nextInt(200) - i;
|
||||
+ j = this.rand.nextInt(200) - i;
|
||||
|
||||
if (j < 5)
|
||||
{
|
||||
this.dropRareDrop(j <= 0 ? 1 : 0);
|
||||
}
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ captureDrops = false;
|
||||
+
|
||||
+ if (!ForgeHooks.onLivingDrops(this, par1DamageSource, capturedDrops, i, recentlyHit > 0, j))
|
||||
+ {
|
||||
+ for (EntityItem item : capturedDrops)
|
||||
+ {
|
||||
+ worldObj.spawnEntityInWorld(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1080,7 +1098,7 @@
|
||||
int j = MathHelper.floor_double(this.boundingBox.minY);
|
||||
int k = MathHelper.floor_double(this.posZ);
|
||||
int l = this.worldObj.getBlockId(i, j, k);
|
||||
- return l == Block.ladder.blockID || l == Block.vine.blockID;
|
||||
+ return ForgeHooks.isLivingOnLadder(Block.blocksList[l], worldObj, i, j, k, this);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1096,6 +1114,8 @@
|
||||
*/
|
||||
protected void fall(float par1)
|
||||
{
|
||||
+ par1 = ForgeHooks.onLivingFall(this, par1);
|
||||
+ if (par1 <= 0) return;
|
||||
super.fall(par1);
|
||||
PotionEffect potioneffect = this.getActivePotionEffect(Potion.jump);
|
||||
float f1 = potioneffect != null ? (float)(potioneffect.getAmplifier() + 1) : 0.0F;
|
||||
@@ -1229,6 +1249,8 @@
|
||||
{
|
||||
if (!this.isEntityInvulnerable())
|
||||
{
|
||||
+ par2 = ForgeHooks.onLivingHurt(this, par1DamageSource, par2);
|
||||
+ if (par2 <= 0) return;
|
||||
par2 = this.applyArmorCalculations(par1DamageSource, par2);
|
||||
par2 = this.applyPotionDamageCalculations(par1DamageSource, par2);
|
||||
float f1 = par2;
|
||||
@@ -1290,6 +1312,17 @@
|
||||
*/
|
||||
public void swingItem()
|
||||
{
|
||||
+ ItemStack stack = this.getHeldItem();
|
||||
+
|
||||
+ if (stack != null && stack.getItem() != null)
|
||||
+ {
|
||||
+ Item item = stack.getItem();
|
||||
+ if (item.onEntitySwing(this, stack))
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (!this.isSwingInProgress || this.field_110158_av >= this.getArmSwingAnimationEnd() / 2 || this.field_110158_av < 0)
|
||||
{
|
||||
this.field_110158_av = -1;
|
||||
@@ -1531,6 +1564,7 @@
|
||||
}
|
||||
|
||||
this.isAirBorne = true;
|
||||
+ ForgeHooks.onLivingJump(this);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1735,6 +1769,11 @@
|
||||
*/
|
||||
public void onUpdate()
|
||||
{
|
||||
+ if (ForgeHooks.onLivingUpdate(this))
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
super.onUpdate();
|
||||
|
||||
if (!this.worldObj.isRemote)
|
||||
@@ -2255,4 +2294,42 @@
|
||||
|
||||
this.field_110151_bq = par1;
|
||||
}
|
||||
+
|
||||
+ /***
|
||||
+ * Removes all potion effects that have curativeItem as a curative item for its effect
|
||||
+ * @param curativeItem The itemstack we are using to cure potion effects
|
||||
+ */
|
||||
+ public void curePotionEffects(ItemStack curativeItem)
|
||||
+ {
|
||||
+ Iterator<Integer> potionKey = activePotionsMap.keySet().iterator();
|
||||
+
|
||||
+ if (worldObj.isRemote)
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ while (potionKey.hasNext())
|
||||
+ {
|
||||
+ Integer key = potionKey.next();
|
||||
+ PotionEffect effect = (PotionEffect)activePotionsMap.get(key);
|
||||
+
|
||||
+ if (effect.isCurativeItem(curativeItem))
|
||||
+ {
|
||||
+ potionKey.remove();
|
||||
+ onFinishedPotionEffect(effect);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Returns true if the entity's rider (EntityPlayer) should face forward when mounted.
|
||||
+ * currently only used in vanilla code by pigs.
|
||||
+ *
|
||||
+ * @param player The player who is riding the entity.
|
||||
+ * @return If the player should orient the same direction as this entity.
|
||||
+ */
|
||||
+ public boolean shouldRiderFaceForward(EntityPlayer player)
|
||||
+ {
|
||||
+ return this instanceof EntityPig;
|
||||
+ }
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/entity/boss/EntityDragon.java
|
||||
+++ ../src_work/minecraft/net/minecraft/entity/boss/EntityDragon.java
|
||||
@@ -531,10 +531,11 @@
|
||||
@@ -527,10 +527,11 @@
|
||||
for (int i2 = k; i2 <= j1; ++i2)
|
||||
{
|
||||
int j2 = this.worldObj.getBlockId(k1, l1, i2);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/entity/item/EntityEnderPearl.java
|
||||
+++ ../src_work/minecraft/net/minecraft/entity/item/EntityEnderPearl.java
|
||||
@@ -8,6 +8,8 @@
|
||||
@@ -9,6 +9,8 @@
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
|
@ -9,20 +9,28 @@
|
|||
|
||||
public class EntityEnderPearl extends EntityThrowable
|
||||
{
|
||||
@@ -50,9 +52,13 @@
|
||||
@@ -51,14 +53,18 @@
|
||||
|
||||
if (!entityplayermp.playerNetServerHandler.connectionClosed && entityplayermp.worldObj == this.worldObj)
|
||||
{
|
||||
- this.getThrower().setPositionAndUpdate(this.posX, this.posY, this.posZ);
|
||||
- this.getThrower().fallDistance = 0.0F;
|
||||
- this.getThrower().attackEntityFrom(DamageSource.fall, 5);
|
||||
+ EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5);
|
||||
+ if (!MinecraftForge.EVENT_BUS.post(event)){
|
||||
- if (this.getThrower().isRiding())
|
||||
+ EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F);
|
||||
+ if (!MinecraftForge.EVENT_BUS.post(event))
|
||||
{
|
||||
- this.getThrower().mountEntity((Entity)null);
|
||||
+ if (this.getThrower().isRiding())
|
||||
+ {
|
||||
+ this.getThrower().mountEntity((Entity)null);
|
||||
+ }
|
||||
+
|
||||
+ this.getThrower().setPositionAndUpdate(event.targetX, event.targetY, event.targetZ);
|
||||
+ this.getThrower().fallDistance = 0.0F;
|
||||
+ this.getThrower().attackEntityFrom(DamageSource.fall, event.attackDamage);
|
||||
+ }
|
||||
+
|
||||
}
|
||||
-
|
||||
- this.getThrower().setPositionAndUpdate(this.posX, this.posY, this.posZ);
|
||||
- this.getThrower().fallDistance = 0.0F;
|
||||
- this.getThrower().attackEntityFrom(DamageSource.fall, 5.0F);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
public EntityItem(World par1World, double par2, double par4, double par6)
|
||||
{
|
||||
super(par1World);
|
||||
@@ -49,6 +59,7 @@
|
||||
@@ -48,6 +58,7 @@
|
||||
{
|
||||
this(par1World, par2, par4, par6);
|
||||
this.setEntityItemStack(par8ItemStack);
|
||||
|
@ -32,7 +32,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -80,6 +91,15 @@
|
||||
@@ -78,6 +89,15 @@
|
||||
*/
|
||||
public void onUpdate()
|
||||
{
|
||||
|
@ -48,7 +48,7 @@
|
|||
super.onUpdate();
|
||||
|
||||
if (this.delayBeforeCanPickup > 0)
|
||||
@@ -135,7 +155,29 @@
|
||||
@@ -133,7 +153,29 @@
|
||||
|
||||
++this.age;
|
||||
|
||||
|
@ -79,7 +79,7 @@
|
|||
{
|
||||
this.setDead();
|
||||
}
|
||||
@@ -270,6 +312,7 @@
|
||||
@@ -268,6 +310,7 @@
|
||||
{
|
||||
par1NBTTagCompound.setShort("Health", (short)((byte)this.health));
|
||||
par1NBTTagCompound.setShort("Age", (short)this.age);
|
||||
|
@ -87,7 +87,7 @@
|
|||
|
||||
if (this.getEntityItem() != null)
|
||||
{
|
||||
@@ -287,10 +330,17 @@
|
||||
@@ -285,10 +328,17 @@
|
||||
NBTTagCompound nbttagcompound1 = par1NBTTagCompound.getCompoundTag("Item");
|
||||
this.setEntityItemStack(ItemStack.loadItemStackFromNBT(nbttagcompound1));
|
||||
|
||||
|
@ -106,7 +106,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -300,10 +350,22 @@
|
||||
@@ -298,10 +348,22 @@
|
||||
{
|
||||
if (!this.worldObj.isRemote)
|
||||
{
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
public EntityMinecart(World par1World)
|
||||
{
|
||||
super(par1World);
|
||||
@@ -105,6 +123,10 @@
|
||||
@@ -104,6 +122,10 @@
|
||||
*/
|
||||
public AxisAlignedBB getCollisionBox(Entity par1Entity)
|
||||
{
|
||||
|
@ -43,7 +43,7 @@
|
|||
return par1Entity.canBePushed() ? par1Entity.boundingBox : null;
|
||||
}
|
||||
|
||||
@@ -113,6 +135,10 @@
|
||||
@@ -112,6 +134,10 @@
|
||||
*/
|
||||
public AxisAlignedBB getBoundingBox()
|
||||
{
|
||||
|
@ -54,7 +54,7 @@
|
|||
return null;
|
||||
}
|
||||
|
||||
@@ -121,7 +147,7 @@
|
||||
@@ -120,7 +146,7 @@
|
||||
*/
|
||||
public boolean canBePushed()
|
||||
{
|
||||
|
@ -63,7 +63,7 @@
|
|||
}
|
||||
|
||||
public EntityMinecart(World par1World, double par2, double par4, double par6)
|
||||
@@ -353,19 +379,21 @@
|
||||
@@ -352,19 +378,21 @@
|
||||
double d5 = 0.0078125D;
|
||||
int l = this.worldObj.getBlockId(j, i, k);
|
||||
|
||||
|
@ -92,7 +92,7 @@
|
|||
}
|
||||
|
||||
this.doBlockCollisions();
|
||||
@@ -392,7 +420,18 @@
|
||||
@@ -391,7 +419,18 @@
|
||||
}
|
||||
|
||||
this.setRotation(this.rotationYaw, this.rotationPitch);
|
||||
|
@ -112,7 +112,7 @@
|
|||
|
||||
if (list != null && !list.isEmpty())
|
||||
{
|
||||
@@ -416,6 +455,8 @@
|
||||
@@ -415,6 +454,8 @@
|
||||
|
||||
this.riddenByEntity = null;
|
||||
}
|
||||
|
@ -121,7 +121,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -444,6 +485,17 @@
|
||||
@@ -443,6 +484,17 @@
|
||||
if (this.motionZ > par1)
|
||||
{
|
||||
this.motionZ = par1;
|
||||
|
@ -139,7 +139,7 @@
|
|||
}
|
||||
|
||||
if (this.onGround)
|
||||
@@ -453,13 +505,13 @@
|
||||
@@ -452,13 +504,13 @@
|
||||
this.motionZ *= 0.5D;
|
||||
}
|
||||
|
||||
|
@ -157,7 +157,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -473,7 +525,7 @@
|
||||
@@ -472,7 +524,7 @@
|
||||
|
||||
if (par8 == Block.railPowered.blockID)
|
||||
{
|
||||
|
@ -166,7 +166,7 @@
|
|||
flag1 = !flag;
|
||||
}
|
||||
|
||||
@@ -544,7 +596,7 @@
|
||||
@@ -551,7 +603,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -175,7 +175,7 @@
|
|||
{
|
||||
d7 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
|
||||
|
||||
@@ -592,36 +644,8 @@
|
||||
@@ -599,36 +651,8 @@
|
||||
this.posX = d8 + d2 * d7;
|
||||
this.posZ = d9 + d3 * d7;
|
||||
this.setPosition(this.posX, this.posY + (double)this.yOffset, this.posZ);
|
||||
|
@ -214,7 +214,7 @@
|
|||
|
||||
if (aint[0][1] != 0 && MathHelper.floor_double(this.posX) - par1 == aint[0][0] && MathHelper.floor_double(this.posZ) - par3 == aint[0][2])
|
||||
{
|
||||
@@ -659,7 +683,12 @@
|
||||
@@ -666,7 +690,12 @@
|
||||
this.motionZ = d6 * (double)(k1 - par3);
|
||||
}
|
||||
|
||||
|
@ -228,7 +228,7 @@
|
|||
{
|
||||
double d15 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
|
||||
|
||||
@@ -730,12 +759,7 @@
|
||||
@@ -737,12 +766,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -242,7 +242,7 @@
|
|||
|
||||
par3 = (double)j;
|
||||
|
||||
@@ -781,13 +805,8 @@
|
||||
@@ -788,13 +812,8 @@
|
||||
|
||||
if (BlockRailBase.isRailBlock(l))
|
||||
{
|
||||
|
@ -257,7 +257,7 @@
|
|||
|
||||
if (i1 >= 2 && i1 <= 5)
|
||||
{
|
||||
@@ -893,11 +912,17 @@
|
||||
@@ -900,11 +919,17 @@
|
||||
*/
|
||||
public void applyEntityCollision(Entity par1Entity)
|
||||
{
|
||||
|
@ -271,12 +271,12 @@
|
|||
{
|
||||
if (par1Entity != this.riddenByEntity)
|
||||
{
|
||||
- if (par1Entity instanceof EntityLiving && !(par1Entity instanceof EntityPlayer) && !(par1Entity instanceof EntityIronGolem) && this.getMinecartType() == 0 && this.motionX * this.motionX + this.motionZ * this.motionZ > 0.01D && this.riddenByEntity == null && par1Entity.ridingEntity == null)
|
||||
+ if (par1Entity instanceof EntityLiving && !(par1Entity instanceof EntityPlayer) && !(par1Entity instanceof EntityIronGolem) && canBeRidden() && this.motionX * this.motionX + this.motionZ * this.motionZ > 0.01D && this.riddenByEntity == null && par1Entity.ridingEntity == null)
|
||||
- if (par1Entity instanceof EntityLivingBase && !(par1Entity instanceof EntityPlayer) && !(par1Entity instanceof EntityIronGolem) && this.getMinecartType() == 0 && this.motionX * this.motionX + this.motionZ * this.motionZ > 0.01D && this.riddenByEntity == null && par1Entity.ridingEntity == null)
|
||||
+ if (par1Entity instanceof EntityLivingBase && !(par1Entity instanceof EntityPlayer) && !(par1Entity instanceof EntityIronGolem) && canBeRidden() && this.motionX * this.motionX + this.motionZ * this.motionZ > 0.01D && this.riddenByEntity == null && par1Entity.ridingEntity == null)
|
||||
{
|
||||
par1Entity.mountEntity(this);
|
||||
}
|
||||
@@ -943,7 +968,7 @@
|
||||
@@ -950,7 +975,7 @@
|
||||
double d7 = par1Entity.motionX + this.motionX;
|
||||
double d8 = par1Entity.motionZ + this.motionZ;
|
||||
|
||||
|
@ -285,7 +285,7 @@
|
|||
{
|
||||
this.motionX *= 0.20000000298023224D;
|
||||
this.motionZ *= 0.20000000298023224D;
|
||||
@@ -951,7 +976,7 @@
|
||||
@@ -958,7 +983,7 @@
|
||||
par1Entity.motionX *= 0.949999988079071D;
|
||||
par1Entity.motionZ *= 0.949999988079071D;
|
||||
}
|
||||
|
@ -294,7 +294,7 @@
|
|||
{
|
||||
par1Entity.motionX *= 0.20000000298023224D;
|
||||
par1Entity.motionZ *= 0.20000000298023224D;
|
||||
@@ -1158,4 +1183,211 @@
|
||||
@@ -1165,4 +1190,211 @@
|
||||
{
|
||||
return this.entityName;
|
||||
}
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
|
||||
public abstract class EntityMinecartContainer extends EntityMinecart implements IInventory
|
||||
{
|
||||
@@ -283,6 +285,10 @@
|
||||
*/
|
||||
public boolean interact(EntityPlayer par1EntityPlayer)
|
||||
@@ -280,6 +282,10 @@
|
||||
|
||||
public boolean func_130002_c(EntityPlayer par1EntityPlayer)
|
||||
{
|
||||
+ if(MinecraftForge.EVENT_BUS.post(new MinecartInteractEvent(this, par1EntityPlayer)))
|
||||
+ {
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
|
||||
public class EntityMinecartEmpty extends EntityMinecart
|
||||
{
|
||||
@@ -20,6 +22,10 @@
|
||||
*/
|
||||
public boolean interact(EntityPlayer par1EntityPlayer)
|
||||
@@ -17,6 +19,10 @@
|
||||
|
||||
public boolean func_130002_c(EntityPlayer par1EntityPlayer)
|
||||
{
|
||||
+ if(MinecraftForge.EVENT_BUS.post(new MinecartInteractEvent(this, par1EntityPlayer)))
|
||||
+ {
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
|
||||
public class EntityMinecartFurnace extends EntityMinecart
|
||||
{
|
||||
@@ -126,6 +128,10 @@
|
||||
*/
|
||||
public boolean interact(EntityPlayer par1EntityPlayer)
|
||||
@@ -123,6 +125,10 @@
|
||||
|
||||
public boolean func_130002_c(EntityPlayer par1EntityPlayer)
|
||||
{
|
||||
+ if(MinecraftForge.EVENT_BUS.post(new MinecartInteractEvent(this, par1EntityPlayer)))
|
||||
+ {
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
|
||||
public class EntityMinecartHopper extends EntityMinecartContainer implements Hopper
|
||||
{
|
||||
@@ -54,6 +56,10 @@
|
||||
*/
|
||||
public boolean interact(EntityPlayer par1EntityPlayer)
|
||||
@@ -51,6 +53,10 @@
|
||||
|
||||
public boolean func_130002_c(EntityPlayer par1EntityPlayer)
|
||||
{
|
||||
+ if(MinecraftForge.EVENT_BUS.post(new MinecartInteractEvent(this, par1EntityPlayer)))
|
||||
+ {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/entity/monster/EntityEnderman.java
|
||||
+++ ../src_work/minecraft/net/minecraft/entity/monster/EntityEnderman.java
|
||||
@@ -12,6 +12,8 @@
|
||||
@@ -16,6 +16,8 @@
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
|
@ -9,7 +9,7 @@
|
|||
|
||||
public class EntityEnderman extends EntityMob
|
||||
{
|
||||
@@ -275,12 +277,17 @@
|
||||
@@ -291,12 +293,17 @@
|
||||
*/
|
||||
protected boolean teleportTo(double par1, double par3, double par5)
|
||||
{
|
||||
|
@ -30,7 +30,7 @@
|
|||
boolean flag = false;
|
||||
int i = MathHelper.floor_double(this.posX);
|
||||
int j = MathHelper.floor_double(this.posY);
|
||||
@@ -457,7 +464,7 @@
|
||||
@@ -473,7 +480,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
{
|
||||
public EntityMooshroom(World par1World)
|
||||
{
|
||||
@@ -39,31 +43,7 @@
|
||||
@@ -38,31 +42,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
|||
- {
|
||||
- EntityCow entitycow = new EntityCow(this.worldObj);
|
||||
- entitycow.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch);
|
||||
- entitycow.setEntityHealth(this.getHealth());
|
||||
- entitycow.setEntityHealth(this.func_110143_aJ());
|
||||
- entitycow.renderYawOffset = this.renderYawOffset;
|
||||
- this.worldObj.spawnEntityInWorld(entitycow);
|
||||
-
|
||||
|
@ -46,7 +46,7 @@
|
|||
}
|
||||
|
||||
public EntityMooshroom func_94900_c(EntityAgeable par1EntityAgeable)
|
||||
@@ -83,4 +63,29 @@
|
||||
@@ -82,4 +62,29 @@
|
||||
{
|
||||
return this.func_94900_c(par1EntityAgeable);
|
||||
}
|
||||
|
@ -63,7 +63,7 @@
|
|||
+ setDead();
|
||||
+ EntityCow entitycow = new EntityCow(worldObj);
|
||||
+ entitycow.setLocationAndAngles(posX, posY, posZ, rotationYaw, rotationPitch);
|
||||
+ entitycow.setEntityHealth(getHealth());
|
||||
+ entitycow.setEntityHealth(func_110143_aJ());
|
||||
+ entitycow.renderYawOffset = renderYawOffset;
|
||||
+ worldObj.spawnEntityInWorld(entitycow);
|
||||
+ worldObj.spawnParticle("largeexplode", posX, posY + (double)(height / 2.0F), posZ, 0.0D, 0.0D, 0.0D);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/entity/passive/EntityOcelot.java
|
||||
+++ ../src_work/minecraft/net/minecraft/entity/passive/EntityOcelot.java
|
||||
@@ -355,8 +355,9 @@
|
||||
@@ -334,8 +334,9 @@
|
||||
}
|
||||
|
||||
int l = this.worldObj.getBlockId(i, j - 1, k);
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
import java.util.Random;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.EntityAgeable;
|
||||
@@ -24,7 +26,9 @@
|
||||
@@ -26,7 +28,9 @@
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
|||
{
|
||||
private final InventoryCrafting field_90016_e = new InventoryCrafting(new ContainerSheep(this), 2, 1);
|
||||
|
||||
@@ -159,28 +163,6 @@
|
||||
@@ -141,28 +145,6 @@
|
||||
*/
|
||||
public boolean interact(EntityPlayer par1EntityPlayer)
|
||||
{
|
||||
|
@ -49,7 +49,7 @@
|
|||
return super.interact(par1EntityPlayer);
|
||||
}
|
||||
|
||||
@@ -349,4 +331,24 @@
|
||||
@@ -343,4 +325,24 @@
|
||||
{
|
||||
return this.func_90015_b(par1EntityAgeable);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/entity/player/EntityPlayer.java
|
||||
+++ ../src_work/minecraft/net/minecraft/entity/player/EntityPlayer.java
|
||||
@@ -66,8 +66,23 @@
|
||||
@@ -68,8 +68,21 @@
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.chunk.IChunkProvider;
|
||||
|
||||
|
@ -16,24 +16,13 @@
|
|||
+import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent;
|
||||
+import net.minecraftforge.event.entity.player.PlayerSleepInBedEvent;
|
||||
+
|
||||
public abstract class EntityPlayer extends EntityLiving implements ICommandSender
|
||||
public abstract class EntityPlayer extends EntityLivingBase implements ICommandSender
|
||||
{
|
||||
+ public static final String PERSISTED_NBT_TAG = "PlayerPersisted";
|
||||
+ public int maxHealth = 20;
|
||||
+
|
||||
/** Inventory of the player */
|
||||
public InventoryPlayer inventory = new InventoryPlayer(this);
|
||||
private InventoryEnderChest theInventoryEnderChest = new InventoryEnderChest();
|
||||
@@ -181,7 +196,7 @@
|
||||
|
||||
public int getMaxHealth()
|
||||
{
|
||||
- return 20;
|
||||
+ return maxHealth <= 0 ? 20 : maxHealth;
|
||||
}
|
||||
|
||||
protected void entityInit()
|
||||
@@ -268,6 +283,7 @@
|
||||
@@ -269,6 +282,7 @@
|
||||
|
||||
if (itemstack == this.itemInUse)
|
||||
{
|
||||
|
@ -41,21 +30,27 @@
|
|||
if (this.itemInUseCount <= 25 && this.itemInUseCount % 4 == 0)
|
||||
{
|
||||
this.updateItemUse(itemstack, 5);
|
||||
@@ -528,11 +544,11 @@
|
||||
this.cameraYaw = 0.0F;
|
||||
this.addMountedMovementStat(this.posX - d0, this.posY - d1, this.posZ - d2);
|
||||
@@ -539,11 +553,11 @@
|
||||
this.cameraYaw = 0.0F;
|
||||
this.addMountedMovementStat(this.posX - d0, this.posY - d1, this.posZ - d2);
|
||||
|
||||
- if (this.ridingEntity instanceof EntityPig)
|
||||
+ if (this.ridingEntity instanceof EntityLiving && ((EntityLiving)ridingEntity).shouldRiderFaceForward(this))
|
||||
{
|
||||
this.rotationPitch = f1;
|
||||
this.rotationYaw = f;
|
||||
- this.renderYawOffset = ((EntityPig)this.ridingEntity).renderYawOffset;
|
||||
+ this.renderYawOffset = ((EntityLiving)this.ridingEntity).renderYawOffset;
|
||||
- if (this.ridingEntity instanceof EntityPig)
|
||||
+ if (this.ridingEntity instanceof EntityLivingBase && ((EntityLivingBase)ridingEntity).shouldRiderFaceForward(this))
|
||||
{
|
||||
this.rotationPitch = f1;
|
||||
this.rotationYaw = f;
|
||||
- this.renderYawOffset = ((EntityPig)this.ridingEntity).renderYawOffset;
|
||||
+ this.renderYawOffset = ((EntityLivingBase)this.ridingEntity).renderYawOffset;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -661,6 +677,9 @@
|
||||
@@ -686,11 +700,15 @@
|
||||
*/
|
||||
public void onDeath(DamageSource par1DamageSource)
|
||||
{
|
||||
+ if (ForgeHooks.onLivingDeath(this, par1DamageSource)) return;
|
||||
super.onDeath(par1DamageSource);
|
||||
this.setSize(0.2F, 0.2F);
|
||||
this.setPosition(this.posX, this.posY, this.posZ);
|
||||
this.motionY = 0.10000000149011612D;
|
||||
|
||||
|
@ -65,7 +60,7 @@
|
|||
if (this.username.equals("Notch"))
|
||||
{
|
||||
this.dropPlayerItemWithRandomChoice(new ItemStack(Item.appleRed, 1), true);
|
||||
@@ -669,6 +688,20 @@
|
||||
@@ -699,6 +717,20 @@
|
||||
if (!this.worldObj.getGameRules().getGameRuleBooleanValue("keepInventory"))
|
||||
{
|
||||
this.inventory.dropAllItems();
|
||||
|
@ -86,7 +81,7 @@
|
|||
}
|
||||
|
||||
if (par1DamageSource != null)
|
||||
@@ -719,7 +752,20 @@
|
||||
@@ -749,7 +781,20 @@
|
||||
*/
|
||||
public EntityItem dropOneItem(boolean par1)
|
||||
{
|
||||
|
@ -108,7 +103,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -728,7 +774,7 @@
|
||||
@@ -758,7 +803,7 @@
|
||||
*/
|
||||
public EntityItem dropPlayerItem(ItemStack par1ItemStack)
|
||||
{
|
||||
|
@ -117,7 +112,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -780,15 +826,28 @@
|
||||
@@ -814,15 +859,28 @@
|
||||
*/
|
||||
public void joinEntityItemWithWorld(EntityItem par1EntityItem)
|
||||
{
|
||||
|
@ -148,7 +143,7 @@
|
|||
|
||||
if (f > 1.0F)
|
||||
{
|
||||
@@ -799,7 +858,9 @@
|
||||
@@ -833,7 +891,9 @@
|
||||
{
|
||||
float f1 = (float)(i * i + 1);
|
||||
|
||||
|
@ -159,7 +154,7 @@
|
|||
{
|
||||
f += f1 * 0.08F;
|
||||
}
|
||||
@@ -830,7 +891,8 @@
|
||||
@@ -864,7 +924,8 @@
|
||||
f /= 5.0F;
|
||||
}
|
||||
|
||||
|
@ -169,7 +164,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -838,7 +900,7 @@
|
||||
@@ -872,7 +933,7 @@
|
||||
*/
|
||||
public boolean canHarvestBlock(Block par1Block)
|
||||
{
|
||||
|
@ -178,60 +173,40 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -857,6 +919,9 @@
|
||||
this.experienceTotal = par1NBTTagCompound.getInteger("XpTotal");
|
||||
this.setScore(par1NBTTagCompound.getInteger("Score"));
|
||||
|
||||
+ int tmp = par1NBTTagCompound.getInteger("MaxHealth");
|
||||
+ maxHealth = (tmp <= 0 ? 20 : tmp);
|
||||
+
|
||||
if (this.sleeping)
|
||||
@@ -982,6 +1043,7 @@
|
||||
*/
|
||||
public boolean attackEntityFrom(DamageSource par1DamageSource, float par2)
|
||||
{
|
||||
+ if (ForgeHooks.onLivingAttack(this, par1DamageSource, par2)) return false;
|
||||
if (this.isEntityInvulnerable())
|
||||
{
|
||||
this.playerLocation = new ChunkCoordinates(MathHelper.floor_double(this.posX), MathHelper.floor_double(this.posY), MathHelper.floor_double(this.posZ));
|
||||
@@ -893,6 +958,7 @@
|
||||
par1NBTTagCompound.setInteger("XpLevel", this.experienceLevel);
|
||||
par1NBTTagCompound.setInteger("XpTotal", this.experienceTotal);
|
||||
par1NBTTagCompound.setInteger("Score", this.getScore());
|
||||
+ par1NBTTagCompound.setInteger("MaxHealth", maxHealth);
|
||||
|
||||
if (this.spawnChunk != null)
|
||||
{
|
||||
@@ -1096,12 +1162,22 @@
|
||||
return false;
|
||||
@@ -1135,12 +1197,15 @@
|
||||
{
|
||||
if (!this.isEntityInvulnerable())
|
||||
{
|
||||
+ par2 = ForgeHooks.onLivingHurt(this, par1DamageSource, par2);
|
||||
+ if (par2 <= 0)
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
if (!par1DamageSource.isUnblockable() && this.isBlocking())
|
||||
+ if (par2 <= 0) return;
|
||||
if (!par1DamageSource.isUnblockable() && this.isBlocking() && par2 > 0.0F)
|
||||
{
|
||||
par2 = 1 + par2 >> 1;
|
||||
par2 = (1.0F + par2) * 0.5F;
|
||||
}
|
||||
|
||||
- par2 = this.applyArmorCalculations(par1DamageSource, par2);
|
||||
+ par2 = ArmorProperties.ApplyArmor(this, inventory.armorInventory, par1DamageSource, par2);
|
||||
+ if (par2 <= 0)
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
+ if (par2 <= 0) return;
|
||||
par2 = this.applyPotionDamageCalculations(par1DamageSource, par2);
|
||||
this.addExhaustion(par1DamageSource.getHungerDamage());
|
||||
int j = this.getHealth();
|
||||
@@ -1144,6 +1220,10 @@
|
||||
float f1 = par2;
|
||||
par2 = Math.max(par2 - this.func_110139_bj(), 0.0F);
|
||||
@@ -1190,6 +1255,7 @@
|
||||
|
||||
public boolean interactWith(Entity par1Entity)
|
||||
{
|
||||
+ if (MinecraftForge.EVENT_BUS.post(new EntityInteractEvent(this, par1Entity)))
|
||||
+ {
|
||||
+ return false;
|
||||
+ }
|
||||
if (par1Entity.interact(this))
|
||||
{
|
||||
return true;
|
||||
@@ -1187,7 +1267,9 @@
|
||||
+ if (MinecraftForge.EVENT_BUS.post(new EntityInteractEvent(this, par1Entity))) return false;
|
||||
ItemStack itemstack = this.getCurrentEquippedItem();
|
||||
ItemStack itemstack1 = itemstack != null ? itemstack.copy() : null;
|
||||
|
||||
@@ -1246,7 +1312,9 @@
|
||||
*/
|
||||
public void destroyCurrentEquippedItem()
|
||||
{
|
||||
|
@ -241,7 +216,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -1204,6 +1286,15 @@
|
||||
@@ -1263,6 +1331,15 @@
|
||||
*/
|
||||
public void attackTargetEntityWithCurrentItem(Entity par1Entity)
|
||||
{
|
||||
|
@ -257,7 +232,7 @@
|
|||
if (par1Entity.canAttackWithItem())
|
||||
{
|
||||
if (!par1Entity.func_85031_j(this))
|
||||
@@ -1378,6 +1469,12 @@
|
||||
@@ -1421,6 +1498,12 @@
|
||||
*/
|
||||
public EnumStatus sleepInBedAt(int par1, int par2, int par3)
|
||||
{
|
||||
|
@ -270,7 +245,7 @@
|
|||
if (!this.worldObj.isRemote)
|
||||
{
|
||||
if (this.isPlayerSleeping() || !this.isEntityAlive())
|
||||
@@ -1417,6 +1514,11 @@
|
||||
@@ -1465,6 +1548,11 @@
|
||||
{
|
||||
int l = this.worldObj.getBlockMetadata(par1, par2, par3);
|
||||
int i1 = BlockBed.getDirection(l);
|
||||
|
@ -282,7 +257,7 @@
|
|||
float f = 0.5F;
|
||||
float f1 = 0.5F;
|
||||
|
||||
@@ -1487,10 +1589,12 @@
|
||||
@@ -1535,10 +1623,12 @@
|
||||
ChunkCoordinates chunkcoordinates = this.playerLocation;
|
||||
ChunkCoordinates chunkcoordinates1 = this.playerLocation;
|
||||
|
||||
|
@ -299,7 +274,7 @@
|
|||
|
||||
if (chunkcoordinates1 == null)
|
||||
{
|
||||
@@ -1527,7 +1631,9 @@
|
||||
@@ -1575,7 +1665,9 @@
|
||||
*/
|
||||
private boolean isInBed()
|
||||
{
|
||||
|
@ -310,7 +285,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -1542,9 +1648,12 @@
|
||||
@@ -1590,9 +1682,12 @@
|
||||
ichunkprovider.loadChunk(par1ChunkCoordinates.posX - 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4);
|
||||
ichunkprovider.loadChunk(par1ChunkCoordinates.posX + 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4);
|
||||
|
||||
|
@ -326,7 +301,7 @@
|
|||
return chunkcoordinates1;
|
||||
}
|
||||
else
|
||||
@@ -1566,10 +1675,13 @@
|
||||
@@ -1614,10 +1709,13 @@
|
||||
{
|
||||
if (this.playerLocation != null)
|
||||
{
|
||||
|
@ -344,7 +319,7 @@
|
|||
{
|
||||
case 0:
|
||||
return 90.0F;
|
||||
@@ -1835,6 +1947,10 @@
|
||||
@@ -1891,6 +1989,10 @@
|
||||
|
||||
super.fall(par1);
|
||||
}
|
||||
|
@ -355,7 +330,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -1876,7 +1992,7 @@
|
||||
@@ -1932,7 +2034,7 @@
|
||||
{
|
||||
if (par1ItemStack.getItem().requiresMultipleRenderPasses())
|
||||
{
|
||||
|
@ -364,7 +339,7 @@
|
|||
}
|
||||
|
||||
if (this.itemInUse != null && par1ItemStack.itemID == Item.bow.itemID)
|
||||
@@ -1898,6 +2014,7 @@
|
||||
@@ -1954,6 +2056,7 @@
|
||||
return Item.bow.getItemIconForUseDuration(0);
|
||||
}
|
||||
}
|
||||
|
@ -372,7 +347,7 @@
|
|||
}
|
||||
|
||||
return icon;
|
||||
@@ -2137,6 +2254,14 @@
|
||||
@@ -2176,6 +2279,14 @@
|
||||
}
|
||||
|
||||
this.theInventoryEnderChest = par1EntityPlayer.theInventoryEnderChest;
|
||||
|
@ -387,7 +362,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -2208,7 +2333,14 @@
|
||||
@@ -2239,7 +2350,14 @@
|
||||
*/
|
||||
public void setCurrentItemOrArmor(int par1, ItemStack par2ItemStack)
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/entity/player/EntityPlayerMP.java
|
||||
+++ ../src_work/minecraft/net/minecraft/entity/player/EntityPlayerMP.java
|
||||
@@ -87,6 +87,12 @@
|
||||
@@ -90,6 +90,12 @@
|
||||
import net.minecraft.world.WorldServer;
|
||||
import net.minecraft.world.chunk.Chunk;
|
||||
|
||||
|
@ -12,8 +12,8 @@
|
|||
+
|
||||
public class EntityPlayerMP extends EntityPlayer implements ICrafting
|
||||
{
|
||||
private StringTranslate translator = new StringTranslate("en_US");
|
||||
@@ -158,18 +164,10 @@
|
||||
private String translator = "en_US";
|
||||
@@ -162,18 +168,10 @@
|
||||
par4ItemInWorldManager.thisPlayerMP = this;
|
||||
this.theItemInWorldManager = par4ItemInWorldManager;
|
||||
this.renderDistance = par1MinecraftServer.getConfigurationManager().getViewDistance();
|
||||
|
@ -33,7 +33,7 @@
|
|||
|
||||
this.mcServer = par1MinecraftServer;
|
||||
this.stepHeight = 0.0F;
|
||||
@@ -278,7 +276,10 @@
|
||||
@@ -287,7 +285,10 @@
|
||||
if (chunkcoordintpair != null && this.worldObj.blockExists(chunkcoordintpair.chunkXPos << 4, 0, chunkcoordintpair.chunkZPos << 4))
|
||||
{
|
||||
arraylist.add(this.worldObj.getChunkFromChunkCoords(chunkcoordintpair.chunkXPos, chunkcoordintpair.chunkZPos));
|
||||
|
@ -45,7 +45,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -299,6 +300,7 @@
|
||||
@@ -308,6 +309,7 @@
|
||||
{
|
||||
Chunk chunk = (Chunk)iterator2.next();
|
||||
this.getServerForPlayer().getEntityTracker().func_85172_a(this, chunk);
|
||||
|
@ -53,16 +53,12 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
@@ -366,11 +368,29 @@
|
||||
@@ -375,11 +377,24 @@
|
||||
*/
|
||||
public void onDeath(DamageSource par1DamageSource)
|
||||
{
|
||||
+ if (ForgeHooks.onLivingDeath(this, par1DamageSource))
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
this.mcServer.getConfigurationManager().sendChatMsg(this.field_94063_bt.func_94546_b());
|
||||
+ if (ForgeHooks.onLivingDeath(this, par1DamageSource)) return;
|
||||
this.mcServer.getConfigurationManager().func_110460_a(this.func_110142_aN().func_111182_b());
|
||||
|
||||
if (!this.worldObj.getGameRules().getGameRuleBooleanValue("keepInventory"))
|
||||
{
|
||||
|
@ -70,7 +66,6 @@
|
|||
+ capturedDrops.clear();
|
||||
+
|
||||
this.inventory.dropAllItems();
|
||||
+
|
||||
+ captureDrops = false;
|
||||
+ PlayerDropsEvent event = new PlayerDropsEvent(this, par1DamageSource, capturedDrops, recentlyHit > 0);
|
||||
+ if (!MinecraftForge.EVENT_BUS.post(event))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/entity/player/InventoryPlayer.java
|
||||
+++ ../src_work/minecraft/net/minecraft/entity/player/InventoryPlayer.java
|
||||
@@ -338,6 +338,14 @@
|
||||
@@ -357,6 +357,14 @@
|
||||
if (this.mainInventory[i] != null)
|
||||
{
|
||||
this.mainInventory[i].updateAnimation(this.player.worldObj, this.player, i, this.currentItem == i);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/inventory/ContainerRepair.java
|
||||
+++ ../src_work/minecraft/net/minecraft/inventory/ContainerRepair.java
|
||||
@@ -305,6 +305,11 @@
|
||||
@@ -315,6 +315,11 @@
|
||||
k = Math.max(1, k / 2);
|
||||
}
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
|||
this.maximumCost = k + i;
|
||||
|
||||
if (i <= 0)
|
||||
@@ -322,6 +327,7 @@
|
||||
@@ -331,6 +336,7 @@
|
||||
{
|
||||
itemstack1 = null;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,15 @@
|
|||
--- ../src_base/minecraft/net/minecraft/inventory/Slot.java
|
||||
+++ ../src_work/minecraft/net/minecraft/inventory/Slot.java
|
||||
@@ -22,6 +22,12 @@
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
+import net.minecraft.client.renderer.texture.TextureMap;
|
||||
+import net.minecraft.client.resources.ResourceLocation;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.Icon;
|
||||
@@ -22,6 +24,13 @@
|
||||
|
||||
/** display position of the inventory slot on the screen y axis */
|
||||
public int yDisplayPosition;
|
||||
|
@ -9,32 +18,40 @@
|
|||
+ protected Icon backgroundIcon = null;
|
||||
+
|
||||
+ /** Background texture file assigned to this slot, if any. Vanilla "/gui/items.png" is used if this is null. */
|
||||
+ protected String texture = "/gui/items.png";
|
||||
+ @SideOnly(Side.CLIENT)
|
||||
+ protected ResourceLocation texture;
|
||||
|
||||
public Slot(IInventory par1IInventory, int par2, int par3, int par4)
|
||||
{
|
||||
@@ -148,6 +154,45 @@
|
||||
@@ -148,7 +157,7 @@
|
||||
*/
|
||||
public Icon getBackgroundIconIndex()
|
||||
{
|
||||
- return null;
|
||||
+ return backgroundIcon;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@@ -156,4 +165,44 @@
|
||||
{
|
||||
return true;
|
||||
}
|
||||
+
|
||||
+ /**
|
||||
+ * Gets the path of the texture file to use for the background image of this slot when drawing the GUI.
|
||||
+ * @return String: The texture file that will be used in GuiContainer.drawSlotInventory for the slot background.
|
||||
+ */
|
||||
+ public String getBackgroundIconTexture()
|
||||
+ @SideOnly(Side.CLIENT)
|
||||
+ public ResourceLocation getBackgroundIconTexture()
|
||||
+ {
|
||||
+ return (texture == null ? "/gui/items.png" : texture);
|
||||
+ return (texture == null ? TextureMap.field_110576_c : texture);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Sets which icon index to use as the background image of the slot when it's empty.
|
||||
+ * @param icon The icon to use, null for none
|
||||
+ */
|
||||
+ public void setBackgroundIconIndex(Icon icon)
|
||||
+ public void setBackgroundIcon(Icon icon)
|
||||
+ {
|
||||
+ backgroundIcon = icon;
|
||||
+ }
|
||||
|
@ -43,9 +60,10 @@
|
|||
+ * Sets the texture file to use for the background image of the slot when it's empty.
|
||||
+ * @param textureFilename String: Path of texture file to use, or null to use "/gui/items.png"
|
||||
+ */
|
||||
+ public void setBackgroundIconTexture(String textureFilename)
|
||||
+ @SideOnly(Side.CLIENT)
|
||||
+ public void setBackgroundIconTexture(ResourceLocation texture)
|
||||
+ {
|
||||
+ texture = textureFilename;
|
||||
+ this.texture = texture;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
|
@ -58,5 +76,4 @@
|
|||
+ {
|
||||
+ return slotIndex;
|
||||
+ }
|
||||
+
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
--- ../src_base/minecraft/net/minecraft/item/BehaviorDispenseArmor.java
|
||||
+++ ../src_work/minecraft/net/minecraft/item/BehaviorDispenseArmor.java
|
||||
@@ -31,7 +31,7 @@
|
||||
@@ -32,7 +32,7 @@
|
||||
int i1 = EntityLiving.getArmorPosition(par2ItemStack);
|
||||
ItemStack itemstack1 = par2ItemStack.copy();
|
||||
itemstack1.stackSize = 1;
|
||||
- entityliving.setCurrentItemOrArmor(i1 - l, itemstack1);
|
||||
+ entityliving.setCurrentItemOrArmor(i1, itemstack1); //Forge: Vanilla bug fix associated with fixed setCurrentItemOrArmor indexs for players.
|
||||
entityliving.func_96120_a(i1, 2.0F);
|
||||
--par2ItemStack.stackSize;
|
||||
return par2ItemStack;
|
||||
- entitylivingbase.setCurrentItemOrArmor(i1 - l, itemstack1);
|
||||
+ entitylivingbase.setCurrentItemOrArmor(i1, itemstack1); //BUGFIX Forge: Vanilla bug fix associated with fixed setCurrentItemOrArmor indexs for players.
|
||||
|
||||
if (entitylivingbase instanceof EntityLiving)
|
||||
{
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
+ //Added by forge for custom Armor materials.
|
||||
+ public Item customCraftingMaterial = null;
|
||||
|
||||
private EnumToolMaterial(int par3, int par4, float par5, int par6, int par7)
|
||||
private EnumToolMaterial(int par3, int par4, float par5, float par6, int par7)
|
||||
{
|
||||
@@ -86,6 +89,14 @@
|
||||
*/
|
||||
|
|
|
@ -1,17 +1,16 @@
|
|||
--- ../src_base/minecraft/net/minecraft/item/Item.java
|
||||
+++ ../src_work/minecraft/net/minecraft/item/Item.java
|
||||
@@ -7,13 +7,19 @@
|
||||
import java.util.Random;
|
||||
@@ -11,13 +11,18 @@
|
||||
import java.util.UUID;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
+import net.minecraft.client.entity.EntityClientPlayerMP;
|
||||
+import net.minecraft.client.gui.FontRenderer;
|
||||
+import net.minecraft.client.gui.ScaledResolution;
|
||||
+import net.minecraft.client.model.ModelBiped;
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
+import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.item.EntityItemFrame;
|
||||
import net.minecraft.entity.item.EntityPainting;
|
||||
|
@ -20,20 +19,19 @@
|
|||
import net.minecraft.potion.Potion;
|
||||
import net.minecraft.potion.PotionHelper;
|
||||
import net.minecraft.stats.StatList;
|
||||
@@ -23,7 +29,10 @@
|
||||
@@ -26,7 +31,9 @@
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.util.StatCollector;
|
||||
import net.minecraft.util.StringTranslate;
|
||||
import net.minecraft.util.Vec3;
|
||||
+import net.minecraft.util.WeightedRandomChestContent;
|
||||
import net.minecraft.world.World;
|
||||
+import net.minecraftforge.common.ChestGenHooks;
|
||||
+import net.minecraftforge.common.IArmorTextureProvider;
|
||||
|
||||
public class Item
|
||||
{
|
||||
@@ -238,13 +247,16 @@
|
||||
/** Icon index in the icons table. */
|
||||
@@ -248,13 +255,16 @@
|
||||
protected Icon itemIcon;
|
||||
protected String field_111218_cA;
|
||||
|
||||
+ /** FORGE: To disable repair recipes. */
|
||||
+ protected boolean canRepair = true;
|
||||
|
@ -49,7 +47,7 @@
|
|||
}
|
||||
|
||||
itemsList[256 + par1] = this;
|
||||
@@ -640,6 +652,10 @@
|
||||
@@ -639,6 +649,10 @@
|
||||
float f7 = f4 * f5;
|
||||
float f8 = f3 * f5;
|
||||
double d3 = 5.0D;
|
||||
|
@ -60,7 +58,7 @@
|
|||
Vec3 vec31 = vec3.addVector((double)f7 * d3, (double)f6 * d3, (double)f8 * d3);
|
||||
return par1World.rayTraceBlocks_do_do(vec3, vec31, par3, !par3);
|
||||
}
|
||||
@@ -720,4 +736,534 @@
|
||||
@@ -736,4 +750,509 @@
|
||||
{
|
||||
StatList.initStats();
|
||||
}
|
||||
|
@ -422,12 +420,11 @@
|
|||
+ * @param itemStack The itemstack
|
||||
+ * @return the damage
|
||||
+ */
|
||||
+ public int getDamageVsEntity(Entity par1Entity, ItemStack itemStack)
|
||||
+ @Deprecated //Need to find a new place to hook this
|
||||
+ public float getDamageVsEntity(Entity par1Entity, ItemStack itemStack)
|
||||
+ {
|
||||
+ return getDamageVsEntity(par1Entity);
|
||||
+ return 0.0F; //getDamageVsEntity(par1Entity);
|
||||
+ }
|
||||
+
|
||||
+ @Deprecated private final boolean isArmorProvider = this instanceof IArmorTextureProvider;
|
||||
+ /**
|
||||
+ * Called by RenderBiped and RenderPlayer to determine the armor texture that
|
||||
+ * should be use for the currently equiped item.
|
||||
|
@ -443,9 +440,10 @@
|
|||
+ */
|
||||
+ public String getArmorTexture(ItemStack stack, Entity entity, int slot, int layer)
|
||||
+ {
|
||||
+ return isArmorProvider ? ((IArmorTextureProvider)this).getArmorTextureFile(stack) : null;
|
||||
+ return null;
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ /**
|
||||
+ * Returns the font renderer used to render tooltips and overlays for this item.
|
||||
+ * Returning null will use the standard font renderer.
|
||||
|
@ -469,7 +467,7 @@
|
|||
+ * @return A ModelBiped to render instead of the default
|
||||
+ */
|
||||
+ @SideOnly(Side.CLIENT)
|
||||
+ public ModelBiped getArmorModel(EntityLiving entityLiving, ItemStack itemStack, int armorSlot)
|
||||
+ public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot)
|
||||
+ {
|
||||
+ return null;
|
||||
+ }
|
||||
|
@ -481,7 +479,7 @@
|
|||
+ * @param stack The Item stack
|
||||
+ * @return True to cancel any further processing by EntityLiving
|
||||
+ */
|
||||
+ public boolean onEntitySwing(EntityLiving entityLiving, ItemStack stack)
|
||||
+ public boolean onEntitySwing(EntityLivingBase entityLiving, ItemStack stack)
|
||||
+ {
|
||||
+ return false;
|
||||
+ }
|
||||
|
@ -509,11 +507,6 @@
|
|||
+ */
|
||||
+ public int getDamage(ItemStack stack)
|
||||
+ {
|
||||
+ return getItemDamageFromStack(stack);
|
||||
+ }
|
||||
+ @Deprecated
|
||||
+ public int getItemDamageFromStack(ItemStack stack)
|
||||
+ {
|
||||
+ return stack.itemDamage;
|
||||
+ }
|
||||
+
|
||||
|
@ -524,11 +517,6 @@
|
|||
+ */
|
||||
+ public int getDisplayDamage(ItemStack stack)
|
||||
+ {
|
||||
+ return getItemDamageFromStackForDisplay(stack);
|
||||
+ }
|
||||
+ @Deprecated
|
||||
+ public int getItemDamageFromStackForDisplay(ItemStack stack)
|
||||
+ {
|
||||
+ return stack.itemDamage;
|
||||
+ }
|
||||
+
|
||||
|
@ -541,11 +529,6 @@
|
|||
+ */
|
||||
+ public int getMaxDamage(ItemStack stack)
|
||||
+ {
|
||||
+ return getItemMaxDamageFromStack(stack);
|
||||
+ }
|
||||
+ @Deprecated
|
||||
+ public int getItemMaxDamageFromStack(ItemStack stack)
|
||||
+ {
|
||||
+ return getMaxDamage();
|
||||
+ }
|
||||
+
|
||||
|
@ -556,11 +539,6 @@
|
|||
+ */
|
||||
+ public boolean isDamaged(ItemStack stack)
|
||||
+ {
|
||||
+ return isItemStackDamaged(stack);
|
||||
+ }
|
||||
+ @Deprecated
|
||||
+ public boolean isItemStackDamaged(ItemStack stack)
|
||||
+ {
|
||||
+ return stack.itemDamage > 0;
|
||||
+ }
|
||||
+
|
||||
|
@ -571,11 +549,6 @@
|
|||
+ */
|
||||
+ public void setDamage(ItemStack stack, int damage)
|
||||
+ {
|
||||
+ setItemDamageForStack(stack, damage);
|
||||
+ }
|
||||
+ @Deprecated
|
||||
+ public void setItemDamageForStack(ItemStack stack, int damage)
|
||||
+ {
|
||||
+ stack.itemDamage = damage;
|
||||
+
|
||||
+ if (stack.itemDamage < 0)
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
--- ../src_base/minecraft/net/minecraft/item/ItemBucket.java
|
||||
+++ ../src_work/minecraft/net/minecraft/item/ItemBucket.java
|
||||
@@ -8,6 +8,10 @@
|
||||
import net.minecraft.util.EnumMovingObjectType;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
+
|
||||
|
||||
+import net.minecraftforge.common.MinecraftForge;
|
||||
+import net.minecraftforge.event.Event;
|
||||
+import net.minecraftforge.event.entity.player.FillBucketEvent;
|
||||
|
||||
+
|
||||
public class ItemBucket extends Item
|
||||
{
|
||||
@@ -40,6 +44,32 @@
|
||||
/** field for checking if the bucket has been filled. */
|
||||
@@ -35,6 +39,32 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -85,4 +85,4 @@
|
|||
+ }
|
||||
}
|
||||
|
||||
/**
|
||||
public boolean func_111207_a(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, EntityLivingBase par3EntityLivingBase)
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
public class ItemHoe extends Item
|
||||
{
|
||||
@@ -32,10 +35,23 @@
|
||||
@@ -32,10 +35,22 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -30,9 +30,8 @@
|
|||
- int j1 = par3World.getBlockId(par4, par5 + 1, par6);
|
||||
+ boolean air = par3World.isAirBlock(par4, par5 + 1, par6);
|
||||
|
||||
- if ((par7 == 0 || j1 != 0 || i1 != Block.grass.blockID) && i1 != Block.dirt.blockID)
|
||||
+ //Forge: Change 0 to air, also BugFix: parens mismatch causing you to be able to hoe dirt under dirt/grass
|
||||
+ if (par7 == 0 || !air || (i1 != Block.grass.blockID && i1 != Block.dirt.blockID))
|
||||
- if (par7 != 0 && j1 == 0 && (i1 == Block.grass.blockID || i1 == Block.dirt.blockID))
|
||||
+ if (par7 != 0 && air && (i1 == Block.grass.blockID || i1 == Block.dirt.blockID))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
Block block = Block.tilledField;
|
||||
par3World.playSoundEffect((double)((float)par4 + 0.5F), (double)((float)par5 + 0.5F), (double)((float)par6 + 0.5F), block.stepSound.getStepSound(), (block.stepSound.getVolume() + 1.0F) / 2.0F, block.stepSound.getPitch() * 0.8F);
|
||||
|
|
|
@ -82,7 +82,7 @@
|
|||
|
||||
if (block != null && flag)
|
||||
{
|
||||
@@ -257,19 +293,30 @@
|
||||
@@ -261,19 +297,30 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -115,7 +115,7 @@
|
|||
|
||||
if (itemstack != null)
|
||||
{
|
||||
@@ -281,6 +328,7 @@
|
||||
@@ -285,6 +332,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -123,7 +123,7 @@
|
|||
if (flag && flag1)
|
||||
{
|
||||
Block.blocksList[l].harvestBlock(this.theWorld, this.thisPlayerMP, par1, par2, par3, i1);
|
||||
@@ -321,6 +369,7 @@
|
||||
@@ -325,6 +373,7 @@
|
||||
if (itemstack1.stackSize == 0)
|
||||
{
|
||||
par1EntityPlayer.inventory.mainInventory[par1EntityPlayer.inventory.currentItem] = null;
|
||||
|
@ -131,7 +131,7 @@
|
|||
}
|
||||
|
||||
if (!par1EntityPlayer.isUsingItem())
|
||||
@@ -338,35 +387,56 @@
|
||||
@@ -342,35 +391,56 @@
|
||||
*/
|
||||
public boolean activateBlockOrUseItem(EntityPlayer par1EntityPlayer, World par2World, ItemStack par3ItemStack, int par4, int par5, int par6, int par7, float par8, float par9, float par10)
|
||||
{
|
||||
|
@ -215,7 +215,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -376,4 +446,13 @@
|
||||
@@ -380,4 +450,13 @@
|
||||
{
|
||||
this.theWorld = par1WorldServer;
|
||||
}
|
||||
|
|
|
@ -10,28 +10,28 @@
|
|||
import net.minecraft.creativetab.CreativeTabs;
|
||||
+import net.minecraft.enchantment.Enchantment;
|
||||
+import net.minecraft.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
+import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
+import net.minecraft.entity.item.EntityItem;
|
||||
+import net.minecraft.entity.player.EntityPlayer;
|
||||
+import net.minecraft.stats.StatList;
|
||||
import net.minecraft.world.World;
|
||||
+
|
||||
+import net.minecraftforge.common.IShearable;
|
||||
|
||||
public class ItemShears extends Item
|
||||
{
|
||||
@@ -17,13 +27,12 @@
|
||||
|
||||
public boolean onBlockDestroyed(ItemStack par1ItemStack, World par2World, int par3, int par4, int par5, int par6, EntityLiving par7EntityLiving)
|
||||
public boolean onBlockDestroyed(ItemStack par1ItemStack, World par2World, int par3, int par4, int par5, int par6, EntityLivingBase par7EntityLivingBase)
|
||||
{
|
||||
- if (par3 != Block.leaves.blockID && par3 != Block.web.blockID && par3 != Block.tallGrass.blockID && par3 != Block.vine.blockID && par3 != Block.tripWire.blockID)
|
||||
+ if (par3 != Block.leaves.blockID && par3 != Block.web.blockID && par3 != Block.tallGrass.blockID && par3 != Block.vine.blockID && par3 != Block.tripWire.blockID && !(Block.blocksList[par3] instanceof IShearable))
|
||||
{
|
||||
return super.onBlockDestroyed(par1ItemStack, par2World, par3, par4, par5, par6, par7EntityLiving);
|
||||
return super.onBlockDestroyed(par1ItemStack, par2World, par3, par4, par5, par6, par7EntityLivingBase);
|
||||
}
|
||||
else
|
||||
{
|
||||
- par1ItemStack.damageItem(1, par7EntityLiving);
|
||||
- par1ItemStack.damageItem(1, par7EntityLivingBase);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -41,7 +41,7 @@
|
|||
}
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean itemInteractionForEntity(ItemStack itemstack, EntityLiving entity)
|
||||
+ public boolean func_111207_a(ItemStack itemstack, EntityPlayer player, EntityLivingBase entity)
|
||||
+ {
|
||||
+ if (entity.worldObj.isRemote)
|
||||
+ {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src_base/minecraft/net/minecraft/item/ItemStack.java
|
||||
+++ ../src_work/minecraft/net/minecraft/item/ItemStack.java
|
||||
@@ -249,7 +249,9 @@
|
||||
@@ -252,7 +252,9 @@
|
||||
*/
|
||||
public boolean isItemDamaged()
|
||||
{
|
||||
|
@ -11,7 +11,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -257,6 +259,10 @@
|
||||
@@ -260,6 +262,10 @@
|
||||
*/
|
||||
public int getItemDamageForDisplay()
|
||||
{
|
||||
|
@ -22,7 +22,7 @@
|
|||
return this.itemDamage;
|
||||
}
|
||||
|
||||
@@ -265,6 +271,10 @@
|
||||
@@ -268,6 +274,10 @@
|
||||
*/
|
||||
public int getItemDamage()
|
||||
{
|
||||
|
@ -33,7 +33,7 @@
|
|||
return this.itemDamage;
|
||||
}
|
||||
|
||||
@@ -273,6 +283,12 @@
|
||||
@@ -276,6 +286,12 @@
|
||||
*/
|
||||
public void setItemDamage(int par1)
|
||||
{
|
||||
|
@ -46,7 +46,7 @@
|
|||
this.itemDamage = par1;
|
||||
|
||||
if (this.itemDamage < 0)
|
||||
@@ -286,7 +302,7 @@
|
||||
@@ -289,7 +305,7 @@
|
||||
*/
|
||||
public int getMaxDamage()
|
||||
{
|
||||
|
@ -55,7 +55,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -324,8 +340,8 @@
|
||||
@@ -327,8 +343,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -66,15 +66,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -388,7 +404,7 @@
|
||||
*/
|
||||
public int getDamageVsEntity(Entity par1Entity)
|
||||
{
|
||||
- return Item.itemsList[this.itemID].getDamageVsEntity(par1Entity);
|
||||
+ return Item.itemsList[this.itemID].getDamageVsEntity(par1Entity, this);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -396,7 +412,7 @@
|
||||
*/
|
||||
public boolean canHarvestBlock(Block par1Block)
|
||||
|
@ -83,4 +74,4 @@
|
|||
+ return Item.itemsList[this.itemID].canHarvestBlock(par1Block, this);
|
||||
}
|
||||
|
||||
public boolean interactWith(EntityLiving par1EntityLiving)
|
||||
public boolean func_111282_a(EntityPlayer par1EntityPlayer, EntityLivingBase par2EntityLivingBase)
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
--- ../src_base/minecraft/net/minecraft/item/ItemTool.java
|
||||
+++ ../src_work/minecraft/net/minecraft/item/ItemTool.java
|
||||
@@ -7,6 +7,7 @@
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
@@ -9,6 +9,7 @@
|
||||
import net.minecraft.entity.SharedMonsterAttributes;
|
||||
import net.minecraft.entity.ai.attributes.AttributeModifier;
|
||||
import net.minecraft.world.World;
|
||||
+import net.minecraftforge.common.ForgeHooks;
|
||||
|
||||
public class ItemTool extends Item
|
||||
{
|
||||
@@ -110,4 +111,15 @@
|
||||
{
|
||||
return this.toolMaterial.getToolCraftingMaterial() == par2ItemStack.itemID ? true : super.getIsRepairable(par1ItemStack, par2ItemStack);
|
||||
@@ -111,4 +112,15 @@
|
||||
multimap.put(SharedMonsterAttributes.field_111264_e.func_111108_a(), new AttributeModifier(field_111210_e, "Tool modifier", (double)this.damageVsEntity, 0));
|
||||
return multimap;
|
||||
}
|
||||
+
|
||||
+ /** FORGE: Overridden to allow custom tool effectiveness */
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue