Commit Graph
4617 Commits
Author SHA1 Message Date
Jesse Plamondon-Willard 1070761192 prefer empty collection expression 2026-03-28 23:52:50 -04:00
Jesse Plamondon-Willard 677dd94b61 update Korean translations
Thanks to To2morrow on Nexus!
2026-03-27 23:59:34 -04:00
Jesse Plamondon-Willard 45216fe62b reduce allocations in collection watchers 2026-03-27 23:59:33 -04:00
Jesse Plamondon-Willard aaa23edc49 use cached HasListeners in ManagedEvent.Raise for simplicity 2026-03-27 23:59:33 -04:00
Jesse Plamondon-Willard e4f42f961b avoid redundant set.Contains before Add/Remove 2026-03-27 23:59:33 -04:00
Jesse Plamondon-Willard a6b5b3260a avoid Math.sqrt call in gamepad deadzone handling 2026-03-27 23:59:33 -04:00
Jesse Plamondon-Willard d9d33c5949 reduce remaining uses of LINQ on warmer paths 2026-03-27 23:59:33 -04:00
Jesse Plamondon-Willard 06ebc8d049 avoid unneeded OrderBy(…) in AssemblyLoader 2026-03-27 23:59:33 -04:00
Jesse Plamondon-Willard 2194fa6f28 avoid Any() on warmer paths
This is typically much slower than equivalent manual checks.
2026-03-27 23:59:33 -04:00
Jesse Plamondon-Willard 7bc3595e66 avoid Union() enumerator in player inventory tracking 2026-03-26 22:42:35 -04:00
Jesse Plamondon-Willard db59d384b9 avoid Where() enumerators when possible 2026-03-26 22:42:35 -04:00
Jesse Plamondon-Willard da888ba9b0 avoid ToArray() copies when possible 2026-03-26 22:42:35 -04:00
Jesse Plamondon-Willard 42238538bd remove Distinct() in inventory tracking
These cover very rare edge cases with invalid inventory data, so it's not really worth the added performance hit of handling them. The next commits will avoid the error if duplicates do occur.
2026-03-26 22:42:35 -04:00
Jesse Plamondon-Willard 67dff9ea7a avoid unneeded inventory scan in PlayerTracker.TryGetInventoryChanges
We already have the current inventory (as of the last update) in `this.CurrentInventory`, which is usually what we want to diff against.
2026-03-26 22:42:35 -04:00
Jesse Plamondon-Willard 88c2250738 add OS platform type to temporary stats 2026-03-26 22:42:35 -04:00
Jesse Plamondon-Willard 87bfc1b093 split up extension files 2026-03-26 00:48:58 -04:00
Jesse Plamondon-Willard bdf5b0eb48 migrate to extension blocks 2026-03-26 00:48:57 -04:00
Jesse Plamondon-Willard 38bb6704e9 replace obsolete actions/attest-build-provenance action with actions/attest 2026-03-24 23:34:13 -04:00
Jesse Plamondon-Willard 549a8a8013 update actions/checkout action to fix Node version warning 2026-03-24 23:34:13 -04:00
Jesse Plamondon-Willard 8e568888a7 fix release artifact getting double-zipped in build workflow 2026-03-24 23:34:13 -04:00
Jesse Plamondon-Willard daf6b1050d optimize input button tracking
This replaces `ButtonStates` dictionaries with `PressedButtons` sets, which...
- reduces allocations (since most buttons aren't down at any given time);
- reduces iteration (and a yield generator in `GamePadStateBuilder.GetPressedGamePadButtons()`) for filling pressed buttons;
- and simplifies change tracking.
2026-03-24 21:53:38 -04:00
Jesse Plamondon-Willard 3474f49c8c reduce allocations when applying input overrides 2026-03-24 00:07:36 -04:00
Jesse Plamondon-Willard f7bc2d96f5 avoid .Any() on hot paths
This allocates an enumerator unnecessarily if we already have the count available.
2026-03-22 23:15:38 -04:00
Jesse Plamondon-Willard b4462786e7 prevent mutable access to tracked button states 2026-03-22 22:54:52 -04:00
Jesse Plamondon-Willard fffc58eede reduce allocations for active button state tracking 2026-03-22 22:48:38 -04:00
Jesse Plamondon-Willard 2aeaf6fb83 reduce allocations in input API's GetPressedButtons() logic 2026-03-22 22:48:38 -04:00
Jesse Plamondon-Willard dece40841b replace RemoveWhere extension with equivalent HashSet methods 2026-03-22 22:48:38 -04:00
Jesse Plamondon-Willard 7bdf9be8f1 improve error when a mod is blocked by Windows Smart App Control 2026-03-22 22:48:38 -04:00
Jesse Plamondon-Willard 4d44e66138 add build attestation 2026-03-14 14:59:36 -04:00
Jesse Plamondon-Willard 821167e5c5 Merge branch 'develop' into stable 4.5.2 2026-03-14 14:53:06 -04:00
Jesse Plamondon-Willard 13c4c1c44f prepare for release 2026-03-14 14:49:17 -04:00
Jesse Plamondon-Willard 9746b01129 update fridge position after patching a farmhouse map 2026-03-08 21:05:50 -04:00
Jesse Plamondon-Willard 2c62785f4e update translation docs 2026-03-05 19:07:06 -05:00
Jesse Plamondon-Willard f5a2c35599 Merge pull request #1010 from dekthaiinchina/patch-1
Update Thai translations
2026-03-05 19:03:37 -05:00
Jesse Plamondon-Willard e93fc89958 Merge pull request #1007 from vlcoo/patch-1
Update Spanish translations
2026-03-05 19:03:29 -05:00
在中国的泰国青年_ 2430b66518 Translate SMAPI config options to Thai 2026-02-21 11:52:02 +07:00
vic eaebabfc26 Update Spanish (Spain) translation 2026-02-02 18:38:29 +01:00
Jesse Plamondon-Willard 3bb18fcdaf reduce allocations in input handling
This reuses the input builders instead of creating new ones each time we build input.
2026-02-01 18:17:24 -05:00
Jesse Plamondon-Willard 81d6214729 update Linux/macOS installer color scheme logic for 4.5.0+ changes
The selected color scheme should now be set in `config.user.json` instead of `config.json`, and the field was renamed.
2026-02-01 18:17:24 -05:00
Jesse Plamondon-Willard 8b0936cf5b fix hardcoded path when editing settings files 2026-02-01 18:17:24 -05:00
Jesse Plamondon-Willard ee55254221 remove unused import in build script 2026-02-01 18:17:24 -05:00
Jesse Plamondon-Willard 295da0957c remove draft GitHub release in build workflow
The draft releases caused issues for SMAPI's update flow, because...
1. Updates are releases to Nexus first, since that doesn't trigger update alerts. If there are no major issues, they're released to GitHub a few days later.
2. Update alerts work by fetching the last two SMAPI GitHub releases. The GitHub API doesn't allow ignoring drafts, so SMAPI just ignores any drafts in those top two slots.
3. The new build workflow created a draft release for each version tag.

That meant that releasing a second SMAPI update to Nexus before the GitHub release (like 4.5.0 + 4.5.1) would break update alerts for all players with a "Found no GitHub release for this ID" error, since the two latest releases were both ignored.
2026-02-01 18:17:24 -05:00
Jesse Plamondon-Willard 3b2fbd17b6 update release notes & translation docs 2026-02-01 17:15:49 -05:00
Jesse Plamondon-Willard 8e586ffbd6 Merge pull request #1006 from Timur13240/develop
Update Russian translations
2026-02-01 17:13:14 -05:00
Jesse Plamondon-Willard 4e1ed642d6 Merge pull request #1005 from dewanggatrustha/patch-1
Update Indonesian translations
2026-02-01 17:13:01 -05:00
Jesse Plamondon-Willard 790aee9e84 Merge pull request #1004 from Quentium-Forks/develop
Update French translations
2026-02-01 17:12:44 -05:00
Jesse Plamondon-Willard c0f02275a3 Merge pull request #1003 from spacechase0/patch-2
Allow controller input overrides to apply even without connected controller
2026-02-01 17:12:31 -05:00
Jesse Plamondon-Willard 39125a3ed2 remove now-unneeded IsConnected property 2026-02-01 17:00:47 -05:00
Jesse Plamondon-Willard 5fc8e806c2 avoid querying controller state if it's not connected 2026-02-01 16:59:08 -05:00
Casey W 850e99cb45 Allow controller input overrides to apply even without connected controller 2026-01-30 00:11:12 -05:00