1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-21 16:42:55 +08:00
Commit Graph

757 Commits

Author SHA1 Message Date
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
Naxess
a3c1b1fd52 Fix accessibility of areConcurrent 2021-04-27 01:24:38 +02:00
Naxess
ce258febf6 Rename CheckUnsnaps -> CheckUnsnappedObjects
Will potentially have `CheckUnsnappedKiai` or similar later, so this is worth specifying.

Also consistent with `CheckConcurrentObjects`, which will likely have a `CheckConcurrentLines` later.
2021-04-26 20:32:44 +02:00
Naxess
b9e4f73f78 Add concurrent objects check to BeatmapVerifier 2021-04-26 20:28:59 +02:00
Naxess
a3570e18dd Add concurrent objects check
Here we use `IHasColumn` to support rulesets with columns, and so I moved that interface out into `osu.Game` from `osu.Game.Rulesets.Mania`.

We also use the same threshold as the unsnap check to ensure that no problems slip through. Specifically where an object is simultaneously not concurrent and not unsnapped but still on the same tick.
2021-04-26 20:17:18 +02:00
Naxess
9b9c473616 Remove redundant string formatting 2021-04-26 16:17:38 +02:00
Naxess
7b9ed924be Rename snapping methods
Further separates them from `IBeatSnapProvider`'s `SnapTime`, and groups them together more, to prevent confusion between the two interfaces.

Also changes the xmldoc of the reference time to that of `IBeatSnapProvider` for consistency.
2021-04-26 16:07:30 +02:00
smoogipoo
fd5fbaf0db Rename ruleset wrapper class 2021-04-26 15:37:42 +09:00
Naxess
049e42fa85 Move snapping responsibility to IBeatmap
Seems `EditorBeatmap` already implements a different kind of `SnapTime` from `IBeatSnapProvider`, so method names here aren't great.

This is very similar to what https://github.com/ppy/osu/pull/12558 is doing, so may need to do some duplicate resolution later, especially surrounding `ClosestBeatSnapDivisor`.

Worth noting that this change makes 1/7, 1/5, etc unsupported for now, as we now rely on `BindableBeatDivisor.VALID_DIVISORS`.
2021-04-26 05:07:24 +02:00
Naxess
6fd77e536d Add unsnap check 2021-04-25 05:34:54 +02:00
Dean Herbert
9a7bf8109f Allow certain mouse input to pass through PlacementBlueprints to the selection logic 2021-04-22 15:44:12 +09:00
Naxess
4510e795e1 Fix category of audio quality check 2021-04-20 02:13:26 +02:00
Naxess
c633f15565 Add audio quality check 2021-04-20 01:36:03 +02:00
Naxess
40ae856dfc Show 2 decimals for background filesize 2021-04-20 01:34:05 +02:00
Naxess
14c626ffcb Use the playable beatmap for file presence checks 2021-04-20 01:33:19 +02:00
Naxess
8656176ab8 Add the playable beatmap as check argument
This is different from the working beatmap's `.Beatmap` property in that it is mutated by the ruleset/editor.

So hit objects, for example, are actually of type `Slider` and such instead of the legacy `ConvertSlider`.

This should be preferred over `workingBeatmap.Beatmap`.
2021-04-20 01:31:51 +02:00
Naxess
9a69ca34a6 Add audio presence check 2021-04-18 02:07:57 +02:00
Naxess
010720de74 Factor out general file presence checking
This allows us to use the same method of checking for other files that should exist, for example the audio file.

By using the same method, they all share test cases too.
2021-04-18 02:07:33 +02:00
Naxess
56bf49c85c Take IWorkingBeatmap instead of WorkingBeatmap
This makes testing much easier, and allows for checking of any class deriving from that interface, including `WorkingBeatmap`.
2021-04-18 01:21:20 +02:00
Naxess
abf512532e Clean up check logic
Makes use of the new `BeatmapSet.GetPathForFile` method and removes dependency on `WorkingBeatmap` specifically, allowing us to switch to `IWorkingBeatmap` later.
2021-04-18 01:19:25 +02:00
Naxess
cb41c89935 Don't return low res and too low res at the same time 2021-04-17 20:10:07 +02:00
Naxess
62c54e00cb Add check for background resolution and filesize 2021-04-17 18:01:04 +02:00
Naxess
448574e7e6 Use WorkingBeatmap instead of IBeatmap
This lets us access things like the background, track, etc. which are necessary for quality and filesize checks.

Also improves the structure of the `CheckBackgroundTest` class in the process.
2021-04-17 17:33:53 +02:00
Dean Herbert
119c9b4294 Fix placement blueprints not being correctly removed after a rolled back placement 2021-04-16 14:11:33 +09:00
Dean Herbert
cb4f64133e Add xmldoc to interfaces 2021-04-13 23:30:20 +09:00
Naxess
69da804f81 Add missing period 2021-04-13 13:57:56 +02:00
Dean Herbert
0d6890243f Fix typo in xmldoc 2021-04-13 20:18:18 +09:00
Dean Herbert
03ba04e8ce Split out general checks into its own verifier class (and remove static usage) 2021-04-13 19:50:22 +09:00
Naxess
aa5fe2e9fc Rename BeatmapVerifier -> IBeatmapVerifier 2021-04-13 11:02:01 +02:00
Naxess
60c2494b31 Make BeatmapVerifier an interface 2021-04-13 10:40:56 +02:00
Naxess
6d3f9fa9ce Use is class instead of Equals with template index
Ensures ordering of `PossibleTemplates` does not affect tests.
2021-04-13 02:29:25 +02:00
Naxess
d8088777ea Add Equals method to IssueTemplate
This will be useful in tests.
2021-04-13 01:21:34 +02:00
Naxess
19a154ddf1 Rename checkOrigin -> check
More consistent with `Issue.ctor`'s "template".
2021-04-12 17:28:12 +02:00
Naxess
bb720c23a0 Remove check ctors and locals 2021-04-12 17:12:37 +02:00
Dean Herbert
62c1812282 Remove redundant parameter naming 2021-04-12 23:37:47 +09:00
Dean Herbert
36bd235021 Move nested classes to bottom of file 2021-04-12 23:36:10 +09:00
Naxess
6d50d01186 Make IssueTemplate.Check readonly 2021-04-12 16:23:05 +02:00
Naxess
caaaba5950 Rename Check -> ICheck 2021-04-12 16:20:53 +02:00
Naxess
008dbc7dd6 Reverse IssueType ordering
Reversed both in the enum and where it's displayed, so ends up the same in the end.
2021-04-12 15:49:13 +02:00
Naxess
7c4f6d2b62 Rework template usage
Includes moving the origin check back to templates, constructing nested template classes in each check, and making parameterized template usage.
2021-04-12 15:47:26 +02:00
Naxess
65ebdd8f7a Move check origin from IssueTemplate to Issue
As a result we can also make check an interface, and need to provide the check itself when constructing an issue.
2021-04-12 10:08:08 +02:00
Dean Herbert
8bf85d737c Change Metadata into a get property 2021-04-12 15:52:29 +09:00
Dean Herbert
78bbc8f5c8 Tidy some remaining code 2021-04-12 15:52:18 +09:00
Dean Herbert
8c31e96cdf Change some methods to get properties 2021-04-12 15:52:18 +09:00
Dean Herbert
f78239c7f2 Move enums out of nesting 2021-04-12 15:52:18 +09:00
Dean Herbert
3551322f1d Fix formatting of colour getter 2021-04-12 15:52:18 +09:00
Dean Herbert
257acf9cd8 Colour constants to private 2021-04-12 15:52:18 +09:00
Dean Herbert
136627b9ac Wrap xmldoc less and make a few fixes 2021-04-12 15:52:18 +09:00
Dean Herbert
1c553b5d48 Checker -> BeatmapVerifier 2021-04-12 15:29:05 +09:00
Dean Herbert
14bd5bdc77 Merge branch 'master' into verify-tab 2021-04-12 15:14:37 +09:00
Naxess
3289bb0379 Merge Check and BeatmapCheck
We're probably not going to need GeneralChecks or BeatmapsetChecks.

The verify tab is only available to a single difficulty at a time, and we already have access to the rest of the set through `IBeatmap`.
2021-04-10 14:56:30 +02:00
Naxess
bc4f3351f3 Replace checks with realistic ones 2021-04-10 13:03:16 +02:00
Naxess
b30e41b805 Fix comment; mode -> ruleset 2021-04-10 13:02:36 +02:00
Naxess
d1007ff26a Move components to more appropriate spot 2021-04-10 13:02:22 +02:00
Naxess
b24ce66a0d Add check/issue classes 2021-04-07 14:35:33 +02:00
Nathan Alo
9a02f3868c return a string instead 2021-03-29 17:29:05 +08:00
Nathan Alo
b8b7eb4c4b refactor logic to its own component and handle hit object to string conversion to its ruleset-specific composers 2021-03-26 15:25:20 +08:00
Dean Herbert
e9730d4782 Move default sample addition to inside PlacementBlueprint
This isn't actually required to fix the behaviour but it does feel like
a better place to put this logic.
2021-02-11 17:16:18 +09:00
Dean Herbert
04fa32bc34 Rename and add xmldoc for smooth seeking method 2021-01-15 16:14:21 +09:00
Dean Herbert
3ad2eeaff5 Fix outdated xmldoc 2020-11-30 18:35:30 +09:00
Dean Herbert
9811c46e35 Rename application method to better describe what it actually does 2020-11-26 19:16:18 +09:00
Dean Herbert
c9a41f9dae Make all objects in selection candidates for spatial snapping
Closes #10898.
2020-11-24 17:35:54 +09:00
smoogipoo
3957697c48 Add pooling support to the editor 2020-11-13 17:08:20 +09:00
smoogipoo
4ef2e9548c Pass HitObjectComposer to BlueprintContainer via ctor 2020-11-13 16:59:37 +09:00
Dean Herbert
9f333ac58a Add the ability to delete slider control points using shift+right click
Closes https://github.com/ppy/osu/issues/10672.

In two minds about how this should be implemented but went in this
direction initially. The other way would be to add local handling of
Shift-Right Click inside PathControlPointPiece (which is already doing
mouse handling itself).
2020-11-03 20:46:33 +09:00
Bartłomiej Dach
202fe09306 Group selection actions back up in SelectionHandler 2020-10-28 22:06:48 +01:00
Dean Herbert
27c1a4c4d3 Move right-click deletion logic to be handled at a SelectionBlueprint level 2020-10-27 12:53:54 +09:00
Bartłomiej Dach
3f8c4c57d0 Fix code style issues & restructure 2020-10-26 22:16:28 +01:00
Bartłomiej Dach
7c388f1132 Move editor playfield border locally to osu! composer 2020-10-19 21:20:13 +02:00
Bartłomiej Dach
4267d23d59 Move border to more appropriate namespace 2020-10-19 20:56:34 +02:00
Bartłomiej Dach
053c7a69a6 Fix code style issues & compilation failures 2020-10-19 20:22:48 +02:00
Dean Herbert
22bde43106
Merge branch 'master' into visible-playfield-boundary 2020-10-19 18:05:28 +09:00
Dean Herbert
beec0e4193 Hide children of SelectionBlueprint when not selected 2020-10-09 14:03:13 +09:00
Dean Herbert
575046e5fd Don't update reply on add/remove (will be automatically handled by change handler events) 2020-10-02 18:21:13 +09:00
Dean Herbert
b7c276093d Add fallback case when EditorChangeHandler is not present (for tests) 2020-10-02 16:21:51 +09:00
Dean Herbert
501e02db09 Only regenerate autoplay on editor state change 2020-10-02 15:44:37 +09:00
Dean Herbert
524c2b678c Forcefully regenerate autoplay on editor changes 2020-09-28 15:48:42 +09:00
Dean Herbert
ff7c904996 Add autoplay mod in editor specific ruleset construction 2020-09-28 15:48:42 +09:00
Dean Herbert
8e6bf516d9
Merge branch 'master' into editor-ternary-buttons 2020-09-25 18:30:59 +09:00
Dean Herbert
346d14d40b Rename variables to match 2020-09-25 17:45:19 +09:00
Dean Herbert
22511c36c3 Ensure toggles are not instantiated more than once for safety 2020-09-25 17:43:09 +09:00
Dan Balasescu
7b09f73fe5
Merge branch 'master' into new-combo-toggle 2020-09-25 17:33:12 +09:00
Dan Balasescu
e1fc8d76fb
Merge branch 'master' into editor-dont-block-keys-unnecessarily 2020-09-25 17:31:41 +09:00
Dean Herbert
b70a20e7f1 Avoid consuming keystrokes in editor when a modifier key is held down 2020-09-25 16:56:39 +09:00
Dean Herbert
da820c815e Add shortcut keys to toolbox gorup titles 2020-09-25 16:46:06 +09:00
Dean Herbert
a6298c60eb Fix button spacing 2020-09-25 16:44:37 +09:00
Dean Herbert
ae68dcd962 Add ternary toggle buttons to editor toolbox selection 2020-09-25 16:38:12 +09:00
Dean Herbert
e009264f10 Add new combo toggle to main composer interface 2020-09-25 14:10:30 +09:00
Dean Herbert
bca774a0d4 Allow BlueprintContainer to specify toggles 2020-09-25 14:09:31 +09:00
Dean Herbert
3c191cfe25 Add basic xmldoc to HitObjectComposer 2020-09-25 14:08:47 +09:00
Dean Herbert
325bfdbf71 Fix hard crash on hitting an out of range key (Q~P) 2020-09-25 13:25:42 +09:00
Dean Herbert
6ebea3f6f2 Add ability to toggle editor toggles using keyboard shortcuts (Q~P) 2020-09-24 16:24:25 +09:00
Joehu
c5b684bd2e Fix typo in log when beatmap fails to load 2020-09-23 00:30:20 -07:00
Dean Herbert
432c3e17eb Fix toolbox becoming inoperable due to incorrect ordering 2020-09-11 20:23:34 +09:00
Dean Herbert
139a5acd1b Fix editor hitobjects getting masked weirdly
Closes #10124
2020-09-11 20:16:50 +09:00
Dan Balasescu
6f6adb61d7
Merge pull request #10099 from peppy/add-editor-tool-icons
Add icons for editor toolbox tools
2020-09-09 22:22:58 +09:00
Dan Balasescu
53a9804455
Merge branch 'master' into add-editor-tool-icons 2020-09-09 21:21:56 +09:00
Dean Herbert
d210e05629 Add a touch of spacing between toolbox groups 2020-09-09 19:20:11 +09:00
Dean Herbert
fb2aced3ac Add toggle for distance snap 2020-09-09 19:15:35 +09:00
Dean Herbert
d3957e6155 Move title specification for settings groups to constructor
Using an abstract property was awkward for this as it is being consumed
in the underlying constructor but could not be dynamically set in time from a
derived class.
2020-09-09 18:50:31 +09:00
Dean Herbert
c9f5005efd Add icons for editor toolbox tools 2020-09-09 18:40:01 +09:00
Yao Chung Hu
96f39dd350 Merge remote-tracking branch 'upstream/master' into visible-playfield-boundary 2020-09-05 01:50:13 -05:00
Dean Herbert
127330b8f9 Add 1ms lenience to avoid potential precision issues 2020-08-25 20:57:31 +09:00
Dean Herbert
6c7475f085 Fix snapped distances potentially exceeding the source distance
This results in slider placement including "excess" length, where the
curve is not applied to the placed path. This is generally not what we
want.

I considered adding a bool parameter (or enum) to change the
floor/rounding mode, but on further examination I think this is what we
always expect from this function.
2020-08-25 18:58:01 +09:00
Yao Chung Hu
0d95b768aa Rename and Move EditorPlayfieldBorder to PlayfieldBorder for general purpose 2020-07-10 07:34:48 -05:00
Dean Herbert
780611a954
Merge branch 'master' into taiko-editor 2020-06-01 15:39:02 +09:00
Dean Herbert
19be111da0
Move incorrect placed full stop
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-05-31 22:33:10 +09:00
Dean Herbert
590931b17c Pass hitobjects as a parameter to CreateBlueprintContainer 2020-05-29 16:45:47 +09:00
Dean Herbert
597f284805 Tidy up and complete xmldoc for HitObjectComposer 2020-05-29 16:45:47 +09:00
Dean Herbert
b2fad91589 Add swell and drumroll blueprints 2020-05-29 16:45:47 +09:00
Dean Herbert
46689a2fbc Tidy up and complete xmldoc for HitObjectComposer 2020-05-29 11:46:32 +09:00
Dan Balasescu
1a2392aa83
Merge branch 'master' into remove-unused-mania-rprop 2020-05-28 14:57:10 +09:00
Dean Herbert
6be5917eb0 Remove necessity for custom mania interface caching 2020-05-27 23:15:16 +09:00
Dan Balasescu
0891c47d09
Merge pull request #9124 from peppy/editor-hide-non-alive-blueprints-default
Hide non-alive selection blueprints by default
2020-05-27 21:29:53 +09:00
Dean Herbert
9a060cfb3a Allow drag selections to occur from outside the playfield 2020-05-27 20:44:15 +09:00
Dean Herbert
f5c974dd89 Hide non-alive selection blueprints by default 2020-05-27 13:40:16 +09:00
Dan Balasescu
b5de30ef3d
Merge branch 'master' into editor-scrolling-playfield-support 2020-05-26 14:46:58 +09:00
Dean Herbert
0cc6d6d97c
Merge pull request #9033 from smoogipoo/applydefaults-cancellation
Add cancellation token support to CreateNestedHitObjects()
2020-05-26 12:04:06 +09:00
Dan Balasescu
98f3d790df
Merge pull request #9107 from peppy/editor-remove-size-propagation
Remove unnecessary size propagation in HitObjectComposer
2020-05-25 23:55:26 +09:00
Dean Herbert
e7442ec3a2 Remove need for ManiaSnapResult 2020-05-25 19:33:03 +09:00
Dean Herbert
af5fac471e Remove unnecessary size propagation in HitObjectComposer 2020-05-25 19:29:46 +09:00
smoogipoo
ebe2e97372 Merge branch 'master' into editor-clock-transform 2020-05-25 19:01:04 +09:00
smoogipoo
bc35bc5efb Merge branch 'master' into applydefaults-cancellation 2020-05-25 16:45:30 +09:00
smoogipoo
cd65fc860b Remove extra default application 2020-05-25 16:15:55 +09:00
Dean Herbert
b44beb4137 Remove double resolution of EditorClock 2020-05-25 15:40:45 +09:00
Dean Herbert
ed83ef202a Merge branch 'master' into editor-clock-cache 2020-05-25 15:39:42 +09:00
Dan Balasescu
2f9cc0c15a
Merge pull request #9078 from peppy/editor-move-distance-snap-grid
Move distance snap grid to osu! HitObjectComposer
2020-05-25 15:05:30 +09:00
Dean Herbert
decdc58de5 Merge branch 'editor-clock-cache' into editor-clock-transform 2020-05-24 12:55:47 +09:00
Dean Herbert
a3a9810344 Merge branch 'master' into editor-clock-cache 2020-05-23 00:44:04 +09:00
Dean Herbert
1311fd2f64
Merge branch 'master' into editor-move-distance-snap-grid 2020-05-23 00:42:43 +09:00
Dean Herbert
83f4ba107f Fix defaults not being applied correctly to blueprints after StartTime is changed 2020-05-22 22:42:17 +09:00
Dean Herbert
3e0ee310d0 Remove now incorrect comment 2020-05-22 18:30:39 +09:00
Dean Herbert
d18eb663b1 Add tweening seek support to EditorClock 2020-05-22 16:47:52 +09:00
Dean Herbert
dd09d7830d Cache and resolve editor clock as EditorClock in all cases 2020-05-22 16:44:06 +09:00
Dean Herbert
8a47e2431b Move distance snap grid implementation to OsuHitObjectComposer 2020-05-21 17:13:22 +09:00
Dean Herbert
b1fd7da824 Merge branch 'master' into editor-position-snap 2020-05-21 15:47:20 +09:00
Dean Herbert
776b842fdb Remove unused using 2020-05-21 14:53:36 +09:00
Dean Herbert
a9a1c00cf1 Move responsibility placement blueprint's StartTime set to within 2020-05-21 14:50:33 +09:00
Dean Herbert
e09a1bf546 Only seek forwards if not already beyond the placed object 2020-05-20 21:50:52 +09:00
Dean Herbert
b5a7023312 Seek to start time after placement, not end 2020-05-20 21:46:52 +09:00
Dean Herbert
7c9fbb6fcf Split out classes 2020-05-20 21:03:03 +09:00
Dean Herbert
82d6549161 Pass down snap result and remove local TimeAt usage 2020-05-20 21:01:29 +09:00
Dean Herbert
970bd86d2e Remove local TimeAt usage in mania placement 2020-05-20 21:01:29 +09:00
Dean Herbert
23bf0d000e Implement mania beat snapping support 2020-05-20 21:01:19 +09:00
Dean Herbert
ffb8d48fc3 Fix osu!mania editor placement regressions 2020-05-20 21:01:03 +09:00
Dean Herbert
c46bfc2532 Create SnapResult class to hold various snapping results 2020-05-20 21:00:47 +09:00
Dean Herbert
3354d48a38 Change snapping to be screen space coordinate based 2020-05-20 21:00:29 +09:00
smoogipoo
98125102a7 Add cancellation token support to CreateNestedHitObjects() 2020-05-15 18:07:41 +09:00
smoogipoo
f38b64d201 Fix placement blueprints handling double clicks 2020-04-13 13:57:15 +09:00
smoogipoo
ee6ea08cf8 Cleanup handling of hitobject updates 2020-04-09 20:16:44 +09:00
Dean Herbert
b65e839bd2 Simplify blueprints by removing visible state 2020-02-13 10:00:09 +09:00
Dean Herbert
0fe41fd50a Fix blueprint showing even when mouse outside of container 2020-02-13 09:03:48 +09:00
Dan Balasescu
f3c47dc8c9 Merge branch 'master' into seek-to-endtime-on-placement 2020-02-10 14:53:11 +09:00
Dean Herbert
91203c2b12
Merge branch 'master' into placement-display-in-timeline 2020-02-08 01:50:24 +09:00
Dean Herbert
678eb8ec31
Reduce accessibility to set
Co-Authored-By: Dan Balasescu <smoogipoo@smgi.me>
2020-02-08 00:12:23 +09:00
Dean Herbert
2e50e56d7c Seek to previous object endtime after successful placement 2020-02-07 19:12:09 +09:00
Dean Herbert
a6531bf73e Don't show distance snap grid for spinners (for now) 2020-02-07 19:09:23 +09:00
Dean Herbert
e08437c5dc Track placement object in EditorBeatmap 2020-02-07 18:03:14 +09:00
Dean Herbert
e31d69c749 Add commit status to EndPlacement; call BeginPlacement on initial movement 2020-02-07 18:02:48 +09:00
Dan Balasescu
a6a285bc09
Merge branch 'master' into fix-editor-snapping-inaccuracy 2020-02-07 17:20:42 +09:00
Dean Herbert
8990152315 Fix duration snapping still being incorrect 2020-02-07 16:43:50 +09:00
Dean Herbert
3aa18abd99
Fix typo in xmldoc
Co-Authored-By: Tree <thewildtree@outlook.com>
2020-02-07 16:22:59 +09:00
Dean Herbert
f63bf06373 Fix incorrect distance snap grid being displayed when in selection mode 2020-02-07 16:09:54 +09:00
Dean Herbert
63c595ed97 Make EditorBeatmap a component and move UpdateHitObject to it 2020-02-05 17:48:21 +09:00
Berkan Diler
9596030e1d Make use of ElementAtOrDefault() when possible 2020-01-31 18:32:47 +01:00
Dan Balasescu
77b1bf3ee2
Merge pull request #7648 from peppy/keyboard-composition-tools
Allow selecting composition tools using 1-4 keys
2020-01-29 17:29:11 +09:00
Dan Balasescu
37c7fe30fa
Merge branch 'master' into keyboard-composition-tools 2020-01-29 16:52:47 +09:00
Dan Balasescu
66b8d38d42
Merge branch 'master' into selection-composition-conformity 2020-01-29 16:52:45 +09:00
Dan Balasescu
65ac412ff8
Merge branch 'master' into fix-beat-snap 2020-01-29 15:32:27 +09:00
Dean Herbert
8e2159e4eb Ensure selection tool correctly matches selection state
- When a selection is made (via the timeline) the selection tool should become the select tool.
- When the selection tool is changed to anything *but* the select tool, the selection should be cleared.
2020-01-28 15:13:12 +09:00
Dean Herbert
7e0c45de6d Allow selecting composition tools using 1-4 keys 2020-01-28 15:09:03 +09:00
Dean Herbert
e81d3c51ed Move select tool to an actual tool implementation
Also tidies up radio button action firing so calling Select actually fires the associated action in all cases.
2020-01-28 15:05:29 +09:00
Dean Herbert
58654f28b6 Fix beat snap implementation being incorrect 2020-01-28 12:48:24 +09:00
smoogipoo
027778acc1 Fix slider circles not being selected by default 2020-01-24 17:51:24 +09:00
Dean Herbert
289be7a17b Merge branch 'i-beat-snapping' into timeline-maybe 2020-01-23 15:45:33 +09:00
Dean Herbert
ccf911884b Remove passed in BaetDivisor 2020-01-23 15:31:56 +09:00
Dean Herbert
098d643955 Move beat snapping to its own interface 2020-01-23 14:39:56 +09:00
Dean Herbert
56c044c44a Move beat snapping to its own interface 2020-01-23 14:30:25 +09:00
Dean Herbert
98aaf38649 Fix playfield movement regressing 2020-01-21 23:58:51 +09:00
Dean Herbert
24a466ab24 Avoid null by calling initial OnDeselected later 2020-01-21 17:36:21 +09:00
Dean Herbert
8f16c1cb04 Add non-hiding selection state 2020-01-21 14:21:00 +09:00
Dean Herbert
bd96cf94a6 Begin refactoring SelectionBlueprint to handle non-drawable HitObjects 2020-01-21 12:47:14 +09:00
smoogipoo
5f178b7755 General refactorings 2020-01-16 11:54:03 +09:00
Dean Herbert
d57f55f053 Apply remaining changes required to restore previous functionality 2020-01-15 19:09:49 +09:00
Dean Herbert
ee332e0d42 Split out BlueprintContainer functionality further 2020-01-02 18:21:16 +09:00
smoogipoo
8c378dc625 Move EditorBeatmap construction/conversion to Editor 2019-12-30 14:51:14 +09:00
smoogipoo
6069d98ced Remove generic editor beatmap 2019-12-27 19:39:30 +09:00
smoogipoo
5861eca80d Make DrawableRuleset take a converted beatmap 2019-12-12 15:58:11 +09:00
Dean Herbert
9f4c8db395 Add xmldoc 2019-12-06 12:17:41 +09:00
Dean Herbert
d8620a70fb Make work in editor 2019-12-05 20:12:25 +09:00
smoogipoo
10fd5ef5a7 Merge context menus 2019-11-12 15:02:27 +09:00
smoogipoo
e924a5d51e Disable ruleset input in the editor 2019-11-11 13:04:43 +09:00
smoogipoo
f3ddc4c00b Advance editor clock after a snapped placement 2019-11-07 14:08:02 +09:00
smoogipoo
64d900b387 Disable input for non-selected blueprints 2019-11-05 11:33:37 +09:00
smoogipoo
41ae66d517 Update slider when control points change 2019-10-31 18:24:38 +09:00
smoogipoo
9f28b1905b Expose composer method to update hitobject 2019-10-31 18:15:19 +09:00
Dan Balasescu
3692846367
Merge branch 'master' into snapping-refactor 2019-10-25 18:26:14 +09:00
smoogipoo
4ca6a5a0cc Interface the distance snap provider 2019-10-25 16:50:21 +09:00
smoogipoo
607b4d874a Refactor flow of snapping through HitObjectComposer 2019-10-25 16:40:30 +09:00
Dean Herbert
fa3350ce2d
Refactor blueprint movement and selection events (#6588)
Refactor blueprint movement and selection events
2019-10-24 22:58:03 +09:00
smoogipoo
d83b9ef0e4 Rename grid snapping methods 2019-10-24 18:18:04 +09:00
smoogipoo
f45f17339c Implement slider path distance snapping 2019-10-24 18:17:30 +09:00
smoogipoo
e04c77178c Move selection events to BlueprintContainer 2019-10-24 14:58:02 +09:00
smoogipoo
714c89faa4 Move selection drag events to BlueprintContainer 2019-10-24 14:57:58 +09:00
smoogipoo
c03fa01fd9 Remove unnecessary set 2019-10-23 17:51:16 +09:00
smoogipoo
2c9b11cdfd Move variable outside of if block 2019-10-23 17:49:21 +09:00
smoogipoo
64682611bb Fix distance snapping grid not updating on scroll 2019-10-23 16:39:14 +09:00
Dean Herbert
e3fa5f1da3
Merge branch 'master' into beatsnap-grid-integration 2019-10-21 18:44:34 +09:00
Dean Herbert
b157aaead1 Merge remote-tracking branch 'upstream/master' into beatsnap-grid-integration 2019-10-21 17:09:43 +09:00
smoogipoo
38c2c328ff Rename HitObject -> DrawableObject in selection blueprints 2019-10-21 17:04:56 +09:00
smoogipoo
190a83da6e Refresh the grid after a placement 2019-10-18 19:04:08 +09:00
Dean Herbert
07286c0cfc Fix editor's clock not being processed unless composer is loaded 2019-10-18 18:21:53 +09:00
smoogipoo
31313ec9e1 Fix potential nullref 2019-10-18 17:56:31 +09:00
smoogipoo
f1d7e7e7f6 Merge branch 'placement-blueprint-starttime' into beatsnap-grid-integration 2019-10-18 13:49:09 +09:00
smoogipoo
463079e148 Implement placement snapping 2019-10-18 13:48:59 +09:00
smoogipoo
cb301a4661 Improve performance of intra-frame updates/deletions 2019-10-18 13:18:57 +09:00
smoogipoo
b047e05d86 Fix bad variable names 2019-10-18 13:18:16 +09:00
smoogipoo
ba4402207a Implement selection time snapping 2019-10-18 12:53:38 +09:00
smoogipoo
1dc7c59853 Implement selection position snapping 2019-10-18 12:53:27 +09:00
smoogipoo
c4704f6a29 Add beat snap grid to the composer 2019-10-18 12:47:52 +09:00
smoogipoo
d3e38f5e5a Make the editor beatmap protected 2019-10-18 12:40:31 +09:00
smoogipoo
79b2c7b480 Make BeginPlacement() set the hitobject start time 2019-10-16 20:04:15 +09:00
smoogipoo
c1db11fa06 More removal of "drag" 2019-10-08 19:24:58 +09:00
smoogipoo
08d043f447 Move selection relative to the hitobject start positions 2019-10-08 18:57:03 +09:00
Dean Herbert
6fce646369
Merge branch 'master' into placement-blueprint-movement 2019-10-04 19:05:56 +08:00
smoogipoo
652acac87f Move placement movement event to BlueprintContainer 2019-10-03 16:14:42 +09:00
smoogipoo
2c13043c42 Hook up the event to HitObjectComposer 2019-10-03 14:40:00 +09:00
smoogipoo
6ab2b20c70 Add an interface for working beatmaps 2019-08-29 19:38:44 +09:00
smoogipoo
714ee312da Rename DrawableEditRuleset -> DrawableEditRulesetWrapper 2019-08-29 18:20:43 +09:00
smoogipoo
87e28ab1f9 Remove non-generic DrawableEditRuleset 2019-08-29 18:12:29 +09:00
smoogipoo
59296d12f3 Refactor HitObjectComposer 2019-08-29 18:02:50 +09:00
smoogipoo
0fbdcabb6f Re-use a single beatmap processor 2019-08-29 17:21:52 +09:00
smoogipoo
b40143cb73 Remove unnecessary comment 2019-08-29 17:18:34 +09:00
smoogipoo
dad0fa2dca Bind disposal 2019-08-29 16:31:40 +09:00
smoogipoo
5db813b7a4 Add secondary interface for further abstraction 2019-08-29 16:26:39 +09:00
smoogipoo
7927b684d3 Hook up + use editor beatmap 2019-08-29 16:06:40 +09:00
smoogipoo
6949c96aaa Add initial EditorBeatmap structure 2019-08-29 15:17:27 +09:00
smoogipoo
8c67f58e2d Disable frame-stable playback in the editor 2019-08-15 18:25:31 +09:00
Arphox
07e17518e9 Fix all "Maintainability" CodeFactor issues 2019-06-11 10:28:16 +02:00
smoogipoo
d7c09e7dbd Merge remote-tracking branch 'origin/master' into fix-new-inspections
# Conflicts:
#	osu.Game.Rulesets.Catch/Judgements/CatchDropletJudgement.cs
#	osu.Game.Rulesets.Catch/Judgements/CatchJudgement.cs
#	osu.Game.Rulesets.Mania/Scoring/ManiaScoreProcessor.cs
#	osu.Game.Rulesets.Osu/Replays/OsuAutoGenerator.cs
#	osu.Game.Rulesets.Osu/UI/Cursor/CursorTrail.cs
#	osu.Game.Tests/Visual/SongSelect/TestCaseBeatmapScoresContainer.cs
#	osu.Game/Graphics/OsuFont.cs
#	osu.Game/Online/API/Requests/Responses/APILegacyScoreInfo.cs
#	osu.Game/Overlays/Profile/Header/BadgeContainer.cs
#	osu.Game/Overlays/Profile/ProfileHeader.cs
#	osu.Game/Screens/Select/PlaySongSelect.cs
#	osu.Game/Skinning/LegacySkinDecoder.cs
2019-05-07 13:20:17 +09:00
smoogipoo
0bd35ab7bb Turn on warnings, resolve issues 2019-04-25 17:36:17 +09:00
smoogipoo
0222424aef Make mods IReadOnlyList<Mod> gamewide
Prevents potential multiple evaluations of enumerable.
2019-04-10 17:20:36 +09:00
smoogipoo
c584967eb1 Remove mods from workingbeatmap 2019-04-09 12:59:32 +09:00
Dean Herbert
c39c37a18d Apply more missed cases 2019-04-01 12:44:46 +09:00
Dean Herbert
612db31c38 Apply newline additions 2019-04-01 12:16:32 +09:00
Dean Herbert
6896ec7731 Remove unnecessary method 2019-04-01 10:39:55 +09:00
Dean Herbert
42eaabe24c Fix editor blueprints being misplaced
Regressed with PlayfieldAdjustmentContainer changes.
2019-03-31 01:29:37 +09:00
Dean Herbert
9bf48863b0 Fix DrawableRuleset drawable creation method's name 2019-03-25 00:00:29 +09:00
Dean Herbert
5f288650bf Fix misses/typos 2019-03-20 14:49:33 +09:00
Dean Herbert
3b7a76aa4e Fix typo 2019-03-20 11:22:34 +09:00
Dean Herbert
e0ab40b082 Rename missed files 2019-03-19 23:56:12 +09:00
Dean Herbert
baea7230bc Rename RulesetContainer to DrawableRuleset 2019-03-19 23:47:31 +09:00
Dean Herbert
26d53d06a9 Fix remaining issues 2019-02-28 13:31:40 +09:00
smoogipoo
d8c55bc729 Adjust namespaces 2019-02-21 19:05:52 +09:00
Dean Herbert
ca5c8d37d1 Use leased bindables 2019-02-01 16:44:06 +09:00
Dean Herbert
8617aaa2a7 Update licence header (and remove year) 2019-01-24 17:43:03 +09:00
Dean Herbert
5254b07680 Merge remote-tracking branch 'upstream/master' into inter-column-movements 2018-11-30 11:57:53 +09:00
Dean Herbert
7ffc597a8e Fix one-frame issues 2018-11-29 14:55:20 +09:00
Dean Herbert
3d46ac7d35 Remove unnecessary high frequency input 2018-11-29 13:21:11 +09:00
smoogipoo
f9f300b215 Fix drag breaking if scrolling while dragging 2018-11-26 16:08:56 +09:00
Dean Herbert
4cfeb1b9a1
Merge branch 'master' into note-placement 2018-11-26 14:35:31 +09:00
Dean Herbert
c944e8bb29
Merge branch 'master' into fix-deletion-crash 2018-11-26 14:20:02 +09:00
smoogipoo
56032a4522 Merge branch 'mania-selection-movement' into inter-column-movements
# Conflicts:
#	osu.Game.Rulesets.Mania/Edit/Blueprints/ManiaSelectionBlueprint.cs
#	osu.Game/Screens/Edit/Compose/Components/SelectionHandler.cs
2018-11-26 11:45:48 +09:00
Dean Herbert
1da2006dea
Merge branch 'master' into note-placement 2018-11-22 19:44:39 +09:00
smoogipoo
dc8cd51e15 Implement mania note deletion 2018-11-20 17:26:00 +09:00
smoogipoo
f27bd3ef3e OpenTK -> osuTK 2018-11-20 17:14:59 +09:00
smoogipoo
d5b937f88f Fix post-merge issue 2018-11-19 19:17:03 +09:00
Dan Balasescu
8cee4141e8
Merge branch 'master' into note-placement 2018-11-19 19:08:53 +09:00
smoogipoo
55edeb095d SelectionBox -> SelectionHandler 2018-11-19 16:58:11 +09:00
smoogipoo
4cbda97b1e Move positional adjustment to SelectionBox 2018-11-16 17:12:24 +09:00
smoogipoo
df7515b66f Pass all selected hitobjects to the selection blueprints 2018-11-15 21:01:09 +09:00
smoogipoo
d5464702fa Fix post-merge issue 2018-11-15 20:56:34 +09:00
smoogipoo
eddba44d0f Merge branch 'note-placement' into inter-column-movements 2018-11-15 20:53:57 +09:00
smoogipoo
c963fc7cd2 Reduce chaining 2018-11-14 18:34:13 +09:00
smoogipoo
6d43baf4bf Make show/hide only invoked once each 2018-11-13 13:12:11 +09:00
smoogipoo
fbc20d2d4d Hide placement when cursor is not in the playfield 2018-11-13 12:52:04 +09:00
smoogipoo
3a1fee59fb Implement note placement 2018-11-12 18:24:18 +09:00
Dean Herbert
4783df1d4b Fix compose mode not working 2018-11-09 11:36:06 +09:00
smoogipoo
c6350c6efd Remove IHasEditablePosition 2018-11-08 13:03:11 +09:00
smoogipoo
5d51719572 Make selection blueprints handle position adjustments 2018-11-07 16:21:32 +09:00
smoogipoo
52f4923c8e Remove intermediate Screens namespace 2018-11-06 18:28:22 +09:00
smoogipoo
ac25718c5a Renamespace compose-mode components 2018-11-06 18:14:46 +09:00
smoogipoo
27d82052f4 BorderLayer -> EditorPlayfieldBorder 2018-11-06 18:10:46 +09:00
smoogipoo
85f96ad62f Fix a few missed renames 2018-11-06 18:07:53 +09:00
smoogipoo
bd775af274 PlacementMask -> PlacementBlueprint 2018-11-06 18:04:03 +09:00
smoogipoo
11be820efe CreateMaskFor -> CreateBlueprintFor 2018-11-06 18:03:21 +09:00
smoogipoo
90c813618a Merge PlacementContainer into BlueprintContainer 2018-11-06 18:02:55 +09:00
smoogipoo
f2a5f28ea2 SelectionMask -> SelectionBlueprint 2018-11-06 17:56:04 +09:00
smoogipoo
ad2836a61e MaskSelection -> SelectionBox 2018-11-06 17:52:47 +09:00
smoogipoo
26c9390c16 HitObjectMaskLayer -> BlueprintContainer 2018-11-06 17:36:10 +09:00
Dean Herbert
85a7325911 Fix placement masks handling scroll events 2018-10-31 17:23:27 +09:00
Dean Herbert
3207a585c6 Add missing xmldoc 2018-10-31 12:01:10 +09:00
smoogipoo
2b141a2bc1 Make PlacementMask abstract 2018-10-25 19:10:59 +09:00
smoogipoo
ea6db8b793 Make the hitobject masks move within their placement/selection 2018-10-25 18:16:25 +09:00
smoogipoo
0e841628b6 Implement hitobject deletion 2018-10-18 16:36:06 +09:00
smoogipoo
5a5e91eaed Add a way to re-invoke ApplyDefaults on placement object 2018-10-17 18:36:47 +09:00
smoogipoo
b7435c0c5f Fix border layer not working 2018-10-17 18:29:30 +09:00
smoogipoo
6eb7a030d0 Fix placement container not being refreshed upon placement 2018-10-17 18:11:44 +09:00
smoogipoo
d36ac59ca2 Reduce complexity of creating edit ruleset containers 2018-10-17 18:06:00 +09:00
smoogipoo
969477dadd Remove placement events, make everything pass top-down 2018-10-17 17:43:16 +09:00
smoogipoo
62635c5ab8 Add container to handle placement mask 2018-10-17 16:17:49 +09:00
smoogipoo
4ea4ec0d25 Move placement handling events to a higher level 2018-10-17 15:46:30 +09:00
smoogipoo
08e3fe1def Add PlacementStarted event, rename placement methods 2018-10-17 14:37:45 +09:00
smoogipoo
70f1d17b7e Merge remote-tracking branch 'origin/master' into editor-mask-placement
# Conflicts:
#	osu.Game.Rulesets.Catch/UI/CatchRulesetContainer.cs
#	osu.Game.Rulesets.Mania/Edit/ManiaEditRulesetContainer.cs
#	osu.Game.Rulesets.Osu/Edit/OsuEditRulesetContainer.cs
#	osu.Game/Rulesets/UI/RulesetContainer.cs
2018-10-16 17:28:16 +09:00
smoogipoo
b56d09c83b Set hitobject placement time manually 2018-10-10 15:32:59 +09:00
smoogipoo
ff559a3a1b Merge remote-tracking branch 'origin/master' into playfield-scaling-rework
# Conflicts:
#	osu.Game.Rulesets.Catch/UI/CatchPlayfield.cs
#	osu.Game/Rulesets/UI/Scrolling/ScrollingPlayfield.cs
2018-10-05 10:40:16 +09:00
smoogipoo
e931aa3d9e Move positional modifications to HitCirclePlacementMask 2018-10-04 13:43:50 +09:00
smoogipoo
7809ce9361 Fix 1-frame position discrepancy 2018-10-03 17:05:22 +09:00
smoogipoo
934b687965 Fix selection masks not being added for new objects 2018-10-03 16:49:59 +09:00
smoogipoo
34ed60830c Keep the placement hitobject time up-to-date 2018-10-03 16:44:37 +09:00
smoogipoo
3420e0c7eb Re-implement composition tools + implement placement masks 2018-10-03 16:27:26 +09:00
smoogipoo
540a010fbb Implement an intermediary EditRulesetContainer 2018-10-03 15:36:24 +09:00
smoogipoo
4cdb6dcea5 Rename HitObjectMask -> SelectionMask 2018-10-03 13:28:00 +09:00
ekrctb
50091252e2 Adapt signature change of event handlers 2018-10-02 12:02:55 +09:00
ekrctb
99fc04c8af Change signature to new event handler 2018-10-02 12:02:47 +09:00
smoogipoo
a8f156584b Update framework with positional/non-positional changes 2018-09-26 14:01:15 +09:00
smoogipoo
826dc6ceb7 Make Playfield not a ScalableContainer 2018-09-21 14:02:32 +09:00
Dean Herbert
aead4be134 Merge remote-tracking branch 'upstream/master' into AlFasGD-mania-mask-container 2018-07-23 06:36:10 +02:00
Dean Herbert
d868d81b59
Merge branch 'master' into centralise-judgement-display 2018-07-23 02:58:49 +09:00
Dean Herbert
0f37758314 Update framework 2018-07-21 16:21:53 +09:00
smoogipoo
1139f0dbf2 Centralise method of disabling playfield judgements 2018-07-20 17:04:33 +09:00
smoogipoo
b7721edc80 Remove more unnecessary changes 2018-07-19 18:25:28 +09:00
smoogipoo
9b7d01397b Add ruleset config to HitObjectComposer 2018-07-17 16:53:32 +09:00
smoogipoo
9f730dd784 Merge branch 'editor-composer-cleanup' into mania-mask-container
# Conflicts:
#	osu.Game/Rulesets/Edit/HitObjectComposer.cs
#	osu.Game/Screens/Edit/Screens/Compose/Layers/HitObjectMaskLayer.cs
2018-07-17 16:00:46 +09:00
smoogipoo
3905a9105c Add a playfield method to retrieve all hitobjects 2018-07-17 15:51:10 +09:00
smoogipoo
0b66f63f7d Invert flow order of hitobjects between composer and mask layers 2018-07-17 15:35:32 +09:00
smoogipoo
55475d129f Merge remote-tracking branch 'origin/master' into mania-mask-container
# Conflicts:
#	osu.Game.Rulesets.Mania/Objects/Drawables/DrawableHoldNote.cs
2018-06-07 19:19:20 +09:00
smoogipoo
72cc53aded Rename GameBeatmap -> BindableBeatmap 2018-06-06 20:16:20 +09:00