Skip to content

Releases: 538Michael/UIInfoSuite2

v2.5.1

Choose a tag to compare

@538Michael 538Michael released this 20 Feb 05:49

What's Changed

Code cleanup

  • Add DrawAtNextIconPosition function to UIElementUtils — replaces duplicated icon positioning pattern across 7 files
  • Add DrawHoverTextOnCursor function to UIElementUtils — replaces duplicated hover text pattern across 8 files
  • Add DefaultIconScale constant to UIElementUtils — replaces magic number 8/3f across 3 files
  • Add DrawTextWithShadow function to UIElementUtils — replaces duplicated shadow text drawing in ShopHarvestPrices, LocationOfTownsfolk, and ShowItemHoverInformation
  • Add CreateNPCHeadIcon function in ShowItemHoverInformation — replaces duplicated NPC head icon creation for Gunther and Professor Snail

Full Changelog: v2.5.0...v2.5.1

v2.5.0

Choose a tag to compare

@538Michael 538Michael released this 20 Feb 04:24

What's Changed

  • Comprehensive performance optimization pass across the entire mod, targeting per-frame heap allocations, LINQ overhead, redundant computations, and unnecessary object creation in hot render/tick paths.

Highlights

  • Eliminated LINQ usage (.Where(), .Any(), .Select(), .Count(), .OrderBy(), .SequenceEqual()) from all render and tick paths, replacing with foreach loops and direct property checks
  • Cached MeasureString results for NPC names, price text, bundle banner widths, and level-up text to avoid repeated per-frame font measurements
  • Reused ClickableTextureComponent instances across frames instead of allocating new ones every frame for weather icons, Robin status, seasonal berry, Queen of Sauce, traveling merchant, and birthday icons
  • Implemented dirty flag pattern for birthday icons to avoid recreating UI components every frame
  • Cached formatted strings (ToString(), I18n calls, daily luck text) to avoid per-frame string allocations
  • Replaced per-animal string allocations in render loops with direct comparisons
  • Pre-computed static day sets for game state query evaluation
  • Reused StringBuilder, List, and Dictionary collections across frames via Clear() instead of allocating new ones
  • Cached TitleSafeArea viewport lookups in local variables
  • Fixed MeasureString width calculation using .X instead of .Length() (vector magnitude)

Full Changelog: v2.4.0...v2.5.0

v2.4.0

Choose a tag to compare

@538Michael 538Michael released this 18 Feb 02:56

What's New

Professor Snail Icon for Island Field Office Donations

  • Items needed for Professor Snail's Island Field Office now show an icon on hover tooltips, similar to the existing museum and community center icons
  • Supports all fossil/bone items (IDs 820-828), including items that fill multiple slots

Mastery Experience Bar

  • Added mastery experience bar for players at farming level 25+