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

239 Commits

Author SHA1 Message Date
smoogipoo
781095b96b Encapsulate the method to apply SampleControlPoints to SampleInfos 2018-06-28 18:29:07 +09:00
Dean Herbert
32a74f95a5 Normalize all the line endings 2018-04-13 18:26:38 +09:00
smoogipoo
6d4f94756e Rewrite the way drag + click selections happen
The general idea here is that we need the masks to handle mouse down events, as they need to handle the drag (mousedown -> drag immediately).

I've rewritten the editor selections to use events, as there are some 3 different components that handle/trigger selections in different ways.

1. All selections/deselections now propagate through `HitObjectMask.Select()`/`HitObjectMask.Deselect()`.
2. Components that react to changes in the selection bind to the masks' `Selected`/`Deselected` events, and track them/change their states locally.
3. Masks provide a `SingleSelectionRequested` event which is invoked on the mouse-down event. Various components bind to this event to perform state changes locally in this scenario.
4. `DragBox` now handles all drag input locally. It triggers `Select`/`Deselect` on the masks it needs to.
5. `SelectionBox` handles the display of itself locally.
6. `SelectionBox` handles movement of groups of masks locally.
7. `HitObjectMasks` handles movement of itself locally.
2018-03-29 22:07:23 +09:00
Dean Herbert
af65f2dd48 Move AccentColour changes local to rulesets which rely on it 2018-03-22 18:53:16 +09:00
Dean Herbert
366b7fca65 Remove GetColour method 2018-03-22 18:50:19 +09:00
Dean Herbert
c4fe6a04c5 Use string lookups for combo colours 2018-03-22 17:32:05 +09:00
Dan Balasescu
ab9505652b Merge branch 'master' into skin--completion 2018-03-22 16:44:00 +09:00
Dean Herbert
9ad4e9284a Add skin source fallback chain 2018-03-20 16:40:11 +09:00
Dean Herbert
a42035f494 Make DrawableHitObject a CompositeDrawable
No reason for it to be a container.
2018-03-15 13:41:06 +09:00
smoogipoo
2a9fb2c2c6 Make NestedHitObjects lazily-constructed 2018-03-05 21:40:26 +09:00
Dean Herbert
4a52df2dd4 Apply review 2018-02-24 23:07:02 +09:00
Dean Herbert
768e0a4e2a Add SkinnableSound class
Tidy things up, move logic out of SampleInfo.
2018-02-24 22:47:14 +09:00
Dean Herbert
6ceabfe19e Add basic hitsound skinning 2018-02-23 13:38:12 +09:00
smoogipoo
b77f08941c Make mania play the next note's sounds if no note is hit
Fixes #1911.

This follows what osu!stable does, which is rather unfortunate, since it just plays _every_ sound for the note :|.
2018-01-24 20:05:37 +09:00
Dean Herbert
9b33499fe7 Merge remote-tracking branch 'upstream/master' into RefactorInputQueues 2018-01-16 20:04:34 +09:00
smoogipoo
0ae0dac192 Fix DrawableHitObject not binding nested hitobject events 2018-01-15 20:35:38 +09:00
Aergwyn
8ac6818639 expose IsHit 2018-01-13 16:26:14 +01:00
Aergwyn
7875f0cb01 remove unnecessary internal 2018-01-13 16:15:41 +01:00
Aergwyn
356bb5da1e move sample logic up too 2018-01-13 12:55:52 +01:00
Aergwyn
70fc09f81e move judgement + state logic up to DrawableHitObject 2018-01-13 12:42:42 +01:00
smoogipoo
9d00e5bb7d Make ScrollingHitObjectContainer handle nested hitobjects 2018-01-11 15:08:30 +09:00
smoogipoo
9036ea92eb Run child updates for nested hitobjects when parent hitobjects are masked 2018-01-10 18:29:46 +09:00
smoogipoo
86b5591583 Merge remote-tracking branch 'origin/master' into scrolling-hitobjects-rewrite 2018-01-10 18:02:49 +09:00
TocoToucan
ae032cbf23 Support HandleKeyboardInput, HandleMouseInput, CanReceiveKeyboardInput, CanReceiveMouseInput properties 2018-01-07 23:40:00 +03:00
Dean Herbert
37d393bca0 Update licence headers 2018-01-05 20:21:19 +09:00
smoogipoo
f34131f8f4 Initial game-wide replacement of scrolling playfields 2018-01-04 18:50:17 +09:00
Aergwyn
ccb69d16d9 move HitResult in Scoring namespace to replace HitCount 2017-12-30 21:23:18 +01:00
Dean Herbert
a0966305d4 Remove unnecessary new event 2017-12-30 14:46:44 +09:00
Aergwyn
f547c7986d created option to override values before UpdateState is called 2017-12-29 17:50:55 +01:00
Dean Herbert
27cb445c24 Always recrusively apply custom sequence to nested hitobjects 2017-12-29 17:48:05 +09:00
Aergwyn
dbcf87267d Merge branch 'master' into standard-hd-support 2017-12-27 21:26:39 +01:00
Aergwyn
4c2554595e implement hidden (mostly)
some things work and others don't, I dunno
2017-12-26 17:25:18 +01:00
smoogipoo
9690591593 Make taiko use namespaced hitsounds
This is a temporary solution for now that uses DrawableHitObject.SampleNamespace for the override. We will not want to do this going forward, and instead have the rulesets add their custom resource stores to the games', but that requires deciding where/when to apply/remove such resource stores, and is probably left to skinning.
2017-12-26 19:55:56 +09:00
smoogipoo
14162b5d46 Make InputDrum handle all Normals/Claps, hitobjects all others 2017-12-26 14:18:23 +09:00
smoogipoo
0fb620a8d3 Make HitObject.Samples non-nullable 2017-12-25 16:41:18 +09:00
smoogipoo
68d76d4380 Fix taiko strong hits not being handled 2017-12-23 20:58:09 +09:00
Dean Herbert
aeafa5645a Make Samples null by default and prepopulate in mania 2017-12-23 18:06:46 +09:00
Dean Herbert
2db68df999 Simplify DrawableHitObject's sample load code 2017-12-23 17:20:14 +09:00
Dean Herbert
5026c7a95e SoundControlPoint -> SampleControlPoint 2017-12-23 16:34:34 +09:00
Dean Herbert
ff0927e71b Remove unnecessary newline 2017-12-23 16:23:33 +09:00
Dean Herbert
46865bbacd Merge remote-tracking branch 'upstream/master' into taiko-hitsounds-fix
# Conflicts:
#	osu.Game/Audio/SampleInfo.cs
2017-12-23 14:50:35 +09:00
smoogipoo
cb7e192aff Determine SampleInfo defaults in DrawableHitObject 2017-12-21 16:02:33 +09:00
smoogipoo
a303bf71cf Give control over screen space conversion to DrawableHitObject 2017-12-11 22:19:02 +09:00
smoogipoo
b28306d3c0 Fix incorrect SelectionPoint 2017-12-11 18:08:16 +09:00
smoogipoo
4573cc3322 Refactor into a new DragBox class, representing a single drag 2017-12-11 17:45:03 +09:00
FreezyLemon
43c270ea49 Rolled back the bad earlier implementation 2017-12-07 21:18:51 +01:00
smoogipoo
cf859a6cf2 Make the dragger attach to objects it surrounds
Plus a lot more implementation.
2017-12-02 00:26:02 +09:00
FreezyLemon
bc3f11fdb8 Added PlaysSamples property to prevent certain DrawableHitObjects from playing their samples on hit. Also added this to TaikoObjects so their hitsounds won't be played (will be done by the TaikoRulesetContainer) 2017-11-29 06:24:13 +01:00
smoogipoo
ae8407a3f3 Fix nested hitobject judgements not being removed 2017-11-13 14:00:35 +09:00
smoogipoo
66ee9d1631 Update in-line with framework changes 2017-11-09 17:04:04 +09:00
smoogipoo
348083f589 Update with framework state transformation
Removes explicit initial state setting in DrawableOsuHitObjects.
2017-11-09 14:05:05 +09:00
smoogipoo
0620d0bd7a AllJudged does not need to be virtual anymore 2017-11-02 21:56:09 +09:00
smoogipoo
326891f51c Add "Final" to better determine when to stop processing the hitobject 2017-11-02 21:54:28 +09:00
smoogipoo
fe00ac7e41 Make DrawableHitObject/ScoreProcessor support rewinding 2017-11-02 21:21:07 +09:00
Dean Herbert
d5892cf54e Add a bool to specify whether judgements should be visible for certain DrawableHitObjects 2017-10-09 20:17:05 +09:00
Dean Herbert
b78c516b74 Merge branch 'master' into scoring-revamp 2017-09-13 20:47:14 +09:00
smoogipooo
093d82ac45 Set depths from playfield add methods instead of DrawableHitObject 2017-09-13 16:17:01 +09:00
smoogipooo
d83a2d4dc6 Disable masking optimisations for scrolling hit objects
Lifetime is very tightly controlled here, so all should be okay.
2017-09-13 15:57:40 +09:00
smoogipooo
92b3e203e8 judgementOccurred should be passed upwards
So only one hit object is ever judged in a single frame.
2017-09-12 18:50:30 +09:00
smoogipooo
a38e0062a4 Fix checking judgements even if we don't provide a judgement, if we have a result, or if a nested hit object handled a judgement. 2017-09-12 18:49:50 +09:00
Dean Herbert
f32d444d68 Remove generics from Playfield (fixes catch) 2017-09-12 18:19:28 +09:00
Dean Herbert
d7ac02d090 Ensure judgements aren't updated when ArmedState is not idle 2017-09-12 18:00:41 +09:00
Dean Herbert
1194e46ef1 Merge remote-tracking branch 'upstream/master' into judgement-revamp 2017-09-12 17:46:21 +09:00
Dean Herbert
7b92bbfa86 Merge branch 'master' into mania-hit-explosions 2017-09-11 17:34:14 +09:00
smoogipooo
0cadee998c Set default AccentColour for hit objects 2017-09-11 13:44:05 +09:00
smoogipooo
2086ed209d Fix hold note tick input. 2017-09-11 04:51:44 +09:00
smoogipooo
0cc443e618 Remove all generic judgements. 2017-09-06 18:05:51 +09:00
smoogipooo
f158ce814c Fix state never getting set. 2017-09-06 17:20:41 +09:00
smoogipooo
ac8ec31b61 Make judgements able to be "added" plus make everything compile and run. 2017-09-06 17:02:13 +09:00
Dean Herbert
84c22df3f5 Combine Judgement.HitResults into one. 2017-09-06 17:01:48 +09:00
smoogipooo
7a5708ce92 Further support for null judgements. 2017-08-21 15:35:16 +09:00
smoogipooo
d83c218e08 Remove various scrolling container optimisations (removing when not alive). 2017-08-09 16:19:09 +09:00
Dean Herbert
ee7bb1b4f5 Don't set RelativePositionAxes when setting ScrollingAxes
(cherry picked from commit debe13629f)
2017-08-08 13:02:23 +09:00
smoogipooo
f3c05fe232 CI fixes. 2017-08-07 17:34:57 +09:00
smoogipooo
933740664c SpeedAdjustedHitRenderer -> ScrollingHitRenderer for consistent naming. 2017-08-07 16:43:54 +09:00
smoogipooo
a3efca9c35 Reduce implementation overhead in actually positioning hitobjects and making them scroll. 2017-08-07 16:02:38 +09:00
smoogipooo
e1dfe364b2 Fix lifetime performance regression. 2017-08-07 14:07:49 +09:00
smoogipooo
3389c8a4dc CI fixes. 2017-06-21 20:17:15 +09:00
smoogipooo
34ac932fe2 Reduce pollution in DrawableHitObject in favor of a loosely-coupled IScrollingHitObject. 2017-06-19 10:54:23 +09:00
smoogipooo
28e48eab2b CI fixes. 2017-06-16 19:30:30 +09:00
smoogipooo
4afe83e74e Rework DrawableHitObject to provide default life times and proper DrawableTimingSection autosizing.
This exposes LifetimeOffset from DrawableHitObject which is used by the XSRG rulesets to adjust the life time range by the VisibleTimeRange.
2017-06-16 19:21:54 +09:00
smoogipooo
3ec41a313b Add base DrawableHitObject + HitObjectStartTimeComparer. 2017-05-26 18:48:18 +09:00
Dean Herbert
6fd95e0c52 Fix post-merge breakage 2017-05-11 17:16:01 +09:00
Dean Herbert
bc54b3c85f Merge branch 'master' into mania-notes 2017-05-11 17:13:29 +09:00
Dean Herbert
b0e522345c Combine DrawableHitObject classes into one 2017-05-11 17:07:46 +09:00
smoogipooo
2d2d1beddd More concrete method to determine if all hit objects have been judged.
Covers the case where nested hit objects are involved.
2017-05-11 14:48:08 +09:00
smoogipooo
956a7288fb Add basic DrawableNote. 2017-05-03 20:12:27 +09:00
smoogipooo
1fa42b26e8 Make base DrawableHitObject<TJudgement> uninheritable. 2017-05-03 14:02:23 +09:00
Dean Herbert
fbd26a1d5e
Mode -> Ruleset. 2017-04-18 16:05:58 +09:00