Pathoschild/StardewMods

[Content Patcher] Paint Masks not updated unless restarting the game

Closed this issue · 1 comments

When patching a paint mask, the changes are not updated according to the Update field in the patch but upon restarting the game. For some reason, the Farm house is a special case which is somehow more broken: the paint seem to partially disappear when toggling the patch (see screenshots). There's nothing about the relevant content patch in the log other than saying it was loaded (the Steam API issue is caused by me starting the game from a terminal because the console does not open when starting from Steam for some reason).
OS : Linux Fedora

Steps to reproduce :

  1. Install a content patch patching a paintable building and its paint mask (I used my own mod).
  2. Load a game with a paintable building on the farm.
    Buildings before being painted
  3. Paint the building.
    Buildings after being painted
  4. Toggle the patch (I used GMCM to do this step)
    Painted buildings after enabling the patch
    This does not change upon sleeping, even after exiting to title.
  5. Sleep (to save), close the game, start the game and load the save with the painted buildings.
    Painted buildings after sleeping (to save) and restarting the game

Here are the changes for the stable and the farm house :

		{
			"Action": "Load",
			"Target": "Buildings/Stable, Buildings/Stable_PaintMask",
			"FromFile": "assets/Buildings/Stable/{{TargetWithoutPath}}_{{season}}.png",
			"Update": "OnTimeChange"
		}
		{
			"Action": "Load",
			"Target": "Buildings/houses, Buildings/houses_PaintMask",
			"FromFile": "assets/Buildings/Houses/{{TargetWithoutPath}}_{{season}}.png",
			"Update": "OnTimeChange"
		}

Changing Action to EditImage instead of Load did not fix the issue.

Fixed in the upcoming SMAPI 3.0.9 (which fixes paint mask changes not always propagating correctly) and Content Patcher 2.1.0 (which now force-updates all patches when you edit config in-game). Thanks for reporting it!