Advertisement
Naitenne

UtilModels

Mar 23rd, 2017
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.79 KB | None | 0 0
  1. package net.railsofwar.row.common.client.util;
  2.  
  3. import com.google.common.collect.ImmutableMap;
  4. import net.minecraft.client.renderer.Tessellator;
  5. import net.minecraft.client.renderer.VertexBuffer;
  6. import net.minecraft.client.renderer.block.model.BakedQuad;
  7. import net.minecraft.client.renderer.block.model.IBakedModel;
  8. import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
  9. import net.minecraft.util.ResourceLocation;
  10. import net.minecraftforge.client.model.*;
  11. import net.minecraftforge.client.model.pipeline.LightUtil;
  12. import net.minecraftforge.common.model.IModelState;
  13. import org.lwjgl.opengl.GL11;
  14.  
  15. import javax.annotation.Nullable;
  16.  
  17. public class UtilModels{
  18.  
  19.     @Nullable
  20.     public static IModel loadModel(ResourceLocation modelLocation, String textureLocation){
  21.         try{
  22.             return ((IRetexturableModel) ((IModelCustomData) ModelLoaderRegistry.getModel(modelLocation))
  23.                     .process(ImmutableMap.of("flip-v", "true")))
  24.                     .retexture(ImmutableMap.of("#None", textureLocation));
  25.         }catch(Exception e){
  26.             e.printStackTrace();
  27.         }
  28.         return null;
  29.     }
  30.  
  31.     public static IModel textureModel(IModel model, String material, String textureLocation){
  32.         return ((IRetexturableModel) model).retexture(ImmutableMap.of(material, textureLocation));
  33.     }
  34.  
  35.     public static IBakedModel bakeModel(IModel model, IModelState state){
  36.         return model.bake(state, DefaultVertexFormats.ITEM, ModelLoader.defaultTextureGetter());
  37.     }
  38.  
  39.     public static void renderBakedModel(IBakedModel model){
  40.         Tessellator tessellator = Tessellator.getInstance();
  41.         VertexBuffer renderer = tessellator.getBuffer();
  42.         renderer.begin(GL11.GL_QUADS, DefaultVertexFormats.ITEM);
  43.         for(BakedQuad bakedquad : model.getQuads(null, null, 0))
  44.             LightUtil.renderQuadColor(renderer, bakedquad, 0xFFFFFFFF);
  45.         tessellator.draw();
  46.     }
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement