mods.railcraft.client.render.carts.CartContentRendererTNT.java Source code

Java tutorial

Introduction

Here is the source code for mods.railcraft.client.render.carts.CartContentRendererTNT.java

Source

/* 
 * Copyright (c) CovertJaguar, 2014 http://railcraft.info
 * 
 * This code is the property of CovertJaguar
 * and may only be used with explicit written
 * permission unless otherwise specified on the
 * license page at http://railcraft.info/wiki/info:license.
 */
package mods.railcraft.client.render.carts;

import net.minecraft.entity.item.EntityMinecart;
import org.lwjgl.opengl.GL11;
import mods.railcraft.common.carts.CartExplosiveBase;

/**
 *
 * @author CovertJaguar <http://www.railcraft.info>
 */
public class CartContentRendererTNT extends CartContentRenderer {

    @Override
    public void render(RenderCart renderer, EntityMinecart cart, float light, float time) {
        GL11.glPushMatrix();
        //        GL11.glTranslatef(0.0F, 0.3125F, 0.0F);
        //        GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
        CartExplosiveBase tnt = (CartExplosiveBase) cart;
        if (tnt.isPrimed() && ((float) tnt.getFuse() - time) + 1.0F < 10F) {
            float scale = 1.0F - (((float) tnt.getFuse() - time) + 1.0F) / 10F;
            if (scale < 0.0F) {
                scale = 0.0F;
            }
            if (scale > 1.0F) {
                scale = 1.0F;
            }
            scale *= scale;
            scale *= scale;
            scale = 1.0F + scale * 0.3F;
            GL11.glScalef(scale, scale, scale);
        }
        super.render(renderer, cart, light, time);
        if (tnt.isPrimed() && (tnt.getFuse() / 5) % 2 == 0) {
            GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
            GL11.glDisable(GL11.GL_TEXTURE_2D);
            GL11.glDisable(GL11.GL_LIGHTING);
            GL11.glEnable(GL11.GL_BLEND);
            GL11.glBlendFunc(770, 772);
            float alpha = (1.0F - (((float) tnt.getFuse() - time) + 1.0F) / 100F) * 0.8F;
            GL11.glColor4f(1.0F, 1.0F, 1.0F, alpha);
            GL11.glScalef(1.01f, 1.01f, 1.01f);
            super.render(renderer, cart, 1, time);
            GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
            GL11.glPopAttrib();
        }
        GL11.glPopMatrix();
    }
}