Exception_Prototype

RenderPart

Mar 20th, 2018
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.58 KB | None | 0 0
  1. package net.machinemuse.powersuits.client.render.modelspec;
  2.  
  3. import net.machinemuse.general.NBTTagAccessor;
  4. import net.machinemuse.numina.geometry.Colour;
  5. import net.machinemuse.numina.render.MuseTextureUtils;
  6. import net.machinemuse.powersuits.client.render.item.ArmorModelInstance;
  7. import net.machinemuse.powersuits.client.render.item.IArmorModel;
  8. import net.minecraft.client.model.ModelBase;
  9. import net.minecraft.client.model.ModelRenderer;
  10. import net.minecraft.client.renderer.OpenGlHelper;
  11. import net.minecraft.client.renderer.RenderHelper;
  12. import net.minecraft.nbt.NBTTagCompound;
  13. import net.minecraftforge.client.model.obj.WavefrontObject;
  14. import org.lwjgl.opengl.GL11;
  15.  
  16. public class RenderPart
  17.   extends ModelRenderer
  18. {
  19.   ModelRenderer parent;
  20.  
  21.   public RenderPart(ModelBase base, ModelRenderer parent)
  22.   {
  23.     super(base);
  24.     this.parent = parent;
  25.   }
  26.  
  27.   public void func_78785_a(float scale)
  28.   {
  29.     NBTTagCompound renderSpec = ((IArmorModel)ArmorModelInstance.getInstance()).getRenderSpec();
  30.     int[] colours = renderSpec.func_74759_k("colours");
  31.     for (NBTTagCompound nbt : NBTTagAccessor.getValues(renderSpec))
  32.     {
  33.       ModelPartSpec part = ModelRegistry.getInstance().getPart(nbt);
  34.       if ((part != null) &&
  35.         (part.slot == ((IArmorModel)ArmorModelInstance.getInstance()).getVisibleSection()) && (part.morph.apply(ArmorModelInstance.getInstance()) == this.parent))
  36.       {
  37.         float prevBrightX = OpenGlHelper.lastBrightnessX;
  38.         float prevBrightY = OpenGlHelper.lastBrightnessY;
  39.         if (part.getGlow(nbt))
  40.         {
  41.           GL11.glPushAttrib(64);
  42.           RenderHelper.func_74518_a();
  43.           OpenGlHelper.func_77475_a(OpenGlHelper.field_77476_b, 240.0F, 240.0F);
  44.         }
  45.         GL11.glPushMatrix();
  46.         GL11.glScaled(scale, scale, scale);
  47.         MuseTextureUtils.bindTexture(part.getTexture(nbt));
  48.         applyTransform();
  49.        
  50.         int ix = part.getColourIndex(nbt);
  51.         if ((ix < colours.length) && (ix >= 0)) {
  52.           Colour.doGLByInt(colours[ix]);
  53.         }
  54.         part.modelSpec.applyOffsetAndRotation();
  55.         part.modelSpec.model.renderPart(part.partName);
  56.         Colour.WHITE.doGL();
  57.         GL11.glPopMatrix();
  58.         if (part.getGlow(nbt))
  59.         {
  60.           OpenGlHelper.func_77475_a(OpenGlHelper.field_77476_b, prevBrightX, prevBrightY);
  61.           GL11.glPopAttrib();
  62.         }
  63.       }
  64.     }
  65.   }
  66.  
  67.   private void applyTransform()
  68.   {
  69.     GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F);
  70.     GL11.glTranslated(this.field_82906_o, this.field_82908_p - 26.0F, this.field_82907_q);
  71.   }
  72. }
Add Comment
Please, Sign In to add comment