Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-05-18 | simplify asset propagation a bit to prepare for the upcoming SDV 1.6 | Jesse Plamondon-Willard | |
2022-05-18 | re-add internal content manager for asset propagation | Jesse Plamondon-Willard | |
This will be used by the new asset propagation in SMAPI 4.0 & Stardew Valley 1.6. | |||
2022-05-15 | reduce performance impact of deprecation warnings | Jesse Plamondon-Willard | |
Creating a stack is *very* slow, so it should be avoided if possible until after the duplicate-warning check. | |||
2022-05-11 | rewrite asset operations to reduce allocations | Jesse Plamondon-Willard | |
• When raising AssetRequested, SMAPI now creates a single event args model and reuses it for each handler. • There's now a single AssetOperationGroup per asset, which tracks the loaders/editors registered by every mod for that asset. • The operation group's loader/editor lists are now used directly instead of querying them. | |||
2022-05-08 | use records for asset edit operations | Jesse Plamondon-Willard | |
2022-05-08 | optimize case where there's no legacy IAssetLoader/IAssetEditor instances | Jesse Plamondon-Willard | |
2022-05-07 | simplify and rewrite case-insensitive file path feature | Jesse Plamondon-Willard | |
2022-05-06 | cache legacy asset operations by target type | Jesse Plamondon-Willard | |
2022-05-06 | cache asset operation instances created legacy interceptors | Jesse Plamondon-Willard | |
2022-05-04 | remove aggressive memory optimizations option | Jesse Plamondon-Willard | |
2022-05-04 | disable case-insensitive paths by default pending performance rework | Jesse Plamondon-Willard | |
2022-04-26 | fix locale change for legacy IAssetEditor/Loader implementations | Jesse Plamondon-Willard | |
2022-04-23 | fix ReplaceWith not working for legacy IAssetEditor implementations | Jesse Plamondon-Willard | |
2022-04-16 | move case-insensitive path lookup into toolkit for reuse | Jesse Plamondon-Willard | |
2022-04-16 | make EntryDll manifest field case-insensitive | Jesse Plamondon-Willard | |
2022-04-13 | enable nullable annotations in SMAPI where no logic changes are needed (#837) | Jesse Plamondon-Willard | |
2022-04-11 | add IAssetDataForMap.ExtendMap | Jesse Plamondon-Willard | |
2022-04-06 | fix all warnings to simplify migration to nullable annotations (#837) | Jesse Plamondon-Willard | |
2022-04-06 | enable nullable annotations by default (#837) | Jesse Plamondon-Willard | |
This adds `#nullable disable` to all existing code (except where null is impossible like enum files), so it can be migrated incrementally. | |||
2022-04-02 | add temporary hack to fix compatibility between old & new APIs for some mods | Jesse Plamondon-Willard | |
2022-04-01 | make mod file paths case-insensitive in all SMAPI APIs | Jesse Plamondon-Willard | |
2022-04-01 | fix local file path asset name parsing locale codes in rare cases (#766) | Jesse Plamondon-Willard | |
Mod file paths can't be localized through the content pipeline. Normally the locale would be ignored anyway due to the file extension, but it'd be incorrectly parsed if the file name ended with a locale and no file extension (like "assets/example.fr-FR"). | |||
2022-03-27 | add asset type to AssetRequested event (#766) | Jesse Plamondon-Willard | |
2022-03-26 | update asset propagation for new content API (#766) | Jesse Plamondon-Willard | |
2022-03-26 | rewrite content loading to allow handling locale variants (#766, #786, #812) | Jesse Plamondon-Willard | |
The game's content pipeline automatically loads localized variants if present. For example, it will try to load "Maps/cave.fr-FR", then "Maps/cave_international", then "Maps/cave". The old content API obfuscates this logic and treats them as interchangeable, which causes edge cases like bundle corruption (#812). This commit rewrites the loading logic to match the game logic when using the new content events, while maintaining the legacy behavior for the old IAssetLoader/IAssetEditor interfaces that'll be removed in SMAPI 4.0.0. | |||
2022-03-26 | add asset edit priority (#766) | Jesse Plamondon-Willard | |
2022-03-26 | add NameWithoutLocale fields (#766) | Jesse Plamondon-Willard | |
2022-03-25 | extend load conflict resolution into load priority (#766) | Jesse Plamondon-Willard | |
2022-03-25 | add load conflict resolution option (#766) | Jesse Plamondon-Willard | |
2022-03-25 | add content pack labels (#766) | Jesse Plamondon-Willard | |
2022-03-25 | add AssetReady content event (#766) | Jesse Plamondon-Willard | |
2022-03-24 | add AssetInvalidated content event (#766) | Jesse Plamondon-Willard | |
2022-03-23 | add initial AssetRequested content event (#766) | Jesse Plamondon-Willard | |
2022-03-22 | encapsulate & cache asset operation groups (#766) | Jesse Plamondon-Willard | |
This is needed for the upcoming Stardew Valley 1.6 to avoid duplicate checks between DoesAssetExist and Load calls, and to make sure the answer doesn't change between them. | |||
2022-03-05 | add DoesAssetExist to support the upcoming Stardew Valley 1.6 (#766) | Jesse Plamondon-Willard | |
2022-03-05 | migrate more internal code to IAssetName (#766) | Jesse Plamondon-Willard | |
2022-03-05 | fix error loading locale code cache when a mod adds custom languages (#766) | Jesse Plamondon-Willard | |
2022-02-19 | add Constants.GamePath & deprecate Constants.ExecutionPath | Jesse Plamondon-Willard | |
2022-02-18 | add AssetName to encapsulate asset name handling (#766) | Jesse Plamondon-Willard | |
2022-02-18 | Fix support for custom locale codes in asset names (#766) | Jesse Plamondon-Willard | |
2022-02-18 | tweak types in content coordinator | Jesse Plamondon-Willard | |
2021-12-20 | auto-fix maps broken due to missing vanilla tilesheet | Jesse Plamondon-Willard | |
2021-11-28 | update for custom languages | Jesse Plamondon-Willard | |
2021-04-04 | improve error-handling during asset propagation | Jesse Plamondon-Willard | |
2021-03-19 | update NPC pathfinding cache when map warps change | Jesse Plamondon-Willard | |
2021-03-16 | avoid asset propagation into the world if it's unloaded | Jesse Plamondon-Willard | |
Propagating changes into world locations has no effect at this point (since they'll just be recreated when a save is loaded), and can noticeably impact performance. | |||
2021-03-14 | fix some assets not reapplied correctly when playing in non-English and ↵ | Jesse Plamondon-Willard | |
returning to title | |||
2021-02-21 | reduce performance impact of new cache fix | Jesse Plamondon-Willard | |
2021-02-06 | fix edge case in non-English asset cache after returning to title screen | Jesse Plamondon-Willard | |
2021-01-31 | rework aggressive memory optimization to minimize mod impact (#757) | Jesse Plamondon-Willard | |