Replies: 3 comments 2 replies
-
Das wäre schonmal ein guter Vorschlag. Ich will trotzdem mal eine Übersicht geben um das ganze Problem etwas detailierter zu beleuchten.
Während die ersten beiden Dateien sicherlich problemlos zu versionieren sind macht die content.xml genau das Problem, was wir auch schon in der *camaign-File haben: Es fasst mehrere separate Code-Teile in einer Datei zusammen. Wenn wir sauberen Code versionieren wollen reicht es also nicht "nur" die Kampagne zu entpacken. Wir werden wohl oder übel auch noch eine XML-Datei aufteilen und wieder zusammenstöpseln müssen. Dazu sollten wir uns mal überlegen wie wir das am besten hinbekommen und wie das am sinnvollsten ist. Mein naiver Erstvorschlag diesbezüglich wäre jetzt einfach mal folgendes: Wir schreiben ein "kleines" Skript, welches wir manuell ausführen können. Dieses sollen dann im 1. Schritt eine *.campaing-Datei entzippen, ODER aus der Ordnerstruktur eine *.zip-Datei zusammenstellen für den Release. Selbiges könnten wir auch für die content.XML machen. Wobei es hier schon schwieriger wird, da die einzelnen Makros Tokens zugeordnet sind. Außerdem gibt es auch auf dem Kampagnen- und dem SL-Fenster Makros, welche jedoch sehr klein sind und meist nur einen Aufruf auf ein Lib:Token-Makro machen. Die könnten wir also erstmal ignorieren. Man könnte also ein Skript schreiben, welches die Makros der einzelnen Lib:Tokens als separate Datei extrahiert. Natürlich bräuchten wir dann auch hier wieder ein Gegenstück um die Makros wieder zu einem Lib:Token zusammenzubauen. Da alles XML ist sollte das nicht sonderlich schwer, aber u.U. etwas aufwändig sein. Ich hoffe ich habe damit etwas Klarheit geschaffen wie der aktuelle Stand ist und was möglich wäre. Lass gerne mal deine Meinung und Vorschläge hören was du für sinnvoll erachten würdest. |
Beta Was this translation helpful? Give feedback.
-
Ich habe mich mal bemüht die content.xml etwas näher zu analysieren. Ich glaube ich habe jetzt genug Wissen zusammen um zu beschreiben wie man vorgehen könnte:
Wenn Token: Den Innhalt von als Makro-Datei auslagern. Dabei XML-Sequenzen beachten. Die ausgelagerte Datei sollte so heißen wie unter angegeben ist. Wenn CampaignPanel: Vorsicht! Auslagern wird erstmal ein kleines Problem machen da hier HTML-Icons sind die sich nicht als Dateinamen eignen. Natürlich könnte man auch als Dateinamen nehmen da dieser eindeutig ist. Da hier jedoch nur winzige Makros liegen die oft nur auf ein Token-Makro verweisen mein Vorschlag: Erstmal so lassen. Ich schlage vor das ...-Tag zu ersetzen durch so etwas wie in der Hoffnung dass Maptool diese Syntax nicht irgendwie intern nutzt und wir das ganze wieder eindeutig rückführen können. |
Beta Was this translation helpful? Give feedback.
-
Ich habe mal angefangen ein CLI Tool mit Javascript zu schreiben. Konnte meine Testkampagne splitten und wieder mergen und die hat danach auch funktioniert :D https://github.com/Naxos84/maptool-campaign-tool.git um das laufen zu lassen braucht es NodeJS |
Beta Was this translation helpful? Give feedback.
-
Die resultierende Kampagnen Datei ist ja auch nur ein "zip-File".
Wäre es dann vielleicht besser, wenn wir den Inhalt in github als Versionsverwaltung packen, damit man sehen kann was/wann/von wem geändert wurde?
Und das "fertige" Kampagnen File dann unter releases bereit stellt?
Dazu müssten die Dateien die dann hier in der Versionskontrolle liegen theoretisch einfach nur gezippt werden und das "zip-File" in ".cmpgn" umbenannt werden.
Beta Was this translation helpful? Give feedback.
All reactions