Advertisement
Guest User

Untitled

a guest
Oct 30th, 2015
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.29 KB | None | 0 0
  1. package io.github.hsyyid.starwarsbattlecraft.entities.vehicles.render;
  2.  
  3. import com.google.common.base.Function;
  4. import net.minecraft.client.Minecraft;
  5. import net.minecraft.client.renderer.GlStateManager;
  6. import net.minecraft.client.renderer.Tessellator;
  7. import net.minecraft.client.renderer.WorldRenderer;
  8. import net.minecraft.client.renderer.block.model.BakedQuad;
  9. import net.minecraft.client.renderer.entity.Render;
  10. import net.minecraft.client.renderer.texture.TextureAtlasSprite;
  11. import net.minecraft.client.resources.model.IBakedModel;
  12. import net.minecraft.client.resources.model.ModelResourceLocation;
  13. import net.minecraft.entity.Entity;
  14. import net.minecraft.util.BlockPos;
  15. import net.minecraft.util.EnumFacing;
  16. import net.minecraft.util.ResourceLocation;
  17. import net.minecraft.world.World;
  18. import net.minecraftforge.client.model.Attributes;
  19. import net.minecraftforge.client.model.IModel;
  20. import net.minecraftforge.client.model.ModelLoaderRegistry;
  21. import net.minecraftforge.client.model.TRSRTransformation;
  22. import net.minecraftforge.fml.relauncher.Side;
  23. import net.minecraftforge.fml.relauncher.SideOnly;
  24.  
  25. import java.util.List;
  26.  
  27. @SideOnly(Side.CLIENT)
  28. public class RenderEntityATAT extends Render
  29. {
  30.     private static final ModelResourceLocation model = new ModelResourceLocation("starwars:entity/vehicles/ATAT.obj");
  31.  
  32.     public RenderEntityATAT()
  33.     {
  34.         super(Minecraft.getMinecraft().getRenderManager());
  35.         this.shadowSize = 0.5F;
  36.     }
  37.  
  38.     @Override
  39.     protected ResourceLocation getEntityTexture(Entity entity)
  40.     {
  41.         return null;
  42.     }
  43.  
  44.     Function<ResourceLocation, TextureAtlasSprite> textureGetter = new Function<ResourceLocation, TextureAtlasSprite>()
  45.     {
  46.         public TextureAtlasSprite apply(ResourceLocation location)
  47.         {
  48.             return Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite(location.toString());
  49.         }
  50.     };
  51.  
  52.     @Override
  53.     public void doRender(Entity entity, double posX, double posY, double posZ, float yaw, float partialTicks)
  54.     {
  55.         try
  56.         {
  57.             IModel imodel = ModelLoaderRegistry.getModel(model);
  58.             IBakedModel bakedModel = imodel.bake((TRSRTransformation.identity()), Attributes.DEFAULT_BAKED_FORMAT, textureGetter);
  59.             World world = entity.worldObj;
  60.             BlockPos blockpos = new BlockPos(entity);
  61.             Tessellator tessellator = Tessellator.getInstance();
  62.             WorldRenderer worldrenderer = tessellator.getWorldRenderer();
  63.  
  64.             GlStateManager.pushMatrix();
  65.             {
  66.                 GlStateManager.translate((float) posX + 1.25F, (float) posY + 0.52F, (float) posZ + 0.25F);
  67.  
  68.                 worldrenderer.startDrawingQuads();
  69.  
  70.                 List<BakedQuad> generalQuads = bakedModel.getGeneralQuads();
  71.                 for (BakedQuad q : generalQuads)
  72.                 {
  73.                     int[] vd = q.getVertexData();
  74.                     worldrenderer.setVertexFormat(Attributes.DEFAULT_BAKED_FORMAT);
  75.                     worldrenderer.addVertexData(vd);
  76.                 }
  77.  
  78.                 for (EnumFacing face : EnumFacing.values())
  79.                 {
  80.                     List<BakedQuad> faceQuads =
  81.                         bakedModel.getFaceQuads(face);
  82.                     for (BakedQuad q : faceQuads)
  83.                     {
  84.                         int[] vd = q.getVertexData();
  85.                         worldrenderer.setVertexFormat(Attributes.DEFAULT_BAKED_FORMAT);
  86.                         worldrenderer.addVertexData(vd);
  87.                     }
  88.                 }
  89.  
  90.                 tessellator.draw();
  91.             }
  92.             GlStateManager.popMatrix();
  93.         }
  94.         catch (Exception e)
  95.         {
  96.             e.printStackTrace();
  97.         }
  98.         super.doRender(entity, posX, posY, posZ, yaw, partialTicks);
  99.     }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement