159 lines
9.3 KiB
Diff
159 lines
9.3 KiB
Diff
--- a/net/minecraft/client/renderer/EntityRenderer.java
|
|
+++ b/net/minecraft/client/renderer/EntityRenderer.java
|
|
@@ -171,7 +171,7 @@
|
|
this.func_175069_a(new ResourceLocation("shaders/post/spider.json"));
|
|
} else if (p_175066_1_ instanceof EntityEnderman) {
|
|
this.func_175069_a(new ResourceLocation("shaders/post/invert.json"));
|
|
- }
|
|
+ } else net.minecraftforge.client.ForgeHooksClient.loadEntityShader(p_175066_1_, this);
|
|
|
|
}
|
|
}
|
|
@@ -310,7 +310,7 @@
|
|
} else if (raytraceresult != null) {
|
|
double d3 = vec3d.func_72438_d(raytraceresult.field_72307_f);
|
|
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) {
|
|
this.field_78528_u = entity1;
|
|
vec3d3 = raytraceresult.field_72307_f;
|
|
@@ -381,7 +381,7 @@
|
|
d0 = d0 * 60.0D / 70.0D;
|
|
}
|
|
|
|
- return d0;
|
|
+ return net.minecraftforge.client.ForgeHooksClient.getFOVModifier(this, entity, ActiveRenderInfo.func_186703_a(this.field_78531_r.field_71441_e, entity, p_195459_1_), ifluidstate, p_195459_1_, d0);
|
|
}
|
|
}
|
|
|
|
@@ -488,8 +488,16 @@
|
|
}
|
|
|
|
if (!this.field_78531_r.field_71474_y.field_74325_U) {
|
|
- GlStateManager.func_179114_b(entity.func_195050_f(p_78467_1_), 1.0F, 0.0F, 0.0F);
|
|
- GlStateManager.func_179114_b(entity.func_195046_g(p_78467_1_) + 180.0F, 0.0F, 1.0F, 0.0F);
|
|
+ float yaw = entity.func_195046_g(p_78467_1_) + 180F;
|
|
+ float pitch = entity.func_195050_f(p_78467_1_);
|
|
+ float roll = 0.0F;
|
|
+ IBlockState state = ActiveRenderInfo.func_186703_a(this.field_78531_r.field_71441_e, entity, p_78467_1_);
|
|
+ IFluidState fluidState = ActiveRenderInfo.func_206243_b(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, fluidState, 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);
|
|
@@ -543,6 +551,8 @@
|
|
}
|
|
|
|
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_195457_1_))
|
|
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_178889_l() != GameType.SPECTATOR) {
|
|
this.func_180436_i();
|
|
this.field_78516_c.func_78440_a(p_195457_1_);
|
|
@@ -631,13 +641,17 @@
|
|
GlStateManager.func_179128_n(5888);
|
|
GlStateManager.func_179096_D();
|
|
this.field_78531_r.field_195558_d.func_198094_a();
|
|
+ // 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) {
|
|
GlStateManager.func_179086_m(256);
|
|
|
|
try {
|
|
- this.field_78531_r.field_71462_r.func_73863_a(i, j, this.field_78531_r.func_193989_ak());
|
|
+ net.minecraftforge.client.ForgeHooksClient.drawScreen(this.field_78531_r.field_71462_r, i, j, this.field_78531_r.func_193989_ak());
|
|
} catch (Throwable throwable) {
|
|
CrashReport crashreport = CrashReport.func_85055_a(throwable, "Rendering screen");
|
|
CrashReportCategory crashreportcategory = crashreport.func_85058_a("Screen render details");
|
|
@@ -698,9 +712,10 @@
|
|
ItemStack itemstack = ((EntityPlayer)entity).func_184614_ca();
|
|
if (this.field_78531_r.field_71476_x != null && this.field_78531_r.field_71476_x.field_72313_a == RayTraceResult.Type.BLOCK) {
|
|
BlockPos blockpos = this.field_78531_r.field_71476_x.func_178782_a();
|
|
- Block block = this.field_78531_r.field_71441_e.func_180495_p(blockpos).func_177230_c();
|
|
+ IBlockState state = this.field_78531_r.field_71441_e.func_180495_p(blockpos);
|
|
+ Block block = state.func_177230_c();
|
|
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(state) && this.field_78531_r.field_71441_e.func_175625_s(blockpos) instanceof IInventory;
|
|
} else {
|
|
BlockWorldState blockworldstate = new BlockWorldState(this.field_78531_r.field_71441_e, blockpos, false);
|
|
flag = !itemstack.func_190926_b() && (itemstack.func_206848_a(this.field_78531_r.field_71441_e.func_205772_D(), blockworldstate) || itemstack.func_206847_b(this.field_78531_r.field_71441_e.func_205772_D(), blockworldstate));
|
|
@@ -738,7 +753,7 @@
|
|
GlStateManager.func_179086_m(16640);
|
|
this.field_78531_r.field_71424_I.func_76318_c("camera");
|
|
this.func_195460_g(p_181560_1_);
|
|
- ActiveRenderInfo.func_197924_a(this.field_78531_r.field_71439_g, this.field_78531_r.field_71474_y.field_74320_O == 2, this.field_78530_s);
|
|
+ ActiveRenderInfo.updateRenderInfo(this.field_78531_r.func_175606_aa(), this.field_78531_r.field_71474_y.field_74320_O == 2, this.field_78530_s);
|
|
this.field_78531_r.field_71424_I.func_76318_c("frustum");
|
|
ClippingHelperImpl.func_78558_a();
|
|
this.field_78531_r.field_71424_I.func_76318_c("culling");
|
|
@@ -782,7 +797,9 @@
|
|
GlStateManager.func_179118_c();
|
|
renderglobal.func_195464_a(BlockRenderLayer.SOLID, (double)p_181560_1_, entity);
|
|
GlStateManager.func_179141_d();
|
|
+ this.field_78531_r.func_110434_K().func_110581_b(TextureMap.field_110575_b).func_174936_b(false, this.field_78531_r.field_71474_y.field_151442_I > 0); // FORGE: fix flickering leaves when mods mess up the blurMipmap settings
|
|
renderglobal.func_195464_a(BlockRenderLayer.CUTOUT_MIPPED, (double)p_181560_1_, entity);
|
|
+ this.field_78531_r.func_110434_K().func_110581_b(TextureMap.field_110575_b).func_174935_a();
|
|
this.field_78531_r.func_110434_K().func_110581_b(TextureMap.field_110575_b).func_174936_b(false, false);
|
|
renderglobal.func_195464_a(BlockRenderLayer.CUTOUT, (double)p_181560_1_, entity);
|
|
this.field_78531_r.func_110434_K().func_110581_b(TextureMap.field_110575_b).func_174935_a();
|
|
@@ -793,7 +810,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_181560_1_);
|
|
+ net.minecraftforge.client.ForgeHooksClient.setRenderPass(0);
|
|
RenderHelper.func_74518_a();
|
|
this.func_175072_h();
|
|
GlStateManager.func_179128_n(5888);
|
|
@@ -802,6 +821,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_181560_1_))
|
|
renderglobal.func_72731_b(entityplayer, this.field_78531_r.field_71476_x, 0, p_181560_1_);
|
|
GlStateManager.func_179141_d();
|
|
}
|
|
@@ -852,6 +872,9 @@
|
|
this.func_195456_a(renderglobal, p_181560_1_, d0, d1, d2);
|
|
}
|
|
|
|
+ this.field_78531_r.field_71424_I.func_76318_c("forge_render_last");
|
|
+ net.minecraftforge.client.ForgeHooksClient.dispatchRenderLast(renderglobal, p_181560_1_);
|
|
+
|
|
this.field_78531_r.field_71424_I.func_76318_c("hand");
|
|
if (this.field_175074_C) {
|
|
GlStateManager.func_179086_m(256);
|
|
@@ -955,6 +978,11 @@
|
|
}
|
|
|
|
protected void func_78474_d(float p_78474_1_) {
|
|
+ net.minecraftforge.client.IRenderHandler renderer = this.field_78531_r.field_71441_e.func_201675_m().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)) {
|
|
this.func_180436_i();
|
|
@@ -1182,4 +1210,9 @@
|
|
public float func_205001_m() {
|
|
return this.field_78530_s;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public net.minecraftforge.resource.IResourceType getResourceType() {
|
|
+ return net.minecraftforge.resource.VanillaResourceType.SHADERS;
|
|
+ }
|
|
}
|