use of gregtech.api.gui.resources.ItemStackTexture in project GregTech by GregTechCEu.
the class WorldProspectorARApp method initApp.
@Override
public AbstractApplication initApp() {
addWidget(new ImageWidget(10, 10, 313, 212, new ColorRectTexture(TerminalTheme.COLOR_B_2.getColor())));
addWidget(new LabelWidget(15 + 150 / 2, 232 / 2, "terminal.world_prospector.radius", -1, new Object[] { getMaxRadius() }).setShadow(true).setYCentered(true).setXCentered(true));
int slotSize = (int) Math.pow(2, getAppTier());
int x = 250 - slotSize * 12;
int y = 232 / 2 - 18;
handlers = new SingleItemStackHandler[slotSize];
colors = new int[slotSize];
for (int i = 0; i < slotSize; i++) {
int index = i;
Tuple<ItemStack, Integer> stack = getSlotStack(i);
if (stack == null) {
handlers[i] = new SingleItemStackHandler(ItemStack.EMPTY);
colors[i] = 0;
} else {
handlers[i] = new SingleItemStackHandler(stack.getFirst());
colors[i] = stack.getSecond();
}
RectButtonWidget buttonWidget = new RectButtonWidget(x + i * 24, y + 18, 18, 18, 1);
addWidget(new PhantomSlotWidget(handlers[i], 0, x + i * 24, y) {
@Override
public boolean mouseClicked(int mouseX, int mouseY, int button) {
if (handlers[index].getStackInSlot(0).isEmpty() && isMouseOverElement(mouseX, mouseY)) {
writeClientAction(-1, buffer -> {
});
selectReference(index, buttonWidget);
return true;
}
return super.mouseClicked(mouseX, mouseY, button);
}
@Override
public void handleClientAction(int id, PacketBuffer buffer) {
if (id == -1) {
selectReference(index, buttonWidget);
} else {
super.handleClientAction(id, buffer);
}
}
}.setBackgroundTexture(new ColorRectTexture(0x4fffffff)));
addWidget(buttonWidget.setHoverText("terminal.world_prospector.color").setColors(0x4fffffff, -1, colors[i]).setClickListener(cd -> TerminalDialogWidget.showColorDialog(getOs(), "terminal.world_prospector.color", res -> {
if (res != null) {
buttonWidget.setFill(res | 0xff000000);
colors[index] = res | 0xff000000;
}
}, colors[index]).open()));
}
addWidget(new CircleButtonWidget(333 / 2, 200).setClickListener(cd -> openAR()).setHoverText("terminal.ar.open").setColors(0, -1, TerminalTheme.COLOR_B_3.getColor()).setIcon(new ItemStackTexture(MetaItems.CAMERA.getStackForm())));
return this;
}
use of gregtech.api.gui.resources.ItemStackTexture in project GregTech by GregTechCEu.
the class ImageWidget method initFixed.
@Override
protected Widget initFixed() {
width = Math.max(0, width);
height = Math.max(0, height);
this.setSize(new Size(width, height));
switch(form) {
case "url":
image = new URLTexture(source);
break;
case "item":
image = new ItemStackTexture(Item.getByNameOrId(source));
break;
case "resource":
image = new TextureArea(new ResourceLocation(source), 0.0, 0.0, 1.0, 1.0);
break;
}
return this;
}
use of gregtech.api.gui.resources.ItemStackTexture 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