Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.58 KB | None | 0 0
  1. package com.bignose956.VillagerTech.handlers.Rendering;
  2.  
  3. import com.bignose956.VillagerTech.entity.EntityNuke;
  4. import com.bignose956.VillagerTech.init.VillagerBlocks;
  5.  
  6. import net.minecraft.client.Minecraft;
  7. import net.minecraft.client.renderer.BlockRendererDispatcher;
  8. import net.minecraft.client.renderer.GlStateManager;
  9. import net.minecraft.client.renderer.entity.Render;
  10. import net.minecraft.client.renderer.entity.RenderManager;
  11. import net.minecraft.client.renderer.texture.TextureMap;
  12. import net.minecraft.entity.item.EntityTNTPrimed;
  13. import net.minecraft.util.MathHelper;
  14. import net.minecraft.util.ResourceLocation;
  15. import net.minecraftforge.fml.client.registry.IRenderFactory;
  16.  
  17. public class RenderNuke extends Render<EntityNuke>{
  18.  
  19.     public static Factory FACTORY = new Factory();
  20.    
  21.     public RenderNuke(RenderManager renderManagerIn)
  22.     {
  23.         super(renderManagerIn);
  24.         this.shadowSize = 0.5F;
  25.     }
  26.  
  27.     /**
  28.      * Renders the desired {@code T} type Entity.
  29.      */
  30.     public void doRender(EntityNuke entity, double x, double y, double z, float entityYaw, float partialTicks)
  31.     {
  32.         BlockRendererDispatcher blockrendererdispatcher = Minecraft.getMinecraft().getBlockRendererDispatcher();
  33.         GlStateManager.pushMatrix();
  34.         GlStateManager.translate((float)x, (float)y + 0.5F, (float)z);
  35.  
  36.         if ((float)entity.fuse - partialTicks + 1.0F < 10.0F)
  37.         {
  38.             float f = 1.0F - ((float)entity.fuse - partialTicks + 1.0F) / 10.0F;
  39.             f = MathHelper.clamp_float(f, 0.0F, 1.0F);
  40.             f = f * f;
  41.             f = f * f;
  42.             float f1 = 1.0F + f * 0.3F;
  43.             GlStateManager.scale(f1, f1, f1);
  44.         }
  45.  
  46.         float f2 = (1.0F - ((float)entity.fuse - partialTicks + 1.0F) / 100.0F) * 0.8F;
  47.         this.bindEntityTexture(entity);
  48.         GlStateManager.translate(-0.5F, -0.5F, 0.5F);
  49.         blockrendererdispatcher.renderBlockBrightness(VillagerBlocks.nuke.getDefaultState(), entity.getBrightness(partialTicks));
  50.         GlStateManager.translate(0.0F, 0.0F, 1.0F);
  51.  
  52.         if (entity.fuse / 5 % 2 == 0)
  53.         {
  54.             GlStateManager.disableTexture2D();
  55.             GlStateManager.disableLighting();
  56.             GlStateManager.enableBlend();
  57.             GlStateManager.blendFunc(770, 772);
  58.             GlStateManager.color(1.0F, 1.0F, 1.0F, f2);
  59.             GlStateManager.doPolygonOffset(-3.0F, -3.0F);
  60.             GlStateManager.enablePolygonOffset();
  61.             blockrendererdispatcher.renderBlockBrightness(VillagerBlocks.nuke.getDefaultState(), 1.0F);
  62.             GlStateManager.doPolygonOffset(0.0F, 0.0F);
  63.             GlStateManager.disablePolygonOffset();
  64.             GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
  65.             GlStateManager.disableBlend();
  66.             GlStateManager.enableLighting();
  67.             GlStateManager.enableTexture2D();
  68.         }
  69.  
  70.         GlStateManager.popMatrix();
  71.         super.doRender(entity, x, y, z, entityYaw, partialTicks);
  72.     }
  73.  
  74.     public static class Factory implements IRenderFactory<EntityNuke>{
  75.  
  76.         @Override
  77.         public Render<? super EntityNuke> createRenderFor(RenderManager manager) {
  78.             return new RenderNuke(manager);
  79.         }
  80.        
  81.     }
  82.    
  83.     /**
  84.      * Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture.
  85.      */
  86.     protected ResourceLocation getEntityTexture(EntityTNTPrimed entity)
  87.     {
  88.         return TextureMap.locationBlocksTexture;
  89.     }
  90.  
  91.     @Override
  92.     protected ResourceLocation getEntityTexture(EntityNuke entity) {
  93.         // TODO Auto-generated method stub
  94.         return null;
  95.     }
  96.  
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement