Advertisement
Guest User

Render Mongoose Entity

a guest
Jun 18th, 2015
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.74 KB | None | 0 0
  1. package halocraft;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.List;
  6.  
  7. import net.minecraft.block.state.IBlockState;
  8. import net.minecraft.client.Minecraft;
  9. import net.minecraft.client.model.ModelBase;
  10. import net.minecraft.client.model.ModelBoat;
  11. import net.minecraft.client.renderer.BlockModelRenderer;
  12. import net.minecraft.client.renderer.BlockRendererDispatcher;
  13. import net.minecraft.client.renderer.GlStateManager;
  14. import net.minecraft.client.renderer.Tessellator;
  15. import net.minecraft.client.renderer.WorldRenderer;
  16. import net.minecraft.client.renderer.block.model.BakedQuad;
  17. import net.minecraft.client.renderer.entity.Render;
  18. import net.minecraft.client.renderer.entity.RenderManager;
  19. import net.minecraft.client.resources.IResourceManager;
  20. import net.minecraft.client.resources.model.IBakedModel;
  21. import net.minecraft.client.resources.model.ModelResourceLocation;
  22. import net.minecraft.entity.Entity;
  23. import net.minecraft.entity.item.EntityBoat;
  24. import net.minecraft.util.BlockPos;
  25. import net.minecraft.util.EnumFacing;
  26. import net.minecraft.util.MathHelper;
  27. import net.minecraft.util.ResourceLocation;
  28. import net.minecraft.world.World;
  29. import net.minecraftforge.client.event.ModelBakeEvent;
  30. import net.minecraftforge.client.model.ICustomModelLoader;
  31. import net.minecraftforge.client.model.IFlexibleBakedModel;
  32. import net.minecraftforge.client.model.IModel;
  33. import net.minecraftforge.client.model.ModelLoaderRegistry;
  34. import net.minecraftforge.client.model.b3d.B3DLoader;
  35. import net.minecraftforge.fml.relauncher.Side;
  36. import net.minecraftforge.fml.relauncher.SideOnly;
  37.  
  38. @SideOnly(Side.CLIENT)
  39. public class RenderMongooseEntity extends Render
  40. {
  41.     private static final ResourceLocation boatTextures = new ResourceLocation("halocraft:textures/entities/MongooseRender.png");
  42.     private static final ModelResourceLocation boatModel = new ModelResourceLocation("halocraft:/models/block/Mongoose.b3d");
  43.     private static final String __OBFID = "CL_00000981";
  44.     IModel model = null;
  45.     public RenderMongooseEntity(RenderManager p_i46190_1_)
  46.     {
  47.         super(p_i46190_1_);
  48.         B3DLoader.instance.addDomain("halocraft");
  49.         model = B3DLoader.instance.loadModel(boatModel);
  50.         this.shadowSize = 0.5F;
  51.     }
  52.  
  53.     public void doRender(EntityMongoose par1EntityMongoose, double p_180552_2_, double p_180552_4_, double p_180552_6_, float p_180552_8_, float p_180552_9_)
  54.     {
  55.         World world = par1EntityMongoose.getWorldObj();
  56.         BlockPos blockpos = new BlockPos(par1EntityMongoose);
  57.         Tessellator tessellator = Tessellator.getInstance();
  58.         WorldRenderer worldrenderer = tessellator.getWorldRenderer();
  59.         GlStateManager.pushMatrix();
  60.         GlStateManager.translate((float)p_180552_2_, (float)p_180552_4_ + 1.5F, (float)p_180552_6_);
  61.         //GlStateManager.rotate(180.0F - p_180552_8_, 0.0F, 1.0F, 0.0F);
  62.         float f2 = (float)par1EntityMongoose.getTimeSinceHit() - p_180552_9_;
  63.         float f3 = par1EntityMongoose.getDamageTaken() - p_180552_9_;
  64.  
  65.         if (f3 < 0.0F)
  66.         {
  67.             f3 = 0.0F;
  68.         }
  69.  
  70.         if (f2 > 0.0F)
  71.         {
  72.             GlStateManager.rotate(MathHelper.sin(f2) * f2 * f3 / 10.0F * (float)par1EntityMongoose.getForwardDirection(), 1.0F, 0.0F, 0.0F);
  73.         }
  74.        
  75.         float f4 = 0.75F;
  76.         GlStateManager.scale(f4, f4, f4);
  77.         GlStateManager.scale(1.0F / f4, 1.0F / f4, 1.0F / f4);
  78.         this.bindEntityTexture(par1EntityMongoose);
  79.         GlStateManager.scale(-1.0F, -1.0F, 1.0F);
  80.         IBakedModel ibakedmodel = BakeEventHandler.getBakedModel();
  81.        
  82.         //Get Quads
  83.         List<BakedQuad> generalQuads = ibakedmodel.getGeneralQuads();
  84.         for (BakedQuad q : generalQuads) {
  85.             int[] vd = q.getVertexData();
  86.             worldrenderer.addVertexData(vd);
  87.         }
  88.  
  89.         for (EnumFacing face : EnumFacing.values()) {
  90.             List<BakedQuad> faceQuads = ibakedmodel.getFaceQuads(face);
  91.             for (BakedQuad q : faceQuads) {
  92.                 int[] vd = q.getVertexData();
  93.                 worldrenderer.addVertexData(vd);
  94.             }
  95.         }
  96.         tessellator.draw();
  97.                 //this.modelBoat.render(par1EntityMongoose, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
  98.         GlStateManager.popMatrix();
  99.         super.doRender(par1EntityMongoose, p_180552_2_, p_180552_4_, p_180552_6_, p_180552_8_, p_180552_9_);
  100.     }
  101.  
  102.     protected ResourceLocation getEntityTexture(EntityMongoose p_180553_1_)
  103.     {
  104.         return boatTextures;
  105.     }
  106.  
  107.     protected ResourceLocation getEntityTexture(Entity entity)
  108.     {
  109.         return this.getEntityTexture((EntityMongoose)entity);
  110.     }
  111.  
  112.     public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float partialTicks)
  113.     {
  114.         this.doRender((EntityMongoose)entity, x, y, z, p_76986_8_, partialTicks);
  115.     }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement