summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2022-04-07enable nullable annotations for manifests (#837)Jesse Plamondon-Willard
2022-04-07enable nullable annotations for semantic versions (#837)Jesse Plamondon-Willard
2022-04-06allow null values in ISemanticVersion compare methods (#837)Jesse Plamondon-Willard
2022-04-06fix all warnings to simplify migration to nullable annotations (#837)Jesse 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-06drop update checks for Stardew64InstallerJesse Plamondon-Willard
2022-04-06remove some unused/redundant codeJesse Plamondon-Willard
2022-04-06simplify with newer pattern featuresJesse Plamondon-Willard
2022-04-06simplify 'is not' patternsJesse Plamondon-Willard
2022-04-06use target-typed newJesse Plamondon-Willard
2022-04-06fix asset name truncation when loading XNB mod file without file extensionJesse Plamondon-Willard
2022-04-03split mod content load method, make error-handling more consistentJesse Plamondon-Willard
2022-04-03fix incorrect deprecation warnings for helper.ContentJesse Plamondon-Willard
2022-04-02add temporary hack to fix compatibility between old & new APIs for some modsJesse Plamondon-Willard
2022-04-02switch to 'processing tick' for tick cachingJesse Plamondon-Willard
This is incremented on each low-level tick (whether it's a game update, synchronized async operation, etc). That mainly avoids the cache persisting across the entire save loading process while it's being synchronized.
2022-04-02fix errors due to null asset names in asset propagationJesse Plamondon-Willard
2022-04-02fix tick cache using game ticks instead of SMAPI ticksJesse Plamondon-Willard
The game ticks aren't incremented consistently in some cases (e.g. while loading a save), which leads to the cache values being kept too long.
2022-04-01make mod file paths case-insensitive in all SMAPI APIsJesse 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-04-01keep old XNB file extension behavior for backwards compatibility (#766)Jesse Plamondon-Willard
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 LocaleChanged content event (#766)Jesse Plamondon-Willard
2022-03-26expand obsolete attributes (#766)Jesse Plamondon-Willard
2022-03-26give Content Patcher internals accessJesse Plamondon-Willard
This makes some of its low-level logic safer by avoiding unvalidated reflection.
2022-03-26add IContentHelper.ParseAssetName (#766)Jesse Plamondon-Willard
2022-03-26update asset propagation for new content API (#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-26add asset edit priority (#766)Jesse Plamondon-Willard
2022-03-26add NameWithoutLocale fields (#766)Jesse Plamondon-Willard
2022-03-26add missing [Obsolete] tagJesse 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 label to more logs (#766)Jesse Plamondon-Willard
2022-03-25fix asset load conflict always showing multiple-mod formJesse Plamondon-Willard
2022-03-25add content pack labels (#766)Jesse Plamondon-Willard
2022-03-25use immutable set for invalidated asset names (#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-23fix unneeded cloning (#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-22reduce duplicated doc blocksJesse Plamondon-Willard
2022-03-20encapsulate editor/loader operations (#766)Jesse Plamondon-Willard
These will be used by the new content API, and allow handling the old one the same way.
2022-03-10fix set_farm_type not updating warpsJesse Plamondon-Willard
2022-03-06rework launch script argument parsing (#832)Jesse Plamondon-Willard
This commit... * replaces the internal `--no-reopen-terminal` arg with a documented `--use-current-shell` arg that works on Linux too; * replaces the new SKIP_TERMINAL environment variable with the existing SMAPI_NO_TERMINAL one; * moves argument parsing out of the 'initial setup' section (so it's easier for players to edit if needed); * simplfies argument parsing (no need to support short opt names or add arguments for the default behavior); * fixes arguments not parsed after the first unrecognized argument, so `--unknown --no-terminal` would still open a terminal.
2022-03-06Merge pull request #832 from Ryhon0/developJesse Plamondon-Willard
Make SKIP_TERMINAL default to false if not set
2022-03-05handle vanilla assets in DoesAssetExist (#766)Jesse Plamondon-Willard
2022-03-05add DoesAssetExist to support the upcoming Stardew Valley 1.6 (#766)Jesse Plamondon-Willard