1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-18 04:32:55 +08:00
Commit Graph

21924 Commits

Author SHA1 Message Date
Dean Herbert
ab00a15555 Add JsonConstructor specs to allow for correct deserialization of readonly fields 2020-12-09 15:05:57 +09:00
Dean Herbert
bef52af1da Move client state class to server implementation
Never used by client.
2020-12-09 15:05:33 +09:00
Dean Herbert
e09715d71e Add ToString implementation to MultiplayerRoom for easier debug 2020-12-09 14:47:26 +09:00
Dean Herbert
c92c2cbfc0 Change exceptions which should be returned to the user to HubException type
See
https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.signalr.hubexception?view=aspnetcore-5.0.
2020-12-09 14:46:44 +09:00
Dean Herbert
48129c52d6 Change get-only property for now 2020-12-09 12:38:24 +09:00
Dean Herbert
427d41bab5 Add missing licence headers 2020-12-09 12:17:37 +09:00
Dean Herbert
0eb5b16454 Remove Empty() implementation for RoomSettings until otherwise necessary 2020-12-09 12:12:03 +09:00
Dean Herbert
1013749a83 Change user id type to int 2020-12-09 12:10:47 +09:00
Dean Herbert
fd4fa963ac Standardise exception naming 2020-12-09 12:07:19 +09:00
Dean Herbert
2046cbe2d9 Add missing exceptions to server xmldoc 2020-12-09 12:05:50 +09:00
Dean Herbert
ff5150a14d Fix typo in IMultiplayerClient xmldoc 2020-12-09 12:03:52 +09:00
Lucas A
aa7d22460d Override Import() instead. 2020-12-08 19:46:55 +01:00
Lucas A
d8838ddbfb Remove duplicated overload. 2020-12-08 18:48:50 +01:00
Lucas A
0610adca0a Fix merge conflicts. 2020-12-08 18:03:58 +01:00
Dean Herbert
02f5fda330 Add missing final newline in file 2020-12-08 21:15:10 +09:00
Dean Herbert
aa68ae4ff2 Change locking mechanism for multiplayer rooms to use using-disposal pattern
Was required to lock over `await` calls server-side.
2020-12-08 20:43:18 +09:00
Dean Herbert
d76fabedf9 Add note about LoadRequested only being sent to a subset of room users 2020-12-08 20:43:18 +09:00
Dean Herbert
021a116093 Add extra xmldoc covering the fact that MatchStarted is received by all users 2020-12-08 20:43:18 +09:00
Dean Herbert
df908f90b2 Add exception to be thrown when an operation is requested requiring host when not host 2020-12-08 20:43:18 +09:00
Dean Herbert
2433838d58 Add methods covering match start / end 2020-12-08 20:43:18 +09:00
Dean Herbert
2aedd82e27 Document room states and remove unnecessary WaitingForResults state 2020-12-08 20:43:18 +09:00
Dean Herbert
147db0abe2 Fix client naming and xmldoc 2020-12-08 20:43:18 +09:00
Dean Herbert
60550b73f7 Add missing states and xmldoc for all states' purposes 2020-12-08 20:43:18 +09:00
Dean Herbert
8eccfa476c Add loading states 2020-12-08 20:43:18 +09:00
Dean Herbert
345352be67 Mark PerformUpdate as an instant handle method (doesn't really help with anything) 2020-12-08 20:43:18 +09:00
Dean Herbert
11a7057289 Add notification flow for user state changes in room 2020-12-08 20:43:18 +09:00
Dean Herbert
dbe048cdc6 Add client method for notifying about host changes 2020-12-08 20:43:18 +09:00
Dean Herbert
a4ca8d2998 Ensure multiplayer rooms are instantiated with a room ID 2020-12-08 20:43:18 +09:00
Dean Herbert
71de7ce0a3 Add missing methods to server interface 2020-12-08 20:43:18 +09:00
Dean Herbert
5f5c0d5533 Return room model when joining 2020-12-08 20:43:18 +09:00
Dean Herbert
5d2ca7fc39 Make remaining model classes nullable and serializable 2020-12-08 20:43:18 +09:00
Dean Herbert
2365d65610 Move business logic out of MultiplayerRoom 2020-12-08 20:43:18 +09:00
Dean Herbert
42b1e9d6a4 Add xmldoc coverage of MultiplayerRoom 2020-12-08 20:43:18 +09:00
Dean Herbert
4f449ba821 Rename idle state 2020-12-08 20:43:18 +09:00
Dean Herbert
5a231cef15 Add thread safety for external operations on MultiplayerRoom 2020-12-08 20:43:18 +09:00
Dean Herbert
327799c263 Rename multiplayer server file to match class 2020-12-08 20:43:18 +09:00
Dean Herbert
b3bdaaa7b5 Move exceptions to common code 2020-12-08 20:43:18 +09:00
Dean Herbert
e193f8214d Remove unnecessary room id from leave room request 2020-12-08 20:43:18 +09:00
Dean Herbert
882ace6efe Make MultiplayerRoomUser equatable 2020-12-08 20:43:18 +09:00
Dean Herbert
baf16cfbc3 Add room settings related model and event flow 2020-12-08 20:43:18 +09:00
Dean Herbert
6e5846d91b Fix serialization failure due to missing set 2020-12-08 20:43:18 +09:00
Dean Herbert
ff52a5ddc6 Add callbacks for join/leave events to notify other room occupants 2020-12-08 20:43:18 +09:00
Dean Herbert
ca86524c92 Add locking on join/leave operations 2020-12-08 20:43:18 +09:00
Dean Herbert
fdf025942b Ensure room is locked when mutating users 2020-12-08 20:43:18 +09:00
Dean Herbert
8ebdb5723b Add models for users and rooms 2020-12-08 20:43:18 +09:00
Dean Herbert
f4ccbbd092 Add basic server implementation 2020-12-08 20:43:18 +09:00
Dean Herbert
daed27460c Add simple user state class 2020-12-08 20:43:18 +09:00
Dean Herbert
be4a668e0b Add basic structure for multiplayer state and model components 2020-12-08 20:43:18 +09:00
Dan Balasescu
f9afb7f335
Merge branch 'master' into archive-model-manager-stream-import-support 2020-12-08 16:11:11 +09:00
Dean Herbert
58d7e41978 Enable nullable on ImportTask 2020-12-08 12:52:34 +09:00
Dean Herbert
77279a7e56
Update stale xmldoc on import method
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-12-08 12:48:59 +09:00
smoogipoo
10c1823534 Remove now unused files 2020-12-07 22:07:11 +09:00
smoogipoo
34f3672750 Make ctor protected 2020-12-07 22:04:41 +09:00
smoogipoo
f599427080 Implement TimeshiftFilterControl 2020-12-07 22:04:35 +09:00
smoogipoo
1b3836aeef Re-implement multiplayer FilterControl 2020-12-07 21:59:26 +09:00
smoogipoo
5be0672fe9 Split out enums 2020-12-07 21:54:42 +09:00
smoogipoo
fa65874763 Limit room name to 100 characters 2020-12-07 21:09:38 +09:00
Dan Balasescu
87da6b3270
Merge pull request #11113 from ekrctb/fix-scrolling-wrong-layout-one-frame
Fix scrolling hit object displayed in wrong position for one frame
2020-12-07 18:48:24 +09:00
Dan Balasescu
cdc7ef8c15
Merge pull request #10925 from peppy/fix-multiple-playback-on-skin-change
Fix skinnable sounds playing more than once on skin change
2020-12-07 18:45:19 +09:00
Dean Herbert
eb38bc4b4c Add the ability to import into ArchiveModelManagers from a stream 2020-12-07 18:09:18 +09:00
ekrctb
a548269c34 Fix scrolling hit object displayed in wrong position for one frame 2020-12-07 17:26:12 +09:00
Dean Herbert
a5e2509d52
Merge pull request #11105 from Joehuu/mod-settings-fade-in/out
Add fade in/out animations to mod settings container
2020-12-07 17:12:29 +09:00
Dean Herbert
454e94574c Add corner rounding and positional transform 2020-12-07 16:43:07 +09:00
Dean Herbert
7253866e17 Move customisation panel to be in same area as main content 2020-12-07 16:42:55 +09:00
ekrctb
f4eb17d398
Update osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs
Set mouse confine mode at initialization

Co-authored-by: Dean Herbert <pe@ppy.sh>
2020-12-07 16:09:14 +09:00
ekrctb
2469608c10 Fix possible null reference due to bindable change before variable is initialized 2020-12-07 15:19:18 +09:00
Joehu
0f9b38da08 Add fade in/out animations to mod settings container 2020-12-06 11:35:14 -08:00
Bartłomiej Dach
f6d15b9757 Invert back-to-front logic 2020-12-06 18:59:38 +01:00
Lucas A
2ea8b105d5 Apply review suggestions 2020-12-06 18:46:30 +01:00
Bartłomiej Dach
fcd9483ffa
Merge branch 'master' into fix-multiple-playback-on-skin-change 2020-12-06 18:21:24 +01:00
Bartłomiej Dach
71edada623 Hide confine setting entirely in fullscreen 2020-12-05 22:15:41 +01:00
Bartłomiej Dach
08f23cc424 Revert leasing logic 2020-12-05 22:15:41 +01:00
Bartłomiej Dach
0a745144e3 Disable confine mode dropdown when full-screen
After hard-locking the mouse confine mode to `Always` in full-screen to
prevent confine issues from popping up, the confine mode dropdown in
settings had confusing UX due to seemingly having no effect when
full-screen.
2020-12-05 13:49:09 +01:00
Lucas A
dd21de0cd5 Fix code inspections. 2020-12-04 22:07:45 +01:00
Lucas A
825120fed3 Display import state in a notification. 2020-12-04 18:49:01 +01:00
PercyDan
60d8102a77
Merge branch 'master' into import-screen 2020-12-04 21:20:14 +08:00
Dean Herbert
9064ca9064
Merge pull request #11066 from ekrctb/fix-sample-expire
Fix DrawableHitObjects potentially expiring before their hit samples finish playback
2020-12-04 21:52:36 +09:00
MATRIX-feather
7104230ae3 Add "onCurrentDirectoryChanged" 2020-12-04 19:52:25 +08:00
Dean Herbert
7c0edb796e Always confine mouse to screen when running fullscreen 2020-12-04 20:49:18 +09:00
Joehu
b8c284b34f Fix one more key binding string not being sentence cased 2020-12-04 00:51:46 -08:00
Dean Herbert
a0f92628ac Merge branch 'master' into fix-sample-expire 2020-12-04 13:49:08 +09:00
Dean Herbert
48c42e4247
Merge pull request #11083 from LittleEndu/recommend-if-filtered
Select recommended beatmap if last selection is filtered
2020-12-04 13:22:34 +09:00
Dean Herbert
5ded4b9faa
Merge branch 'master' into dho-remove-onparentreceived 2020-12-04 11:04:56 +09:00
Bartłomiej Dach
15d9147edd Ensure equality member consistency for SampleInfo
The previous implementation of `SampleInfo`'s equality members was not
completely correct in its treatment of the `sampleNames` array. While
`Equals()` compared the values of `sampleNames` using `SequenceEqual()`,
therefore performing a structural check that inspects the contents of
both arrays, `GetHashCode()` used `HashCode.Combine()` directly on the
arrays, therefore operating on reference equality. This could cause the
pooling mechanism of samples to fail, as pointed out in #11079.

To resolve, change the `GetHashCode()` implementation such that it also
considers the contents of the array rather than just the reference to
the array itself. This is achieved by leveraging
`StructuralEqualityComparer`.

Additionally, as a bonus, an array sort was added to the constructor of
`SampleInfo`. This is intended to be a "canonicalisation" processing
step for the array of sample names. Thanks to that sort, two instances
of `SampleInfo` that have the same sample names but permutated will also
turn out to be equal and have the same hash codes, given the
implementation of both equality members. This gives `SampleInfo`
set-like semantics.
2020-12-03 23:25:53 +01:00
Endrik Tombak
c25e2c3dd5 Select recommended beatmap if last selection is filtered 2020-12-03 23:13:14 +02:00
MATRIX-feather
fb080284d2 Simplify UI implementation 2020-12-04 04:10:08 +08:00
MATRIX-feather
85de1a1d20 Animation changes 2020-12-04 03:19:20 +08:00
MATRIX-feather
abe5a67bc5 Simplify implementation 2020-12-04 03:14:31 +08:00
Dan Balasescu
1d92800761
Merge pull request #11068 from peppy/fix-carousel-edge-masking
Fix beatmap carousel panels getting masked away when out of scroll bounds
2020-12-03 20:40:44 +09:00
smoogipoo
0bdf99b97a Remove OnParentReceived() 2020-12-03 20:08:42 +09:00
smoogipoo
73e99718bc Change order of OnParentReceived() 2020-12-03 20:06:26 +09:00
Dean Herbert
37d550f42a
Merge pull request #11035 from smoogipoo/add-playlist-length 2020-12-03 18:39:54 +09:00
Dean Herbert
1c15c4bcee
Merge pull request #11072 from peppy/update-framework 2020-12-03 18:32:45 +09:00
smoogipoo
8245bb85dc Invoke on initial bind 2020-12-03 18:06:55 +09:00
smoogipoo
62b1e37f73 Use async overloads 2020-12-03 18:04:53 +09:00
smoogipoo
3e62da119e Add to inspector also 2020-12-03 17:59:39 +09:00
Dean Herbert
c64343c7d7 Update framework 2020-12-03 17:42:41 +09:00
Dean Herbert
d7cfaa38f1
Merge branch 'master' into hit-sample-pooling 2020-12-03 17:08:13 +09:00
Dean Herbert
3550e5b30f Add length display to room screen as well 2020-12-03 16:42:06 +09:00
smoogipoo
31f7f7072d Fix song select panels not loading if partially offscreen 2020-12-03 15:13:20 +09:00
Dean Herbert
897f593b37 Fix beatmap carousel panels getting masked away when out of scroll bounds
Regressed in https://github.com/ppy/osu/pull/10973 due to removed masking specification.

Closes #11067.
2020-12-03 13:26:28 +09:00
ekrctb
6c46046c24 Fix DHO expires while hit sound is playing 2020-12-03 12:32:49 +09:00
Dean Herbert
a5bb194cb8
Merge pull request #11060 from FamousPig/fix-raw-input
Fix MouseHandler not being ignored when Raw Input is enabled
2020-12-03 12:15:51 +09:00
Bartłomiej Dach
7fd385efe6 Remove unused using directive 2020-12-02 20:01:58 +01:00
Leon Gebler
a2a10d4e13 Don't use nameof(MouseHandler) 2020-12-02 19:45:59 +01:00
Leon Gebler
bbde1f6b9c Fix MouseHandler not being ignored when raw input is enabled 2020-12-02 18:56:59 +01:00
Bartłomiej Dach
2b828faecb
Merge branch 'master' into update-resources 2020-12-02 18:07:46 +01:00
Lucas A
827e957568 Allow importing osz files / osk files from Downloads directory. 2020-12-02 18:03:49 +01:00
smoogipoo
d5dccbc3d7 Fix spectator not being thread-safe 2020-12-02 19:13:09 +09:00
Dean Herbert
32188418f4 Update resources 2020-12-02 15:28:39 +09:00
Dan Balasescu
297283491a
Merge pull request #11031 from peppy/editor-fix-beat-snapping-new-beatmap
Fix editor beat snapping not working correctly when starting with a new beatmap
2020-12-02 15:17:09 +09:00
smoogipoo
e831c797f3 Merge branch 'master' into hit-sample-pooling 2020-12-02 14:45:24 +09:00
Dean Herbert
71a121389b
Merge pull request #11033 from smoogipoo/immutable-hit-samples
Make HitSampleInfo immutable
2020-12-02 14:44:26 +09:00
Dan Balasescu
bd4d4c5355
Merge pull request #10983 from ekrctb/pseudo-random
Add `StatelessRNG` to be used for randomly-looking visual elements
2020-12-02 14:42:22 +09:00
Dean Herbert
d6e0dc2216 Merge branch 'master' into editor-fix-beat-snapping-new-beatmap 2020-12-02 14:37:00 +09:00
Dean Herbert
e84dab8589 Move new beatmap construction above beat divisor binding 2020-12-02 14:36:52 +09:00
Dan Balasescu
2e0fdf9bca
Merge pull request #11011 from ekrctb/catch-pooling-initial
Initial implementation of hit object pooling in osu!catch ruleset
2020-12-02 13:02:22 +09:00
smoogipoo
2de3e655e0 Rename NextUlong -> NextULong 2020-12-02 12:59:45 +09:00
Dean Herbert
0cd404b6d3
Merge pull request #11051 from smoogipoo/update-dependencies
Update dependencies
2020-12-02 12:56:29 +09:00
Dan Balasescu
878ded4dd6
Merge pull request #11032 from peppy/editor-fix-ticks-updating-after-timing-change
Fix timeline not updating ticks correctly after arbitrary timing control point changes
2020-12-02 10:58:44 +09:00
smoogipoo
2150cf1c52 Rename parameters 2020-12-02 10:55:48 +09:00
smoogipoo
e19ef9627a Fix potentially incorrect override 2020-12-02 10:54:26 +09:00
smoogipoo
9ac310c1c4 Merge remote-tracking branch 'upstream/dependabot/nuget/Dapper-2.0.78' into update-dependencies 2020-12-02 10:37:40 +09:00
smoogipoo
4a5b707104 Merge remote-tracking branch 'upstream/dependabot/nuget/Sentry-2.1.8' into update-dependencies 2020-12-02 10:37:21 +09:00
smoogipoo
728574f0c7 Merge remote-tracking branch 'upstream/dependabot/nuget/System.ComponentModel.Annotations-5.0.0' into update-dependencies 2020-12-02 10:37:19 +09:00
Dan Balasescu
9d71095a2b
Merge pull request #11004 from Yoyolick/master
Add ability to customise key binding for in-game overlay toggle
2020-12-02 10:34:24 +09:00
dependabot-preview[bot]
989ddd40b4
Bump System.ComponentModel.Annotations from 4.7.0 to 5.0.0
Bumps [System.ComponentModel.Annotations](https://github.com/dotnet/runtime) from 4.7.0 to 5.0.0.
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-02 00:56:13 +00:00
dependabot-preview[bot]
249793d10a
Bump Sentry from 2.1.6 to 2.1.8
Bumps [Sentry](https://github.com/getsentry/sentry-dotnet) from 2.1.6 to 2.1.8.
- [Release notes](https://github.com/getsentry/sentry-dotnet/releases)
- [Changelog](https://github.com/getsentry/sentry-dotnet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-dotnet/compare/2.1.6...2.1.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-02 00:56:09 +00:00
dependabot-preview[bot]
64dfa9f928
Bump Dapper from 2.0.35 to 2.0.78
Bumps [Dapper](https://github.com/StackExchange/Dapper) from 2.0.35 to 2.0.78.
- [Release notes](https://github.com/StackExchange/Dapper/releases)
- [Commits](https://github.com/StackExchange/Dapper/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-02 00:56:06 +00:00
Pennek
477de1bab0 change min/max values 2020-12-02 01:11:24 +01:00
Lucas A
005fa3a7ee Add ability to import files from a stream. 2020-12-01 20:28:15 +01:00
Bartłomiej Dach
94a8784e04 Allow editor change handler to be null 2020-12-01 20:08:31 +01:00
smoogipoo
598572195c Add playlist length to match settings overlay 2020-12-01 19:57:25 +09:00
Dean Herbert
76035718bb
Merge pull request #11034 from peppy/update-framework
Update framework (with SDL2 default)
2020-12-01 18:32:10 +09:00
smoogipoo
2840405112 Volume should be 0 by default 2020-12-01 18:14:14 +09:00
smoogipoo
6b4a6c12c8 Fix bad equality comparer implementations 2020-12-01 18:13:53 +09:00
smoogipoo
c61f00525d Ignore lookup types for JSON serialisation 2020-12-01 18:13:53 +09:00
smoogipoo
17560aeeea Volume should be 0 by default 2020-12-01 18:09:28 +09:00
smoogipoo
dda4d76d72 Fix bad equality comparer implementations 2020-12-01 18:09:21 +09:00
smoogipoo
b780fdbe4c Ignore lookup types for JSON serialisation 2020-12-01 18:08:59 +09:00
Dan Balasescu
1cea39ed55
Merge pull request #11017 from peppy/fix-song-select-temporary-selection-loss
Fix current beatmap temporarily becoming empty during ruleset change
2020-12-01 17:55:08 +09:00
Dean Herbert
285e62be9a Bring code in line with SDL2 defaults 2020-12-01 17:47:07 +09:00
Dean Herbert
d5a60ed335 Update framework 2020-12-01 17:30:42 +09:00
smoogipoo
4900589af4 Remove unused method 2020-12-01 17:02:45 +09:00
Dean Herbert
190c6ef45e Fix timeline not updating ticks correctly after arbitrary timing control point changes 2020-12-01 16:44:08 +09:00
Dean Herbert
2b268ee012 Fix editor beat snapping not working correctly when starting with a new beatmap 2020-12-01 16:16:26 +09:00
smoogipoo
2bb7484608 Merge branch 'immutable-hit-samples' into hit-sample-pooling 2020-12-01 16:05:28 +09:00
smoogipoo
199710b941 Implement equality comparers for HitSampleInfo 2020-12-01 16:04:08 +09:00
smoogipoo
5760e1c1fc Make HitSampleInfo immutable 2020-12-01 15:37:51 +09:00
Dean Herbert
a147b7186d Remove unnecessary call to updateVisibility 2020-12-01 14:01:34 +09:00