From bd2d30f4bdf719ce6f90d1c19082b6512519f1b8 Mon Sep 17 00:00:00 2001 From: Waiting Idly <25394029+WaitingIdly@users.noreply.github.com> Date: Wed, 27 May 2026 07:48:57 -0700 Subject: [PATCH 1/6] add down buttons to quests/questlines --- .../gui2/editors/GuiPrerequisiteEditor.java | 27 ++++++++++++------- .../gui2/editors/GuiQuestLinesEditor.java | 24 +++++++++++------ 2 files changed, 34 insertions(+), 17 deletions(-) diff --git a/src/main/java/betterquesting/client/gui2/editors/GuiPrerequisiteEditor.java b/src/main/java/betterquesting/client/gui2/editors/GuiPrerequisiteEditor.java index fec4eb03f..7ebd48427 100644 --- a/src/main/java/betterquesting/client/gui2/editors/GuiPrerequisiteEditor.java +++ b/src/main/java/betterquesting/client/gui2/editors/GuiPrerequisiteEditor.java @@ -83,7 +83,7 @@ public void initPanel() { PanelTextBox panTxt = new PanelTextBox(new GuiTransform(GuiAlign.TOP_EDGE, new GuiPadding(0, 16, 0, -32), 0), QuestTranslation.translate("betterquesting.title.pre_requisites")).setAlignment(1); panTxt.setColor(PresetColor.TEXT_HEADER.getColor()); cvBackground.addPanel(panTxt); - btnLogic = new PanelButton(new GuiTransform(GuiAlign.TOP_RIGHT, -116, 8, 100, 16, 0), 8, QuestTranslation.translate("betterquesting.btn.logic") + ": " + quest.getProperty(NativeProps.LOGIC_QUEST)); + btnLogic = new PanelButton(new GuiTransform(GuiAlign.TOP_RIGHT, -116, 8, 100, 16, 0), 9, QuestTranslation.translate("betterquesting.btn.logic") + ": " + quest.getProperty(NativeProps.LOGIC_QUEST)); cvBackground.addPanel(btnLogic); cvBackground.addPanel(new PanelButton(new GuiTransform(GuiAlign.BOTTOM_CENTER, -100, -16, 200, 16, 0), 0, QuestTranslation.translate("gui.back"))); @@ -163,11 +163,11 @@ private void refreshReqCanvas() { List> arrReq = QuestDatabase.INSTANCE.bulkLookup(quest.getRequirements()); for (int i = 0; i < arrReq.size(); i++) { - PanelButtonStorage> btnEdit = new PanelButtonStorage<>(new GuiRectangle(0, i * 16, width - 48, 16, 0), 1, + PanelButtonStorage> btnEdit = new PanelButtonStorage<>(new GuiRectangle(0, i * 16, width - 40, 16, 0), 1, QuestTranslation.translate(arrReq.get(i).getValue().getProperty(NativeProps.NAME)), arrReq.get(i)); canvasPreReq.addPanel(btnEdit); - PanelButtonStorage> btnType = new PanelButtonStorage<>(new GuiRectangle(width - 48, i * 16, 16, 16, 0), 6, "", arrReq.get(i)); + PanelButtonStorage> btnType = new PanelButtonStorage<>(new GuiRectangle(width - 40, i * 16, 16, 16, 0), 6, "", arrReq.get(i)); int arrReqID = arrReq.get(i).getID(); btnType.setIcon(quest.getRequirementType(arrReqID).getIcon().getTexture()); if (quest.getRequirementType(arrReqID) == IQuest.RequirementType.NORMAL) @@ -178,11 +178,16 @@ else if (quest.getRequirementType(arrReqID) == IQuest.RequirementType.IMPLICIT) btnType.setTooltip(Collections.singletonList(QuestTranslation.translate("betterquesting.btn.visible_hidden"))); canvasPreReq.addPanel(btnType); - PanelButtonStorage> btnUp = new PanelButtonStorage<>(new GuiRectangle(width - 32, i * 16, 16, 16, 0), 7, "", arrReq.get(i)); + PanelButtonStorage> btnUp = new PanelButtonStorage<>(new GuiRectangle(width - 24, i * 16, 8, 8, 0), 7, "", arrReq.get(i)); btnUp.setIcon(PresetIcon.ICON_UP.getTexture()); btnUp.setActive(arrReq.size() > 1); canvasPreReq.addPanel(btnUp); + PanelButtonStorage> btnDown = new PanelButtonStorage<>(new GuiRectangle(width - 24, i * 16 + 8, 8, 8, 0), 8, "", arrReq.get(i)); + btnDown.setIcon(PresetIcon.ICON_DOWN.getTexture()); + btnDown.setActive(arrReq.size() > 1); + canvasPreReq.addPanel(btnDown); + PanelButtonStorage> btnRem = new PanelButtonStorage<>(new GuiRectangle(width - 16, i * 16, 16, 16, 0), 3, "", arrReq.get(i)); btnRem.setIcon(PresetIcon.ICON_NEGATIVE.getTexture()); canvasPreReq.addPanel(btnRem); @@ -231,11 +236,15 @@ private void onButtonPress(PEventButton event) { DBEntry entry = ((PanelButtonStorage>) btn).getStoredValue(); quest.setRequirementType(entry.getID(), quest.getRequirementType(entry.getID()).next()); SendChanges(); - } else if (btn.getButtonID() == 7) { // Reorder + } else if (btn.getButtonID() == 7) { // Reorder Up + DBEntry entry = ((PanelButtonStorage>) btn).getStoredValue(); + reorderReq(quest, entry.getID(), -1); + SendChanges(); + } else if (btn.getButtonID() == 8) { // Reorder Down DBEntry entry = ((PanelButtonStorage>) btn).getStoredValue(); - reorderReq(quest, entry.getID()); + reorderReq(quest, entry.getID(), 1); SendChanges(); - } else if (btn.getButtonID() == 8) { // Logic + } else if (btn.getButtonID() == 9) { // Logic EnumLogic[] logicList = EnumLogic.values(); EnumLogic logic = quest.getProperty(NativeProps.LOGIC_QUEST); logic = logicList[(logic.ordinal() + 1) % logicList.length]; @@ -253,7 +262,7 @@ private boolean containsReq(IQuest quest, int id) { return false; } - private void reorderReq(IQuest quest, int id) { + private void reorderReq(IQuest quest, int id, int direction) { int[] orig = quest.getRequirements(); int indexToShift = -1; @@ -266,7 +275,7 @@ private void reorderReq(IQuest quest, int id) { if (indexToShift < 0) return; - int indexFrom = (indexToShift - 1 + orig.length) % orig.length; + int indexFrom = (indexToShift + direction + orig.length) % orig.length; int tmp = orig[indexToShift]; orig[indexToShift] = orig[indexFrom]; orig[indexFrom] = tmp; diff --git a/src/main/java/betterquesting/client/gui2/editors/GuiQuestLinesEditor.java b/src/main/java/betterquesting/client/gui2/editors/GuiQuestLinesEditor.java index 254318bb7..bede0989e 100644 --- a/src/main/java/betterquesting/client/gui2/editors/GuiQuestLinesEditor.java +++ b/src/main/java/betterquesting/client/gui2/editors/GuiQuestLinesEditor.java @@ -170,7 +170,7 @@ public void onButtonClick() { btnDesign.setActive(selected != null); cvRight.addPanel(btnDesign); - btnTextEditor = new PanelButton(new GuiTransform(GuiAlign.TOP_RIGHT, new GuiPadding(-16, 48, 0, -64), 0), 8, "Aa"); + btnTextEditor = new PanelButton(new GuiTransform(GuiAlign.TOP_RIGHT, new GuiPadding(-16, 48, 0, -64), 0), 9, "Aa"); btnTextEditor.setActive(selected != null); cvRight.addPanel(btnTextEditor); @@ -290,8 +290,13 @@ private void onButtonPress(PEventButton event) { { DBEntry entry = ((PanelButtonStorage>) btn).getStoredValue(); int order = QuestLineDatabase.INSTANCE.getOrderIndex(entry.getID()); - if (order > 0) SendReorder(order); - } else if (btn.getButtonID() == 8) // Big Description Editor + if (order > 0) SendReorder(order, -1); + } else if (btn.getButtonID() == 7 && btn instanceof PanelButtonStorage) // Move Down + { + DBEntry entry = ((PanelButtonStorage>) btn).getStoredValue(); + int order = QuestLineDatabase.INSTANCE.getOrderIndex(entry.getID()); + if (order > 0) SendReorder(order, 1); + } else if (btn.getButtonID() == 9) // Big Description Editor { mc.displayGuiScreen(new GuiQuestDescEditor<>(this, selected, QuestTranslation.translate("betterquesting.title.edit_line"), () -> SendChanges(new DBEntry<>(selID, selected)))); } @@ -305,13 +310,16 @@ private void reloadList() { for (DBEntry entry : QuestLineDatabase.INSTANCE.getSortedEntries()) { IQuestLine ql = entry.getValue(); - PanelButtonStorage> tmp = new PanelButtonStorage<>(new GuiRectangle(0, i * 16, w - 32, 16, 0), 5, QuestTranslation.translate(ql.getUnlocalisedName()), entry); + PanelButtonStorage> tmp = new PanelButtonStorage<>(new GuiRectangle(0, i * 16, w - 24, 16, 0), 5, QuestTranslation.translate(ql.getUnlocalisedName()), entry); tmp.setActive(entry.getID() != selID); lineList.addPanel(tmp); - lineList.addPanel(new PanelButtonStorage<>(new GuiRectangle(w - 32, i * 16, 16, 16, 0), 6, "", entry).setIcon(PresetIcon.ICON_TRASH.getTexture())); - PanelButton btnUp = new PanelButtonStorage<>(new GuiRectangle(w - 16, i * 16, 16, 16, 0), 7, "", entry).setIcon(PresetIcon.ICON_UP.getTexture()); + PanelButton btnUp = new PanelButtonStorage<>(new GuiRectangle(w - 24, i * 16, 8, 8, 0), 7, "", entry).setIcon(PresetIcon.ICON_UP.getTexture()); btnUp.setActive(QuestLineDatabase.INSTANCE.getSortedEntries().size() > 1); lineList.addPanel(btnUp); + PanelButton btnDown = new PanelButtonStorage<>(new GuiRectangle(w - 24, i * 16 + 8, 8, 8, 0), 8, "", entry).setIcon(PresetIcon.ICON_DOWN.getTexture()); + btnDown.setActive(QuestLineDatabase.INSTANCE.getSortedEntries().size() > 1); + lineList.addPanel(btnDown); + lineList.addPanel(new PanelButtonStorage<>(new GuiRectangle(w - 16, i * 16, 16, 16, 0), 6, "", entry).setIcon(PresetIcon.ICON_TRASH.getTexture())); i++; } } @@ -328,7 +336,7 @@ private void SendChanges(DBEntry chapter) { NetChapterEdit.sendEdit(payload); } - private void SendReorder(int indexToShift) { + private void SendReorder(int indexToShift, int direction) { if (indexToShift < 0) return; List> entries = QuestLineDatabase.INSTANCE.getSortedEntries(); if (indexToShift >= entries.size()) return; @@ -337,7 +345,7 @@ private void SendReorder(int indexToShift) { chapterIDs[i] = entries.get(i).getID(); } - int indexFrom = (indexToShift - 1 + chapterIDs.length) % chapterIDs.length; + int indexFrom = (indexToShift + direction + chapterIDs.length) % chapterIDs.length; int tmp = chapterIDs[indexToShift]; chapterIDs[indexToShift] = chapterIDs[indexFrom]; chapterIDs[indexFrom] = tmp; From 3d0699a1acbfefcd50b54ce971e5a0f7e36e747b Mon Sep 17 00:00:00 2001 From: Waiting Idly <25394029+WaitingIdly@users.noreply.github.com> Date: Wed, 27 May 2026 07:49:07 -0700 Subject: [PATCH 2/6] add down buttons to tasks/rewards --- .../client/gui2/editors/GuiRewardEditor.java | 41 ++++++++++++++++++- .../client/gui2/editors/GuiTaskEditor.java | 41 ++++++++++++++++++- 2 files changed, 80 insertions(+), 2 deletions(-) diff --git a/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java b/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java index 45a4f986e..ff37a2acc 100644 --- a/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java +++ b/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java @@ -22,6 +22,7 @@ import betterquesting.api2.client.gui.panels.lists.CanvasScrolling; import betterquesting.api2.client.gui.panels.lists.CanvasSearch; import betterquesting.api2.client.gui.themes.presets.PresetColor; +import betterquesting.api2.client.gui.themes.presets.PresetIcon; import betterquesting.api2.client.gui.themes.presets.PresetLine; import betterquesting.api2.client.gui.themes.presets.PresetTexture; import betterquesting.api2.registry.IFactoryData; @@ -177,6 +178,14 @@ private void onButtonPress(PEventButton event) { SendChanges(); })); } + } else if (btn.getButtonID() == 4) { // Reorder Up + DBEntry reward = ((PanelButtonStorage>) btn).getStoredValue(); + reorderReq(quest, reward.getID(), -1); + SendChanges(); + } else if (btn.getButtonID() == 5) { // Reorder Down + DBEntry reward = ((PanelButtonStorage>) btn).getStoredValue(); + reorderReq(quest, reward.getID(), 1); + SendChanges(); } } @@ -188,11 +197,41 @@ private void refreshRewards() { for (int i = 0; i < dbRew.size(); i++) { IReward reward = dbRew.get(i).getValue(); - qrList.addPanel(new PanelButtonStorage<>(new GuiRectangle(0, i * 16, w - 16, 16, 0), 3, QuestTranslation.translate(reward.getUnlocalisedName()), reward)); + qrList.addPanel(new PanelButtonStorage<>(new GuiRectangle(0, i * 16, w - 24, 16, 0), 3, QuestTranslation.translate(reward.getUnlocalisedName()), reward)); + PanelButton btnUp = new PanelButtonStorage<>(new GuiRectangle(w - 24, i * 16, 8, 8, 0), 4, "", dbRew.get(i)).setIcon(PresetIcon.ICON_UP.getTexture()); + btnUp.setActive(dbRew.size() > 1); + qrList.addPanel(btnUp); + PanelButton btnDown = new PanelButtonStorage<>(new GuiRectangle(w - 24, i * 16 + 8, 8, 8, 0), 5, "", dbRew.get(i)).setIcon(PresetIcon.ICON_DOWN.getTexture()); + btnDown.setActive(dbRew.size() > 1); + qrList.addPanel(btnDown); qrList.addPanel(new PanelButtonStorage<>(new GuiRectangle(w - 16, i * 16, 16, 16, 0), 2, "" + TextFormatting.RED + TextFormatting.BOLD + "x", reward)); } } + private void reorderReq(IQuest quest, int id, int direction) { + var tasks = quest.getRewards(); + List> orig = tasks.getEntries(); + + int indexToShift = -1; + for (int i = 0; i < orig.size(); i++) { + if (orig.get(i).getID() == id) { + indexToShift = i; + break; + } + } + if (indexToShift < 0) + return; + + int indexFrom = (indexToShift + direction + orig.size()) % orig.size(); + DBEntry from = orig.get(indexFrom); + DBEntry to = orig.get(indexToShift); + + tasks.removeID(from.getID()); + tasks.removeID(to.getID()); + tasks.add(indexToShift, from.getValue()); + tasks.add(indexFrom, to.getValue()); + } + private void SendChanges() { NBTTagCompound payload = new NBTTagCompound(); NBTTagList dataList = new NBTTagList(); diff --git a/src/main/java/betterquesting/client/gui2/editors/GuiTaskEditor.java b/src/main/java/betterquesting/client/gui2/editors/GuiTaskEditor.java index 8e6f49d1d..72d071b01 100644 --- a/src/main/java/betterquesting/client/gui2/editors/GuiTaskEditor.java +++ b/src/main/java/betterquesting/client/gui2/editors/GuiTaskEditor.java @@ -22,6 +22,7 @@ import betterquesting.api2.client.gui.panels.lists.CanvasScrolling; import betterquesting.api2.client.gui.panels.lists.CanvasSearch; import betterquesting.api2.client.gui.themes.presets.PresetColor; +import betterquesting.api2.client.gui.themes.presets.PresetIcon; import betterquesting.api2.client.gui.themes.presets.PresetLine; import betterquesting.api2.client.gui.themes.presets.PresetTexture; import betterquesting.api2.registry.IFactoryData; @@ -177,6 +178,14 @@ private void onButtonPress(PEventButton event) { SendChanges(); })); } + } else if (btn.getButtonID() == 4) { // Reorder Up + DBEntry task = ((PanelButtonStorage>) btn).getStoredValue(); + reorderReq(quest, task.getID(), -1); + SendChanges(); + } else if (btn.getButtonID() == 5) { // Reorder Down + DBEntry task = ((PanelButtonStorage>) btn).getStoredValue(); + reorderReq(quest, task.getID(), 1); + SendChanges(); } } @@ -188,11 +197,41 @@ private void refreshTasks() { for (int i = 0; i < dbTsk.size(); i++) { ITask task = dbTsk.get(i).getValue(); - qtList.addPanel(new PanelButtonStorage<>(new GuiRectangle(0, i * 16, w - 16, 16, 0), 3, QuestTranslation.translate(task.getUnlocalisedName()), task)); + qtList.addPanel(new PanelButtonStorage<>(new GuiRectangle(0, i * 16, w - 24, 16, 0), 3, QuestTranslation.translate(task.getUnlocalisedName()), task)); + PanelButton btnUp = new PanelButtonStorage<>(new GuiRectangle(w - 24, i * 16, 8, 8, 0), 4, "", dbTsk.get(i)).setIcon(PresetIcon.ICON_UP.getTexture()); + btnUp.setActive(dbTsk.size() > 1); + qtList.addPanel(btnUp); + PanelButton btnDown = new PanelButtonStorage<>(new GuiRectangle(w - 24, i * 16 + 8, 8, 8, 0), 5, "", dbTsk.get(i)).setIcon(PresetIcon.ICON_DOWN.getTexture()); + btnDown.setActive(dbTsk.size() > 1); + qtList.addPanel(btnDown); qtList.addPanel(new PanelButtonStorage<>(new GuiRectangle(w - 16, i * 16, 16, 16, 0), 2, "" + TextFormatting.RED + TextFormatting.BOLD + "x", task)); } } + private void reorderReq(IQuest quest, int id, int direction) { + var tasks = quest.getTasks(); + List> orig = tasks.getEntries(); + + int indexToShift = -1; + for (int i = 0; i < orig.size(); i++) { + if (orig.get(i).getID() == id) { + indexToShift = i; + break; + } + } + if (indexToShift < 0) + return; + + int indexFrom = (indexToShift + direction + orig.size()) % orig.size(); + DBEntry from = orig.get(indexFrom); + DBEntry to = orig.get(indexToShift); + + tasks.removeID(from.getID()); + tasks.removeID(to.getID()); + tasks.add(indexToShift, from.getValue()); + tasks.add(indexFrom, to.getValue()); + } + private void SendChanges() { NBTTagCompound payload = new NBTTagCompound(); NBTTagList dataList = new NBTTagList(); From c6a9d0562c2e7670465a5d669531dc004c2639da Mon Sep 17 00:00:00 2001 From: Waiting Idly <25394029+WaitingIdly@users.noreply.github.com> Date: Wed, 27 May 2026 07:53:42 -0700 Subject: [PATCH 3/6] rename local --- .../client/gui2/editors/GuiRewardEditor.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java b/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java index ff37a2acc..b55d77f91 100644 --- a/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java +++ b/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java @@ -209,8 +209,8 @@ private void refreshRewards() { } private void reorderReq(IQuest quest, int id, int direction) { - var tasks = quest.getRewards(); - List> orig = tasks.getEntries(); + var rewards = quest.getRewards(); + List> orig = rewards.getEntries(); int indexToShift = -1; for (int i = 0; i < orig.size(); i++) { @@ -226,10 +226,10 @@ private void reorderReq(IQuest quest, int id, int direction) { DBEntry from = orig.get(indexFrom); DBEntry to = orig.get(indexToShift); - tasks.removeID(from.getID()); - tasks.removeID(to.getID()); - tasks.add(indexToShift, from.getValue()); - tasks.add(indexFrom, to.getValue()); + rewards.removeID(from.getID()); + rewards.removeID(to.getID()); + rewards.add(indexToShift, from.getValue()); + rewards.add(indexFrom, to.getValue()); } private void SendChanges() { From 957259de04435b581af951902f97fd9644e33c78 Mon Sep 17 00:00:00 2001 From: Waiting Idly <25394029+WaitingIdly@users.noreply.github.com> Date: Wed, 27 May 2026 07:56:13 -0700 Subject: [PATCH 4/6] simplify tasks/rewards --- .../client/gui2/editors/GuiRewardEditor.java | 15 ++++----------- .../client/gui2/editors/GuiTaskEditor.java | 15 ++++----------- 2 files changed, 8 insertions(+), 22 deletions(-) diff --git a/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java b/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java index b55d77f91..29732b634 100644 --- a/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java +++ b/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java @@ -208,20 +208,13 @@ private void refreshRewards() { } } - private void reorderReq(IQuest quest, int id, int direction) { - var rewards = quest.getRewards(); - List> orig = rewards.getEntries(); - - int indexToShift = -1; - for (int i = 0; i < orig.size(); i++) { - if (orig.get(i).getID() == id) { - indexToShift = i; - break; - } - } + private void reorderReq(IQuest quest, int indexToShift, int direction) { if (indexToShift < 0) return; + var rewards = quest.getRewards(); + List> orig = rewards.getEntries(); + int indexFrom = (indexToShift + direction + orig.size()) % orig.size(); DBEntry from = orig.get(indexFrom); DBEntry to = orig.get(indexToShift); diff --git a/src/main/java/betterquesting/client/gui2/editors/GuiTaskEditor.java b/src/main/java/betterquesting/client/gui2/editors/GuiTaskEditor.java index 72d071b01..7cc43746b 100644 --- a/src/main/java/betterquesting/client/gui2/editors/GuiTaskEditor.java +++ b/src/main/java/betterquesting/client/gui2/editors/GuiTaskEditor.java @@ -208,20 +208,13 @@ private void refreshTasks() { } } - private void reorderReq(IQuest quest, int id, int direction) { - var tasks = quest.getTasks(); - List> orig = tasks.getEntries(); - - int indexToShift = -1; - for (int i = 0; i < orig.size(); i++) { - if (orig.get(i).getID() == id) { - indexToShift = i; - break; - } - } + private void reorderReq(IQuest quest, int indexToShift, int direction) { if (indexToShift < 0) return; + var tasks = quest.getTasks(); + List> orig = tasks.getEntries(); + int indexFrom = (indexToShift + direction + orig.size()) % orig.size(); DBEntry from = orig.get(indexFrom); DBEntry to = orig.get(indexToShift); From 87cb97c5bc8909fd5e6d78b098e59bb22a515ed0 Mon Sep 17 00:00:00 2001 From: Waiting Idly <25394029+WaitingIdly@users.noreply.github.com> Date: Wed, 27 May 2026 08:00:32 -0700 Subject: [PATCH 5/6] simplify tasks/rewards again --- .../client/gui2/editors/GuiRewardEditor.java | 15 +++++++-------- .../client/gui2/editors/GuiTaskEditor.java | 15 +++++++-------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java b/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java index 29732b634..04aa3ab28 100644 --- a/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java +++ b/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java @@ -213,16 +213,15 @@ private void reorderReq(IQuest quest, int indexToShift, int direction) { return; var rewards = quest.getRewards(); - List> orig = rewards.getEntries(); - int indexFrom = (indexToShift + direction + orig.size()) % orig.size(); - DBEntry from = orig.get(indexFrom); - DBEntry to = orig.get(indexToShift); + int indexFrom = (indexToShift + direction + rewards.size()) % rewards.size(); + IReward from = rewards.getValue(indexFrom); + IReward to = rewards.getValue(indexToShift); - rewards.removeID(from.getID()); - rewards.removeID(to.getID()); - rewards.add(indexToShift, from.getValue()); - rewards.add(indexFrom, to.getValue()); + rewards.removeID(indexFrom); + rewards.removeID(indexToShift); + rewards.add(indexToShift, from); + rewards.add(indexFrom, to); } private void SendChanges() { diff --git a/src/main/java/betterquesting/client/gui2/editors/GuiTaskEditor.java b/src/main/java/betterquesting/client/gui2/editors/GuiTaskEditor.java index 7cc43746b..25c67b3c5 100644 --- a/src/main/java/betterquesting/client/gui2/editors/GuiTaskEditor.java +++ b/src/main/java/betterquesting/client/gui2/editors/GuiTaskEditor.java @@ -213,16 +213,15 @@ private void reorderReq(IQuest quest, int indexToShift, int direction) { return; var tasks = quest.getTasks(); - List> orig = tasks.getEntries(); - int indexFrom = (indexToShift + direction + orig.size()) % orig.size(); - DBEntry from = orig.get(indexFrom); - DBEntry to = orig.get(indexToShift); + int indexFrom = (indexToShift + direction + tasks.size()) % tasks.size(); + ITask from = tasks.getValue(indexFrom); + ITask to = tasks.getValue(indexToShift); - tasks.removeID(from.getID()); - tasks.removeID(to.getID()); - tasks.add(indexToShift, from.getValue()); - tasks.add(indexFrom, to.getValue()); + tasks.removeID(indexFrom); + tasks.removeID(indexToShift); + tasks.add(indexToShift, from); + tasks.add(indexFrom, to); } private void SendChanges() { From 1bf8a31dad9569bf9e7d1bd24dfc70b7b255e98f Mon Sep 17 00:00:00 2001 From: Waiting Idly <25394029+WaitingIdly@users.noreply.github.com> Date: Wed, 27 May 2026 08:50:33 -0700 Subject: [PATCH 6/6] move arrows to the left side --- .../client/gui2/editors/GuiPrerequisiteEditor.java | 8 ++++---- .../client/gui2/editors/GuiQuestLinesEditor.java | 6 +++--- .../client/gui2/editors/GuiRewardEditor.java | 6 +++--- .../betterquesting/client/gui2/editors/GuiTaskEditor.java | 6 +++--- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/main/java/betterquesting/client/gui2/editors/GuiPrerequisiteEditor.java b/src/main/java/betterquesting/client/gui2/editors/GuiPrerequisiteEditor.java index 7ebd48427..6f2eaa99d 100644 --- a/src/main/java/betterquesting/client/gui2/editors/GuiPrerequisiteEditor.java +++ b/src/main/java/betterquesting/client/gui2/editors/GuiPrerequisiteEditor.java @@ -163,11 +163,11 @@ private void refreshReqCanvas() { List> arrReq = QuestDatabase.INSTANCE.bulkLookup(quest.getRequirements()); for (int i = 0; i < arrReq.size(); i++) { - PanelButtonStorage> btnEdit = new PanelButtonStorage<>(new GuiRectangle(0, i * 16, width - 40, 16, 0), 1, + PanelButtonStorage> btnEdit = new PanelButtonStorage<>(new GuiRectangle(8, i * 16, width - 40, 16, 0), 1, QuestTranslation.translate(arrReq.get(i).getValue().getProperty(NativeProps.NAME)), arrReq.get(i)); canvasPreReq.addPanel(btnEdit); - PanelButtonStorage> btnType = new PanelButtonStorage<>(new GuiRectangle(width - 40, i * 16, 16, 16, 0), 6, "", arrReq.get(i)); + PanelButtonStorage> btnType = new PanelButtonStorage<>(new GuiRectangle(width - 32, i * 16, 16, 16, 0), 6, "", arrReq.get(i)); int arrReqID = arrReq.get(i).getID(); btnType.setIcon(quest.getRequirementType(arrReqID).getIcon().getTexture()); if (quest.getRequirementType(arrReqID) == IQuest.RequirementType.NORMAL) @@ -178,12 +178,12 @@ else if (quest.getRequirementType(arrReqID) == IQuest.RequirementType.IMPLICIT) btnType.setTooltip(Collections.singletonList(QuestTranslation.translate("betterquesting.btn.visible_hidden"))); canvasPreReq.addPanel(btnType); - PanelButtonStorage> btnUp = new PanelButtonStorage<>(new GuiRectangle(width - 24, i * 16, 8, 8, 0), 7, "", arrReq.get(i)); + PanelButtonStorage> btnUp = new PanelButtonStorage<>(new GuiRectangle(0, i * 16, 8, 8, 0), 7, "", arrReq.get(i)); btnUp.setIcon(PresetIcon.ICON_UP.getTexture()); btnUp.setActive(arrReq.size() > 1); canvasPreReq.addPanel(btnUp); - PanelButtonStorage> btnDown = new PanelButtonStorage<>(new GuiRectangle(width - 24, i * 16 + 8, 8, 8, 0), 8, "", arrReq.get(i)); + PanelButtonStorage> btnDown = new PanelButtonStorage<>(new GuiRectangle(0, i * 16 + 8, 8, 8, 0), 8, "", arrReq.get(i)); btnDown.setIcon(PresetIcon.ICON_DOWN.getTexture()); btnDown.setActive(arrReq.size() > 1); canvasPreReq.addPanel(btnDown); diff --git a/src/main/java/betterquesting/client/gui2/editors/GuiQuestLinesEditor.java b/src/main/java/betterquesting/client/gui2/editors/GuiQuestLinesEditor.java index bede0989e..3f44fae08 100644 --- a/src/main/java/betterquesting/client/gui2/editors/GuiQuestLinesEditor.java +++ b/src/main/java/betterquesting/client/gui2/editors/GuiQuestLinesEditor.java @@ -310,13 +310,13 @@ private void reloadList() { for (DBEntry entry : QuestLineDatabase.INSTANCE.getSortedEntries()) { IQuestLine ql = entry.getValue(); - PanelButtonStorage> tmp = new PanelButtonStorage<>(new GuiRectangle(0, i * 16, w - 24, 16, 0), 5, QuestTranslation.translate(ql.getUnlocalisedName()), entry); + PanelButtonStorage> tmp = new PanelButtonStorage<>(new GuiRectangle(8, i * 16, w - 24, 16, 0), 5, QuestTranslation.translate(ql.getUnlocalisedName()), entry); tmp.setActive(entry.getID() != selID); lineList.addPanel(tmp); - PanelButton btnUp = new PanelButtonStorage<>(new GuiRectangle(w - 24, i * 16, 8, 8, 0), 7, "", entry).setIcon(PresetIcon.ICON_UP.getTexture()); + PanelButton btnUp = new PanelButtonStorage<>(new GuiRectangle(0, i * 16, 8, 8, 0), 7, "", entry).setIcon(PresetIcon.ICON_UP.getTexture()); btnUp.setActive(QuestLineDatabase.INSTANCE.getSortedEntries().size() > 1); lineList.addPanel(btnUp); - PanelButton btnDown = new PanelButtonStorage<>(new GuiRectangle(w - 24, i * 16 + 8, 8, 8, 0), 8, "", entry).setIcon(PresetIcon.ICON_DOWN.getTexture()); + PanelButton btnDown = new PanelButtonStorage<>(new GuiRectangle(0, i * 16 + 8, 8, 8, 0), 8, "", entry).setIcon(PresetIcon.ICON_DOWN.getTexture()); btnDown.setActive(QuestLineDatabase.INSTANCE.getSortedEntries().size() > 1); lineList.addPanel(btnDown); lineList.addPanel(new PanelButtonStorage<>(new GuiRectangle(w - 16, i * 16, 16, 16, 0), 6, "", entry).setIcon(PresetIcon.ICON_TRASH.getTexture())); diff --git a/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java b/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java index 04aa3ab28..b1f155db8 100644 --- a/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java +++ b/src/main/java/betterquesting/client/gui2/editors/GuiRewardEditor.java @@ -197,11 +197,11 @@ private void refreshRewards() { for (int i = 0; i < dbRew.size(); i++) { IReward reward = dbRew.get(i).getValue(); - qrList.addPanel(new PanelButtonStorage<>(new GuiRectangle(0, i * 16, w - 24, 16, 0), 3, QuestTranslation.translate(reward.getUnlocalisedName()), reward)); - PanelButton btnUp = new PanelButtonStorage<>(new GuiRectangle(w - 24, i * 16, 8, 8, 0), 4, "", dbRew.get(i)).setIcon(PresetIcon.ICON_UP.getTexture()); + qrList.addPanel(new PanelButtonStorage<>(new GuiRectangle(8, i * 16, w - 24, 16, 0), 3, QuestTranslation.translate(reward.getUnlocalisedName()), reward)); + PanelButton btnUp = new PanelButtonStorage<>(new GuiRectangle(0, i * 16, 8, 8, 0), 4, "", dbRew.get(i)).setIcon(PresetIcon.ICON_UP.getTexture()); btnUp.setActive(dbRew.size() > 1); qrList.addPanel(btnUp); - PanelButton btnDown = new PanelButtonStorage<>(new GuiRectangle(w - 24, i * 16 + 8, 8, 8, 0), 5, "", dbRew.get(i)).setIcon(PresetIcon.ICON_DOWN.getTexture()); + PanelButton btnDown = new PanelButtonStorage<>(new GuiRectangle(0, i * 16 + 8, 8, 8, 0), 5, "", dbRew.get(i)).setIcon(PresetIcon.ICON_DOWN.getTexture()); btnDown.setActive(dbRew.size() > 1); qrList.addPanel(btnDown); qrList.addPanel(new PanelButtonStorage<>(new GuiRectangle(w - 16, i * 16, 16, 16, 0), 2, "" + TextFormatting.RED + TextFormatting.BOLD + "x", reward)); diff --git a/src/main/java/betterquesting/client/gui2/editors/GuiTaskEditor.java b/src/main/java/betterquesting/client/gui2/editors/GuiTaskEditor.java index 25c67b3c5..f18a2bf06 100644 --- a/src/main/java/betterquesting/client/gui2/editors/GuiTaskEditor.java +++ b/src/main/java/betterquesting/client/gui2/editors/GuiTaskEditor.java @@ -197,11 +197,11 @@ private void refreshTasks() { for (int i = 0; i < dbTsk.size(); i++) { ITask task = dbTsk.get(i).getValue(); - qtList.addPanel(new PanelButtonStorage<>(new GuiRectangle(0, i * 16, w - 24, 16, 0), 3, QuestTranslation.translate(task.getUnlocalisedName()), task)); - PanelButton btnUp = new PanelButtonStorage<>(new GuiRectangle(w - 24, i * 16, 8, 8, 0), 4, "", dbTsk.get(i)).setIcon(PresetIcon.ICON_UP.getTexture()); + qtList.addPanel(new PanelButtonStorage<>(new GuiRectangle(8, i * 16, w - 24, 16, 0), 3, QuestTranslation.translate(task.getUnlocalisedName()), task)); + PanelButton btnUp = new PanelButtonStorage<>(new GuiRectangle(0, i * 16, 8, 8, 0), 4, "", dbTsk.get(i)).setIcon(PresetIcon.ICON_UP.getTexture()); btnUp.setActive(dbTsk.size() > 1); qtList.addPanel(btnUp); - PanelButton btnDown = new PanelButtonStorage<>(new GuiRectangle(w - 24, i * 16 + 8, 8, 8, 0), 5, "", dbTsk.get(i)).setIcon(PresetIcon.ICON_DOWN.getTexture()); + PanelButton btnDown = new PanelButtonStorage<>(new GuiRectangle(0, i * 16 + 8, 8, 8, 0), 5, "", dbTsk.get(i)).setIcon(PresetIcon.ICON_DOWN.getTexture()); btnDown.setActive(dbTsk.size() > 1); qtList.addPanel(btnDown); qtList.addPanel(new PanelButtonStorage<>(new GuiRectangle(w - 16, i * 16, 16, 16, 0), 2, "" + TextFormatting.RED + TextFormatting.BOLD + "x", task));