Dean Herbert
ef42c6ecdf
Add missing xmldoc
2022-06-30 16:51:31 +09:00
Dean Herbert
e34c2f0aca
Remove unnecessary nullable-enable
2022-06-30 16:47:26 +09:00
Dean Herbert
82134ad1a6
Allow null
parameter to GetWorkingBeatmap
for now
2022-06-30 16:46:28 +09:00
Dean Herbert
98938821e5
Merge branch 'master' into beatmap-update-flow
2022-06-30 16:44:17 +09:00
Dean Herbert
356c0501ec
Guard again potential nulls in RealmNamedFileUsage
...
Hopefully help in figuring out https://sentry.ppy.sh/organizations/ppy/issues/3679/?project=2&query=user%3A%22id%3A10078484%22
2022-06-30 15:40:57 +09:00
Dean Herbert
78d86fd3ff
Fix PerformWrite
not rolling back transaction on exception
2022-06-30 15:15:09 +09:00
Dean Herbert
e89f220e9a
Merge pull request #18949 from smoogipoo/fix-flaky-star-display-test
...
Ensure PlaylistItem's beatmap is not null
2022-06-30 15:15:06 +09:00
Dan Balasescu
c6520de749
Ensure PlaylistItem beatmap is not null
2022-06-30 14:24:49 +09:00
Dan Balasescu
edc4ace17e
Attach DT with NC, SD with PF, and Cinema with Autoplay
2022-06-30 11:52:30 +09:00
Dean Herbert
582175c3a4
Update framework
2022-06-29 22:57:52 +09:00
Dean Herbert
7cb4e32c17
Add one more lock to appease CI
2022-06-29 22:45:19 +09:00
Dean Herbert
a3b4a515fc
Merge branch 'master' into realm-fix-async-write-after-disposal
2022-06-29 22:39:05 +09:00
Dean Herbert
18d465eff7
Guard against NaN
star difficulty results
2022-06-29 21:02:29 +09:00
Dean Herbert
32af4e41ea
Add back thread safety and locking as required
2022-06-29 20:56:01 +09:00
Salman Ahmed
87e3b44181
Ensure icon is loaded inside try-catch
2022-06-29 13:37:42 +03:00
Salman Ahmed
e3eba58cb6
Catch in triangles intro
2022-06-29 13:37:42 +03:00
Dean Herbert
6c64cea057
Catch a second location
2022-06-29 18:56:15 +09:00
Dean Herbert
b092e6937a
Guard against ruleset icon creation failures to avoid whole game death
2022-06-29 18:51:07 +09:00
Dan Balasescu
2989803b71
Merge branch 'master' into speed-acc-scaling
2022-06-29 16:15:20 +09:00
Dan Balasescu
f435f0d8e4
Merge pull request #18920 from andy840119/remove-nullable-disable-in-the-migration
...
Remove the nullable disable annotations in the class belongs to the migration namespace.
2022-06-29 14:40:11 +09:00
Dan Balasescu
fde5b2cf2b
Merge pull request #18921 from andy840119/remove-nullable-disable-in-the-localisation
...
Remove the nullable disable annotation in the localisation.
2022-06-29 13:51:50 +09:00
Dan Balasescu
114f1b47c4
Merge branch 'master' into remove-nullable-disable-in-the-migration
2022-06-29 13:11:45 +09:00
Bartłomiej Dach
a0125cbb62
Merge branch 'master' into fix-da-settings-slider-padding
2022-06-28 20:53:07 +02:00
Dean Herbert
ecdb30d215
Fix one more case of collection modification during enumeration
...
https://sentry.ppy.sh/share/issue/a61c27b2a63a4a6aa80e75873f9d87ca/
2022-06-29 02:28:23 +09:00
Joseph Madamba
aacded0ecf
Fix difficulty adjust settings having more padding on sliders
2022-06-28 07:33:05 -07:00
andy840119
de7f2a0bba
Remove the nullable disable annotation in the localisation.
2022-06-28 20:59:57 +08:00
andy840119
2269f1046e
Remove the nullable disable annotations.
2022-06-28 20:59:03 +08:00
Dean Herbert
7c9c499e19
Update resources (translation updates)
2022-06-28 19:21:46 +09:00
Dean Herbert
c282e19316
Update language initialisation in line with framework LocalisationManager
changes
2022-06-28 18:19:48 +09:00
Dean Herbert
975ba83838
Update framework
2022-06-28 18:19:48 +09:00
Dean Herbert
e10ac45fd7
Remove probably redundant realmLock
...
As far as I can tell all accesses are safe due to update thread
guarantees. The only weird one may be async writes during a
`BlockAllOperations`, but the `Compact` loop should handle this quite
amicably.
2022-06-28 16:55:54 +09:00
Dan Balasescu
d630b62cfc
Merge pull request #18915 from peppy/slider-snaking-test-refactoring
...
Apply various refactorings to `TestSceneSliderSnaking`
2022-06-28 16:16:35 +09:00
Dan Balasescu
8e4a6c43b5
Merge pull request #18914 from peppy/spectator-playback-test-leniences
...
Increase leniences on `TestSceneSpectatorPlayback.TestWithSendFailure`
2022-06-28 16:15:51 +09:00
Dean Herbert
6bfd351dec
Add logging of GameplayClockContainer
seeks
2022-06-28 15:23:29 +09:00
Dean Herbert
35745c83b7
Replace dodgy SetUpSteps
overriding with usage of HasCustomSteps
2022-06-28 15:19:02 +09:00
Dean Herbert
22b254e5c5
Handle task exception outside of schedule to avoid unobserved exceptions
2022-06-28 15:09:28 +09:00
Dean Herbert
c1075d113f
Add logging around current channel changes and join requests
...
Tracking down a flaky test
(https://teamcity.ppy.sh/buildConfiguration/Osu_Build/553?hideProblemsFromDependencies=false&expandBuildTestsSection=true&hideTestsFromDependencies=false ):
```csharp
TearDown : System.TimeoutException : "PM Channel 1 displayed" timed out
--TearDown
at osu.Framework.Testing.Drawables.Steps.UntilStepButton.<>c__DisplayClass11_0.<.ctor>b__0()
at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered)
at osu.Framework.Testing.TestScene.runNextStep(Action onCompletion, Action`1 onError, Func`2 stopCondition)
--- End of stack trace from previous location ---
at osu.Framework.Testing.TestSceneTestRunner.TestRunner.RunTestBlocking(TestScene test)
at osu.Game.Tests.Visual.OsuTestScene.OsuTestSceneTestRunner.RunTestBlocking(TestScene test) in /opt/buildagent/work/ecd860037212ac52/osu.Game/Tests/Visual/OsuTestScene.cs:line 503
at osu.Framework.Testing.TestScene.RunTestsFromNUnit()
------- Stdout: -------
[runtime] 2022-06-27 23:18:55 [verbose]: 💨 Class: TestSceneChatOverlay
[runtime] 2022-06-27 23:18:55 [verbose]: 🔶 Test: TestKeyboardNextChannel
[runtime] 2022-06-27 23:18:55 [verbose]: Chat is now polling every 60000 ms
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #1 Setup request handler
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #2 Add test channels
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #3 Show overlay with channels
[runtime] 2022-06-27 23:18:55 [verbose]: Unhandled Request Type: osu.Game.Online.API.Requests.CreateChannelRequest
[network] 2022-06-27 23:18:55 [verbose]: Failing request osu.Game.Online.API.Requests.CreateChannelRequest (System.InvalidOperationException: DummyAPIAccess cannot process this request.)
[runtime] 2022-06-27 23:18:55 [verbose]: Unhandled Request Type: osu.Game.Online.API.Requests.CreateChannelRequest
[network] 2022-06-27 23:18:55 [verbose]: Failing request osu.Game.Online.API.Requests.CreateChannelRequest (System.InvalidOperationException: DummyAPIAccess cannot process this request.)
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #4 Select channel 1
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #5 Channel 1 is visible
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #6 Press document next keys
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #7 Channel 2 is visible
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #8 Press document next keys
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #9 PM Channel 1 displayed
[network] 2022-06-27 23:18:55 [verbose]: Request to https://a.ppy.sh/587 failed with System.Net.WebException: NotFound.
[network] 2022-06-27 23:18:55 [verbose]: Request to https://a.ppy.sh/503 failed with System.Net.WebException: NotFound.
[runtime] 2022-06-27 23:19:05 [verbose]: 💥 Failed (on attempt 5,550)
[runtime] 2022-06-27 23:19:05 [verbose]: ⏳ Currently loading components (0)
[runtime] 2022-06-27 23:19:05 [verbose]: 🧵 Task schedulers
[runtime] 2022-06-27 23:19:05 [verbose]: LoadComponentsAsync (standard) concurrency:4 running:0 pending:0
[runtime] 2022-06-27 23:19:05 [verbose]: LoadComponentsAsync (long load) concurrency:4 running:0 pending:0
[runtime] 2022-06-27 23:19:05 [verbose]: 🎱 Thread pool
[runtime] 2022-06-27 23:19:05 [verbose]: worker: min 1 max 32,767 available 32,766
[runtime] 2022-06-27 23:19:05 [verbose]: completion: min 1 max 1,000 available 1,000
[runtime] 2022-06-27 23:19:05 [debug]: Focus on "ChatTextBox" no longer valid as a result of unfocusIfNoLongerValid.
[runtime] 2022-06-27 23:19:05 [debug]: Focus changed from ChatTextBox to nothing.
```
This kind of logging should be helpful:
```csharp
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #5 Channel 1 is visible
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #6 Press document next keys
[runtime] 2022-06-28 04:59:57 [verbose]: Current channel changed to #channel-2
[runtime] 2022-06-28 04:59:57 [debug]: Pressed (DocumentNext) handled by TestSceneChatOverlay+TestChatOverlay.
[runtime] 2022-06-28 04:59:57 [debug]: KeyDownEvent(PageDown, False) handled by ManualInputManager+LocalPlatformActionContainer.
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #7 Channel 2 is visible
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #8 Press document next keys
[runtime] 2022-06-28 04:59:57 [verbose]: Current channel changed to test user 685
[runtime] 2022-06-28 04:59:57 [debug]: Pressed (DocumentNext) handled by TestSceneChatOverlay+TestChatOverlay.
[runtime] 2022-06-28 04:59:57 [debug]: KeyDownEvent(PageDown, False) handled by ManualInputManager+LocalPlatformActionContainer.
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #9 PM Channel 1 displayed
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #10 Press document next keys
[runtime] 2022-06-28 04:59:57 [verbose]: Current channel changed to test user 218
```
2022-06-28 14:00:30 +09:00
Bartłomiej Dach
93e13ef890
Merge branch 'master' into no-invalid-operation-without-message
2022-06-27 19:11:08 +02:00
Dean Herbert
54fe6b7df3
Fix incorrect string interpolation
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-06-28 01:43:09 +09:00
Dean Herbert
569fde4b47
Add messages to all InvalidOperationException
s
...
Without this, they can be very non-descript and hard to track down
2022-06-28 01:34:25 +09:00
Dean Herbert
b28cfc222b
Schedule unregister instead
2022-06-28 01:19:28 +09:00
Dean Herbert
3e3843dcf9
Fix potential crash on CloseAllOverlays
due to collection mutation
2022-06-28 00:32:36 +09:00
Dan Balasescu
d43b980a17
Merge pull request #18872 from peppy/add-working-beatmap-changed-logging
...
Add various logging of global `WorkingBeatmap` state changes
2022-06-27 21:34:05 +09:00
Dan Balasescu
c2b03cb6b9
Merge pull request #18875 from peppy/logging-finalise-selection-abort-operations
...
Add logging for various cases of `SongSelect.FinaliseSelection` being aborted
2022-06-27 21:33:51 +09:00
Dan Balasescu
6c6de9ce53
Fix typo
2022-06-27 20:40:02 +09:00
Dan Balasescu
396e7fc166
Merge pull request #18862 from peppy/empty-beatmap-file-fix-2
...
Fix second case of empty beatmaps being reported to sentry as errors
2022-06-27 20:37:57 +09:00
Dean Herbert
aa7d54f8b6
Add logging for various cases of SongSelect.FinaliseSelection
being aborted
2022-06-27 20:10:17 +09:00
Dean Herbert
f355c3a3c9
Merge pull request #18864 from peppy/fix-realm-audio-track-test-fail
...
Centralise and harden editor-ready-for-use check
2022-06-27 19:42:49 +09:00
Dean Herbert
83982d258d
Throw immediately if attempting to WriteAsync
after disposed
2022-06-27 19:34:28 +09:00
Dean Herbert
c39c99bd43
Ensure all async writes are completed before realm is disposed
2022-06-27 19:21:05 +09:00
Dan Balasescu
8f91ce8f0c
Merge pull request #18871 from peppy/fix-realm-assertion-during-tests
...
Fix occasional failure in realm test proceedings due to incorrect `Debug.Assert`
2022-06-27 18:48:47 +09:00
Dean Herbert
50c1c066de
Add various logging of global WorkingBeatmap
state changes
2022-06-27 18:41:31 +09:00
Dean Herbert
0ba29b6fa6
Use currentScreen
instead to make sure the screen we care about is loaded
2022-06-27 18:28:00 +09:00
Dan Balasescu
b13fa924fd
Merge pull request #18865 from peppy/fix-flaky-chat-test
...
Fix chat tests failing 1/10000 runs
2022-06-27 18:06:00 +09:00
Dean Herbert
f6a61472c4
Fix occasional failure in realm test proceedings due to incorrect Debug.Assert
...
After a `BlockAllOperations`, the restoration of the `updateRealm`
instance is not instance. It is posted to a `SynchronizationContext`.
The assertion which has been removed in this commit was assuming it
would always be an immediate operation.
To ensure this works as expected, I've tracked the initialised state via
a new `bool`.
```csharp
System.TimeoutException : Attempting to block for migration took too long.
1) Host threw exception System.AggregateException: One or more errors occurred. (: )
---> NUnit.Framework.AssertionException: :
at osu.Framework.Logging.ThrowingTraceListener.Fail(String message1, String message2)
at System.Diagnostics.TraceInternal.Fail(String message, String detailMessage)
at System.Diagnostics.TraceInternal.TraceProvider.Fail(String message, String detailMessage)
at System.Diagnostics.Debug.Fail(String message, String detailMessage)
at osu.Game.Database.RealmAccess.BlockAllOperations() in /opt/buildagent/work/ecd860037212ac52/osu.Game/Database/RealmAccess.cs:line 813
at osu.Game.OsuGameBase.<>c__DisplayClass108_1.<Migrate>b__0() in /opt/buildagent/work/ecd860037212ac52/osu.Game/OsuGameBase.cs:line 449
at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
at osu.Framework.Threading.Scheduler.Update()
at osu.Framework.Graphics.Drawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
```
https://teamcity.ppy.sh/buildConfiguration/Osu_Build/322?hideProblemsFromDependencies=false&hideTestsFromDependencies=false&expandBuildTestsSection=true
2022-06-27 18:01:12 +09:00
Dean Herbert
13dcaf82ad
Fix chat tests failing 1/10000 runs
...
31a447fda0/osu.Game/Online/Chat/ChannelManager.cs (L412-L414)
Sigh.
2022-06-27 16:50:10 +09:00
Dean Herbert
5a7d339cc8
Centralise and harden editor-ready-for-use check
...
Not only does this combine the check into one location, but it also adds
a check on the global `WorkingBeatmap` being updated, which is the only
way I can see the following failure happening:
```csharp
05:19:07 osu.Game.Tests: osu.Game.Tests.Visual.Editing.TestSceneEditorBeatmapCreation.TestAddAudioTrack
05:19:07 Failed TestAddAudioTrack [161 ms]
05:19:07 Error Message:
05:19:07 TearDown : System.NullReferenceException : Object reference not set to an instance of an object.
05:19:07 Stack Trace:
05:19:07 --TearDown
05:19:07 at osu.Game.Database.ModelManager`1.<>c__DisplayClass7_0.<AddFile>b__0(TModel managed) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 36
05:19:07 at osu.Game.Database.ModelManager`1.<>c__DisplayClass8_0.<performFileOperation>b__0(Realm realm) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 49
05:19:07 at osu.Game.Database.RealmExtensions.Write(Realm realm, Action`1 function) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\RealmExtensions.cs:line 14
05:19:07 at osu.Game.Database.ModelManager`1.performFileOperation(TModel item, Action`1 operation) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 46
05:19:07 at osu.Game.Database.ModelManager`1.AddFile(TModel item, Stream contents, String filename) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 36
05:19:07 at osu.Game.Screens.Edit.Setup.ResourcesSection.ChangeAudioTrack(FileInfo source) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Screens\Edit\Setup\ResourcesSection.cs:line 115
05:19:07 at osu.Game.Tests.Visual.Editing.TestSceneEditorBeatmapCreation.<TestAddAudioTrack>b__13_0() in C:\BuildAgent\work\ecd860037212ac52\osu.Game.Tests\Visual\Editing\TestSceneEditorBeatmapCreation.cs:line 101
05:19:07 at osu.Framework.Testing.Drawables.Steps.AssertButton.checkAssert()
05:19:07 at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered)
05:19:07 at osu.Framework.Testing.TestScene.runNextStep(Action onCompletion, Action`1 onError, Func`2 stopCondition)
```
2022-06-27 16:22:01 +09:00
Dan Balasescu
0fd2c010e5
Remove NRT disables from attributes classes
2022-06-27 16:07:15 +09:00
Dan Balasescu
0579780bb8
Add IBeatmapOnlineInfo parameter and use to extract more data
2022-06-27 16:07:15 +09:00
Dan Balasescu
f6a6538e96
Add more properties to IBeatmapOnlineInfo
2022-06-27 16:07:15 +09:00
Dean Herbert
10d1bbb131
Log global working beatmap updates in OsuGameBase
instead of OsuGame
2022-06-27 15:58:51 +09:00
Dean Herbert
01487a1185
Add assertion on realm re-fetch being not-null
2022-06-27 15:52:45 +09:00
Dean Herbert
13c8d33009
Fix second case of empty beatmaps being reported to sentry as errors
2022-06-27 15:29:01 +09:00
Dean Herbert
da61d0547f
Include archive name in import log output
2022-06-27 15:24:25 +09:00
Dan Balasescu
2b278ed324
Merge pull request #18841 from peppy/menu-cursor-better-rotation
...
Adjust menu cursor rotation to use a floating centre-point
2022-06-27 14:18:54 +09:00
Dean Herbert
1a22377e19
Fix test deadlock due to TPL threadpool saturation
...
As found in aggressive CI runs:
```csharp
00007F6F527F32B0 00007f74f937c72d (MethodDesc 00007f74f5545a78 + 0x22d System.Threading.ManualResetEventSlim.Wait(Int32, System.Threading.CancellationToken)), calling (MethodDesc 00007f74f51c0838 + 0 System.Threading.Monitor.Wait(System.Object, Int32))
00007F6F527F3330 00007f74f93861ca (MethodDesc 00007f74f5259100 + 0x10a System.Threading.Tasks.Task.SpinThenBlockingWait(Int32, System.Threading.CancellationToken)), calling (MethodDesc 00007f74f5545a78 + 0 System.Threading.ManualResetEventSlim.Wait(Int32, System.Threading.CancellationToken))
00007F6F527F3390 00007f74f9385d11 (MethodDesc 00007f74f52590e8 + 0x81 System.Threading.Tasks.Task.InternalWaitCore(Int32, System.Threading.CancellationToken)), calling (MethodDesc 00007f74f5259100 + 0 System.Threading.Tasks.Task.SpinThenBlockingWait(Int32, System.Threading.CancellationToken))
00007F6F527F33E0 00007f74fc3823af (MethodDesc 00007f74f5934c08 + 0x4f System.Threading.Tasks.Task`1[[System.Boolean, System.Private.CoreLib]].GetResultCore(Boolean)), calling (MethodDesc 00007f74f52590e8 + 0 System.Threading.Tasks.Task.InternalWaitCore(Int32, System.Threading.CancellationToken))
00007F6F527F3400 00007f74fb0aad92 (MethodDesc 00007f74fb28b000 + 0x122 osu.Game.Tests.Visual.OnlinePlay.OnlinePlayTestScene+<>c__DisplayClass21_0.<Setup>b__1(osu.Game.Online.API.APIRequest)), calling (MethodDesc 00007f74f5934be8 + 0 System.Threading.Tasks.Task`1[[System.Boolean, System.Private.CoreLib]].get_Result())
00007F6F527F3470 00007f74fa9c6dd7 (MethodDesc 00007f74f921f6c8 + 0x77 osu.Game.Online.API.DummyAPIAccess.PerformAsync(osu.Game.Online.API.APIRequest))
00007F6F527F34C0 00007f74fb13c718 (MethodDesc 00007f74fb4e0c50 + 0x538 osu.Game.Database.OnlineLookupCache`3+<performLookup>d__13[[System.Int32, System.Private.CoreLib],[System.__Canon, System.Private.CoreLib],[System.__Canon, System.Private.CoreLib]].MoveNext())
```
Going with the simplest solution, as what we had was pretty ugly to start with and I don't want to overthink this, just push a fix and hope for the best.
2022-06-26 16:42:29 +09:00
Dean Herbert
2ecab454aa
Adjust animations and tolerances to make things feel snappier
2022-06-25 19:50:10 +09:00
Dean Herbert
a039f9878a
Adjust menu cursor rotation to follow mouse, rather than be fixated around original click location
2022-06-25 19:33:44 +09:00
Bartłomiej Dach
a83c45b50e
Fix compile failures from framework breaking change
2022-06-24 16:07:14 +02:00
Bartłomiej Dach
df30bedab6
Update framework again
2022-06-24 16:01:52 +02:00
Dean Herbert
14327943a2
Update framework
2022-06-24 21:28:30 +09:00
Dean Herbert
31a447fda0
Update parameter discards
2022-06-24 21:26:19 +09:00
Dean Herbert
30eebf3511
Merge branch 'master' into c-sharp-10
2022-06-24 21:22:33 +09:00
Dean Herbert
7692bac35a
Simplify refetch (and ensure to invalidate after processing)
2022-06-24 21:02:38 +09:00
Dean Herbert
0c3d890f76
Fix reprocessing not working on import due to realm threading woes
2022-06-24 21:02:38 +09:00
Dean Herbert
30b3973c9f
Difficulty cache invalidation flow
2022-06-24 21:02:38 +09:00
Dean Herbert
66a01d1ed2
Allow song select to refresh the global WorkingBeatmap
after an external update
2022-06-24 21:02:38 +09:00
Dean Herbert
6999933d33
Split updater process into realm transaction and non-transaction
2022-06-24 21:02:38 +09:00
Dean Herbert
021b16f2f3
Ensure WorkingBeatmap
is invalidated after update
2022-06-24 21:02:38 +09:00
Dean Herbert
fe570d8052
Queue beatmaps for update after editing
2022-06-24 21:02:38 +09:00
Dean Herbert
06d59b717c
Move beatmap processing tasks to new BeatmapUpdater
class
2022-06-24 21:02:37 +09:00
Dean Herbert
2ca4184eda
Merge pull request #18834 from bdach/ban-implicit-to-lower-upper
...
Disallow usage of `string.To{Upper,Lower}()` without explicit culture
2022-06-24 20:39:58 +09:00
Dan Balasescu
7eb49dac7a
Merge pull request #18832 from peppy/bdc-remove-unused-path
...
Remove unused bindable retrieval flow in `BeatmapDifficultyCache`
2022-06-24 20:20:23 +09:00
Dean Herbert
823b3c1c0f
Ensure WorkingBeatmap
is always using a detached instance
2022-06-24 19:07:54 +09:00
Dean Herbert
2ae48d5a87
Rename incorrect parameter name in BeatmapManager.GetWorkingBeatmap
2022-06-24 19:07:54 +09:00
Bartłomiej Dach
26c5b59f6d
Replace usages of string.To{Lower,Upper}()
2022-06-24 11:57:45 +02:00
Dean Herbert
c179127670
Remove unused bindable retrieval flow
2022-06-24 17:09:56 +09:00
Dean Herbert
0755430006
Use AddOnce
for update calls
2022-06-24 17:09:56 +09:00
Dean Herbert
8912f07745
Merge branch 'master' into difficulty-icon-refactor-pass
2022-06-24 16:34:35 +09:00
Dean Herbert
f71f6302fd
Remove unnecessary null
casts
2022-06-24 14:50:11 +09:00
Dean Herbert
28837693e5
Nuke calculating everything
...
The whole component is pointless so I'm just going to nuke for now I
guess. Kind of makes the whole refactor effort pointless but oh well?
To expand on this, the implementation was actually incorrect as pointed
out at https://github.com/ppy/osu/pull/18819#pullrequestreview-1017886035 .
2022-06-24 14:24:06 +09:00
Dean Herbert
12ea8369ee
Update retriever to be relatively sized
2022-06-24 14:06:31 +09:00
Dean Herbert
d9c1a9d71f
Use new property to specify no tooltip, rather than passing only ruleset
2022-06-24 14:06:18 +09:00
Dean Herbert
129c907092
Remove unused parameters
2022-06-24 13:58:02 +09:00
Bartłomiej Dach
04d69010b5
Split overlong conditional to local function
2022-06-23 18:03:07 +02:00
Bartłomiej Dach
bea70988bc
Remove unnecessary #nullable disable
2022-06-23 17:57:22 +02:00
Gabe Livengood
454eff43c5
publicity -> accesstype
2022-06-23 11:40:25 -04:00
Gabe Livengood
d67c482c48
move publicity filter to multi exclusively
2022-06-23 11:36:08 -04:00
Gabe Livengood
9a15adbfff
add an all option to publicity filter
2022-06-23 11:24:28 -04:00
Gabe Livengood
2def6d809b
refactor to use enum dropdown
2022-06-23 11:02:27 -04:00
Dean Herbert
730228ec2a
Merge pull request #18818 from nekodex/rearrangeable-list-feedback
...
Add audio feedback for rearranging list items
2022-06-23 23:30:55 +09:00
Jamie Taylor
aaf619b35c
Don't play sample if there is no item being actively dragged
2022-06-23 20:13:01 +09:00
Jamie Taylor
9c46592e0e
Move collection change event binding to LoadComplete
2022-06-23 20:04:54 +09:00
Dean Herbert
ef258122d2
Move GetDifficultyRating
helper method to StarDifficulty
2022-06-23 19:51:58 +09:00
Dean Herbert
b068df2149
Enable NRT on BeatmapDiffiultyCache
2022-06-23 19:51:58 +09:00
Dean Herbert
32652ace75
Update resources
2022-06-23 19:51:44 +09:00
Dean Herbert
01da6f20b3
Tidy up all remaining usages
2022-06-23 19:27:35 +09:00
Dean Herbert
7dec530ca5
Split out simple DifficultyIcon
with no calculation overhead and update usages
2022-06-23 19:27:35 +09:00
Dean Herbert
4a2ca4394b
Remove unused ModeTypeInfo
class
2022-06-23 19:27:35 +09:00
Dean Herbert
3a83e5684c
Tidy up DifficultyIcon
2022-06-23 19:27:35 +09:00
Dean Herbert
d6b073ebad
Move DifficultyRetrieve
to own class and split both pathways into separate constructors
2022-06-23 19:27:35 +09:00
Jamie Taylor
4a316fad2f
Add audio feedback for rearranging list items
2022-06-23 17:45:42 +09:00
Dean Herbert
158f0a1f23
Remove remaining Room!=null
checks in TestMultiplayerClient
where possible
2022-06-23 17:38:34 +09:00
Dan Balasescu
9ed37621a7
Merge pull request #18816 from peppy/avoid-waiting-forever
...
Ban usage of `ManualResetEventSlim.Wait()` without a timeout value
2022-06-23 17:26:26 +09:00
Dean Herbert
51268d0cc8
Throw on Wait
failure in a few remaining cases
2022-06-23 15:28:21 +09:00
Dean Herbert
7ef8b7df5f
Add timeout for all ManualResetEventSlim.Wait
invocations
...
Timeout values were taken as best-guesses of upper values we'd expect
from sane execution.
2022-06-23 14:46:00 +09:00
Dean Herbert
bc557bacf0
Remove room null assertion in TestMultiplayerClient.ChangeState
to avoid assert
...
This method is run from async contexts, but `get_Room` asserts update
thread which is not the case. Was causing silent test failures (showing
as pass but failing `dotnet-test` via return code):
TestSceneMultiplayer.TestGameplayFlow
```
[13:13:17] : [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: Score preparation failed!
[13:13:17] : [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: NUnit.Framework.AssertionException: :
[13:13:17] : [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at osu.Framework.Logging.ThrowingTraceListener.Fail(String message1, String message2)
[13:13:17] : [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at System.Diagnostics.TraceInternal.Fail(String message, String detailMessage)
[13:13:17] : [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at System.Diagnostics.TraceInternal.TraceProvider.Fail(String message, String detailMessage)
[13:13:17] : [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at System.Diagnostics.Debug.Fail(String message, String detailMessage)
[13:13:17] : [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at osu.Game.Online.Multiplayer.MultiplayerClient.get_Room() in /opt/buildagent/work/ecd860037212ac52/osu.Game/Online/Multiplayer/MultiplayerClient.cs:line 98
[13:13:17] : [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at osu.Game.Tests.Visual.Multiplayer.TestMultiplayerClient.ChangeState(MultiplayerUserState newState) in /opt/buildagent/work/ecd860037212ac52/osu.Game/Tests/Visual/Multiplayer/TestMultiplayerClient.cs:line 275
[13:13:17] : [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at osu.Game.Screens.OnlinePlay.Multiplayer.MultiplayerPlayer.PrepareScoreForResultsAsync(Score score) in /opt/buildagent/work/ecd860037212ac52/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerPlayer.cs:line 223
[13:13:17] : [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at osu.Game.Screens.Play.Player.prepareScoreForResults() in /opt/buildagent/work/ecd860037212ac52/osu.Game/Screens/Play/Player.cs:line 747
```
2022-06-23 14:10:20 +09:00
Gabe Livengood
bf5a7e3f2a
add locked room filter
2022-06-22 17:01:28 -04:00
Dean Herbert
97fcf8cec9
Merge pull request #18668 from smoogipoo/editor-controlpoint-undo-redo
2022-06-23 04:02:24 +09:00
Dean Herbert
948c28f415
Fix collection modified during BlockAllOperations
if any subscriptions have been established
2022-06-22 20:34:05 +09:00
Dean Herbert
b660119de7
Merge pull request #18796 from bdach/mod-overlay/legacy-key-bindings
...
Add setting option to toggle between mod overlay hotkey styles
2022-06-22 20:28:18 +09:00
Jamie Taylor
950551f4fd
Fix metronome arm being stuck white when paused 'close enough' to center
2022-06-22 15:33:42 +09:00
Dan Balasescu
b81c7c7951
Merge pull request #18804 from Joehuu/online-view-chat-overlay
...
Add back online view container to chat overlay
2022-06-22 14:41:06 +09:00
Dean Herbert
e15b2afdd9
Merge branch 'master' into reorganised-maintenance-section
2022-06-22 13:45:57 +09:00
Dan Balasescu
ff440fc1a4
Fix too many buttons inside condition
2022-06-22 13:44:41 +09:00
Dan Balasescu
321920bc85
Remove one more nullable disable
2022-06-22 13:44:41 +09:00
Dan Balasescu
1018c9852d
Cleanup nullability
2022-06-22 13:44:41 +09:00
Dan Balasescu
23254d2ff2
Fix broken files
2022-06-22 13:44:41 +09:00
Joseph Madamba
07e0cd53a4
Add back online view container to chat overlay
2022-06-21 19:23:16 -07:00
Joseph Madamba
50728f3fbc
Fix overlay header tab item not working with localisable string
2022-06-21 18:31:09 -07:00
Dean Herbert
cf0f32f928
Merge pull request #18790 from peppy/fix-realm-async-write-blocking-overhead
...
Fix blocking overhead when calling `WriteAsync`
2022-06-22 09:39:17 +09:00
Supersonicboss1
4aa86b0a80
fixed duplicates and cleaned up code
2022-06-21 23:41:25 +01:00
Supersonicboss1
e4931f977c
improved UI of maintenance section in settings
2022-06-21 23:00:03 +01:00
Bartłomiej Dach
7013909322
Remove unnecessary protected virtual
2022-06-21 16:43:04 +02:00
Bartłomiej Dach
f564ed589f
Alter sequential hotkey style to always use visible index
...
Previous behaviour was once mentioned off-hand as unintuitive.
2022-06-21 15:22:18 +02:00
Bartłomiej Dach
9e5cc89edb
Fix classic hotkeys toggling filtered mods
2022-06-21 15:01:33 +02:00
Bartłomiej Dach
da1814e7c3
Restructure everything to fix free mod overlay issue
2022-06-21 14:48:41 +02:00
Bartłomiej Dach
7b7b8c1892
Implement behaviour for classic selection style
2022-06-21 14:24:30 +02:00
Bartłomiej Dach
234120ff43
Forward entire event to IModHotkeyHandler
...
Required for shift handling in the classic implementation.
2022-06-21 13:37:17 +02:00
Bartłomiej Dach
658f5341c7
Set up flow for switching between hotkey styles
2022-06-21 13:34:58 +02:00
Bartłomiej Dach
5abd8a07d2
Add setting for changing mod select hotkey style
2022-06-21 13:33:17 +02:00
Dan Balasescu
816fd338cb
Fix typo
2022-06-21 19:57:27 +09:00
Bartłomiej Dach
73124d2b1f
Encapsulate mod hotkey selection logic in strategy pattern
2022-06-21 12:49:01 +02:00
Dan Balasescu
a7de43ade6
Add attribute ID
2022-06-21 19:31:45 +09:00
Dean Herbert
2e3d8d7e5d
Update framework
2022-06-21 18:13:14 +09:00
Dean Herbert
b7b7de115f
Merge pull request #18744 from nekodex/new-metronome-sfx
...
New audio feedback for metronome
2022-06-21 17:16:41 +09:00
Dean Herbert
f74b4ac277
Fix blocking overhead when calling WriteAsync
2022-06-21 17:15:25 +09:00
Dean Herbert
7d988da2c7
Merge pull request #18788 from peppy/editor-seek-constant-while-playing
...
Change editor seek-while-playing modifier to be BPM agnostic
2022-06-21 15:28:46 +09:00
Dean Herbert
a40ad6f784
Add slight transform when resetting arm from almost-zero
2022-06-21 15:07:35 +09:00
Dean Herbert
82c4d855d4
Rename sample variable to be easier to discern from other fields
2022-06-21 15:05:17 +09:00
Dean Herbert
16a9e18815
Adjust timing of latch to be more in sync with visuals
2022-06-21 15:02:53 +09:00
Dean Herbert
7b46d38318
Move colour fade back to where it was
2022-06-21 15:02:43 +09:00
Dean Herbert
3b79c632f5
Merge branch 'master' into new-metronome-sfx
2022-06-21 14:58:58 +09:00
Dean Herbert
42701757c3
Fix latch reset logic
2022-06-21 14:52:57 +09:00
Dean Herbert
22cb8b0d43
Merge pull request #18768 from smoogipoo/spectator-reset-speed-at-end
...
Reset spectator speed after the last frame is reached
2022-06-21 14:41:08 +09:00
Dean Herbert
1b122f88c0
Merge pull request #18786 from bdach/osu-link-ipc
...
Add ability to handle `osu://` scheme links via IPC on desktop
2022-06-21 14:40:46 +09:00
Dean Herbert
88f450e1d0
Remove accidental nullable enable
spec
2022-06-21 14:40:21 +09:00
Bartłomiej Dach
6807d0e44f
Merge branch 'master' into osu-link-ipc
2022-06-21 07:27:35 +02:00
Dean Herbert
72c0fc3fec
Merge pull request #18753 from frenzibyte/prevent-mistimed-metronome-beats
...
Fix metronome playing mistimed beat sounds on editor clock resume
2022-06-21 13:48:42 +09:00
Dean Herbert
c61e90d768
Change editor seek-while-playing modifier to be BPM agnostic
2022-06-21 13:07:50 +09:00
Dan Balasescu
046b848bcd
Split group selection to separate method
2022-06-21 12:53:06 +09:00
Salman Ahmed
4472c6fe2e
Merge branch 'master' into spectator-reset-speed-at-end
2022-06-21 06:46:37 +03:00
Salman Ahmed
f103de4efb
Merge branch 'master' into spectator-reset-speed-at-end
2022-06-21 06:37:58 +03:00
Dan Balasescu
b3e5642dfd
Use WaitingOnFrames instead
2022-06-21 12:23:43 +09:00
Dan Balasescu
93ce6fc981
Remove redundant diff processing
2022-06-21 12:11:44 +09:00
Dan Balasescu
9763a58392
Change to use ReferenceEquals
2022-06-21 12:05:52 +09:00
Dan Balasescu
6a26461683
Compare by reference in ControlPoint.Equals()
2022-06-21 12:05:28 +09:00
Bartłomiej Dach
ee96d84ffa
Merge branch 'master' into input-settings
2022-06-20 22:55:43 +02:00
Bartłomiej Dach
21d60231b6
Add limited test coverage of osu://
scheme link IPC flow
2022-06-20 22:22:25 +02:00
Bartłomiej Dach
330af7ec74
Handle osu://
scheme links via IPC in desktop game
2022-06-20 21:26:22 +02:00
Bartłomiej Dach
92011124d1
Implement IPC channel for osu://
scheme links
2022-06-20 20:08:36 +02:00
Bartłomiej Dach
34f1c80b7c
Add and use ILinkHandler
interface
2022-06-20 20:04:21 +02:00
Bartłomiej Dach
577a87bcad
Merge branch 'master' into importer-post-import-rename
2022-06-20 13:37:16 +02:00
Dean Herbert
ba394f2831
Remove IPostsImports
interface (and move to IModelImporter
)
2022-06-20 18:53:48 +09:00
Dean Herbert
e732c5a2d7
Add PostImport
method matching PreImport
2022-06-20 18:40:23 +09:00
Dean Herbert
45c5013f09
Remove default value of RealmArchiveModelImporter.HandledExtensions
...
Not used anywhere and probably not wanted ever.
2022-06-20 18:40:23 +09:00
Dean Herbert
dbae4c6f5a
PostImport
-> PresentImport
2022-06-20 18:36:29 +09:00
Dean Herbert
ebcee21f6f
Remove necessity to provide BeatmapDifficultyCache
as a function to ScoreManager
2022-06-20 17:52:42 +09:00
Dan Balasescu
c402e90598
Merge pull request #18777 from peppy/output-directory-on-import-failure
...
Silence exception and provide more log output when import fails due to empty `.osu` files
2022-06-20 17:36:21 +09:00
Dan Balasescu
e0c82d11ab
Convert == usages to ReferenceEquals
2022-06-20 16:56:19 +09:00
Dan Balasescu
16281f4a48
Properly annotate method to allow null
2022-06-20 16:56:19 +09:00
Dan Balasescu
ca287d0936
Fix group deselected when table is recreated
2022-06-20 16:56:19 +09:00
Dean Herbert
d38defada4
Silence exception and provide more log output when import fails due to empty .osu
files
2022-06-20 16:07:10 +09:00
Dean Herbert
4aa32038c3
Add note about stream provided to ImportTask
being disposed implicitly
2022-06-20 15:38:44 +09:00
Dean Herbert
882e1c69e5
Move nested task back outside try-catch to avoid double-error
2022-06-20 15:36:44 +09:00
Dean Herbert
678b18dde6
Ensure any non-MemoryStream
streams are closed as part of ImportTask
2022-06-20 15:29:56 +09:00
Dan Balasescu
a922ea9b01
Fix selection by directly comparing control points
...
Previously, all control points would get replaced, which led to
performance issues that was worked around in this PR. By comparing
control points, we're able to get good performance without requiring the
workaround.
2022-06-20 15:29:29 +09:00
Dan Balasescu
03ab6fc141
Implement IEquatable on ControlPoint
2022-06-20 15:27:43 +09:00
Dean Herbert
dd93c7359e
Update xmldoc for importFromArchive
method
2022-06-20 15:25:43 +09:00
Dean Herbert
92f1a2958c
Rename Import(TModel)
to ImportModel
to differentiate from other import methods
2022-06-20 15:18:07 +09:00
Dean Herbert
a6c8a832aa
Remove Import(ArchiveReader)
and redirect existing usages to Import(ImportTask)
2022-06-20 15:14:57 +09:00
Dean Herbert
7daab2d45b
Merge branch 'master' into skin-editor-transform-fix
2022-06-20 14:10:01 +09:00
Dean Herbert
329f1a0822
Add test coverage of original fail case and improve test reliability and code quality
2022-06-20 14:08:05 +09:00
Dan Balasescu
468e5fcbed
Merge branch 'master' into editor-controlpoint-undo-redo
2022-06-20 13:47:01 +09:00
Gabe Livengood
a5bc769243
clear skineditor selected components on hide
2022-06-19 14:34:52 -04:00
Gabe Livengood
36df1da57f
Revert "stop component transform when skineditor is hidden"
...
This reverts commit 48ffd6aeb5
.
2022-06-19 14:26:02 -04:00
Bartłomiej Dach
3ab8158b92
Do not try to set ruleset from beatmap if it's a dummy
2022-06-19 20:08:39 +02:00
Bartłomiej Dach
93b3ede2a0
Always use beatmap ruleset in editor gameplay test mode
...
Fixes cases where opening a convertible beatmap (so any osu! beatmap)
with the game-global ruleset being set to anything but osu! would result
in opening the editor gameplay test mode with the game-global ruleset
rather than the beatmap's.
2022-06-19 19:30:40 +02:00
Bartłomiej Dach
9023fdc947
Merge branch 'master' into reidrect-graceful-exit
2022-06-19 13:43:15 +02:00
Bartłomiej Dach
495d747da5
Fix mismatching braces in comment
2022-06-19 13:42:45 +02:00