Search in sources :

Example 6 with GuiPadding

use of betterquesting.api2.client.gui.misc.GuiPadding in project BetterQuesting by Funwayguy.

the class GuiQuestLines method initPanel.

@Override
public void initPanel() {
    super.initPanel();
    if (selectedLineId >= 0) {
        selectedLine = QuestLineDatabase.INSTANCE.getValue(selectedLineId);
        if (selectedLine == null) {
            selectedLineId = -1;
        }
    } else {
        selectedLine = null;
    }
    boolean canEdit = QuestingAPI.getAPI(ApiReference.SETTINGS).canUserEdit(mc.player);
    PEventBroadcaster.INSTANCE.register(this, PEventButton.class);
    CanvasTextured cvBackground = new CanvasTextured(new GuiTransform(GuiAlign.FULL_BOX, new GuiPadding(0, 0, 0, 0), 0), PresetTexture.PANEL_MAIN.getTexture());
    this.addPanel(cvBackground);
    if (canEdit) {
        cvBackground.addPanel(new PanelButton(new GuiTransform(GuiAlign.BOTTOM_CENTER, -100, -16, 100, 16, 0), 0, I18n.format("gui.back")));
        cvBackground.addPanel(new PanelButton(new GuiTransform(GuiAlign.BOTTOM_CENTER, 0, -16, 100, 16, 0), 3, I18n.format("betterquesting.btn.edit")));
    } else {
        cvBackground.addPanel(new PanelButton(new GuiTransform(GuiAlign.BOTTOM_CENTER, -100, -16, 200, 16, 0), 0, I18n.format("gui.back")));
    }
    CanvasScrolling cvList = new CanvasScrolling(new GuiTransform(GuiAlign.LEFT_EDGE, new GuiPadding(16, 16, -158, 16), 0));
    cvBackground.addPanel(cvList);
    PanelVScrollBar pnQScroll = new PanelVScrollBar(new GuiTransform(GuiAlign.RIGHT_EDGE, new GuiPadding(0, 0, -8, 0), 0));
    cvList.setScrollDriverY(pnQScroll);
    cvBackground.addPanel(pnQScroll);
    pnQScroll.getTransform().setParent(cvList.getTransform());
    List<IQuestLine> lineList = QuestLineDatabase.INSTANCE.getAllValues();
    this.qlBtns = new PanelButtonStorage[lineList.size()];
    UUID playerID = QuestingAPI.getQuestingUUID(mc.player);
    for (int i = 0; i < lineList.size(); i++) {
        IQuestLine ql = lineList.get(i);
        PanelButtonStorage<IQuestLine> btnLine = new PanelButtonStorage<>(new GuiRectangle(0, i * 16, 142, 16, 0), 1, I18n.format(ql.getUnlocalisedName()), ql);
        boolean show = canEdit;
        if (!show) {
            for (int qID : ql.getAllKeys()) {
                IQuest q = QuestDatabase.INSTANCE.getValue(qID);
                if (q != null && CanvasQuestLine.isQuestShown(q, playerID)) {
                    show = true;
                    break;
                }
            }
        }
        if (!show || ql == selectedLine) {
            btnLine.setBtnState(false);
        }
        cvList.addPanel(btnLine);
        qlBtns[i] = btnLine;
    }
    pnQScroll.setEnabled(cvList.getScrollBounds().getHeight() > 0);
    CanvasTextured cvFrame = new CanvasTextured(new GuiTransform(GuiAlign.FULL_BOX, new GuiPadding(174, 16, 16, 66), 0), PresetTexture.AUX_FRAME_0.getTexture());
    cvBackground.addPanel(cvFrame);
    cvQuest = new CanvasQuestLine(new GuiTransform(GuiAlign.FULL_BOX, new GuiPadding(0, 0, 0, 0), 0), 2);
    cvFrame.addPanel(cvQuest);
    cvDesc = new CanvasScrolling(new GuiTransform(GuiAlign.BOTTOM_EDGE, new GuiPadding(174, -66, 24, 16), 0));
    cvBackground.addPanel(cvDesc);
    paDesc = new PanelTextBox(new GuiRectangle(0, 0, cvDesc.getTransform().getWidth(), 0, 0), "", true);
    paDesc.setColor(PresetColor.TEXT_MAIN.getColor());
    cvDesc.addPanel(paDesc);
    scDesc = new PanelVScrollBar(new GuiTransform(GuiAlign.BOTTOM_RIGHT, new GuiPadding(-24, -66, 16, 16), 0));
    cvDesc.setScrollDriverY(scDesc);
    cvBackground.addPanel(scDesc);
    if (selectedLine != null) {
        cvQuest.setQuestLine(selectedLine);
        cvQuest.setZoom(lastZoom);
        cvQuest.setScrollX(lastScrollX);
        cvQuest.setScrollY(lastScrollY);
        paDesc.setText(I18n.format(selectedLine.getUnlocalisedDescription()));
        scDesc.setEnabled(cvDesc.getScrollBounds().getHeight() > 0);
    }
    // === DECORATIVE LINES ===
    IGuiRect ls0 = new GuiTransform(GuiAlign.TOP_LEFT, 16, 16, 0, 0, 0);
    ls0.setParent(cvBackground.getTransform());
    IGuiRect le0 = new GuiTransform(GuiAlign.TOP_LEFT, 166, 16, 0, 0, 0);
    le0.setParent(cvBackground.getTransform());
    PanelLine paLine0 = new PanelLine(ls0, le0, PresetLine.GUI_DIVIDER.getLine(), 1, PresetColor.GUI_DIVIDER.getColor(), -1);
    cvBackground.addPanel(paLine0);
    IGuiRect ls1 = new GuiTransform(GuiAlign.BOTTOM_LEFT, 16, -16, 0, 0, 0);
    ls1.setParent(cvBackground.getTransform());
    IGuiRect le1 = new GuiTransform(GuiAlign.BOTTOM_LEFT, 166, -16, 0, 0, 0);
    le1.setParent(cvBackground.getTransform());
    PanelLine paLine1 = new PanelLine(ls1, le1, PresetLine.GUI_DIVIDER.getLine(), 1, PresetColor.GUI_DIVIDER.getColor(), 1);
    cvBackground.addPanel(paLine1);
    IGuiRect ls3 = new GuiTransform(GuiAlign.BOTTOM_LEFT, 174, -16, 0, 0, 0);
    ls3.setParent(cvBackground.getTransform());
    IGuiRect le3 = new GuiTransform(GuiAlign.BOTTOM_RIGHT, -16, -16, 0, 0, 0);
    le3.setParent(cvBackground.getTransform());
    PanelLine paLine3 = new PanelLine(ls3, le3, PresetLine.GUI_DIVIDER.getLine(), 1, PresetColor.GUI_DIVIDER.getColor(), 1);
    cvBackground.addPanel(paLine3);
}
Also used : PanelButton(betterquesting.api2.client.gui.controls.PanelButton) IPanelButton(betterquesting.api2.client.gui.controls.IPanelButton) IQuest(betterquesting.api.questing.IQuest) PanelVScrollBar(betterquesting.api2.client.gui.panels.bars.PanelVScrollBar) PanelLine(betterquesting.api2.client.gui.panels.content.PanelLine) PanelTextBox(betterquesting.api2.client.gui.panels.content.PanelTextBox) IQuestLine(betterquesting.api.questing.IQuestLine) CanvasTextured(betterquesting.api2.client.gui.panels.CanvasTextured) CanvasScrolling(betterquesting.api2.client.gui.panels.lists.CanvasScrolling) UUID(java.util.UUID) PanelButtonStorage(betterquesting.api2.client.gui.controls.PanelButtonStorage)

Example 7 with GuiPadding

use of betterquesting.api2.client.gui.misc.GuiPadding in project BetterQuesting by Funwayguy.

the class SlicedTexture method readFromJson.

public static SlicedTexture readFromJson(JsonObject json) {
    ResourceLocation res = new ResourceLocation(JsonHelper.GetString(json, "texture", "minecraft:missingno"));
    int slice = JsonHelper.GetNumber(json, "sliceMode", 1).intValue();
    JsonObject jOut = JsonHelper.GetObject(json, "coordinates");
    int ox = JsonHelper.GetNumber(jOut, "u", 0).intValue();
    int oy = JsonHelper.GetNumber(jOut, "v", 0).intValue();
    int ow = JsonHelper.GetNumber(jOut, "w", 48).intValue();
    int oh = JsonHelper.GetNumber(jOut, "h", 48).intValue();
    JsonObject jIn = JsonHelper.GetObject(json, "border");
    int il = JsonHelper.GetNumber(jIn, "l", 16).intValue();
    int it = JsonHelper.GetNumber(jIn, "t", 16).intValue();
    int ir = JsonHelper.GetNumber(jIn, "r", 16).intValue();
    int ib = JsonHelper.GetNumber(jIn, "b", 16).intValue();
    return new SlicedTexture(res, new GuiRectangle(ox, oy, ow, oh), new GuiPadding(il, it, ir, ib)).setSliceMode(SliceMode.values()[slice % 3]);
}
Also used : GuiRectangle(betterquesting.api2.client.gui.misc.GuiRectangle) ResourceLocation(net.minecraft.util.ResourceLocation) JsonObject(com.google.gson.JsonObject) GuiPadding(betterquesting.api2.client.gui.misc.GuiPadding)

Aggregations

PanelButton (betterquesting.api2.client.gui.controls.PanelButton)5 CanvasTextured (betterquesting.api2.client.gui.panels.CanvasTextured)5 IPanelButton (betterquesting.api2.client.gui.controls.IPanelButton)4 GuiPadding (betterquesting.api2.client.gui.misc.GuiPadding)4 CanvasEmpty (betterquesting.api2.client.gui.panels.CanvasEmpty)4 PanelVScrollBar (betterquesting.api2.client.gui.panels.bars.PanelVScrollBar)4 CanvasScrolling (betterquesting.api2.client.gui.panels.lists.CanvasScrolling)4 Vector4f (org.lwjgl.util.vector.Vector4f)4 GuiRectangle (betterquesting.api2.client.gui.misc.GuiRectangle)3 GuiTransform (betterquesting.api2.client.gui.misc.GuiTransform)3 PanelLine (betterquesting.api2.client.gui.panels.content.PanelLine)3 PanelTextBox (betterquesting.api2.client.gui.panels.content.PanelTextBox)3 ResourceLocation (net.minecraft.util.ResourceLocation)3 PanelButtonStorage (betterquesting.api2.client.gui.controls.PanelButtonStorage)2 IGuiTexture (betterquesting.api2.client.gui.resources.textures.IGuiTexture)2 ITheme (betterquesting.api.client.themes.ITheme)1 IQuest (betterquesting.api.questing.IQuest)1 IQuestLine (betterquesting.api.questing.IQuestLine)1 BigItemStack (betterquesting.api.utils.BigItemStack)1 IGuiRect (betterquesting.api2.client.gui.misc.IGuiRect)1