Skip to content

Releases: cmkushnir/NMSModBuilder

3.90.0.1

29 May 05:32
b4baa7b
Compare
Choose a tag to compare
  • fix: update code to identify steam install location from alternate location.
  • change: built against libMBIN 3.88.0.2, so supports that version or later (comes w/ 3.91.0.1).
  • change: renamed Find and IndexOf to Bsearch and BsearchIndexOf to avoid
    confusion with scan methods.
  • fix: mbin viewer lang text did not update when lang id manually changed.
  • add: warnings when specify -p and can't find path, invalid path, can't determine release.

3.90.0.0

27 May 03:26
b4baa7b
Compare
Choose a tag to compare
  • warning when loading game that requires different libMBIN.dll version than link loaded by app.
  • additions to help with showin popup dialogs when a script runs.
  • improvements to libMBIN API tab, correctness and performance.
  • update spriv-cross.exe to latest from Vulkan SDK.
  • updates to query and mod/cmk scripts.

3.88.0.4

20 May 23:09
c190689
Compare
Choose a tag to compare
  • change: libMBIN API tab could take a long time to refresh when changing filter text.
  • change: update a couple more mbin's in Add_Decal script to better (?) support making many decals (100's or 1,000's).
  • change: small tweaks to try and make log more responsive in certain places.
  • update: Roslyn nuget from 4.1.0 to 4.2.0.

3.88.0.2

11 May 21:52
c190689
Compare
Choose a tag to compare
  • fix: Adjusted script locking to prevent (some|all?) deadlocks.
  • change: Log.Add nows calls Invoke instead of BeginInvoke so log entries appear
    as they are added, instead of being queued until ui thread scheduled.
    This may introduce new deadlocks, report your steps if you encounter a hang.
  • bug: There is still an outstanding issue with releasing assembly load contexts,
    you will see errors like "AssemblyLoadContext cmk_cmk_637878395229621213 failed to unload".
    These are relatively harmless, it just means there will be orphaned assemblies in memory
    until the app exits. Each orphaned assembly is usually ~127 KB.
    This can happen when a .NET API class caches a ref to the assembly,
    or an object created from the assembly.

3.88.0.1

07 May 13:11
c190689
Compare
Choose a tag to compare
  • change: log when cmk.NMS.Script.ModClass.SetLanguageText creates|extracts new lang mbin's.
  • change: add new using enum's and LangId to /Scripts/Util/(Global).cs.
  • change: move sln|proj helpers from ./Scripts/Mod/cmk/ to ./Scripts/.
  • change: update ./Scripts/Scripts.csproj to use .NET 6, and update ref paths.

3.88.0.3

15 May 14:15
c190689
Compare
Choose a tag to compare
3.88.0.3 Pre-release
Pre-release
  • fix: roll-back dispatcher.begininvoke to invoke change to Log,
    now calls begininvoke on add and invoke on clear.
  • change: make more script button click handlers async,
    as before not fully tested, may introduce new issues, please report steps if hangs.

3.85.1

22 Apr 16:31
ddbabc1
Compare
Choose a tag to compare

Hotfix for Outlaws update:

  • fix: support new overloaded methods in libMBIN to avoid "Ambiguous match" errors.
  • fix: update scripts as needed to work w/ game release 3.85 - 3.88.

3.87.0.0

24 Apr 17:18
ddbabc1
Compare
Choose a tag to compare
3.87.0.0 Pre-release
Pre-release

Pre-release, still some script toolbar enabled state issues.
Use clear-all button on script toolbar if other buttons get out-of-sync.

Mainly for users that want to start updating their scripts to use utility scripts, (Global), and remove namespaces.

  • change: Change code to find certain MBINC methods where there are now overloads to be resolved
    i.e. prevent FindMethod from throwing Ambiguous match errors.
  • change: File paths are displayed relative to app folder.
  • change: Version of libMBIN.dll add to Application tab log when loading|loaded game.
  • change: Mbin guid mismatch errors (mbin guid != libMBIN struct guid) are now only
    displayed if command-line option log_mbin_guid_mismatch is used.
  • change: Dds tab always calls DoSearch, so will now show e.g. "Showing 0 of 22539"
    instead of blank when no search string.
  • change: Substance and technologies tabs now use non-virtual lists for smooth scrolling,
    this results in a small delay the first time the tab is selected (~1 sec).
    Products still uses a virtual list for fast initial access, but results in stuttering
    when scrolling quickly as WPF regen's new items.
  • change: Significant refactoring of Roslyn based code.
  • add: Utility scripts tab. These scripts are compiled into an in-memory Assembly
    that is included in each Query project (per Query script), and the Mod project.
    These can contain any helper code that you'd like to use in 1+ Query|Mod script,
    they do no contain classes derived from the Query|Mod base script classes.
  • add: Query script list now has a (Global) script like Mod's.
    It is automatically included in each Query project (per Query script).
  • change: Query|Mod scripts no longer need to be defined in a namespace.
  • change: Query script base class changed from cmk.NMS.QueryScript to cmk.NMS.Script.QueryClass.
  • change: Mod script base class changed from cmk.NMS.ModScript to cmk.NMS.Script.ModClass.
  • change: Intellisense infomation logic updated (wip).
  • add: Script editors now display script name in toolbar (right-side).
  • add: Script editors now have search toolbar controls enabled.
  • change: Script tab controls enabled|disabled state updated based on availability logic (wip).
  • change: Mod scripts formalize two naming conventions:
    • (name) for scripts that are not displayed in Build tab and always executed.
    • [name] for play-as scripts that are not displayed in Build tab and only executed
      when another Mod script calls PlayAs().
  • add: New Mod script variables:
    • IsVisible: read-only, determines if script will be displayed in Build tab.
    • IsPlayAs: read-only, play-as scripts are not automatically executed in Build tab
      but can be executed by another script calling PlayAs().
    • IsExecutable: read-write, determines if script will be executed by Build Execute.
      Scripts can change this to effect what following scripts will Execute,
      e.g. (Configure) can do Mod().IsExecutable = false to disable script Blah
      programatically, as opposed to via checkboxes.
    • [NMSScriptDisabled] class attribute: if applied to a script class it will prevent
      instances of that class from being created. They will not be availble in the
      Build tab or to other scripts via Mod() or PlayAs().
  • change: Double-clicking on an item in the Build tab will no longer toggle its checked state,
    this was required to support multi-select, specifically Ctrl-double-click to select unselected item.
  • add: Use Shift-click to select a range of mods in the Build tab, then use + to check, - to uncheck,
    and / or \ to toggle check, all selected. Ctrl-click on a selected
    item will deselect it. Ctrl-double-click on an unselected item will select it.
  • fix: Ebin code was writing all Vector4f.t values as 4.

3.82.2.2

03 Apr 01:48
e09ee79
Compare
Choose a tag to compare
  • change, add, fix: legion, see change.log in NMSModBuilder.7z

3.82.1

03 Mar 18:47
01d2b36
Compare
Choose a tag to compare
  • fix: Pfim.Dds extensions
    3.82.0 created new Bgra32 data for certain Pfim formats, but wasn't using
    the new data when generating the BitmapSource - doh!.