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