1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-29 21:52:54 +08:00
Commit Graph

3183 Commits

Author SHA1 Message Date
Dean Herbert
fb0bc597a0 Merge branch 'master' into improve-beatmap-card-buttons 2022-11-03 13:53:29 +09:00
Dean Herbert
978d15955c Fix control points not being cloned when running beatmap conversion
Closes .

I haven't considered how this affects performance of difficulty
calculation or otherwise. Seems like a sane initial fix which we can
iterate on going forward.

I've tested using the scenario in the linked issue.

I'm not going to add test coverage because
[BeatmapConversionTest](https://github.com/ppy/osu/blob/master/osu.Game/Tests/Beatmaps/BeatmapConversionTest.cs)
should correctly cover this scenario once we are serialising control
points as well.
2022-11-01 17:42:09 +09:00
Bartłomiej Dach
f775741d65
Merge branch 'master' into fix-filename-char-filtering 2022-10-29 12:42:10 +02:00
Dean Herbert
66ed77ac91 Rename and add documentation to function 2022-10-28 18:04:28 +09:00
Dean Herbert
42eafe318c Remove various simple obsoletions 2022-10-28 13:20:58 +09:00
Dan Balasescu
6177df2a24
Merge branch 'master' into fix-17143 2022-10-25 13:44:58 +09:00
Dan Balasescu
703a8afb11
Merge pull request from peppy/fix-taiko-broken-drum-roll-ticks
Fix taiko drum roll ticks sometimes overflowing outside the drum roll itself
2022-10-21 12:56:14 +09:00
Dean Herbert
5c13c443ff Fix incorrect fallback logic
Regressed when attempting to share implementation of binary search.
2022-10-20 23:08:44 +09:00
Dean Herbert
a754dc6d3b
Expose binary search methods publicly
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2022-10-20 14:34:07 +09:00
Dean Herbert
78943a21d8
Update osu.Game/Beatmaps/ControlPoints/IControlPoint.cs
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-10-20 08:06:05 +09:00
Dean Herbert
677b8d09f8 Fix huge oversight causing test failures 2022-10-19 23:54:12 +09:00
Dean Herbert
579d5b51eb Add and consume sample bank constants 2022-10-19 20:47:58 +09:00
Dean Herbert
59e2478b0e Fix some older beatmaps having missing backgrounds
Closes https://github.com/ppy/osu/issues/20824.

Note that this will require a reimport of beatmaps as it is baked into the database. Probably not worth making a migration for at this point in time.
2022-10-19 16:01:10 +09:00
Dean Herbert
ec3761ced9 Standardise control point search logic in OverlappingScrollAlgorithm
Was using a very local algorithm which I cannot guarantee is correct.
I'd rather it just use the one used everywhere else.
2022-10-18 16:01:05 +09:00
Salman Ahmed
ef72b66dad Remove beatmap card background workaround to fix broken corners 2022-10-13 16:09:54 +03:00
Salman Ahmed
6c316bcc9e Make beatmap card icon buttons fill up to the area 2022-10-13 16:09:54 +03:00
Salman Ahmed
aa8040d696 Add hover box to beatmap card icon button 2022-10-13 16:09:54 +03:00
Dan Balasescu
338115ff6a Move check to LegacyDifficultyControlPoint 2022-10-13 15:05:15 +09:00
Dean Herbert
3da54814f8
Merge pull request from pfgithub/patch-fix-save-collections
Preserve collections when saving a beatmap
2022-10-12 18:36:45 +09:00
sw1tchbl4d3
df0501235d Introduce BpmMultiplierMania, remove after the fact clamps 2022-10-12 11:14:01 +02:00
Dean Herbert
db148d145b Fix incorrect offset logic for beatmaps without a preview point specified 2022-10-12 14:47:37 +09:00
Dean Herbert
721bfb5369 Rename parameter to read better 2022-10-12 14:46:35 +09:00
Dean Herbert
9bab02fab4 Remove unused using statement 2022-10-11 16:23:05 +09:00
Dean Herbert
eba3d37a11 Add xmldoc and simplify calling 2022-10-11 15:50:02 +09:00
pfg
e619c9c1e6 fix style 2022-10-10 21:48:41 -04:00
pfg
de8d485305 Move 'transferCollections' to a shared location 2022-10-10 21:45:33 -04:00
NotGumballer91
3cd6ce8e3f
Update WorkingBeatmap.cs 2022-10-11 01:48:55 +08:00
NotGumballer91
749dc40062
Update WorkingBeatmap.cs 2022-10-10 21:03:11 +08:00
NotGumballer91
e3b405cc23
Update IWorkingBeatmap.cs 2022-10-10 21:02:23 +08:00
sw1tchbl4d3
f8036658c7 Move clamps directly to the usages in the conversion algorithm 2022-10-10 09:36:18 +02:00
sw1tchbl4d3
e0904e263f Fix legacy BpmMultiplier clamp value 2022-10-09 11:25:47 +02:00
pfg
edec613724 Remove unnecessary '?' 2022-10-08 13:58:42 -04:00
pfg
ff14453c2b Preserve collections when saving a beatmap 2022-10-08 12:42:29 -04:00
o-dasher
feadac1f79 Cleanup all other leftover binding instantiation 2022-09-25 16:02:40 -04:00
Dean Herbert
992441b9de Disable alpha component parsing in beatmap / skin colour sections 2022-09-21 16:11:41 +09:00
Dean Herbert
5ce67345ae Catch against sqlite initialisation failures 2022-09-16 01:02:38 +09:00
Dean Herbert
28b15e232d Remove all EF models 2022-09-15 16:59:36 +09:00
Dean Herbert
0aa92c78ec Add local sqlite initialisation to BeatmapUpdaterMetadataLookup for now 2022-09-15 16:58:58 +09:00
Dean Herbert
40a60f7145 Remove all entity framework code and migrations 2022-09-15 16:58:58 +09:00
Salman Ahmed
07f577a0c6 Fix beatmap listing potentially showing duplicate beatmap cards 2022-09-13 01:39:21 +03:00
andy840119
e62999fb16 Merge branch 'master' of https://github.com/ppy/osu into remove-the-nullable-disable-in-the-ruleset
# Conflicts:
#	osu.Game.Rulesets.Catch/CatchRuleset.cs
#	osu.Game.Rulesets.Osu/OsuRuleset.cs
#	osu.Game.Rulesets.Taiko/TaikoRuleset.cs
#	osu.Game/Rulesets/Ruleset.cs
2022-09-10 10:40:12 +08:00
Dean Herbert
e9ce968ae3 Merge branch 'master' into fix-play-button-touch 2022-09-09 18:08:18 +09:00
Dean Herbert
d6748d6921 Avoid double call to ProcessFrame 2022-09-09 14:35:47 +09:00
Dean Herbert
64cf6b9014 Compare with decoupled clock directly to avoid including offsets 2022-09-09 14:35:35 +09:00
Dean Herbert
20ffbc4676 Fix beat sync stopping after returning to menu from a failed play
Closes .

Explanation is inline comment.
2022-09-09 14:13:03 +09:00
Dean Herbert
ed81297611 Fix playlist items showing download button briefly during initial local presence checks 2022-09-08 17:10:45 +09:00
Dean Herbert
db15bd56e8 Invalidate working beatmap cache when calling DeleteDifficultyImmediately rather than in editor code 2022-09-06 18:12:47 +09:00
Dean Herbert
579e7e1f17 Fix deleting a difficulty not updating the beatmap set hash 2022-09-06 18:12:47 +09:00
Dean Herbert
605108c938 Refactor/rename deletion method to read better 2022-09-02 16:59:01 +09:00
Dean Herbert
b388428e1c
Merge branch 'master' into feature/EditorDeleteDiff 2022-09-02 16:48:38 +09:00
Dean Herbert
d3ae60ec6d Fix tournament population failure when beatmap is not found on server 2022-09-01 22:03:01 +09:00
Dan Balasescu
837b19ab24
Merge pull request from khang06/nan-sv
Emulate osu!stable's NaN slider velocity behavior
2022-08-31 19:06:49 +09:00
Dan Balasescu
0491addbbd
Merge pull request from peppy/no-gameplay-clock-editor-offset
Fix editor not applying offsets
2022-08-29 21:10:29 +09:00
Dean Herbert
3eda284b03 Always reprocess beatmaps after a user update request
This covers the rare case where metadata may have changed server-side but not
the beatmap itself.

Tested with the provided user database to resolve the issue.

Closes .
2022-08-29 18:17:42 +09:00
Dean Herbert
2dafa041a7 Account for offset being applied to editor clock time in TestSceneEditorClock 2022-08-29 16:42:50 +09:00
Dan Balasescu
cf6bb3b030
Merge pull request from peppy/fix-fail-freq-stuck
Ensure fail animation sequence isn't run after the player exit sequence has started
2022-08-27 00:58:41 +09:00
Dean Herbert
ad3dd1c700 Fix a couple of oversights regarding track nullability 2022-08-25 14:45:00 +09:00
Khang
adea29c106 Fix test failures 2022-08-24 03:37:33 -04:00
Khang
c9f364d6a0 Document why beatLength can be NaN 2022-08-24 02:10:19 -04:00
Khang
c1ced85b5e Move GenerateTicks to LegacyDifficultyControlPoint and remove support for NaN slider velocity support for other rulesets (at least for now) 2022-08-23 14:07:18 -04:00
Dean Herbert
29fed0c4a3 Avoid setting the source clock until gameplay is ready to start
Without this change, the audio track may audibly seek during load
proceedings.
2022-08-23 18:34:17 +09:00
Khang
fbe8de2757 Disable the GetHashCode warning instead of using bindables 2022-08-23 00:57:25 -04:00
Khang
8f708c1dcf Turn GenerateTicks into a bindable to pass code quality tests 2022-08-22 22:43:44 -04:00
Khang
9f08c474ca Treat NaN slider velocity timing points as 1.0x but without slider ticks 2022-08-22 21:58:38 -04:00
Khang
e8d4bc4497 Allow NaN during beatmap parsing if desired 2022-08-22 21:04:26 -04:00
Dean Herbert
17a1df281c Fix incorrect implicit null specification for user audio offset bindable 2022-08-22 14:03:51 +09:00
Dean Herbert
ba23ce75c2 Make FramedBeatmapClock.Track non-null 2022-08-22 14:02:41 +09:00
Dean Herbert
85d0b7fc57 Reword class xmldoc to better explain that offset application is optional 2022-08-22 14:02:20 +09:00
Dean Herbert
bcc153f738 Add xmldoc and reorganise FramedBeatmapClock 2022-08-18 18:54:10 +09:00
Dean Herbert
6003afafc7 Use FramedBeatmapClock in GameplayClockContainer 2022-08-18 18:54:10 +09:00
Dean Herbert
32e127a6fa Add FramedBeatmapClock
Expose `IsCoupled` in `FramedBeatmapClock` for now to provide editor compatibility
2022-08-18 18:54:10 +09:00
Dean Herbert
37799e3b31 Allow preparing preview point without looping 2022-08-17 13:20:24 +09:00
Dean Herbert
11f38e539f Rename property to LastLocalUpdate 2022-08-16 16:01:19 +09:00
Dean Herbert
c7db4a532c Merge branch 'master' into store-modified-time 2022-08-16 15:53:51 +09:00
Dan Balasescu
69cbf4185b Match class name to file 2022-08-10 19:53:40 +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
5f10ec1955 Add extension methods for case insensitive file lookups 2022-08-10 15:48:25 +09:00
Dean Herbert
e1189da824 Merge branch 'master' into irenderer-glwrapper 2022-08-08 12:31:53 +09:00
Dan Balasescu
cf362a6b4f
Merge pull request from peppy/locally-modified-pill
Show "locally modified" pill when local modifications have been made
2022-08-05 21:12:13 +09:00
Dan Balasescu
c4b9b2a14b Merge branch 'master' into irenderer-glwrapper 2022-08-05 20:35:06 +09:00
Dean Herbert
94ec653420 Add same load-cancel safeties to ensure tracks are disposed in card PlayButton 2022-08-05 14:26:01 +09:00
Dean Herbert
094eaafd43 Split out common conditional check into local static method 2022-08-04 17:26:54 +09:00
Salman Ahmed
844430502b Replace parantheses with nullable-bool equality operation 2022-08-03 20:11:08 +03:00
Dean Herbert
a32149fda1 Convert interface methods to extension methods 2022-08-03 20:07:55 +09:00
Dan Balasescu
b4e55f7309 Apply IRenderer changes 2022-08-02 19:50:57 +09:00
Dean Herbert
258ad7c6b9 Tidy up kiai time access 2022-08-02 18:18:40 +09:00
Dean Herbert
cc4cde2c79 Improve IBeatSyncProvider interface and reduce beatmap track dependence 2022-08-02 17:59:18 +09:00
Dean Herbert
7022c6382d Add localisation support for local modification strings 2022-08-02 16:30:14 +09:00
Dean Herbert
8cb02f47eb Mark BeatmapSet.Status as modified when any beatmap is modified, rather than all 2022-08-02 16:08:58 +09:00
Dean Herbert
df76f9f4da Fix some additional metadata being updated when it shouldn't (with local changes) 2022-08-02 15:49:22 +09:00
Dean Herbert
4adc8375e9 Add more xmldoc and avoid BeatmapSet status being set when it shouldn't be 2022-08-02 12:12:02 +09:00
Dean Herbert
d7a06abcab Add BeatmapInfo.LastUpdate to track the time of local changes 2022-08-02 00:53:07 +09:00
Dean Herbert
013cf7a80a Fix DateAdded not being set to a sane value when creating a new beatmap in the editor 2022-08-02 00:53:07 +09:00
Dean Herbert
0fcae08d38 Show "locally modified" pill when local modifications have been made 2022-08-02 00:52:38 +09:00
Dean Herbert
cb52b696ed
Merge branch 'master' into bypass-local-metadata-cache 2022-07-29 16:05:54 +09:00
Dean Herbert
2ff6ff06d3 Use tuple to better explain new bool parameter 2022-07-29 16:05:41 +09:00
Dan Balasescu
a59d7f6710
Merge branch 'master' into collections-track-beatmap-updates 2022-07-28 22:05:34 +09:00
Dean Herbert
a21aee4e9c Reduce calls to LoadTrack by implicitly running on test/dummy classes 2022-07-28 18:11:40 +09:00
Dan Balasescu
1da9830145
Merge pull request from peppy/remove-beatmap-manager-ruleset-store
Remove unused `RulesetStore` from `BeatmapManager` constructor
2022-07-28 17:46:12 +09:00
Dean Herbert
8cb4fb35e0 Rename parameter to read better (and still use local cache if no online API is available) 2022-07-28 17:08:59 +09:00
Dean Herbert
c35da62224 Add flow for bypassing local cache lookups when refreshing beatmap metadata 2022-07-28 16:33:51 +09:00
Dean Herbert
17a3fd30fb Move scheduler from OnlineLookupQueue to BeatmapUpdater 2022-07-28 16:32:22 +09:00
Dean Herbert
2b9d46d803 Remove unused RulesetStore from BeatmapManager constructor 2022-07-28 16:19:05 +09:00
Dan Balasescu
c1aaf27c54 Link to correct model in xmldoc 2022-07-28 16:02:19 +09:00
Dean Herbert
452d82f292 Add more comprehensive xmldoc for beatmap model classes 2022-07-28 15:41:28 +09:00
Dean Herbert
070f56c30c Add collection transfer logic to beatmap import-as-update flow 2022-07-28 15:03:23 +09:00
Micahel Kelly
dd315ff97b Adds hard-delete for a beatmap diff 2022-07-27 21:21:16 +10:00
Dean Herbert
41393616d8 Replace BeatmapCollection with RealmBeatmapCollection 2022-07-27 19:35:09 +09:00
Dean Herbert
9c543fef48 Remove CollectionManager 2022-07-27 18:45:33 +09:00
Dean Herbert
6b73f7c7ec Split out legacy import path from realm manager 2022-07-27 15:04:09 +09:00
Dean Herbert
4c22b55ce3 Fix incorrect handling if an update is processed with no changes 2022-07-26 17:00:28 +09:00
Dean Herbert
9939866f7d Revert one more missed change 2022-07-26 15:54:10 +09:00
Dean Herbert
8370ca9765 Add ImportAsUpdate method to IModelImporter to avoid otehr changes 2022-07-26 15:49:04 +09:00
Dean Herbert
d41ac36a69 Fix scenario where import is expected to be empty 2022-07-25 23:59:27 +09:00
Dean Herbert
8a0c8f5fd8 Fix some realm pieces not being cleaned up 2022-07-25 19:51:19 +09:00
Dean Herbert
2e14d8730c Move implementation of updating a beatmap to BeatmapImporter 2022-07-25 19:51:19 +09:00
Dean Herbert
2363a3fb7b Persist DateAdded over beatmap updates 2022-07-25 19:51:19 +09:00
Dean Herbert
e5ad07454c Ensure previous version prior to update loses online info after marked pending delete 2022-07-25 19:51:19 +09:00
Dean Herbert
912218e123 Ensure scores are transferred after beatmap update if difficulty hash didn't change 2022-07-25 19:51:19 +09:00
Dean Herbert
b7f6413bce Fix old version of beatmap potentially not being deleted during update flow
This can happen if the online IDs are not present in the `.osu` files.
Previously this was only working due to the early logic in the import
process (that relies on matching all online IDs perfectly).
2022-07-25 19:51:19 +09:00
Dean Herbert
6a3e8e31de Centralise calls to reset online info of a BeatmapInfo 2022-07-25 19:51:19 +09:00
Dan Balasescu
068063a43a
Merge pull request from peppy/fix-working-cache-invalidation
Fix calls to `GetWorkingBeatmap` invalidating cache too often
2022-07-25 18:29:46 +09:00
Dean Herbert
6bf2645b1a Fix StarRatingDisplay not handling negative numbers as "pending" 2022-07-25 15:44:54 +09:00
Dean Herbert
2ec90e37bb Fix calls to GetWorkingBeatmap invalidating cache too often
With recent changes, the pathway between refetching (on request) and
refetching (on requirement due to unpopulated files) was combined.
Unfortunately this pathway also added a forced invalidation, which
should not have been applied to the second case.

Closes https://github.com/ppy/osu/issues/19365.
2022-07-25 15:30:49 +09:00
Dean Herbert
d5e0dba9da Change default value of StarRating to -1 2022-07-21 18:20:46 +09:00
Dan Balasescu
2b399ec7ad
Merge branch 'master' into date-submitted-ranked 2022-07-20 18:36:57 +09:00
Dan Balasescu
de29078db2 Remove nullable disables 2022-07-20 15:16:40 +09:00
Dean Herbert
6357223341 Fix incorrect DI fetch and apply nullability to ModelDownloader 2022-07-19 20:06:34 +09:00
Dean Herbert
30daa0fd44 Add ranked and submitted date storage and filtering 2022-07-19 19:55:56 +09:00
Dean Herbert
07874efa7f Set last online update to actual value provided by data source 2022-07-19 19:39:51 +09:00
Dean Herbert
eaf4f6dbb7 Add beatmap update button 2022-07-19 18:29:36 +09:00
Dean Herbert
6adcf82d2e Add change ingester to handle passing of online changes to correct target components 2022-07-19 17:57:01 +09:00
Dean Herbert
6ea380d649 Add new properties to BeatmapInfo to track online hash and updates 2022-07-19 17:57:01 +09:00
Bartłomiej Dach
6f37487528
Replace calls to defective Humanizer methods with correct version 2022-07-18 22:34:58 +02:00
Dean Herbert
22a9e7e275 Fix audio/background equality not correctly using BeatmapInfo local filenames 2022-07-18 17:05:21 +09:00
Dean Herbert
51071be315 Don't show "missing background" messages to user
Bit of an oversight.

As reported on [twitter](https://twitter.com/emyl___/status/1548627793075998720) and somewhere else i forgot.
2022-07-17 21:20:51 +09:00
Dean Herbert
ebe0cfefd8 Ensure that multiple BeatmapSetInfo already in realm don't cause import failures
Really this shouldn't happen but I managed to make it happen. Until this
comes up again in a way that matters, let's just fix the LINQ crash from
`SingleOrDefault`.

I've tested this to work as expected in the broken scenario.
2022-07-14 18:21:41 +09:00
Dan Balasescu
7ed05277f8
Merge pull request from peppy/last-played
Add "last played" sort mode to song select
2022-07-13 22:44:50 +09:00
Dean Herbert
1cfdea911b Fix audio and background file equality incorrectly comparing BeatmapSet.Hash 2022-07-13 19:41:38 +09:00
Dean Herbert
8820ea4006 Add last played date to BeatmapInfo 2022-07-13 16:36:43 +09:00
為什麼
57c6763556 Mark the CreateBeatmapProcessor() as nullable.
Also, should add the null check in the working beatmap.
2022-07-10 10:15:27 +08:00
Dean Herbert
c53dd4a703 Fix editor saving not updating BeatmapSetInfo's hash 2022-07-08 02:33:14 +09:00
Dean Herbert
b5c703b62c Remove unused using statement 2022-07-07 17:59:55 +09:00
Dean Herbert
e2c4c94993 Simplify BeatmapUpdater transaction handling using nested transaction support 2022-07-07 17:37:46 +09:00
Dean Herbert
79bed0abdf Merge branch 'realm-nested-writes' into metadata-client 2022-07-07 17:37:06 +09:00
Dean Herbert
e81cebf27d Change storyboard parsing logic to not completely fail if only .osb read fails
Changes to allow the storyboard to exist if only the `.osu` is
available. Reads better IMO.
2022-07-07 14:33:20 +09:00
Dean Herbert
c4b6893709 Add local handling of cases where a beatmap's file cannot be found on disk 2022-07-07 14:29:19 +09:00
Dean Herbert
a52ea3cabe Enable NRT and simplify LineBufferedReader 2022-07-06 14:57:56 +09:00
Dean Herbert
59d0bac728 Hook up update flow to metadata stream 2022-07-05 21:32:00 +09:00
Dean Herbert
aab4dcefbd Remove unnecessary invalidation handling flow 2022-06-30 17:13:26 +09:00
Dean Herbert
0698471627 Move BeatmapOnlineLookupQueue to inside BeatmapUpdater 2022-06-30 17:03:19 +09:00
Dean Herbert
ef42c6ecdf Add missing xmldoc 2022-06-30 16:51:31 +09:00
Dean Herbert
e34c2f0aca Remove unnecessary nullable-enable 2022-06-30 16:47:26 +09:00
Dean Herbert
82134ad1a6 Allow null parameter to GetWorkingBeatmap for now 2022-06-30 16:46:28 +09:00
Dean Herbert
98938821e5 Merge branch 'master' into beatmap-update-flow 2022-06-30 16:44:17 +09:00
Dean Herbert
18d465eff7 Guard against NaN star difficulty results 2022-06-29 21:02:29 +09:00
Dan Balasescu
396e7fc166
Merge pull request from peppy/empty-beatmap-file-fix-2
Fix second case of empty beatmaps being reported to sentry as errors
2022-06-27 20:37:57 +09:00
Dan Balasescu
f6a6538e96 Add more properties to IBeatmapOnlineInfo 2022-06-27 16:07:15 +09:00
Dean Herbert
13c8d33009 Fix second case of empty beatmaps being reported to sentry as errors 2022-06-27 15:29:01 +09:00
Dean Herbert
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Dean Herbert
7692bac35a Simplify refetch (and ensure to invalidate after processing) 2022-06-24 21:02:38 +09:00
Dean Herbert
0c3d890f76 Fix reprocessing not working on import due to realm threading woes 2022-06-24 21:02:38 +09:00
Dean Herbert
30b3973c9f Difficulty cache invalidation flow 2022-06-24 21:02:38 +09:00
Dean Herbert
66a01d1ed2 Allow song select to refresh the global WorkingBeatmap after an external update 2022-06-24 21:02:38 +09:00
Dean Herbert
6999933d33 Split updater process into realm transaction and non-transaction 2022-06-24 21:02:38 +09:00
Dean Herbert
021b16f2f3 Ensure WorkingBeatmap is invalidated after update 2022-06-24 21:02:38 +09:00
Dean Herbert
fe570d8052 Queue beatmaps for update after editing 2022-06-24 21:02:38 +09:00
Dean Herbert
06d59b717c Move beatmap processing tasks to new BeatmapUpdater class 2022-06-24 21:02:37 +09:00
Dean Herbert
2ca4184eda
Merge pull request from bdach/ban-implicit-to-lower-upper
Disallow usage of `string.To{Upper,Lower}()` without explicit culture
2022-06-24 20:39:58 +09:00
Dan Balasescu
7eb49dac7a
Merge pull request from peppy/bdc-remove-unused-path
Remove unused bindable retrieval flow in `BeatmapDifficultyCache`
2022-06-24 20:20:23 +09:00
Dean Herbert
823b3c1c0f Ensure WorkingBeatmap is always using a detached instance 2022-06-24 19:07:54 +09:00
Dean Herbert
2ae48d5a87 Rename incorrect parameter name in BeatmapManager.GetWorkingBeatmap 2022-06-24 19:07:54 +09:00
Bartłomiej Dach
26c5b59f6d
Replace usages of string.To{Lower,Upper}() 2022-06-24 11:57:45 +02:00
Dean Herbert
c179127670 Remove unused bindable retrieval flow 2022-06-24 17:09:56 +09:00
Dean Herbert
0755430006 Use AddOnce for update calls 2022-06-24 17:09:56 +09:00
Dean Herbert
8912f07745 Merge branch 'master' into difficulty-icon-refactor-pass 2022-06-24 16:34:35 +09:00
Dean Herbert
28837693e5 Nuke calculating everything
The whole component is pointless so I'm just going to nuke for now I
guess. Kind of makes the whole refactor effort pointless but oh well?

To expand on this, the implementation was actually incorrect as pointed
out at https://github.com/ppy/osu/pull/18819#pullrequestreview-1017886035.
2022-06-24 14:24:06 +09:00
Dean Herbert
12ea8369ee Update retriever to be relatively sized 2022-06-24 14:06:31 +09:00
Dean Herbert
d9c1a9d71f Use new property to specify no tooltip, rather than passing only ruleset 2022-06-24 14:06:18 +09:00
Dean Herbert
129c907092 Remove unused parameters 2022-06-24 13:58:02 +09:00
Dean Herbert
ef258122d2 Move GetDifficultyRating helper method to StarDifficulty 2022-06-23 19:51:58 +09:00
Dean Herbert
b068df2149 Enable NRT on BeatmapDiffiultyCache 2022-06-23 19:51:58 +09:00
Dean Herbert
01da6f20b3 Tidy up all remaining usages 2022-06-23 19:27:35 +09:00
Dean Herbert
7dec530ca5 Split out simple DifficultyIcon with no calculation overhead and update usages 2022-06-23 19:27:35 +09:00
Dean Herbert
3a83e5684c Tidy up DifficultyIcon 2022-06-23 19:27:35 +09:00
Dean Herbert
d6b073ebad Move DifficultyRetrieve to own class and split both pathways into separate constructors 2022-06-23 19:27:35 +09:00
Dean Herbert
97fcf8cec9
Merge pull request from smoogipoo/editor-controlpoint-undo-redo 2022-06-23 04:02:24 +09:00
Dan Balasescu
6a26461683 Compare by reference in ControlPoint.Equals() 2022-06-21 12:05:28 +09:00
Dean Herbert
dbae4c6f5a PostImport -> PresentImport 2022-06-20 18:36:29 +09:00
Dan Balasescu
c402e90598
Merge pull request from peppy/output-directory-on-import-failure
Silence exception and provide more log output when import fails due to empty `.osu` files
2022-06-20 17:36:21 +09:00
Dan Balasescu
16281f4a48 Properly annotate method to allow null 2022-06-20 16:56:19 +09:00
Dean Herbert
d38defada4 Silence exception and provide more log output when import fails due to empty .osu files 2022-06-20 16:07:10 +09:00
Dan Balasescu
03ab6fc141 Implement IEquatable on ControlPoint 2022-06-20 15:27:43 +09:00
Dean Herbert
92f1a2958c Rename Import(TModel) to ImportModel to differentiate from other import methods 2022-06-20 15:18:07 +09:00
Dean Herbert
a6c8a832aa Remove Import(ArchiveReader) and redirect existing usages to Import(ImportTask) 2022-06-20 15:14:57 +09:00
Dan Balasescu
468e5fcbed Merge branch 'master' into editor-controlpoint-undo-redo 2022-06-20 13:47:01 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dean Herbert
d48fbdb439 Merge branch 'bmm-cleanup' into bmm-cleanup-2 2022-06-16 19:48:54 +09:00
Dean Herbert
e66ccfd980 Add back missing notification flow 2022-06-16 19:48:18 +09:00
Dean Herbert
3860f0b3e5 Remove unused GetWorkingBetamap method 2022-06-16 19:08:59 +09:00
Dean Herbert
ce3d3a967c Reimplement missing methods 2022-06-16 19:05:25 +09:00
Bartłomiej Dach
a635664a86
Fix invalid method reference in comment
`BeatmapModelManager.Save()` was moved to `BeatmapManager`, not to
`BeatmapImporter`.
2022-06-16 12:01:53 +02:00
Dean Herbert
72c5b9009d Remove local realm fields in manager classes 2022-06-16 18:56:53 +09:00
Dean Herbert
f3984d98e6 Remove RealmArchiveModelManager from hierarchy 2022-06-16 18:53:13 +09:00
Dean Herbert
04e4c5ef88 Move and adjust implementation regions to restore sanity 2022-06-16 18:26:13 +09:00
Dean Herbert
1f3e1b2d97 Combine BeatmapManager and BeatmapModelManager into one class 2022-06-16 18:07:04 +09:00
Dean Herbert
8ea3042435 Move file extensions specification to common class 2022-06-16 18:00:27 +09:00
Dean Herbert
84dba36cf5 Update usages of BeatmapModelManager which only require importing to use BeatmapImporter 2022-06-16 17:59:24 +09:00
Dean Herbert
4c372539a1 Consolidate remaining methods in BeatmapModelManager 2022-06-16 17:59:24 +09:00
Dean Herbert
f23ddfe6cc Move remaining realm classes out of Stores namespace 2022-06-15 21:56:00 +09:00
Dean Herbert
23d7667f39 Move BeatmapImporter to correct namespace 2022-06-15 21:47:52 +09:00
Dean Herbert
9edc4fc181 Remove unnecessary ShouldDeleteArchive override (already done in base implementation) 2022-06-15 21:47:52 +09:00
Dean Herbert
88d5e074a8 Rename lowPriority to batchImport 2022-06-15 00:46:00 +09:00
Dean Herbert
2f8290831a Skip quick import clause when importing a single item
Closes https://github.com/ppy/osu/issues/18600.
2022-06-15 00:26:34 +09:00
Dean Herbert
94ba71aa13 Remove one more usage of lowPriority 2022-06-14 20:21:28 +09:00
Dean Herbert
9f599a5ab4 Remove unused lowPriority flag from one Import method 2022-06-14 19:52:30 +09:00
Dan Balasescu
7e7716f942 Support undo/redo for control points 2022-06-13 15:45:08 +09:00
Joseph Madamba
1107e267e3 Fix beatmap card play button not working with touch inputs when not hovered 2022-06-10 22:03:51 -07:00
Dan Balasescu
c9dfffbc0e
Merge pull request from peppy/fix-collection-performance
Fix performance overhead of large collections
2022-06-10 15:01:31 +09:00
Endrik Tombak
c90b285861 Change variable name and inline it 2022-06-08 21:10:27 +03:00
Endrik Tombak
bf67b35ade Use new own profile statistics in difficulty recommender 2022-06-08 17:44:57 +03:00
Dean Herbert
cf438b1a44 Add index on MD5Hash property
Reduces actual query overhead significantly
2022-06-08 18:01:55 +09:00
Dean Herbert
3b4b35c51e Remove unnecessary string interpolation 2022-06-06 20:18:57 +09:00
Dean Herbert
f96340e37d Improve messaging of deletion progress / completion 2022-06-06 20:18:32 +09:00
Dean Herbert
b104b7a90d Rename method to mention "all" 2022-06-06 20:12:20 +09:00
Dean Herbert
da000ee5f0 Centralise video file extensions 2022-06-06 20:11:43 +09:00
Dean Herbert
cb383d4bdc Merge branch 'master' into delete-all-beatmap-videos-sbs 2022-06-06 20:08:05 +09:00
Joseph Madamba
30cf6bffad Add tooltips to beatmap card icon pills 2022-06-03 21:41:52 -07:00
Jamie Taylor
365819865e
Remove 'submit' sample usages 2022-06-03 22:31:35 +09:00
Dean Herbert
5bd9d88219 Fix tutorial download state not matching correctly when already available locally
Closes https://github.com/ppy/osu/issues/18468.

This doesn't stop the tutorial from downloading a second time, but at
least displays the correct status afterwards. Avoiding the download is a
bit more involved and requires a change to the flow. Probably not worth
it just yet.

To test, recommend switching to production environment, as dev server
doesn't have correct metadata for tutorial resulting in weirdness.
2022-06-02 16:34:24 +09:00
Dean Herbert
e53c8518de Don't output beatmap parse failures in a visible manner
The user can't do much about this. When a user reports a beatmap issue,
the logs will still contain this useful information. Should be fine I
think.

As mentioned in

https://github.com/ppy/osu/discussions/18426
https://github.com/ppy/osu/issues/750
https://github.com/ppy/osu/issues/18372

etc.
2022-05-27 19:18:38 +09:00
Dean Herbert
588c5d1583 Add initial waveform comparison display 2022-05-24 14:36:44 +09:00
Dan Balasescu
f111d33b25
Merge pull request from peppy/editor-timing
Add first pieces of editor timing UI
2022-05-23 11:12:22 +09:00
Dean Herbert
267bef959f
Remove unnecessary cache type specification
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-05-23 02:00:04 +09:00
Dean Herbert
3a7233bd6e Move interface to more appropriate namespace 2022-05-22 22:49:24 +09:00
Salman Ahmed
a17eed64f9 Use Track to ensure its loaded before transferring 2022-05-21 16:52:16 +03:00
Salman Ahmed
a42f5ea34e Bring back virtual track condition given its cheapness
Will still keep the override in `ClockBackedTestWorkingBeatmap` because
it still relies on a local track store and will fail the moment it uses
a non-virtual track.
2022-05-21 16:51:56 +03:00
Salman Ahmed
466ed3c791
Fix wrong return xmldoc
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-05-21 16:43:31 +03:00
Salman Ahmed
c78d90ccbd Refactor track transferring logic for ability to override and disallow 2022-05-20 14:43:07 +03:00
Dean Herbert
16075d2a2f
Merge pull request from smoogipoo/legacy-catmull
Fix compatibility issues with legacy Catmull sliders
2022-05-19 15:42:21 +09:00
Noah M
d1fcd73c87 Convert extension checking to checking against string array 2022-05-18 16:25:10 -05:00
Noah M
60eb0ea69e Remove unnecessary parameters from DeleteVideos 2022-05-18 15:40:46 -05:00
Noah M
a93a2fcafb Move implementation of DeleteVideos to BeatmapModelManager 2022-05-18 15:37:46 -05:00
Dan Balasescu
731f0960ec Don't merge adjacent legacy Catmull segments 2022-05-18 17:16:24 +09:00
Noah M
69351d2cdf Implement button to delete all beatmap videos 2022-05-18 01:20:57 -05:00
Dean Herbert
8112416335 Assert that downloads are queued early enough to work 2022-05-17 17:33:54 +09:00
Salman Ahmed
88ba84ac9c Replace Pill with Badge everywhere 2022-05-14 20:52:38 +03:00
Salman Ahmed
9bac33ec9f Integrate spotlight beatmap badge in listing cards 2022-05-14 19:47:31 +03:00
Dan Balasescu
3b4fdf20f9 Prevent throwing exceptions on first run without internet 2022-05-09 12:15:54 +09:00
ekrctb
dcf0d5a9d5 Fix slider velocity wrongly decoded as scrolling speed in osu!catch 2022-05-08 21:49:42 +09:00
ekrctb
3eeedd8024 Fix per-hit object slider velocity ignored in osu!catch 2022-05-08 13:45:21 +09:00
Dan Balasescu
39d10487b9
Merge branch 'master' into snapping-tidy-distance 2022-05-05 19:55:55 +09:00
Salman Ahmed
67341db0e7 Wrap BeatmapOnlineLookupQueue cache request in a task 2022-05-05 12:40:02 +03:00
Dean Herbert
6227e3f876 Add comprehensive documentation of BeatmapInfo.DistanceSpacing 2022-05-05 16:25:45 +09:00
Dean Herbert
faeefc5e18
Merge pull request from frenzibyte/osu-distance-spacing
Add "distance spacing" support in editor for osu! ruleset
2022-05-03 12:15:18 +09:00
Salman Ahmed
fef94d49f4 Revert "Convert data type of DistanceSpacing to float"
This reverts commit 7aaa88cac2.
2022-04-29 08:02:07 +03:00
Dean Herbert
92d4463e55 Add "always bundled" beatmaps 2022-04-29 11:45:18 +09:00
Dean Herbert
804848c9fb Allow bundled downloader to not post notifications 2022-04-28 19:01:21 +09:00
Dean Herbert
3c9e520188 Update bundle logic to match stable 2022-04-28 19:01:21 +09:00
Dean Herbert
d056465742 Remove explicit dependency on INotificationOverlay 2022-04-28 19:01:21 +09:00
Dean Herbert
58399a5113 Add tutorial download support and improve the visuals "slightly" 2022-04-28 19:01:21 +09:00
Dean Herbert
973dd4bfa9 Add initial flow for download button / progress display 2022-04-28 19:01:21 +09:00
Dean Herbert
99d2d7b805 Add very basic implementation of bundled beatmap downloader 2022-04-28 19:01:21 +09:00
Salman Ahmed
7aaa88cac2 Convert data type of DistanceSpacing to float 2022-04-28 10:24:36 +03:00
Salman Ahmed
dacca73838 Set default value of DistanceSpacing to 1 2022-04-28 07:14:43 +03:00
Dean Herbert
e9ec406046 Remove weird code 2022-04-27 19:20:08 +09:00
Dean Herbert
c44f7d9f93 Fix high star ratings not being easily visible on tooltips
Resolves issue mentioned in https://github.com/ppy/osu/discussions/17920.
2022-04-22 15:59:52 +09:00
Joseph Madamba
5e5c8e78a6 Use existing web localisation for most hardcoded strings 2022-04-20 16:31:11 -07:00
Dean Herbert
e010dfb150 Handle virtual track string to avoid throwing later in lookup 2022-04-14 17:33:42 +09:00
Dean Herbert
552ec5282f Change WorkingBeatmap.GetVirtualTrack to use length provided by BeatmapInfo
A lot of tests are using test resources that populate the length field,
but do not populate hitobjects. The general expectation is that
components should be using the cached length in cases where hitobjects
are not relevant, but `GetVirtualTrack` was doing its own local
calculation.

This could cause tests to fail due to `MusicController` changing track
in the background.
2022-04-06 14:51:15 +09:00
Dan Balasescu
32e55e7d78 Merge branch 'master' into osu-diff-calc-max-combo 2022-03-31 15:08:08 +09:00
Dan Balasescu
478174dd58
Merge pull request from peppy/skin-fuck
Refactor skin construction
2022-03-25 15:36:06 +09:00
Dean Herbert
a7554dcdf7 Use a constant for the early version timing offset 2022-03-24 16:43:41 +09:00
Dean Herbert
a7f63fb034 Make providing a custom ResourceStore to LegacyBeatmapSkin optional (for tests only) 2022-03-23 14:57:42 +09:00
Salman Ahmed
b9859f9f21 Obsolete BeatmapInfo.MaxCombo and suppress in usages 2022-03-20 16:30:29 +03:00
Salman Ahmed
c2063f415d Remove unnecessary MaxCombo migration between unmapped database fields 2022-03-20 16:27:54 +03:00
Salman Ahmed
c5cc7eec79 Add explicit todo about removing BeatmapInfo.MaxCombo
Using that property is a trap basically.
2022-03-20 05:38:14 +03:00
Bartłomiej Dach
e1610b5d32
Merge branch 'master' into ruleset-leaderboard-unavailable 2022-03-03 22:52:20 +01:00
Dean Herbert
42e07b7308 Convert to extension method to avoid recursive calls 2022-03-03 14:15:37 +09:00
Dean Herbert
fab9323707 Replace all legacy ruleset checks with a helper property call 2022-03-03 14:08:48 +09:00
Dean Herbert
acf8db13ac Store user settings to realm 2022-03-01 18:44:15 +09:00
Bartłomiej Dach
d0c01afc2e
Add flow for changing set of valid divisors between presets 2022-02-27 15:37:51 +01:00
Dean Herbert
c869be87d1 Update FlatFileWorkingBeatmap to not require a ruleset store 2022-02-19 20:53:04 +09:00
Dan Balasescu
567da9214e Merge branch 'master' into osu-diff-calc-max-combo 2022-02-18 18:35:24 +09:00
Dean Herbert
a029e418cf Use internal instead of protected internal 2022-02-18 17:06:04 +09:00
Dean Herbert
cf1dd1ebd3 Disallow registering a null RulesetStore 2022-02-18 16:52:34 +09:00
Dean Herbert
420e2c538f Automatically use an AssemblyRulesetStore if no custom store is registered 2022-02-18 16:52:34 +09:00
Dean Herbert
631c23ea3a Merge branch 'master' into beatmap-decoder-ruleset-store 2022-02-18 16:52:33 +09:00
Bartłomiej Dach
8a08bb7aaf
Use best-name-finding helper in new difficulty creation flow 2022-02-17 00:28:18 +01:00
Dean Herbert
5477af08c5 Register an AssemblyRulesetStore in tests which don't use OsuGameBase 2022-02-16 17:21:57 +09:00
Dean Herbert
13086541f0 Add static RulesetStore to LegacyBeatmapDecoder 2022-02-16 17:13:54 +09:00
Dean Herbert
3d3f0a89c2 Remove legacy RulesetID property from BeatmapInfo 2022-02-16 16:46:53 +09:00
Dan Balasescu
215da7e933 Reimplement as extension method on IBeatmap
Implementation has changed slightly to support arbitrary levels of
nested hitobjects.
2022-02-16 12:06:49 +09:00
Bartłomiej Dach
e45a2ae0fc
Restructure difficulty copy flow to adapt to latest changes 2022-02-14 22:02:37 +01:00
Bartłomiej Dach
6221447164
Append copy suffix on creating copy of difficulty 2022-02-14 20:19:12 +01:00
Bartłomiej Dach
40cfee3421
Explicitly reset online ID and beatmap status on copy 2022-02-14 19:54:40 +01:00
Bartłomiej Dach
7e75fa7117
Revert "Change BeatmapInfo copy logic to be opt-in rather than opt-out"
This reverts commit 5dabc9282c.
2022-02-14 19:52:08 +01:00
Bartłomiej Dach
5dabc9282c
Change BeatmapInfo copy logic to be opt-in rather than opt-out 2022-02-13 19:04:11 +01:00
Bartłomiej Dach
ecd6a68c6f
Clear hash when creating copy of existing difficulty 2022-02-13 14:01:23 +01:00
Bartłomiej Dach
6fd663a718
Apply some renames to convey difference between creation options better 2022-02-13 14:01:23 +01:00
Bartłomiej Dach
a144d6f8d6
Fix beatmap skin properties not copying 2022-02-13 14:01:22 +01:00
Bartłomiej Dach
1bf5375e74
Fix BeatmapInfo-associated member not copying 2022-02-13 14:01:21 +01:00
Bartłomiej Dach
a2c2b2bbb3
Add flow for copying existing difficulty content 2022-02-13 14:01:20 +01:00
Salman Ahmed
6f0e32826c Standardise ordering/grouping of IRulesetInfo/RulesetInfos 2022-02-11 04:27:11 +03:00
Bartłomiej Dach
6dc0f3fd96
Merge difficulty creation methods into one
One of them wasn't really doing much anymore and was more obfuscating
what was actually happening at this point.
2022-02-03 18:14:30 +01:00
Dean Herbert
bef0a2da21 Remove return type from AddDifficultyToBeatmapSet
Also removes a pointless realm encapsulation.
2022-02-03 19:43:43 +09:00
Dean Herbert
ad47649d1c Make BeatmapModelManager.Save non-virtual 2022-02-03 19:38:53 +09:00
Bartłomiej Dach
a8ffc4fc2a
Add editor override to respect IsolateSavingFromDatabase 2022-02-02 21:57:21 +01:00
Bartłomiej Dach
47429fb0c6
Fix same-name safety firing wrongly 2022-02-02 21:57:21 +01:00
Bartłomiej Dach
4f1aac9345
Add safeties preventing creating multiple difficulties with same name 2022-02-02 21:57:09 +01:00
Bartłomiej Dach
54bb6ad40c
Fix working beatmaps not seeing new difficulties after add 2022-02-02 21:55:34 +01:00
Bartłomiej Dach
dc96c4888b
Add support for creating new blank difficulties 2022-02-02 21:55:33 +01:00
Dean Herbert
6d962e7925
Merge pull request from dekrain/leaderboard-score-tooltip
Add basic tooltip for leaderboard scores
2022-02-02 13:56:45 +09:00
Bartłomiej Dach
3d7af805a3
Fix BeatmapMetadata not using its user param correctly 2022-02-01 21:16:28 +01:00
Dean Herbert
8eace12fe3 Synchronise (roughly) backgrounds of all custom tooltips 2022-02-01 16:35:25 +09:00
Dean Herbert
142a67e163 Fix approach rate not being transferred from OD on older beatmaps 2022-01-28 18:53:28 +09:00
Bartłomiej Dach
6674567af1
Use -1 as the default preview time globally in metadata 2022-01-27 21:51:51 +01:00
Bartłomiej Dach
1b8136e3e0
Change some BeatmapInfo defaults in a backwards compatible manner 2022-01-27 21:49:37 +01:00
Dean Herbert
5288eedd31 Update all usages of RulesetID and Ruleset.ID to use Ruleset.OnlineID 2022-01-27 15:38:03 +09:00
Dean Herbert
68ee80c5de
Merge pull request from frenzibyte/refactor-editor-save-test
Refactor editor saving test scene for scalability
2022-01-26 15:40:39 +09:00
Salman Ahmed
064468faad Refactor editor saving test scene for scalability 2022-01-26 07:57:46 +03:00
Dean Herbert
cd71ec0edd Remove ILive<> interface (and use abstract Live<> instead) 2022-01-26 13:38:56 +09:00
Dean Herbert
778d2a71b4 Remove Task from the inner-most Import method in RealmArchiveModelImporter
One of my pending work items for post-realm merge.

The lowest-level import task is no longer asynchronous, as we don't want
it to span multiple threads to allow easier interaction with realm.
Removing the `Task` spec simplifies a heap of usages.

Individual usages should decide whether they want to run the import
asynchronously, by either using an alternative override or spooling up a
thread themselves.
2022-01-25 15:30:29 +09:00
Dan Balasescu
05a2d7fbfe
Merge pull request from peppy/fix-editor-slider-velocity-saving
Don't include nested hit objects' `DifficultyControlPoints` in legacy encoder logic
2022-01-25 14:50:09 +09:00
Dean Herbert
e23b10e6a5 Update remaining cases of clashing variable name in realm.Run(realm.. 2022-01-25 13:04:05 +09:00
Dean Herbert
3e5c9e8436 Fix cases of Access instead of Realm 2022-01-25 12:58:15 +09:00
Dean Herbert
6eb2c28e41 Rename RealmContextFactory to RealmAccess 2022-01-24 20:38:07 +09:00
Dean Herbert
c3758047fd Don't include nested hit objects' DifficultyControLPoints in legacy encoder logic
The editor doesn't currently propagate velocity to nested objects. We're
not yet sure whether it should or not. For now, let's just ignore nested
objects' `DifficultyControlPoints` for simplicity.

Note that this only affects osu! ruleset due to the pre-check on
`isOsuRuleset`.
2022-01-24 19:54:08 +09:00
Dean Herbert
d7db6fa918
Merge branch 'master' into custom-meter 2022-01-24 15:46:44 +09:00
Bartłomiej Dach
838a9f69ed
Fix saved beatmap filename depending on ToString() implementation 2022-01-23 20:28:30 +01:00
Bartłomiej Dach
4e5a1f27a8
Initialise Simple{Triple,Quadruple} only once ever rather than create every time 2022-01-23 15:21:25 +01:00
Bartłomiej Dach
735414bc49
Replace TimeSignatures enum with struct for storage of arbitrary meter 2022-01-22 20:50:31 +01:00
Dean Herbert
495636538f Add forced refresh on GetAllUsableBeatmapSets()
This is commonly used in tests in a way where it's not feasible to
guarantee correct results unless a refresh is called. This method
shouldn't really be used outside of tests anyway, but that's for a
folow-up effort.
2022-01-21 17:33:29 +09:00
Dean Herbert
114c9e8c1f Update all usages of CreateContext to use either Run or Write 2022-01-21 17:27:08 +09:00
Dean Herbert
a5d2047f05 Fix various cases of creating realm contexts from update thread when not necessary 2022-01-21 01:44:56 +09:00
Dean Herbert
6c10531df2 Avoid constructor overhead for realm BeatmapMetadata parameterless constructor 2022-01-20 17:14:51 +09:00
Dean Herbert
deb108816c Fix some regressions in json output (we need to make all these explicit instead) 2022-01-20 17:09:31 +09:00
Dean Herbert
ccddf9b47d Avoid constructor overhead for realm BeatmapSetInfo parameterless constructor 2022-01-20 17:03:44 +09:00
Dean Herbert
3faf980fed Avoid constructor overhead for realm BeatmapInfo parameterless constructor 2022-01-20 16:47:27 +09:00
Bartłomiej Dach
247c557eaf
Fix expanded content scrollbar inadvertently hiding expanded content 2022-01-19 22:30:49 +01:00
Bartłomiej Dach
77748a5f93
Show scrollbar on expanded card content where applicable 2022-01-19 22:21:08 +01:00
Dan Balasescu
3e5d29ed00
Merge pull request from peppy/remove-base-difficulty-usage
Remove all usage of `BaseDifficulty` (and access `Difficulty` instead)
2022-01-19 13:53:55 +09:00
Dan Balasescu
2556f1cb87
Merge branch 'master' into optimise-set-detach-part-2 2022-01-19 13:20:38 +09:00
Dean Herbert
2363130f8b Add back BaseDifficulty with obsoletion counter to account for custom rulesets 2022-01-19 12:33:56 +09:00
Dean Herbert
60b80c88b6 Avoid file retrieval overhead when detaching BeatmapSetInfo
It seems that no usages of `BeatmapSetInfo` detaches require files - a
`WorkingBeatmap` is always obtained before doing further lookups.

Therefore we can omit this include unless the detaching object is a
`BeatmapInfo`. A refetch is performed when retrieving a
`WorkingBeatmap` to complete the equation.
2022-01-19 00:49:18 +09:00
Dean Herbert
67bf95bc91 Remove all usage of AuthorString 2022-01-18 23:30:40 +09:00
Dean Herbert
3596c6ed5d Add some missing IgnoredAttributes to reduce automapper overhead 2022-01-18 23:25:30 +09:00
Dean Herbert
7f65f3a47f Remove all usage of BaseDifficulty (and access Difficulty instead) 2022-01-18 22:57:39 +09:00
Dean Herbert
9a43ed742b Update automapper spec in line with v11
See https://docs.automapper.org/en/latest/11.0-Upgrade-Guide.html for
 more details.
2022-01-18 15:23:28 +09:00
Dean Herbert
381174e482 Give the placeholder ruleset better defaults to allow tests to work again 2022-01-17 14:40:00 +09:00
Dean Herbert
744084b418 Initialise all parameters is paramaterless constructor for now for added safety 2022-01-17 13:51:30 +09:00
Bartłomiej Dach
e75d21507c
Fix GetDisplayTitleRomanisable() relying on ToString() implementation 2022-01-15 15:26:41 +01:00
Dean Herbert
dea2e1fac0 Return immediately on failed web request in synchronous BeatmapOnlineLookupQueue flow 2022-01-14 13:20:51 +09:00
Dean Herbert
8424d86e9a Remove unused cancellationToken parameter in synchronous BeatmapOnlineLookupQueue flow 2022-01-14 13:19:00 +09:00
Dean Herbert
9b33fbbee5 Ensure detached when performing model Clone operations on BeatmapInfo/ScoreInfo 2022-01-14 13:08:20 +09:00
Dean Herbert
b610d2db12 Add EF to realm beatmap migration 2022-01-13 18:23:18 +09:00
Dean Herbert
069d6d2954 Remove pointless compatibility parameter BeatmapSetInfoID 2022-01-13 18:02:10 +09:00
Dean Herbert
93c78253d6 Add synchronous fetch flow to BeatmapOnlineLookupQueue
The async flow doesn't work great with the realm import process. We
might be able to improve on this going forward, but for the time being
adding a synchronous path seems safest.

After all, we are already an an asynchronous (dedicated) thread pool at
this point.
2022-01-13 16:36:54 +09:00
Dean Herbert
b77cb344d5 Use ctor rather than MemberwiseClone to guarantee a safer clone of BeatmapDifficulty 2022-01-13 13:23:41 +09:00
Dean Herbert
86b2ac3217 Remove unnecessary Ruleset null check in BeatmapDifficultyCache 2022-01-13 13:19:49 +09:00
Dean Herbert
eb70a1eeb7 Replace compatibility properties with direct references 2022-01-12 18:13:14 +09:00
Dean Herbert
34aa1bf21d Sanitise and remove some usages of Detach which are no longer required 2022-01-12 17:49:11 +09:00
Dean Herbert
5f7365e8f3 Ensure scores are cleaned up alongside beatmap so they don't have a null reference 2022-01-12 17:49:11 +09:00
Dean Herbert
f24b2b1be3 Make copying detached changes to realm only exposed for BeatmapSet
Also fixes remaining issues with the copy process.
2022-01-12 17:49:11 +09:00
Dean Herbert
a4de0f93fa Move manager Update methods to be explicit to where they are still used by legacy code
Also fixes skin hash repopulation being completely broken.
2022-01-12 17:49:11 +09:00
Dean Herbert
51d6db1bca Add equatable support to IUser and RealmUser
Not sure this will stick, but let's add it for now to make testing
detach support work nicely.
2022-01-12 17:49:11 +09:00
Dean Herbert
157dfdaa82 Fix protected beatmap sets getting deleted 2022-01-12 17:49:11 +09:00
Dean Herbert
72656ae01e Fix beatmap restore/undelete flows 2022-01-12 17:49:11 +09:00
Dean Herbert
46206f70d6 Fix beatmap mass deletion flow 2022-01-12 17:49:11 +09:00
Dean Herbert
d5239d550a Add refetch for non-managed hide/restore attempts 2022-01-12 17:49:11 +09:00
Dean Herbert
46e92c3b60 Clean up BeatmapManager query methods 2022-01-12 17:49:11 +09:00
Dean Herbert
9beabad6a4 Remove hide/restore event flow 2022-01-12 17:49:11 +09:00
Dean Herbert
c06b5951fd Fix multiple remaining warnings 2022-01-12 17:49:11 +09:00
Dean Herbert
7509a9ff8f Update BeatmapModelManager.Save to work for editor scenarios 2022-01-12 17:49:11 +09:00
Dean Herbert
8c3dc4333d Fix incorrect realm access after new beatmap import 2022-01-12 17:49:11 +09:00
Dean Herbert
2ce80cc030 Add back caching in WorkingBeatmapCache 2022-01-12 17:49:11 +09:00
Dean Herbert
286994a808 Fix BeatmapDifficulty cloning regression 2022-01-12 17:49:11 +09:00
Dean Herbert
f451560203 Update null allowances across beatmaps and scores 2022-01-12 17:49:11 +09:00
Dean Herbert
6033a825ed Ensure BeatmapInfo Difficulty and Metadata is non-null 2022-01-12 17:49:11 +09:00
Dean Herbert
a0f8debafe Add note about BeatmapMetadata.Author being weird 2022-01-12 17:49:10 +09:00
Dean Herbert
83ccbc1d13 Mention safety failures of Beatmap/Score constructors 2022-01-12 17:00:17 +09:00
Dean Herbert
c831e9107a Fix BeatmapInfo.Clone potentially not cloning if already detached 2022-01-12 17:00:17 +09:00
Dean Herbert
e5af673b01 Fix incorrect BeatmapInfo.ToString implementation 2022-01-12 17:00:17 +09:00
Dean Herbert
e74a5022c9 Fix multiple tests via null checks and changing ToLive to Detach
flow
2022-01-12 17:00:17 +09:00
Dean Herbert
76670a8faa Fix BeatmapDifficultyCache not working with detached beatmaps 2022-01-12 17:00:17 +09:00
Dean Herbert
aaefd72c69 Handle ignored mappings locally in Detach configuration 2022-01-12 17:00:17 +09:00
Dean Herbert
8461eaab46 BeatmapSetInfo detach support 2022-01-12 17:00:16 +09:00
Dean Herbert
3811bd8520 Fix some null inspections 2022-01-12 17:00:16 +09:00
Dean Herbert
33060990b7 Temporarily disable WorkingBeatmapCache and fix multiple invalid data flows 2022-01-12 17:00:16 +09:00
Dean Herbert
0793b0f0ab Fix Max lookup methods not checking for zero beatmap count 2022-01-12 17:00:16 +09:00
Dean Herbert
dcd69e852e Add back settable RulesetID for now 2022-01-12 17:00:16 +09:00
Dean Herbert
2a980cc474 Fix BeatmapInfo file lookup not handling the case where no files exist
Quite common for test scenes.
2022-01-12 17:00:16 +09:00
Dean Herbert
99e46cd26b Fix missing BeatmapMetadata.ToString
This is relied on by a few usages.
2022-01-12 17:00:16 +09:00
Dean Herbert
fe8a5e867d Remove updated/removed flow method mapping 2022-01-12 17:00:16 +09:00
Dean Herbert
1f9318265e Update ToLive usages in line with recent changes 2022-01-12 17:00:16 +09:00
Dean Herbert
db05727ec4 Remove unused includeProtected parameter 2022-01-12 17:00:16 +09:00
Dean Herbert
b91f309879 Inline query methods from BeatmapModelManager to BeatmapManager where possible 2022-01-12 17:00:16 +09:00
Dean Herbert
1d536fd0bc Start introducing ILive 2022-01-12 17:00:16 +09:00
Dean Herbert
8696f82627 Fix intro screen
Fix things
2022-01-12 17:00:16 +09:00
Dean Herbert
c4a9211179 Apply NRT to BeatmapManager and move Hide/Restore methods across 2022-01-12 17:00:16 +09:00