moin,
in der Theorie funktioniert ja alles in Anno über die Pools, das sind, einfach gesagt, Töpfe zum Sortieren. Am bekanntesten sind wohl die Item-Pools, weil sie durch verschiedene Mods ergänzt bzw aufgefüllt wurden und sich bei "falscher" Programmierung auch mal selbst reduzieren.
Pools gibt es aber auch für Schiffe, einen Pool für alle Schiffe, einen für Handelsschiffe, einen für Kriegsschiffe, einen für Segelschiffe und einen für Dampfschiffe. Grundsätzlich kann ein Schiff (wie auch ein Item) in mehreren Pools sein, es müssen aber auch mindestens zwei Pools sein, um ins Spiel zu kommen, die Basisgruppe und die Kategorie. Ein Item müßte z.b. in der Basisgruppe für Händleritems sein und in der Kategorie für Handelskammer, Schiffe usw.
Dazu kommen dann noch andere Pools, z.b. in der Werft gebaut, Handels- oder Charterroute, Kosten usw.
Ein Schiff müßte erstmal dem Pool "Alle Schiffe" zugeordnet werden, dann der Kategorie wie z.b. Segelschiffe und der Unterkategorie Kriegs- oder Handelsschiff. Dann muß man es noch irgendwo kaufen oder bauen können, also mind ein weiterer Pool.
Die Definitionen in den Templates sind Basiskonfigurationen, also Teil des Basispools. Schiffe, die diesem Pool zugeordnet werden, erben also diese Settings. Wird das Schiff dann einer Kategorie zugeordnet, können dort diese geerbten Settings überschrieben werden, müssen es aber nicht. Das gleiche Spiel noch einmal in der Unterkategorie. bis am Ende die Schiffssettings selbst definiert werden.
Bau ich nun ein komplett neues Schiff, muß ich diesem Schiff zuerst die Pools zuweisen oder halt einen komplett neuen Pool erstellen. Letzteres wird aber eine sehr komplexe Geschichte, weil man dazu bis tief in die Basis muß.
Im Allgemeinen werden beim Modding die vorhandenen Pools genutzt und dann abgeändert. Best Solution ist dabei eine neue GUID, sonst ändert man ggf auch bestehende Schiffe. Um nun z.b. die <MaxTradeActionsPerStation> dieses Schiffstyps herauszufinden, arbeitet man sich entweder durch den Code oder man definiert es einfach nicht und schaut, was vererbt wurde (learning by doing)
Will ich z.b. meinen handelsüblichen Schoner aufpeppen, müßte man diverse Pools abändern, weil eben dieser Schoner schon in diverse Gruppen eingeteilt ist. Grundsätzlich wäre das machbar, sieht aber optisch blöd aus, wenn der Schoner da plötzlich als Speedboot umher rast und 5000 to Ware transportieren kann.
Damit das Ganze dann funktioniert, müssen die Typ-Definitionen richtig gesetzt werden. AddNextSibling fügt ein neues Geschwisterchen einem bestehenden Pool hinzu, merge verbindet vorhandene Definitionen mit neu hinzugekommenen, ersetzt aber keine vorhandenen. Replace ersetzt nur vorhandene Definitionen usw.