Skip to content

MapDefinitionSO hat keinen Laufzeitkonsumenten — Konsument geben oder abschaffen #127

Description

@cubetribe

Aufgefallen bei Paket 22.3, als die sechste literale Kopie der kanonischen Feldlage beseitigt wurde.

Befund

MapDefinitionSO wird von Assets/_Project/Editor/BootstrapSceneGenerator.cs beschrieben — Kartenname, Biom, Maße, HQ-Mitten, Feldzellen. Gelesen wird es außerhalb von Editor/ von niemandem. Der Typ existiert, das Asset (MAP_Glutrinne.asset) existiert, und kein Laufzeitcode fragt es je.

Genau deshalb ist niemandem aufgefallen, dass sein Inhalt seit Sprint 21 falsch war: es trug die alte Fünf-Felder-Lage, während MatchBootstrap fünfzehn registriert, und der Kommentar daneben behauptete, es sei „the five fields MatchBootstrap registers".

Seit #125 liest der Generator die Lage aus MatchBootstrap.CanonicalFieldCells und CanonicalHqCentreCells. Der Inhalt stimmt jetzt. Die Frage dahinter ist damit aber nicht beantwortet.

Die Entscheidung

Es gibt genau zwei Möglichkeiten, und ein Drittes gibt es nicht:

  1. MapDefinitionSO bekommt einen Konsumenten. Dann ist es die datengetriebene Kartendefinition, als die es gedacht war — und MatchBootstraps Tabelle sollte mittelfristig von dort kommen statt umgekehrt. Das wäre der Weg zu mehr als einer Karte.
  2. Es verschwindet. Dann fallen Typ, Asset und der halbe Generator-Abschnitt weg, und die kanonische Lage steht nur noch dort, wo sie gebraucht wird.

Solange keins von beidem passiert, ist es ein gepflegtes Artefakt ohne Zweck — und die nächste Kartenänderung muss es wieder mitziehen, ohne dass jemand sagen kann, wofür.

Zusammenhang

Hängt an der Frage, ob HashKrieg mehr als eine Karte bekommen soll. Vor dieser Entscheidung ist Variante 2 die ehrlichere, danach vermutlich Variante 1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    entscheidungBraucht eine Entscheidung, keine Umsetzung

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions