Age | Commit message (Collapse) | Author | |
---|---|---|---|
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-06 | drop update checks for Stardew64Installer | Jesse Plamondon-Willard | |
2022-04-06 | remove some unused/redundant code | Jesse Plamondon-Willard | |
2022-04-06 | simplify with newer pattern features | Jesse Plamondon-Willard | |
2022-04-06 | simplify 'is not' patterns | Jesse Plamondon-Willard | |
2022-04-06 | use target-typed new | Jesse Plamondon-Willard | |
2022-04-06 | fix asset name truncation when loading XNB mod file without file extension | Jesse Plamondon-Willard | |
2022-04-03 | split mod content load method, make error-handling more consistent | Jesse Plamondon-Willard | |
2022-04-03 | fix incorrect deprecation warnings for helper.Content | Jesse Plamondon-Willard | |
2022-04-02 | add temporary hack to fix compatibility between old & new APIs for some mods | Jesse Plamondon-Willard | |
2022-04-02 | switch to 'processing tick' for tick caching | Jesse 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-02 | fix errors due to null asset names in asset propagation | Jesse Plamondon-Willard | |
2022-04-02 | fix tick cache using game ticks instead of SMAPI ticks | Jesse 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-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-04-02 | Added support for `--developer-mode true|false` | Patrick Müssig | |
Minimal changes required to enable/disable developer mode via command line argument. This commit does not include any error handling for invalid values how ever they will be ignored and not crash the game. | |||
2022-04-01 | keep old XNB file extension behavior for backwards compatibility (#766) | Jesse Plamondon-Willard | |
2022-03-27 | split helper.Content API into game/mod content APIs | Jesse Plamondon-Willard | |
2022-03-27 | add asset type to AssetRequested event (#766) | Jesse Plamondon-Willard | |
2022-03-26 | add LocaleChanged content event (#766) | Jesse Plamondon-Willard | |
2022-03-26 | expand obsolete attributes (#766) | Jesse Plamondon-Willard | |
2022-03-26 | give Content Patcher internals access | Jesse Plamondon-Willard | |
This makes some of its low-level logic safer by avoiding unvalidated reflection. | |||
2022-03-26 | add IContentHelper.ParseAssetName (#766) | Jesse Plamondon-Willard | |
2022-03-26 | update asset propagation for new content API (#766) | Jesse Plamondon-Willard | |
2022-03-26 | add deprecation notices for SMAPI 4.0.0 (#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-26 | add missing [Obsolete] tag | 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 label to more logs (#766) | Jesse Plamondon-Willard | |
2022-03-25 | fix asset load conflict always showing multiple-mod form | Jesse Plamondon-Willard | |
2022-03-25 | add content pack labels (#766) | Jesse Plamondon-Willard | |
2022-03-25 | use immutable set for invalidated asset names (#766) | Jesse Plamondon-Willard | |
2022-03-25 | mark build scripts executable | 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 | fix unneeded cloning (#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-22 | reduce duplicated doc blocks | Jesse Plamondon-Willard | |
2022-03-20 | encapsulate 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-10 | fix set_farm_type not updating warps | Jesse Plamondon-Willard | |
2022-03-06 | rework 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-06 | Merge pull request #832 from Ryhon0/develop | Jesse Plamondon-Willard | |
Make SKIP_TERMINAL default to false if not set | |||
2022-03-05 | handle vanilla assets in DoesAssetExist (#766) | Jesse Plamondon-Willard | |
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 | |