203 lines
11 KiB
Diff
203 lines
11 KiB
Diff
--- ../src-base/minecraft/net/minecraft/client/renderer/EntityRenderer.java
|
|
+++ ../src-work/minecraft/net/minecraft/client/renderer/EntityRenderer.java
|
|
@@ -211,6 +211,7 @@
|
|
{
|
|
this.func_175069_a(new ResourceLocation("shaders/post/invert.json"));
|
|
}
|
|
+ else net.minecraftforge.client.ForgeHooksClient.loadEntityShader(p_175066_1_, this);
|
|
}
|
|
}
|
|
|
|
@@ -412,7 +413,7 @@
|
|
|
|
if (d3 < d2 || d2 == 0.0D)
|
|
{
|
|
- if (entity1.func_184208_bv() == entity.func_184208_bv())
|
|
+ if (entity1.func_184208_bv() == entity.func_184208_bv() && !entity1.canRiderInteract())
|
|
{
|
|
if (d2 == 0.0D)
|
|
{
|
|
@@ -505,7 +506,7 @@
|
|
f = f * 60.0F / 70.0F;
|
|
}
|
|
|
|
- return f;
|
|
+ return net.minecraftforge.client.ForgeHooksClient.getFOVModifier(this, entity, iblockstate, p_78481_1_, f);
|
|
}
|
|
}
|
|
|
|
@@ -569,14 +570,8 @@
|
|
{
|
|
BlockPos blockpos = new BlockPos(entity);
|
|
IBlockState iblockstate = this.field_78531_r.field_71441_e.func_180495_p(blockpos);
|
|
- Block block = iblockstate.func_177230_c();
|
|
+ net.minecraftforge.client.ForgeHooksClient.orientBedCamera(this.field_78531_r.field_71441_e, blockpos, iblockstate, entity);
|
|
|
|
- if (block == Blocks.field_150324_C)
|
|
- {
|
|
- int j = ((EnumFacing)iblockstate.func_177229_b(BlockBed.field_185512_D)).func_176736_b();
|
|
- GlStateManager.func_179114_b((float)(j * 90), 0.0F, 1.0F, 0.0F);
|
|
- }
|
|
-
|
|
GlStateManager.func_179114_b(entity.field_70126_B + (entity.field_70177_z - entity.field_70126_B) * p_78467_1_ + 180.0F, 0.0F, -1.0F, 0.0F);
|
|
GlStateManager.func_179114_b(entity.field_70127_C + (entity.field_70125_A - entity.field_70127_C) * p_78467_1_, -1.0F, 0.0F, 0.0F);
|
|
}
|
|
@@ -643,17 +638,20 @@
|
|
|
|
if (!this.field_78531_r.field_71474_y.field_74325_U)
|
|
{
|
|
- GlStateManager.func_179114_b(entity.field_70127_C + (entity.field_70125_A - entity.field_70127_C) * p_78467_1_, 1.0F, 0.0F, 0.0F);
|
|
-
|
|
+ float yaw = entity.field_70126_B + (entity.field_70177_z - entity.field_70126_B) * p_78467_1_ + 180.0F;
|
|
+ float pitch = entity.field_70127_C + (entity.field_70125_A - entity.field_70127_C) * p_78467_1_;
|
|
+ float roll = 0.0F;
|
|
if (entity instanceof EntityAnimal)
|
|
{
|
|
EntityAnimal entityanimal = (EntityAnimal)entity;
|
|
- GlStateManager.func_179114_b(entityanimal.field_70758_at + (entityanimal.field_70759_as - entityanimal.field_70758_at) * p_78467_1_ + 180.0F, 0.0F, 1.0F, 0.0F);
|
|
+ yaw = entityanimal.field_70758_at + (entityanimal.field_70759_as - entityanimal.field_70758_at) * p_78467_1_ + 180.0F;
|
|
}
|
|
- else
|
|
- {
|
|
- GlStateManager.func_179114_b(entity.field_70126_B + (entity.field_70177_z - entity.field_70126_B) * p_78467_1_ + 180.0F, 0.0F, 1.0F, 0.0F);
|
|
- }
|
|
+ IBlockState state = ActiveRenderInfo.func_186703_a(this.field_78531_r.field_71441_e, entity, p_78467_1_);
|
|
+ net.minecraftforge.client.event.EntityViewRenderEvent.CameraSetup event = new net.minecraftforge.client.event.EntityViewRenderEvent.CameraSetup(this, entity, state, p_78467_1_, yaw, pitch, roll);
|
|
+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event);
|
|
+ GlStateManager.func_179114_b(event.getRoll(), 0.0F, 0.0F, 1.0F);
|
|
+ GlStateManager.func_179114_b(event.getPitch(), 1.0F, 0.0F, 0.0F);
|
|
+ GlStateManager.func_179114_b(event.getYaw(), 0.0F, 1.0F, 0.0F);
|
|
}
|
|
|
|
GlStateManager.func_179109_b(0.0F, -f, 0.0F);
|
|
@@ -771,6 +769,7 @@
|
|
|
|
boolean flag = this.field_78531_r.func_175606_aa() instanceof EntityLivingBase && ((EntityLivingBase)this.field_78531_r.func_175606_aa()).func_70608_bn();
|
|
|
|
+ if (!net.minecraftforge.client.ForgeHooksClient.renderFirstPersonHand(field_78531_r.field_71438_f, p_78476_1_, p_78476_2_))
|
|
if (this.field_78531_r.field_71474_y.field_74320_O == 0 && !flag && !this.field_78531_r.field_71474_y.field_74319_N && !this.field_78531_r.field_71442_b.func_78747_a())
|
|
{
|
|
this.func_180436_i();
|
|
@@ -1101,6 +1100,10 @@
|
|
GlStateManager.func_179096_D();
|
|
this.func_78478_c();
|
|
this.field_78510_Z = System.nanoTime();
|
|
+ // Forge: Fix MC-112292
|
|
+ net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.field_147556_a.field_147553_e = this.field_78531_r.func_110434_K();
|
|
+ // Forge: also fix rendering text before entering world (not part of MC-112292, but the same reason)
|
|
+ net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.field_147556_a.field_147557_n = this.field_78531_r.field_71466_p;
|
|
}
|
|
|
|
if (this.field_78531_r.field_71462_r != null)
|
|
@@ -1109,7 +1112,7 @@
|
|
|
|
try
|
|
{
|
|
- this.field_78531_r.field_71462_r.func_73863_a(k1, l1, this.field_78531_r.func_193989_ak());
|
|
+ net.minecraftforge.client.ForgeHooksClient.drawScreen(this.field_78531_r.field_71462_r, k1, l1, this.field_78531_r.func_193989_ak());
|
|
}
|
|
catch (Throwable throwable)
|
|
{
|
|
@@ -1204,7 +1207,7 @@
|
|
|
|
if (this.field_78531_r.field_71442_b.func_178889_l() == GameType.SPECTATOR)
|
|
{
|
|
- flag = block.func_149716_u() && this.field_78531_r.field_71441_e.func_175625_s(blockpos) instanceof IInventory;
|
|
+ flag = block.hasTileEntity(this.field_78531_r.field_71441_e.func_180495_p(blockpos)) && this.field_78531_r.field_71441_e.func_175625_s(blockpos) instanceof IInventory;
|
|
}
|
|
else
|
|
{
|
|
@@ -1329,7 +1332,9 @@
|
|
GlStateManager.func_179094_E();
|
|
RenderHelper.func_74519_b();
|
|
this.field_78531_r.field_71424_I.func_76318_c("entities");
|
|
+ net.minecraftforge.client.ForgeHooksClient.setRenderPass(0);
|
|
renderglobal.func_180446_a(entity, icamera, p_175068_2_);
|
|
+ net.minecraftforge.client.ForgeHooksClient.setRenderPass(0);
|
|
RenderHelper.func_74518_a();
|
|
this.func_175072_h();
|
|
}
|
|
@@ -1342,6 +1347,7 @@
|
|
EntityPlayer entityplayer = (EntityPlayer)entity;
|
|
GlStateManager.func_179118_c();
|
|
this.field_78531_r.field_71424_I.func_76318_c("outline");
|
|
+ if (!net.minecraftforge.client.ForgeHooksClient.onDrawBlockHighlight(renderglobal, entityplayer, field_78531_r.field_71476_x, 0, p_175068_2_))
|
|
renderglobal.func_72731_b(entityplayer, this.field_78531_r.field_71476_x, 0, p_175068_2_);
|
|
GlStateManager.func_179141_d();
|
|
}
|
|
@@ -1388,6 +1394,17 @@
|
|
GlStateManager.func_179103_j(7425);
|
|
this.field_78531_r.field_71424_I.func_76318_c("translucent");
|
|
renderglobal.func_174977_a(BlockRenderLayer.TRANSLUCENT, (double)p_175068_2_, p_175068_1_, entity);
|
|
+ if (!this.field_175078_W) //Only render if render pass 0 happens as well.
|
|
+ {
|
|
+ RenderHelper.func_74519_b();
|
|
+ this.field_78531_r.field_71424_I.func_76318_c("entities");
|
|
+ net.minecraftforge.client.ForgeHooksClient.setRenderPass(1);
|
|
+ renderglobal.func_180446_a(entity, icamera, p_175068_2_);
|
|
+ // restore blending function changed by RenderGlobal.preRenderDamagedBlocks
|
|
+ GlStateManager.func_187428_a(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
|
|
+ net.minecraftforge.client.ForgeHooksClient.setRenderPass(-1);
|
|
+ RenderHelper.func_74518_a();
|
|
+ }
|
|
GlStateManager.func_179103_j(7424);
|
|
GlStateManager.func_179132_a(true);
|
|
GlStateManager.func_179089_o();
|
|
@@ -1400,6 +1417,9 @@
|
|
this.func_180437_a(renderglobal, p_175068_2_, p_175068_1_, d0, d1, d2);
|
|
}
|
|
|
|
+ this.field_78531_r.field_71424_I.func_76318_c("forge_render_last");
|
|
+ net.minecraftforge.client.ForgeHooksClient.dispatchRenderLast(renderglobal, p_175068_2_);
|
|
+
|
|
this.field_78531_r.field_71424_I.func_76318_c("hand");
|
|
|
|
if (this.field_175074_C)
|
|
@@ -1515,6 +1535,13 @@
|
|
|
|
protected void func_78474_d(float p_78474_1_)
|
|
{
|
|
+ net.minecraftforge.client.IRenderHandler renderer = this.field_78531_r.field_71441_e.field_73011_w.getWeatherRenderer();
|
|
+ if (renderer != null)
|
|
+ {
|
|
+ renderer.render(p_78474_1_, this.field_78531_r.field_71441_e, field_78531_r);
|
|
+ return;
|
|
+ }
|
|
+
|
|
float f = this.field_78531_r.field_71441_e.func_72867_j(p_78474_1_);
|
|
|
|
if (f > 0.0F)
|
|
@@ -1845,6 +1872,13 @@
|
|
this.field_175081_S = f7;
|
|
}
|
|
|
|
+ net.minecraftforge.client.event.EntityViewRenderEvent.FogColors event = new net.minecraftforge.client.event.EntityViewRenderEvent.FogColors(this, entity, iblockstate, p_78466_1_, this.field_175080_Q, this.field_175082_R, this.field_175081_S);
|
|
+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event);
|
|
+
|
|
+ this.field_175080_Q = event.getRed();
|
|
+ this.field_175082_R = event.getGreen();
|
|
+ this.field_175081_S = event.getBlue();
|
|
+
|
|
GlStateManager.func_179082_a(this.field_175080_Q, this.field_175082_R, this.field_175081_S, 0.0F);
|
|
}
|
|
|
|
@@ -1855,7 +1889,9 @@
|
|
GlStateManager.func_187432_a(0.0F, -1.0F, 0.0F);
|
|
GlStateManager.func_179131_c(1.0F, 1.0F, 1.0F, 1.0F);
|
|
IBlockState iblockstate = ActiveRenderInfo.func_186703_a(this.field_78531_r.field_71441_e, entity, p_78468_2_);
|
|
-
|
|
+ float hook = net.minecraftforge.client.ForgeHooksClient.getFogDensity(this, entity, iblockstate, p_78468_2_, 0.1F);
|
|
+ if (hook >= 0) GlStateManager.func_179095_a(hook);
|
|
+ else
|
|
if (entity instanceof EntityLivingBase && ((EntityLivingBase)entity).func_70644_a(MobEffects.field_76440_q))
|
|
{
|
|
float f1 = 5.0F;
|
|
@@ -1940,6 +1976,7 @@
|
|
GlStateManager.func_179102_b(f * 0.05F);
|
|
GlStateManager.func_179153_c(Math.min(f, 192.0F) * 0.5F);
|
|
}
|
|
+ net.minecraftforge.client.ForgeHooksClient.onFogRender(this, entity, iblockstate, p_78468_2_, p_78468_1_, f);
|
|
}
|
|
|
|
GlStateManager.func_179142_g();
|