Menü aufrufen
Toggle preferences menu
Persönliches Menü aufrufen
Nicht angemeldet
Ihre IP-Adresse wird öffentlich sichtbar sein, wenn Sie Änderungen vornehmen.

Version 0.5.0-SNAPSHOT Modding

Aus Underground Simulator Wiki
Die Druckversion wird nicht mehr unterstützt und kann Darstellungsfehler aufweisen. Bitte aktualisiere deine Browser-Lesezeichen und verwende stattdessen die Standard-Druckfunktion des Browsers.

Dies ist eine Seite über die Version 0.5.0-SNAPSHOT und Version 0.5.0. Falls ihr euch mit dem Modding im Underground Simulator nicht auskennt, empfiehlt sich der Guide Modding des Underground Simulator.

Worum geht es?

Die Version v0.5.0-SNAPSHOT ist ein umfangreiches Update und stellt einen wichtigen Meilenstein für das Modding des Underground Simulator dar. Auf dieser Seite wird erklärt, welche Änderungen vorgenommen wurden und wie diese umgesetzt sind.

Was gibt es Neues?

Theorie der Modularisierung

Die Idee hinter diesem Update ist die Modularisierung des Shopsystems. Das bedeutet, dass der Shop in einzelne, unabhängige Komponenten aufgeteilt wurde.

Ziel dieser Umstrukturierung:

  • einfachere Erweiterbarkeit
  • bessere Wartbarkeit
  • Unterstützung für Modding

Durch diese Struktur können neue Funktionen deutlich einfacher hinzugefügt werden, ohne bestehenden Code stark verändern zu müssen.

ShopItem

Konstruktor

Parameter

  • String: ID des Items
  • String: Anzeigename des Items
  • double: Preis des Items
  • String: Aktions-ID (z. B. addFahrer)
  • String: Value (frei definierbarer Zusatzwert)
  • int: Menge des Items

Werte & Felder

Siehe Konstruktorparameter.

Getter & Setter

  • id: getId()
  • name: getName()
  • price: getPrice(), setPrice(double)
  • action: getAction(), setAction(String)
  • value: getValue(), setValue(String)
  • amount: getAmount(), setAmount(int)

Erklärung

Diese Klasse dient zur Erstellung von ShopItems, die anschließend im ShopItemRegistry registriert werden.

Andere Methoden

---

ShopActionHandler

Interface

Methoden

boolean supports(String action) Prüft, ob dieser Handler die angegebene Aktion verarbeiten kann. Gibt true zurück, wenn dies der Fall ist, ansonsten false.

void execute(ShopItem si) throws Exception Führt die Aktion für das übergebene ShopItem aus. Die konkrete Implementierung liegt beim Entwickler (z. B. Hinzufügen zu Firma, Score etc.). Es ist auch möglich, dass keine Aktion erfolgt.

ShopItemRegistry

Die ShopItemRegistry verwaltet alle ShopItems und ShopActionHandler.

Sie ist verantwortlich für:

  • Speicherung der Items und Handler
  • Weiterleitung von Käufen an passende Handler

Werte & Felder

  • handlers: ArrayList<ShopActionHandler>
  • items: ArrayList<ShopItem>
  • buyed: HashMap<ShopItem, Integer>
  • this: ShopItemRegistry

Getter & Setter

  • items: getItems()
  • handlers: getHandlers()
  • this: getInstance()
  • buyed: getBuyed()

Methoden

register(ShopItem) – registriert ein ShopItem registerHandler(ShopActionHandler) – registriert einen Handler unregister(ShopItem) – entfernt ein ShopItem unregisterHandler(ShopActionHandler) – entfernt einen Handler handleBuy(ShopItem) – übergibt das Item an einen passenden Handler

ShopV3

Die neue Version des Shops wurde stark vereinfacht.

Der ursprüngliche Code (Shop.java) wurde von 102 Zeilen auf 38 Zeilen reduziert. Zwar wurden dafür zusätzliche Klassen eingeführt, jedoch ermöglicht dies eine deutlich bessere Erweiterbarkeit.

Durch die Modularisierung können nun viele neue Features umgesetzt werden, ohne den Hauptcode unnötig zu verkomplizieren.

Fazit

Die Modularisierung macht den Shop übersichtlicher, wartbarer und deutlich einfacher erweiterbar. Sie bildet die Grundlage für zukünftige Features und Modding-Erweiterungen.

Falls ihr Fehler oder Denkfehler im Code findet, meldet euch gerne: mir