Commit Graph

3707 Commits

Author SHA1 Message Date
Jesse Plamondon-Willard 5683bc9c7d
give Content Patcher internals access
This makes some of its low-level logic safer by avoiding unvalidated reflection.
2022-03-26 17:46:10 -04:00
Jesse Plamondon-Willard bacb851d7b
add IContentHelper.ParseAssetName (#766) 2022-03-26 17:44:48 -04:00
Jesse Plamondon-Willard 3a9ea66a20
update asset propagation for new content API (#766) 2022-03-26 17:37:01 -04:00
Jesse Plamondon-Willard 8d70415376
add deprecation notices for SMAPI 4.0.0 (#766) 2022-03-26 15:02:11 -04:00
Jesse Plamondon-Willard 4c64f9f644
rewrite content loading to allow handling locale variants (#766, #786, #812)
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 14:07:16 -04:00
Jesse Plamondon-Willard ad8912047b
add asset edit priority (#766) 2022-03-26 01:43:40 -04:00
Jesse Plamondon-Willard e40907ab8b
add NameWithoutLocale fields (#766) 2022-03-26 01:19:44 -04:00
Jesse Plamondon-Willard 4da38e1317
add missing [Obsolete] tag 2022-03-26 00:52:04 -04:00
Jesse Plamondon-Willard 3707f481a5
extend load conflict resolution into load priority (#766) 2022-03-25 23:53:30 -04:00
Jesse Plamondon-Willard 021891ff0c
add load conflict resolution option (#766) 2022-03-25 22:49:14 -04:00
Jesse Plamondon-Willard 0e0c135604
add content pack label to more logs (#766) 2022-03-25 22:42:22 -04:00
Jesse Plamondon-Willard 9025b0dcc5
fix asset load conflict always showing multiple-mod form 2022-03-25 22:16:49 -04:00
Jesse Plamondon-Willard e1fc566e0a
add content pack labels (#766) 2022-03-25 21:46:37 -04:00
Jesse Plamondon-Willard b0011bf65c
use immutable set for invalidated asset names (#766) 2022-03-25 01:02:26 -04:00
Jesse Plamondon-Willard e88666f5b2
mark build scripts executable 2022-03-25 01:01:57 -04:00
Jesse Plamondon-Willard b77eab6e0a
add AssetReady content event (#766) 2022-03-25 00:35:31 -04:00
Jesse Plamondon-Willard 2b0ce2bb4d
add AssetInvalidated content event (#766) 2022-03-24 22:55:55 -04:00
Jesse Plamondon-Willard 6a43e6dfad
fix unneeded cloning (#766) 2022-03-23 01:16:42 -04:00
Jesse Plamondon-Willard 584725bb8e
add initial AssetRequested content event (#766) 2022-03-23 01:06:11 -04:00
Jesse Plamondon-Willard b07d2340a9
encapsulate & cache asset operation groups (#766)
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 23:00:18 -04:00
Jesse Plamondon-Willard d3fbdf484a
reduce duplicated doc blocks 2022-03-22 20:46:21 -04:00
Jesse Plamondon-Willard a42926868a
encapsulate editor/loader operations (#766)
These will be used by the new content API, and allow handling the old one the same way.
2022-03-20 12:53:27 -04:00
Jesse Plamondon-Willard d96cec88e4
fix set_farm_type not updating warps 2022-03-10 23:24:01 -05:00
Jesse Plamondon-Willard 2216e37726
rework launch script argument parsing (#832)
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 19:55:32 -05:00
Jesse Plamondon-Willard a4bd5cccd5
Merge pull request #832 from Ryhon0/develop
Make SKIP_TERMINAL default to false if not set
2022-03-06 18:37:13 -05:00
Jesse Plamondon-Willard debe177241
handle vanilla assets in DoesAssetExist (#766) 2022-03-05 18:12:00 -05:00
Jesse Plamondon-Willard b68b301b71
add DoesAssetExist to support the upcoming Stardew Valley 1.6 (#766) 2022-03-05 15:38:05 -05:00
Jesse Plamondon-Willard b0d8b23c2c
migrate more internal code to IAssetName (#766) 2022-03-05 15:31:06 -05:00
Jesse Plamondon-Willard e82406a845
fix error loading locale code cache when a mod adds custom languages (#766) 2022-03-05 15:30:51 -05:00
Jesse Plamondon-Willard 2f279708b3
fix regression with mod XNB files in the content pipeline (#766) 2022-03-05 15:30:17 -05:00
Jesse Plamondon-Willard c2086216fa
add Pintail to install package (#830) 2022-03-05 15:27:00 -05:00
Ryhon bb31f09977
Command line options 2022-03-05 20:40:01 +01:00
Ryhon 30d63f0a11
Make SKIP_TERMINAL default to false if not set 2022-03-04 19:20:39 +01:00
Jesse Plamondon-Willard 8429485e69
update schema for Content Patcher 1.25.0 2022-02-27 20:40:49 -05:00
Jesse Plamondon-Willard f36b4e06ef
update release notes 2022-02-25 23:50:52 -05:00
Jesse Plamondon-Willard 0f987c0578
restore InterfaceProxyFactory to encapsulate Pintail (#830) 2022-02-25 23:40:52 -05:00
Jesse Plamondon-Willard 512c2b9fb7
Merge pull request #830 from Shockah/api-proxy-tryproxy-object
API proxy improvements
2022-02-25 23:21:45 -05:00
Shockah 5e3237d000 update Pintail 2022-02-24 12:58:16 +01:00
Jesse Plamondon-Willard 6fc3be52bc
avoid SetData when premultiplying texture with no semi-transparency 2022-02-22 17:38:59 -05:00
Shockah 28f78d1a29 update Pintail 2022-02-20 00:38:42 +01:00
Shockah e9321ba6f9 change proxy prepare behavior 2022-02-19 22:08:05 +01:00
Shockah e24c0db7b1 update Pintail 2022-02-19 21:27:13 +01:00
Jesse Plamondon-Willard 3c29ae6a1e
add Constants.ContentPath 2022-02-19 11:26:24 -05:00
Jesse Plamondon-Willard 2d52681b10
add Constants.GamePath & deprecate Constants.ExecutionPath 2022-02-19 11:07:26 -05:00
Jesse Plamondon-Willard a2190df08c
add AssetName to encapsulate asset name handling (#766) 2022-02-18 15:39:49 -05:00
Jesse Plamondon-Willard 065859408f
Fix support for custom locale codes in asset names (#766) 2022-02-18 12:31:14 -05:00
Jesse Plamondon-Willard 28d7372880
tweak types in content coordinator 2022-02-18 12:13:53 -05:00
Shockah 5706d91dd9 update Pintail 2022-02-18 12:16:02 +01:00
Shockah e41dbd49ca update Pintail 2022-02-17 19:59:36 +01:00
Shockah 8ecca56816 update Pintail 2022-02-16 21:10:23 +01:00