summaryrefslogtreecommitdiff
path: root/src/SMAPI
AgeCommit message (Collapse)Author
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-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
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-03-05fix regression with mod XNB files in the content pipeline (#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-24update PintailShockah
2022-02-22avoid SetData when premultiplying texture with no semi-transparencyJesse Plamondon-Willard
2022-02-20update PintailShockah
2022-02-19change proxy prepare behaviorShockah
2022-02-19update PintailShockah
2022-02-19add Constants.ContentPathJesse 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
2022-02-18update PintailShockah
2022-02-17update PintailShockah
2022-02-16update PintailShockah
2022-02-16move proxying to a separate NuGet libraryShockah
2022-02-13flip slashes in asset propagator to match MonoGameJesse Plamondon-Willard
The game now uses MonoGame on all platforms.
2022-02-13simplify and standardize key comparison in asset propagatorJesse Plamondon-Willard
2022-02-11fix thumbstick input overridesJesse Plamondon-Willard
2022-02-11use Array.Empty to avoid unneeded array allocationsJesse Plamondon-Willard
2022-02-10add TryProxy for any objectsShockah
2022-02-10add reverse API proxying (and unproxying)Shockah
2022-02-10add proxy instance cachingShockah
2022-02-10use Call/Callvirt depending on targetShockah