1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-16 13:17:26 +08:00
Commit Graph

3201 Commits

Author SHA1 Message Date
Dean Herbert
ff4d376c84 Mark relevant components as internal 2023-06-08 21:01:05 +09:00
Dean Herbert
3978d4babb Crop and disable mipmaps on beatmap panel backgrounds
This is an effort to improve general performance at song select. At
least on the metal renderer, I can notice very high draw frame overheads
related to texture uploads.

By reducing the size of the texture uploads to roughly match what is
actually being displayed on screen (using a relatively inexpensive crop
operation), we can bastly reduce stuttering both during initial load and
carousel scroll.

You might ask if it's safe to disable mipmapping, but I've tested with
lower resolutions and bilinear filtering seems to handle just fine.
Bilinear without mipmaps only falls apart when you scale below 50% and
we're not going too far past that at minimum game scale, if at all.
2023-06-08 16:51:07 +09:00
Dean Herbert
a842f79ad4 Refactor IWorkingBeatmap.Background to GetBackground() 2023-06-08 16:19:32 +09:00
Bartłomiej Dach
1f4e79d79d
Merge pull request #23711 from timiimit/add-last-edit-time
Store timestamp of beatmap's last edit time in local database
2023-06-07 16:57:24 +02:00
Salman Ahmed
62cb6a98ca Remove redundant nullable suppression directives 2023-06-07 08:20:41 +03:00
Dean Herbert
22f7fe1d79 Rename variable and ensure timestamp is updated even when not saving 2023-06-06 15:11:31 +09:00
timiimit
659fb80c16 Add BeatmapInfo.LastEditTime property 2023-05-31 19:06:41 +02:00
Bartłomiej Dach
96fe7cbe54
Merge branch 'master' into sample-set-controls 2023-05-25 21:58:16 +02:00
Bartłomiej Dach
78f41f7109
Fix spelling 2023-05-25 17:33:41 +02:00
Dean Herbert
058edb5d5f Centralise beatmap playable duration and bounds lookups 2023-05-25 17:32:48 +09:00
Dean Herbert
298989ffd2 Merge branch 'master' into sample-set-controls 2023-05-24 14:03:04 +09:00
Bartłomiej Dach
afdddb0195
Merge pull request #23582 from peppy/placement-blueprint-timeline-combo-fixes
Fix timeline blueprint display not showing correct combo number / colour during placement
2023-05-20 15:02:55 +02:00
Dean Herbert
8d925c8a8a Move combo information updating to an interface level helper method 2023-05-17 17:26:19 +09:00
Dean Herbert
83dcd78826 Make HitSampleInfo.Bank non-nullable 2023-05-16 18:12:56 +09:00
Dean Herbert
ca5e8b290f Add clamping to SliderMultiplier and SliderTickRate at parsing time 2023-05-09 20:53:20 +09:00
Dean Herbert
d10dd6d5ae Merge branch 'master' into base-s-v 2023-05-09 20:52:11 +09:00
Dean Herbert
944da06c10 Rename slider multiplier variable back for now 2023-05-09 16:58:19 +09:00
Bartłomiej Dach
30ce86a582
Merge pull request #23437 from peppy/fix-hold-note-input-test
Fix `TestSceneHoldNoteInput` not displaying correctly
2023-05-08 22:22:33 +02:00
Dan Balasescu
d2380bd840 Remove usages of [ExcludeFromDynamicCompile] 2023-05-08 18:12:56 +09:00
Dean Herbert
d6ce56e6b1 Fix GetMostCommonBeatLength returning zero in case of not timing points 2023-05-08 17:09:08 +09:00
Dean Herbert
f7d44c3013 Rename SliderMultiplier to BaseSliderVelocity 2023-05-08 13:13:09 +09:00
Dean Herbert
0d095c4bb7 Remove non-Live pathway 2023-05-06 23:10:18 +09:00
cdwcgt
4549a865d9
Merge branch 'master' into export 2023-05-04 00:18:01 +09:00
Dean Herbert
f930c4bd0a Move struct to bottom of file 2023-05-03 13:33:31 +09:00
Dean Herbert
48fd99818e Split out default and sample application 2023-05-03 13:30:45 +09:00
Dean Herbert
cca15f930c Refactor applyLegacyInfoAndDefaults for legibility 2023-05-03 13:26:50 +09:00
Dean Herbert
588a4e6196 Move pragma disable to top of LegacyBeatmapDecoder
Makes more sense as it's used multiple times in the class.
2023-05-03 13:19:14 +09:00
Dean Herbert
e3c384c6b5 Merge branch 'master' into sample-control-points 2023-05-02 14:38:39 +09:00
Bartłomiej Dach
436ebdcfcb
Fix beatmap leaderboard test failure
Because the online info reset (which includes online ID reset) was
happening after encoding,
`TestSceneBeatmapLeaderboard.TestLocalScoresDisplayOnBeatmapEdit()`
started failing, as the hash no longer matched expectations after the
first save of the map.
2023-05-01 19:44:15 +02:00
Bartłomiej Dach
f470b2c9cc
Always reset online info when saving local beatmap 2023-05-01 18:17:45 +02:00
OliBomby
8c21fddb5e remove all redundancies from encoded control points 2023-05-01 16:53:38 +02:00
OliBomby
8302bb1f37 dont encode custom sample bank for objects without legacy samples 2023-05-01 14:56:29 +02:00
OliBomby
cef9f73d34 dont assign custom sample bank and volume to hitobjects in non-mania gamemodes
this makes it easier to edit hitsounds in the stable editor after export because the sample control point effects wont get overwritten by the properties of the hitobject
2023-05-01 12:31:27 +02:00
OliBomby
608fa3cc73 Merge remote-tracking branch 'upstream/master' into sample-control-points 2023-04-30 19:47:03 +02:00
OliBomby
139a1d7e6d fix legacy encoder writing sample info while not writing node samples 2023-04-30 17:46:47 +02:00
OliBomby
c44f71a737 remove all regular usage of DifficultyControlPoint 2023-04-26 17:55:38 +02:00
OliBomby
1b4f4372d5 fixed sample control point applying 2023-04-26 14:32:12 +02:00
OliBomby
5accb05f45 fix invalidoperation exception 2023-04-26 14:28:48 +02:00
OliBomby
6c70948681 Remove IContext & add IHasGenerateTicks 2023-04-26 13:10:57 +02:00
OliBomby
c37875bee8 remove hitobject SampleControlPoint usage from LegacyBeatmapEncoder 2023-04-25 16:00:40 +02:00
OliBomby
bf1951fc38 Fix incorrect xmldoc 2023-04-25 12:54:45 +02:00
OliBomby
891b87a5ff remove ApplyLegacyInfo method 2023-04-25 12:52:21 +02:00
OliBomby
ea1e6e9798 Add LegacyContext 2023-04-25 12:12:46 +02:00
OliBomby
a4c6850ab2 made the SampleControlPoint and DifficultyControlPoint obsolete 2023-04-25 11:34:09 +02:00
Daniel Kirschten
6c9a90d1ec
Merge branch 'master' into master 2023-04-22 19:23:52 +02:00
Haspamelodica
e90660c1a4 Switched to lowercase 2023-04-21 02:35:28 +02:00
Haspamelodica
b62de5514c Fixed video importing bug #23259 2023-04-21 02:10:24 +02:00
Dean Herbert
1066dfcbf6 Change default beat divisor to 4
This matches stable, and is a much saner default value.

Will apply to new beatmaps and also beatmaps which don't specify a snap
value in the `.osu` file.
2023-04-20 14:35:13 +09:00
Bartłomiej Dach
e72f103c17
Do not look up metadata for locally-modified beatmaps on save 2023-04-11 23:14:35 +02:00
cdwcgt
ce6a87b4a3
Merge remote-tracking branch 'upstream/master' into export 2023-04-09 15:02:47 +09:00
cdwcgt
de21b4a2f7
use Live<TModel>
Use RealmAccess only when needed
2023-04-09 22:21:15 +09:00
Dean Herbert
da947d8661 Gracefully handle beatmaps specifying images using the video storyboard type 2023-03-13 18:24:16 +09:00
Bartłomiej Dach
72695f7c90
Merge branch 'master' into omit-barline-in-timing-control-point 2023-03-07 22:46:24 +01:00
OliBomby
1fcf41379d Added maintainability patch by bdach 2023-03-06 16:20:36 +01:00
OliBomby
b0cd801405 fix code quality 2023-03-04 19:34:22 +01:00
OliBomby
5146f7c978 using array again in GetSearchableTerms 2023-03-04 16:49:46 +01:00
OliBomby
b90c389ff0 using List instead of Span in GetSearchableTerms 2023-03-04 15:42:35 +01:00
OliBomby
91d206e8d2 Optimised GetSearchableTerms
Reduced memory allocations to 1
2023-03-03 19:21:50 +01:00
Dean Herbert
044b0604b2 Move OmitFirstBarLine to TimingControlPoint 2023-02-28 19:29:31 +09:00
cdwcgt
e84e011d5d Merge branch 'master' into export 2023-02-17 22:15:19 +09:00
Dean Herbert
7cc4fd4efc Use the exact method stable uses for generating storyboard filenames 2023-01-26 15:09:36 +09:00
Dean Herbert
d15f8c2f3a Fix beatmaps with multiple osb files potentially reading the storyboard from the wrong one
In stable, the storyboard filename is fixed. In lazer, we were always
looking for the first `.osb` in the database. In the case a beatmap
archive housed more than one `.osb` files, this may load the incorrect
one.

Using `GetDisplayString` here feels like it could potentially go wrong
in the future, so I'm open to hard-coding this locally (or using string
manipulation to remove the ` [creator_name]` portion of the beatmap's
filename). Open to opinions on that.

Fixes storyboard playback in https://osu.ppy.sh/beatmapsets/1913687#osu/3947758
2023-01-25 17:11:15 +09:00
Dean Herbert
392ff2ffea Reword comment regarding hash transfer to make more sense 2023-01-25 14:11:02 +09:00
Dean Herbert
741ca96853 Make transferCollections argument to private method explicitly required 2023-01-25 14:09:13 +09:00
Dean Herbert
739ec8d81d
Add argument hint for nondescript bool
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-01-25 14:04:30 +09:00
naoey
e6de167adb
Revert split and make collections boolean internal to BeatmapManager 2023-01-24 07:27:26 +09:00
naoey
1c1c9915bb
Split saving new and existing beatmaps into separate flows 2023-01-22 10:27:33 +09:00
naoey
a1b5c9d910
Don't transfer MD5 hashes in collections when copying beatmaps
Fixes #22306.

Changes beatmap saving so that by default it does not transfer
the hashes in collections, and only transfers them when saving the same
difficulty in the editor.

Issue seems to have been introduced in https://github.com/ppy/osu/pull/20641.
2023-01-22 01:14:18 +09:00
Dean Herbert
a1152fa0db
Merge pull request #22147 from Feodor0090/forbid-negative-snap
Forbid negative time snap in editor
2023-01-17 17:35:45 +09:00
Bartłomiej Dach
a9facc076f
Fix difficulty creation flow failing for some ruleset combinations
In current `master`, the difficulty creation flow would retrieve a
"reference beatmap" to copy metadata and timing points from using
`GetPlayableBeatmap()`. But, importantly, it was calling that method
using *the ruleset of the new difficulty* rather than the ruleset of the
existing one. This would make the difficulty creation flow fail if the
beatmap couldn't be converted between rulesets (like taiko to catch).

Fixing to use the reference beatmap's actual ruleset would be trivial,
but there's no real reason to do all of that work anyway when a
`WorkingBeatmap` is available. Because getting a playable beatmap is not
required to copy across metadata and timing points, remove the
`GetPlayableBeatmap()` step entirely to fix the bug.

Closes #22145.
2023-01-14 19:46:55 +01:00
ansel
51e21ee6f0 Make snapped time always positive 2023-01-12 03:38:57 +03:00
Salman Ahmed
5ee0665eac
Merge branch 'master' into pause-imports-during-gameplay 2023-01-09 20:09:17 +03:00
Dean Herbert
811a562608 Don't use bindables to avoid potential cross-usage contamination 2023-01-10 01:10:20 +09:00
Dean Herbert
07dae7dc21 Merge branch 'master' into overlay-panels-context-menu 2023-01-09 19:04:56 +09:00
Dean Herbert
62ffb4fe78 Pause imports during active gameplay 2023-01-09 18:54:11 +09:00
Joseph Madamba
0f6735564e Move and rename nomination response model to singular 2023-01-07 10:54:48 -08:00
Dean Herbert
f908b25dab
Merge pull request #22033 from frenzibyte/decrease-difficulty-list-fadeout
Decrease transition duration of extended difficulty list during hide
2023-01-06 20:13:30 +08:00
Dean Herbert
c0cfa66510
Merge pull request #21754 from Feodor0090/waveform-invalidate
Reload waveform on track replacement in editor
2023-01-06 19:57:27 +08:00
Salman Ahmed
8da7667b0b Decrease transition duration of extended difficulty list during hide 2023-01-05 14:22:17 +03:00
Salman Ahmed
4491a5ba9f Fix editor exporting beatmap combo colours in wrong order 2023-01-03 13:41:08 +03:00
Berkan Diler
182f36c434 Use StringSplitOptions.TrimEntries for string.Split() when possible 2022-12-27 09:41:58 +01:00
Joseph Madamba
bb58976838 Merge remote-tracking branch 'upstream/master' into overlay-panels-context-menu 2022-12-26 17:54:15 -08:00
Bartłomiej Dach
cb2b0d4178
Remove redundant type specs 2022-12-26 23:12:53 +01:00
Berkan Diler
fcbb21c75e Fix typo 2022-12-26 20:38:35 +01:00
Berkan Diler
c7ca4bbba5 Use generic Enum methods 2022-12-26 20:36:39 +01:00
Joseph Madamba
b9dfb8b602 Add localisation for context menu strings 2022-12-25 10:12:02 -08:00
Joseph Madamba
2c2f347e25 Add context menus to overlay panels/cards 2022-12-25 09:57:42 -08:00
Salman Ahmed
30de9ba795 Dispose previous waveform on track reload 2022-12-23 00:35:59 +03:00
Berkan Diler
08d2fbeb8e Use new ArgumentNullException.ThrowIfNull throw-helper API 2022-12-22 21:27:59 +01:00
ansel
20370bd5ae Invalidate waveform on track load 2022-12-22 20:49:09 +03:00
ansel
d0645ce151 Rewrite waveform invalidation 2022-12-22 15:59:51 +03:00
ansel
66a02374da Clear cached waveform on track change in editor 2022-12-22 01:23:24 +03:00
Dean Herbert
4a7d7c6ed9 Use MaxBy in all locations that can and update inspection level to match dotnet-build 2022-12-19 16:47:10 +09:00
Dean Herbert
192536643c Fix some more inspections 2022-12-16 20:21:19 +09:00
Dean Herbert
de079e08dc Fix incorrect ConfigureAwait call in ImportAsUpdate 2022-12-16 18:54:56 +09:00
Dean Herbert
ba54551313 Merge branch 'master' into guard-url-protocols 2022-12-16 18:23:16 +09:00
Dean Herbert
27c497145f Fix the MOTHERLOAD of undetected issues that are now visible thanks to net6.0 2022-12-16 18:16:26 +09:00
cdwcgt
3d6d3b4025
fix weird async logic 2022-12-15 20:59:11 +09:00
Dean Herbert
b8904fe747 Move ImportParameters to better home 2022-12-13 21:41:26 +09:00
Dean Herbert
cb16d62700 Hook up ImportParameter flow with IModelImporter caller methods 2022-12-13 21:29:32 +09:00
Dean Herbert
cf2719d4c0 Convert batchImport parameter to parameters class to allow further import configuration 2022-12-13 19:55:18 +09:00
Dean Herbert
902dff15e3 Add todo regarding validity check 2022-12-12 13:44:09 +09:00
cdwcgt
e02b8cb199
Group export methods into their respective managers 2022-12-11 18:30:24 +09:00
Andrei Zavatski
94cfcdb338 Remove SmoothCircularProgress usage in BeatmapCardThumbnail 2022-12-03 16:16:21 +03:00
Dean Herbert
809d02cda0 Fix two implementation oversights 2022-12-02 16:05:14 +09:00
Dean Herbert
896f2d8f74 Fix multiple instances of last hitobject time being calculated incorrectly 2022-12-01 18:04:06 +09:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Dan Balasescu
985781bc3b
Merge pull request #21356 from peppy/standardise-broken-storyboard-paths
Add support for storyboards with incorrect path specifications (`\\` instead of `\`)
2022-11-22 14:33:51 +09:00
Dean Herbert
2774c1ea49
Merge pull request #21215 from jai-x/triangles-bundled-beatmap
Add winner of Triangles mapping competition as a bundled beatmap
2022-11-21 16:22:23 +09:00
Dean Herbert
3da21e596a Add support for storyboards with incorrect path specifications (\\ instead of \)
Closes https://github.com/ppy/osu/issues/21204.
2022-11-21 16:12:01 +09:00
Joseph Madamba
4578a96813 Fix beatmap card expanded content not blocking clicks from behind 2022-11-13 08:18:44 -08:00
Jai Sharma
c5cb4e4e7d Add winner of Triangles mapping competition as a bundled beatmap
https://osu.ppy.sh/home/news/2022-10-06-results-triangles
2022-11-12 17:48:40 +00:00
Dean Herbert
064a245c50 Don't trim whitespace from variable keys / values 2022-11-08 13:30:11 +09:00
Dean Herbert
b764d1bd04 Decode variables earlier in flow in case they include indent logic
Without this change, the `depth` calculation could be incorrect.
2022-11-08 13:29:42 +09:00
Salman Ahmed
bd512c4937 Remove equality comparison implementation from BeatmapCard
This turned out to be a hurdle instead as it disallows adding two
beatmap cards of equal beatmap, which, while being a good behaviour in
client, makes tests more complicated to work.
2022-11-04 19:27:20 +03:00
Dean Herbert
07bfac40fa Adjust padding to avoid overlap with card border when expanded 2022-11-03 14:03:28 +09:00
Dean Herbert
66a6084d3f Scale in the background fill alongside the icon 2022-11-03 14:03:19 +09:00
Dean Herbert
df9f49eef2 Move hover layer behind icon
Looked bad on the "already downloaded" state where the icon becomes
black.
2022-11-03 13:56:07 +09:00
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 #20994.

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 #20809 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 #20641 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 #20193.

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 #19919 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 #19974 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 #19976.
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 #19958 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 #19529 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 #19435 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 #19371 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 #19098 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 #18862 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 #18834 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 #18832 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