Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package io.github.hsyyid.starwarsbattlecraft.util;
- import net.minecraft.client.Minecraft;
- import net.minecraft.client.renderer.Tessellator;
- import net.minecraft.client.renderer.WorldRenderer;
- import net.minecraft.client.renderer.block.model.BakedQuad;
- import net.minecraft.client.renderer.texture.TextureMap;
- import net.minecraft.client.renderer.vertex.VertexFormat;
- import net.minecraft.crash.CrashReport;
- import net.minecraft.util.ReportedException;
- import net.minecraft.util.ResourceLocation;
- import net.minecraftforge.client.model.Attributes;
- import net.minecraftforge.client.model.IFlexibleBakedModel;
- import net.minecraftforge.client.model.IModel;
- import net.minecraftforge.client.model.ModelLoaderRegistry;
- import net.minecraftforge.client.model.pipeline.LightUtil;
- import org.lwjgl.opengl.GL11;
- import java.io.IOException;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- public class RenderingUtil
- {
- public static Map<String, IFlexibleBakedModel> loadedModels = new HashMap<>();
- public static void renderModel(IFlexibleBakedModel model, int color)
- {
- Tessellator tessellator = Tessellator.getInstance();
- WorldRenderer worldrenderer = tessellator.getWorldRenderer();
- worldrenderer.begin(GL11.GL_QUADS, model.getFormat());
- RenderingUtil.renderQuads(worldrenderer, model.getGeneralQuads(), color);
- tessellator.draw();
- }
- public static void renderQuads(WorldRenderer renderer, List<BakedQuad> quads, int color)
- {
- for (BakedQuad bakedquad : quads)
- LightUtil.renderQuadColor(renderer, bakedquad, color);
- }
- public static IFlexibleBakedModel loadModel(String resourceName)
- {
- return loadModel(resourceName, Attributes.DEFAULT_BAKED_FORMAT);
- }
- public static IFlexibleBakedModel loadModel(String resourceName, VertexFormat fmt)
- {
- IFlexibleBakedModel model = loadedModels.get(resourceName);
- if (model != null)
- return model;
- try
- {
- TextureMap textures = Minecraft.getMinecraft().getTextureMapBlocks();
- IModel mod = ModelLoaderRegistry.getModel(new ResourceLocation(resourceName));
- model = mod.bake(mod.getDefaultState(), fmt, (location) -> textures.getAtlasSprite(location.toString()));
- loadedModels.put(resourceName, model);
- return model;
- }
- catch (IOException e)
- {
- throw new ReportedException(new CrashReport("Error loading custom model " + resourceName, e));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement