Search in sources :

Example 11 with TextTexture

use of gregtech.api.gui.resources.TextTexture in project GregTech by GregTechCEu.

the class AppStoreApp method initApp.

@Override
public AbstractApplication initApp() {
    DraggableScrollableWidgetGroup group = new DraggableScrollableWidgetGroup(0, 0, 333, 232);
    this.addWidget(group);
    int index = 0;
    int yOffset = 50;
    group.addWidget(new ImageWidget(0, 0, 333, 30, GuiTextures.UI_FRAME_SIDE_UP));
    group.addWidget(new LabelWidget(333 / 2, 10, getUnlocalizedName(), -1).setShadow(true).setYCentered(true).setXCentered(true));
    for (AbstractApplication app : TerminalRegistry.getAllApps()) {
        group.addWidget(new AppCardWidget(5 + 110 * (index % 3), yOffset + 110 * (index / 3), app, this));
        index++;
    }
    int y = yOffset + 110 * ((index + 2) / 3);
    group.addWidget(new ImageWidget(0, y, 333, 30, new ColorRectTexture(TerminalTheme.COLOR_B_2.getColor())));
    group.addWidget(new ImageWidget(0, y, 333, 30, new TextTexture("Copyright @2021-xxxx Gregicality Team XD", -1)));
    loadLocalConfig(nbt -> this.darkMode = nbt.getBoolean("dark"));
    return this;
}
Also used : DraggableScrollableWidgetGroup(gregtech.api.terminal.gui.widgets.DraggableScrollableWidgetGroup) LabelWidget(gregtech.api.gui.widgets.LabelWidget) AbstractApplication(gregtech.api.terminal.app.AbstractApplication) ColorRectTexture(gregtech.api.gui.resources.ColorRectTexture) TextTexture(gregtech.api.gui.resources.TextTexture) ImageWidget(gregtech.api.gui.widgets.ImageWidget)

Example 12 with TextTexture

use of gregtech.api.gui.resources.TextTexture in project GregTech by GregTechCEu.

the class MachineConsoleWidget method initWidgets.

private void initWidgets() {
    if (mte != null) {
        uiWidgetGroup = new UIWidgetGroup();
        uiWidgetGroup.setActive(false);
        uiWidgetGroup.setVisible(false);
        Size size = getSize();
        addWidget(new ImageWidget(0, 0, size.width, size.height, GuiTextures.BACKGROUND));
        addWidget(new SimpleTextWidget(size.width / 2, 12, "", -1, () -> facing.toString().toUpperCase()).setShadow(true));
        int y = 20;
        if (mte.hasFrontFacing()) {
            addWidget(new RectButtonWidget(10, y, size.width - 20, 20, 1).setClickListener(clickData -> {
                if (!isRemote() && mte.isValidFrontFacing(facing)) {
                    mte.setFrontFacing(facing);
                }
            }).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_7.getColor(), TerminalTheme.COLOR_B_2.getColor()).setIcon(new TextTexture("terminal.console.front", -1)));
            y += 25;
        }
        // IControllable
        IControllable controllable = mte.getCapability(GregtechTileCapabilities.CAPABILITY_CONTROLLABLE, facing);
        if (controllable != null) {
            addWidget(new RectButtonWidget(10, y, 20, 20, 1).setToggleButton(GuiTextures.BUTTON_WORKING_ENABLE.getSubArea(0, 0, 1, 0.5), (c, p) -> {
                if (!isRemote()) {
                    controllable.setWorkingEnabled(p);
                }
            }).setValueSupplier(false, controllable::isWorkingEnabled).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_7.getColor(), 0).setHoverText("terminal.console.controllable").setIcon(GuiTextures.BUTTON_WORKING_ENABLE.getSubArea(0, 0.5, 1, 0.5)));
            // AbstractRecipeLogic
            AbstractRecipeLogic recipeLogic = mte.getCapability(GregtechTileCapabilities.CAPABILITY_RECIPE_LOGIC, facing);
            if (recipeLogic != null) {
                addWidget(new CycleButtonWidget(35, y, 20, 20, recipeLogic.getAvailableOverclockingTiers(), recipeLogic::getOverclockTier, recipeLogic::setOverclockTier).setTooltipHoverString("gregtech.gui.overclock.description").setButtonTexture(GuiTextures.BUTTON_OVERCLOCK));
                addWidget(new ProgressWidget(recipeLogic::getProgressPercent, 60, y, 63, 20, GuiTextures.PROGRESS_BAR_ARC_FURNACE, ProgressWidget.MoveType.HORIZONTAL));
                if (recipeLogic instanceof RecipeLogicSteam) {
                    y += 25;
                    addWidget(new RectButtonWidget(10, y, size.width - 20, 20, 1).setClickListener(clickData -> {
                        EnumFacing currentVentingSide = ((RecipeLogicSteam) recipeLogic).getVentingSide();
                        if (currentVentingSide == facing || mte.getFrontFacing() == facing)
                            return;
                        ((RecipeLogicSteam) recipeLogic).setVentingSide(facing);
                    }).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_7.getColor(), TerminalTheme.COLOR_B_2.getColor()).setIcon(new TextTexture("terminal.console.venting", -1)));
                }
            }
            y += 25;
        }
        // SimpleMachineMetaTileEntity
        if (mte instanceof SimpleMachineMetaTileEntity) {
            SimpleMachineMetaTileEntity simpleMTE = (SimpleMachineMetaTileEntity) mte;
            // items output
            if (simpleMTE.getExportItems().getSlots() > 0) {
                addWidget(new ImageWidget(10, y, 20, 20, new ItemStackTexture(Items.GLOWSTONE_DUST)));
                addWidget(new RectButtonWidget(33, y, 50, 20, 1).setClickListener(clickData -> {
                    if (!isRemote() && mte.getFrontFacing() != facing) {
                        simpleMTE.setOutputFacingItems(facing);
                    }
                }).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_7.getColor(), TerminalTheme.COLOR_B_2.getColor()).setHoverText("terminal.console.items"));
                addWidget(new SimpleTextWidget(58, y + 10, "", -1, () -> simpleMTE.getOutputFacingItems().toString()));
                addWidget(new RectButtonWidget(83, y, 20, 20, 1).setToggleButton(GuiTextures.BUTTON_ITEM_OUTPUT.getSubArea(0, 0.5, 1, 0.5), (c, p) -> {
                    if (!isRemote()) {
                        simpleMTE.setAutoOutputItems(p);
                    }
                }).setInitValue(simpleMTE.isAutoOutputItems()).setValueSupplier(false, simpleMTE::isAutoOutputItems).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_7.getColor(), 0).setHoverText("terminal.console.auto_output").setIcon(GuiTextures.BUTTON_ITEM_OUTPUT.getSubArea(0, 0, 1, 0.5)));
                addWidget(new RectButtonWidget(103, y, 20, 20, 1).setToggleButton(GuiTextures.BUTTON_ALLOW_IMPORT_EXPORT.getSubArea(0, 0.5, 1, 0.5), (c, p) -> {
                    if (!isRemote()) {
                        simpleMTE.setAllowInputFromOutputSideItems(p);
                    }
                }).setInitValue(simpleMTE.isAllowInputFromOutputSideItems()).setValueSupplier(false, simpleMTE::isAllowInputFromOutputSideItems).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_7.getColor(), 0).setHoverText("terminal.console.input").setIcon(GuiTextures.BUTTON_ALLOW_IMPORT_EXPORT.getSubArea(0, 0, 1, 0.5)));
                y += 20;
            }
            // fluids output
            if (simpleMTE.getExportFluids().getTanks() > 0) {
                addWidget(new ImageWidget(10, y, 20, 20, new ItemStackTexture(Items.WATER_BUCKET)));
                addWidget(new RectButtonWidget(33, y, 50, 20, 1).setClickListener(clickData -> {
                    if (!isRemote() && simpleMTE.getFrontFacing() != facing) {
                        simpleMTE.setOutputFacingFluids(facing);
                    }
                }).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_7.getColor(), TerminalTheme.COLOR_B_2.getColor()).setHoverText("terminal.console.fluids"));
                addWidget(new SimpleTextWidget(58, y + 10, "", -1, () -> simpleMTE.getOutputFacingFluids().toString()));
                addWidget(new RectButtonWidget(83, y, 20, 20, 1).setToggleButton(GuiTextures.BUTTON_FLUID_OUTPUT.getSubArea(0, 0.5, 1, 0.5), (c, p) -> {
                    if (!isRemote()) {
                        simpleMTE.setAutoOutputFluids(p);
                    }
                }).setInitValue(simpleMTE.isAutoOutputFluids()).setValueSupplier(false, simpleMTE::isAutoOutputFluids).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_7.getColor(), 0).setHoverText("terminal.console.auto_output").setIcon(GuiTextures.BUTTON_FLUID_OUTPUT.getSubArea(0, 0, 1, 0.5)));
                addWidget(new RectButtonWidget(103, y, 20, 20, 1).setToggleButton(GuiTextures.BUTTON_ALLOW_IMPORT_EXPORT.getSubArea(0, 0.5, 1, 0.5), (c, p) -> {
                    if (!isRemote()) {
                        simpleMTE.setAllowInputFromOutputSideFluids(p);
                    }
                }).setInitValue(simpleMTE.isAllowInputFromOutputSideFluids()).setValueSupplier(false, simpleMTE::isAllowInputFromOutputSideFluids).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_7.getColor(), 0).setHoverText("terminal.console.input").setIcon(GuiTextures.BUTTON_ALLOW_IMPORT_EXPORT.getSubArea(0, 0, 1, 0.5)));
                y += 20;
            }
            y += 5;
        }
        // MetaTileEntityQuantumTank
        if (mte instanceof MetaTileEntityQuantumChest) {
            MetaTileEntityQuantumChest chest = (MetaTileEntityQuantumChest) mte;
            addWidget(new ImageWidget(10, y, 20, 20, new ItemStackTexture(Items.GLOWSTONE_DUST)));
            addWidget(new RectButtonWidget(33, y, 50, 20, 1).setClickListener(clickData -> {
                if (!isRemote() && mte.getFrontFacing() != facing) {
                    chest.setOutputFacing(facing);
                }
            }).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_7.getColor(), TerminalTheme.COLOR_B_2.getColor()).setHoverText("terminal.console.items"));
            addWidget(new SimpleTextWidget(58, y + 10, "", -1, () -> chest.getOutputFacing().toString()));
            addWidget(new RectButtonWidget(83, y, 20, 20, 1).setToggleButton(GuiTextures.BUTTON_ITEM_OUTPUT.getSubArea(0, 0.5, 1, 0.5), (c, p) -> {
                if (!isRemote()) {
                    chest.setAutoOutputItems(p);
                }
            }).setInitValue(chest.isAutoOutputItems()).setValueSupplier(false, chest::isAutoOutputItems).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_7.getColor(), 0).setHoverText("terminal.console.auto_output").setIcon(GuiTextures.BUTTON_ITEM_OUTPUT.getSubArea(0, 0, 1, 0.5)));
            addWidget(new RectButtonWidget(103, y, 20, 20, 1).setToggleButton(GuiTextures.BUTTON_ALLOW_IMPORT_EXPORT.getSubArea(0, 0.5, 1, 0.5), (c, p) -> {
                if (!isRemote()) {
                    chest.setAllowInputFromOutputSide(p);
                }
            }).setInitValue(chest.isAllowInputFromOutputSideItems()).setValueSupplier(false, chest::isAllowInputFromOutputSideItems).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_7.getColor(), 0).setHoverText("terminal.console.input").setIcon(GuiTextures.BUTTON_ALLOW_IMPORT_EXPORT.getSubArea(0, 0, 1, 0.5)));
            y += 25;
        } else if (mte instanceof MetaTileEntityQuantumTank) {
            MetaTileEntityQuantumTank tank = (MetaTileEntityQuantumTank) mte;
            addWidget(new ImageWidget(10, y, 20, 20, new ItemStackTexture(Items.WATER_BUCKET)));
            addWidget(new RectButtonWidget(33, y, 50, 20, 1).setClickListener(clickData -> {
                if (!isRemote() && tank.getFrontFacing() != facing) {
                    tank.setOutputFacing(facing);
                }
            }).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_7.getColor(), TerminalTheme.COLOR_B_2.getColor()).setHoverText("terminal.console.fluids"));
            addWidget(new SimpleTextWidget(58, y + 10, "", -1, () -> tank.getOutputFacing().toString()));
            addWidget(new RectButtonWidget(83, y, 20, 20, 1).setToggleButton(GuiTextures.BUTTON_FLUID_OUTPUT.getSubArea(0, 0.5, 1, 0.5), (c, p) -> {
                if (!isRemote()) {
                    tank.setAutoOutputFluids(p);
                }
            }).setInitValue(tank.isAutoOutputFluids()).setValueSupplier(false, tank::isAutoOutputFluids).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_7.getColor(), 0).setHoverText("terminal.console.auto_output").setIcon(GuiTextures.BUTTON_FLUID_OUTPUT.getSubArea(0, 0, 1, 0.5)));
            addWidget(new RectButtonWidget(103, y, 20, 20, 1).setToggleButton(GuiTextures.BUTTON_ALLOW_IMPORT_EXPORT.getSubArea(0, 0.5, 1, 0.5), (c, p) -> {
                if (!isRemote()) {
                    tank.setAllowInputFromOutputSide(p);
                }
            }).setInitValue(tank.isAllowInputFromOutputSideFluids()).setValueSupplier(false, tank::isAllowInputFromOutputSideFluids).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_7.getColor(), 0).setHoverText("terminal.console.input").setIcon(GuiTextures.BUTTON_ALLOW_IMPORT_EXPORT.getSubArea(0, 0, 1, 0.5)));
            y += 25;
        }
        // MultiBlockPart
        if (mte instanceof MetaTileEntityMultiblockPart) {
            // MetaTileEntityMaintenanceHatch
            if (mte instanceof MetaTileEntityMaintenanceHatch) {
                addWidget(new RectButtonWidget(10, y, size.width - 20, 20, 1).setClickListener(clickData -> {
                    if (!isRemote()) {
                        ((MetaTileEntityMaintenanceHatch) mte).fixAllMaintenanceProblems();
                    }
                }).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_7.getColor(), TerminalTheme.COLOR_B_2.getColor()).setIcon(new TextTexture("terminal.console.maintenance", -1)));
                y += 25;
            }
        }
        // CoverBehavior
        CoverBehavior cover = mte.getCoverAtSide(facing);
        if (cover != null) {
            this.addWidget(new SlotWidget(new ItemStackHandler(NonNullList.withSize(1, cover.getPickItem())), 0, 10, y, false, false));
            addWidget(new SimpleTextWidget(58, y + 10, "terminal.console.cover_rs", -1, () -> String.valueOf(cover.getRedstoneSignalOutput())).setShadow(true).setCenter(true));
            if (cover instanceof CoverWithUI) {
                addWidget(new RectButtonWidget(83, y, 40, 20, 1).setClickListener(clickData -> uiWidgetGroup.openUI(((CoverWithUI) cover).createUI(gui.entityPlayer))).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_7.getColor(), TerminalTheme.COLOR_B_2.getColor()).setIcon(new TextTexture("terminal.console.cover_gui", -1)));
            }
            y += 25;
        }
        addWidget(new RectButtonWidget(10, y, size.width - 20, 20, 1).setClickListener(clickData -> uiWidgetGroup.openUI(mte.getModularUI(gui.entityPlayer))).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_7.getColor(), TerminalTheme.COLOR_B_2.getColor()).setIcon(new TextTexture("terminal.console.gui", -1)));
        addWidget(uiWidgetGroup);
    }
}
Also used : MetaTileEntityQuantumTank(gregtech.common.metatileentities.storage.MetaTileEntityQuantumTank) IRenderContext(gregtech.api.gui.IRenderContext) Size(gregtech.api.util.Size) EnumHand(net.minecraft.util.EnumHand) TerminalTheme(gregtech.api.terminal.os.TerminalTheme) GregtechTileCapabilities(gregtech.api.capability.GregtechTileCapabilities) CoverBehavior(gregtech.api.cover.CoverBehavior) TextTexture(gregtech.api.gui.resources.TextTexture) ItemStackTexture(gregtech.api.gui.resources.ItemStackTexture) CoverWithUI(gregtech.api.cover.CoverWithUI) Widget(gregtech.api.gui.Widget) gregtech.api.gui.widgets(gregtech.api.gui.widgets) SimpleMachineMetaTileEntity(gregtech.api.metatileentity.SimpleMachineMetaTileEntity) MetaTileEntityQuantumChest(gregtech.common.metatileentities.storage.MetaTileEntityQuantumChest) NonNullList(net.minecraft.util.NonNullList) GL11(org.lwjgl.opengl.GL11) MetaTileEntityHolder(gregtech.api.metatileentity.MetaTileEntityHolder) MetaTileEntity(gregtech.api.metatileentity.MetaTileEntity) AbstractRecipeLogic(gregtech.api.capability.impl.AbstractRecipeLogic) Items(net.minecraft.init.Items) GlStateManager(net.minecraft.client.renderer.GlStateManager) EnumFacing(net.minecraft.util.EnumFacing) IControllable(gregtech.api.capability.IControllable) BlockPos(net.minecraft.util.math.BlockPos) MetaTileEntityMaintenanceHatch(gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityMaintenanceHatch) GuiTextures(gregtech.api.gui.GuiTextures) RecipeLogicSteam(gregtech.api.capability.impl.RecipeLogicSteam) RectButtonWidget(gregtech.api.terminal.gui.widgets.RectButtonWidget) ItemStackHandler(net.minecraftforge.items.ItemStackHandler) IGuiTexture(gregtech.api.gui.resources.IGuiTexture) ModularUI(gregtech.api.gui.ModularUI) TileEntity(net.minecraft.tileentity.TileEntity) MetaTileEntityMultiblockPart(gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityMultiblockPart) PacketBuffer(net.minecraft.network.PacketBuffer) ItemStackHandler(net.minecraftforge.items.ItemStackHandler) SimpleMachineMetaTileEntity(gregtech.api.metatileentity.SimpleMachineMetaTileEntity) Size(gregtech.api.util.Size) EnumFacing(net.minecraft.util.EnumFacing) MetaTileEntityQuantumChest(gregtech.common.metatileentities.storage.MetaTileEntityQuantumChest) RecipeLogicSteam(gregtech.api.capability.impl.RecipeLogicSteam) TextTexture(gregtech.api.gui.resources.TextTexture) CoverBehavior(gregtech.api.cover.CoverBehavior) CoverWithUI(gregtech.api.cover.CoverWithUI) AbstractRecipeLogic(gregtech.api.capability.impl.AbstractRecipeLogic) ItemStackTexture(gregtech.api.gui.resources.ItemStackTexture) MetaTileEntityMaintenanceHatch(gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityMaintenanceHatch) IControllable(gregtech.api.capability.IControllable) MetaTileEntityMultiblockPart(gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityMultiblockPart) MetaTileEntityQuantumTank(gregtech.common.metatileentities.storage.MetaTileEntityQuantumTank) RectButtonWidget(gregtech.api.terminal.gui.widgets.RectButtonWidget)

Aggregations

TextTexture (gregtech.api.gui.resources.TextTexture)12 RectButtonWidget (gregtech.api.terminal.gui.widgets.RectButtonWidget)8 DraggableScrollableWidgetGroup (gregtech.api.terminal.gui.widgets.DraggableScrollableWidgetGroup)7 JsonElement (com.google.gson.JsonElement)4 ImageWidget (gregtech.api.gui.widgets.ImageWidget)4 TerminalTheme (gregtech.api.terminal.os.TerminalTheme)4 Gson (com.google.gson.Gson)3 GuiTextures (gregtech.api.gui.GuiTextures)3 IGuiTextureTabInfo (gregtech.api.gui.widgets.tab.IGuiTextureTabInfo)3 JsonObject (com.google.gson.JsonObject)2 gregtech.api.gui.widgets (gregtech.api.gui.widgets)2 LabelWidget (gregtech.api.gui.widgets.LabelWidget)2 SimpleTextWidget (gregtech.api.gui.widgets.SimpleTextWidget)2 WidgetGroup (gregtech.api.gui.widgets.WidgetGroup)2 ITabInfo (gregtech.api.gui.widgets.tab.ITabInfo)2 AbstractApplication (gregtech.api.terminal.app.AbstractApplication)2 java.awt (java.awt)2 PacketBuffer (net.minecraft.network.PacketBuffer)2 GregtechTileCapabilities (gregtech.api.capability.GregtechTileCapabilities)1 IControllable (gregtech.api.capability.IControllable)1