1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-06 09:47:52 +08:00
Commit Graph

8420 Commits

Author SHA1 Message Date
Salman Ahmed
840c22a3b1 Add back mis-removed fade transform 2021-05-03 12:16:40 +03:00
Dean Herbert
4f8240f19a
Merge branch 'master' into corner-rotation-controls 2021-05-03 18:02:23 +09:00
Salman Ahmed
b83aa0bd76 Avoid LINQ in update 2021-05-02 06:21:14 +03:00
Salman Ahmed
0aa17e7c95 Rewrite selection box computation logic with RectangleF's helper methods 2021-05-02 02:51:06 +03:00
Salman Ahmed
07fe99025f Use bounding box of blueprint for computing selection box area 2021-05-02 02:36:40 +03:00
Bartłomiej Dach
eef135f8dc
Merge branch 'master' into remove-unused-triangles 2021-04-30 21:51:23 +02:00
Dan Balasescu
e6eea73b8b
Merge branch 'master' into basic-compose-checks 2021-04-30 23:41:46 +09:00
Dean Herbert
e4f895b490 Fix editor buttons inheriting from TriangleButton when they have no need to 2021-04-30 14:48:37 +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
Dean Herbert
e0906daebf Change one remaining instance of incorrect terminology in xmldoc 2021-04-28 13:49:41 +09:00
Dean Herbert
4c9e94da2b Move context menu logic to base class 2021-04-28 13:43:16 +09:00
Dean Herbert
532ec40395 Remove unnecessary newline 2021-04-28 12:04:48 +09:00
Dean Herbert
43772f4303 Remove duplicated call to initially select blueprint 2021-04-28 12:03:41 +09:00
Dean Herbert
e4f2e0131c Rename AllowDeselection to better match use case 2021-04-28 12:02:55 +09:00
Dean Herbert
a9a5809e94 Fix incorrect xmldoc in MoveSelectionEvent 2021-04-28 11:46:52 +09:00
Dean Herbert
d0be8f9fb3 Remove one more out-of-date comment 2021-04-28 11:45:36 +09:00
Dean Herbert
bc455005a5 Fix incorrect coordinate space mention in xmldoc 2021-04-28 11:44:50 +09:00
Dean Herbert
61d4eb1777 Remove unnecessary and out-of-place xmldoc 2021-04-28 11:44:19 +09:00
Dean Herbert
aa1cb65eaa Rename region to be more inclusive 2021-04-28 11:42:22 +09:00
Dean Herbert
42255f8d33 Rename and xmldoc selection completed method 2021-04-27 19:01:29 +09:00
Dean Herbert
7ec5ea1eb5 Remove hitobject terminology from base classes 2021-04-27 19:01:29 +09:00
Dean Herbert
ff06a27a12 Revert changes to OnBlueprint methods and handle select-on-addition locally 2021-04-27 19:01:29 +09:00
Dean Herbert
f97b14a20a Fix binding direction of selected items 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
32416e4e31 Move model selection handling to base SelectionHandler class 2021-04-27 19:01:29 +09:00
Dean Herbert
eac139ca0e Allow BlueprintContainer to perform movement without an ISnapProvider 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
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
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
Salman Ahmed
485da47d89 Revert "Inherit VisibilityContainer and make duration constant protected"
This reverts commit c58ef4230d. Uhh, how did I push this..
2021-04-26 01:41:42 +03:00
Salman Ahmed
b252485e1a Remove protected expose of HandlingMouse setter
Regardless of `OnDragEnd()`, `OnMouseUp()` will still be called resetting the value of that state back.
2021-04-25 20:13:23 +03:00
Salman Ahmed
7390a12e4b SelectionBoxDragHandleDisplay -> SelectionBoxDragHandleContainer 2021-04-25 20:03:15 +03:00
Salman Ahmed
c58ef4230d Inherit VisibilityContainer and make duration constant protected 2021-04-25 20:03:15 +03:00
Salman Ahmed
79e2b232d8
Improve English
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-04-25 19:26:53 +03:00
Salman Ahmed
a8c460f7df Replace separated top-centered rotation button with rotation drag handles 2021-04-25 10:17:36 +03:00
Salman Ahmed
77f7d4c963 Add composite managing display of selection box drag handles 2021-04-25 10:17:36 +03:00
Salman Ahmed
ab71782674 Use colour fade transform for selection box controls
To become harminous with the fade transforms of the rotation control
2021-04-25 10:14:31 +03:00
Salman Ahmed
62bcc5f76d Add property for tracking whether control is during operation 2021-04-25 10:14:31 +03:00
Bartłomiej Dach
e937b778f6 Fix potential failure in ensureSourceClockSet()
`ensureSourceClockSet()` was intended to only run when the adjustable
source hasn't been set at all yet. As it turns out permitting it to run
unconditionally can break the state of the underlying interpolated
clock. This is caused by the following factors:

* While the decoupleable clock is running, its `CurrentTime` does not
  come from either the source clock, or the internal stopwatch; it is
  instead calculated using the base `InterpolatingFramedClock` logic.

* A source change of a decoupleable clock seeks the provided source
  clock to the decoupleable's current time.

* When an interpolating clock is seeked (decoupleable clock is also
  an interpolating one), its interpolation state
  (`{Last,Current}InterpolatedTime`) are reset to 0.

* If the interpolating clock determines that its current time is too
  far away from the source's time (which was set when the source is
  changed), it will ignore the source and instead continue to use
  its current time until the source clock has caught up.

Overall, the source change is not really necessary if a source is
already there. The only reason to ensure it was set was to make sure
the first seek of the gameplay clock wasn't performed in decoupled
mode. Therefore, add a guard to make sure the source is only set if
there isn't one already.
2021-04-24 14:19:39 +02:00
Salman Ahmed
206fc94b8c Add rotation drag handle component 2021-04-24 08:00:36 +03:00
Salman Ahmed
4bfa9cd6b6 Change inheritance of selection box buttons to base control instead 2021-04-24 08:00:29 +03:00
Salman Ahmed
decd8803bc Abstract base appearence and hover update from drag handles 2021-04-24 07:45:53 +03:00
Bartłomiej Dach
fdb5490e51 Attempt to explain source initialisation better 2021-04-23 21:56:08 +02:00
smoogipoo
ae2fd2f2e1 Ensure source is set on reset 2021-04-23 18:46:59 +09:00
Dan Balasescu
93b53f54fa
Merge pull request #12531 from peppy/editor-add-nudge-shortcuts
Add simple key based time nudging support to editor
2021-04-22 21:14:51 +09:00
Dan Balasescu
50f37ef09c
Merge pull request #12519 from peppy/editor-hit-animation-toggle
Add editor hit animation toggle
2021-04-22 20:49:21 +09:00
Dean Herbert
a5364b224f Add simple key based time nudging support to editor 2021-04-22 18:47:04 +09:00
Dean Herbert
1884c18a2c Ignore movement operations which have no offset 2021-04-22 18:12:03 +09:00