aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorvicisacat <victor.branchu@gmail.com>2024-01-14 01:00:55 +0100
committervicisacat <victor.branchu@gmail.com>2024-01-14 01:00:55 +0100
commit48a61ba65eece0f34cd4f5d4a67ae14ea5de1e0d (patch)
treee1a9d2e45aa5e64aaa4cf955ed0b64fdb8f7b37d /src
parentd14554132ae518594f29ec7ba73bb4f46263e86e (diff)
downloadSkyblocker-48a61ba65eece0f34cd4f5d4a67ae14ea5de1e0d.tar.gz
Skyblocker-48a61ba65eece0f34cd4f5d4a67ae14ea5de1e0d.tar.bz2
Skyblocker-48a61ba65eece0f34cd4f5d4a67ae14ea5de1e0d.zip
Add prev and next page buttons
also fix the floor heads rendering in front of the overlay when party is locked
Diffstat (limited to 'src')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntry.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyFinderScreen.java40
2 files changed, 39 insertions, 3 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntry.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntry.java
index d96922c8..d9c69933 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntry.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntry.java
@@ -234,7 +234,7 @@ public class PartyEntry extends ElementListWidget.Entry<PartyEntry> {
if (isLocked) {
matrices.push();
- matrices.translate(0, 0, 100f);
+ matrices.translate(0, 0, 200f);
context.fill(0, 0, entryWidth, entryHeight, 0x90000000);
context.drawText(textRenderer, lockReason, entryWidth/2 - textRenderer.getWidth(lockReason)/2, entryHeight/2 - textRenderer.fontHeight/2, 0xFFFFFF, true);
matrices.pop();
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyFinderScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyFinderScreen.java
index 3f4d2531..a75567b7 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyFinderScreen.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyFinderScreen.java
@@ -74,6 +74,8 @@ public class PartyFinderScreen extends Screen {
private TextFieldWidget searchField;
private ButtonWidget refreshButton;
+ private ButtonWidget previousPageButton; private int prevPageSlotId = -1;
+ private ButtonWidget nextPageButton; private int nextPageSlotId = -1;
protected ButtonWidget partyFinderButton; protected int partyButtonSlotId = -1;
private ButtonWidget settingsButton; private int settingsButtonSlotId = -1;
@@ -138,7 +140,7 @@ public class PartyFinderScreen extends Screen {
partyEntryListWidget.setRenderBackground(false);
// Search field
- this.searchField = new TextFieldWidget(textRenderer, partyEntryListWidget.getRowLeft()+12, entryListTopY - 12, partyEntryListWidget.getRowWidth()-12-6, 12, Text.literal("Search..."));
+ this.searchField = new TextFieldWidget(textRenderer, partyEntryListWidget.getRowLeft()+12, entryListTopY - 12, partyEntryListWidget.getRowWidth()-12*3-6, 12, Text.literal("Search..."));
searchField.setPlaceholder(SEARCH_TEXT);
searchField.setChangedListener(s -> partyEntryListWidget.setSearch(s));
// Refresh button
@@ -147,10 +149,28 @@ public class PartyFinderScreen extends Screen {
clickAndWaitForServer(refreshSlotId);
}
})
- .position(searchField.getX() + searchField.getWidth(), searchField.getY())
+ .position(searchField.getX() + searchField.getWidth()+12*2, searchField.getY())
.size(12, 12).build();
refreshButton.active = false;
+ // Prev and next page buttons
+ previousPageButton = ButtonWidget.builder(Text.literal("←"), (a) -> {
+ if (prevPageSlotId != -1) {
+ clickAndWaitForServer(prevPageSlotId);
+ }
+ })
+ .position(searchField.getX() + searchField.getWidth(), searchField.getY())
+ .size(12, 12).build();
+ previousPageButton.active = false;
+ nextPageButton = ButtonWidget.builder(Text.literal("→"), (a) -> {
+ if (nextPageSlotId != -1) {
+ clickAndWaitForServer(nextPageSlotId);
+ }
+ })
+ .position(searchField.getX() + searchField.getWidth()+12, searchField.getY())
+ .size(12, 12).build();
+ nextPageButton.active = false;
+
// Settings container
if (this.settingsContainer == null) this.settingsContainer = new FinderSettingsContainer(partyEntryListWidget.getRowLeft(), entryListTopY-12, widget_height+12);
else settingsContainer.setDimensionsAndPosition(partyEntryListWidget.getRowWidth()-2, widget_height+12, partyEntryListWidget.getRowLeft(), entryListTopY-12);
@@ -193,6 +213,8 @@ public class PartyFinderScreen extends Screen {
addDrawableChild(partyEntryListWidget);
addDrawableChild(searchField);
addDrawableChild(refreshButton);
+ addDrawableChild(previousPageButton);
+ addDrawableChild(nextPageButton);
addDrawableChild(partyFinderButton);
addDrawableChild(settingsButton);
addDrawableChild(createPartyButton);
@@ -228,6 +250,8 @@ public class PartyFinderScreen extends Screen {
context.drawText(textRenderer, "Truly a party finder", 20, 20, 0xFFFFFFFF, true);
context.drawText(textRenderer, currentPage.toString(), 0, 0, 0xFFFFFFFF, true);
context.drawText(textRenderer, String.valueOf(refreshSlotId), width - 25, 30, 0xFFFFFFFF, true);
+ context.drawText(textRenderer, String.valueOf(prevPageSlotId), width - 25, 40, 0xFFFFFFFF, true);
+ context.drawText(textRenderer, String.valueOf(nextPageSlotId), width - 25, 50, 0xFFFFFFFF, true);
for (int i = 0; i < handler.slots.size(); i++) {
context.drawItem(handler.slots.get(i).getStack(), (i % 9) * 16, (i / 9) * 16);
}
@@ -279,6 +303,8 @@ public class PartyFinderScreen extends Screen {
searchField.visible = true;
settingsContainer.setVisible(false);
refreshButton.visible = true;
+ previousPageButton.visible = true;
+ nextPageButton.visible = true;
} else if (page == Page.SETTINGS || page == Page.SIGN) {
partyEntryListWidget.visible = false;
@@ -292,6 +318,8 @@ public class PartyFinderScreen extends Screen {
searchField.visible = false;
settingsContainer.setVisible(true);
refreshButton.visible = false;
+ previousPageButton.visible = false;
+ nextPageButton.visible = false;
}
}
@@ -337,6 +365,8 @@ public class PartyFinderScreen extends Screen {
}
private void updatePartyFinderPage() {
+ previousPageButton.active = false;
+ nextPageButton.active = false;
List<PartyEntry> parties = new ArrayList<>();
if (currentPage != Page.FINDER) setCurrentPage(Page.FINDER);
if (handler.slots.stream().anyMatch(slot -> slot.hasStack() && slot.getStack().isOf(Items.BEDROCK))) {
@@ -347,6 +377,12 @@ public class PartyFinderScreen extends Screen {
if (slot.getStack().isOf(Items.PLAYER_HEAD)) {
assert this.client != null;
parties.add(new PartyEntry(slot.getStack().getTooltip(this.client.player, TooltipContext.BASIC), this, slot.id));
+ } else if (slot.getStack().isOf(Items.ARROW) && slot.getStack().getName().getString().toLowerCase().contains("previous")) {
+ prevPageSlotId = slot.id;
+ previousPageButton.active = true;
+ } else if (slot.getStack().isOf(Items.ARROW) && slot.getStack().getName().getString().toLowerCase().contains("next")) {
+ nextPageSlotId = slot.id;
+ nextPageButton.active = true;
}
}
}