Advertisement
Guest User

Untitled

a guest
Mar 9th, 2016
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.37 KB | None | 0 0
  1. package io.github.hsyyid.starwarsbattlecraft.util;
  2.  
  3. import net.minecraft.client.Minecraft;
  4. import net.minecraft.client.renderer.Tessellator;
  5. import net.minecraft.client.renderer.WorldRenderer;
  6. import net.minecraft.client.renderer.block.model.BakedQuad;
  7. import net.minecraft.client.renderer.texture.TextureMap;
  8. import net.minecraft.client.renderer.vertex.VertexFormat;
  9. import net.minecraft.crash.CrashReport;
  10. import net.minecraft.util.ReportedException;
  11. import net.minecraft.util.ResourceLocation;
  12. import net.minecraftforge.client.model.Attributes;
  13. import net.minecraftforge.client.model.IFlexibleBakedModel;
  14. import net.minecraftforge.client.model.IModel;
  15. import net.minecraftforge.client.model.ModelLoaderRegistry;
  16. import net.minecraftforge.client.model.pipeline.LightUtil;
  17. import org.lwjgl.opengl.GL11;
  18.  
  19. import java.io.IOException;
  20. import java.util.HashMap;
  21. import java.util.List;
  22. import java.util.Map;
  23.  
  24. public class RenderingUtil
  25. {
  26.     public static Map<String, IFlexibleBakedModel> loadedModels = new HashMap<>();
  27.  
  28.     public static void renderModel(IFlexibleBakedModel model, int color)
  29.     {
  30.         Tessellator tessellator = Tessellator.getInstance();
  31.         WorldRenderer worldrenderer = tessellator.getWorldRenderer();
  32.         worldrenderer.begin(GL11.GL_QUADS, model.getFormat());
  33.         RenderingUtil.renderQuads(worldrenderer, model.getGeneralQuads(), color);
  34.         tessellator.draw();
  35.     }
  36.  
  37.     public static void renderQuads(WorldRenderer renderer, List<BakedQuad> quads, int color)
  38.     {
  39.         for (BakedQuad bakedquad : quads)
  40.             LightUtil.renderQuadColor(renderer, bakedquad, color);
  41.     }
  42.  
  43.     public static IFlexibleBakedModel loadModel(String resourceName)
  44.     {
  45.         return loadModel(resourceName, Attributes.DEFAULT_BAKED_FORMAT);
  46.     }
  47.  
  48.     public static IFlexibleBakedModel loadModel(String resourceName, VertexFormat fmt)
  49.     {
  50.         IFlexibleBakedModel model = loadedModels.get(resourceName);
  51.         if (model != null)
  52.             return model;
  53.  
  54.         try
  55.         {
  56.             TextureMap textures = Minecraft.getMinecraft().getTextureMapBlocks();
  57.             IModel mod = ModelLoaderRegistry.getModel(new ResourceLocation(resourceName));
  58.             model = mod.bake(mod.getDefaultState(), fmt, (location) -> textures.getAtlasSprite(location.toString()));
  59.             loadedModels.put(resourceName, model);
  60.             return model;
  61.         }
  62.         catch (IOException e)
  63.         {
  64.             throw new ReportedException(new CrashReport("Error loading custom model " + resourceName, e));
  65.         }
  66.     }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement