Heyho,
Wollte mal fragen, wie ihr folgenden Ansatz einschätzt und ob er für Modder bequem genug ist.
Erst einmal gibt es das CreateModLib Tool. Dieses Tool nimmt die aktuelle Version von The Forest (somit bleibt die Mod API versionsunabhängig) und erstellt quasi Leercode aus den vorhandenen Klassen. Der entstandene Code wird in eine dll kompiliert und fungiert dann als ModLib.
In seinem Projekt fügt man nun einen Verweis zu dieser ModLib hinzu und kann dort dann Subclasses der in der ModLib existenten Klassen erstellen.
Wenn ich z.B. die TheForestAtmosphere ändern möchte, würde die Klasse folgendermaßen aussehen;:
Den Originalcode kann man dann natürlich entfernen, indem man die base.TimeLapse() nicht mehr aufruft. Zusätzlich wird es wohl noch das ein oder andere Attribut geben, um z.B. Inkompatibilitäten zu umgehen zwischen mehreren Mods oder eben Mods auch als inkompatibel mit Mod XY zu flaggen.
Nun benutzt man das CreateMod Tool, welches den erstellten Code in eine .mod-Datei schreibt, in der sich der IL Code und Anweisungen für den ModLoader befinden, wie dieser einzufügen ist.
Der Benutzer wählt nun aus einer Liste an Mods aus und der ModLoader deassemblet die CSharp-Assembly.dll, fügt den IL Code an den richtigen Stellen ein, assemblet sie wieder und startet das Spiel.
Ist das Modder- und Userfreundlich genug?
Wollte mal fragen, wie ihr folgenden Ansatz einschätzt und ob er für Modder bequem genug ist.
Erst einmal gibt es das CreateModLib Tool. Dieses Tool nimmt die aktuelle Version von The Forest (somit bleibt die Mod API versionsunabhängig) und erstellt quasi Leercode aus den vorhandenen Klassen. Der entstandene Code wird in eine dll kompiliert und fungiert dann als ModLib.
In seinem Projekt fügt man nun einen Verweis zu dieser ModLib hinzu und kann dort dann Subclasses der in der ModLib existenten Klassen erstellen.
Wenn ich z.B. die TheForestAtmosphere ändern möchte, würde die Klasse folgendermaßen aussehen;:
Den Originalcode kann man dann natürlich entfernen, indem man die base.TimeLapse() nicht mehr aufruft. Zusätzlich wird es wohl noch das ein oder andere Attribut geben, um z.B. Inkompatibilitäten zu umgehen zwischen mehreren Mods oder eben Mods auch als inkompatibel mit Mod XY zu flaggen.
Nun benutzt man das CreateMod Tool, welches den erstellten Code in eine .mod-Datei schreibt, in der sich der IL Code und Anweisungen für den ModLoader befinden, wie dieser einzufügen ist.
Der Benutzer wählt nun aus einer Liste an Mods aus und der ModLoader deassemblet die CSharp-Assembly.dll, fügt den IL Code an den richtigen Stellen ein, assemblet sie wieder und startet das Spiel.
Ist das Modder- und Userfreundlich genug?