8.6 KiB
Item Information – Zusammenlegung der Item-Helper
Ziel
Item prices, Item charges und das neue Feature Banked items werden unter einem gemeinsamen Helper zusammengeführt.
Empfohlener Name:
Item information
Alternativen: Item details, Item info.
Der Nutzer soll einen einzigen Hauptschalter haben. Die einzelnen Informationsarten bleiben per Rechtsklick separat aktivierbar.
Aktueller Zustand
Item prices
Implementierung: helpers/ItemPriceOverlay.java
- Hover-Tooltip über Inventar- und Bank-Items
- GE-Preis
- High-Alchemy-Wert
- Mengen werden berücksichtigt
- Coins und Platinum-Tokens werden ignoriert
- Optionen:
Show GE priceShow HA price
Item charges
Implementierung:
-
helpers/ItemCharges.java -
helpers/ItemChargesOverlay.java -
Permanente Werte direkt auf Item-Icons
-
Inventar
-
Ausrüstung
-
optional Bank
-
Unterstützt viele Charge-/Füllstandsquellen, unter anderem:
- Varbits
- Barrows
- Moon-Ausrüstung
- Blowpipe mit mehreren Werten
- Dragonfire-Schilde
- Schmuck und Tränke
- Bags, Pouches und Container
- Master Scroll Book
- weitere Spezialitems
-
Optionen:
Show weapons and armorShow looting and coal bagsShow charges in bank- Textgröße
- Low-Charge-Warnschwelle
- Primärfarbe
- Sekundärfarbe
- Warnfarbe
- gespeicherte Charges zurücksetzen
- Coal-Bag-Daten vergessen
Neues Feature: Banked items
Beim Hover über ein Item soll im Tooltip zusätzlich die Bankmenge erscheinen.
Beispiel:
GE: 12.3k gp HA: 4.8k gp
Banked: 300
Regeln:
- Die Bankmenge wird nur angezeigt, wenn sie bekannt ist.
- Bei unbekanntem Bestand keine
Banked: 0-Zeile anzeigen. - Noted und unnoted Items müssen zusammengefasst werden.
- Die Zuordnung muss über
ItemManager.canonicalize()erfolgen. - Bei geöffneter Bank ist der Live-Bankcontainer maßgeblich.
- Bei geschlossener Bank wird der zuletzt bekannte Bankbestand verwendet.
- Bankänderungen müssen über
ItemContainerChangedberücksichtigt werden. - Die bestehende Bank-/Container-Speicherung des Plugins soll wiederverwendet werden.
Zieloberfläche
In der Helpers-Karte gibt es nur noch eine Checkbox:
Item information
Tooltip:
Shows item prices, banked quantities and charge information. Right-click for options.
Die bisherigen Checkboxen Item prices und Item charges entfallen.
Ziel-Rechtsklick-Menü
Informationsarten
Show GE priceShow High Alchemy valueShow banked quantityShow item charges
Charge-Kategorien
Nur relevant, wenn Show item charges aktiv ist:
Weapons and armorBags and containers
Die bestehende Option Show charges in bank wird in den Bereich Anzeigeorte verschoben.
Anzeigeorte
Preise und Bankmengen sind Hover-Informationen:
Show in inventoryShow in bank
Charges sind Icon-Informationen:
Show charges in inventoryShow charges in equipmentShow charges in bank
Falls eine zu große Anzahl an Optionen vermieden werden soll, kann Show in inventory entfallen, weil Inventar standardmäßig immer aktiv ist. Dann bleibt nur:
Show in bankShow charges in equipment
Darstellung
Text sizePrimary colorSecondary colorWarning color
Warnungen
Low-charge warning mit:
Off≤ 10≤ 50≤ 100≤ 500≤ 1000
Datenverwaltung
Reset saved chargesForget coal bag
Zurücksetzen
Reset appearance
Tooltip-Design
Der bestehende Preis-Tooltip soll zu einem gemeinsamen Tooltip-Builder erweitert werden.
Empfohlene Reihenfolge:
- GE-Preis
- High-Alchemy-Wert
- Bankmenge
Beispiel mit allen Informationen:
GE: 12.3k gp HA: 4.8k gp
Banked: 300
Wenn nur einzelne Informationen aktiviert sind, werden nur diese Zeilen ausgegeben.
Die Charge-Werte bleiben auf den Item-Icons und werden nicht in den Hover-Tooltip verschoben, außer dies wird später ausdrücklich gewünscht.
Empfohlene interne Struktur
Gemeinsamer Helper-Schalter
Neuer Hauptschlüssel:
itemInformation
Mögliche neue Unteroptionen:
itemInformationGe
itemInformationHa
itemInformationBanked
itemInformationCharges
itemInformationChargesWeapons
itemInformationChargesBags
itemInformationBank
itemInformationEquipment
itemInformationSize
itemInformationColor
itemInformationSecondaryColor
itemInformationLowColor
itemInformationLowAt
Die genaue Benennung kann noch angepasst werden. Wichtig ist ein einheitliches Präfix.
Overlay-Struktur
Empfohlene Varianten:
ItemInformationOverlayübernimmt den Hover-Tooltip und ruft Preis- und Banked-Provider auf.ItemChargesOverlaybleibt für die Icon-Anzeige bestehen.- Beide verwenden denselben gemeinsamen Hauptschalter und dieselben zentralen Optionen.
Damit muss die komplexe Charge-Logik nicht unnötig mit der Tooltip-Logik vermischt werden.
Alternativ kann der bestehende ItemPriceOverlay umbenannt und erweitert werden. Inhaltlich sollte er aber als allgemeiner Item-Information-Tooltip behandelt werden.
Bankbestand
Für den Bankbestand sollte keine neue parallele Speicherung eingeführt werden, wenn die vorhandenen Plugin-Daten verwendet werden können.
Benötigt wird eine Methode nach diesem Muster:
long getBankedQuantity(int itemId)
Die Methode sollte:
- die Item-ID kanonisieren
- noted/unnoted zusammenführen
- die aktuelle Bank bevorzugen, wenn sie geöffnet ist
- ansonsten den letzten bekannten Bestand verwenden
- bei unbekanntem Item
0oder einen klar unterscheidbaren „unknown“-Zustand liefern
Wichtig: 0 darf nicht automatisch als „unbekannt“ interpretiert werden. Ein bekannter leerer Bestand und ein unbekannter Bestand müssen unterscheidbar sein.
Rückwärtskompatibilität
Bestehende Konfigurationswerte sollen zunächst gelesen werden können:
itemPricesitemPricesGeitemPricesHaitemChargesitemChargesWeaponsitemChargesBagsitemChargesBankitemChargesSizeitemChargesColoritemChargesSecondaryColoritemChargesLowColoritemChargesLowAt
Mögliche Strategie:
- Neuer Hauptschalter verwendet neue Keys.
- Falls neue Keys noch nicht existieren, werden die alten Werte als Fallback gelesen.
- Alte Einstellungen werden nicht sofort gelöscht.
- Ein späterer Migrationsschritt kann alte Keys übernehmen oder dauerhaft weiter unterstützen.
Tests
Vor der Implementierung sollten die vorhandenen Tests ausgeführt werden. Relevant sind insbesondere:
ItemChargesTestItemChargesFullTest- Bank-/Container-Tests
- Tests für
ItemManager.canonicalize()-Verhalten, falls vorhanden
Neue Tests sollten abdecken:
- GE-Preis allein
- HA-Wert allein
- GE und HA zusammen
- Bankmenge bei normalem Item
- Bankmenge bei noted/unnoted Kombination
- unbekannter Bankbestand wird nicht angezeigt
- bekannter Bankbestand von
0 - Bankbestand aktualisiert sich nach Containeränderung
- gemeinsamer Hauptschalter deaktiviert beide Overlay-Arten
- Charge-Unteroptionen bleiben funktionsfähig
- alte Konfigurationswerte werden korrekt übernommen
- Tooltip erscheint nicht bei Coins/Platinum, sofern das bestehende Verhalten beibehalten werden soll
Offene Fragen vor der Implementierung
- Soll der endgültige Name
Item information,Item detailsoderItem infosein? - Soll
Banked: 0bei bekannt leerem Bestand angezeigt werden oder komplett entfallen? - Soll der Bankbestand auch beim Hover über ein Item im Bankfenster selbst angezeigt werden?
- Soll die Bankmenge inklusive Items im Inventar angezeigt werden oder ausschließlich der Bestand in der Bank?
- Soll
Show in inventoryentfallen, weil Inventar immer aktiv sein soll? - Sollen Preise und Bankmenge optional auch auf Item-Icons statt nur im Tooltip erscheinen?
- Soll die Anzeige von Charges im Bankfenster weiterhin separat schaltbar sein?
- Soll eine gemeinsame Farbe für alle Tooltip-Zeilen verwendet werden oder behalten GE/HA/Banked eigene Farben?
- Sollen die alten Config-Keys dauerhaft unterstützt oder nur einmalig migriert werden?
- Soll das neue Feature standardmäßig deaktiviert bleiben, wie die bisherigen Helper?
Empfohlene Standardentscheidung
Für eine einfache und übersichtliche erste Version:
- Name:
Item information - Ein Hauptschalter
- GE, HA, Banked und Charges separat toggelbar
- Inventar immer aktiv
- Bank-Hover separat toggelbar
- Equipment-Charges separat toggelbar
- Banked zählt nur Bankbestand, nicht Inventar
- unbekannter Bestand wird nicht angezeigt
- vorhandene Charge-Unteroptionen bleiben erhalten
- alte Config-Keys werden als Fallback unterstützt
- Tooltip-Informationen bleiben getrennt von den Charge-Zahlen auf Item-Icons