summaryrefslogtreecommitdiff
path: root/src/SMAPI/Framework/ContentCoordinator.cs
AgeCommit message (Collapse)Author
2022-03-26rewrite 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-26add asset edit priority (#766)Jesse Plamondon-Willard
2022-03-26add NameWithoutLocale fields (#766)Jesse Plamondon-Willard
2022-03-25extend load conflict resolution into load priority (#766)Jesse Plamondon-Willard
2022-03-25add load conflict resolution option (#766)Jesse Plamondon-Willard
2022-03-25add content pack labels (#766)Jesse Plamondon-Willard
2022-03-25add AssetReady content event (#766)Jesse Plamondon-Willard
2022-03-24add AssetInvalidated content event (#766)Jesse Plamondon-Willard
2022-03-23add initial AssetRequested content event (#766)Jesse Plamondon-Willard
2022-03-22encapsulate & 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-05add DoesAssetExist to support the upcoming Stardew Valley 1.6 (#766)Jesse Plamondon-Willard
2022-03-05migrate more internal code to IAssetName (#766)Jesse Plamondon-Willard
2022-03-05fix error loading locale code cache when a mod adds custom languages (#766)Jesse Plamondon-Willard
2022-02-19add Constants.GamePath & deprecate Constants.ExecutionPathJesse Plamondon-Willard
2022-02-18add AssetName to encapsulate asset name handling (#766)Jesse Plamondon-Willard
2022-02-18Fix support for custom locale codes in asset names (#766)Jesse Plamondon-Willard
2022-02-18tweak types in content coordinatorJesse Plamondon-Willard
2021-12-20auto-fix maps broken due to missing vanilla tilesheetJesse Plamondon-Willard
2021-11-28update for custom languagesJesse Plamondon-Willard
2021-04-04improve error-handling during asset propagationJesse Plamondon-Willard
2021-03-19update NPC pathfinding cache when map warps changeJesse Plamondon-Willard
2021-03-16avoid asset propagation into the world if it's unloadedJesse 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-14fix some assets not reapplied correctly when playing in non-English and ↵Jesse Plamondon-Willard
returning to title
2021-02-21reduce performance impact of new cache fixJesse Plamondon-Willard
2021-02-06fix edge case in non-English asset cache after returning to title screenJesse Plamondon-Willard
2021-01-31rework aggressive memory optimization to minimize mod impact (#757)Jesse Plamondon-Willard
2021-01-31add experimental 'aggressive memory optimization' flag (#757)Jesse Plamondon-Willard
2021-01-24minor cleanupJesse Plamondon-Willard
2021-01-06rework vanilla tilesheet checking to avoid keeping a copy of the vanilla ↵Jesse Plamondon-Willard
maps in memory
2021-01-02detect and block map replacements that would crash the game due to tilesheet ↵Jesse Plamondon-Willard
changes
2020-12-26fix SMAPI using a cached translation when the game asks for an untranslated ↵Jesse Plamondon-Willard
asset This mainly affects community center bundles in Stardew Valley 1.5,
2020-09-05minor cleanupJesse Plamondon-Willard
2020-08-23minor cleanupJesse Plamondon-Willard
2020-07-26use ordinal comparison/sorting instead of invariantJesse Plamondon-Willard
2020-04-25fix asset propagation for maps loaded through a temporary content managerJesse Plamondon-Willard
2020-02-19rework tilesheet loading to improve errors, allow future validation, and ↵Jesse Plamondon-Willard
drop support for legacy content files
2020-01-30rework asset editor/loader tracking so they're affected by load orderJesse Plamondon-Willard
2020-01-25 add internal method for Content PatcherJesse Plamondon-Willard
2020-01-12fix recursive lock errorJesse Plamondon-Willard
2020-01-11fix errors due to async threads creating content managersJesse Plamondon-Willard
2019-12-14refactor cache invalidation & propagation to allow for future optimizationsJesse Plamondon-Willard
2019-12-12batch asset editor/loader changesJesse Plamondon-Willard
2019-09-14fix typos and inconsistent spellingJesse Plamondon-Willard
2019-09-14fix error when loading a mod asset through a translated content manager (#647)Jesse Plamondon-Willard
2019-09-14disable mod-level asset caching (#644)Jesse Plamondon-Willard
This fixes an issue where some asset references could be shared between content managers, causing changes to propagate unintentionally.
2019-09-14ignore root content managers when handling managed asset keys (#644)Jesse Plamondon-Willard
2019-09-14move most mod asset loading logic into content managers (#644)Jesse Plamondon-Willard
This fixes mods needing to load Map assets manually before the game could load them via internal key.
2019-09-14batch reload assets in some casesJesse Plamondon-Willard
2019-09-14fix translatable assets not updated when switching language (#586)Jesse Plamondon-Willard
2019-09-14load mods much earlier so they can intercept all content assetsJesse Plamondon-Willard