Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package eu.tetrabyte.contentmod.client.render;
- import java.util.Map;
- import org.lwjgl.opengl.GL11;
- import com.google.common.collect.Lists;
- import com.google.common.collect.Maps;
- import eu.tetrabyte.contentmod.Ref;
- import eu.tetrabyte.contentmod.entity.EntityBus;
- import eu.tetrabyte.contentmod.util.shadesobjloader.OBJCustomData;
- import eu.tetrabyte.contentmod.util.shadesobjloader.OBJModel;
- import net.minecraft.client.Minecraft;
- import net.minecraft.client.renderer.GlStateManager;
- 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.entity.Render;
- import net.minecraft.client.renderer.entity.RenderManager;
- import net.minecraft.client.renderer.texture.TextureMap;
- import net.minecraft.client.resources.IReloadableResourceManager;
- import net.minecraft.client.resources.IResourceManager;
- import net.minecraft.client.resources.IResourceManagerReloadListener;
- import net.minecraft.client.resources.model.IBakedModel;
- import net.minecraft.util.ResourceLocation;
- import net.minecraftforge.client.model.Attributes;
- import net.minecraftforge.client.model.IModel;
- import net.minecraftforge.client.model.ModelLoader;
- import net.minecraftforge.client.model.ModelLoaderRegistry;
- import net.minecraftforge.client.model.pipeline.LightUtil;
- import net.minecraftforge.fml.common.FMLLog;
- public class RenderOlympian extends Render<EntityBus> {
- public RenderOlympian(RenderManager renderManager) {
- super(renderManager);
- }
- private static Map<String, IBakedModel> loadedModels = Maps.newHashMap();
- private static final ResourceLocation MRL = new ResourceLocation(Ref.MOD_ID + ":item/olympian.obj");
- public static void init()
- {
- IResourceManager manager = Minecraft.getMinecraft().getResourceManager();
- if (manager instanceof IReloadableResourceManager)
- {
- ((IReloadableResourceManager) manager).registerReloadListener(new IResourceManagerReloadListener()
- {
- @Override
- public void onResourceManagerReload(IResourceManager ignored)
- {
- loadedModels.clear();
- }
- });
- }
- }
- @Override
- public void doRender(EntityBus entityBusIn, double x, double y, double z, float entityYaw, float partialTicks)
- {
- if (loadedModels.isEmpty())
- {
- FMLLog.info("loadedModels was empty, attempting to load model '%s'", MRL.toString());
- try
- {
- IModel model = ModelLoaderRegistry.getModel(MRL);
- if (model != null && model instanceof OBJModel)
- {
- FMLLog.info("Successfully obtained model '%s' from registry", MRL.toString());
- OBJModel objModel = new OBJModel(((OBJModel) model).getMatLib(), ((OBJModel) model).getModelLocation(), ((OBJModel) model).getCustomData());
- OBJCustomData.GroupConfigHandler configHandler = objModel.getCustomData().getConfigHandler();
- OBJCustomData.GroupConfigBuilder builder = configHandler.getConfigBuilder();
- OBJModel.OBJState state = new OBJModel.OBJState().setShowAllConfigs();
- loadedModels.put("" + 0, objModel.bake(state, Attributes.DEFAULT_BAKED_FORMAT, ModelLoader.defaultTextureGetter()));
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- IBakedModel olympian = null;
- olympian = loadedModels.get(MRL);
- bindTexture(TextureMap.locationBlocksTexture);
- Tessellator tessellator = Tessellator.getInstance();
- WorldRenderer buffer = tessellator.getWorldRenderer();
- GlStateManager.disableLighting();
- GlStateManager.disableAlpha();
- GlStateManager.disableRescaleNormal();
- GlStateManager.enableDepth();
- GlStateManager.depthMask(true);
- GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
- GlStateManager.pushMatrix();
- GlStateManager.translate(x, y, z);
- GlStateManager.pushMatrix();
- GlStateManager.translate(0.5f, 0.5f, 0.5f);
- //Rotate here
- GlStateManager.translate(-0.5f, -0.5f, -0.5f);
- if (olympian != null)
- {
- buffer.begin(GL11.GL_QUADS, Attributes.DEFAULT_BAKED_FORMAT);
- for (BakedQuad quad : olympian.getGeneralQuads())
- {
- LightUtil.renderQuadColor(buffer, quad, 0xFFFFFFFF); //last argument is abgr!
- }
- tessellator.draw();
- }
- GlStateManager.popMatrix();
- GlStateManager.popMatrix();
- }
- @Override
- protected ResourceLocation getEntityTexture(EntityBus entity) {
- // TODO Auto-generated method stub
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment