Advertisement
spacechase0

Untitled

Jul 7th, 2017
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. 1. Separate manifest and mod assembly loading.
  2. Manifest loading would be the first thing to happen when the program runs. (Or `Program.AssertMinimumCompatibility` would need to be moved after manifest loading.)
  3. 2. Add a 'ModType' to manifest.
  4. Probably optional, defaults to... whatever the default is called (standard? default? ...)
  5. When mod assemblies are loaded, only "load" ^
  6. If an invalid mod type, print an error.
  7. Possibly change up IMod/Mod/...
  8. IMod { Monitor, ModManifest, Entry() }
  9. BaseMod : IMod, IDisposable {}
  10. Mod : BaseMod { Helper, ... }
  11. The reason being that most things in IModHelper don't make sense for a core mod (or theoretical types such as XNB mods)
  12. Dependencies only make sense for the standard type. An XNB mod wouldn't depend on anything.
  13. Maybe move to other fields? Or IModManifest -> AssemblyManifest, ...
  14. Since 'EntryDll' woudln't make sense for things like an XNB mod either
  15. 3. Add the core mod type (or whatever it will be called)
  16. CoreMod : BaseMod { <func name for modifying game>() }
  17. At this point, it might be a good idea to have a separate 'manager' for each mod type? Or not?
  18. These are loaded immediately after manifests, so that they can process the SDV assembly.
  19. Other:
  20. Do we want to allow multiple mod types? It would be convenient to have a mod be both a standard and core mod. However, core mods would have to be very careful not to touch classes/functions that reference the game itself.
  21. If not, we can check and enforce core mods not referencing the game.
  22. Possibly allow core mods to add new mod types? For example, Entoarox talked about doing simple Javascript mod support at one point. (Discord: search "in:#modding from: Entoarox#0580 Scripts", 3rd result)
  23. If so, possibly re-evaluate the previous point.
  24. I recall you not liking this idea before because of it blurring the line between mods and submods?
  25. Some other things that could use it (in theory, probably overkill for a lot of these): XNB loader (unless SMAPI adds support), Customize Exterior, Advanced Location Loader, Dynamic NPC Sprites, Custom NPCs/Critters/Farm Types/Furniture/Farming/...
  26. This would simplify things with mod managers at least.
  27. It would also provide a lot of power if multiple mod types are allowed
  28. A new ModBuildConfig would probably be a good idea for a core mod type - one that doesn't reference the game, but does reference Mono.Cecil
  29. ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement