1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-01 02:43:09 +08:00
Commit Graph

15951 Commits

Author SHA1 Message Date
Dean Herbert
a6057a9f54
Move absolute scroll support local to carousel and allow custom bindings 2025-01-16 20:47:59 +09:00
Dean Herbert
1c2621d88e
Add support to CarouselV2 for right mouse button scrolling 2025-01-16 20:27:38 +09:00
Dean Herbert
56b450c4a6
Remove setting for right-mouse scroll (make it always applicable) 2025-01-16 20:27:38 +09:00
Bartłomiej Dach
6b921fc4e4
Merge pull request #31471 from peppy/beatmap-carousel-v2
Add basic framework for carousel displays (aka `BeatmapCarouselV2`)
2025-01-16 12:21:53 +01:00
Dan Balasescu
8400726887
Move bindables to OsuConfigManager & SessionStatics 2025-01-16 19:33:42 +09:00
Dean Herbert
e47244989a
Adjust animations a bit
Removed autosize duration stuff because it looks weird when the list is
shown from scratch where users are already fully populated in it.
2025-01-16 19:23:54 +09:00
Dean Herbert
32906aefde
Add gradient on final spectator if more than list capacity are displayed 2025-01-16 19:05:19 +09:00
Dean Herbert
996798d2df
Avoid list width changing when spectator count changes 2025-01-16 19:02:14 +09:00
Dean Herbert
1d240eb405
Fix gameplay limitations for adjusting offset not actually being applied 2025-01-16 18:05:59 +09:00
Bartłomiej Dach
12b2631e5e
Add a skinnable variant of spectator list & hook it up to online data 2025-01-15 14:29:53 +01:00
Bartłomiej Dach
43fc48a3f3
Add client methods allowing users to be notified of who is watching them 2025-01-15 14:18:01 +01:00
Bartłomiej Dach
582c5180b9
Implement spectator list display
- First step for https://github.com/ppy/osu/issues/22087
- Supersedes / closes https://github.com/ppy/osu/pull/22795

Roughly uses design shown in
https://github.com/ppy/osu/pull/22795#issuecomment-1579936284 with some
modifications to better fit everything else, and some customisation
options so it can fit better on other skins.
2025-01-15 14:17:53 +01:00
Dean Herbert
6027947657
Move animation handling to Carousel implementation to better handle add/removes
With the animation logic being external, it was going to make it very
hard to apply the scroll offset when a new panel is added or removed
before the current selection.

There's no real reason for the animations to be local to beatmap
carousel. If there's a usage in the future where the animation is to
change, we can add more customisation to `Carousel` itself.
2025-01-15 17:01:07 +09:00
Bartłomiej Dach
614243fef4
Merge pull request #31506 from peppy/fix-storyboard-break-overhead
Fix stutter on intensive storyboards when entering break time with 100% background dim
2025-01-15 08:23:58 +01:00
Dean Herbert
0b764e6372
Fix substring of GetHashCode potentially failing 2025-01-15 16:18:34 +09:00
Rudi Herouard
57a9911b22 Apply beatmap offset on every beatmap set difficulty if they have the same audio 2025-01-15 04:12:54 +01:00
Dean Herbert
0e20c0e307
Merge pull request #31473 from bdach/colorhax
Add combo colour override control to editor
2025-01-14 20:52:15 +09:00
Dean Herbert
e871f02350
Fix inspections that don't show in rider 2025-01-14 20:43:03 +09:00
Dean Herbert
900237c1ed
Add loading overlay and refine filter flow 2025-01-14 20:23:53 +09:00
Dean Herbert
cc8941a94a
Add animation and depth control 2025-01-14 20:12:09 +09:00
Dean Herbert
7e8a80a0e5
Add difficulty, artist and title sort examples
Also:

- Adds hinting at grouping and header status of items
- Passes through criteria and prepare for grouping tests.
- Makes `Filters` list `protected` because naming clash with `Filter()`
  on `BeatmapCarousel`.
2025-01-14 19:52:48 +09:00
Dean Herbert
d97a3270a5
Split out BeatmapCarousel classes and drop V2 suffix 2025-01-14 19:18:02 +09:00
Dean Herbert
8d41eda91a
Merge branch 'master' into beatmap-carousel-v2 2025-01-14 19:06:52 +09:00
Bartłomiej Dach
8ffd254719
Adjust initialisation code to start with combo colour picker hidden 2025-01-14 08:54:46 +01:00
Dean Herbert
904a08af26
Update textbox usage in line with framework changes 2025-01-14 16:29:56 +09:00
Dean Herbert
77db355809
Ensure storyboards are still updated even when dim is 100%
This avoids piled-up overhead when entering break time. It's not great,
but it is what we need for now to avoid weirdness.
2025-01-14 16:22:10 +09:00
Bartłomiej Dach
fc069e060c
Only show colour on new combo selector button if overridden
As proposed in
https://discord.com/channels/188630481301012481/188630652340404224/1327309179911929936.
2025-01-13 12:38:28 +01:00
Dean Herbert
cf55fe16ab
Generic type instead of raw object? 2025-01-11 01:43:47 +09:00
Dean Herbert
6fbab1bbce
Stop exposing CarouselItem externally 2025-01-11 01:43:47 +09:00
Dean Herbert
ad04681b28
Add scroll position maintaining 2025-01-11 01:43:47 +09:00
Dean Herbert
288be46b17
Add basic selection support 2025-01-11 01:43:47 +09:00
Dean Herbert
5e9a7532d3
Add basic implementation of new beatmap carousel 2025-01-11 01:43:47 +09:00
Dean Herbert
94ea003d90
Update game ScrollContainer usage in line with framework changes
See https://github.com/ppy/osu-framework/pull/6467.
2025-01-11 01:42:59 +09:00
Bartłomiej Dach
48196949e0
Add combo colour override control to editor
Closes https://github.com/ppy/osu/issues/25608.

Logic mostly matching stable. All operations are done on `ComboOffset`
which still makes overridden combo colours weirdly relatively dependent
on each other rather than them be an "absolute" choice, but alas...

As per stable, two consecutive new combos can use the same colour only
if they are separated by a break:

    52f3f75ed7/osu!/GameModes/Edit/Modes/EditorModeCompose.cs#L4564-L4571

This control is only available once the user has changed the combo
colours from defaults; additionally, only a single new combo object
must be selected for the colour selector to show up.
2025-01-10 13:40:56 +01:00
Dean Herbert
73adc4dfd7
Merge pull request #31364 from bdach/editor-storyboard-display-2
Display storyboard in editor background
2025-01-10 15:09:44 +09:00
Dan Balasescu
38d95abc24
Merge pull request #31462 from bdach/ternary-button-is-bad
Simplify editor "ternary button" structure
2025-01-10 14:24:41 +09:00
Bartłomiej Dach
5c8ae6f851
Simplify editor "ternary button" structure
As I look into re-implementing the ability to choose combo colour for an
object (also known as "colourhax") from the editor UI, I stumble upon
these wretched ternary items again and sigh a deep sigh of annoyance.

The structure is overly rigid. `TernaryItem` does nothing that
`DrawableTernaryItem` couldn't, except make it more annoying to add
specific sub-variants of `DrawableTernaryItem` that could do more
things.

Yes you could sprinkle more levels of virtuals to
`CreateDrawableButton()` or something, but after all, as Saint Exupéry
says, "perfection is finally attained not when there is no longer
anything to add, but when there is no longer anything to take away."
So I'm leaning for taking one step towards perfection.
2025-01-09 13:41:22 +01:00
Bartłomiej Dach
bcd35c8899
Merge branch 'master' into editor-storyboard-display-2 2025-01-08 15:46:08 +01:00
Bartłomiej Dach
5a2024777d
Select closest timing point every time the timing screen is changed to
No issue thread for this, was pointed out internally:
https://discord.com/channels/90072389919997952/1259818301517725707/1316604605777444905

Due to the custom setup that editor has with its nested
"screens-that-aren't-screens", the logic that selects the closest
timing point to the current time would only fire on the first open of
the screen. Seems like a good idea to have it fire every time instead.
2025-01-08 14:24:46 +01:00
Bartłomiej Dach
e7070bd812
Merge pull request #31448 from bdach/automatic-new-combo-after-break
Force new combo on objects succeeding a break
2025-01-08 11:22:30 +01:00
Bartłomiej Dach
7c70dc4dc3
Only update combo information when any changes happened 2025-01-08 10:28:06 +01:00
Dean Herbert
f216c22806
Merge pull request #31445 from bdach/reset-speed-on-test-play
Reset playback speed to 100% on entering test play
2025-01-08 16:16:28 +09:00
Bartłomiej Dach
d9f0f0d729
Merge branch 'master' into editor-storyboard-display-2 2025-01-08 08:12:55 +01:00
Bartłomiej Dach
5431a08b35
Merge pull request #31435 from peppy/star-range-display-quality
Fix star range display looking a bit bad when changing opacity
2025-01-07 14:58:00 +01:00
Bartłomiej Dach
c93b87583a
Force new combo on objects succeeding a break
No issue thread for this again. Reported internally on discord:
https://discord.com/channels/90072389919997952/1259818301517725707/1320420768814727229

Placing this logic in the beatmap processor, as a post-processing step,
means that the new combo force won't be visible until a placement has
been committed. That can be seen as subpar, but I tried putting this
logic in the placement and it sucked anyway:

- While the combo number was correct, the colour looked off, because it
  would use the same combo colour as the already-placed objects after
  said break, which would only cycle to the next, correct one on
  placement

- Not all scenarios can be handled in the placement. Refer to one of the
  test cases added in the preceding commit, wherein two objects are
  placed far apart from each other, and an automated break is inserted
  between them - the placement has no practical way of knowing whether
  it's going to have a break inserted automatically before it or not.
2025-01-07 14:06:23 +01:00
Bartłomiej Dach
98bb723438
Do not expose track directly in EditorClock
Intends to stop people from mutating it directly, and going through
`EditorClock` members like `AudioAdjustments` instead.
2025-01-07 11:40:18 +01:00
Bartłomiej Dach
275e8ce7b7
Remove unused protected field 2025-01-07 11:26:08 +01:00
Bartłomiej Dach
a5036cd092
Re-route editor tempo adjustment via EditorClock and remove it on gameplay test 2025-01-07 11:25:00 +01:00
Bartłomiej Dach
3c03406b45
Add failing test 2025-01-07 11:23:47 +01:00
Dean Herbert
383fda7431
Fix star range display looking a bit bad when changing opacity 2025-01-07 16:42:06 +09:00
Bartłomiej Dach
01e9c0f15e
Merge pull request #31418 from peppy/intro-file-integrity
Ensure intro files exist in storage during startup
2025-01-07 08:14:40 +01:00
Andrei Zavatski
791ca915e4 Fix allocations in updateSamplePointContractedState 2025-01-07 00:48:58 +03:00
Andrei Zavatski
e8dc09f5bc Reduce HitSampleInfo constants allocations 2025-01-07 00:36:58 +03:00
Dan Balasescu
448790a76f
Merge pull request #31386 from peppy/fix-applying-offset
Fix not being able to apply last play offset after returning to song select
2025-01-06 11:40:12 +09:00
Dean Herbert
37da72d764
Reduce nesting slightly 2025-01-05 00:32:06 +09:00
Dean Herbert
72dfdac2e2
Ensure intro files exist in storage
Guards against user interdiction.

See
[https://discord.com/channels/188630481301012481/1097318920991559880/1324765503012601927](recent)
but not only case of this occurring.
2025-01-04 15:27:49 +09:00
Salman Alshamrani
3fc86f60ee Fix mobile release dialog obstructed by the software keyboard 2025-01-03 22:01:06 -05:00
Dean Herbert
2cd86cbf91
Localise text 2025-01-04 01:28:33 +09:00
Dean Herbert
1d81dade25
Update copy and require actually clicking button to confirm 2025-01-04 01:13:03 +09:00
Dean Herbert
97d065d887
Only flip value if popup was definitely shown 2025-01-04 00:58:19 +09:00
Salman Alshamrani
c40371c052 Move dialog class location 2025-01-03 00:27:26 -05:00
Salman Alshamrani
039800550c Display popup disclaimer about game state and performance on mobile platforms 2025-01-03 00:20:50 -05:00
Dean Herbert
2a28c5f4de
Add static memory of last applied offset score
I don't really like adding this new session static, but we don't have a
better place to put this.
2025-01-02 16:20:25 +09:00
Dean Herbert
58dcb25bd5
Revert "Clear previous LastLocalUserScore when returning to song select"
This reverts commit ced8dda1a2.
2025-01-02 15:59:00 +09:00
Dean Herbert
1211f6cf4c
Add auto-start setting for 10 seconds
As touched on in
https://github.com/ppy/osu/discussions/31205#discussioncomment-11671185.

Doesn't require server-side changes as the server just uses a
`TimeSpan`.
2025-01-02 13:06:34 +09:00
Bartłomiej Dach
929173c971
Merge pull request #31342 from minetoblend/feature/speedy-metronome
Speed up metronome in timing screen when pressing control key
2024-12-31 14:49:48 +01:00
Bartłomiej Dach
1803ee4025
Rename method 2024-12-31 14:09:36 +01:00
Bartłomiej Dach
88311f5442
Remove unused method 2024-12-31 14:02:07 +01:00
Bartłomiej Dach
21dba621f0
Display storyboard in editor background
Fixes the main part of https://github.com/ppy/osu/issues/31144.
Support for selecting a video will come later.

Making this work was an absolutely awful time full of dealing with
delightfully kooky issues, and yielded in a very weird-shaped
contraption. There is at least one issue remaining wherein storyboard
videos do not actually display until the track is started in editor, but
that is 99% a framework issue and I do not currently have the mental
fortitude to diagnose further.
2024-12-31 13:57:50 +01:00
Marvin Schürz
0641d2b510 Remove turboweird function and update displayed bpm text 2024-12-30 19:12:21 +01:00
Bartłomiej Dach
693db097ee
Take custom bank name length into account when collapsing sample point indicators
Would close https://github.com/ppy/osu/issues/31312.

Not super happy with the performance overhead of this, but this is
already a heuristic-based implementation to avoid every-frame
`.ChildrenOfType<>()` calls or similar, so not super sure how to do
better. The `Array.Contains()` check stands out in profiling, but
without it the indicators can collapse *too* eagerly sometimes.
2024-12-30 12:04:41 +01:00
Marvin Schürz
9ea7afb38e Use return value instead of field to force weight position update 2024-12-30 03:59:54 +01:00
Marvin Schürz
aa6763785c Use 3x speed instead when beat snap divisor is divisible by 3 2024-12-30 03:21:52 +01:00
Marvin Schürz
8be500535d Speed up metronome when holding control 2024-12-30 03:13:22 +01:00
Dean Herbert
10ee2e28c2
Merge pull request #31303 from bdach/pause-on-gameplay-test
Pause playback when entering gameplay test from editor
2024-12-28 04:41:28 +09:00
Dean Herbert
1b2a223a5f
Fix failing test scene due to new dependency 2024-12-28 01:02:15 +09:00
Bartłomiej Dach
6a6db5a22b
Populate metadata from ID3 tags when changing beatmap audio track in editor
- Closes https://github.com/ppy/osu/issues/21189
- Supersedes / closes https://github.com/ppy/osu-framework/pull/5627
- Supersedes / closes https://github.com/ppy/osu/pull/22235

The reason why I opted for a complete rewrite rather than a revival of
that aforementioned pull series is that it always felt quite gross to me
to be pulling framework's audio subsystem into the task of reading ID3
tags, and I also partially don't believe that BASS is *good* at reading
ID3 tags. Meanwhile, we already have another library pulled in that is
*explicitly* intended for reading multimedia metadata, and using it
does not require framework changes. (And it was pulled in explicitly for
use in the editor verify tab as well.)

The hard and dumb part of this diff is hacking the gibson such that
the metadata section on setup screen actually *updates itself*
after the resources section is done doing its thing. After significant
gnashing of teeth I just did the bare minimum to make work by caching
a common parent and exposing an `Action?` on it. If anyone has better
ideas, I'm all ears.
2024-12-27 15:16:03 +01:00
Bartłomiej Dach
5abad07412
Pause playback when entering gameplay test from editor
Closes https://github.com/ppy/osu/issues/31290.

Tend to agree that this is a good idea for gameplay test at least. Not
sure about other similar interactions like exiting - I don't think it
matters what's done in those cases, because for exiting timing is in no
way key, so I just applied this locally to gameplay test.
2024-12-27 09:08:16 +01:00
Dean Herbert
62e536baf6
Merge pull request #31138 from bdach/mark-as-played
Implement ability to mark beatmap as played
2024-12-24 21:43:15 +09:00
Bartłomiej Dach
287b880ec7
Merge pull request #31259 from peppy/intro-volume-adjust
Fix adjusting volume using scroll wheel not working during intro
2024-12-24 10:18:10 +01:00
Dean Herbert
ce1eda7e54
Fix adjusting volume using scroll wheel not working during intro 2024-12-24 17:11:21 +09:00
Dean Herbert
d8686f55f7
Slightly reduce background brightness at main menu when seasonal lighting is active 2024-12-24 17:10:48 +09:00
Dean Herbert
7b9f776a14
Merge pull request #31206 from peppy/christmas
Add christmas / seasonal mode
2024-12-23 16:49:38 +09:00
Dean Herbert
1174f46656
Add menu tip hinting at correct spelling of laser 2024-12-21 21:41:48 +09:00
Dean Herbert
881623d47d
Merge branch 'master' into christmas 2024-12-20 23:11:20 -08:00
Dean Herbert
9b1d94b5be
Merge branch 'master' into skinnable-mod-display 2024-12-20 21:27:31 +09:00
Dean Herbert
a9cf31f5d8
Usings 2024-12-20 21:27:24 +09:00
Bartłomiej Dach
e62b329d4a
Merge pull request #31143 from peppy/no-pause-cooldown-break-intro
Skip the pause cooldown when in intro / break time
2024-12-20 12:29:46 +01:00
Dean Herbert
c16bfa010b
Merge branch 'master' into christmas 2024-12-20 20:07:48 +09:00
Bartłomiej Dach
4551d59f39
Give skinnable mod display a minimum size
Co-authored-by: Dean Herbert <pe@ppy.sh>
2024-12-20 12:06:35 +01:00
Dean Herbert
139fb2cdd3
Revert and fix some tests still 2024-12-20 19:44:43 +09:00
Bartłomiej Dach
0a87fb5993
Merge branch 'master' into global-volume-scroll-better-maybe 2024-12-20 09:58:25 +01:00
Dean Herbert
48ce68694a
Add missing partial 2024-12-20 17:06:47 +09:00
Dean Herbert
5d17014698
Fix mouse wheel disable not working during gameplay 2024-12-20 16:31:06 +09:00
Dean Herbert
f5b0198077
Fix test faiulres when seasonal set to true due to non-circles intro 2024-12-20 16:02:43 +09:00
Dean Herbert
3fc9990411
Fix some failing tests 2024-12-20 15:35:31 +09:00
Dean Herbert
8e9377914d
Subclass menu logo visualisation 2024-12-20 15:35:31 +09:00
Dean Herbert
ad4a8a1e0a
Subclass menu flashes instead of adding local code to it 2024-12-20 15:35:30 +09:00
Dean Herbert
2a720ef200
Move christmas intro screen to seasonal namespace 2024-12-20 15:28:24 +09:00
Dean Herbert
e5dbf9ce45
Subclass osu logo instead of adding much code to it 2024-12-20 15:28:24 +09:00