summaryrefslogtreecommitdiff
path: root/src/SMAPI/Framework/ModHelpers/ContentHelper.cs
AgeCommit message (Collapse)Author
2022-05-08avoid [Obsolete] without message for clarityJesse Plamondon-Willard
2022-04-27add backwards compatibility for loading content assets with .xnb extensionJesse Plamondon-Willard
2022-04-19move deprecation code into namespaceJesse Plamondon-Willard
2022-04-14track full mod & stack metadata in queued deprecation warningsJesse Plamondon-Willard
2022-04-14track mod metadata reference in APIs for upcoming deprecation changesJesse Plamondon-Willard
2022-04-13enable nullable annotations in SMAPI where no logic changes are needed (#837)Jesse Plamondon-Willard
2022-04-11add IAssetDataForMap.ExtendMapJesse Plamondon-Willard
2022-04-06enable 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-06simplify 'is not' patternsJesse Plamondon-Willard
2022-04-01fix 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-27split helper.Content API into game/mod content APIsJesse Plamondon-Willard
2022-03-27add asset type to AssetRequested event (#766)Jesse Plamondon-Willard
2022-03-26add IContentHelper.ParseAssetName (#766)Jesse Plamondon-Willard
2022-03-26add deprecation notices for SMAPI 4.0.0 (#766)Jesse Plamondon-Willard
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-05migrate more internal code to IAssetName (#766)Jesse Plamondon-Willard
2022-02-18add AssetName to encapsulate asset name handling (#766)Jesse Plamondon-Willard
2021-03-14fix some assets not reapplied correctly when playing in non-English and ↵Jesse Plamondon-Willard
returning to title
2020-09-05minor cleanupJesse Plamondon-Willard
2020-08-30use inheritdocJesse Plamondon-Willard
2020-04-24add support for getting a patch helper for arbitrary dataJesse Plamondon-Willard
2020-02-19rework tilesheet loading to improve errors, allow future validation, and ↵Jesse Plamondon-Willard
drop support for legacy content files
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-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-14fix tilesheets seasonalised when loading an indoor mapJesse Plamondon-Willard
2019-09-14fix cache miss when not playing in English (#634)Jesse Plamondon-Willard
2019-04-22fix error on Mac when a custom map references a vanilla tilesheet that only ↵Jesse Plamondon-Willard
exists under Content/Maps
2019-02-07fix error with custom map tilesheets in some casesJesse Plamondon-Willard
Specifically, when a custom map has a seasonal tilesheet which only exists the Content/Maps folder and already matches the current season.
2018-12-27tweak comment header conventionJesse Plamondon-Willard
2018-08-06fix spring tilesheets always used for custom festival maps (#577)Jesse Plamondon-Willard
2018-05-25move PathUtilities into toolkit (#532)Jesse Plamondon-Willard
2018-05-22refactor content API to fix load errors with decentralised cache (#524)Jesse Plamondon-Willard
2018-05-09rewrite content logic to decentralise cache (#488)Jesse Plamondon-Willard
This is necessary due to changes in Stardew Valley 1.3, which now changes loaded assets and expects those changes to be persisted but not propagated to other content managers.
2018-03-11reorganise and update core content logic for Stardew Valley 1.3 (#453)Jesse Plamondon-Willard
2018-02-19encapsulate path utilities for reuse, add unit testsJesse Plamondon-Willard
2017-12-02add NormaliseAssetName content helper method (#404)Jesse Plamondon-Willard
2017-11-02fix custom asset loads failing on Linux/Mac (#383)Jesse Plamondon-Willard
2017-10-30explicitly disallow absolute paths as asset keys in content API (#381)Jesse Plamondon-Willard
2017-10-30let mods invalidate assets matching a predicate (#363)Jesse Plamondon-Willard
2017-10-27minor cleanup (#373)Jesse Plamondon-Willard
2017-10-25centralise most content-loading logic to fix map tilesheet edge case (#373)Jesse Plamondon-Willard
2017-10-12refuse to load custom map tilesheets with absolute or directory-climbing ↵Jesse Plamondon-Willard
paths (#368)
2017-10-07reorganise repo structureJesse Plamondon-Willard