use of betterquesting.api2.client.gui.misc.IGuiRect in project BetterQuesting by Funwayguy.
the class GuiQuest method initPanel.
@Override
public void initPanel() {
super.initPanel();
this.quest = QuestDatabase.INSTANCE.getValue(questID);
if (quest == null) {
mc.displayGuiScreen(this.parent);
return;
}
PEventBroadcaster.INSTANCE.register(this, PEventButton.class);
// TODO: Register quest updated event
// Background panel
CanvasTextured cvBackground = new CanvasTextured(new GuiTransform(GuiAlign.FULL_BOX, new GuiPadding(0, 0, 0, 0), 0), PresetTexture.PANEL_MAIN.getTexture());
this.addPanel(cvBackground);
PanelTextBox panTxt = new PanelTextBox(new GuiTransform(GuiAlign.TOP_EDGE, new GuiPadding(0, 16, 0, -32), 0), I18n.format(quest.getUnlocalisedName())).setAlignment(1);
panTxt.setColor(PresetColor.TEXT_HEADER.getColor());
cvBackground.addPanel(panTxt);
if (QuestingAPI.getAPI(ApiReference.SETTINGS).canUserEdit(mc.player)) {
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), 1, 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")));
}
cvInner = new CanvasEmpty(new GuiTransform(GuiAlign.FULL_BOX, new GuiPadding(16, 32, 16, 24), 0));
cvBackground.addPanel(cvInner);
if (quest.getRewards().size() > 0) {
CanvasScrolling cvDesc = new CanvasScrolling(new GuiTransform(new Vector4f(0F, 0F, 0.5F, 0.5F), new GuiPadding(0, 0, 16, 16), 0));
cvInner.addPanel(cvDesc);
PanelTextBox paDesc = new PanelTextBox(new GuiRectangle(0, 0, cvDesc.getTransform().getWidth(), 0), I18n.format(quest.getUnlocalisedDescription()), true);
paDesc.setColor(PresetColor.TEXT_MAIN.getColor());
cvDesc.addPanel(paDesc);
PanelVScrollBar paDescScroll = new PanelVScrollBar(new GuiTransform(GuiAlign.quickAnchor(GuiAlign.TOP_CENTER, GuiAlign.MID_CENTER), new GuiPadding(-16, 0, 8, 16), 0));
cvInner.addPanel(paDescScroll);
cvDesc.setScrollDriverY(paDescScroll);
paDescScroll.setEnabled(cvDesc.getScrollBounds().getHeight() > 0);
btnClaim = new PanelButton(new GuiTransform(new Vector4f(0F, 1F, 0.5F, 1F), new GuiPadding(16, -16, 24, 0), 0), 6, I18n.format("betterquesting.btn.claim"));
btnClaim.setBtnState(false);
cvInner.addPanel(btnClaim);
btnRewardLeft = new PanelButton(new GuiTransform(GuiAlign.BOTTOM_LEFT, new GuiPadding(0, -16, -16, 0), 0), 2, "<");
btnRewardLeft.setBtnState(rewardIndex > 0);
cvInner.addPanel(btnRewardLeft);
btnRewardRight = new PanelButton(new GuiTransform(new Vector4f(0.5F, 1F, 0.5F, 1F), new GuiPadding(-24, -16, 8, 0), 0), 3, ">");
btnRewardRight.setBtnState(rewardIndex < quest.getRewards().size() - 1);
cvInner.addPanel(btnRewardRight);
rectReward = new GuiTransform(new Vector4f(0F, 0.5F, 0.5F, 1F), new GuiPadding(0, 0, 8, 16), 0);
rectReward.setParent(cvInner.getTransform());
titleReward = new PanelTextBox(new GuiTransform(new Vector4f(0F, 0.5F, 0.5F, 0.5F), new GuiPadding(0, -16, 8, 0), 0), "?");
titleReward.setColor(PresetColor.TEXT_HEADER.getColor()).setAlignment(1);
cvInner.addPanel(titleReward);
refreshRewardPanel();
} else {
CanvasScrolling cvDesc = new CanvasScrolling(new GuiTransform(GuiAlign.HALF_LEFT, new GuiPadding(0, 0, 16, 0), 0));
cvInner.addPanel(cvDesc);
PanelTextBox paDesc = new PanelTextBox(new GuiRectangle(0, 0, cvDesc.getTransform().getWidth(), 0), I18n.format(quest.getUnlocalisedDescription()), true);
paDesc.setColor(PresetColor.TEXT_MAIN.getColor());
cvDesc.addPanel(paDesc);
PanelVScrollBar paDescScroll = new PanelVScrollBar(new GuiTransform(GuiAlign.quickAnchor(GuiAlign.TOP_CENTER, GuiAlign.BOTTOM_CENTER), new GuiPadding(-16, 0, 8, 0), 0));
cvInner.addPanel(paDescScroll);
cvDesc.setScrollDriverY(paDescScroll);
paDescScroll.setEnabled(cvDesc.getScrollBounds().getHeight() > 0);
}
if (quest.getTasks().size() > 0) {
btnDetect = new PanelButton(new GuiTransform(new Vector4f(0.5F, 1F, 1F, 1F), new GuiPadding(24, -16, 16, 0), 0), 7, I18n.format("betterquesting.btn.detect_submit"));
btnDetect.setBtnState(false);
cvInner.addPanel(btnDetect);
btnTaskLeft = new PanelButton(new GuiTransform(new Vector4f(0.5F, 1F, 0.5F, 1F), new GuiPadding(8, -16, -24, 0), 0), 4, "<");
btnTaskLeft.setBtnState(taskIndex > 0);
cvInner.addPanel(btnTaskLeft);
btnTaskRight = new PanelButton(new GuiTransform(GuiAlign.BOTTOM_RIGHT, new GuiPadding(-16, -16, 0, 0), 0), 5, ">");
btnTaskRight.setBtnState(taskIndex < quest.getTasks().size() - 1);
cvInner.addPanel(btnTaskRight);
rectTask = new GuiTransform(GuiAlign.HALF_RIGHT, new GuiPadding(8, 16, 0, 16), 0);
rectTask.setParent(cvInner.getTransform());
titleTask = new PanelTextBox(new GuiTransform(new Vector4f(0.5F, 0F, 1F, 0F), new GuiPadding(8, 0, 0, -16), 0), "?");
titleTask.setColor(PresetColor.TEXT_HEADER.getColor()).setAlignment(1);
cvInner.addPanel(titleTask);
refreshTaskPanel();
}
IGuiRect ls0 = new GuiTransform(GuiAlign.TOP_CENTER, 0, 0, 0, 0, 0);
ls0.setParent(cvInner.getTransform());
IGuiRect le0 = new GuiTransform(GuiAlign.BOTTOM_CENTER, 0, 0, 0, 0, 0);
le0.setParent(cvInner.getTransform());
PanelLine paLine0 = new PanelLine(ls0, le0, PresetLine.GUI_DIVIDER.getLine(), 1, PresetColor.GUI_DIVIDER.getColor(), 1);
cvInner.addPanel(paLine0);
}
use of betterquesting.api2.client.gui.misc.IGuiRect in project BetterQuesting by Funwayguy.
the class GuiThemes method initPanel.
@Override
public void initPanel() {
super.initPanel();
PEventBroadcaster.INSTANCE.register(this, PEventButton.class);
// Background panel
CanvasTextured bgCan = new CanvasTextured(new GuiTransform(GuiAlign.FULL_BOX, new GuiPadding(0, 0, 0, 0), 0), PresetTexture.PANEL_MAIN.getTexture());
this.addPanel(bgCan);
// Inner canvas bounds
CanvasEmpty inCan = new CanvasEmpty(new GuiTransform(GuiAlign.FULL_BOX, new GuiPadding(16, 16, 16, 16), 0));
bgCan.addPanel(inCan);
PanelTextBox panTxt = new PanelTextBox(new GuiTransform(GuiAlign.TOP_EDGE, new GuiPadding(0, 0, 0, -16), 0), I18n.format("betterquesting.title.select_theme")).setAlignment(1);
panTxt.setColor(PresetColor.TEXT_HEADER.getColor());
inCan.addPanel(panTxt);
PanelButton btnExit = new PanelButton(new GuiTransform(GuiAlign.BOTTOM_CENTER, new GuiPadding(-100, -16, -100, 0), 0), 0, I18n.format("gui.done"));
bgCan.addPanel(btnExit);
CanvasScrolling canScroll = new CanvasScrolling(new GuiTransform(GuiAlign.HALF_LEFT, new GuiPadding(0, 16, 16, 16), 0));
inCan.addPanel(canScroll);
List<ITheme> themes = betterquesting.client.themes.ThemeRegistry.INSTANCE.getAllThemes();
// List<IGuiTheme> themes = ThemeRegistry.INSTANCE.getAllThemes();
int width = canScroll.getTransform().getWidth();
for (int i = 0; i < themes.size(); i++) {
GuiRectangle trans = new GuiRectangle(0, i * 24, width, 24, 0);
ITheme theme = themes.get(i);
PanelButtonStorage<ResourceLocation> pbs = new PanelButtonStorage<>(trans, 1, theme.getDisplayName(), theme.getThemeID());
canScroll.addPanel(pbs);
if (betterquesting.client.themes.ThemeRegistry.INSTANCE.getCurrentTheme() == theme) {
pbs.setEnabled(false);
}
}
PanelVScrollBar vsb = new PanelVScrollBar(new GuiTransform(GuiAlign.RIGHT_EDGE, new GuiPadding(0, 0, -8, 0), 0));
inCan.addPanel(vsb);
vsb.getTransform().setParent(canScroll.getTransform());
canScroll.setScrollDriverY(vsb);
scrollPanel = vsb;
// === PREVIEW PANELS ===
CanvasEmpty preCan = new CanvasEmpty(new GuiTransform(GuiAlign.HALF_RIGHT, new GuiPadding(8, 16, 0, 16), 0));
inCan.addPanel(preCan);
CanvasTextured preCanIn0 = new CanvasTextured(new GuiTransform(new Vector4f(0F, 0F, 0.5F, 0.5F), new GuiPadding(0, 0, 0, 0), 0), PresetTexture.PANEL_MAIN.getTexture());
preCan.addPanel(preCanIn0);
preCanIn0.addPanel(new PanelTextBox(new GuiTransform(GuiAlign.MID_CENTER, -32, -8, 64, 16, 0), "EXAMPLE").setAlignment(1).setColor(PresetColor.TEXT_MAIN.getColor()));
CanvasTextured preCanIn1 = new CanvasTextured(new GuiTransform(new Vector4f(0.5F, 0F, 1F, 0.5F), new GuiPadding(0, 0, 0, 0), 0), PresetTexture.PANEL_INNER.getTexture());
preCanIn1.addPanel(new PanelTextBox(new GuiTransform(GuiAlign.MID_CENTER, -32, -8, 64, 16, 0), "EXAMPLE").setAlignment(1).setColor(PresetColor.TEXT_AUX_0.getColor()));
preCan.addPanel(preCanIn1);
CanvasTextured preCanIn2 = new CanvasTextured(new GuiTransform(GuiAlign.HALF_BOTTOM, new GuiPadding(0, 0, 0, 0), 0), PresetTexture.AUX_FRAME_0.getTexture());
preCan.addPanel(preCanIn2);
IGuiTexture icoSlides = new SlideShowTexture(1F, new GuiTextureColored(PresetTexture.QUEST_NORM_0.getTexture(), PresetColor.QUEST_ICON_LOCKED.getColor()), new GuiTextureColored(PresetTexture.QUEST_NORM_1.getTexture(), PresetColor.QUEST_ICON_UNLOCKED.getColor()), new GuiTextureColored(PresetTexture.QUEST_NORM_2.getTexture(), PresetColor.QUEST_ICON_PENDING.getColor()), new GuiTextureColored(PresetTexture.QUEST_NORM_3.getTexture(), PresetColor.QUEST_ICON_COMPLETE.getColor()), new GuiTextureColored(PresetTexture.QUEST_MAIN_0.getTexture(), PresetColor.QUEST_ICON_LOCKED.getColor()), new GuiTextureColored(PresetTexture.QUEST_MAIN_1.getTexture(), PresetColor.QUEST_ICON_UNLOCKED.getColor()), new GuiTextureColored(PresetTexture.QUEST_MAIN_2.getTexture(), PresetColor.QUEST_ICON_PENDING.getColor()), new GuiTextureColored(PresetTexture.QUEST_MAIN_3.getTexture(), PresetColor.QUEST_ICON_COMPLETE.getColor()), new GuiTextureColored(PresetTexture.QUEST_AUX_0.getTexture(), PresetColor.QUEST_ICON_LOCKED.getColor()), new GuiTextureColored(PresetTexture.QUEST_AUX_1.getTexture(), PresetColor.QUEST_ICON_UNLOCKED.getColor()), new GuiTextureColored(PresetTexture.QUEST_AUX_2.getTexture(), PresetColor.QUEST_ICON_PENDING.getColor()), new GuiTextureColored(PresetTexture.QUEST_AUX_3.getTexture(), PresetColor.QUEST_ICON_COMPLETE.getColor()));
PanelGeneric pqp = new PanelGeneric(new GuiTransform(new Vector4f(0.25F, 0.5F, 0.25F, 0.5F), -12, -12, 24, 24, 0), icoSlides);
preCanIn2.addPanel(pqp);
CanvasTextured itemFrame = new CanvasTextured(new GuiTransform(new Vector4f(0.75F, 0.5F, 0.75F, 0.5F), -12, -12, 24, 24, 0), PresetTexture.ITEM_FRAME.getTexture());
itemFrame.addPanel(new PanelGeneric(new GuiTransform(GuiAlign.FULL_BOX, new GuiPadding(1, 1, 1, 1), 0), new ItemTexture(new BigItemStack(BetterQuesting.guideBook))));
preCanIn2.addPanel(itemFrame);
IGuiLine linSeq = new GuiLineSequence(1F, PresetLine.QUEST_LOCKED.getLine(), PresetLine.QUEST_UNLOCKED.getLine(), PresetLine.QUEST_PENDING.getLine(), PresetLine.QUEST_COMPLETE.getLine());
IGuiColor colSeq = new GuiColorSequence(1F, PresetColor.QUEST_LINE_LOCKED.getColor(), PresetColor.QUEST_LINE_UNLOCKED.getColor(), PresetColor.QUEST_LINE_PENDING.getColor(), PresetColor.QUEST_LINE_COMPLETE.getColor());
preCanIn2.addPanel(new PanelLine(pqp.getTransform(), itemFrame.getTransform(), linSeq, 4, colSeq, 1));
preCanIn2.addPanel(new PanelTextBox(new GuiTransform(GuiAlign.FULL_BOX, new GuiPadding(8, 8, 8, 8), 0), "EXAMPLE").setAlignment(1).setColor(PresetColor.TEXT_AUX_1.getColor()));
IGuiRect ls0 = new GuiTransform(GuiAlign.TOP_CENTER, 0, 16, 0, 0, 0);
ls0.setParent(inCan.getTransform());
IGuiRect le0 = new GuiTransform(GuiAlign.BOTTOM_CENTER, 0, -16, 0, 0, 0);
le0.setParent(inCan.getTransform());
PanelLine paLine0 = new PanelLine(ls0, le0, PresetLine.GUI_DIVIDER.getLine(), 1, PresetColor.GUI_DIVIDER.getColor(), 1);
inCan.addPanel(paLine0);
}
use of betterquesting.api2.client.gui.misc.IGuiRect in project BetterQuesting by Funwayguy.
the class GuiScreenTest method initPanel.
@Override
public void initPanel() {
super.initPanel();
IGuiRect ctt = new GuiTransform(new Vector4f(0.05F, 0.05F, 0.95F, 0.95F), new GuiPadding(0, 0, 0, 0), 0);
CanvasTextured cvt1 = new CanvasTextured(ctt, PresetTexture.PANEL_MAIN.getTexture());
this.addPanel(cvt1);
CanvasScrolling cs1 = new CanvasScrolling(new GuiTransform(GuiAlign.FULL_BOX, new GuiPadding(0, 0, 12, 0), 0)).setupAdvanceScroll(true, true, 0);
cvt1.addPanel(cs1);
PanelVScrollBar pvs = new PanelVScrollBar(new GuiTransform(GuiAlign.RIGHT_EDGE, new GuiPadding(-12, 4, 4, 4), 0));
cvt1.addPanel(pvs);
cs1.setScrollDriverY(pvs);
CanvasTextured cvt2 = new CanvasTextured(new GuiRectangle(0, 0, 800, 500, 0), PresetTexture.PANEL_INNER.getTexture());
cs1.addPanel(cvt2);
PanelButton btn3 = new PanelButton(new GuiRectangle(-100, -20, 100, 20, 0), 1, "Button 3");
cs1.addPanel(btn3);
IGuiRect btt1 = new GuiTransform(GuiAlign.BOTTOM_CENTER, new GuiPadding(-100, -16, 0, 0), -1);
IGuiRect btt2 = new GuiTransform(GuiAlign.BOTTOM_CENTER, new GuiPadding(0, -16, -100, 0), -1);
PanelButton btn1 = new PanelButton(btt1, 0, "Button 1");
PanelButton btn2 = new PanelButton(btt2, 1, "Button 2");
cvt1.addPanel(btn1);
cvt1.addPanel(btn2);
try {
IGuiRect pt1 = new GuiRectangle(0, 0, 64, 64, 0);
IGuiRect pt2 = new GuiRectangle(64, 0, 48, 48, 0);
IGuiRect pt3 = new GuiRectangle(112, 0, 32, 32, 0);
PanelPlayerPortrait pp1 = new PanelPlayerPortrait(pt1, UUID.fromString("10755ea6-9721-467a-8b5c-92adf689072c"), "Darkosto");
PanelPlayerPortrait pp2 = new PanelPlayerPortrait(pt2, UUID.fromString("ef35a72a-ef00-4c2a-a2a9-58a54a7bb9fd"), "GreatOrator");
PanelPlayerPortrait pp3 = new PanelPlayerPortrait(pt3, UUID.fromString("4412cc00-65de-43ff-b19a-10e0ec64cc4a"), "Funwayguy");
cs1.addPanel(pp1);
cs1.addPanel(pp2);
cs1.addPanel(pp3);
} catch (Exception e) {
e.printStackTrace();
}
}
use of betterquesting.api2.client.gui.misc.IGuiRect in project BetterQuesting by Funwayguy.
the class PanelButton method onMouseRelease.
@Override
public boolean onMouseRelease(int mx, int my, int click) {
if (!pendingRelease) {
return false;
}
pendingRelease = false;
IGuiRect bounds = this.getTransform();
boolean clicked = isEnabled() && click == 0 && bounds.contains(mx, my) && !PEventBroadcaster.INSTANCE.postEvent(new PEventButton(this));
if (clicked) {
Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.getMasterRecord(SoundEvents.UI_BUTTON_CLICK, 1.0F));
}
return clicked;
}
use of betterquesting.api2.client.gui.misc.IGuiRect in project BetterQuesting by Funwayguy.
the class PanelVBarFill method drawPanel.
@Override
public void drawPanel(int mx, int my, float partialTick) {
IGuiRect bounds = this.getTransform();
GlStateManager.pushMatrix();
GlStateManager.color(1F, 1F, 1F, 1F);
if (texBack != null) {
texBack.drawTexture(bounds.getX(), bounds.getY(), bounds.getWidth(), bounds.getHeight(), 0F, partialTick);
}
float f = MathHelper.clamp(fillDriver.readValue(), 0F, 1F);
Minecraft mc = Minecraft.getMinecraft();
if (this.flipBar) {
RenderUtils.startScissor(mc, new GuiRectangle(bounds.getX(), bounds.getY(), bounds.getWidth(), (int) (bounds.getHeight() * f), 0));
} else {
RenderUtils.startScissor(mc, new GuiRectangle(bounds.getX(), bounds.getY() + (int) (bounds.getHeight() - (bounds.getHeight() * f)), bounds.getWidth(), (int) (bounds.getHeight() * f), 0));
}
if (this.clrThreshold > 0 && f < this.clrThreshold) {
int tmpC = this.clrLow;
if (lerpClr) {
tmpC = RenderUtils.lerpRGB(clrLow, clrNorm, f / clrThreshold);
}
int a1 = (tmpC >> 24) & 255;
int r1 = (tmpC >> 16) & 255;
int g1 = (tmpC >> 8) & 255;
int b1 = tmpC & 255;
GlStateManager.color(r1 / 255F, g1 / 255F, b1 / 255F, a1 / 255F);
} else {
int a1 = this.clrNorm >> 24 & 255;
int r1 = this.clrNorm >> 16 & 255;
int g1 = this.clrNorm >> 8 & 255;
int b1 = this.clrNorm & 255;
GlStateManager.color(r1 / 255F, g1 / 255F, b1 / 255F, a1 / 255F);
}
if (texFill != null) {
texFill.drawTexture(bounds.getX(), bounds.getY(), bounds.getWidth(), bounds.getHeight(), 0F, partialTick);
}
RenderUtils.endScissor(mc);
GlStateManager.popMatrix();
}
Aggregations