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

3249 Commits

Author SHA1 Message Date
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
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
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
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
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
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
Bartłomiej Dach
9652c5a7ca
Merge pull request #31110 from peppy/timing-current-point-indicator
Change the way "current" points are hinted on timing screen
2024-12-16 13:27:06 +09:00
Bartłomiej Dach
1058abb4ab
Fix code quality 2024-12-16 12:22:06 +09:00
Dean Herbert
da840e3fac
Change the way "current" points are hinted on timing screen
I actually thought things were bugged with the previous display method,
since the hinting was very similar to the hover colour/state.

I've adjusted this to hopefully give users a better idea of what this is
intending to show them.
2024-12-13 19:45:18 +09:00
Dean Herbert
64555debc2
Fix adjusting control point offset after undo/redo causing catastrophic failure
Closes https://github.com/ppy/osu/issues/31098.

Low effort fix because it was already half broken. The test was testing
in isolation but in actual editor usage it wasn't working as expected.
2024-12-13 19:33:51 +09:00
Dean Herbert
2a4f596f90
Merge branch 'master' into ios-beatmap-export 2024-12-10 23:59:15 -08:00
Bartłomiej Dach
89e3c551ff
Merge pull request #30860 from frenzibyte/editor-multiple-background-audio-files
Allow choosing different background/audio files for individual difficulties
2024-12-11 14:12:58 +09:00
Dean Herbert
bbaa542d4a
Add note about expensive operation 2024-12-10 16:45:26 +09:00
Dean Herbert
3cac583754
Rewrite resource changing code to be more legible (to my eye) 2024-12-10 16:45:26 +09:00
Dean Herbert
7ec2d91e14
Merge branch 'master' into editor-multiple-background-audio-files 2024-12-10 14:19:55 +09:00
Salman Alshamrani
e9868c6318 Enable exporting beatmaps in iOS 2024-12-09 07:47:28 -05:00
Bartłomiej Dach
459533aba6
Merge branch 'master' into bookmarks 2024-12-07 22:22:04 +09:00
Dean Herbert
8d0e1f9d18
Merge branch 'master' into improve-menu-sample-playback 2024-12-05 21:07:03 +09:00
Salman Alshamrani
8e0f6fc12d Re-encode difficulties on resource change 2024-12-04 04:36:00 -05:00
Salman Alshamrani
60d91bada8 Merge branch 'master' into editor-multiple-background-audio-files 2024-12-04 04:31:15 -05:00
Bartłomiej Dach
d60b7f4798
Implement basic bookmark support in editor 2024-12-03 15:14:22 +01:00
Bartłomiej Dach
808934581f
Move bookmarks out of BeatmapInfo
Not sure why I didn't do that in https://github.com/ppy/osu/pull/28473...
2024-12-03 14:17:14 +01:00
Bartłomiej Dach
b505ecc7ba
Do not deselect objects when control-clicking without hitting anything
As per feedback in
https://discord.com/channels/90072389919997952/1259818301517725707/1310270647187935284.
2024-12-02 13:51:43 +01:00
Bartłomiej Dach
6c0ccc5ebe
Merge pull request #30863 from frenzibyte/improve-back-button-display
Delay back button appearance when performing a quick restart
2024-12-02 11:49:45 +01:00
Dean Herbert
5b2558cec2
Merge pull request #28473 from bdach/beatmap-info-purge
Move unnecessary properties from `BeatmapInfo` / realm to `IBeatmap`
2024-12-02 16:19:12 +09:00
Bartłomiej Dach
5f092811cb
Use helper in one more place 2024-11-29 09:22:29 +01:00
Bartłomiej Dach
5a9127dfc6
Accidentally a word 2024-11-29 08:46:08 +01:00
Bartłomiej Dach
110e4fbb30
Centralise supported file extensions to one helper class
As proposed in
https://github.com/ppy/osu-server-beatmap-submission/pull/5#discussion_r1861680837.
2024-11-29 08:42:45 +01:00
Salman Alshamrani
489d7a30ec Perform a single Save call rather than doing it in each difficulty 2024-11-28 18:37:13 -05:00
Salman Alshamrani
311f0947e4 Abstractify resource change logic and share between background and audio 2024-11-28 17:57:47 -05:00
Salman Alshamrani
932afcde01 Make editor make sense 2024-11-28 17:43:32 -05:00
Jamie Taylor
58cf1c11e4
Improve menu/context-menu sample playback 2024-11-29 06:54:48 +09:00
Salman Alshamrani
b1d0939142 Add localisation support 2024-11-28 02:37:31 -05:00
Salman Alshamrani
4a1401a33d Rewrite bindable flow to make more sense 2024-11-28 02:37:27 -05:00