1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-18 01:23:05 +08:00
Commit Graph

1101 Commits

Author SHA1 Message Date
Dean Herbert
5f9b13a775 Rename Add/AddRange methods as they are no longer conflicting with Container 2023-03-15 18:02:41 +09:00
Dan Balasescu
e327993d11
Merge pull request #22527 from Terochi/replay-length-extension
Replay recording extension until results screen transition
2023-03-11 15:41:32 +09:00
tsrk
44297a7d0a
refactor: make KCD a CompositeDrawable 2023-03-08 00:47:16 +00:00
Dean Herbert
28520414aa Move KeyCounter components to HUD namespace 2023-03-07 16:41:39 +09:00
Dean Herbert
8f6df5ea0f
Merge branch 'master' into gameplay/key-counter-abstraction 2023-03-07 16:09:45 +09:00
Bartłomiej Dach
d679703fa2
Merge pull request #22659 from peppy/fix-taiko-drum-nested-sample-detection
Fix `GameplaySampleTriggerSource` not considering nested objects when determining the best sample to play
2023-02-22 18:56:59 +01:00
tsrk
1beec71037
refactor(KeyCounterDisplay): apply suggestions
I also took the freedom to add type checking, as we can't limit the
usage of `Add()` since it's a Container. The exception thrown also
advises of using the suggested `AddTrigger()` instead.
2023-02-22 14:58:27 +00:00
Dean Herbert
a8c692a215
Merge pull request #22635 from peppy/use-overlays-container-more
Use `Overlays` container rather than `KeyBindingInputManager` for flashlight
2023-02-22 18:30:21 +09:00
Bartłomiej Dach
ab97b02235
Remove contradictory remark from xmldoc 2023-02-21 21:05:46 +01:00
Dean Herbert
1acc536248 Move DrawableRuleset.Audio to a less generic level 2023-02-21 19:03:52 +09:00
Dean Herbert
5ba6059911 Merge branch 'master' into fix-taiko-drum-nested-sample-detection 2023-02-21 13:58:15 +09:00
Bartłomiej Dach
3183f5cee2
Merge branch 'master' into revert-result-in-playfield 2023-02-19 16:33:10 +01:00
Dean Herbert
19d5293ad1 Change early return to also find the earliest nested object 2023-02-17 18:59:31 +09:00
Bartłomiej Dach
3ee046000e
Merge branch 'master' into revert-result-in-playfield 2023-02-16 21:54:29 +01:00
Bartłomiej Dach
b8084a15eb
Revert ResumeOverlay setter accessibility change 2023-02-16 21:26:01 +01:00
Dean Herbert
affa9507a1 Fix GameplaySampleTriggerSource not considering nested objects when determining the best sample to play 2023-02-16 18:21:33 +09:00
Dean Herbert
ce9ef3bc3c Always create ResumeOverlay, with UseResumeOverlay flag only affecting whether it is displayed or not 2023-02-16 15:47:20 +09:00
Dean Herbert
7afdcb9383 Merge branch 'master' into hide-resume-overlay 2023-02-16 15:42:14 +09:00
tsrk
076eb81b21
refactor: rename trigger classes
Makes it better to understand their purpose
2023-02-15 21:46:13 +00:00
tsrk
157bba7830
refactor: rename Trigger class to InputTrigger 2023-02-15 21:41:36 +00:00
Dean Herbert
da8ab7143b
Merge branch 'master' into maximum-judgement-offset-in-hit-object 2023-02-15 14:48:15 +09:00
Dean Herbert
5ec5222d8a Expose and consume OsuInputManager explicitly 2023-02-14 17:36:07 +09:00
Dean Herbert
970388d4e2 Move Overlays container to accept input and be frame-stable 2023-02-14 17:35:12 +09:00
Dean Herbert
7aaaf7fca2 Combine and attempt to simplify the score import / preparation process further 2023-02-14 16:55:35 +09:00
Dean Herbert
63f3498762 Restructure UseResumeOverlay to correctly handle a value change before BDL load 2023-02-14 15:11:33 +09:00
Pasi4K5
e4b84ebd0b Add UseResumeOverlay and use it for hiding the ResumeOverlay 2023-02-13 23:51:39 +01:00
tsrk
74a58fb674
refactor: separate things in KeyCounter
To implement different different sources of input for KeyCounter, it
is now possible to create a Trigger class (to inherit) instead of
inheriting KeyCounter. This eases the creation of more input sources
(like for tests) while allowing to implement different UI variants.

That way, if another variant of the key counter needs to implemented
(for whathever reason), this can be done by only inheriting KeyCounter
and changing how things are arranged visually.
2023-02-13 01:24:27 +00:00
ekrctb
258de3b2d8 Store RawTime in JudgementResult 2023-02-09 17:15:37 +09:00
ekrctb
5f0636c330 Merge branch 'maximum-judgement-offset-in-hit-object' into revert-result-in-playfield 2023-02-09 16:47:58 +09:00
Bartłomiej Dach
c5e1f54185
Fix sample store creation mutating shared resource store 2023-01-30 20:48:52 +01:00
ekrctb
27578c48f5 Remove JudgementResultEntry
It is not needed anymore as TimeAbsolute is stored raw.
2023-01-27 19:35:44 +09:00
ekrctb
e1702a8ee9 Fix inspection issue 2023-01-24 15:43:57 +09:00
ekrctb
efef97d5be Store Result.TimeAbsolute separately from offset
Calculating from TimeOffset is bad because it loses precision.
The result time won't change anymore
even If `HitObject.GetEndTime()` changes later.
2023-01-24 15:35:06 +09:00
ekrctb
cc87923179 Fix OnRevertResult timing 2023-01-24 14:19:24 +09:00
Pasi4K5
8b47af6503 Remove HidesResumeOverlay and set ResumeOverlay to null in OsuModAutopilot 2023-01-24 00:49:09 +01:00
Pasi4K5
75a1a2ec2f Hide ResumeOverlay when OsuModAutopilot is enabled 2023-01-22 03:44:59 +01:00
ekrctb
d8f9b7d02f Use MaximumJudgementOffset for lifetime 2023-01-19 21:25:21 +09:00
ekrctb
812a4b412a Move judgement result revert logic to Playfield
Previously, some judgement results were not reverted
when the source DHO is not alive (e.g. frames skipped in editor).
Now, all results are reverted in the exact reverse order.
2023-01-19 19:57:13 +09:00
Berkan Diler
08d2fbeb8e Use new ArgumentNullException.ThrowIfNull throw-helper API 2022-12-22 21:27:59 +01:00
Dean Herbert
4a7d7c6ed9 Use MaxBy in all locations that can and update inspection level to match dotnet-build 2022-12-19 16:47:10 +09:00
Dan Balasescu
850931120d
Merge pull request #21479 from peppy/fix-wrong-last-hit-object-time
Fix some components not accounting for final hold notes in osu!mania beatmaps
2022-12-02 18:12:00 +09:00
Dan Balasescu
a39bd634c4
Merge pull request #21405 from LumpBloom7/Editor-DrawableRuleset-Dependencies
Provide DrawableRulesetDependencies from HitObjectComposer
2022-12-02 17:31:31 +09:00
Dean Herbert
809d02cda0 Fix two implementation oversights 2022-12-02 16:05:14 +09:00
Dean Herbert
d8dd7e7e0f Fix test failures when no hitobjects are present in a scrolling ruleset 2022-12-01 21:42:03 +09:00
Dean Herbert
896f2d8f74 Fix multiple instances of last hitobject time being calculated incorrectly 2022-12-01 18:04:06 +09:00
Bartłomiej Dach
6ebde9a747
Annotate Playfield.Mods as maybe-null 2022-11-30 20:00:25 +01:00
Dean Herbert
5ce2d6f54a Hide the game mouse cursor when playing osu!catch with relax mod 2022-11-30 18:13:53 +09:00
Dean Herbert
bb0237d4a9 Fix nullability inspection on disposal path 2022-11-30 17:49:08 +09:00
Dean Herbert
4215f4f5d7 Merge branch 'master' into Editor-DrawableRuleset-Dependencies 2022-11-30 17:42:46 +09:00
Derrick Timmermans
93ba84e5ff
Fix code style 2022-11-27 21:48:44 +01:00
Derrick Timmermans
70c320b2e8
Provide ruleset dependencies only to Compose Placement Blueprints 2022-11-27 21:43:33 +01:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Bartłomiej Dach
0f382590e6
Remove unnecessary #nullable disable 2022-11-20 15:31:51 +01:00
Salman Ahmed
58296bd4f0 Introduce IDrawableScrollingRuleset for editor consumption 2022-11-20 04:11:10 +03:00
Susko3
56fd1f95b1 Fix FallbackSampleStore.GetAsync fallback logic 2022-11-13 18:47:28 +01:00
Dean Herbert
5c13c443ff Fix incorrect fallback logic
Regressed when attempting to share implementation of binary search.
2022-10-20 23:08:44 +09:00
Dean Herbert
26860a903e Refactor implementation to support hitobjects nested multiple levels deep 2022-10-20 22:30:30 +09:00
Dean Herbert
d237c818f6 Fix nested objects in overlapping scrolling hit object container ruleset not using correct reference time 2022-10-18 16:15:21 +09:00
Dean Herbert
ec3761ced9 Standardise control point search logic in OverlappingScrollAlgorithm
Was using a very local algorithm which I cannot guarantee is correct.
I'd rather it just use the one used everywhere else.
2022-10-18 16:01:05 +09:00
Salman Ahmed
4fb156ef4e Update xmlodc and add nullability attributes 2022-10-13 00:16:42 +03:00
Salman Ahmed
7a6ecaff0d Remove default invisible cursor container from rulesets 2022-10-12 17:50:47 +03:00
Salman Ahmed
9b45a9cf76 Rename various cursor symbols
- `IProvideCursor.MenuCursor` -> `IProvideCursor.Cursor`
 - `MenuCursor` -> `MenuCursorContainer
2022-10-11 16:21:01 +03:00
Salman Ahmed
2d4f390372 Remove non-smoke key bindings on "Relax" mod instead 2022-10-09 17:14:16 +03:00
ekrctb
1cccd03480 Fix scrolling nested hit object lifetime not set 2022-10-04 15:17:14 +09:00
ekrctb
781f5420b0 Add test for scrolling hit object lifetime 2022-10-04 15:17:11 +09:00
ekrctb
5d80950eaf Compute lifetime from entry in scrolling container 2022-10-04 15:12:28 +09:00
Dan Balasescu
cbed268ac9
Merge pull request #20510 from sw1tchbl4d3r/high_bpm_judgements
Clamp `LifetimeStart` of `HitObject`s to their judgement windows
2022-09-28 17:49:35 +09:00
sw1tchbl4d3
0cffbb7562 Clamp LifetimeStart of HitObject's to their judgement windows 2022-09-27 16:54:24 +02:00
o-dasher
feadac1f79 Cleanup all other leftover binding instantiation 2022-09-25 16:02:40 -04:00
ekrctb
c59aa57450 Remove createLifetimeEntry from HitObjectEntryManager 2022-09-14 15:19:33 +09:00
ekrctb
a9eba27129 Factor out pooling logic from Playfield 2022-09-14 15:19:05 +09:00
Dean Herbert
6bf6b7e125 Fix null considerations in DrawableRulesetDependencies 2022-09-13 13:13:38 +09:00
Salman Ahmed
0ca4be5e5b Fix one more inspection 2022-09-13 03:45:31 +03:00
Dean Herbert
d4afc3629c
Merge branch 'master' into kps 2022-09-08 23:00:36 +09:00
Dean Herbert
6729bb3e1a Change FrameStableClock to inherit IGameplayClock 2022-09-08 18:24:18 +09:00
Dan Balasescu
b559d4ecdf Rename GameplayAdjustments -> AdjustmentsFromMods 2022-09-08 17:14:06 +09:00
Dean Herbert
75d0deef72 Apply proposed changes to remove inheritance from MasterGameplayClockContainer 2022-09-07 17:49:05 +09:00
Dean Herbert
bc1212f4e6 Change NonGameplayAdjustments to GameplayAdjustments and convert TrueGameplayRate to extension method 2022-09-06 22:26:46 +09:00
Dean Herbert
44b456e216 Use gameplay clock's TrueGameplayRate in FrameStabilityContainer? 2022-09-05 23:38:22 +09:00
Dean Herbert
7337d4c1aa Merge branch 'master' into kps 2022-08-31 15:41:42 +09:00
Dean Herbert
105aa01e7d Update usages of RemoveInternal 2022-08-29 15:57:40 +09:00
Dean Herbert
a215d009fe Update Remove/RemoveRange/RemoveAll calls in line with framework changes 2022-08-29 15:57:40 +09:00
Ryuki
5cddc7ed1f
Code cleanup (CPS) 2022-08-24 17:13:23 +02:00
Dean Herbert
f3847b90fd Tidy up attach logic 2022-08-24 19:36:01 +09:00
Dean Herbert
5129716612 Merge branch 'master' into kps 2022-08-24 18:18:45 +09:00
Dean Herbert
ec61a94dc9 Merge branch 'master' into no-gameplay-clock-gameplay-offset 2022-08-23 17:36:06 +09:00
Dean Herbert
19bba143ee Fix editor crashing on mobile releases 2022-08-22 15:57:24 +09:00
Dean Herbert
da407aa827
Merge branch 'master' into kps 2022-08-20 15:24:58 +09:00
Dean Herbert
2c6fd1ec6e Fix `GameplayClockContainer potentially resetting external seeks 2022-08-18 18:54:10 +09:00
Dean Herbert
43442dbf65 Merge branch 'even-less-gameplay-clock' into even-nicer-frame-stability-clock 2022-08-15 20:22:30 +09:00
Dean Herbert
87760bbc06 Fix IsCatchingUp not being in correct state 2022-08-15 20:17:48 +09:00
Dean Herbert
1fc3d005c0 Seal FrameStabilityContainer
No one should ever derive from this class. It is already too complex.
2022-08-15 19:31:02 +09:00
Dean Herbert
fff2b57905 Tidy up and document FrameStabilityContainer 2022-08-15 19:28:12 +09:00
Dean Herbert
9bc2e91de0 Fix incorrect handling of reference clocks when no parent IGameplayClock is available 2022-08-15 19:19:19 +09:00
Dean Herbert
828b6f2c30 Remove unnecessary setClock shenanigans 2022-08-15 19:19:19 +09:00
Dean Herbert
27569e2ed5 Remove FrameStableClock (and redirect usages to FrameStabilityContainer) 2022-08-15 19:19:19 +09:00
Dean Herbert
c8764cb333 Move all usage of GameplayClock to IGameplayClock 2022-08-15 18:30:53 +09:00
Dean Herbert
95c1b488a7 Add non-null assertion to FrameStabilityContainer 2022-08-15 18:08:49 +09:00
Ryuki
2aa3a1b50d
Rename all "KeysPerSecond" usages to "ClicksPerSecond" 2022-08-14 20:12:11 +02:00
Ryuki
9dc806506e
Make ActionListener and KeysPerSecondCalculator not rely on events to add timestamps 2022-08-14 19:31:14 +02:00
Ryuki
9b252b1d81
Make KeysPerSecondCalculator dependency in HUDOverlay nullable 2022-08-11 11:58:30 +02:00
Ryuki
3c6461b9e4
Remove KPS acronym usage 2022-08-11 10:01:39 +02:00
its5Q
abca3d1b2a Prefix common strings for context 2022-08-10 00:35:19 +10:00
Ryuki
b52a07c16a
Use DI to provide dependencies for KPS Calculator and improve input
gathering

KPS Calculator now uses DI to retrieve the clocks. Using `HUDOverlay` it
is now cached for `KeysPerSecondCounter`s to resolve it. This also
allows to make an "Attach" flow like `KeyCounter`.
2022-08-08 21:54:06 +02:00
its5Q
5080d62e77 Add missing localisation for settings enums 2022-08-08 21:51:23 +10:00
Dan Balasescu
b4e55f7309 Apply IRenderer changes 2022-08-02 19:50:57 +09:00
Dan Balasescu
e06f39a69f Apply IRenderer shader changes 2022-07-30 01:29:11 +09:00
Dan Balasescu
ce694123eb Move spectator begin/end playing to SubmittingPlayer 2022-07-28 20:44:04 +09:00
Dean Herbert
ef10145d6f Rename MenuCursorContainer and clean up code 2022-07-26 14:11:52 +09:00
Dean Herbert
8dbe24fd7c Simplify colour assigning logic and remove system mod colour for now 2022-07-12 14:36:50 +09:00
Adam Baker
7ced84b7ef Replace switch statement with ForModType
In order to make `highlightedColour` dependent on the mod type color, the color is converted to an `osu.Framework.Graphics.Colour4` and calls `Lighten`.
2022-07-08 03:23:58 -05:00
Adam Baker
89f1c75f7a Update mod icon colors 2022-07-07 21:57:18 -05:00
Dean Herbert
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dean Herbert
ec53d87c30 Fix unsafe sample playback in GameplaySampleTriggerSource
Resolves https://github.com/ppy/osu/issues/18727.

Added delay from `Schedule` should be minimal as it is always called
from the `Update` thread (input propagation) anyway.
2022-06-16 16:04:57 +09:00
Dan Balasescu
132c94c1b5 Remove Ruleset parameter from ResetFromReplayFrame() 2022-05-31 17:16:23 +09:00
Dean Herbert
f7e055dbfe Move mania note height offset application to a much more suitable location 2022-05-12 16:19:07 +09:00
Dean Herbert
6f529cf7a4 Merge branch 'master' into fix-spectator-seeks 2022-03-24 14:24:20 +09:00
Dan Balasescu
36772ec652
Merge pull request #17356 from apollo-dw/strict-tracking
Implement "Strict Tracking" mod in osu!
2022-03-22 07:32:36 +09:00
apollo-dw
149cfd338d Use new mod-related object types for Strict Tracking 2022-03-19 18:29:44 +00:00
Dean Herbert
0988c2b0fa Move DrawableRuleset binding to LoadComplete to avoid exceptions on InputManager access 2022-03-18 15:28:48 +09:00
Dean Herbert
39d95aa8cf Add automatic preloading of sample pools at a Playfield level 2022-03-14 17:19:48 +09:00
Henry Lin
464be6e64c Only call IUpdatableByPlayfield.Update if the playfield isn't nested 2022-03-03 14:37:39 +08:00
Bartłomiej Dach
d8fa443ea0
Extract default mod switch measurements to constants
For use later when specific sizes/scales of the mod switches are
desired.
2022-02-22 23:22:11 +01:00
Bartłomiej Dach
cfc41a0a36
Implement small mod switch 2022-02-22 00:26:35 +01:00
Bartłomiej Dach
5186693dad
Implement tiny mod switch 2022-02-22 00:26:35 +01:00
Dan Balasescu
ebd105422f Remove unused using 2022-02-10 14:22:08 +09:00
Dan Balasescu
f7fb7825cc Simplify disposal 2022-02-10 14:21:51 +09:00
Dan Balasescu
a3896a8ebd Remove allowance of null dependency 2022-02-10 14:21:50 +09:00
Dan Balasescu
6d3bc005ea Merge branch 'master' into spectator-state-rework 2022-02-02 18:57:04 +09:00
Dan Balasescu
41007169f7 Give SpectatorState a user state 2022-02-01 21:51:05 +09:00
Dan Balasescu
0641264a11 Merge branch 'master' into spectator-consistency-frames 2022-02-01 14:35:30 +09:00
Dan Balasescu
4fb565e15f Reset ScoreProcessor from statistics replay frames 2022-01-31 21:32:56 +09:00
Dean Herbert
0e764538e0 Retrieve KeyBindingContainer via DI rather than traversal lookup 2022-01-31 17:05:04 +09:00
Dean Herbert
a84fd2e20c
Merge branch 'master' into master 2022-01-31 16:30:08 +09:00
Susko3
19467e58c1 Remove unused params from BDL methods 2022-01-15 01:06:39 +01:00
Dan Balasescu
52e240230b
Merge branch 'master' into mouse-button-disable-disables-touch 2022-01-12 17:14:39 +09:00
Dan Balasescu
a09563a7d9 Fix calculation of most common beat length for mania scroll speed 2022-01-11 11:00:30 +09:00
Dean Herbert
88602ec1b4 Fix mouse button disable not disabling touch input mappings 2022-01-05 18:29:32 +09:00
pikokr
dec1f31749 Make KeyBindingContainer public 2021-12-28 22:43:07 +09:00
pikokr
d629305002 Remove Cached attribute from DrawableRuleset.KeyBindingInputManager 2021-12-28 21:47:58 +09:00
pikokr
58994b790c Get key binding container once instead of getting on every touch 2021-12-27 21:20:52 +09:00
Bartłomiej Dach
5cbaa028eb
Use extracted ruleset config cache implementation in DI 2021-12-23 19:02:10 +01:00
Bartłomiej Dach
1040590844
Add cancellation support to game-side IResourceStores 2021-12-23 10:33:17 +01:00
Dean Herbert
1eed2436e6 Clean up unused resolved properties 2021-12-03 18:49:49 +09:00
Dean Herbert
cdb2a92f86 Disable key repeat for all ruleset handling cases 2021-11-18 13:13:36 +09:00
Dean Herbert
66c307e0ee Remove usage of key repeat helper method 2021-11-18 13:13:36 +09:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
Dan Balasescu
e49f1f6e6b
Merge branch 'master' into no-more-difficulty-control-points-info 2021-10-13 20:17:57 +09:00
Bartłomiej Dach
56eae703fe
Avoid changing frame stable clock direction if time hasn't changed between frames 2021-10-11 21:39:48 +02:00