Commit Graph

3308 Commits

Author SHA1 Message Date
Jesse Plamondon-Willard 2e918823ba
Merge pull request #870 from atravita-mods/arraypooling
Use array pooling and various optimizations to reduce allocations
2022-10-08 18:03:14 -04:00
Jesse Plamondon-Willard 2e0bc5ddfe
tweak new code 2022-10-08 17:45:50 -04:00
Jesse Plamondon-Willard 40d5cd7c05
use try..finally to make sure rented arrays are returned 2022-10-08 17:42:32 -04:00
atravita-mods 48d0f70ffd
fix indexing math again. 2022-10-08 13:27:08 -04:00
atravita-mods 798a56bd2e
Avoid copying memory for contingous buffers. 2022-10-08 13:27:07 -04:00
atravita-mods 496c438be2
fix indexing again, because apparently I'm bad at math now? 2022-10-08 13:27:07 -04:00
atravita-mods a3b8546ec8
cleanup and comments 2022-10-08 13:27:07 -04:00
atravita-mods 09fd12ddfe
use startindex/endindex since I've already calculated those... 2022-10-08 13:27:07 -04:00
atravita-mods c1d5d19e43
Skip transparent rows at the start and end when doing a patch overlay. 2022-10-08 13:27:06 -04:00
atravita-mods ce63efa2f4
Avoid making copy if the source image is just taller than the sourceArea. 2022-10-08 13:27:06 -04:00
atravita-mods ff523c619a
fix fast-track array copying 2022-10-08 13:27:06 -04:00
atravita-mods d29c01b815
Partially revert "Favor record structs when there are four or fewer elements."
This reverts commit f5d49515c4eddfb415903a89d70654cf9b6de299.
2022-10-08 13:27:06 -04:00
atravita-mods 627100509c
hide throwhelper from stack trace in dotnet 6 2022-10-08 13:27:06 -04:00
atravita-mods 0a2a1a08de
Favor record structs when there are four or fewer elements. 2022-10-08 13:27:05 -04:00
atravita-mods 581763c363
Skip math if above is fully opaque. 2022-10-08 13:27:05 -04:00
atravita-mods 4a1055e573
arraypool in the modcontentmanager, a bit of fussing 2022-10-08 13:27:05 -04:00
atravita-mods 78643710ce
Use array pools in editing images. 2022-10-08 13:27:05 -04:00
atravita-mods 7c90385d8d
Pre-calculate the strings for log levels. 2022-10-08 13:27:04 -04:00
Jesse Plamondon-Willard a7f03abe25
change square brackets to round ones in manifest name 2022-10-08 13:16:38 -04:00
Jesse Plamondon-Willard 5a0d337fcf
update FluentHttpClient 2022-10-07 00:21:09 -04:00
Jesse Plamondon-Willard 2c25426578
fix issues with BundleExtraAssemblies 2022-10-07 00:16:00 -04:00
pizzaoverhead c6b3446e9c Added checking for alternative Steam library install locations when looking for the Stardew Valley install. 2022-09-29 13:33:45 +01:00
Jesse Plamondon-Willard c0e31d17a6
fix handling of GitHub prerelease versions marked as non-prerelease 2022-09-28 23:21:12 -04:00
Khloe Leclair e8da8fff51 Initial work on a way for mods to return specific API instances to specific mods. 2022-09-26 15:18:36 -04:00
atravita-mods 715b9b09ba
Update ModScanner.cs
Add a few more files to the ignored files like .7z
2022-09-18 12:05:46 -04:00
Tyler f0e52061e3
fix ComparableListWatcher not removing items in zero case 2022-09-05 13:11:36 -05:00
Jesse Plamondon-Willard 41e95642f0
prepare for release 2022-08-31 17:15:58 -04:00
Jesse Plamondon-Willard 5af87fc3be
remove compatibility section in the new app manifest
This apparently leads to NoSuitableGraphicsDeviceException errors when launching SMAPI for some players.
2022-08-31 17:08:30 -04:00
Jesse Plamondon-Willard 8b6c732d71
prepare for release 2022-08-29 18:18:21 -04:00
Jesse Plamondon-Willard 47a68fbb7b
deprecate PyTK compatibility mode 2022-08-29 18:17:53 -04:00
Jesse Plamondon-Willard 2bb8e8353b
update compatibility workaround for the recent PyTK update 2022-08-29 18:00:41 -04:00
Jesse Plamondon-Willard c2f474bf88
distinguish empty/XNB folders from invalid manifest for error-tracking 2022-08-24 17:49:17 -04:00
Jesse Plamondon-Willard 1d5017f119
fix broken mods with no ID listed as duplicate 2022-08-24 17:49:12 -04:00
Jesse Plamondon-Willard f3a79219e8
prepare for release 2022-08-20 17:01:07 -04:00
Jesse Plamondon-Willard f780d140f0
fix early mod load errors incorrectly suppressed 2022-08-20 16:36:15 -04:00
Jesse Plamondon-Willard 263130bafc
fix deprecation notices split into two messages unnecessarily 2022-08-20 16:15:29 -04:00
Jesse Plamondon-Willard b2103bbfa6
update schema for Content Patcher 1.28.0 2022-08-18 22:39:37 -04:00
Jesse Plamondon-Willard c51a593e93
fix log parser error if a mod logged a null character 2022-08-16 22:03:22 -04:00
Jesse Plamondon-Willard 5ab87efaa0
log error if mod files are detected directly under Mods folder 2022-08-16 22:03:21 -04:00
Jesse Plamondon-Willard d813c4e2c8
fix log parsing for invalid content packs (#860) 2022-08-08 22:27:07 -04:00
Jesse Plamondon-Willard e376386d25
set error code on exit (#868) 2022-08-08 21:43:46 -04:00
Jesse Plamondon-Willard 352fa4759e
fix error when a mod is both duplicated and missing the DLL 2022-08-08 19:54:07 -04:00
Jesse Plamondon-Willard f3ff334c08
Merge pull request #869 from atravita-mods/patch-1
Add error message for invalid PNG
2022-08-08 19:46:30 -04:00
Jesse Plamondon-Willard e7b93e2ec2
Merge pull request #867 from lanturnalis/develop
Add condition to DebugType to allow for overriding
2022-08-08 19:46:01 -04:00
Jesse Plamondon-Willard 08eafe7d89
tweak new error text 2022-08-08 19:42:40 -04:00
Jesse Plamondon-Willard 8c58bdae6f
remove DebugType build property
The 'portable' format is preferred in newer .NET versions, but it's set by default now so we don't need to override it anymore.
2022-08-08 19:32:58 -04:00
atravita-mods 7a3b0e180f
Adds an error message for an invaild png 2022-08-05 17:21:53 -04:00
Jesse Plamondon-Willard ab34b6142d
undo $@ to $* change per discussion 2022-07-28 21:47:21 -04:00
Jesse Plamondon-Willard 5371dc3fce
Merge pull request #865 from ishanjalan/unix-launcher-changes
Apply suggested fixes from Rider in Unix launcher

* [error] Argument mixes string and array. Use * or separate argument.
* [warn] Declare and assign separately to avoid masking return values.
* [warn] Quote to prevent word splitting.
* [hint] echo may not expand escape sequences. Use printf.
* [hint] read without -r will mangle backslashes.
* [hint] Double quote to prevent globbing and word splitting.
2022-07-28 21:28:41 -04:00
Jesse Plamondon-Willard 1095ce6682
Merge pull request #864 from KediDili/develop
Fix Turkish translation
2022-07-28 21:09:49 -04:00
Jesse Plamondon-Willard 7c1388a843
Merge pull request #863 from Pathoschild/dependabot/nuget/src/SMAPI.Web/Azure.Storage.Blobs-12.13.0
Bump Azure.Storage.Blobs from 12.12.0 to 12.13.0
2022-07-28 21:07:43 -04:00
lanturnalis edf2c5dbea
Add condition to DebugType to allow for overriding 2022-07-25 21:31:09 -05:00
Ishan Jalan dd2e3e9d93 Jetbrains Rider suggestions
I ran the file on Rider and it had a few suggestions

<img width="506" alt="image" src="https://user-images.githubusercontent.com/44338423/180635394-cb45defa-47f4-444c-ad10-e0fc89522fe7.png">
2022-07-24 12:07:38 +05:30
Ishan Jalan a50a730886 unix-launcher.sh optimisations
I ran the file through Rider which used Intellisense(?) to suggest changes in addition to moving from .sh to .command
2022-07-24 12:01:34 +05:30
KediDili fd3850add9 Fix for mistranslation in tr.json
Somebody accidentally translated tr.json to Russian. This PR fixes that.
2022-07-22 21:24:15 +03:00
dependabot[bot] ea4664856d
Bump Azure.Storage.Blobs from 12.12.0 to 12.13.0 in /src/SMAPI.Web
Bumps [Azure.Storage.Blobs](https://github.com/Azure/azure-sdk-for-net) from 12.12.0 to 12.13.0.
- [Release notes](https://github.com/Azure/azure-sdk-for-net/releases)
- [Commits](https://github.com/Azure/azure-sdk-for-net/compare/Azure.Storage.Blobs_12.12.0...Azure.Storage.Blobs_12.13.0)

---
updated-dependencies:
- dependency-name: Azure.Storage.Blobs
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-21 22:46:05 +00:00
Ishan Jalan ea4307a282 Update unix-launcher.sh
This will open the default shell. Works for me after testing.
2022-07-20 22:30:09 +05:30
Jesse Plamondon-Willard 3da5917eed
update Pintail 2022-07-17 11:29:50 -04:00
Jesse Plamondon-Willard 88517715a3
update image reference 2022-07-17 11:04:45 -04:00
Ishan Jalan da1eca3696 Moving Sidebar GIF to SVG 2022-07-17 09:53:52 +05:30
Jesse Plamondon-Willard 830d2c57cc
update log parser for new update alert format 2022-07-09 01:06:32 -04:00
Ishan Jalan 6d9dcdc2f8
Update pufferchick-cool.svg 2022-07-09 00:58:26 -04:00
Jesse Plamondon-Willard 521129ad21
raise deprecation levels 2022-07-09 00:53:11 -04:00
Jesse Plamondon-Willard 477ecbab6e
bypass browser cache & delete unused images 2022-07-08 19:36:32 -04:00
Ishan Jalan 5da690cbef
Update pufferchick-cool.svg 2022-07-08 19:31:44 -04:00
Ishan Jalan a52f24307b
pufferchick-cool updated [2] 2022-07-08 19:31:41 -04:00
Ishan Jalan 173bc4f517
Updated pufferchick cool 2022-07-08 19:31:37 -04:00
Ishan Jalan 8eeda8b4c4
SVGs for pufferchick and pufferchick-cool
SVG > PNG
2022-07-08 19:31:28 -04:00
Jesse Plamondon-Willard 4850e80e56
Merge pull request #855 from spacechase0/appmanifest
Add app.manifest, fixing DPI awareness
2022-07-08 19:15:33 -04:00
Jesse Plamondon-Willard 0c787de2df
match settings used by the game 2022-07-08 19:13:45 -04:00
Jesse Plamondon-Willard bc71665c1c
apply editorconfig 2022-07-08 19:11:40 -04:00
Jesse Plamondon-Willard 795e808063
Merge pull request #852 from TehPers/TehPers/search-local-deps
Search assembly directory for dependencies
2022-07-08 19:03:59 -04:00
Jesse Plamondon-Willard 1b3a1a48d0
refactor assembly resolver to avoid repeatedly copying search directory list 2022-07-08 19:02:33 -04:00
Jesse Plamondon-Willard 1b25710cf2
fix installer partly applying color theme before it's selected 2022-07-08 17:48:01 -04:00
Jesse Plamondon-Willard dcb3a97727
add log parser warning for PyTK compatibility mode 2022-07-08 17:44:27 -04:00
Jesse Plamondon-Willard bcb9e25d86
prepare for release 2022-07-06 22:25:45 -04:00
Jesse Plamondon-Willard 9c9552531f
fix build warnings 2022-07-06 19:25:15 -04:00
Jesse Plamondon-Willard 4d9fd63d9e
update code annotations 2022-07-06 19:24:49 -04:00
Jesse Plamondon-Willard 2347644a1f
update compatibility list for broken CFAutomate unofficial update 2022-07-06 18:36:29 -04:00
Jesse Plamondon-Willard ed1705d4d7
Merge pull request #854 from ishanjalan/develop
Current version in mod check
2022-07-05 23:23:26 -04:00
Jesse Plamondon-Willard 543e45f9bd
remove artifacts, tweak text 2022-07-05 23:21:51 -04:00
Jesse Plamondon-Willard 454f3a45ba
fix trace logs not tracking reloaded map tilesheets as asset propagation 2022-07-05 23:19:53 -04:00
Jesse Plamondon-Willard 42099f24ee
improve log parser's 'suggested fixes' styles 2022-07-05 22:36:02 -04:00
Jesse Plamondon-Willard 0ba4fd1785
detect missing/outdated Error Handler for 'suggested fixes' section 2022-07-05 22:09:46 -04:00
Jesse Plamondon-Willard f3a4b316b7
fix PyTK compatibility mode not handling some edge cases 2022-07-05 19:01:28 -04:00
Chase Warrington f44a2fbfcf Add app.manifest, fixing DPI awareness 2022-07-04 20:42:27 -04:00
Ishan Jalan d717e246b6 Current version in mod check
Added "(You have x.x.x)" to the mod update check.
2022-07-02 08:42:35 +05:30
Jesse Plamondon-Willard bd88727948
remove obsolete override
SMAPI no longer raises UsesDynamic warnings.
2022-06-28 20:48:58 -04:00
Jesse Plamondon-Willard 6b411d1dee
fix deprecation check 2022-06-28 20:48:28 -04:00
TehPers 0c0f7898f4 Search assembly directory for dependencies 2022-06-28 16:37:58 -07:00
Jesse Plamondon-Willard 6d11c41fac
migrate update checks to FluentHttpClient
WebClient isn't needed for compatibility with macOS after the .NET 5 update in Stardew Valley 1.5.5, and causes noticeable lag for some players even when running on a background thread.
2022-06-28 18:17:27 -04:00
Jesse Plamondon-Willard 5e1212e99a
update schema for Content Patcher 1.27.0 2022-06-28 01:13:11 -04:00
Jesse Plamondon-Willard bbc476a2cf
split local deploy into its own targets file 2022-06-26 14:41:35 -04:00
Jesse Plamondon-Willard ca9efad7a7
avoid cancellation token for tracking exit state
This apparently causes noticeable lag for a minority of players.
2022-06-24 17:00:39 -04:00
Jesse Plamondon-Willard 525ca7c9c9
fix config.user.json overrides no longer applied 2022-06-24 02:06:25 -04:00
Jesse Plamondon-Willard 1021c32910
update fluent HTTP client 2022-06-22 20:15:25 -04:00
Jesse Plamondon-Willard be086cf005
avoid unneeded overhead of ConcurrentQueue 2022-06-22 01:53:37 -04:00
Jesse Plamondon-Willard c91fbc82f8
deprecate support for updating ancient versions of SMAPI 2022-06-20 18:02:41 -04:00
Jesse Plamondon-Willard dab1ef6acc
add flag to disable deprecated code 2022-06-20 18:01:48 -04:00
Jesse Plamondon-Willard e0ef8a20a5
fix mod count in log parser metadata 2022-06-19 17:21:53 -04:00
Jesse Plamondon-Willard 011aa4c9d0
prepare for release 2022-06-16 22:14:09 -04:00
Jesse Plamondon-Willard 525351e905
fix case-sensitive mod ID check 2022-06-16 19:21:38 -04:00
Jesse Plamondon-Willard e8bcbf7e5a
update compatibility list 2022-06-12 20:29:56 -04:00
Jesse Plamondon-Willard 15f829e48c
patch PyTK temporarily to fix scale-up compatibility in SMAPI 3.15 2022-06-12 12:26:51 -04:00
Jesse Plamondon-Willard 0189b282f4
add image compatibility mode for PyTK 2022-06-10 22:14:28 -04:00
Jesse Plamondon-Willard 11a497c1f6
update Pintail 2022-06-10 00:05:23 -04:00
Jesse Plamondon-Willard 0bb9fc4293
update Newtonsoft.Json 2022-06-10 00:05:22 -04:00
Jesse Plamondon-Willard b6d15ec57f
update unit test & web dependencies 2022-06-10 00:04:27 -04:00
Jesse Plamondon-Willard 62328e4384
tweak new code, update release notes 2022-06-10 00:04:26 -04:00
Ameisen 03897776e0
Cleaning up and optimizing `ContentCache.cs` 2022-06-10 00:04:26 -04:00
Jesse Plamondon-Willard 43e9e2cfe2
fix accidental case-sensitivity change 2022-06-10 00:04:26 -04:00
Jesse Plamondon-Willard 565677c18c
use IRawTextureData instead of intermediate tuple 2022-06-10 00:04:26 -04:00
Jesse Plamondon-Willard ba7f5701de
simplify asset type validaiton 2022-06-10 00:04:25 -04:00
Jesse Plamondon-Willard 87c7095e8d
apply style conventions 2022-06-10 00:04:25 -04:00
Ameisen 5585f5e876
Refactored ModContentManager.cs so it actually fit on my 1440p screens.
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-10 00:04:25 -04:00
Jesse Plamondon-Willard 9d21e0bbec
simplify pixel conversion loop 2022-06-10 00:04:25 -04:00
Jesse Plamondon-Willard 4f6965eef3
encapsulate loading the raw image data for mod patching 2022-06-10 00:04:24 -04:00
Jesse Plamondon-Willard 5ffa260e02
add validation error when loading XNB file as IRawTextureData 2022-06-10 00:04:24 -04:00
Jesse Plamondon-Willard b6a8dcdd46
update to Harmony 2.2.1 2022-06-10 00:04:24 -04:00
Jesse Plamondon-Willard db578c389e
drop support for pre-Pintail proxying 2022-06-10 00:04:23 -04:00
Jesse Plamondon-Willard 769475166a
enable raw image loading by default, rename setting 2022-06-10 00:04:23 -04:00
Jesse Plamondon-Willard 4708385f69
add IRawTextureData asset type 2022-06-10 00:04:23 -04:00
Jesse Plamondon-Willard a546fd113f
add experimental image load rewrite 2022-06-10 00:04:22 -04:00
Jesse Plamondon-Willard cb6fcb0450
rework VerboseLogging option to allow enabling for specific mods 2022-06-10 00:04:22 -04:00
Jesse Plamondon-Willard 8713914a1a
avoid NPC pathfinding rebuild if reachable locations didn't change 2022-06-08 23:33:09 -04:00
Jesse Plamondon-Willard fdb74df8a4
simplify repeated hash set creation 2022-06-06 21:28:57 -04:00
Jesse Plamondon-Willard 1cded44f7a
prepare for release 2022-06-01 19:58:35 -04:00
Jesse Plamondon-Willard bf960ce283
add backwards compatibility for mods using now-unused dependencies 2022-05-31 21:23:44 -04:00
Jesse Plamondon-Willard 9992915f56
replace MemoryCache with custom cache
This was causing significant frame stutters for some players since the migration to .NET 5 in Stardew Valley 1.5.5.
2022-05-31 18:32:23 -04:00
Jesse Plamondon-Willard 9ef3f7edb1
remove `System.Reflection.Metadata.MetadataUpdater.IsSupported: false` in runtime config
This doesn't seem to be needed, and was probably added as part of the early experimenting with self-contained .NET.
2022-05-31 18:25:12 -04:00
Jesse Plamondon-Willard e4cd7c8eb0
prepare for release 2022-05-27 18:08:30 -04:00
Jesse Plamondon-Willard e8c6221d96
fix typo 2022-05-27 18:04:39 -04:00
Jesse Plamondon-Willard 064346594d
fix split-screen error when a mod provides a localized asset in one screen but not another 2022-05-24 18:12:06 -04:00
Jesse Plamondon-Willard 5675f9fceb
add watcher names to simplify troubleshooting 2022-05-23 12:57:33 -04:00
Jesse Plamondon-Willard 87ac7fc403
fix nullable annotations in NetListWatcher 2022-05-23 12:57:33 -04:00
Jesse Plamondon-Willard 9933acad35
use <inheritdoc/> in watchers 2022-05-23 12:57:33 -04:00
Jesse Plamondon-Willard 62665649bd
shortcut common cases in hot code paths 2022-05-23 12:19:06 -04:00
Jesse Plamondon-Willard 336cc1cc0f
prepare for release 2022-05-22 14:38:33 -04:00
Jesse Plamondon-Willard 7e7ac459a5
fix error when mod localizes an unlocalizable asset and then stops doing so 2022-05-21 18:06:23 -04:00
Jesse Plamondon-Willard e6ef71bae1
add tick cache to asset propagation 2022-05-20 17:39:05 -04:00
Jesse Plamondon-Willard 7332879351
defer asset reload during propagation when possible 2022-05-19 21:04:32 -04:00
Jesse Plamondon-Willard 0a050622f6
tweak asset propagator to avoid assumption that assets must be reloaded 2022-05-19 21:04:32 -04:00
Jesse Plamondon-Willard 1ddf70697e
simplify asset propagation a bit to prepare for the upcoming SDV 1.6 2022-05-18 20:13:09 -04:00
Jesse Plamondon-Willard f8b62e271e
fix asset type when checking if a mod asset exists 2022-05-18 20:04:51 -04:00
Jesse Plamondon-Willard cb11f1e2ca
re-add internal content manager for asset propagation
This will be used by the new asset propagation in SMAPI 4.0 & Stardew Valley 1.6.
2022-05-18 20:02:12 -04:00
Jesse Plamondon-Willard 3a161a30a7
update for the new CurseForge API 2022-05-18 19:23:26 -04:00
Jesse Plamondon-Willard cd843dc10b
prepare for release 2022-05-15 19:14:28 -04:00
Jesse Plamondon-Willard 3253797cba
fix wiki client not being disposed 2022-05-15 19:13:32 -04:00
Jesse Plamondon-Willard 8505f4ae4d
fix typo 2022-05-15 15:07:52 -04:00
Jesse Plamondon-Willard 048f41244f
reduce performance impact of deprecation warnings
Creating a stack is *very* slow, so it should be avoided if possible until after the duplicate-warning check.
2022-05-15 01:54:01 -04:00