Advertisement
Guest User

Untitled

a guest
Sep 30th, 2016
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.97 KB | None | 0 0
  1. package me.ferdz.placeableitems.tileentity.renderer;
  2.  
  3. import org.lwjgl.opengl.GL11;
  4.  
  5. import me.ferdz.placeableitems.PlaceableItems;
  6. import me.ferdz.placeableitems.tileentity.TEFish;
  7. import net.minecraft.client.Minecraft;
  8. import net.minecraft.client.renderer.GlStateManager;
  9. import net.minecraft.client.renderer.Tessellator;
  10. import net.minecraft.client.renderer.block.model.IBakedModel;
  11. import net.minecraft.client.renderer.texture.TextureMap;
  12. import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
  13. import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
  14. import net.minecraft.util.ResourceLocation;
  15. import net.minecraft.world.World;
  16. import net.minecraftforge.client.model.IModel;
  17. import net.minecraftforge.client.model.ModelLoaderRegistry;
  18. import net.minecraftforge.common.model.TRSRTransformation;
  19.  
  20. public class TESRFish extends TileEntitySpecialRenderer<TEFish>{
  21.  
  22.     private static IBakedModel fish;
  23.     private static ResourceLocation fishL;
  24.    
  25.     public TESRFish() {
  26.         try {
  27.             if(fish == null) {
  28.                 IModel model = ModelLoaderRegistry.getModel(new ResourceLocation(PlaceableItems.MODID, "block/fish/fish"));
  29.                 fish = model.bake(TRSRTransformation.identity(),
  30.                                 DefaultVertexFormats.BLOCK,
  31.                                 location -> Minecraft.getMinecraft().getTextureMapBlocks().registerSprite(new ResourceLocation(location.toString())));
  32.                 fishL = new ResourceLocation(PlaceableItems.MODID, "textures/blocks/fish/fish.png");
  33.            
  34.             }
  35.         } catch (Exception e) {
  36.             e.printStackTrace();
  37.         }
  38.     }
  39.    
  40.     @Override
  41.     public void renderTileEntityAt(TEFish te, double x, double y, double z, float partialTicks, int destroyStage) {
  42.         GlStateManager.pushAttrib();
  43.         GlStateManager.pushMatrix();
  44.  
  45.         // Translate to the location of our tile entity
  46.         GlStateManager.translate(x, y, z);
  47.         GlStateManager.disableRescaleNormal();
  48.  
  49.         Minecraft.getMinecraft().renderEngine.bindTexture(fishL);
  50.         GlStateManager.pushMatrix();
  51.         if (Minecraft.isAmbientOcclusionEnabled()) {
  52.             GlStateManager.shadeModel(GL11.GL_SMOOTH);
  53.         } else {
  54.             GlStateManager.shadeModel(GL11.GL_FLAT);
  55.         }
  56.         World world = te.getWorld();
  57.         // Translate back to local view coordinates so that we can do the acual rendering here
  58.         GlStateManager.translate(-te.getPos().getX(), -te.getPos().getY(), -te.getPos().getZ());
  59.  
  60.         Tessellator tessellator = Tessellator.getInstance();
  61.         tessellator.getBuffer().begin(GL11.GL_QUADS, DefaultVertexFormats.BLOCK);
  62.         Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelRenderer().renderModel(
  63.                 world,
  64.                 fish,
  65.                 world.getBlockState(te.getPos()),
  66.                 te.getPos(),
  67.                 Tessellator.getInstance().getBuffer(),
  68.                 true);
  69.         tessellator.draw();
  70.  
  71.         GlStateManager.popMatrix();
  72.        
  73.         GlStateManager.popMatrix();
  74.         GlStateManager.popAttrib();
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement