Commit Graph

14398 Commits

Author SHA1 Message Date
9323df26a1 Decouple bar line hitobjects from generator
Introduce an IBarLine interface, which together with generic constraints
helps decouple BarLineGenerator from the actual hitobject types it
creates. Thanks to this, all rulesets that want bar lines can provide
an implementation of IBarLine that also derives from the base hitobject
class.

This allows DrawableBarLines in taiko and mania to be migrated back to
DrawableTaikoHitObject and DrawableManiaHitObject base classes
respectively. This in turn resolves #6215 without code duplication,
since the missing anchoring application is now done in mania's
DrawableBarLine through deriving from DrawableManiaHitObject.
2019-09-25 00:36:27 +02:00
cde7f49db1 Use direct get and set instead 2019-09-25 01:26:02 +03:00
d013b73d33 Move in-memory logic to a base class 2019-09-25 01:25:05 +03:00
4a59e3351e Update beatmap carousel tests code style
Also fixes one issue I spotted in BeatmapCarousel related to incorrectly holding a selection after new sets are loaded.
2019-09-25 02:42:12 +09:00
03ec0fb27d Merge branch 'master' into fix-mania-scrolling-speed 2019-09-24 22:20:19 +09:00
d2b76ec688 Make LabelledTextBox use the new LabelledComponent class (#6188)
Make LabelledTextBox use the new LabelledComponent class

Co-authored-by: Dean Herbert <pe@ppy.sh>
2019-09-24 19:37:12 +09:00
afa043aa7d always use default samples 2019-09-24 18:17:27 +08:00
f493f1c71d Move new components to v2 namespace 2019-09-24 19:00:26 +09:00
551b66ccec Update framework (#6234)
Update framework

Co-authored-by: null <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2019-09-24 18:54:47 +09:00
028c958431 Initial implementation of a switch button 2019-09-24 18:39:11 +09:00
42b6041763 Move post-update notification logic to UpdateManager base class 2019-09-24 18:37:05 +09:00
c226d52b53 Don't automatic download for now 2019-09-24 18:34:54 +09:00
1e70b83fd3 Merge branch 'master' into update-framework 2019-09-24 18:27:38 +09:00
6b702eb6de Update with generic labelledcomponent 2019-09-24 18:25:17 +09:00
5212c50654 Merge branch 'generic-labelledcomponent' into labelled-textbox-improvements 2019-09-24 18:23:01 +09:00
df692b091c Make LabelledComponent generic 2019-09-24 18:22:02 +09:00
84d9f98ff1 fixup! Move post-update notification logic to UpdateManager base class 2019-09-24 18:15:57 +09:00
1c474de0ed Move post-update notification logic to UpdateManager base class 2019-09-24 18:03:05 +09:00
45015fc4ba Merge branch 'master' into tournament-setup 2019-09-24 17:27:17 +09:00
4abe0473b9 Fix relative beat length not considering slider multiplier 2019-09-24 16:49:42 +09:00
af0c15a93c Fix initial hitobject states not being recomputed correctly 2019-09-24 16:48:39 +09:00
75cceb9e30 Fix LifetimeChanged being invoked before lifetime is set 2019-09-24 16:47:34 +09:00
1860c2f9ce Update framework 2019-09-24 16:22:30 +09:00
b67b594036 Merge branch 'master' into menu-key-support 2019-09-24 15:09:38 +09:00
4555ecc5e0 Check for exact key 2019-09-24 15:09:08 +09:00
615e300bc9 Merge branch 'master' into fix-changelog-margin 2019-09-24 13:39:17 +09:00
267e12ce3c Add sample usage to the session statics 2019-09-24 05:45:47 +03:00
ec78889e94 remove unused dependencies 2019-09-24 08:14:20 +08:00
53603b5591 Bump System.ComponentModel.Annotations from 4.5.0 to 4.6.0
Bumps [System.ComponentModel.Annotations](https://github.com/dotnet/corefx) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/dotnet/corefx/releases)
- [Commits](https://github.com/dotnet/corefx/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-23 20:15:51 +00:00
5c4dfe0809 Apply suggested change 2019-09-23 17:05:19 +03:00
ffbab25358 Fix incorrect icon margin in ChangelogOverlay 2019-09-23 16:12:43 +03:00
5024770544 move common logic to IntroScreen 2019-09-23 20:52:44 +08:00
e3e245ab20 Introduce SessionStatics 2019-09-23 08:15:27 +03:00
9a6d748498 Merge branch 'master' into add-creator-artist-filters 2019-09-23 12:31:51 +09:00
9a687ae8e2 Merge branch 'master' into muted-notification 2019-09-23 01:59:37 +02:00
b41ac543c5 Allow changing logged in user 2019-09-23 04:46:50 +09:00
96c0c80dc5 Factor out methods in FilterQueryParser
Factor FilterQueryParser.ApplyQueries into shorter methods to reduce
method complexity.
2019-09-22 21:20:50 +02:00
d6ec6b1eda Merge branch 'master' into labelled-textbox-improvements 2019-09-23 00:39:29 +09:00
9fe7675be8 Add a base class for all future labelled components (#6187)
Add a base class for all future labelled components
2019-09-23 00:38:51 +09:00
e5b14ce74d Add null check for safety
Co-Authored-By: Salman Ahmed <slmanarendo1950@gmail.com>
2019-09-22 21:42:32 +09:00
fc1d49631a Allow top-level menu key pressed to progress the osu! logo 2019-09-22 20:31:53 +09:00
cdf29b0952 Specify model name on initialize and fail import notification m… (#6192)
Specify model name on initialize and fail import notification messages
2019-09-22 15:54:04 +09:00
70842f71f4 Fix floating point handling in filter intervals
Due to floating-point rounding and representation errors, filters could
wrongly display results incongruous with the wedge display text (ie.
a beatmap with the BPM of 139.99999 would be displayed as having 140
BPM and also pass the bpm<140 filter).

Apply tolerance when parsing floating-point constraints. The tolerance
chosen is half of what the UI displays for the particular values (so
for example half of 0.1 for AR/DR/CS, 0.01 for stars, etc.)

Tests updated accordingly.
2019-09-22 00:20:55 +02:00
b262ba13cd Add creator= and artist= filters
To match stable, add creator= and artist= filters to the beatmap
carousel on song select screen. Contrary to stable, this implementation
supports phrase queries with spaces within using double quotes.

The quote handling is not entirely correct (can't nest), but quotes
should rarely happen within names, and it is an edge case of an edge
case - leaving best-effort as is. Test coverage also included.
2019-09-22 00:20:55 +02:00
f5f5094611 Take culture into account when parsing filters
Culture was not taken into account when parsing filters, which meant
that in cultures that use the comma (,) as a decimal delimiter, it would
conflict with the comma used to delimit search criteria. To remove
any ambiguity, introduce local helper functions that allow the decimal
point to be utilised, using the invariant culture. This also matches
stable behaviour.

The decision to not reuse osu.Game.Beatmaps.Formats.Parsing was
deliberate due to differing semantics (it's not really sane to throw
exceptions on receiving user-facing input).
2019-09-22 00:18:53 +02:00
dddd94684b Split out lower and upper interval inclusivity
A single IsInclusive field causes unexpected issues when trying to
formulate a half-open interval query. Split out IsInclusive into two
fields, Is{Lower,Upper}Inclusive and update usages accordingly.
2019-09-22 00:18:28 +02:00
33c51d5178 Extract parsing filter queries to class
For the sake of testability without having to spin up visual tests,
extract methods related to parsing filter queries from FilterControl
to a static FilterQueryParser class.
2019-09-22 00:18:28 +02:00
9be8bdef52 Remove pluralize and use title letter casing 2019-09-21 21:00:24 +03:00
6bb0f3eb41 Move humanizing to the model name instead 2019-09-21 20:04:12 +03:00
db90d211cb Fix scores importing with deleted beatmap sets (#6190)
Fix scores importing with deleted beatmap sets
2019-09-22 01:15:22 +09:00