buildcraft.energy.GuiCombustionEngine.java Source code

Java tutorial

Introduction

Here is the source code for buildcraft.energy.GuiCombustionEngine.java

Source

/**
 * Copyright (c) SpaceToad, 2011
 * http://www.mod-buildcraft.com
 *
 * BuildCraft is distributed under the terms of the Minecraft Mod Public
 * License 1.0, or MMPL. Please check the contents of the license located in
 * http://www.mod-buildcraft.com/MMPL-1.0.txt
 */

package buildcraft.energy;

import net.minecraft.src.Block;
import net.minecraft.src.InventoryPlayer;
import net.minecraft.src.Item;
import net.minecraft.src.forge.ITextureProvider;
import net.minecraft.src.forge.MinecraftForgeClient;

import org.lwjgl.opengl.GL11;

import buildcraft.core.DefaultProps;
import buildcraft.core.utils.StringUtil;
import buildcraft.energy.EngineIron;
import buildcraft.energy.TileEngine;

public class GuiCombustionEngine extends GuiEngine {

    public GuiCombustionEngine(InventoryPlayer inventoryplayer, TileEngine tileEngine) {
        super(new ContainerEngine(inventoryplayer, tileEngine), tileEngine);
    }

    @Override
    protected void drawGuiContainerForegroundLayer() {
        super.drawGuiContainerForegroundLayer();
        String title = StringUtil.localize("tile.engineIron");
        fontRenderer.drawString(title, getCenteredOffset(title), 6, 0x404040);
        fontRenderer.drawString(StringUtil.localize("gui.inventory"), 8, (ySize - 96) + 2, 0x404040);
    }

    @Override
    protected void drawGuiContainerBackgroundLayer(float f, int x, int y) {
        int i = mc.renderEngine.getTexture(DefaultProps.TEXTURE_PATH_GUI + "/combustion_engine_gui.png");
        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        mc.renderEngine.bindTexture(i);
        int j = (width - xSize) / 2;
        int k = (height - ySize) / 2;
        drawTexturedModalRect(j, k, 0, 0, xSize, ySize);

        TileEngine engine = (TileEngine) tile;
        EngineIron engineIron = ((EngineIron) engine.engine);

        if (engine.getScaledBurnTime(58) > 0)
            displayGauge(j, k, 19, 104, engine.getScaledBurnTime(58), engineIron.liquidId);

        if (engineIron.getScaledCoolant(58) > 0)
            displayGauge(j, k, 19, 122, engineIron.getScaledCoolant(58), engineIron.coolantId);
    }

    private void displayGauge(int j, int k, int line, int col, int squaled, int liquidId) {
        Object o = null;
        int liquidImgIndex = 0;

        if (liquidId < Block.blocksList.length && Block.blocksList[liquidId] != null) {
            o = Block.blocksList[liquidId];
            liquidImgIndex = Block.blocksList[liquidId].blockIndexInTexture;
        } else if (Item.itemsList[liquidId] != null) {
            o = Item.itemsList[liquidId];
            liquidImgIndex = Item.itemsList[liquidId].getIconFromDamage(0);
        }

        if (o == null)
            return;

        if (o instanceof ITextureProvider)
            MinecraftForgeClient.bindTexture(((ITextureProvider) o).getTextureFile());
        else
            MinecraftForgeClient.bindTexture("/terrain.png");

        int imgLine = liquidImgIndex / 16;
        int imgColumn = liquidImgIndex - imgLine * 16;

        int start = 0;

        while (true) {
            int x = 0;

            if (squaled > 16) {
                x = 16;
                squaled -= 16;
            } else {
                x = squaled;
                squaled = 0;
            }

            drawTexturedModalRect(j + col, k + line + 58 - x - start, imgColumn * 16, imgLine * 16, 16,
                    16 - (16 - x));
            start = start + 16;

            if (x == 0 || squaled == 0)
                break;
        }

        int i = mc.renderEngine.getTexture(DefaultProps.TEXTURE_PATH_GUI + "/combustion_engine_gui.png");

        mc.renderEngine.bindTexture(i);
        drawTexturedModalRect(j + col, k + line, 176, 0, 16, 60);
    }
}