package com.rwtema.funkylocomotion.rendering;
import com.rwtema.funkylocomotion.blocks.TileMovingClient;
import com.rwtema.funkylocomotion.fakes.FakeWorldClient;
import net.minecraft.client.renderer.VertexBuffer;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
import net.minecraftforge.client.model.animation.FastTESR;
public class TileEntityRenderMoving extends FastTESR<TileMovingClient> {
private World world;
private FakeWorldClient fakeWorldClient;
// @Override
public void r(TileMovingClient tile, double x, double y, double z, float partialTicks, int destroyStage) {
if (!tile.init)
return;
if (tile.maxTime == 0 || tile.block == Blocks.AIR)
return;
double h = tile.offset(true);
int dir = tile.dir;
if (dir == -1) {
return;
}
//
this.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
boolean flag = false;
//
// Tessellator tessellator = Tessellator.instance;
//
// int pass = MinecraftForgeClient.getRenderPass();
// if (tile.render && tile.block.canRenderInPass(pass) && tile.block.getRenderType() >= 0) {
// GL11.glPushMatrix();
//
// setupTranslations(x, y, z, tile, h, dir);
//
// flag = renderStatic(tile, pass);
//
// GL11.glPopMatrix();
// GL11.glEnable(GL11.GL_CULL_FACE);
// }
//
// flag = flag | renderDynamic(x, y, z, f, tile, h, dir, pass);
//
// if (pass == 0) {
// tile.failedToRenderInFirstPass = !flag;
// } else if (!flag && tile.failedToRenderInFirstPass) {
// GL11.glPushMatrix();
//
// setupTranslations(x, y, z, tile, h, dir);
//
// RenderHelper.disableStandardItemLighting();
// GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
// GL11.glEnable(GL11.GL_BLEND);
//
// if (Minecraft.isAmbientOcclusionEnabled()) {
// GL11.glShadeModel(GL11.GL_SMOOTH);
// } else {
// GL11.glShadeModel(GL11.GL_FLAT);
// }
//
// tessellator.setColorOpaque_F(1.0F, 1.0F, 1.0F);
// tessellator.startDrawingQuads();
// renderBlocks.setOverrideBlockTexture(tile.error ? BlockMoving.crate_error : BlockMoving.crate);
// renderBlocks.renderBlockByRenderType(Blocks.stone, tile.xCoord, tile.yCoord, tile.zCoord);
// renderBlocks.clearOverrideBlockTexture();
//
// tile.cachedState[0] = leadVertexState();
// tile.skipPass[0] = false;
// tile.cachedState[1] = null;
// tile.skipPass[1] = true;
//
// tessellator.draw();
// GL11.glPopMatrix();
//
// RenderHelper.enableStandardItemLighting();
// }
}
@Override
public void renderTileEntityFast(TileMovingClient te, double x, double y, double z, float partialTicks, int destroyStage, VertexBuffer VertexBuffer) {
}
//
// private void setupTranslations(double x, double y, double z, TileMovingClient mover, double h, int dir) {
// if(dir < 6) {
// GL11.glTranslated(x, y, z);
// GL11.glTranslated(-mover.xCoord, -mover.yCoord, -mover.zCoord);
// GL11.glTranslated(Facing.offsetsXForSide[dir] * h, Facing.offsetsYForSide[dir] * h, Facing.offsetsZForSide[dir] * h);
// }else{
// GL11.glTranslated(x, y, z);
// GL11.glTranslated(0.5, 0.5, 0.5);
// double dh = dir == 6 ? h + 1 : -h;
// GL11.glScaled(dh, dh, dh);
// GL11.glTranslated(-0.5, -0.5, -0.5);
// GL11.glTranslated(-mover.xCoord, -mover.yCoord, -mover.zCoord);
// }
// }
//
// protected boolean renderDynamic(double x, double y, double z, float f, TileMovingClient mover, double h, int dir, int pass) {
// if (mover.tile == null || !mover.tile.shouldRenderInPass(pass))
// return false;
//
// if (fakeWorldClient == null && !createCache())
// return false;
//
// TileEntitySpecialRenderer specialRenderer = TileEntityRendererDispatcher.instance.getSpecialRenderer(mover.tile);
// if (specialRenderer == null)
// return false;
//
// GL11.glPushMatrix();
// setupTranslations(x, y, z, mover, h, dir);
// try {
// specialRenderer.func_147496_a(fakeWorldClient);
// WorldClient prevWorld1 = Minecraft.getMinecraft().theWorld;
// World prevWorld2 = Minecraft.getMinecraft().thePlayer.worldObj;
//
// try {
// Minecraft.getMinecraft().theWorld = fakeWorldClient;
// Minecraft.getMinecraft().thePlayer.worldObj = fakeWorldClient;
// specialRenderer.renderTileEntityAt(mover.tile, mover.xCoord, mover.yCoord, mover.zCoord, f);
// } finally {
// Minecraft.getMinecraft().theWorld = prevWorld1;
// Minecraft.getMinecraft().thePlayer.worldObj = prevWorld2;
// }
// specialRenderer.func_147496_a(world);
// } catch (Exception e) {
// FLRenderHelper.clearTessellator();
//
// (new RuntimeException(
// "Unable to render TSER " + mover.tile.getClass().getName() + " for "
// + Block.blockRegistry.getNameForObject(mover.block)
// + " with meta " + mover.meta + " at ("
// + mover.xCoord + "," + mover.yCoord + mover.zCoord + "). Disabling Rendering."
// , e
// )).printStackTrace();
//
// TileMovingClient.renderErrorList.add(mover.tile.getClass());
// mover.error = true;
// mover.tile = null;
// mover.render = false;
// }
//
// GL11.glPopMatrix();
// return true;
// }
//
// protected boolean renderStatic(TileMovingClient mover, int pass) {
// if (mover.skipPass[pass])
// return true;
//
//
// RenderHelper.disableStandardItemLighting();
//
// if (pass != 0) {
// GL11.glEnable(GL11.GL_BLEND);
// GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
// }
//
// GL11.glEnable(GL11.GL_CULL_FACE);
//
// if (Minecraft.isAmbientOcclusionEnabled()) {
// GL11.glShadeModel(GL11.GL_SMOOTH);
// } else {
// GL11.glShadeModel(GL11.GL_FLAT);
// }
//
// Tessellator tessellator = Tessellator.instance;
//
// if (mover.cachedState[pass] != null) {
// tessellator.startDrawingQuads();
// tessellator.setVertexState(mover.cachedState[pass]);
// tessellator.draw();
// } else {
//
// tessellator.startDrawingQuads();
// tessellator.setColorOpaque_F(1.0F, 1.0F, 1.0F);
//
// mover.cachedState[pass] = null;
// mover.skipPass[pass] = true;
//
// try {
// if (renderBlocks.renderBlockByRenderType(mover.block, mover.xCoord, mover.yCoord, mover.zCoord)) {
// if (tessellator.rawBufferIndex > 0) {
// mover.cachedState[pass] = leadVertexState();
// mover.skipPass[pass] = false;
// }
// }
//
// } catch (Exception e) {
// (new RuntimeException(
// "Unable to render block " + Block.blockRegistry.getNameForObject(mover.block)
// + " with meta " + mover.meta + " at ("
// + mover.xCoord + "," + mover.yCoord + mover.zCoord + "). Disabling Rendering."
// , e
// )).printStackTrace();
//
// TileMovingClient.renderErrorList.add(mover.block.getClass());
// mover.tile = null;
// mover.render = false;
// mover.error = true;
//
// mover.cachedState[pass] = null;
// mover.skipPass[pass] = true;
// }
//
//
// tessellator.draw();
// }
// RenderHelper.enableStandardItemLighting();
// return true;
// }
//
// private static TesselatorVertexState leadVertexState() {
//
// return Tessellator.instance.getVertexState(
// (float) Minecraft.getMinecraft().thePlayer.posX,
// (float) Minecraft.getMinecraft().thePlayer.posY,
// (float) Minecraft.getMinecraft().thePlayer.posZ);
//
// }
//
// public void func_147496_a(World world) {
// this.world = world;
// createCache();
// }
//
// private boolean createCache() {
// if (!FakeWorldClient.isValid(world)) {
// fakeWorldClient = null;
// renderBlocks = null;
// return false;
// } else {
// this.fakeWorldClient = FakeWorldClient.getFakeWorldWrapper(this.world);
// this.renderBlocks = new RenderBlocks(fakeWorldClient);
// return true;
// }
// }
}