Dean Herbert
645a84b1d6
Display current distance snap and add button to update to use it
2022-10-21 22:58:36 +09:00
Dean Herbert
7dc03097ff
Change distance snap to never account for slider velocity
...
This is a nuanced detail that was implemented incorrectly from the
outset. When mapping, generally a mapper chooses the distance spacing
with no regard to the SV. It has always been common to have a lower
or higher distance spacing than SV, but with the way the lazer editor
has worked, the SV was multiplied into the distance snap grid display,
incorectly changing its spacing depending on the "reference object"
(which is usually the previous hitobject chronologically).
2022-10-21 21:51:24 +09:00
Dean Herbert
6cdfddea62
Always enable distance spacing when adusting distance space multiplier
2022-10-21 16:10:55 +09:00
Dean Herbert
b9f41611a7
Fix bank potentially being overwritten during placement
2022-10-19 21:48:18 +09:00
Dean Herbert
50e24ddd87
Add icon and radio button logic
2022-10-19 21:35:08 +09:00
Dean Herbert
860214c22a
Adjust paddings to feel better now that backgrounds are visible of toolboxes
2022-10-18 14:38:45 +09:00
Dean Herbert
6a7f6c76ff
Fix osu! editor padding being applied to toolboxes
...
The result of https://github.com/ppy/osu/pull/20739 and https://github.com/ppy/osu/pull/20738 having unintended side effects when applied together.
2022-10-18 14:32:00 +09:00
Dean Herbert
ccbac08985
Merge pull request #20593 from ekrctb/catch-editor-height
...
Allow arbitrary height catch editor
2022-10-18 12:10:49 +09:00
Dean Herbert
32c3e35762
Change background colour to a lighter tint to avoid clash with slider bars
2022-10-14 19:38:27 +09:00
Dean Herbert
4d99c7002b
Add background behind editor toolbox groups
2022-10-13 16:36:19 +09:00
ekrctb
9247ff3e0a
Allow changing scrolling speed in catch editor
...
Scroll speed is not saved and doesn't affect gameplay.
It is purely a feature for a better visualization.
It is currently bind to scroll speed increase/decrease.
Default F3/F4 crashes with editor shortcuts so it has to be changed.
2022-10-06 18:06:16 +09:00
Dean Herbert
ac99c1ad69
Migrate the majority of existing file lookups to use new extension methods
2022-08-10 16:01:16 +09:00
Dean Herbert
31a447fda0
Update parameter discards
2022-06-24 21:26:19 +09:00
Bartłomiej Dach
26c5b59f6d
Replace usages of string.To{Lower,Upper}()
2022-06-24 11:57:45 +02:00
Dean Herbert
bd5037fcad
Fix new hitobject placements not taking on the existing sample settings
...
Similar to velocity / difficulty points, a user expectation is that
volume and sample settings will be transferred to newly placed objects
from the most recent one.
Closes https://github.com/ppy/osu/issues/18742 .
2022-06-18 13:49:59 +09:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Bartłomiej Dach
e511c1dfff
Merge branch 'master' into use-normalised-precise-scrolling
2022-05-27 16:55:13 +02:00
Dean Herbert
17206bbebf
Update screen padding and colouring to better match new designs
2022-05-24 18:43:22 +09:00
Susko3
88217e0c98
Adjust ScrollDelta
usages to account for normalised IsPrecise
values
2022-05-23 20:22:27 +02:00
Dan Balasescu
64a371638e
Merge pull request #18236 from peppy/snap-unification
...
Add `enum` to snap method as alternative to multiple nested invocations
2022-05-20 11:35:05 +09:00
Dean Herbert
b3d6f76cfa
Add "None" snap type to fix flags not working correctly
2022-05-19 15:57:17 +09:00
Dean Herbert
c63e65c677
Don't hide SelectionBlueprint
s themselves, only their children
2022-05-12 19:26:13 +09:00
Dean Herbert
c0abce918f
Add enum
to snap method as alternative to mutliple nested invocations
2022-05-12 16:19:07 +09:00
Salman Ahmed
144d33f0d2
Merge branch 'master' into distance-snapping-test
2022-05-06 17:29:27 +03:00
Dean Herbert
c6bc6be128
Fix toolbox expand being interrupted by gaps between groups
2022-05-06 19:06:40 +09:00
Dean Herbert
5029710de7
Merge branch 'master' into distance-snapping-test
2022-05-05 22:00:40 +09:00
Dan Balasescu
39d10487b9
Merge branch 'master' into snapping-tidy-distance
2022-05-05 19:55:55 +09:00
Dean Herbert
e83604a1fc
Merge branch 'master' into cache-at-interface
2022-05-05 18:54:24 +09:00
Dean Herbert
7b71fb860b
Expose DistanceSpacingMultiplier
for test usage
2022-05-05 18:49:12 +09:00
Dean Herbert
947a68006a
Add note about IDistanceSnapProvider
not multiplying DistanceSpacing
itself
2022-05-05 17:50:17 +09:00
Dean Herbert
c3d2648f85
Reword weird xmldoc
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-05-05 17:07:05 +09:00
Dean Herbert
4226583afd
Merge branch 'cache-at-interface'
2022-05-05 16:52:03 +09:00
Dean Herbert
19cf9dc20b
Merge branch 'snapping-tidy-distance'
2022-05-05 16:51:32 +09:00
Dean Herbert
5a1ac71d90
Remove unnecessary type specification in HitObjectComposer
's caching
2022-05-05 16:44:37 +09:00
Dean Herbert
1c6a233cc0
Move snap provider caching to interfaces
2022-05-05 16:44:37 +09:00
Dean Herbert
b411b59006
Move IPlacementHandler
caching to interface
2022-05-05 16:43:02 +09:00
Dean Herbert
977e6d8a80
Add xmldoc for IDistanceSnapProvider
and related properties
2022-05-05 16:25:45 +09:00
Dean Herbert
1fce0da331
Reword slightly, to allow better conformity with IDistanceSnapProvider
2022-05-05 16:04:34 +09:00
Dean Herbert
f6fc926f1a
Add xmldoc and rename methods in IPositionSnapProvider
for legibility
2022-05-05 15:58:21 +09:00
Bartłomiej Dach
bf80dd864c
Merge branch 'master' into fix-editor-toolbox-click-through
2022-05-04 11:57:32 +02:00
Dean Herbert
4e0f899159
Rename value changed variable
2022-05-04 18:13:30 +09:00
Salman Ahmed
f5d4f02200
Use ToUpper
for key binding text
2022-05-04 11:59:29 +03:00
Salman Ahmed
0b8fd2e39f
Improve distance spacing toast inline with key binding changes
2022-05-04 11:43:19 +03:00
Dean Herbert
b325f0ee0b
Combine editor toolbox container implementation and fix input blocking
...
Until now, toolbox scroll areas would block input from arriving behind
them, even when no visible element was clicked.
In addition, clicking on a button inside a toolbox would still send a
`MouseDown` event to things behind it. Specifically, the editor's
`HitObjectComposer` would receive these events and also place objects
when the user does not expect them to be placed.
This fixes another regression that occurred due to `ScrollContainer`s no
longer blocking input theirselves.
2022-05-04 17:41:30 +09:00
Salman Ahmed
3d2072498e
Merge branch 'master' into distance-spacing-osd
2022-05-04 11:41:12 +03:00
Dean Herbert
a66743266f
Remove unused ScrollingToolboxGroup
class
2022-05-04 17:20:58 +09:00
Salman Ahmed
504ca5be31
Fix scrolling no longer adjusting distance spacing by amount
2022-05-04 09:52:33 +03:00
Salman Ahmed
813d6fed48
Split activation keybind to separate increase/decrease keybinds
2022-05-04 09:00:54 +03:00
Salman Ahmed
0dd2e1652c
Mark OnScreenDisplay
dependency as nullable
2022-05-03 11:15:28 +03:00
Salman Ahmed
b8287f3687
Display toast notification on editor distance spacing change
2022-05-03 10:30:32 +03:00
Salman Ahmed
521ec1a225
Add keybind for distance grid spacing activation
2022-05-03 10:15:24 +03:00
Salman Ahmed
fef94d49f4
Revert "Convert data type of DistanceSpacing
to float"
...
This reverts commit 7aaa88cac2
.
2022-04-29 08:02:07 +03:00
Salman Ahmed
abb88b0907
Move distance spacing application to DistanceSnapGrid
2022-04-28 10:54:38 +03:00
Salman Ahmed
7aaa88cac2
Convert data type of DistanceSpacing
to float
2022-04-28 10:24:36 +03:00
Salman Ahmed
2e8372fe90
Minor cleanup
...
Just from reading diff.
2022-04-28 07:14:43 +03:00
Salman Ahmed
bfc6bfc91b
Let CatchHitObjectComposer
inherit from DistancedHitObjectComposer
and hide control
2022-04-28 06:44:50 +03:00
Salman Ahmed
835898dd30
Introduce DistancedHitObjectComposer
and supersede OsuToolboxComposite
2022-04-28 06:44:50 +03:00
Salman Ahmed
59cf3ff50f
Move distancing methods from IPositionSnapProvider
to IDistanceSnapProvider
2022-04-28 05:48:45 +03:00
Salman Ahmed
8ed39009fd
Encapsulate distance spacing control handling to a "distance toolbox composite"
...
Encapsulated in a way which can allow further extensibility for the
right-side area of toolboxes.
2022-04-24 08:33:03 +03:00
Salman Ahmed
70a93c0e7e
Move DistanceSpacingMultiplier
bindable to its own IDistanceSnapProvider
interface
2022-04-24 08:33:00 +03:00
Salman Ahmed
4f8f27a58b
Merge branch 'master' into osu-distance-spacing
2022-04-24 05:23:30 +03:00
Dean Herbert
ea9495eb74
Update all existing calls to extension method with correct fallback handling
2022-03-29 16:51:30 +09:00
Dean Herbert
8d1ee28e67
Add settings modification UI to skin editor
2022-03-13 17:03:25 +09:00
Salman Ahmed
0992bec2c8
Change "distance spacing" multipler type to double
...
Avoids losing precision on initial load, causing an unnecessary
hash change in `EditorChangeHandler`.
Resolves test failures in `TestSceneEditorChangeStates`
(https://github.com/ppy/osu/runs/5192493482?check_suite_focus=true ).
2022-02-16 03:28:12 +03:00
Salman Ahmed
868dcd20f5
Remove e.ShiftPressed
handling for now
...
Broken on macOS, will be handled differently later on as discussed.
2022-02-15 02:21:53 +03:00
Salman Ahmed
528dc03b8c
Expose distance spacing in IPositionSnapProvider
for updating distance grid
...
Alternate method is to expose a `SnapDistancesChanged` event in
`IPositionSnapProvider` instead, but I chose this way as an analogue to
`IBeatSnapProvider.BeatDivisor`, which might even make sense to be
exposed as `BindableBeatDivisor` instead of caching that separately.
2022-02-15 02:21:53 +03:00
Salman Ahmed
19ee05c232
Add "distance spacing" multiplier for osu! ruleset
...
While osu!catch also implements a distance snap grid, it doesn't rely on
`GetBeatSnapDistanceAt` (unlike osu!), therefore it can't have the
"distance spacing" multiplier yet.
2022-02-15 02:21:53 +03:00
Dean Herbert
b9d9fc56af
Move files to UI namespace
2022-02-14 17:51:39 +09:00
Dean Herbert
51251e3204
Fix CI reported warnings
2022-01-12 22:39:00 +09:00
Dean Herbert
eb70a1eeb7
Replace compatibility properties with direct references
2022-01-12 18:13:14 +09:00
Dean Herbert
3811bd8520
Fix some null inspections
2022-01-12 17:00:16 +09:00
Dean Herbert
cea9cab4dc
Use ExpandingButtonContainer
in editor composer
2022-01-06 21:10:45 +09:00
Dean Herbert
ef2a4aed9a
Fix editor playfield not being centered correctly
...
This has come up multiple times, with mappers citing that they have
muscle memory for mapping based on the centre of the playfield being in
the centre of the window.
The original plan was to have a second toolbar on the right hand side of
the screen to balance the padding, but we're not at that point yet.
Easiest solution is to do what stable does and allow the left-hand
toolbar items to overlap the playfield underneath it.
In edge cases where the user is running at an aspect ratio that causes
overlaps, they can choose to collapse the toolbars down. We can probably
work on this UI/UX a bit more as we update designs to be more friendly
to such cases.
2022-01-05 16:05:18 +09:00
Bartłomiej Dach
5cbaa028eb
Use extracted ruleset config cache implementation in DI
2021-12-23 19:02:10 +01:00
Dean Herbert
59e763467f
Move StoragePath
implementation to an extension method
2021-11-19 16:08:38 +09:00
Naxesss
b888185799
Properly dispose of Stream
in bg quality check
2021-11-10 05:06:11 +01:00
Dean Herbert
e43d91ad5d
Fix another case of incorrect null checking in editor verification processing
2021-11-04 15:18:10 +09:00
Dean Herbert
1e73b09e57
Fix another couple of cases of incorrect string null/empty checking
2021-11-04 14:22:28 +09:00
Dean Herbert
6944151486
Apply batch fixing of built-in types using var
2021-10-27 13:04:41 +09:00
smoogipoo
aa380a11c1
Merge branch 'master' into no-more-difficulty-control-points-info
2021-10-14 12:02:10 +09:00
Bartłomiej Dach
c7db286b94
Merge branch 'master' into file-sanity-checks
2021-10-14 00:17:29 +02:00
Dean Herbert
82f7f99f37
Refactor to use scoped using
(and also correctly dispose TagLib portion)
2021-10-12 10:46:26 +09:00
Naxesss
f2f97602f2
Dispose of video resource later
...
We need the Stream to stay open here because `StreamFileAbstraction` uses it later in the block.
2021-10-12 00:40:39 +02:00
Naxesss
47b4d03145
Dispose of Stream
s when used
2021-10-12 00:13:38 +02:00
Naxesss
ce69dd3588
Use Prescan
flag for audio length check
2021-10-11 23:57:23 +02:00
Naxesss
8f093b9a11
Use TagLib instead of ManagedBass
2021-10-11 13:56:26 +02:00
Naxesss
f0cd18a721
Only check each video file once
2021-10-11 13:55:50 +02:00
Naxesss
6aa054b5fa
Change to non-BASS error template
2021-10-11 13:53:23 +02:00
smoogipoo
bc37cb6f43
Merge branch 'master' into no-more-difficulty-control-points-info
2021-10-08 18:41:17 +09:00
Dean Herbert
b339c149d8
Copy BaseDifficulty
to Beatmap<T>
and move all write operations across
2021-10-06 15:10:45 +09:00
Dean Herbert
a92d499d7a
Convert usages of BeatmapDifficulty
to IBeatmapDifficultyInfo
2021-10-01 16:55:50 +09:00
Dean Herbert
693ecdf62a
Refactor some incorrect/outdated terminology
2021-09-06 21:32:43 +09:00
Dean Herbert
d4e5a612ea
Update IPositionalSnapProvider
to take a HitObject
as reference, rather than raw time
...
This allows fetching the correct `DifficultyControlPoint` from the
hitobject. Nothing more.
2021-09-03 17:11:12 +09:00
Dean Herbert
a3d9ab1e2e
Move approach rate to EffectControlPoint
2021-09-03 16:58:16 +09:00
Dean Herbert
b29209d13f
Ensure tool is always set back to select tool when beatmap becomes untimed
2021-07-19 17:08:40 +09:00
Dean Herbert
bde35d9f21
Rename radio button classes to be local to editor
2021-07-19 16:57:12 +09:00
Dean Herbert
eac9b1ec7e
Disable toolbox composition buttons when beatmap is not timed
2021-07-17 02:30:13 +09:00
Naxess
3a5912e35e
Add new checks to verifiers
2021-07-13 10:53:25 +02:00
Naxess
6da2a3d51f
Add zero-length objects check and tests
2021-07-13 10:50:11 +02:00
Naxess
dc4285582b
Fix misplaced "f" in issue message
2021-07-13 06:07:04 +02:00
Naxess
c8f58cbf6c
Add audio in video check and tests
2021-07-13 04:17:41 +02:00
Naxess
a4a1919842
Add too short audio files check and tests
2021-07-13 03:46:45 +02:00
Naxess
0a8fd01b99
Add zero byte check and tests
2021-07-13 03:45:21 +02:00
ekrctb
663ffae42f
Fix hit object selection blueprint potential null reference
2021-07-08 14:19:00 +09:00
Naxess
9f9e96ce9e
Add check for spanDuration
<= 0 prior to division
2021-06-27 15:40:09 +02:00
Naxess
a4a5325b73
Improve acceptable difference for repeat edges
...
Likelihood that `spanDuration` is greater than E+7 is quite low in any realistic case, so this should work fine.
2021-06-27 15:39:31 +02:00
Naxess
4cfa0ae5ec
Improve precision for repeat edges
2021-06-27 03:26:35 +02:00
Naxess
2cd7eda3c4
Add "or equal to" to volume threshold xmldocs
2021-06-27 02:30:12 +02:00
Naxess
0c0fd291d9
Order hitobjects by endtime
2021-06-27 01:25:03 +02:00
Naxess
4796b1b208
Use local variables for hasHitsound
& couldHaveHitsound
2021-06-27 00:04:30 +02:00
Naxess
5bc08ebadb
Rename hasHitsounds
-> mapHasHitsounds
2021-06-26 23:49:25 +02:00
Naxess
d29e6f4695
Add negligible template to PossibleTemplates
2021-06-26 23:49:06 +02:00
Naxess
1913084342
Use HitSampleInfo.AllAdditions
instead of new list
2021-06-26 23:48:28 +02:00
Naxess
f78cc9397e
Factor out edge type logic
2021-06-26 20:45:31 +02:00
Naxess
51147405c5
Make || and && priority explicit
2021-06-26 20:44:39 +02:00
Naxess
4b436b774d
Add few hitsounds check
2021-06-26 19:20:46 +02:00
Naxess
d8117fa730
Add muted objects check
2021-06-26 19:20:34 +02:00
ekrctb
9dcd0bf311
Remove IPlayfieldProvider
by caching Playfield
2021-06-17 10:15:24 +09:00
ekrctb
ef96ceb4ab
Introduce IPlayfieldProvider
2021-06-15 14:43:04 +09:00
Dean Herbert
8a76d97b63
Remove replay logic from DrawableRuleset
(and implement in DrawableEditorRulesetWrapper
)
2021-06-02 11:06:30 +09:00
Dean Herbert
bbfd7ea23f
Ensure RegenerateAutoplay
is only run once per frame
2021-05-23 21:20:08 +09:00
Dean Herbert
6c4709e7b4
Fix PlacementBlueprint
using the wrong beatmap when applying defaults
...
Closes #12855 .
2021-05-19 18:34:07 +09:00
Dean Herbert
a96603f025
Merge pull request #12782 from smoogipoo/rework-hitobject-blueprints
...
Rename hitobject blueprints and tie them to HitObjects
2021-05-18 16:30:58 +09:00
smoogipoo
882d54a8f8
Remove now unnecessary Apply() method
2021-05-18 14:26:26 +09:00
smoogipoo
e621cfc4ea
Add Apply() method for applying new DHOs
2021-05-18 14:14:10 +09:00
smoogipoo
f1f3606fd0
Fix unresolved xmldocs
2021-05-18 13:11:58 +09:00
Dan Balasescu
9d423245d8
Fix up xmldocs
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-05-18 13:02:23 +09:00
Dean Herbert
fcb226bd20
Add local variable for regular access to HitObjects
2021-05-14 16:23:45 +09:00
Naxess
a447f20095
Fix formatting of #nullable enable
2021-05-14 03:38:35 +02:00
Naxess
90e0b3374e
Add #nullable enable
...
Co-authored-by: Dean Herbert <pe@ppy.sh>
2021-05-14 03:34:50 +02:00
smoogipoo
ffb6135a1b
Rework hitobject blueprints to take in hitobject models
2021-05-13 19:53:32 +09:00
Naxess
19800f5f7f
Move IBeatmap
arg into context
2021-05-13 11:24:22 +02:00
Naxess
b37cb3bdbe
Change interpreted difficulty from bindable to regular value
...
There's no reason for why checks would need this to be bindable. A 1-directional binding is more appropriate.
2021-05-13 09:00:30 +02:00
Naxess
b7bc42e0d3
Rename "playableBeatmap" check arg to "beatmap"
...
The working beatmap is now in the context, so it's easier to distinguish beatmap type, hence no need for this prefix.
2021-05-12 02:34:16 +02:00
Naxess
64d96b06a6
Add interpreted difficulty info to BeatmapVerifierContext
...
Enables checks to make use of the difficulty level as shown in the settings UI.
2021-05-12 02:30:21 +02:00
Naxess
c13b93e6f1
Replace IWorkingBeatmap
arg with BeatmapVerifierContext
in checks
...
This simplifies passing of contextual information by enabling addition without needing to refactor lots of classes.
See next commit for example.
2021-05-12 02:29:18 +02:00
Naxess
75adec57eb
Remove negligible default hidden TODO
2021-05-12 01:31:16 +02:00
Salman Ahmed
b145f46a0a
Merge branch 'master' into skin-components-list
2021-04-30 21:10:55 +03:00
Dan Balasescu
e6eea73b8b
Merge branch 'master' into basic-compose-checks
2021-04-30 23:41:46 +09:00
Dean Herbert
a1e64f4e3c
Use the existing toolbox design
2021-04-30 14:41:06 +09:00
Dean Herbert
9c62c90cfc
Refactor SelectionBlueprint
and MoveSelectionEvent
to work in screen-space coordinates
...
Until now, the implementation of the overrides in `SelectionBlueprint`
have been confusing to the point where I would just implement by
trial-and-error (or copying from an existing implementation). This was
due to a combination of using "object" space coordinates
(ie. the thing the `Blueprint` is operating on) and screen-space coordinates.
This change switches all event related coordinates to screen-space,
which is how we already handle rotation/scale operations. With the
introduction of other editor types where the related objects are
drawables, this also makes a lot more sense.
2021-04-29 16:10:42 +09:00
Dean Herbert
f3c7694eeb
Rename methods to match generally how these find-methods are named elsewhere
2021-04-28 16:57:52 +09:00
Dean Herbert
48d6c9ac4b
Move snap/divisor helper methods to inside ControlPointInfo
2021-04-28 16:47:30 +09:00
Naxess
200352b750
Rename unsnap check templates
2021-04-27 13:56:05 +02:00
Dean Herbert
7ec5ea1eb5
Remove hitobject terminology from base classes
2021-04-27 19:01:29 +09:00
Dean Herbert
dd3d8e5d03
Make SelectionHandler
abstract to ensure things get implemented
2021-04-27 19:01:29 +09:00
Dean Herbert
f2e56bd306
Refactor editor selection/blueprint components to be generic
2021-04-27 19:01:29 +09:00
Dean Herbert
ec1c336b0a
Fix a couple of inspections
2021-04-27 13:23:14 +09:00
Naxess
7a6e9e5070
Change category of unsnap check to timing
...
Makes more sense, as this is typically the result of timing changes.
2021-04-27 02:32:57 +02:00
Naxess
9e49ecb573
Remove unused virtual
keywords
...
Added these in a previous iteration, where I had the mania variant inherit this class.
No longer necessary as `IHasColumn` was used to make this check more generic.
2021-04-27 02:23:06 +02:00