Salman Ahmed
fd7a6b3a7c
Finish transforms on controls load complete
2021-05-04 06:37:20 +03:00
Dean Herbert
ca4b860920
Move BindValueChanged
call to LoadComplete
2021-05-03 20:11:24 +09:00
Dean Herbert
b28e1569ca
Remove no-longer-relevant matching comment
2021-05-03 20:09:50 +09:00
Salman Ahmed
840c22a3b1
Add back mis-removed fade transform
2021-05-03 12:16:40 +03:00
Dean Herbert
4f8240f19a
Merge branch 'master' into corner-rotation-controls
2021-05-03 18:02:23 +09:00
Dean Herbert
625890381f
Update ComboCounter
components to use DI to attach data source
2021-05-03 17:43:00 +09:00
Dean Herbert
fdd0713988
Merge branch 'fix-selection-handler-visibility' into skin-bindables
2021-05-03 17:40:03 +09:00
Dean Herbert
3268a75f05
Remove intermediate container to fix tests
2021-05-03 17:35:56 +09:00
Dean Herbert
839ac968a9
Fix tooltips displaying for hidden SelectionHandler
content
2021-05-03 17:28:24 +09:00
Dean Herbert
4cfa858dc4
Fix tooltips displaying for hidden SelectionHandler
content
2021-05-03 15:37:15 +09:00
Dean Herbert
01984de9c7
Use existing GetStateFromSelection
helper function
2021-05-03 15:13:32 +09:00
Dean Herbert
54abf8f6f6
Vertically centre leaderboard for now
2021-05-03 14:48:04 +09:00
Dean Herbert
b1a19b6dd6
Add xmldoc for PlayerIsolationContainer
2021-05-03 14:41:55 +09:00
Dean Herbert
2aa21e2aff
Adjust documentation in CatchUpSyncManager
2021-05-03 14:37:11 +09:00
Dean Herbert
8c9cfb6301
Remove unsafe access to Composer.HitObjects
2021-05-03 14:28:35 +09:00
Dean Herbert
c065092e72
Fix weird access to userIds in MultiplayerSpectatorScreen
2021-05-03 14:25:52 +09:00
Dean Herbert
dc5ee31d94
Use switch for screen construction
2021-05-03 14:04:20 +09:00
Dean Herbert
66ae6e58d1
Reword comment regarding LoadRequested special case to be easier to understand context
2021-05-03 14:01:10 +09:00
Dean Herbert
6da4105da6
Remove Sync namespace (feels unnecessary)
2021-05-03 13:38:53 +09:00
Dean Herbert
e0c129ca85
Merge branch 'master' into multiplayer-spectator-screen
2021-05-03 13:08:14 +09:00
Salman Ahmed
b83aa0bd76
Avoid LINQ in update
2021-05-02 06:21:14 +03:00
Salman Ahmed
0aa17e7c95
Rewrite selection box computation logic with RectangleF
's helper methods
2021-05-02 02:51:06 +03:00
Salman Ahmed
07fe99025f
Use bounding box of blueprint for computing selection box area
2021-05-02 02:36:40 +03:00
Bartłomiej Dach
eef135f8dc
Merge branch 'master' into remove-unused-triangles
2021-04-30 21:51:23 +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
e4f895b490
Fix editor buttons inheriting from TriangleButton
when they have no need to
2021-04-30 14:48:37 +09:00
Dean Herbert
8b82a07914
Move skin-related interfaces out of HUD namespace
2021-04-30 13:10:42 +09:00
Dean Herbert
5585a7d438
Add basic interfaces for skinnable target containers
2021-04-30 13:10:42 +09:00
Dean Herbert
6442fb819f
Split out component from test scene and fix SongProgress
2021-04-30 13:10:42 +09:00
Dean Herbert
434e63d629
Add skin customisation support to song progress display
2021-04-29 16:12:15 +09:00
Dean Herbert
fd587a82ff
Replace abstract class with interface, attached to the actual components (not skinnable wrapper)
2021-04-29 16:12:15 +09:00
Dean Herbert
defa350aa7
Set defaults on SkinnableHUDComponent to cancel out relative size default
...
Specifying locally on each HUD component looks to make more sense.
2021-04-29 16:12:15 +09:00
Dean Herbert
2540d6029c
Use AutoSize for SkinnableHudComponents
2021-04-29 16:12:15 +09:00
Dean Herbert
59339aa4fd
Add support for x/y position and scale back in
2021-04-29 16:12:15 +09:00
Dean Herbert
1cb8fc9a24
Extract editor classes out of test namespace and add anchor support
2021-04-29 16:12:15 +09:00
Dean Herbert
74fb7cd180
Extract storable attributes to bindables
2021-04-29 16:12:15 +09:00
Dean Herbert
fca173225a
Refactor editor selection/blueprint components to be generic
2021-04-29 16:12:14 +09:00
Dean Herbert
2d17219c8f
Setup basic test and classes for scale adjustment
2021-04-29 16:12:14 +09: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
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
Dean Herbert
e0906daebf
Change one remaining instance of incorrect terminology in xmldoc
2021-04-28 13:49:41 +09:00
Dean Herbert
4c9e94da2b
Move context menu logic to base class
2021-04-28 13:43:16 +09:00
Dean Herbert
532ec40395
Remove unnecessary newline
2021-04-28 12:04:48 +09:00
Dean Herbert
43772f4303
Remove duplicated call to initially select blueprint
2021-04-28 12:03:41 +09:00
Dean Herbert
e4f2e0131c
Rename AllowDeselection
to better match use case
2021-04-28 12:02:55 +09:00
Dean Herbert
a9a5809e94
Fix incorrect xmldoc in MoveSelectionEvent
2021-04-28 11:46:52 +09:00
Dean Herbert
d0be8f9fb3
Remove one more out-of-date comment
2021-04-28 11:45:36 +09:00
Dean Herbert
bc455005a5
Fix incorrect coordinate space mention in xmldoc
2021-04-28 11:44:50 +09:00
Dean Herbert
61d4eb1777
Remove unnecessary and out-of-place xmldoc
2021-04-28 11:44:19 +09:00
Dean Herbert
aa1cb65eaa
Rename region to be more inclusive
2021-04-28 11:42:22 +09:00
Dean Herbert
42255f8d33
Rename and xmldoc selection completed method
2021-04-27 19:01:29 +09:00
Dean Herbert
7ec5ea1eb5
Remove hitobject terminology from base classes
2021-04-27 19:01:29 +09:00
Dean Herbert
ff06a27a12
Revert changes to OnBlueprint
methods and handle select-on-addition locally
2021-04-27 19:01:29 +09:00
Dean Herbert
f97b14a20a
Fix binding direction of selected items
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
32416e4e31
Move model selection handling to base SelectionHandler
class
2021-04-27 19:01:29 +09:00
Dean Herbert
eac139ca0e
Allow BlueprintContainer to perform movement without an ISnapProvider
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
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
smoogipoo
630a6dc46a
Fix missing dependency
2021-04-26 22:23:44 +09:00
smoogipoo
ed93e26e52
Use single method for starting/restarting spectator screen
2021-04-26 21:56:15 +09:00
smoogipoo
7e11d520d5
Remove finished players from multi spectator screen
2021-04-26 21:25:46 +09:00
smoogipoo
94d0b06493
Expose mute adjustment instead
2021-04-26 19:01:30 +09:00
smoogipoo
d7618b63fa
Fix test failure
2021-04-26 17:35:13 +09:00
smoogipoo
6626e70c95
Pass in master clock instead of slave clock
2021-04-26 17:30:27 +09:00
smoogipoo
5b4cb71cc7
Change terminology from "slave" to "player clock"
2021-04-26 17:19:44 +09:00
Dean Herbert
aa99c192d0
Fix type in inline comment
2021-04-26 16:21:12 +09:00
Dean Herbert
3b876a43c2
Merge branch 'master' into multiplayer-spectator-screen
2021-04-26 14:12:35 +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
Salman Ahmed
485da47d89
Revert "Inherit VisibilityContainer
and make duration constant protected"
...
This reverts commit c58ef4230d
. Uhh, how did I push this..
2021-04-26 01:41:42 +03:00
Salman Ahmed
b252485e1a
Remove protected expose of HandlingMouse
setter
...
Regardless of `OnDragEnd()`, `OnMouseUp()` will still be called resetting the value of that state back.
2021-04-25 20:13:23 +03:00
Salman Ahmed
7390a12e4b
SelectionBoxDragHandleDisplay -> SelectionBoxDragHandleContainer
2021-04-25 20:03:15 +03:00
Salman Ahmed
c58ef4230d
Inherit VisibilityContainer
and make duration constant protected
2021-04-25 20:03:15 +03:00
Salman Ahmed
79e2b232d8
Improve English
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-04-25 19:26:53 +03:00
Salman Ahmed
a8c460f7df
Replace separated top-centered rotation button with rotation drag handles
2021-04-25 10:17:36 +03:00
Salman Ahmed
77f7d4c963
Add composite managing display of selection box drag handles
2021-04-25 10:17:36 +03:00
Salman Ahmed
ab71782674
Use colour fade transform for selection box controls
...
To become harminous with the fade transforms of the rotation control
2021-04-25 10:14:31 +03:00
Salman Ahmed
62bcc5f76d
Add property for tracking whether control is during operation
2021-04-25 10:14:31 +03:00
Bartłomiej Dach
e937b778f6
Fix potential failure in ensureSourceClockSet()
...
`ensureSourceClockSet()` was intended to only run when the adjustable
source hasn't been set at all yet. As it turns out permitting it to run
unconditionally can break the state of the underlying interpolated
clock. This is caused by the following factors:
* While the decoupleable clock is running, its `CurrentTime` does not
come from either the source clock, or the internal stopwatch; it is
instead calculated using the base `InterpolatingFramedClock` logic.
* A source change of a decoupleable clock seeks the provided source
clock to the decoupleable's current time.
* When an interpolating clock is seeked (decoupleable clock is also
an interpolating one), its interpolation state
(`{Last,Current}InterpolatedTime`) are reset to 0.
* If the interpolating clock determines that its current time is too
far away from the source's time (which was set when the source is
changed), it will ignore the source and instead continue to use
its current time until the source clock has caught up.
Overall, the source change is not really necessary if a source is
already there. The only reason to ensure it was set was to make sure
the first seek of the gameplay clock wasn't performed in decoupled
mode. Therefore, add a guard to make sure the source is only set if
there isn't one already.
2021-04-24 14:19:39 +02:00
Denrage
59ae5ab913
Added transition in StarRatingDisplay
2021-04-24 13:25:29 +02:00
Salman Ahmed
206fc94b8c
Add rotation drag handle component
2021-04-24 08:00:36 +03:00
Salman Ahmed
4bfa9cd6b6
Change inheritance of selection box buttons to base control instead
2021-04-24 08:00:29 +03:00
Salman Ahmed
decd8803bc
Abstract base appearence and hover update from drag handles
2021-04-24 07:45:53 +03:00
Bartłomiej Dach
fdb5490e51
Attempt to explain source initialisation better
2021-04-23 21:56:08 +02:00
smoogipoo
63a9484255
Expose WaitingOnFrames as mutable bindable
2021-04-23 19:11:47 +09:00
smoogipoo
575ec7c528
Document + refactor max player limitation
2021-04-23 19:11:35 +09:00
smoogipoo
ae2fd2f2e1
Ensure source is set on reset
2021-04-23 18:46:59 +09:00
Denrage
713344ebad
Reorganize methods
2021-04-23 10:31:49 +02:00
smoogipoo
90ecda91af
Fix exception
2021-04-23 00:06:54 +09:00
smoogipoo
4f0857f946
Xmldocs and general refactorings
2021-04-22 23:52:22 +09:00
smoogipoo
ee25949751
Rename classes
2021-04-22 23:39:02 +09:00
smoogipoo
8a0ba3a055
Merge GameplayIsolationContainer into PlayerInstance, remove track
2021-04-22 23:38:51 +09:00
smoogipoo
4aceb75eb2
Disable spectate button on closed rooms
...
Doesn't have an effect normally - only for safety purposes in case we
allow entering the match subscreen after a match has finished in the
future.
2021-04-22 23:37:45 +09:00
smoogipoo
fd0b030cf4
Refactor gameplay screen creation
2021-04-22 23:37:33 +09:00
smoogipoo
f8f9cf9412
Merge branch 'fix-initial-playingusers' into multiplayer-spectator-screen
2021-04-22 23:25:25 +09:00
smoogipoo
64579d50ac
Use only single PlayerInstance for hit sample playback
2021-04-22 22:59:47 +09:00
smoogipoo
6588859c32
Remove loggings
2021-04-22 22:29:18 +09:00
Dan Balasescu
93b53f54fa
Merge pull request #12531 from peppy/editor-add-nudge-shortcuts
...
Add simple key based time nudging support to editor
2021-04-22 21:14:51 +09:00
Dan Balasescu
50f37ef09c
Merge pull request #12519 from peppy/editor-hit-animation-toggle
...
Add editor hit animation toggle
2021-04-22 20:49:21 +09:00
smoogipoo
6df23f1301
Merge branch 'master' into multiplayer-spectator-screen
2021-04-22 20:29:24 +09:00
Dean Herbert
a5364b224f
Add simple key based time nudging support to editor
2021-04-22 18:47:04 +09:00
Dean Herbert
1884c18a2c
Ignore movement operations which have no offset
2021-04-22 18:12:03 +09:00
Dean Herbert
daafa41dc1
Merge branch 'master' into fix-initial-spectator-state-callback
2021-04-22 16:22:04 +09:00
smoogipoo
1ca2152e61
Privatise + rename to SlaveGameplayClockContainer
2021-04-21 23:22:36 +09:00
smoogipoo
2bea625613
Fix initial playback states not being correct
2021-04-21 23:22:11 +09:00
Denrage
56a69ed956
Codestyle fixes
2021-04-21 15:53:28 +02:00
Denrage
0dfd0bb59d
Refactored background of BeatmapInfoWedge
2021-04-21 15:46:11 +02:00
Denrage
d6928e91fd
Removed BeatmapInfo in StarRatingDisplay
2021-04-21 15:43:48 +02:00
Denrage
9fba87f67a
Moved Info and Background into own container
2021-04-21 15:43:29 +02:00
Denrage
de04caeace
Fixed race condition in StarRatingDisplay
2021-04-21 13:53:08 +02:00
Dean Herbert
9d8f0c854d
Setup configuration item for editor hit animations
2021-04-21 18:05:40 +09:00
Dean Herbert
c6c91cd9a5
Refactor WaveformOpacityMenuItem
to not receive whole config
2021-04-21 18:05:26 +09:00
smoogipoo
f32d00c0d9
Fix post-merge errors
2021-04-21 17:13:01 +09:00
smoogipoo
e78ef05fcf
Merge branch 'gcc-abstraction' into multiplayer-spectator-screen
2021-04-21 17:11:14 +09:00
smoogipoo
31c5fb350f
Merge branch 'master' into gcc-abstraction
2021-04-21 16:33:36 +09:00
smoogipoo
fb848f7544
Rename to MasterGameplayClock
2021-04-21 16:33:14 +09:00
Dean Herbert
26430e3cb5
Merge pull request #12492 from Naxesss/bg-audio-quality-checks
...
Add background and audio checks
2021-04-21 00:10:32 +09:00
Denrage
e9571b72cf
Fixed InspectCode
2021-04-20 14:53:35 +02:00
Denrage
583754b22a
Removed unnecessary whitespaces
2021-04-20 14:29:53 +02:00
Denrage
df29e61147
Fix CodeFactor error
2021-04-20 14:22:49 +02:00
smoogipoo
a9e4a0ed50
Fix potentially starting play when finished
...
The UserFinishedPlaying event may trigger before the event is subscribed
to by SpectatorScreen. For such cases, an extra check is done to make
sure the user is _actually_ playing.
2021-04-20 21:19:08 +09:00
Denrage
f799a6e733
Removed StarDifficulty binding passthrough
2021-04-20 14:18:41 +02:00
smoogipoo
156a518068
Merge branch 'master' into fix-initial-spectator-state-callback
2021-04-20 21:16:05 +09:00
Naxess
3e1b6b3b34
Simplify verifier run call args
...
Uses the resolved working beatmap instead of resolving it every time.
Also uses the EditorBeatmap itself as playable beatmap, as it is of type `IBeatmap` already, and `.PlayableBeatmap` forwards everything anyway.
2021-04-20 13:34:12 +02:00
Denrage
c5d35ab787
removed mods binding passthrough
2021-04-20 12:40:22 +02:00
Denrage
4e6cd8082e
WIP refresh BPM-Label on mod change
2021-04-20 12:00:04 +02:00
smoogipoo
ec080fcb32
Move seekOffset back to MasterGameplayClockContainer
2021-04-20 18:25:46 +09:00
smoogipoo
a683e5ec34
Seek using local method
2021-04-20 17:40:11 +09:00
Denrage
6e72ee5f76
Added bindable stardifficulty to StarRatingDisplay
2021-04-20 10:37:53 +02:00
Denrage
505a117862
splitted updateable part of wedge
2021-04-20 10:37:52 +02:00
smoogipoo
97fb90d9f4
Move clock processing to base.Seek()
2021-04-20 17:35:59 +09:00
Dean Herbert
60acd824cb
Add two sample implementations
2021-04-20 17:30:40 +09:00
smoogipoo
80473a356e
Merge branch 'fix-pre-seek-sample-lifetime' into gcc-abstraction
2021-04-20 17:27:01 +09:00
smoogipoo
3d6d26039a
Remove unused usings
2021-04-20 14:09:54 +09:00
smoogipoo
88ded95e75
Ensure clock is set in GCC.Start()
2021-04-20 13:56:13 +09:00
smoogipoo
8dd9134e3d
Move source clock adjustment application to Start()
2021-04-20 13:09:49 +09:00
smoogipoo
a92ae8ce76
Fix Reset() potentially not resetting to the intended start position
2021-04-20 13:01:42 +09:00
Naxess
496df411a7
Remove now unused import
2021-04-20 02:39:11 +02:00
Naxess
0e6b66f457
Merge branch 'master' into bg-audio-quality-checks
2021-04-20 02:36:13 +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
Denrage
6bf6084ae9
fixed according to suggestions
2021-04-19 19:24:46 +02:00
Bartłomiej Dach
d5829fe638
Merge branch 'master' into playlist-unicode
2021-04-19 19:24:04 +02:00
Bartłomiej Dach
0825fc57a9
Move foreground colour helper into OsuColour
2021-04-19 18:24:48 +02:00
Bartłomiej Dach
97573fb11d
Merge branch 'master' into combo-colours-display
2021-04-19 18:21:57 +02:00
Denrage
9f24cdb355
Added Author Link in BeatmapInfoWedge
2021-04-19 16:54:09 +02:00
smoogipoo
acbf4580a4
Only set initial source in Reset()
2021-04-19 19:57:00 +09:00
smoogipoo
c7183f92f7
Rename Restart() -> Reset()
2021-04-19 19:57:00 +09:00
Dean Herbert
a40dcd4b8d
Add a touch more space in the timing column
2021-04-19 18:53:06 +09:00
Dean Herbert
097a347533
Adjust Add different background colour for timing area
2021-04-19 18:25:30 +09:00
Dean Herbert
5bce5d2057
Update design logic
2021-04-19 18:25:20 +09:00
smoogipoo
5397f4faba
Merge branch 'master' into fix-initial-spectator-state-callback
2021-04-19 16:49:06 +09:00
smoogipoo
c50b526ba0
Remove local state dictionary from SpectatorScreen
2021-04-19 16:48:55 +09:00
Dean Herbert
1ebc5ac5cc
Remove unused legacy class
2021-04-19 16:36:00 +09:00
Dean Herbert
8da561a2a6
Soften colours and adjust padding slightly
2021-04-19 16:35:36 +09:00
Dean Herbert
f8b20ca8aa
Add new display for effect row attribute
2021-04-19 16:35:36 +09:00
Dean Herbert
ec249a0edb
Add new display for sample row attribute
2021-04-19 16:23:28 +09:00
Dean Herbert
6465a72060
Add bubbled word class for use in attribute rows
2021-04-19 16:23:28 +09:00
Dean Herbert
3aad0a8b9c
Add new display for difficulty row attribute
2021-04-19 16:23:06 +09:00
Dean Herbert
d3cebfb6fb
Use explicit label
2021-04-19 16:23:06 +09:00
Dean Herbert
a10a8680d0
Add new display for timing row attributes
2021-04-19 16:23:06 +09:00
smoogipoo
ef3801b5dd
Add helper method supporting RomanisableString
2021-04-19 15:29:26 +09:00
Christine Chen
abfa6aec87
Remove completionState parameter
2021-04-19 01:58:19 -04:00
Dean Herbert
f4baff9e04
Make TimingScreen
use rounded screen and adjust spacing/padding
2021-04-19 14:35:35 +09:00
Dean Herbert
e143afb598
Split out rounded content screen from SetupScreen for use in other places
2021-04-19 14:28:32 +09:00
Christine Chen
0b36dd9bce
Skip outro overlay and PerformExit() call updateCompletionState() instead of scheduleCompletion()
...
Co-Authored-By: Marlina José <marlina@umich.edu>
2021-04-19 01:23:21 -04:00
Dean Herbert
513e470b52
Adjust grid spacing to allow attributes to use more width
2021-04-19 13:24:53 +09:00
Dean Herbert
0c918410d0
Make "add" button more visible
2021-04-19 13:15:24 +09:00
Dean Herbert
658c23c925
Give more space to the parameter adjustment area
2021-04-19 13:15:17 +09:00
Christine Chen
99fab456b5
Storyboard completion calls updateCompletionState
...
- If the storyboard ends after the beatmap, call updateCompletionState as if the score processor has completed at that time. (completionProgressDelegate is null here since earlier when the score processor actually completed, updateCompletionState returned after showing the skip overlay.)
- If the storyboard ends before the beatmap does, updateCompletionState simply returns and waits until the score processor is completed.
- If the storyboard and beatmap end at the exact same time, make sure updateCompletionState() is called only once by the score processor completion.
Co-Authored-By: Marlina José <marlina@umich.edu>
2021-04-18 23:25:20 -04:00
Bartłomiej Dach
6f2ebb20a7
Fix test failing due to null beatmap skin
...
Also annotate the field on `EditorBeatmap` as nullable for future
travelers.
2021-04-18 20:46:42 +02:00
Bartłomiej Dach
07a00cd681
Add colours section with combo colour display
2021-04-18 20:46:42 +02:00
Bartłomiej Dach
a8027d87b6
Fix unreadable colour hex code text due to low contrast
...
Logic is shared with the timeline blueprints which also have the same
problem of displaying text on top of a combo colour.
Slightly modified the formula. Seems to yield better results on a
subjective check.
2021-04-18 20:44:55 +02:00
PercyDan54
488001d570
Support SpriteText for LinkFlowContainer
2021-04-18 20:58:08 +08:00
Dean Herbert
cfc7664094
Use full path
2021-04-18 21:05:23 +09:00
Dean Herbert
e76565dbc5
Fix selection box not displaying after pasting a selection in the editor
...
Closes #12471 .
2021-04-18 20:28:39 +09:00
Salman Ahmed
f45aed1259
Remove new line between skip overlay fields
2021-04-18 07:25:52 +03:00
Salman Ahmed
f6a09be62d
Add further xmldoc
2021-04-18 07:25:49 +03:00
Salman Ahmed
a73bae7a66
Schedule completion when storyboard has actually ended
2021-04-18 07:25:33 +03:00
Salman Ahmed
2847dd7e05
Merge branch 'master' into play-storyboard-outro
2021-04-18 06:40:22 +03:00
PercyDan54
646403b826
Fix CI errors
2021-04-18 10:54:42 +08:00
PercyDan54
1339c126a4
Remove unused using
2021-04-18 09:54:50 +08:00
PercyDan54
cfaaf2e83e
Add ToRomanisableString()
2021-04-18 09:52:25 +08:00
Christine Chen
c77f838fb0
HasStoryboardEnded doesn't trigger updateCompletionState()
...
Scores won't be shown prematurely if the storyboard ends before the playable portion of the beatmap.
2021-04-17 21:49:07 -04:00
Naxess
ef65c8910f
Fix resolved fields
2021-04-18 01:15:13 +02:00
Christine Chen
97bacbdc76
Show score after the end of the storyboard after it was toggled
2021-04-17 18:10:21 -04:00
Christine Chen
fdcb5e924c
Initialize skipOutroOverlay with alpha 0, other small changes
2021-04-17 17:45:38 -04:00
Christine Chen
81be562379
Read StoryboardEndTime directly from Beatmap
2021-04-17 12:28:31 -04:00
PercyDan54
512cec3458
Use unicode for playlists
2021-04-18 00:10:01 +08:00
Naxess
400f8b3938
Add GetStream
to IWorkingBeatmap
...
This is necessary to obtain the filesize of the audio and background files.
2021-04-17 17:47:13 +02:00
Naxess
448574e7e6
Use WorkingBeatmap
instead of IBeatmap
...
This lets us access things like the background, track, etc. which are necessary for quality and filesize checks.
Also improves the structure of the `CheckBackgroundTest` class in the process.
2021-04-17 17:33:53 +02:00
smoogipoo
724fe3d378
Remove unnecessary method
2021-04-16 22:57:34 +09:00
smoogipoo
72ebcb157f
Dispose track on dispose
2021-04-16 22:57:27 +09:00
smoogipoo
4c5d4752b1
Rename classes to reduce redundant naming
2021-04-16 22:47:52 +09:00
smoogipoo
7d5d7088cd
Remove now unnecessary override
2021-04-16 20:51:07 +09:00
smoogipoo
c8d38f9983
Merge branch 'gcc-abstraction' into multiplayer-spectator-screen
2021-04-16 20:51:00 +09:00
smoogipoo
314b1646bd
Add xmldoc to MasterGameplayClockContainer
2021-04-16 20:47:09 +09:00
smoogipoo
3a78c19f96
More refactoring/xmldocs
2021-04-16 20:33:29 +09:00
smoogipoo
6301111fa3
Remove ClockToProcess, always process underlying clock
2021-04-16 20:17:21 +09:00
smoogipoo
a7aa3cb263
Merge branch 'gcc-abstraction' into multiplayer-spectator-screen
2021-04-16 20:16:26 +09:00
smoogipoo
f98ffbb1b3
Remove ClockToProcess, always process underlying clock
2021-04-16 20:15:42 +09:00
smoogipoo
5e82f40d67
Merge branch 'master' into gcc-abstraction
2021-04-16 20:14:53 +09:00
smoogipoo
65a6f9f8a4
Merge branch 'fix-initial-spectator-state-callback' into multiplayer-spectator-screen
2021-04-16 18:26:46 +09:00
smoogipoo
274e33184b
Fix SpectatorScreen potentially missing user playing callbacks
2021-04-16 18:22:22 +09:00
Dean Herbert
d9d50f0e88
Add border showing selected blueprints in timeline
2021-04-16 18:16:22 +09:00
Dan Balasescu
3c8e2b8b32
Merge branch 'master' into fix-potential-deselection-crash
2021-04-16 16:27:47 +09:00
Dan Balasescu
d3acbcced7
Merge pull request #12437 from peppy/fix-editor-placement-commit-false
...
Fix placement blueprints not being correctly removed after a rolled back placement
2021-04-16 16:25:05 +09:00
Dean Herbert
c59906e925
Fix an occasional crash when deleting a HitObject via internal means
2021-04-16 15:55:33 +09:00
Dean Herbert
119c9b4294
Fix placement blueprints not being correctly removed after a rolled back placement
2021-04-16 14:11:33 +09:00
Christine Chen
33a665224e
Clean up skipOutroOverlay if skipping is disabled
2021-04-16 01:03:15 -04:00
Christine Chen
b15838b220
Move storyboard outro logic to DrawableStoryboard
2021-04-16 00:59:10 -04:00
Dean Herbert
42c066e6f2
Fix slider not displaying in timeline during zero-duration placement
2021-04-16 13:38:55 +09:00
smoogipoo
1c086d99de
Add loading spinner
2021-04-16 13:28:32 +09:00
smoogipoo
5ac0eb02cd
Always add player instances at first, populate later
2021-04-16 12:25:29 +09:00
Christine Chen
45c2b72a25
Merge branch 'master' into play-storyboard-outro
2021-04-15 15:11:35 -04:00
Christine Chen
25b8c2f257
Allow skipping storyboard outro
...
Reuses SkipOverlay by calculating the endtime of the storyboard and using that as a "start point". Upon skipping the outro the score is instantly shown.
When the end of the storyboard is reached the score screen automatically shows up. If the player holds ESC (pause) during the outro, the score is displayed
The storyboard endtime is calculated by getting the latest endtime of the storyboard's elements, or simply returning 0 if there is no storyboard.
Co-Authored-By: Marlina José <marlina@umich.edu>
2021-04-15 13:20:40 -04:00
Dean Herbert
c2340f1fe8
Move zoom settings back to run in a non-loaded state
2021-04-16 01:01:03 +09:00
Dean Herbert
15d48a924b
Set the timeline's height to a sane non-zero default
...
This isn't required but makes the initial appearance animation nicer.
2021-04-16 00:58:32 +09:00
Dan Balasescu
a19f3bac35
Merge pull request #12408 from peppy/hide-top-right-elements-as-part-of-hud
...
Hide top-right HUD overlay elements as part of HUD visibility
2021-04-15 23:29:55 +09:00
Dean Herbert
7cf15fe729
Merge pull request #12412 from peppy/timeline-adjustments
...
Update timeline control point display
2021-04-15 22:43:26 +09:00
Andrei Zavatski
71b06d7e61
Simplify ExtendableCircle even more
2021-04-15 15:53:21 +03:00
Dan Balasescu
7beaf0ce55
Merge branch 'master' into timeline-adjustments
2021-04-15 21:51:00 +09:00
Dean Herbert
ad671ee07a
Merge branch 'master' into timeline-adjustments
2021-04-15 20:42:38 +09:00
Dan Balasescu
e3bf5f1bbb
Merge branch 'master' into summary-timeline-kiai-display
2021-04-15 20:41:31 +09:00
Dan Balasescu
6f17c19a48
Merge branch 'master' into summary-timeline-design-refactors
2021-04-15 20:11:39 +09:00
Dan Balasescu
b70dae7cf1
Merge pull request #12420 from peppy/round-timeline-ticks
...
Add rounded corners to timeline ticks display
2021-04-15 20:11:20 +09:00
smoogipoo
b391a8f94e
Properly bind WaitingOnFrames
2021-04-15 19:37:45 +09:00
smoogipoo
33cc5c5cb3
A few more xmldocs
2021-04-15 19:35:57 +09:00
smoogipoo
82fcabb8f0
More refactorings/renamespacings/xmldocs
2021-04-15 19:32:55 +09:00
Dean Herbert
5b06a68b93
Merge pull request #12330 from Cublibre/master
...
Send a warning notification if device is unplugged and at low battery
2021-04-15 19:21:04 +09:00
smoogipoo
df4fce2c57
Rename classes
2021-04-15 19:16:00 +09:00
smoogipoo
1705d472b5
Reimplement multiplayer syncing using new master/slave clocks
2021-04-15 19:12:52 +09:00
smoogipoo
fe3ba2b80e
Implement IAdjustableClock on GameplayClockContainer
2021-04-15 19:07:25 +09:00
Dean Herbert
0dc1577f68
Split out control point visualisation logic and add special kiai duration handling
2021-04-15 18:42:30 +09:00
Dean Herbert
153ee25510
Update base specifications to a more sane default
2021-04-15 18:42:07 +09:00
Dean Herbert
bf5af3310a
Update break colour to not look like kiai time
2021-04-15 17:04:11 +09:00
Dean Herbert
18e8682f39
Remove unused using statements
2021-04-15 17:01:25 +09:00
smoogipoo
33ad7850cb
Remove LastFrameTime
2021-04-15 16:45:59 +09:00
Dean Herbert
757475e6d4
Use correct representation colours
2021-04-15 16:39:20 +09:00
Dean Herbert
da6f9060fa
Centre end circles to avoid visual gaps
2021-04-15 16:39:20 +09:00
Dean Herbert
73821beb1d
Fix break display looking bad on very long beatmaps due to fixed corner radius
2021-04-15 16:39:20 +09:00
smoogipoo
6fc7488a67
Reimplement syncing logic as a new component
2021-04-15 16:33:59 +09:00
Dean Herbert
bc3b2af39d
Add rounded corners to timeline ticks display
2021-04-15 15:29:22 +09:00
smoogipoo
7993c2b880
Merge branch 'gcc-abstraction' into multiplayer-spectator-screen
2021-04-15 14:23:12 +09:00
Salman Ahmed
6c5234f8da
Move default IgnoreUserSettings
value to construction
2021-04-15 08:04:03 +03:00
Salman Ahmed
92fd34cea9
Revert "Inverse ignore user settings bindable to "apply user settings" instead"
...
This reverts commit 175b8da2b2
.
2021-04-15 08:02:12 +03:00
Salman Ahmed
175b8da2b2
Inverse ignore user settings bindable to "apply user settings" instead
2021-04-15 07:34:20 +03:00
Salman Ahmed
a5fa14ac4a
Ignore user settings on background screen beatmap by default
2021-04-14 23:35:42 +03:00
smoogipoo
f56125bd68
Update clock from base class
2021-04-14 21:15:14 +09:00
Dean Herbert
d1c68cb92b
Simplify content creation of Timeline / TimelineArea
2021-04-14 21:03:52 +09:00
Dean Herbert
be08b9d1ef
Combine logic of Difficulty and Timing pieces where feasible
2021-04-14 20:55:34 +09:00
Dean Herbert
afbb674e52
TopLeft align check buttons so they don't move while interacting with them
2021-04-14 20:54:35 +09:00
Dean Herbert
99f05253fd
Adjust timeline sizing to closer match designs (but not 1:1 yet)
2021-04-14 20:54:35 +09:00
Dean Herbert
f9b1b7fe25
Update SamplePointPiece design
2021-04-14 20:54:35 +09:00
smoogipoo
774cca38c4
Make spectating instances use custom GCC
2021-04-14 20:39:14 +09:00
Dean Herbert
a8df2388eb
Update design for TimingControlPoint
2021-04-14 20:11:47 +09:00
Dean Herbert
1209c9fa32
Allow timeline to expand in height when control points are to be displayed
2021-04-14 20:10:50 +09:00
smoogipoo
54643f53e3
Merge branch 'gcc-abstraction' into multiplayer-spectator-screen
2021-04-14 19:56:58 +09:00
smoogipoo
18c69cdaf7
Split out files
2021-04-14 19:50:22 +09:00
smoogipoo
b53b30c1a9
Fix incorrect offset due to another intermediate Decoupleable clock
2021-04-14 19:33:55 +09:00
smoogipoo
2935f87e70
Fix IsPaused not being bound
2021-04-14 18:29:34 +09:00
Dean Herbert
26110cd777
Fix timeline not receiving input (being eaten by composer)
2021-04-14 18:17:27 +09:00
Dean Herbert
a314f90d37
Allow timeline to govern the size of the rest of the editor content
2021-04-14 18:17:27 +09:00
smoogipoo
1aa36818df
Abstractify GameplayClockContainer
2021-04-14 17:47:11 +09:00
Dean Herbert
e543db9bee
Use additive blending for background box
...
Doesn't make a huge difference but this was intended.
2021-04-14 14:56:28 +09:00
Dean Herbert
b7d2821b55
Display the centre marker above the waveform
...
Gives it a bit more visibility. This is where it was meant to sit, but
didn't consider using a proxy drawable to make it work previously.
2021-04-14 14:52:48 +09:00
Dean Herbert
7654df94f6
Merge pull request #12395 from frenzibyte/fix-cinema-ignore-settings
...
Fix beatmap background displayed if storyboard is hidden on "Cinema" mod
2021-04-14 14:31:03 +09:00
Dean Herbert
6044083cf7
Speed up the fade of the HUD a touch
2021-04-14 14:25:16 +09:00
Dean Herbert
65a1270f9a
Hide top-right HUD overlay elements as part of HUD visibility
2021-04-14 14:16:18 +09:00
smoogipoo
69b01e7270
Add some debugging
2021-04-14 00:58:03 +09:00
smoogipoo
77830527e7
Fix spectate button being disabled during play
2021-04-13 23:57:16 +09:00
Dean Herbert
21e8e5fbca
Move common table layout logic into EditorTable
abstract class
2021-04-13 23:26:19 +09:00
smoogipoo
d49b90877e
Fix operation remaining in progress
2021-04-13 23:21:48 +09:00
Dean Herbert
0edc1a850d
Split out common EditorTable base class
2021-04-13 23:05:58 +09:00
Dean Herbert
1ff4e2076f
Merge branch 'master' into verify-tab
2021-04-13 23:05:48 +09:00
smoogipoo
3039b7b0f9
Make tests a bit more resilient
2021-04-13 22:40:24 +09:00
smoogipoo
20823abb30
Make resyncing a bit more resilient
2021-04-13 22:10:35 +09:00
Andrei Zavatski
e601141be2
Simplify ExtendableCircle component
2021-04-13 14:57:02 +03:00
smoogipoo
627dd960b0
Disable player input for now
2021-04-13 20:52:20 +09:00
Dan Balasescu
1505a38164
Merge pull request #12396 from peppy/update-timeline-slider-apperance
...
Update timeline slider/spinner apperance
2021-04-13 20:47:44 +09:00
Dan Balasescu
b2aa46690d
Merge pull request #12389 from peppy/fix-editor-ctrl-drag-deselection
...
Fix ctrl-dragging on an existing selection unexpectedly causing deselection
2021-04-13 20:38:29 +09:00
smoogipoo
5b53a2b211
Merge branch 'master' into multiplayer-spectator-screen
2021-04-13 20:07:56 +09:00
Dean Herbert
464fc02875
Fix some styling issues with the verify screen layout
2021-04-13 19:55:17 +09:00
Dean Herbert
03ba04e8ce
Split out general checks into its own verifier class (and remove static
usage)
2021-04-13 19:50:22 +09:00
Dean Herbert
2c1f20a38f
Merge branch 'master' into fix-editor-alt-scroll
2021-04-13 19:36:25 +09:00
Dean Herbert
e7b0042a60
Remove unnecessary hover / shadow logic
2021-04-13 19:30:20 +09:00
Dean Herbert
b2c17979de
Update colours of all overlay components in one swoop (based off combo colour)
2021-04-13 19:26:20 +09:00
Dean Herbert
495fdd8d65
Update drag area display to match new design logic
2021-04-13 19:26:20 +09:00
Dean Herbert
109ee395bf
Fix input and remove outdated hover logic
2021-04-13 19:26:20 +09:00
Dean Herbert
00f235760d
Update visual appearance of timeline blueprints to close match new designs
2021-04-13 19:26:20 +09:00
Dean Herbert
2884ed3ab9
Merge pull request #12350 from smoogipoo/multiplayer-spectator-player-grid
...
Add the multiplayer spectator player grid
2021-04-13 19:25:32 +09:00
Dan Balasescu
fd32c7d7df
Merge pull request #12393 from peppy/update-timeline-design-a-bit
...
Update timeline tick display to differentiate tick type using width
2021-04-13 18:14:58 +09:00
Salman Ahmed
7c53bebfd4
Fix beatmap background not hiding when user settings ignored and storyboard replaces background
2021-04-13 12:00:13 +03:00
Naxess
60c2494b31
Make BeatmapVerifier
an interface
2021-04-13 10:40:56 +02:00
Salman Ahmed
36510309d1
Merge EnableUserDim
and IgnoreUserSettings
to one bindable
2021-04-13 10:58:56 +03:00
Dean Herbert
27e851c2ee
Also adjust height
2021-04-13 16:43:29 +09:00
Dean Herbert
ebf97ff48f
Update timeline ticks to use width as a differentiation method, rather than height
2021-04-13 16:29:35 +09:00
Dean Herbert
273099d53c
Don't store online IDs from score submission responses for now
...
Closes remaining portion of https://github.com/ppy/osu/issues/12372 .
2021-04-13 14:31:44 +09:00
Dean Herbert
66e74da2b7
Fix regression in quick delete mouse action blocking
2021-04-13 13:03:14 +09:00
Christine Chen
f66306a81a
Remove IsLowBattery
2021-04-12 11:15:24 -04:00
Christine Chen
43b97fe0ad
Refactor PowerStatus (now called BatteryInfo)
2021-04-12 10:52:52 -04:00
Naxess
008dbc7dd6
Reverse IssueType
ordering
...
Reversed both in the enum and where it's displayed, so ends up the same in the end.
2021-04-12 15:49:13 +02:00
Naxess
1c69829ad4
Fix Template.Origin
-> Check
2021-04-12 15:47:58 +02:00
smoogipoo
c531e38a36
Rework to create a derived tracked user data instead
2021-04-12 22:00:27 +09:00
smoogipoo
27660265b5
Merge branch 'master' into multiplayer-spectator-leaderboard
2021-04-12 21:02:18 +09:00
Dean Herbert
cc2acf5e54
Fix ctrl-dragging on an existing selection causing deselection of the hovered object
2021-04-12 19:05:23 +09:00
Dean Herbert
b5954a55ad
Remove empty <returns> xmldoc
2021-04-12 17:46:14 +09:00
Naxess
a2fc9c398f
Rename CreateChecker
-> CreateBeatmapVerifier
2021-04-12 10:08:30 +02:00
Naxess
65ebdd8f7a
Move check origin from IssueTemplate
to Issue
...
As a result we can also make check an interface, and need to provide the check itself when constructing an issue.
2021-04-12 10:08:08 +02:00
Dean Herbert
0eab9daf13
Update existing overlay containers to not block scroll input
2021-04-12 16:41:36 +09:00
Dean Herbert
8bf85d737c
Change Metadata into a get property
2021-04-12 15:52:29 +09:00
Dean Herbert
3551322f1d
Fix formatting of colour getter
2021-04-12 15:52:18 +09:00
Dean Herbert
1c553b5d48
Checker -> BeatmapVerifier
2021-04-12 15:29:05 +09:00
Dean Herbert
14bd5bdc77
Merge branch 'master' into verify-tab
2021-04-12 15:14:37 +09:00
Dean Herbert
dd1925aaed
Remove temporary input ignore
2021-04-12 14:29:27 +09:00
Dean Herbert
9be3163592
Merge branch 'master' into multiplayer-spectator-player-grid
2021-04-12 14:14:13 +09:00
Salman Ahmed
1fd4cb8963
Merge branch 'master' into master
2021-04-11 10:19:16 +03:00
Naxess
7d40b01722
Remove old todo
2021-04-10 15:18:15 +02:00
Naxess
747e0f00dc
Improve table formatting
2021-04-10 13:10:05 +02:00
Naxess
3a4f2e3d7e
Show table even if no issues
2021-04-10 13:09:16 +02:00
Naxess
c995eca029
Remove todo
...
Doesn't really matter in the end, as only one checker will run at a time in this case.
2021-04-10 13:05:24 +02:00
Naxess
6d3cf78e4a
Add issue selection
...
This mainly helps with keeping track of which issue was clicked, since doing so switches tab.
2021-04-10 13:04:39 +02:00
Naxess
d1007ff26a
Move components to more appropriate spot
2021-04-10 13:02:22 +02:00
Naxess
43174b708c
Remove visibility settings
...
Can look into this later, not really important for a first iteration.
2021-04-10 12:58:40 +02:00
Christine Chen
08311abc5e
Remove setters, cache CreatePowerStatus() and use a dummy LocalPowerStatus class in test scene
2021-04-10 00:00:21 -04:00
Dean Herbert
dfe3240b45
Merge pull request #12353 from nekodex/songselect-hoversamples
...
Add a hover sample type for SongSelect buttons
2021-04-10 01:45:47 +09:00
Jamie Taylor
ffacd38e57
Reduce the randomised pitch range of hover sounds
2021-04-09 23:03:14 +09:00
Jamie Taylor
8a0da06e89
Add a hover sample type for SongSelect buttons
2021-04-09 23:00:40 +09:00
smoogipoo
4409c1a36f
Increase sync offset to prevent constant catchups
2021-04-09 22:01:21 +09:00
smoogipoo
6eddc6c59e
Enable spectating multiplayer matches
2021-04-09 21:03:50 +09:00
smoogipoo
3e46d6401e
Remove some unnecessary code
2021-04-09 20:23:11 +09:00
smoogipoo
eccd269cce
Implement maximum start delay
2021-04-09 20:17:57 +09:00
smoogipoo
49b7519c53
Refactor gameplay starting logic
2021-04-09 20:03:34 +09:00
smoogipoo
c93ce73123
Move catchup logic inside PlayerInstance, fixup some edge cases
2021-04-09 19:59:34 +09:00
smoogipoo
f8dfb9544b
Merge branch 'multiplayer-spectator-leaderboard' into multiplayer-spectator-screen
2021-04-09 18:42:04 +09:00
smoogipoo
d2c37e6cf8
Remove unnecessary parameter
2021-04-09 18:41:58 +09:00
smoogipoo
4fa51d5ec8
Add leaderboard to multiplayer spectate screen
2021-04-09 18:41:48 +09:00
smoogipoo
8005f146a9
Fix inspection
2021-04-09 18:37:11 +09:00
smoogipoo
950e4e05ef
Merge branch 'multiplayer-spectator-leaderboard' into multiplayer-spectator-screen
2021-04-09 18:30:21 +09:00
smoogipoo
7cbc8f2695
Add some xmldocs
2021-04-09 18:29:02 +09:00
smoogipoo
90e243eea5
Rename methods
2021-04-09 18:15:27 +09:00
smoogipoo
3b86f0eb2f
Fix exception with 0 frames
2021-04-09 18:15:23 +09:00
smoogipoo
bb15baf118
Add initial multiplayer spectator leaderboard
2021-04-09 17:31:14 +09:00
Dean Herbert
51fee79ef1
Fix scores not being accepted due to missing ruleset ID
2021-04-09 15:18:02 +09:00
Christine Chen
59d13b0dd3
Fixed indentation
...
sorry about the style fixes... I'm using JetBrains Rider from now on.
2021-04-08 21:53:42 -04:00
Christine Chen
493c095535
Fixed code style
2021-04-08 20:28:23 -04:00
Christine Chen
6bccb3aab6
Use DI to implement battery detection, add BatteryCutoff property
...
- Removed the Xamarin.Essentials package from osu.Game and added it to osu.iOS and osu.Android only.
- iOS and Android implementations use Xamarin.Essentials.Battery, while the Desktop implementation
only returns 100% battery for now.
- Added a BatteryCutoff property to PowerStatus so it can be different for each platform (default 20%, 25% on iOS)
2021-04-08 19:55:11 -04:00
smoogipoo
ecd0b84d94
Use max_sync_offset constant
2021-04-08 22:15:07 +09:00
smoogipoo
1b5679b0d7
Refactor ctor
2021-04-08 22:14:26 +09:00