use of gregtech.api.terminal.gui.widgets.RectButtonWidget in project GregTech by GregTechCEu.
the class ItemStackConfigurator method init.
protected void init() {
container = new DraggableScrollableWidgetGroup(0, 27, 116, 100);
this.addWidget(container);
this.addWidget(new RectButtonWidget(0, 15, 116, 10, 1).setIcon(new TextTexture("terminal.guide_editor.add_slot", -1)).setClickListener(cd -> {
addSlot(container, new SlotListWidget.ItemStackInfo("minecraft:air", 0, 0));
updateValue();
}).setColors(TerminalTheme.COLOR_B_1.getColor(), TerminalTheme.COLOR_1.getColor(), TerminalTheme.COLOR_B_1.getColor()));
slots = new ArrayList<>();
if (!config.get(name).isJsonNull()) {
Gson gson = new Gson();
for (JsonElement o : config.get(name).getAsJsonArray()) {
addSlot(container, gson.fromJson(o, SlotListWidget.ItemStackInfo.class));
}
}
}
use of gregtech.api.terminal.gui.widgets.RectButtonWidget in project GregTech by GregTechCEu.
the class VirtualTankApp method initApp.
@Override
public AbstractApplication initApp() {
this.addWidget(new ImageWidget(5, 5, 333 - 10, 232 - 10, TerminalTheme.COLOR_B_2));
this.addWidget(new LabelWidget(10, 10, "terminal.vtank_viewer.title", -1));
this.addWidget(new RectButtonWidget(216, 7, 110, 18).setClickListener(cd -> {
if (cd.isClient) {
reloadWidgets(cacheClient);
}
}).setIcon(new TextTexture("terminal.vtank_viewer.refresh", -1)).setFill(TerminalTheme.COLOR_B_2.getColor()));
widgetGroup = new DraggableScrollableWidgetGroup(10, 30, 313, 195).setDraggable(true).setYScrollBarWidth(3).setYBarStyle(null, TerminalTheme.COLOR_F_1);
if (isClient) {
cacheClient = new HashMap<>();
} else {
cacheServer = new HashMap<>();
}
this.addWidget(widgetGroup);
if (!isRemote()) {
refresh();
}
return this;
}
use of gregtech.api.terminal.gui.widgets.RectButtonWidget 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);
}
}
Aggregations