Java tutorial
/** * 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.energy.client.gui; import cn.academy.core.client.ACRenderingHelper; import cn.academy.core.Resources; import cn.lambdalib.util.client.HudUtils; import cn.lambdalib.util.client.font.IFont; import cn.lambdalib.util.client.font.IFont.Extent; import cn.lambdalib.util.client.font.IFont.FontOption; import cn.lambdalib.util.helper.Color; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; public class EnergyUIHelper { public static final Color CRL_GLOW = new Color().setColor4i(0, 214, 232, 180), CRL_BACK = new Color().setColor4i(0, 128, 165, 90), CRL_GLOW_MONO = CRL_GLOW.monoize(), CRL_BACK_MONO = CRL_BACK.monoize(); public static final ResourceLocation BTN_WIFI = Resources.getTexture("guis/button/button_wifi"), BTN_WIFI_N = Resources.getTexture("guis/button/button_wifi2"); public static void drawBox(double x, double y, double width, double height) { drawBox(x, y, width, height, false); } public static void drawBox(double x, double y, double width, double height, boolean mono) { Color back, glow; if (mono) { back = CRL_BACK_MONO; glow = CRL_GLOW_MONO; } else { back = CRL_BACK; glow = CRL_GLOW; } back.bind(); HudUtils.colorRect(x, y, width, height); ACRenderingHelper.drawGlow(x, y, width, height, 3, glow); } public static void drawTextBox(String str, double x, double y, FontOption option) { drawTextBox(str, x, y, 233333, option); } public static void drawTextBox(String str, double x, double y, double limit, FontOption option) { drawTextBox(str, x, y, limit, option, false); } public static void drawTextBox(String str, double x, double y, double limit, FontOption option, boolean mono) { GL11.glEnable(GL11.GL_BLEND); final IFont font = Resources.font(); Extent extent = font.drawSeperated_Sim(str, limit, option); if (extent.linesDrawn == 0) { extent.height = option.fontSize; } double X0 = x, Y0 = y, MARGIN = Math.min(5, option.fontSize * 0.3); X0 -= extent.width * option.align.lenOffset; drawBox(X0, Y0, MARGIN * 2 + extent.width, MARGIN * 2 + extent.height, mono); GL11.glPushMatrix(); GL11.glTranslated(0, 0, 1); font.drawSeperated(str, x + MARGIN, Y0 + MARGIN, limit, option); GL11.glPopMatrix(); } }