summaryrefslogtreecommitdiff
path: root/src/SMAPI/Framework
AgeCommit message (Collapse)Author
2022-06-12patch PyTK temporarily to fix scale-up compatibility in SMAPI 3.15Jesse Plamondon-Willard
2022-06-10add image compatibility mode for PyTKJesse Plamondon-Willard
2022-06-10tweak new code, update release notesJesse Plamondon-Willard
2022-06-10Cleaning up and optimizing `ContentCache.cs`Ameisen
2022-06-10fix accidental case-sensitivity changeJesse Plamondon-Willard
2022-06-10use IRawTextureData instead of intermediate tupleJesse Plamondon-Willard
2022-06-10simplify asset type validaitonJesse Plamondon-Willard
2022-06-10apply style conventionsJesse Plamondon-Willard
2022-06-10Refactored ModContentManager.cs so it actually fit on my 1440p screens.Ameisen
Changed LocalTilesheetExtensions into an array. Marked 'CreateTemporary' as 'Obsolete' which is conventional for methods that only throw. Moved the type validation logic into its own method as it's largely shared for each loader. Changed allocators to use `GC.AllocateUninitializedArray`, as the data does not need to be initialized. Changed `LoadRawImageData` to use a `ValueTuple` return instead of returning with multiple `out`s, which is bad practice. Preferred rethrowing handlers rather than exception filters (which generate bizarre and _very difficult to patch_ code). Marked GetLoadError as debugger step through and hidden, as it's just an exception generator. Marked PremultiplyTransparency, GetContentKeyForTilesheetImageSource, and LoadRawImageData as static as they have no dependency on instance data (nor should they). Fixed `.xnb` extension search to properly use OrdinalIgnoreCase.
2022-06-10simplify pixel conversion loopJesse Plamondon-Willard
2022-06-10encapsulate loading the raw image data for mod patchingJesse Plamondon-Willard
2022-06-10add validation error when loading XNB file as IRawTextureDataJesse Plamondon-Willard
2022-06-10update to Harmony 2.2.1Jesse Plamondon-Willard
2022-06-10drop support for pre-Pintail proxyingJesse Plamondon-Willard
2022-06-10enable raw image loading by default, rename settingJesse Plamondon-Willard
2022-06-10add IRawTextureData asset typeJesse Plamondon-Willard
2022-06-10add experimental image load rewriteJesse Plamondon-Willard
2022-06-10rework VerboseLogging option to allow enabling for specific modsJesse Plamondon-Willard
2022-06-08avoid NPC pathfinding rebuild if reachable locations didn't changeJesse Plamondon-Willard
2022-06-06simplify repeated hash set creationJesse Plamondon-Willard
2022-05-31add backwards compatibility for mods using now-unused dependenciesJesse Plamondon-Willard
2022-05-31replace MemoryCache with custom cacheJesse Plamondon-Willard
This was causing significant frame stutters for some players since the migration to .NET 5 in Stardew Valley 1.5.5.
2022-05-27fix typoJesse Plamondon-Willard
2022-05-24fix split-screen error when a mod provides a localized asset in one screen ↵Jesse Plamondon-Willard
but not another
2022-05-23add watcher names to simplify troubleshootingJesse Plamondon-Willard
2022-05-23fix nullable annotations in NetListWatcherJesse Plamondon-Willard
2022-05-23use <inheritdoc/> in watchersJesse Plamondon-Willard
2022-05-23shortcut common cases in hot code pathsJesse Plamondon-Willard
2022-05-21fix error when mod localizes an unlocalizable asset and then stops doing soJesse Plamondon-Willard
2022-05-20add tick cache to asset propagationJesse Plamondon-Willard
2022-05-18simplify asset propagation a bit to prepare for the upcoming SDV 1.6Jesse Plamondon-Willard
2022-05-18fix asset type when checking if a mod asset existsJesse Plamondon-Willard
2022-05-18re-add internal content manager for asset propagationJesse Plamondon-Willard
This will be used by the new asset propagation in SMAPI 4.0 & Stardew Valley 1.6.
2022-05-15fix typoJesse Plamondon-Willard
2022-05-15reduce performance impact of deprecation warningsJesse Plamondon-Willard
Creating a stack is *very* slow, so it should be avoided if possible until after the duplicate-warning check.
2022-05-14remove warning for mods which use `dynamic`Jesse Plamondon-Willard
2022-05-11log time change in verbose modeJesse Plamondon-Willard
2022-05-11rewrite asset operations to reduce allocationsJesse Plamondon-Willard
• When raising AssetRequested, SMAPI now creates a single event args model and reuses it for each handler. • There's now a single AssetOperationGroup per asset, which tracks the loaders/editors registered by every mod for that asset. • The operation group's loader/editor lists are now used directly instead of querying them.
2022-05-11don't raise events that have no listenersJesse Plamondon-Willard
This mainly avoids allocating event arg objects unnecessarily.
2022-05-11replace event.HasListeners() with propertyJesse Plamondon-Willard
2022-05-11cache verbose flag in main update methodJesse Plamondon-Willard
2022-05-11move filtering only used in one place out of managed eventJesse Plamondon-Willard
2022-05-11optimize raising events for the most common casesJesse Plamondon-Willard
2022-05-11fix error when mod loads XNB mod file without extensionJesse Plamondon-Willard
2022-05-11add error code to SContentLoadExceptionJesse Plamondon-Willard
2022-05-10remove unused IsPerformanceCritical event fieldJesse Plamondon-Willard
2022-05-08use records for asset edit operationsJesse Plamondon-Willard
2022-05-08only build AssetWithoutLocale when it's usedJesse Plamondon-Willard
2022-05-08avoid [Obsolete] without message for clarityJesse Plamondon-Willard
2022-05-08optimize case where there's no legacy IAssetLoader/IAssetEditor instancesJesse Plamondon-Willard