summaryrefslogtreecommitdiff
path: root/src/SMAPI/Framework/ModHelpers
AgeCommit message (Collapse)Author
2022-04-14fix nullable annotation (#837)Jesse Plamondon-Willard
2022-04-13fix spelling warningsJesse Plamondon-Willard
2022-04-13enable nullable annotations in the rest of SMAPI core (#837)Jesse Plamondon-Willard
2022-04-13enable nullable annotations in SMAPI where no logic changes are needed (#837)Jesse Plamondon-Willard
2022-04-13enable nullable annotations in SMAPI where no changes are needed (#837)Jesse Plamondon-Willard
2022-04-11add IAssetDataForMap.ExtendMapJesse Plamondon-Willard
2022-04-07enable asset caching for GameContentHelperJesse 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-06remove some unused/redundant codeJesse Plamondon-Willard
2022-04-06simplify 'is not' patternsJesse Plamondon-Willard
2022-04-03fix incorrect deprecation warnings for helper.ContentJesse Plamondon-Willard
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-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-25restore InterfaceProxyFactory to encapsulate Pintail (#830)Jesse Plamondon-Willard
2022-02-25Merge pull request #830 from Shockah/api-proxy-tryproxy-objectJesse Plamondon-Willard
API proxy improvements
2022-02-18add AssetName to encapsulate asset name handling (#766)Jesse Plamondon-Willard
2022-02-16move proxying to a separate NuGet libraryShockah
2022-02-10add TryProxy for any objectsShockah
2021-08-25fix data helper's WriteJsonFile not deleting file if data is null (#799)Jesse Plamondon-Willard
2021-08-25add GetInAllLocales to translation APIJesse Plamondon-Willard
2021-03-14fix some assets not reapplied correctly when playing in non-English and ↵Jesse Plamondon-Willard
returning to title
2021-01-19add method to suppress active keybindings (#744)Jesse Plamondon-Willard
2020-12-26deprecate ConsoleCommands.Trigger methodJesse Plamondon-Willard
2020-12-20update for split-screen modeJesse Plamondon-Willard
This includes splitting GameRunner (the main game instance) from Game1 (now a per-screen game state), adding a PerScreen<T> utility to simplify per-screen values, adding separate per-screen input handling and events, adding new Context fields for split-screen, and logging the screen ID in split-screen mode to distinguish log entries.
2020-09-08rename PathUtilities.NormalizePathSeparator, add normalization for more casesJesse Plamondon-Willard
2020-09-05minor cleanupJesse Plamondon-Willard
2020-08-30use inheritdocJesse Plamondon-Willard
2020-08-23minor cleanupJesse Plamondon-Willard
2020-06-03don't prevent mods from accessing game methods/properties extended by SMAPIJesse Plamondon-Willard
2020-04-24add support for getting a patch helper for arbitrary dataJesse Plamondon-Willard
2020-03-08rework input handling to allow sending custom input to the game/modsJesse Plamondon-Willard
That will let Virtual Keyboard on Android work with the future multi-key binding API, and with mods that check input state directly (e.g. Pathoschild/StardewMods#520). It might also be useful as a public API in future versions.
2020-02-19rename InputStatus to SButtonState for consistencyJesse Plamondon-Willard
2020-02-19rework tilesheet loading to improve errors, allow future validation, and ↵Jesse Plamondon-Willard
drop support for legacy content files
2020-02-09add helper.Input.GetStatus methodJesse Plamondon-Willard
2020-01-22fix global data stored in saves folderJesse Plamondon-Willard
2019-12-08let mods use Read/WriteSaveData while a save is being loadedJesse Plamondon-Willard
2019-10-03fix non-generic GetAPI not checking that all mods are loaded (#662)Jesse Plamondon-Willard
2019-10-01add support for core translation filesJesse Plamondon-Willard
2019-10-01remove unused translation field & methodJesse 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-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.