Difference between revisions of "User:Pathoschild/Modding wishlist"
Jump to navigation
Jump to search
Pathoschild (talk | contribs) (→Small changes: + support mod sunset times in island parallax rendering) |
Pathoschild (talk | contribs) (→Medium changes: move some to completed in 1.6) |
||
Line 31: | Line 31: | ||
* ☐ Some XNB files have a separate display name field, but only in non-English. Using display names consistently regardless of language would let mods rename things without breaking keys: | * ☐ Some XNB files have a separate display name field, but only in non-English. Using display names consistently regardless of language would let mods rename things without breaking keys: | ||
** ☐ <samp>Data\Bundles</samp> | ** ☐ <samp>Data\Bundles</samp> | ||
− | |||
− | |||
− | |||
* ☐ Remove hardcoded logic that ignores display names when playing in English (e.g. for NPC gift taste dialogues); can search <code>LocalizedContentManager.LanguageCode.en</code> to find many of them. That causes a bug where renamed NPCs still show their internal name in some places. | * ☐ Remove hardcoded logic that ignores display names when playing in English (e.g. for NPC gift taste dialogues); can search <code>LocalizedContentManager.LanguageCode.en</code> to find many of them. That causes a bug where renamed NPCs still show their internal name in some places. | ||
Revision as of 23:34, 12 February 2022
A list of requested changes in the game code to support modders. This list does not include complex refactoring or rewriting, which is unlikely to be accepted.
Wishlist
Bug fixes
All done!
Small changes
- ☐ Change all remaining
internal class
andprivate class
topublic class
to simplify mod access.
- ☐ Change the logic in IslandLocation.DrawParallaxHorizon to support custom sunset times that aren't on the hour. Specifically:
// before float day_night_transition = Utility.ConvertTimeToMinutes(Game1.timeOfDay + (int)((float)Game1.gameTimeInterval / 7000f * 10f % 10f) - Game1.getStartingToGetDarkTime()) / (float)Utility.ConvertTimeToMinutes(Game1.getTrulyDarkTime() - Game1.getStartingToGetDarkTime()); // after float day_night_transition = Utility.CalculateMinutesBetweenTimes(Game1.getStartingToGetDarkTime(), (Game1.timeOfDay + (int)(Game1.gameTimeInterval / 7000f * 10f % 10f))) / (float)Utility.CalculateMinutesBetweenTimes(Game1.getStartingToGetDarkTime(), Game1.getTrulyDarkTime());
- ☐ Make methods virtual:
class methods Background draw, update
Medium changes
- ☐ Add map property for default warp location (e.g. Utility.getDefaultWarpLocation).
- ☐ Some XNB files have a separate display name field, but only in non-English. Using display names consistently regardless of language would let mods rename things without breaking keys:
- ☐ Data\Bundles
- ☐ Remove hardcoded logic that ignores display names when playing in English (e.g. for NPC gift taste dialogues); can search
LocalizedContentManager.LanguageCode.en
to find many of them. That causes a bug where renamed NPCs still show their internal name in some places.
Refactoring
- ☐ Add unique item keys and allow custom spritesheets per item. This would eliminate the current complexities with adding custom items to Stardew Valley, make code much more readable, simplify troubleshooting mod errors, and make it possible to support any item type in cases like sending mail. See the detailed proposal doc.
- ☐ Change all
const
fields tostatic readonly
. They're accessed the same way and the performance difference is negligible, but that'll make the decompiled code much easier to understand, and avoid issues where const values get 'baked in' to mod assemblies. - ☐ Move shop inventories into a data asset so mods can easily change them (e.g.
"<shop id>": "item_id quantity_available [required_mail_flag]/..."
).