Merge pull request #1858 from FlansMods/master
Hook for Camera Angles, Including Roll
This commit is contained in:
commit
8bb34107f1
2 changed files with 57 additions and 11 deletions
|
@ -25,7 +25,35 @@
|
|||
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);
|
||||
}
|
||||
@@ -1081,7 +1075,7 @@
|
||||
@@ -630,17 +624,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);
|
||||
- }
|
||||
+ Block block = ActiveRenderInfo.func_180786_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, block, p_78467_1_, yaw, pitch, roll);
|
||||
+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event);
|
||||
+ GlStateManager.func_179114_b(event.roll, 0.0F, 0.0F, 1.0F);
|
||||
+ GlStateManager.func_179114_b(event.pitch, 1.0F, 0.0F, 0.0F);
|
||||
+ GlStateManager.func_179114_b(event.yaw, 0.0F, 1.0F, 0.0F);
|
||||
}
|
||||
|
||||
GlStateManager.func_179109_b(0.0F, -f1, 0.0F);
|
||||
@@ -1081,7 +1078,7 @@
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -34,7 +62,7 @@
|
|||
}
|
||||
catch (Throwable throwable)
|
||||
{
|
||||
@@ -1145,7 +1139,7 @@
|
||||
@@ -1145,7 +1142,7 @@
|
||||
|
||||
if (this.field_78531_r.field_71442_b.func_178889_l() == WorldSettings.GameType.SPECTATOR)
|
||||
{
|
||||
|
@ -43,7 +71,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@@ -1296,7 +1290,9 @@
|
||||
@@ -1296,7 +1293,9 @@
|
||||
GlStateManager.func_179094_E();
|
||||
RenderHelper.func_74519_b();
|
||||
this.field_78531_r.field_71424_I.func_76318_c("entities");
|
||||
|
@ -53,7 +81,7 @@
|
|||
RenderHelper.func_74518_a();
|
||||
this.func_175072_h();
|
||||
GlStateManager.func_179128_n(5888);
|
||||
@@ -1308,6 +1304,7 @@
|
||||
@@ -1308,6 +1307,7 @@
|
||||
entityplayer = (EntityPlayer)entity;
|
||||
GlStateManager.func_179118_c();
|
||||
this.field_78531_r.field_71424_I.func_76318_c("outline");
|
||||
|
@ -61,7 +89,7 @@
|
|||
renderglobal.func_72731_b(entityplayer, this.field_78531_r.field_71476_x, 0, p_175068_2_);
|
||||
GlStateManager.func_179141_d();
|
||||
}
|
||||
@@ -1321,6 +1318,7 @@
|
||||
@@ -1321,6 +1321,7 @@
|
||||
entityplayer = (EntityPlayer)entity;
|
||||
GlStateManager.func_179118_c();
|
||||
this.field_78531_r.field_71424_I.func_76318_c("outline");
|
||||
|
@ -69,7 +97,7 @@
|
|||
renderglobal.func_72731_b(entityplayer, this.field_78531_r.field_71476_x, 0, p_175068_2_);
|
||||
GlStateManager.func_179141_d();
|
||||
}
|
||||
@@ -1373,6 +1371,16 @@
|
||||
@@ -1373,6 +1374,16 @@
|
||||
renderglobal.func_174977_a(EnumWorldBlockLayer.TRANSLUCENT, (double)p_175068_2_, p_175068_1_, entity);
|
||||
}
|
||||
|
||||
|
@ -86,7 +114,7 @@
|
|||
GlStateManager.func_179103_j(7424);
|
||||
GlStateManager.func_179132_a(true);
|
||||
GlStateManager.func_179089_o();
|
||||
@@ -1385,8 +1393,12 @@
|
||||
@@ -1385,8 +1396,12 @@
|
||||
this.func_180437_a(renderglobal, p_175068_2_, p_175068_1_);
|
||||
}
|
||||
|
||||
|
@ -99,7 +127,7 @@
|
|||
if (this.field_175074_C)
|
||||
{
|
||||
GlStateManager.func_179086_m(256);
|
||||
@@ -1498,6 +1510,13 @@
|
||||
@@ -1498,6 +1513,13 @@
|
||||
|
||||
protected void func_78474_d(float p_78474_1_)
|
||||
{
|
||||
|
@ -113,7 +141,7 @@
|
|||
float f1 = this.field_78531_r.field_71441_e.func_72867_j(p_78474_1_);
|
||||
|
||||
if (f1 > 0.0F)
|
||||
@@ -1835,6 +1854,13 @@
|
||||
@@ -1835,6 +1857,13 @@
|
||||
this.field_175081_S = f8;
|
||||
}
|
||||
|
||||
|
@ -127,7 +155,7 @@
|
|||
GlStateManager.func_179082_a(this.field_175080_Q, this.field_175082_R, this.field_175081_S, 0.0F);
|
||||
}
|
||||
|
||||
@@ -1854,6 +1880,10 @@
|
||||
@@ -1854,6 +1883,10 @@
|
||||
Block block = ActiveRenderInfo.func_180786_a(this.field_78531_r.field_71441_e, entity, p_78468_2_);
|
||||
float f1;
|
||||
|
||||
|
@ -138,7 +166,7 @@
|
|||
if (entity instanceof EntityLivingBase && ((EntityLivingBase)entity).func_70644_a(Potion.field_76440_q))
|
||||
{
|
||||
f1 = 5.0F;
|
||||
@@ -1931,6 +1961,7 @@
|
||||
@@ -1931,6 +1964,7 @@
|
||||
GlStateManager.func_179102_b(f1 * 0.05F);
|
||||
GlStateManager.func_179153_c(Math.min(f1, 192.0F) * 0.5F);
|
||||
}
|
||||
|
|
|
@ -78,4 +78,22 @@ public abstract class EntityViewRenderEvent extends Event
|
|||
this.blue = blue;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Event that allows mods to alter the angles of the player's camera. Mainly useful for applying roll.
|
||||
*/
|
||||
public static class CameraSetup extends EntityViewRenderEvent
|
||||
{
|
||||
public float yaw;
|
||||
public float pitch;
|
||||
public float roll;
|
||||
|
||||
public CameraSetup(EntityRenderer renderer, Entity entity, Block block, double renderPartialTicks, float yaw, float pitch, float roll)
|
||||
{
|
||||
super(renderer, entity, block, renderPartialTicks);
|
||||
this.yaw = yaw;
|
||||
this.pitch = pitch;
|
||||
this.roll = roll;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue