1 Synthetische Profilfixtures
Batista82 edited this page 2026-07-30 18:22:36 +02:00

Synthetische Profil- und Modfixtures

Zweck

Phase 2 verwendet eigene Bastelhof-Fixturedateien, um Profil- und Modlogik ohne echte SCS-Profile oder Moddateien zu testen.

Diese Dateien sind keine SCS-Formatbeschreibung.

Profildatei

Dateiendung:

*.btmprofile.json

Beispiel:

{
  "id": "11111111-1111-1111-1111-111111111111",
  "game": "ets2",
  "displayName": "Synthetisches Profil",
  "mods": [
    {
      "manifestPath": "mods/connector/btm_mod.json",
      "priority": 10,
      "isEnabled": true
    },
    {
      "id": "map",
      "name": "Kartenmod",
      "version": "2.0",
      "priority": 20,
      "isMapMod": true,
      "isEnabled": true,
      "dependencies": ["connector"]
    }
  ]
}

Modmanifest

Dateiname:

btm_mod.json

Beispiel:

{
  "id": "connector",
  "name": "Connector",
  "version": "1.0",
  "isMapMod": true,
  "dependencies": []
}

Regeln

  • game ist ets2 oder ats.
  • manifestPath wird relativ zur Profildatei aufgelöst.
  • Inline-Mods müssen id und name enthalten.
  • Profileinträge mit packagePath und ohne id/name werden über manifest.sii im lokalen Modpaket aufgelöst.
  • Manifestbasierte Mods verwenden das Verzeichnis der btm_mod.json als Paketpfad.
  • Deaktivierte Mods bleiben im Profil, werden aber aus der aktiven Ladereihenfolge gefiltert.
  • Der Modkombinations-Hash wird nur aus aktiven Mods gebildet.

Versionierte Phase-2-Fixtures

Die aktuellen Entwicklungsfixtures liegen unter:

tests/Fixtures/Phase2/

Die Struktur enthält:

  • profile.btmprofile.json als synthetisches ETS2-Profil.
  • base/ als synthetische Basisspielquelle.
  • mods/connector/ als aktive Abhängigkeitsmod.
  • mods/map-expansion/ als aktive Kartenmod mit Dateikonflikt zu base/.
  • mods/disabled-pack/ als deaktivierte Mod, deren Dateien nicht in der aktiven VFS-Sicht erscheinen dürfen.

Alle Inhalte sind eigene synthetische Textdateien und beschreiben kein reales SCS- oder Spielprofilformat.

Profil-Arbeitsbereich

Die WinUI-App kann ein synthetisches Profil-Arbeitsverzeichnis manuell laden.

Mindeststruktur:

workspace/
├── profile.btmprofile.json
├── base/
└── mods/

Optionale DLC-Quellen können unter dlc/ liegen:

workspace/
└── dlc/
    ├── dlc_fixture/
    └── dlc_fixture.scs

base/, DLC-Verzeichnisse und Modverzeichnisse werden als read-only Quellen in das virtuelle Dateisystem eingebunden. ZIP-basierte .scs-Dateien werden ebenfalls unterstützt. HashFS-basierte .scs-Dateien werden erkannt und diagnostiziert, aber noch nicht nativ gelesen.

Eigene Bastelhof-Metadatendateien wie btm_mod.json werden aus Modquellen herausgefiltert und erscheinen nicht als virtuelle Spieldateien.