Skip to content
This repository was archived by the owner on Feb 28, 2024. It is now read-only.
This repository was archived by the owner on Feb 28, 2024. It is now read-only.

NML2 #25

@l-2-j

Description

@l-2-j

A list of changes that would be neat to have whenever a breaking change is done:

  • Move the mod info to standard attributes
  • Add a mod description attribute? People seem to want this.
  • Expose a convenient helper getter for a mod specific HarmonyInstance in NeosMod (which could be lazily initialized on first access)
  • Unloading/reloading of mods (could always unpatch said harmony instance)
  • Determine if any mod actually uses the semver configs, axe it if it's unused.
  • Move the IncompatibleConfigurationHandlingOption method into the builder. It's just chilling all alone in the NeosMod class now.
  • Just generally cleanup everything
  • Properly handle nulls.
  • Remove deprecated APIs
  • Investigate if switching to dotnet6 would be beneficial
  • do a sweep of mandatory/optional parameters for various APIs and make sure it all makes sense
  • split mod config key name into separate fields for serialized name and display name
    • serialized name would be what's used in the json
    • display name can be shown in config managers
    • could be done via the form of a general metadata system with a few "known" keys or sumthing
  • Config validators
    • For example min/max support for numeric configs. People probably want to use this to make sliders.
    • Perhaps checking a combination of conflicting configs to ensure they're not enabled at once?
  • let applications skip potentially expensive string building for debug logs if debug isn't even enabled
    • Could be done via a Func<string> that handles building the text
    • Could be done via simply exposing an IsDebugEnabled() method
  • migrate from Newtonsoft.Json to System.Text.Json to fix the normal and headless clients needing distinct builds

@zkxs has also added stuff to this

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions