Advertisement
Exception_Prototype

RenderPlayerBaseGC

Mar 18th, 2018
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.55 KB | None | 0 0
  1. package micdoodle8.mods.galacticraft.core.client.render.entities;
  2.  
  3. import api.player.model.ModelPlayer;
  4. import api.player.render.RenderPlayerAPI;
  5. import api.player.render.RenderPlayerBase;
  6. import cpw.mods.fml.client.FMLClientHandler;
  7. import cpw.mods.fml.common.eventhandler.EventBus;
  8. import java.util.Map;
  9. import micdoodle8.mods.galacticraft.api.prefab.entity.EntityTieredRocket;
  10. import micdoodle8.mods.galacticraft.api.world.IGalacticraftWorldProvider;
  11. import micdoodle8.mods.galacticraft.core.GalacticraftCore;
  12. import micdoodle8.mods.galacticraft.core.client.model.ModelPlayerBaseGC;
  13. import micdoodle8.mods.galacticraft.core.proxy.ClientProxyCore;
  14. import micdoodle8.mods.galacticraft.core.wrappers.PlayerGearData;
  15. import net.minecraft.client.Minecraft;
  16. import net.minecraft.client.entity.AbstractClientPlayer;
  17. import net.minecraft.client.model.ModelBiped;
  18. import net.minecraft.client.renderer.entity.RenderPlayer;
  19. import net.minecraft.client.renderer.texture.TextureManager;
  20. import net.minecraft.client.settings.GameSettings;
  21. import net.minecraft.entity.EntityLivingBase;
  22. import net.minecraft.entity.player.EntityPlayer;
  23. import net.minecraft.util.ResourceLocation;
  24. import net.minecraft.world.World;
  25. import net.minecraftforge.common.MinecraftForge;
  26. import org.lwjgl.opengl.GL11;
  27.  
  28. public class RenderPlayerBaseGC
  29.   extends RenderPlayerBase
  30. {
  31.   public ModelPlayer modelThermalPadding;
  32.   public ModelPlayer modelThermalPaddingHelmet;
  33.   private static ResourceLocation thermalPaddingTexture0;
  34.   private static ResourceLocation thermalPaddingTexture1;
  35.  
  36.   public RenderPlayerBaseGC(RenderPlayerAPI renderPlayerAPI)
  37.   {
  38.     super(renderPlayerAPI);
  39.     this.modelThermalPadding = new ModelPlayer(0.25F);
  40.     this.modelThermalPaddingHelmet = new ModelPlayer(0.9F);
  41.     if (GalacticraftCore.isPlanetsLoaded)
  42.     {
  43.       thermalPaddingTexture0 = new ResourceLocation("galacticraftasteroids", "textures/misc/thermalPadding_0.png");
  44.       thermalPaddingTexture1 = new ResourceLocation("galacticraftasteroids", "textures/misc/thermalPadding_1.png");
  45.     }
  46.   }
  47.  
  48.   public void renderModel(EntityLivingBase par1EntityLivingBase, float par2, float par3, float par4, float par5, float par6, float par7)
  49.   {
  50.     super.renderModel(par1EntityLivingBase, par2, par3, par4, par5, par6, par7);
  51.     if (thermalPaddingTexture0 != null)
  52.     {
  53.       PlayerGearData gearData = (PlayerGearData)ClientProxyCore.playerItemData.get(par1EntityLivingBase.func_70005_c_());
  54.       if ((gearData != null) && (!RenderPlayerGC.flagThermalOverride)) {
  55.         for (int i = 0; i < 4; i++)
  56.         {
  57.           ModelBiped modelBiped;
  58.           ModelBiped modelBiped;
  59.           if (i == 0) {
  60.             modelBiped = this.modelThermalPaddingHelmet;
  61.           } else {
  62.             modelBiped = this.modelThermalPadding;
  63.           }
  64.           int padding = gearData.getThermalPadding(i);
  65.           if ((padding >= 0) && (!par1EntityLivingBase.func_82150_aj()))
  66.           {
  67.             GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  68.             FMLClientHandler.instance().getClient().func_110434_K().func_110577_a(thermalPaddingTexture1);
  69.             modelBiped.field_78116_c.field_78806_j = (i == 0);
  70.             modelBiped.field_78114_d.field_78806_j = (i == 0);
  71.             modelBiped.field_78115_e.field_78806_j = ((i == 1) || (i == 2));
  72.             modelBiped.field_78112_f.field_78806_j = (i == 1);
  73.             modelBiped.field_78113_g.field_78806_j = (i == 1);
  74.             modelBiped.field_78123_h.field_78806_j = ((i == 2) || (i == 3));
  75.             modelBiped.field_78124_i.field_78806_j = ((i == 2) || (i == 3));
  76.             modelBiped.field_78095_p = this.renderPlayer.field_77109_a.field_78095_p;
  77.             modelBiped.field_78093_q = this.renderPlayer.field_77109_a.field_78093_q;
  78.             modelBiped.field_78091_s = this.renderPlayer.field_77109_a.field_78091_s;
  79.             if (this.renderPlayer.field_77109_a != null)
  80.             {
  81.               modelBiped.field_78119_l = this.renderPlayer.field_77109_a.field_78119_l;
  82.               modelBiped.field_78120_m = this.renderPlayer.field_77109_a.field_78120_m;
  83.               modelBiped.field_78117_n = this.renderPlayer.field_77109_a.field_78117_n;
  84.               modelBiped.field_78118_o = this.renderPlayer.field_77109_a.field_78118_o;
  85.             }
  86.             modelBiped.func_78086_a(par1EntityLivingBase, par2, par3, 0.0F);
  87.             modelBiped.func_78088_a(par1EntityLivingBase, par2, par3, par4, par5, par6, par7);
  88.            
  89.             GL11.glDisable(2896);
  90.             FMLClientHandler.instance().getClient().func_110434_K().func_110577_a(thermalPaddingTexture0);
  91.             GL11.glEnable(3008);
  92.             GL11.glEnable(3042);
  93.             GL11.glAlphaFunc(516, 0.0F);
  94.             GL11.glBlendFunc(770, 771);
  95.             float time = par1EntityLivingBase.field_70173_aa / 10.0F;
  96.             float sTime = (float)Math.sin(time) * 0.5F + 0.5F;
  97.            
  98.             float r = 0.2F * sTime;
  99.             float g = 1.0F * sTime;
  100.             float b = 0.2F * sTime;
  101.             if ((par1EntityLivingBase.field_70170_p.field_73011_w instanceof IGalacticraftWorldProvider))
  102.             {
  103.               float modifier = ((IGalacticraftWorldProvider)par1EntityLivingBase.field_70170_p.field_73011_w).getThermalLevelModifier();
  104.               if (modifier > 0.0F)
  105.               {
  106.                 b = g;
  107.                 g = r;
  108.               }
  109.               else if (modifier < 0.0F)
  110.               {
  111.                 r = g;
  112.                 g = b;
  113.               }
  114.             }
  115.             GL11.glColor4f(r, g, b, 0.4F * sTime);
  116.             modelBiped.func_78088_a(par1EntityLivingBase, par2, par3, par4, par5, par6, par7);
  117.             GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  118.             GL11.glDisable(3042);
  119.             GL11.glEnable(3008);
  120.             GL11.glEnable(2896);
  121.           }
  122.         }
  123.       }
  124.     }
  125.   }
  126.  
  127.   public void rotatePlayer(AbstractClientPlayer par1AbstractClientPlayer, float par2, float par3, float par4)
  128.   {
  129.     if ((par1AbstractClientPlayer.func_70089_S()) && (par1AbstractClientPlayer.func_70608_bn()))
  130.     {
  131.       RenderPlayerGC.RotatePlayerEvent event = new RenderPlayerGC.RotatePlayerEvent(par1AbstractClientPlayer);
  132.       MinecraftForge.EVENT_BUS.post(event);
  133.       if (!event.vanillaOverride)
  134.       {
  135.         GL11.glRotatef(par1AbstractClientPlayer.func_71051_bG(), 0.0F, 1.0F, 0.0F);
  136.         GL11.glRotatef(getDeathMaxRotation(par1AbstractClientPlayer), 0.0F, 0.0F, 1.0F);
  137.         GL11.glRotatef(270.0F, 0.0F, 1.0F, 0.0F);
  138.         GL11.glTranslatef(0.0F, 0.0F, ModelPlayerBaseGC.isSmartMovingLoaded ? 3.0F : 2.0F);
  139.       }
  140.       else if ((event.shouldRotate == null) || (event.shouldRotate.booleanValue()))
  141.       {
  142.         GL11.glRotatef(par1AbstractClientPlayer.func_71051_bG(), 0.0F, 1.0F, 0.0F);
  143.       }
  144.     }
  145.     else
  146.     {
  147.       if (((par1AbstractClientPlayer instanceof EntityPlayer)) && (Minecraft.func_71410_x().field_71474_y.field_74320_O != 0))
  148.       {
  149.         EntityPlayer player = par1AbstractClientPlayer;
  150.         if ((player.field_70154_o instanceof EntityTieredRocket))
  151.         {
  152.           EntityTieredRocket rocket = (EntityTieredRocket)player.field_70154_o;
  153.           GL11.glTranslatef(0.0F, -rocket.getRotateOffset(), 0.0F);
  154.           float anglePitch = rocket.field_70127_C;
  155.           float angleYaw = rocket.field_70126_B;
  156.           GL11.glRotatef(-angleYaw, 0.0F, 1.0F, 0.0F);
  157.           GL11.glRotatef(anglePitch, 0.0F, 0.0F, 1.0F);
  158.           GL11.glTranslatef(0.0F, rocket.getRotateOffset(), 0.0F);
  159.         }
  160.       }
  161.       super.rotatePlayer(par1AbstractClientPlayer, par2, par3, par4);
  162.     }
  163.   }
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement