cn.academy.core.client.component.Glow.java Source code

Java tutorial

Introduction

Here is the source code for cn.academy.core.client.component.Glow.java

Source

/**
* Copyright (c) Lambda Innovation, 2013-2016
* This file is part of the AcademyCraft mod.
* https://github.com/LambdaInnovation/AcademyCraft
* Licensed under GPLv3, see project root for more information.
*/
package cn.academy.core.client.component;

import cn.academy.core.client.ACRenderingHelper;
import cn.lambdalib.annoreg.core.Registrant;
import cn.lambdalib.cgui.gui.Widget;
import cn.lambdalib.cgui.gui.component.Component;
import cn.lambdalib.cgui.gui.event.FrameEvent;
import cn.lambdalib.util.helper.Color;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import org.lwjgl.opengl.GL11;

/**
 * @author WeAthFolD
 */
@SideOnly(Side.CLIENT)
@Registrant
public class Glow extends Component {

    public Color color = new Color();
    public double glowSize = 10.0;
    public double zLevel = 0.0;
    public boolean writeDepth = true;

    public static Glow get(Widget w) {
        return w.getComponent("Glow");
    }

    public Glow() {
        super("Glow");

        listen(FrameEvent.class, (w, event) -> {
            if (!writeDepth)
                GL11.glDepthMask(false);
            GL11.glPushMatrix();
            GL11.glTranslated(0, 0, zLevel);
            ACRenderingHelper.drawGlow(0, 0, w.transform.width, w.transform.height, glowSize, color);
            GL11.glPopMatrix();
            GL11.glDepthMask(true);
        });
    }

}