Skip to content

Releases: cmkushnir/NMSModBuilder

4.12.0.4

21 Mar 02:58
084b30b
Compare
Choose a tag to compare

Requires libmbin >= 4.12.1.1 (included)

  • change:
    • Add Sleep(1) hack to Log.Add method (will likely be removed in future version)
    • Add AutoSelect to custom listbox control, set to false
      for search tab lists so as to not cause a flood of
      selection changed events after search completes,
      each of which would call clipboard settext.
  • update:
    • Octokit NuGet package from 5.0.0 to 5.0.2.
    • Roslyn NuGet package from 4.4.0 to 4.5.0.

4.10.0.0

03 Mar 01:29
ba4e23d
Compare
Choose a tag to compare

Requires libmbin >= 4.10.0.2

  • fix:
    • NMS.PAK.MBIN.Data.Save was not passing Log to libmbin methods,
      thus potentially loosing any errors reported by libmbin.
    • PAK Item tab not reloading item if it's pak is updated e.g. mod pak rebuilt.
    • script ProgressReport no longer takes script object as a parameter to
      remove the chance of it accidently pinning the script assembly.
    • NMSAttribute.Size was mislabled as Length.
  • change:
    • handle changes introduced in NMS "4.1".
    • refactor how NMSAttribute's are queried and handled.
    • refactor how MBINC enums and fake enum's are handled.
    • libMBIN tab enum list now shows bitmap enums in bold,
      and values as binary with hex and dec value in tooltip.
  • add:
    • libmbin API tab, add enum name to array fields indexed by an enum.
  • update:
    • Octokit NuGet package from 4.0.3 to 5.0.0.
    • Pfim NuGet package from 0.11.1 to 0.11.2.

4.6.0.4

24 Dec 02:16
8772e4d
Compare
Choose a tag to compare

4.6.0.4: libmbin >= 4.6.0.1

  • add:
    • selecting a result in one of the search tabs will copy the item path to the clipboard.
    • when the right pak item tab selection changes, the left search tabs will
      try to find and select an entry that contains the path. does not change
      current selection if no match found.
    • double-clicking a script error log item will select that script,
      scroll to error location, set cursor to error location, and set focus to editor.
  • change:
    • Dialog.SelectFolder now uses System.Windows.Forms.FolderBrowserDialog
      instead of custom WPF cmk.SelectFolderDialog.
    • Log viewers shows selected line with yellow background.
    • Auto-scrolling ListBox sets selected item to last item when item added.
  • update:
    • Code completion symbols.
    • Tooltips.
    • Avalon Edit NuGet package from 6.1.3.50 to 6.2.0.78.
      Minor bug fixes and changes framework dep from .NET 5 to .NET 6.

4.6.0.3

05 Dec 13:04
334ea0f
Compare
Choose a tag to compare
  • fix
    • MBINC class support older libmbin w/o implicit string conversion methods.
    • saving a pak item with multiple '.' in name was truncating part of name,
      e.g. WARPLARGEPORTAL.SCENE.MBIN => WARPLARGEPORTAL.MBIN
  • change:
    • add assembly name and version to "is a blah not a blah" error messages
      e.g. "path is a blah not a blah" => "path is a libmbin:4.3.0.1 blah not a libmbin:4.6.0.1 blah"
    • double-click main icon in recipe tab opens dds in PAK Item tab,
      previously only did this for substance, product, technology tabs.
      Ingredient icons do not pass double-click to parent, so they don't work.
    • resize PAK Item tab viewer icons to match other icon sizes.
    • first line of ebin from "EBIN: " to "EBIN "
      to make it easier to parse by 3rd party tools.
  • add
    • Language tab double-click on entry opens entry in right-side PAK Item tab.
  • update:
    • Octokit NuGet package from 4.0.2 to 4.0.3.

4.6.0.2

25 Nov 15:28
334ea0f
Compare
Choose a tag to compare
  • fix:
    • public AS_T CreateMbin<AS_T>( string PATH, bool NORMALIZE = true, AS_T NMSTEMPLATE = null, bool LOG = true )
      Wasn't creating a header for the raw mbin stream when passed a NMSTEMPLATE.
  • update:
    • Octokit NuGet package from 4.0.1 to 4.0.2.
    • MS Roslyn NuGet package from 4.3.1 to 4.4.0.

4.6.0.1

24 Nov 17:49
334ea0f
Compare
Choose a tag to compare
4.6.0.1 Pre-release
Pre-release
  • fix:
    • uncomment Reset call when file changed, was preventing compiled assembly from being
      released when a script was edited externally, which in turn prevented the toolbar
      buttons from updating, which in turn prevented recompiling the assembly.
  • change:
    • PAK Item tab Paste now uses regex to extract item path from clipboard text.
    • number of warnings and failures added to Build tab "Finished executing all mods ..." log entry.
    • ebin highlighting for enum assignments e.g. fooEnum.bar in "blah = fooEnum.bar"
    • public AS_T CreateMbin<AS_T>( string PATH, bool NORMALIZE = true, bool LOG = true )
      to
      public AS_T CreateMbin<AS_T>( string PATH, bool NORMALIZE = true, AS_T NMSTEMPLATE = null, bool LOG = true )
  • add:
    • Summary of multiple scripts that extracted a given modified item rolled into app instead of being in script.
    • PAK Item tab has another toolbar combobox to select the lhs pak item tree.
      Can only select if rhs tree is a mod.

4.6.0.0

08 Nov 22:46
966f864
Compare
Choose a tag to compare

libmbin >= 4.5.0.2

  • add:
    • Search Text tab now has optional path filter.
  • change:
    • modified lines in text diff views now highlight modified pieces, not just lines,
      the diffplex alg to identify modified pieces is 'per word' so hex diff will not be exact.
    • ebin will now print header, even if it can't decompile mbin (so can see header version | guid).
    • Scripts.csproj target updated to match app in order to remove warning when using in VS or VS Code.
  • fix:
    • util (Global) script enum's,and cmk mod scripts, broken by recent game update.

4.5.0.0

22 Oct 10:01
d6cdecd
Compare
Choose a tag to compare

includes and requires libmbin >= 4.4.0.3

  • fix:
    • Log GUID mismatch was checking mbin header class guid not raw guid,
      so would never log a mismatch warning.
  • update:
    • Octokit NuGet package from 4.0.0 to 4.0.1.
  • change:
    • conflict mod paks sorted by load order (was sorted by mbinc version then load order).
    • game pub release versions are formatted as #.## or #.##.#.
      exp releases use 4th version part and are formatted as "#.## exp #" or "#.##.# exp #".
    • mbinc pub version formatted as "#.##" or "#.##.#".
      mbinc pre version formatted as "#.##.#-pre#" if command-line pre option specified, else "#.##.#.#".
    • 'play-as' changed to 'profile' in code and documentation.
    • substance, product, tech tabs move ID after name (compress view of data).
  • add:
    • detected Xbox Game Pass instance can auto-load on start using lx command-line option.
    • command-line option pre, to use pre notation for mbinc versions.
    • text editor search box now shows previous result index based on cursor position
      e.g. "10 / 32" instead of just "32".
    • compiler Analyzer NMSMB0001: error if a script contains a static field or property,
      they can lead to the generated Assembly being pinned, which prevents them and the containing ALC from being unloaded.
    • substance name now includes its symbol.
    • libmbin api tab, add selected struct guid to name in toolbar.
    • pak item tab, add mbin header guid to ebin (2nd line, before path).
    • PAK Item tab toolbar now includes buttons for all available viewers|differs for selected item,
      including any added by plugins.
    • hex viewer that can be used to view any pak item.
      note: hex differ is per line, but doesn't highlight the changes on the line,
      a future update may fix this by updating the text diff logic to return and highlight sub-line changes.
    • substance, product, tech tabs have toggle button on toolbar to incude requirement ids & names in search.
    • recipe tabs have toggle button on toolbar to incude ingredient ids & names in search.

4.3.0.0

13 Oct 00:09
a9451f3
Compare
Choose a tag to compare
  • update:
    • libmbin 4.3.0.2
  • change:
    • cmk.NMS.Script.GetLanguage*() and SetLanguage*() methods reworked to avoid pulling
      language mbin's into mod DataCache unless they are going to be updated.
    • Scripts/Mod/cmk/Lang_All_English.cs rewritten to use updated|new language methods.
    • cmk.NMS.PAK.File.Builder now breaks save and compress loop into two loops.
      The save loop saves each item and logs any unedited items,
      the compress loop compresses edited items and adds them to the mod pak stream.
      This should help identify long builds due to many unedited items in DataCache;
      scripts should be reworked to avoid those cases.

See change.log for notes on new|updated language methods.

4.0.0.2

11 Oct 02:49
c273de3
Compare
Choose a tag to compare
4.0.0.2 Pre-release
Pre-release
  • fix:
    • cmk.NMS.Game.Language.Collection.FindLanguageInfo was taking a language id arg that
      was always null, resulting in it always returning the info for the current language.
      The method does not need an arg, it should always use the Collection Identifier.
  • update:
    • cmk mod script Lang_All_English. added Cancel checks, added ProgressReport calls,
      new optimized method that uses new GetLanguage mod script method.
      note: ProgressReport report updates both Script tab and Build tab toolbars.
    • GitHub Octokit NuGet package from 3.0.0 to 4.0.0.
  • change:
    • rename util script Global LangId to LanguageId (to be consistant w/ code).
    • rename cmk.NMS.Script.GetLanguageGamePrefixes to GetGameLanguagePrefixes.
    • rename cmk.NMS.Script.GetLanguageAddedPrefixes to GetAddedLanguagePrefixes.
    • GetLanguageData loops through all GetLanguagePrefixes in parallel to look for ID.
    • GitHub Octokit extensions to replace deprecated methods.
  • add:
    • List cmk.NMS.Script.GetLanguage( NMS.Game.Language.Identifier IDENTIFIER )
      to get a sorted list snapshot of all ID's for IDENTIFIER, including any cached and|or
      new ID's in from new prefixes. List sorted on TkLocalisationEntry.Id using string.Compare.
    • cmk.NMS.Script.GetLanguagePrefixes to get currently cached prefixes.
    • cmk.NMS.Script.GetLanguageEntry like GetLanguageData but returns cached TkLocalisationEntry.
    • progress report textbox to Build tab.
  • notes:
    • if doing infrequent language changes (< 10,000) then can just use SetLanguageText,
      if doing a lot then use GetLanguage, Bsearch, Ref to find and change entries.
    • libmbin 4.0.0.2.