Dean Herbert
3c028ce05c
Add IDeepCloneable
interface and update existing CreateCopy
methods to use it
2021-07-19 12:54:17 +09:00
Bartłomiej Dach
fb5d25405e
Replace calls to obsoleted GetOrDefault()
extension
2021-07-18 21:52:16 +02:00
Dean Herbert
eac9b1ec7e
Disable toolbox composition buttons when beatmap is not timed
2021-07-17 02:30:13 +09:00
ekrctb
7f432665e5
Preserve Y position of hit objects in osu!catch
2021-07-14 14:38:38 +09:00
Dean Herbert
ed29646291
Remove IApplicableToDifficulty.ReadFromDifficulty
...
This was added specifically for `ModDifficultyAdjust`, but turned out to
be more of a headache than we expected. We have since removed usage and
would hope that this is not required by any other mods.
Opting for complete removal rather than obsoletion, as we discovered
this was already broken in multiple cases, with fixes being quite
logically complex.
If you happen to be a ruleset developer relying on this, open an issue
and we'll talk you through a better approach (or check what
`ModDifficultyAdjust` is doing now for an example).
2021-07-14 12:32:16 +09:00
Dean Herbert
2436ebb6d3
Merge pull request #13874 from Naxesss/short-object-checks
...
Add object duration checks
2021-07-13 19:01:02 +09:00
Naxess
3a5912e35e
Add new checks to verifiers
2021-07-13 10:53:25 +02:00
Naxess
6da2a3d51f
Add zero-length objects check and tests
2021-07-13 10:50:11 +02:00
Dean Herbert
35841fa4f7
Merge branch 'master' into fix-difficulty-bindable-bind-order
2021-07-13 13:42:53 +09:00
Dean Herbert
5cff379cd9
Merge pull request #13860 from smoogipoo/fix-bindable-ctor
...
Fix DifficultyBindable not binding correctly and not having default ctor
2021-07-13 13:42:44 +09:00
Naxess
dc4285582b
Fix misplaced "f" in issue message
2021-07-13 06:07:04 +02:00
Naxess
c8f58cbf6c
Add audio in video check and tests
2021-07-13 04:17:41 +02:00
Naxess
a4a1919842
Add too short audio files check and tests
2021-07-13 03:46:45 +02:00
Naxess
0a8fd01b99
Add zero byte check and tests
2021-07-13 03:45:21 +02:00
Dan Balasescu
351a46b379
Merge pull request #13823 from ekrctb/catch-editor-tests
...
Add some tests for catch editor blueprints
2021-07-13 08:27:41 +09:00
Bartłomiej Dach
cce4a4dc31
Fix incorrect value copy order in BindTo()
2021-07-12 22:27:36 +02:00
smoogipoo
4b393209ec
Implement UnbindFrom()
2021-07-12 17:33:29 +09:00
smoogipoo
242982730f
Fix incorrect DifficultyBindable binding implementation
2021-07-12 17:09:09 +09:00
Dean Herbert
a6258d705e
Make CurrentNumber
internal
2021-07-12 11:26:30 +09:00
Bartłomiej Dach
32b4f5fbd6
Do not store direct references to original bindable
...
`DifficultyAdjustSettingsControl` and its inner `SliderControl` were
holding different references to `DifficultyBindable`s from the
difficulty adjust mod, therefore leading to bindings being lost to the
framework-side automatic unbind logic if the mod was toggled off and
back on in rapid succession.
Resolve by adding a shadowed implementation of `GetBoundCopy()` and
using it to isolate the controls from the mod bindable.
2021-07-11 15:28:13 +02:00
Dean Herbert
741062a6da
Simplify bindable update methods
2021-07-09 13:58:44 +09:00
Dean Herbert
e0277763d0
Refactor DifficultyAdjustSettingsControl
to help with readability
2021-07-09 13:50:07 +09:00
Dean Herbert
f9cd7f10d8
Allow null values for ReadCurrentFromDifficulty
...
As long as this isn't a constructor parameter it feels best to
gracefully handle omission. Realistically having it in the ctor is the
best move, but it doesn't feel great in line with the other parameters
passed in via object initalisers.
2021-07-09 13:26:01 +09:00
Dean Herbert
90326f8864
Standardise variables
2021-07-09 13:24:26 +09:00
Dean Herbert
b7803b889e
Rename control class to be more descriptive
2021-07-08 20:37:38 +09:00
Dean Herbert
ba939c0b65
Simplify serialisation edge case by moving to Value
override
2021-07-08 17:49:00 +09:00
Dean Herbert
52ea62e3b2
Add more comments and xmldoc
2021-07-08 17:49:00 +09:00
Dean Herbert
88b00123f6
Use existing reflection methods to avoid manual binding of ExtendedLimits
2021-07-08 17:49:00 +09:00
Dean Herbert
bd7c334588
Avoid the need for per-settings control classes
2021-07-08 17:49:00 +09:00
Dean Herbert
a6e94dd491
Add back extended limits support
2021-07-08 17:49:00 +09:00
Dean Herbert
c4313d6e96
Initial implementation of new flow (only working for approach rate)
2021-07-08 17:48:08 +09:00
Dean Herbert
0e4f4a6fde
Initial storage changes
2021-07-08 14:28:13 +09:00
ekrctb
663ffae42f
Fix hit object selection blueprint potential null reference
2021-07-08 14:19:00 +09:00
Dan Balasescu
d2722f1523
Merge branch 'master' into ruleset-shaders
2021-07-07 15:44:30 +09:00
PercyDan54
e1c646b9b2
Remove redundant arguments
2021-07-05 23:52:39 +08:00
Derrick Timmermans
216e52d6d0
Avoid using single letter variable names
2021-07-04 23:24:17 +02:00
Derrick Timmermans
32b068fbdc
Fix typo causing nested windows to be ignored
2021-07-04 21:50:58 +02:00
Henry Lin
6a0c5b54c3
Fix obsolete message in Mod.Ranked
2021-07-02 15:55:25 +08:00
Dean Herbert
0396a03bbc
Rename Mod.Ranked
back to avoid breaking ruleset API
2021-07-02 12:50:58 +09:00
Dean Herbert
f7aba7360a
Merge pull request #13654 from Henry-YSLin/fix-invisible-number-box
...
Refactor `SeedSettingsControl` and `SettingsNumberBox`
2021-06-28 16:07:30 +09:00
Dean Herbert
f939e2603a
Merge branch 'master' into localisable-tooltips
2021-06-28 15:29:42 +09:00
Henry Lin
0cceef8da5
Moved the string
to int?
conversion logic into SettingsNumberBox
2021-06-28 11:00:07 +08:00
Dean Herbert
a1e8cc5444
Merge pull request #13669 from Naxesss/hitsound-checks
...
Add hitsound checks
2021-06-28 03:13:43 +09:00
Naxess
9f9e96ce9e
Add check for spanDuration
<= 0 prior to division
2021-06-27 15:40:09 +02:00
Naxess
a4a5325b73
Improve acceptable difference for repeat edges
...
Likelihood that `spanDuration` is greater than E+7 is quite low in any realistic case, so this should work fine.
2021-06-27 15:39:31 +02:00
Naxess
4cfa0ae5ec
Improve precision for repeat edges
2021-06-27 03:26:35 +02:00
Naxess
2cd7eda3c4
Add "or equal to" to volume threshold xmldocs
2021-06-27 02:30:12 +02:00
Naxess
0c0fd291d9
Order hitobjects by endtime
2021-06-27 01:25:03 +02:00
Naxess
4796b1b208
Use local variables for hasHitsound
& couldHaveHitsound
2021-06-27 00:04:30 +02:00
Naxess
5bc08ebadb
Rename hasHitsounds
-> mapHasHitsounds
2021-06-26 23:49:25 +02:00
Naxess
d29e6f4695
Add negligible template to PossibleTemplates
2021-06-26 23:49:06 +02:00
Naxess
1913084342
Use HitSampleInfo.AllAdditions
instead of new list
2021-06-26 23:48:28 +02:00
Naxess
f78cc9397e
Factor out edge type logic
2021-06-26 20:45:31 +02:00
Naxess
51147405c5
Make || and && priority explicit
2021-06-26 20:44:39 +02:00
Naxess
4b436b774d
Add few hitsounds check
2021-06-26 19:20:46 +02:00
Naxess
d8117fa730
Add muted objects check
2021-06-26 19:20:34 +02:00
Henry Lin
3b822cd5cf
Refactor SeedSettingsControl
and related controls
2021-06-26 11:19:14 +08:00
Bartłomiej Dach
50c27d2635
Update usages of IHasTooltip
in line with framework localisation changes
2021-06-25 19:10:04 +02:00
Henry Lin
31c786e1c3
Use SettingsNumberBox.NumberBox
instead of OsuNumberBox
2021-06-25 09:51:34 +08:00
ekrctb
e1b2c63e09
Add IApplicableToBeatmapProcessor
mod interface
2021-06-23 14:46:30 +09:00
Dean Herbert
a1da9c5ee3
Merge pull request #13626 from Henry-YSLin/IHasSeed-interface
...
Extract `SeedSettingsControl` to `IHasSeed` interface
2021-06-23 14:10:34 +09:00
Dean Herbert
54084f8a9c
Move SeedSettingsControl
to own file
2021-06-23 13:40:05 +09:00
smoogipoo
6fd020d91d
Remove unnecessary public accessibility
...
All interface members are implicitly public.
2021-06-23 12:00:57 +09:00
Salman Ahmed
2b1f461d79
Pass empty resource store for FallbackShaderManager
base constructor
2021-06-22 12:36:45 +03:00
Dean Herbert
1b0aadcc6f
Merge branch 'master' into transformers-per-skin
2021-06-22 16:03:15 +09:00
Henry Lin
fc224c53f4
Remove extra usings
2021-06-22 14:49:37 +08:00
Henry Lin
3745101f32
Extract seed setting control to IHasSeed
2021-06-22 14:43:41 +08:00
Salman Ahmed
67f0344c0c
Add support for loading shaders from ruleset resources
2021-06-20 23:07:44 +03:00
Dean Herbert
3f336d88ec
Merge pull request #11461 from peppy/realm-key-binding-store
...
Add initial realm database implementation with KeyBindingStore migration
2021-06-19 02:49:41 +09:00
Dean Herbert
89c27dcb10
Merge pull request #13517 from ekrctb/initial-entry
...
Allow setting `Entry` of `PoolableDrawableWithLifetime` (including `DrawableHitObject`)
2021-06-19 00:03:41 +09:00
Dean Herbert
2dadc9d686
Remove unused using statement
2021-06-18 19:39:01 +09:00
Dean Herbert
78c5ccda60
Fix renaming a ruleset DLL causing a startup crash
2021-06-18 19:32:40 +09:00
smoogipoo
42c5a962fb
Add xmldoc remark
2021-06-18 19:27:10 +09:00
smoogipoo
36d51d5117
Don't set entry immediately
2021-06-18 19:23:37 +09:00
smoogipoo
36d2199a02
Add exception on Apply() while loading
2021-06-18 19:20:57 +09:00
Dean Herbert
c369beeaaa
Merge branch 'master' into realm-key-binding-store
2021-06-18 16:52:35 +09:00
Dan Balasescu
2cd72a92e8
Merge pull request #13499 from ekrctb/fix-mania-editor-crash
...
Rewrite mania selection blueprint to use only `HitObject` (no `DrawableHitObject`) for layout
2021-06-18 15:10:28 +09:00
Dan Balasescu
cdc1c60fab
Merge branch 'master' into fix-mania-editor-crash
2021-06-18 13:49:25 +09:00
smoogipoo
97cd1217a4
Move IApplicableToDrawableHitObjects to its own file
2021-06-18 13:06:13 +09:00
Dan Balasescu
6cec1145e3
Merge pull request #13523 from ekrctb/applicable-to-dho
...
Reduce boilerplate of `IApplicableToDrawableHitObjects` by taking a single DHO instead of an enumerable
2021-06-17 19:59:06 +09:00
Dean Herbert
9495f87f04
Remove redundant NotNull
attributes in nullable
classes
2021-06-17 16:07:32 +09:00
ekrctb
e7954ecb60
Use property instead of backing field consistently
2021-06-17 10:31:20 +09:00
ekrctb
9dcd0bf311
Remove IPlayfieldProvider
by caching Playfield
2021-06-17 10:15:24 +09:00
Bartłomiej Dach
418dbf3f3e
Merge branch 'master' into fix-mania-editor-crash
2021-06-16 18:26:33 +02:00
ekrctb
b6a9fa9999
Merge branch 'master' into applicable-to-dho
2021-06-16 22:04:10 +09:00
Dan Balasescu
6613301588
Merge branch 'master' into refactor-scrolling-hoc-2
2021-06-16 19:20:11 +09:00
ekrctb
c59a3ce83f
Obsolete plural IApplicableToDrawableHitObjects
2021-06-16 18:52:16 +09:00
ekrctb
af80418ee8
Implement IApplicableToDrawableHitObject
for mods
...
A breaking change in `ModWithVisibilityAdjustment` if the method was overriden.
2021-06-16 18:52:01 +09:00
ekrctb
67d8e0059f
Use singular IApplicableToDrawableHitObject
for consumers
2021-06-16 18:47:04 +09:00
ekrctb
e69bb67afe
Add IApplicableToDrawableHitObject
that is taking a single DHO
...
Less cumbersome to implement than old version taking an enumerable. The implementation was always using `foreach` for the enumerable.
The new interface is not used yet.
2021-06-16 18:42:28 +09:00
Dean Herbert
4b45d8318e
Merge branch 'master' into transformers-per-skin
2021-06-16 16:37:28 +09:00
ekrctb
117e94bc94
Allow setting Entry
of PoolableDrawableWithLifetime
...
It is more convenient than using the constructor because the only limited kind of expression is allowed in a base constructor call.
Also, the object initializer syntax can be used.
2021-06-16 16:00:08 +09:00
Dean Herbert
66efc3c4de
Merge branch 'master' into realm-key-binding-store
2021-06-16 13:23:13 +09:00
emu1337
be68950c30
refactoring
2021-06-16 03:34:46 +02:00
Dean Herbert
acc06ca398
Merge branch 'master' into realm-key-binding-store
2021-06-16 02:14:58 +09:00
Dan Balasescu
e9d4ee3c87
Merge branch 'master' into enhance-mod-settings-text-box-visibility
2021-06-15 16:09:55 +09:00
ekrctb
ef96ceb4ab
Introduce IPlayfieldProvider
2021-06-15 14:43:04 +09:00
ekrctb
bbf0022689
Use natural anchor for TimeAtPosition
and PositionAtTime
...
The natural anchor is the end of the scrolling direction (e.g. Bottom for Down scrolling).
2021-06-15 13:15:20 +09:00
Bartłomiej Dach
cb1e2e3d97
Improve xmldoc
2021-06-14 21:54:55 +02:00
ekrctb
660bf50dc7
Clarify multiple coordinate systems
...
- Fix wrong position is set for DHOs for down/right scrolling direction.
2021-06-14 13:13:27 +09:00
ekrctb
09f1cbde7e
Fix TimeAtPosition
doc comment
2021-06-14 13:13:27 +09:00
ekrctb
fdb09ef4d7
Simplify flipPositionIfRequired
using scrollLength
2021-06-14 13:13:27 +09:00
ekrctb
8cf4454780
Use Direction
enum instead of int
...
The property is named `scrollingAxis` to distinguish from `direction`, which is of `ScrollingDirection` type (unfortunate name crash).
2021-06-14 13:13:27 +09:00
Pasi4K5
ef9cb2c958
Rename nested classes
2021-06-12 18:37:31 +02:00
Pasi4K5
b79d57b68c
Move OsuSettingsNumberBox
into SettingsNumberBox
2021-06-12 17:57:40 +02:00
Pasi4K5
c728f673d6
Rename classes
2021-06-12 17:37:01 +02:00
Pasi4K5
29f3880415
Move classes into SettingsTextBox
2021-06-12 17:34:02 +02:00
Pasi4K5
fe39a47797
Add OsuModSettingsTextBox
and OsuModSettingsNumberBox
2021-06-12 00:34:53 +02:00
Dan Balasescu
3389c4830b
Merge branch 'master' into refactor-scrolling-hoc-1
2021-06-11 20:35:19 +09:00
ekrctb
af3f253b21
Refactor ScrollingHitObjectContainer
and expose more useful methods
2021-06-11 18:28:48 +09:00
Bartłomiej Dach
296761ade5
Add missing CurrentSkin
null check in DHO disposal
2021-06-11 09:18:58 +02:00
Dean Herbert
562cfe8703
Fix filename not matching type rename
2021-06-11 14:34:18 +09:00
Dean Herbert
bc3b7233ab
Show osu!taiko centre/rim colouring in editor timeline
...
Closes #13443 .
2021-06-11 14:17:30 +09:00
Salman Ahmed
09a2d008d2
Refrain from attempting to transform null skins
2021-06-10 16:36:45 +03:00
Dan Balasescu
35d5632355
Merge pull request #13378 from Syriiin/diffcalc/refactor/auto-properties
...
Refactor DifficultyAttributes to use auto properties over public fields
2021-06-10 18:42:11 +09:00
Salman Ahmed
dde84e5cbd
Merge branch 'master' into transformers-per-skin
2021-06-10 11:58:52 +03:00
Dan Balasescu
a44fd887ee
Merge branch 'master' into no-unranked-display
2021-06-10 17:09:46 +09:00
Dean Herbert
9044a20120
Merge branch 'master' into realm-key-binding-store
2021-06-10 13:58:08 +09:00
Salman Ahmed
cf40282f1f
Convert LegacySkinTransformer
s to accept raw ISkin
s rather than a full ISkinSource
2021-06-09 22:49:31 +03:00
PercyDan54
510fc93d76
Merge branch 'master' of https://github.com/ppy/osu into auto-restart
2021-06-09 18:05:47 +08:00
Dean Herbert
b8df3fff9e
Fix incorrect method referenced in xmldco
...
Co-authored-by: ekrctb <32995012+ekrctb@users.noreply.github.com>
2021-06-09 14:20:01 +09:00
Dean Herbert
d0e9f8ef90
Replace and obsolete Ranked
flag with IsUserPlayable
2021-06-09 14:17:03 +09:00
Dean Herbert
62199a38a8
Add one missing obsoletion removal date
2021-06-09 14:11:50 +09:00
Dean Herbert
f41e34ae2c
Remove more obsoleted members
2021-06-09 14:10:48 +09:00
Dean Herbert
a87226ab10
Remove obsoleted DrawableJudgement
methods
...
Undated, but change was made on 2020-11-18.
2021-06-09 14:09:23 +09:00
Samuel Cattini-Schultz
f1bef989b7
Refactor DifficultyAttributes to use auto properties over public fields
2021-06-08 19:43:59 +10:00
Dan Balasescu
57a38374db
Merge branch 'master' into fix-spectator-frame-conversion
2021-06-04 21:17:40 +09:00
Dan Balasescu
b283c48abb
Merge branch 'master' into factor-out-hoc
2021-06-04 15:31:35 +09:00
Dean Herbert
23096c58bb
Merge branch 'master' into fix-spectator-frame-conversion
2021-06-04 15:06:15 +09:00
Dan Balasescu
50c60c791f
Merge pull request #13322 from Pasi4K5/seed-for-all-random-mods
...
Add seed option for all random mods
2021-06-04 11:26:13 +09:00
Dean Herbert
d444fed46f
Detach gameplay score from replay recorder before importing
...
Closes #13320 .
2021-06-04 02:00:02 +09:00
Pasi4K5
7a4fc9ffc8
Move seed to base class
2021-06-03 18:16:11 +02:00
smoogipoo
e887807ae7
Apply review fixes
2021-06-03 18:32:05 +09:00
smoogipoo
c3280083a2
Merge branch 'master' into fix-spectator-frame-conversion
2021-06-03 17:42:01 +09:00
Dan Balasescu
15b43beef1
Merge pull request #11857 from Syriiin/diffcalc/refactor/catch-clockrate-effects
...
Refactor catch Movement skill to not require explicit clockrate usage
2021-06-03 17:29:27 +09:00
smoogipoo
420df124b5
Add framestable-bypassing seek for spectator
2021-06-03 17:27:21 +09:00
Samuel Cattini-Schultz
f51413ead9
Refactor to pass clockrate in constructor rather than deriving from mods
2021-06-03 16:09:42 +10:00
ekrctb
b321b20e9d
Remove OnAdd
/OnRemove
of HitObjectContainer
...
Instead, override `AddDrawable`/`RemoveDrawable`.
2021-06-03 15:00:16 +09:00
ekrctb
0ce7baa3f3
Make HitObjectContainer.Clear
non-virtual
...
It just call `Remove` for all entries.
2021-06-03 15:00:16 +09:00
ekrctb
2c9e5b6c7e
Replace EntryCrossedBoundary
with more useful RemoveRewoundEntry
property
...
It can be used for dynamically added entries.
2021-06-03 15:00:16 +09:00
ekrctb
fe2934db1d
Factor out lifetime management logic of HitObjectContainer
2021-06-03 14:57:28 +09:00
Dan Balasescu
44b1102241
Merge branch 'master' into autoplay-pause-support
2021-06-03 13:26:00 +09:00
smoogipoo
d3d8941ec8
Make method internal
2021-06-02 11:11:41 +09:00
smoogipoo
8ee2b3a2d2
Merge branch 'master' into fix-scrolling-lifetime
2021-06-02 11:08:28 +09:00
Dan Balasescu
ac83450791
Merge pull request #13256 from ekrctb/update-lifetime-2
...
Update DHO lifetime on entry lifetime change
2021-06-02 11:07:54 +09:00
Dean Herbert
8a76d97b63
Remove replay logic from DrawableRuleset
(and implement in DrawableEditorRulesetWrapper
)
2021-06-02 11:06:30 +09:00
Dean Herbert
f14c0eae99
Fix editor no longer creating autoplay frames
2021-06-01 17:28:41 +09:00
ekrctb
40949f6c1b
Simplify lifetime setter
...
Setting entry lifetime will cause `LifetimeChanged` event and `base.LifetimeStart`/`End` will be modified in the callback.
2021-06-01 14:46:43 +09:00
ekrctb
0f381f7758
Fix wrong code
2021-06-01 14:38:02 +09:00
ekrctb
86020adf64
Revert invalid code transformation
2021-06-01 14:28:23 +09:00
Dean Herbert
14570b6fb1
Merge branch 'master' into autoplay-pause-support
2021-06-01 14:19:21 +09:00
ekrctb
d5714e63b9
Apply code styling suggestions
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-06-01 13:17:30 +09:00
ekrctb
86d1ba7ef2
Remove unused IScrollingHitObject
interface
2021-05-31 23:17:26 +09:00
ekrctb
ff04942295
Change timing of HitObjectContainer.OnAdd
/OnRemove
...
Now, `OnAdd` is always invoked after the DHO is added to the container.
This change is required by `ScrollingHitObjectContainer` to compute origin adjusted lifetime when origin position is relative to the parent drawable size.
2021-05-31 20:56:25 +09:00
ekrctb
948a14a627
Merge branch 'simplify-shoc' into fix-scrolling-lifetime
...
# Conflicts:
# osu.Game/Rulesets/UI/Scrolling/ScrollingHitObjectContainer.cs
2021-05-31 16:50:47 +09:00
ekrctb
86d1225aad
Reset lifetime to initial lifetime when layout is invalidated
2021-05-31 16:47:10 +09:00
ekrctb
6d96846776
Remove scrollLength
caching field
...
It was not clear when the field is updated.
2021-05-31 16:28:02 +09:00
ekrctb
742c5b442b
Remove delay of lifetime update
...
The scheduling is no longer necessary because `OnAdd` is changed to not invoked immediately for non-pooled DHOs.
2021-05-31 16:24:13 +09:00
ekrctb
3cedc0824d
Don't add nested hit objects to the sets
...
Only top-level hit objects are checked for layout computation caching.
Also, lifetime of nested hit objects are not managed by the HitObjectContainer.
2021-05-31 16:20:35 +09:00
ekrctb
56a0a24cba
Make SetInitialLifetime public
2021-05-31 15:33:28 +09:00
ekrctb
e25cca6fbe
Update drawable lifetime on entry lifetime change
2021-05-31 14:45:29 +09:00
Dan Balasescu
8c6277f0d8
Merge pull request #13235 from ekrctb/update-lifetime-1
...
Update hit object lifetime on `HitObject.DefaultsApplied`
2021-05-31 14:44:40 +09:00
ekrctb
0c101d2859
Apply comment rewording suggestion
...
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-05-31 13:41:49 +09:00
ekrctb
abb77b95b4
Fix comment grammar
2021-05-30 13:06:28 +09:00
ekrctb
265dfe5416
Add test case of DHO setting LifetimeStart in OnApply
2021-05-28 21:51:48 +09:00
ekrctb
43bf734816
Reset lifetime on HitObject.DefaultsApplied
2021-05-28 21:35:26 +09:00
ekrctb
1d5e8f4a91
Fix wrong/misleading comment of InitialLifetimeOffset
2021-05-28 17:19:36 +09:00
Dean Herbert
122bb05aa8
Add a mention that OnApply/OnFree
is performed after ApplyDefaults
2021-05-27 15:20:35 +09:00
Dean Herbert
a3c78674a1
Add new interface for autoplay mods
2021-05-25 18:09:24 +09:00
Dean Herbert
a249bb9e69
Merge branch 'master' into realm-key-binding-store
2021-05-25 17:18:33 +09:00
Dan Balasescu
774611f142
Merge pull request #12933 from peppy/fix-scroll-wheel-gameplay-bindings
...
Disallow using scroll wheel for gameplay bindings
2021-05-25 16:04:18 +09:00
Dean Herbert
57640810b5
Ignore certain banned InputKey
s for gameplay purposes
2021-05-24 18:40:40 +09:00
Dan Balasescu
7a343c1576
Merge pull request #12915 from peppy/regenerate-replay-less
...
Ensure `RegenerateAutoplay` is only run once per frame
2021-05-24 17:25:42 +09:00
smoogipoo
7494ddeef4
Fix DHOs not receiving initial skin changed events
2021-05-24 14:07:40 +09:00
Dean Herbert
bbfd7ea23f
Ensure RegenerateAutoplay
is only run once per frame
2021-05-23 21:20:08 +09:00
Dan Balasescu
5ad41ded94
Merge branch 'master' into fix-dho-lmc
2021-05-21 19:11:57 +09:00
smoogipoo
6beeb7f7c4
Rename SpectatorStreamingClient -> SpectatorClient
2021-05-20 15:55:07 +09:00
ekrctb
0489ae719d
Don't couple PoolableDrawableWithLifetime
lifetime with its entry
...
It turns out the incompatibility with `LifetimeManagementContainer` causes more issues than anticipated.
2021-05-20 14:56:15 +09:00
Dean Herbert
6c4709e7b4
Fix PlacementBlueprint
using the wrong beatmap when applying defaults
...
Closes #12855 .
2021-05-19 18:34:07 +09:00
Dan Balasescu
ef81bdf63f
Merge branch 'master' into always-use-lifetime-entry
2021-05-18 20:10:12 +09:00
ekrctb
84a1a86c63
Revert "Use entry to calculate lifetime in ScrollingHOC"
...
This reverts commit 632bb70e
2021-05-18 19:55:31 +09:00
ekrctb
2c65b8fa93
Revert "Fix uninitialized scrollLength value is used"
...
This reverts commit 73dfb04d
2021-05-18 19:55:25 +09:00
Dean Herbert
a96603f025
Merge pull request #12782 from smoogipoo/rework-hitobject-blueprints
...
Rename hitobject blueprints and tie them to HitObjects
2021-05-18 16:30:58 +09:00
smoogipoo
882d54a8f8
Remove now unnecessary Apply() method
2021-05-18 14:26:26 +09:00
smoogipoo
e621cfc4ea
Add Apply() method for applying new DHOs
2021-05-18 14:14:10 +09:00
smoogipoo
f1f3606fd0
Fix unresolved xmldocs
2021-05-18 13:11:58 +09:00
Dan Balasescu
9d423245d8
Fix up xmldocs
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-05-18 13:02:23 +09:00
Dean Herbert
a32f1ef35a
Merge pull request #12811 from PercyDan54/hidden-code-cleanup
...
Remove obsolete methods in `ModHidden` and apply few touches
2021-05-16 22:07:45 +09:00
Dean Herbert
bdcb1a624e
Merge pull request #12759 from Naxesss/beatmap-verifier-context
...
Encapsulate check arguments in context object
2021-05-15 15:39:12 +09:00
PercyDan54
166974506e
Duplicate implementions
2021-05-15 11:55:50 +08:00
PercyDan54
6e5c4ed7c6
Revert "Remove empty override"
...
This reverts commit a86a4bab91
.
2021-05-15 11:45:14 +08:00
Bartłomiej Dach
628e7a71ed
Ignore possible nulls in Type.GetType()
calls
...
They're mostly used in extensibility scenarios, so everything happens in
runtime. There is no better resolution than to crash with a null
reference exception.
2021-05-15 00:09:34 +02:00
PercyDan54
a86a4bab91
Remove empty override
2021-05-14 21:55:32 +08:00
PercyDan54
67dfeeb1b7
Cleanup code in ModHidden
2021-05-14 21:29:13 +08:00
Dean Herbert
fcb226bd20
Add local variable for regular access to HitObjects
2021-05-14 16:23:45 +09:00
Naxess
a447f20095
Fix formatting of #nullable enable
2021-05-14 03:38:35 +02:00
Naxess
90e0b3374e
Add #nullable enable
...
Co-authored-by: Dean Herbert <pe@ppy.sh>
2021-05-14 03:34:50 +02:00
smoogipoo
ffb6135a1b
Rework hitobject blueprints to take in hitobject models
2021-05-13 19:53:32 +09:00
Naxess
19800f5f7f
Move IBeatmap
arg into context
2021-05-13 11:24:22 +02:00
Naxess
b37cb3bdbe
Change interpreted difficulty from bindable to regular value
...
There's no reason for why checks would need this to be bindable. A 1-directional binding is more appropriate.
2021-05-13 09:00:30 +02:00
Naxess
e7c7786db3
Merge branch 'master' into beatmap-verifier-context
2021-05-13 07:40:33 +02:00
Dean Herbert
5b71d8ca37
Merge pull request #12758 from Naxesss/verify-settings-ui
...
Add setting UI components to the verify screen
2021-05-13 14:35:35 +09:00
Bartłomiej Dach
1b579dd838
Extract invariant instantiation info extension method
2021-05-12 23:23:51 +02:00
Naxess
b7bc42e0d3
Rename "playableBeatmap" check arg to "beatmap"
...
The working beatmap is now in the context, so it's easier to distinguish beatmap type, hence no need for this prefix.
2021-05-12 02:34:16 +02:00
Naxess
64d96b06a6
Add interpreted difficulty info to BeatmapVerifierContext
...
Enables checks to make use of the difficulty level as shown in the settings UI.
2021-05-12 02:30:21 +02:00
Naxess
c13b93e6f1
Replace IWorkingBeatmap
arg with BeatmapVerifierContext
in checks
...
This simplifies passing of contextual information by enabling addition without needing to refactor lots of classes.
See next commit for example.
2021-05-12 02:29:18 +02:00
Naxess
75adec57eb
Remove negligible default hidden TODO
2021-05-12 01:31:16 +02:00
Dean Herbert
2ecd638f7f
Merge branch 'master' into skin-components-list
2021-05-10 18:13:10 +09:00
ekrctb
111b501ced
Revert accidental removal of UTF-8 BOM
2021-05-07 18:04:38 +09:00
ekrctb
207f7f1e56
Rename FramedAutoGenerator<T> -> AutoGenerator<T>
2021-05-07 00:31:12 +09:00
ekrctb
ea35b72436
Remove unused IAutoGenerator interface
2021-05-06 22:57:07 +09:00
ekrctb
9be36230f9
Introduce AutoGenerator subclass for frame based replay generation
2021-05-06 21:59:11 +09:00
Dean Herbert
aff32b0d19
Merge branch 'master' into skin-components-list
2021-05-06 14:17:33 +09:00
Salman Ahmed
cd6d070b4a
Consider "combo offsets" as legacy logic and separate from combo information
2021-05-05 07:43:08 +03:00
Salman Ahmed
eeeb001d62
Refactor combo colour retrieval logic to request skin lookups instead
2021-05-05 07:17:27 +03:00
ekrctb
aa42cf2fc0
Fix setting lifetime during KeepAlive is ignored
2021-05-04 16:56:48 +09:00
ekrctb
913fc8c3bc
Revert the change of not adding non-pooled DHO to HOC until alive
2021-05-04 16:44:48 +09:00
ekrctb
36438175a0
Throw an exception if try to modify lifetime of PoolableDrawableWithLifetime without lifetime
2021-05-04 16:04:58 +09:00
Salman Ahmed
943c497397
Return back removed using
2021-05-03 02:02:14 +03:00
Salman Ahmed
b2130fc600
Fix replay frames sort instability
2021-05-03 01:58:44 +03:00
Dean Herbert
a551958eeb
Move caching of IBeatmap
to base DrawableRuleset
2021-05-01 21:32:45 +09:00
Justus Franklin Tumacder
fdf8c12947
Replace BeatDivisorFinder with GetClosestBeatDivisor
2021-05-01 11:57:47 +08:00
Justus Franklin Tumacder
ecb053b0de
Merge branch 'master' of https://github.com/ppy/osu into justusft/mania-color-snap
2021-05-01 11:20:28 +08:00
Bartłomiej Dach
9cb55ca245
Merge branch 'master' into barrel-roll
2021-04-30 22:27:27 +02:00
Salman Ahmed
b145f46a0a
Merge branch 'master' into skin-components-list
2021-04-30 21:10:55 +03:00
Dan Balasescu
e6eea73b8b
Merge branch 'master' into basic-compose-checks
2021-04-30 23:41:46 +09:00
Dean Herbert
a1e64f4e3c
Use the existing toolbox design
2021-04-30 14:41:06 +09:00
Dean Herbert
e69ec91c07
Add xmldoc for CurrentRotation
2021-04-30 11:25:39 +09:00
Andrei Zavatski
7bf3498e2a
Calculate playfield scale locally
2021-04-30 02:49:19 +03:00
Andrei Zavatski
25e0fb1cf9
Refactor OsuModBarrelRoll to allow it's usage by other rulesets
2021-04-30 01:59:59 +03:00
Dean Herbert
9c62c90cfc
Refactor SelectionBlueprint
and MoveSelectionEvent
to work in screen-space coordinates
...
Until now, the implementation of the overrides in `SelectionBlueprint`
have been confusing to the point where I would just implement by
trial-and-error (or copying from an existing implementation). This was
due to a combination of using "object" space coordinates
(ie. the thing the `Blueprint` is operating on) and screen-space coordinates.
This change switches all event related coordinates to screen-space,
which is how we already handle rotation/scale operations. With the
introduction of other editor types where the related objects are
drawables, this also makes a lot more sense.
2021-04-29 16:10:42 +09:00
Dean Herbert
5b009c21bb
Merge branch 'master' into abstract-blueprint-handling
2021-04-29 16:10:22 +09:00
ekrctb
73dfb04df8
Fix uninitialized scrollLength value is used
2021-04-29 15:17:30 +09:00
ekrctb
632bb70e0f
Use entry to calculate lifetime in ScrollingHOC
...
DHOs cannot be used to calculate lifetime, it is not created before the entry became alive.
2021-04-29 15:04:32 +09:00
ekrctb
c83c804057
Expose lifetime entries from HOC
2021-04-29 14:42:41 +09:00
ekrctb
5aa522b1c2
Completely delegate DHO lifetime to Entry lifetime
...
A downside is lifetime update is not caught by LifetimeManagementContainer if used.
2021-04-29 14:38:01 +09:00
ekrctb
799d2a3300
Replace failed mania test (pooling not accounted) with a more robust test
...
Also fix null reference in Playfield
2021-04-29 14:38:01 +09:00
ekrctb
d262956146
Always use LifetimeEntry to manage hit objects in HitObjectContainer
...
Previously, non-pooled DHOs were immediately added as children of the HOC when Add is called. Also, non-pooled DHOs were always attached to the HOC as children.
New behavior is that non-pooled DHOs are only added after CheckChildLifetime, and only attached to the HOC while the DHOs are alive.
- LifetimeManagementContainer inheritance of HOC is removed, as it is now all DHOs are "unmanaged" (previously `AddInternal(false)`).
- The signature of `Clear` is changed, and it is now always not disposing the children immediately.
2021-04-29 14:38:01 +09:00
Dean Herbert
f3c7694eeb
Rename methods to match generally how these find-methods are named elsewhere
2021-04-28 16:57:52 +09:00
Dean Herbert
48d6c9ac4b
Move snap/divisor helper methods to inside ControlPointInfo
2021-04-28 16:47:30 +09:00
smoogipoo
61b7dc1e06
Fix bonus-only maps having 700K base score
2021-04-28 03:42:29 +09:00
Dan Balasescu
5fc731967b
Merge pull request #12592 from ekrctb/fix-entry-lifetime
...
Fix Setting DHO's lifetime doesn't update its entry lifetime
2021-04-28 01:38:19 +09:00
smoogipoo
1281993f1f
Fix bonus score not calculated from the correct statistics
2021-04-27 22:42:58 +09:00
Naxess
200352b750
Rename unsnap check templates
2021-04-27 13:56:05 +02:00
ekrctb
b87446a577
Simplify HitObjectLifetimeEntry logic a bit
2021-04-27 19:37:01 +09:00
Dean Herbert
2adc751e04
Merge pull request #12585 from LumpBloom7/Reset-DHO-Transforms-method
...
Add method to safely refresh DrawableHitObject transforms
2021-04-27 19:15:12 +09:00
Dean Herbert
7ec5ea1eb5
Remove hitobject terminology from base classes
2021-04-27 19:01:29 +09:00
Dean Herbert
dd3d8e5d03
Make SelectionHandler
abstract to ensure things get implemented
2021-04-27 19:01:29 +09:00
Dean Herbert
f2e56bd306
Refactor editor selection/blueprint components to be generic
2021-04-27 19:01:29 +09:00
Derrick Timmermans
3ea55314f2
Update osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs
...
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-04-27 11:29:16 +02:00
ekrctb
3899e500d3
Adopt framework change of LifetimeEntry
...
Override SetLifetimeStart/SetLifetimeEnd separately to track individual assignment. It is necessary to ensure real lifetime is not lost when lifetime is partially updated.
2021-04-27 17:54:18 +09:00
ekrctb
c9e6ca5378
Use now-public Entry.SetLifetime method
2021-04-27 15:25:05 +09:00
ekrctb
a2c0951d94
Use overriding instead of hiding in HitObjectLifetimeEntry
...
Hidden properties are used when the type is the base class. It caused issues when `DrawableHitObject` logic is factored out to `PoolableDrawableWithLifetime` because it is using the base `LifetimeEntry`, not `HitObjectLifetimeEntry`.
2021-04-27 15:23:33 +09:00
Dean Herbert
ec1c336b0a
Fix a couple of inspections
2021-04-27 13:23:14 +09:00
Naxess
7a6e9e5070
Change category of unsnap check to timing
...
Makes more sense, as this is typically the result of timing changes.
2021-04-27 02:32:57 +02:00
Naxess
9e49ecb573
Remove unused virtual
keywords
...
Added these in a previous iteration, where I had the mania variant inherit this class.
No longer necessary as `IHasColumn` was used to make this check more generic.
2021-04-27 02:23:06 +02:00
Naxess
a3c1b1fd52
Fix accessibility of areConcurrent
2021-04-27 01:24:38 +02:00
Naxess
ce258febf6
Rename CheckUnsnaps
-> CheckUnsnappedObjects
...
Will potentially have `CheckUnsnappedKiai` or similar later, so this is worth specifying.
Also consistent with `CheckConcurrentObjects`, which will likely have a `CheckConcurrentLines` later.
2021-04-26 20:32:44 +02:00
Naxess
b9e4f73f78
Add concurrent objects check to BeatmapVerifier
2021-04-26 20:28:59 +02:00
Naxess
a3570e18dd
Add concurrent objects check
...
Here we use `IHasColumn` to support rulesets with columns, and so I moved that interface out into `osu.Game` from `osu.Game.Rulesets.Mania`.
We also use the same threshold as the unsnap check to ensure that no problems slip through. Specifically where an object is simultaneously not concurrent and not unsnapped but still on the same tick.
2021-04-26 20:17:18 +02:00
Derrick Timmermans
08a232f7fa
Add method to safely refresh DrawableHitObject transforms
2021-04-26 20:08:40 +02:00
Naxess
9b9c473616
Remove redundant string formatting
2021-04-26 16:17:38 +02:00
Naxess
7b9ed924be
Rename snapping methods
...
Further separates them from `IBeatSnapProvider`'s `SnapTime`, and groups them together more, to prevent confusion between the two interfaces.
Also changes the xmldoc of the reference time to that of `IBeatSnapProvider` for consistency.
2021-04-26 16:07:30 +02:00
Dan Balasescu
6d2a5b614c
Merge branch 'master' into drawable-object
2021-04-26 18:33:44 +09:00
smoogipoo
fd5fbaf0db
Rename ruleset wrapper class
2021-04-26 15:37:42 +09:00
Naxess
049e42fa85
Move snapping responsibility to IBeatmap
...
Seems `EditorBeatmap` already implements a different kind of `SnapTime` from `IBeatSnapProvider`, so method names here aren't great.
This is very similar to what https://github.com/ppy/osu/pull/12558 is doing, so may need to do some duplicate resolution later, especially surrounding `ClosestBeatSnapDivisor`.
Worth noting that this change makes 1/7, 1/5, etc unsupported for now, as we now rely on `BindableBeatDivisor.VALID_DIVISORS`.
2021-04-26 05:07:24 +02:00
ekrctb
6561a7c7d6
Rename DrawableObject -> PoolableDrawableWithLifetime
2021-04-26 12:06:21 +09:00
ekrctb
20e3cadd30
freeIfInUse -> free, and add comments
2021-04-26 12:04:59 +09:00
ekrctb
e6474e6ff7
Remove redundant statement (lifetime is set in base)
2021-04-26 11:47:38 +09:00
Justus Franklin Tumacder
8bb1fcd39b
Add tests for BeatDivisorFinder
2021-04-26 07:07:32 +08:00
Bartłomiej Dach
33a5c156a1
Use existing snap list from BindableBeatDivisor
2021-04-25 17:52:11 +02:00
Bartłomiej Dach
e14255f395
Rename {Snap -> BeatDivisor}Finder
2021-04-25 17:44:26 +02:00
Naxess
6fd77e536d
Add unsnap check
2021-04-25 05:34:54 +02:00
Justus Franklin Tumacder
211bff6a8f
Fix cake errors
2021-04-25 09:21:25 +08:00
Justus Franklin Tumacder
1f48378ce7
Add xmldoc to SnapFinder
2021-04-25 08:53:45 +08:00
Justus Franklin Tumacder
e0ca44c908
Move SnapFinder from mania ruleset to osu.Game
2021-04-25 07:35:53 +08:00
Dan Balasescu
739d83da2a
Merge pull request #12515 from frenzibyte/legacy-scores-classic-mod
...
Apply "classic" mod to all legacy scores
2021-04-22 19:52:09 +09:00
smoogipoo
d4d78f7434
Merge branch 'master' into legacy-scores-classic-mod
2021-04-22 18:44:20 +09:00
Dean Herbert
9a7bf8109f
Allow certain mouse input to pass through PlacementBlueprints
to the selection logic
2021-04-22 15:44:12 +09:00
ekrctb
b877a29737
Factor out pooling and lifetime management logic of DHO to a base class
2021-04-21 17:37:42 +09:00
ekrctb
bbf2ec369b
Remove SkinReloadableDrawable inheritance from DHO
2021-04-21 17:34:57 +09:00
Dan Balasescu
cf55383fff
Merge pull request #12486 from ekrctb/unmanaged-hit-object-entry
...
Associate DrawableHitObject with HitObjectLifetimeEntry rather than HitObject
2021-04-21 17:08:21 +09:00
Salman Ahmed
e90d791754
Add base "classic" mod
2021-04-21 09:14:19 +03:00
ekrctb
3fbeadf318
Deprecate old overload of Apply
2021-04-21 14:32:37 +09:00
ekrctb
73d3da1687
Fix wrong InitialLifetimeOffset is used for a non-pooled DHO.
...
HitObjectLifetimeEntry's InitialLifetimeOffset is different from DrawableHitObject's InitialLifetimeOffset.
2021-04-21 11:32:01 +09:00
ekrctb
44ff08cce4
Revert "Fix wrong InitialLifetimeOffset is used for a non-pooled DHO."
...
This reverts commit 67fcfd9d
2021-04-21 10:02:50 +09:00
ekrctb
67fcfd9dbc
Fix wrong InitialLifetimeOffset is used for a non-pooled DHO.
...
HitObjectLifetimeEntry's InitialLifetimeOffset is different from DrawableHitObject's InitialLifetimeOffset.
2021-04-21 09:48:16 +09:00
ekrctb
e80c3c317a
Rename UnmanagedHitObjectEntry -> SyntheticHitObjectEntry
...
"Unmanaged" was confusing because its lifetime is still managed by the HitObjectContainer.
2021-04-21 09:23:23 +09:00
ekrctb
c6ee4e900e
Ensure a non-null hitobject entry has a non-null Result
2021-04-20 15:18:36 +09:00
ekrctb
8a8b9084ef
Make single-argument overloead of DHO.Apply public
2021-04-20 10:11:36 +09:00
Naxess
0e6b66f457
Merge branch 'master' into bg-audio-quality-checks
2021-04-20 02:36:13 +02:00
ekrctb
1bc63a4c61
Now, DHO.lifetimeEntry can be non-null even it is not fully applied
2021-04-20 09:22:16 +09:00
Naxess
4510e795e1
Fix category of audio quality check
2021-04-20 02:13:26 +02:00
ekrctb
c1b4aaaa03
Add doc comment
2021-04-20 08:38:02 +09:00
Naxess
c633f15565
Add audio quality check
2021-04-20 01:36:03 +02:00
Naxess
40ae856dfc
Show 2 decimals for background filesize
2021-04-20 01:34:05 +02:00
Naxess
14c626ffcb
Use the playable beatmap for file presence checks
2021-04-20 01:33:19 +02:00
Naxess
8656176ab8
Add the playable beatmap as check argument
...
This is different from the working beatmap's `.Beatmap` property in that it is mutated by the ruleset/editor.
So hit objects, for example, are actually of type `Slider` and such instead of the legacy `ConvertSlider`.
This should be preferred over `workingBeatmap.Beatmap`.
2021-04-20 01:31:51 +02:00
Dean Herbert
fc41ad65f8
Merge pull request #12447 from smoogipoo/fix-non-60fps-recording
...
Record every 60fps interval
2021-04-19 23:26:58 +09:00
ekrctb
2c487ddb70
Create synthetic LifetimeEntry for a DHO when not supplied
...
Now, a DHO is always associated with a HitObjectLifetimeEntry while used.
Result is always stored in the entry, and not in the DHO.
2021-04-19 21:54:19 +09:00