/* * 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.common.gui.widgets; import mods.railcraft.client.gui.GuiContainerRailcraft; import mods.railcraft.client.render.FluidRenderer; import mods.railcraft.common.gui.tooltips.ToolTip; import mods.railcraft.common.fluids.tanks.StandardTank; import net.minecraft.util.IIcon; import net.minecraftforge.fluids.FluidStack; import org.lwjgl.opengl.GL11; /** * * @author CovertJaguar <http://www.railcraft.info> */ public class FluidGaugeWidget extends Widget { public final StandardTank tank; public FluidGaugeWidget(StandardTank tank, int x, int y, int u, int v, int w, int h) { super(x, y, u, v, w, h); this.tank = tank; } @Override public ToolTip getToolTip() { return tank.getToolTip(); } @Override public void draw(GuiContainerRailcraft gui, int guiX, int guiY, int mouseX, int mouseY) { if (tank == null) return; if (tank.renderData.fluid == null || tank.renderData.amount <= 0) return; IIcon fluidIcon = FluidRenderer.getFluidTexture(tank.renderData.fluid, false); if (fluidIcon == null) return; float scale = Math.min(tank.renderData.amount, tank.getCapacity()) / (float) tank.getCapacity(); gui.bindTexture(FluidRenderer.getFluidSheet(tank.renderData.fluid)); FluidRenderer.setColorForTank(tank); for (int col = 0; col < w / 16; col++) { for (int row = 0; row <= h / 16; row++) { gui.drawTexturedModelRectFromIcon(guiX + x + col * 16, guiY + y + row * 16 - 1, fluidIcon, 16, 16); } } GL11.glColor4f(1, 1, 1, 1); gui.bindTexture(gui.texture); gui.drawTexturedModalRect(guiX + x, guiY + y - 1, x, y - 1, w, h - (int) Math.floor(h * scale) + 1); gui.drawTexturedModalRect(guiX + x, guiY + y, u, v, w, h); } }