1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-18 13:53:20 +08:00
Commit Graph

790 Commits

Author SHA1 Message Date
Dean Herbert
f62677222c Merge remote-tracking branch 'upstream/master' into naoey-show-beatmap-id 2018-04-18 13:08:53 +09:00
Dean Herbert
ae77c010e2 Merge remote-tracking branch 'upstream/master' into wave-container 2018-04-15 21:03:18 +09:00
miterosan
5bfb386226 Merge remote-tracking branch 'origin/master' into Private_Messages 2018-04-14 13:31:03 +02:00
Dean Herbert
32a74f95a5 Normalize all the line endings 2018-04-13 18:26:38 +09:00
miterosan
e39f5a1adf Rename var chatmanager -> channelManager
Apply requested changes
2018-04-12 23:19:13 +02:00
DrabWeb
0bede52381 Move the waves portion of WaveOverlayContainer to WaveContainer to allow usage in other places. 2018-04-11 16:22:27 -03:00
miterosan
3860594f40 Rename everything into channel and remove everything chat 2018-04-11 20:01:57 +02:00
miterosan
a70b329155 Split drawing and business logic of ChatOverlay 2018-04-08 18:21:48 +02:00
naoey
ca4299c6fe
Remove unused using and fix possible nullref. 2018-04-04 22:07:24 +05:30
naoey
c304c1eecf
Make LinkFlowContainer handle beatmap id lookup in game. 2018-04-04 21:23:51 +05:30
Dean Herbert
6ad962fc8b Interpolate ParallaxContainer's scale
Things were a bit jumpy when a screen was adjusting `ParallaxAmount`. This smoothes the applied scale changes to look great again.

Most noticeable when hitting the retry hotkey (`~`) from gameplay.
2018-03-09 14:35:53 +09:00
Dean Herbert
f78538fea8
Merge branch 'master' into user-profile-recent 2018-03-07 19:41:52 +09:00
smoogipoo
78d73d4c11 Additional fixes for flow ordering after framework changes 2018-03-06 17:20:58 +09:00
smoogipoo
148551afa2 osu!-side changes in-line with framework layout changes 2018-03-06 14:12:37 +09:00
Dean Herbert
26e50043b7 Fix parallax container during rewinds 2018-03-04 00:52:00 +09:00
Dean Herbert
eacb9ba743
Merge branch 'master' into user-profile-recent 2018-02-28 23:49:33 +09:00
Dean Herbert
bda673e6fe
Merge branch 'master' into player-reduced-parallax 2018-02-28 23:15:25 +09:00
naoey
2e535afb84
Remove redundant subsection title.
- Also handle opening UserProfile in LinkFlowContainer similar to how
beatmaps and channels are handled
2018-02-28 15:25:29 +05:30
Dean Herbert
dd6cf1379e Reduce parallax effect during gameplay
This also cleans up some shared code in OsuScreen.
2018-02-28 11:42:47 +09:00
Dean Herbert
0cd049c6b0 Rely less on zero-duration transform helpers
They have huge overheads.

See ppy/osu-framework#1411.
2018-02-28 11:00:54 +09:00
naoey
5724618b2a
Add license headers and sanitise open profile argument. 2018-02-26 09:58:11 +05:30
naoey
bb40919f9c
Add link handling to recent activities.
- Add a show user action to link handling
2018-02-26 01:21:27 +05:30
Dean Herbert
53129e5235 Fix text getting truncated after last link in chat line 2018-01-30 17:47:22 +09:00
Dean Herbert
38c5434b82 Remove placeholder methods in OsuGame
Let's add these when they can actually be implemented.
2018-01-17 20:32:20 +09:00
Dean Herbert
b27577e242 Add temporary browser handling of beatmap difficulty loading
until we have an api method to support this.
2018-01-17 19:37:20 +09:00
Dean Herbert
783ca40c64 Update with upstream changes 2018-01-17 16:51:47 +09:00
Dean Herbert
45301d07fd
Merge branch 'master' into url-parsing-support 2018-01-12 19:34:44 +09:00
FreezyLemon
2c67ff75ed added custom hoverclicksounds so links make sounds on hover&click 2018-01-11 18:52:50 +01:00
smoogipoo
c5c33e20bf OverlayContainer changes in-line with framework 2018-01-11 19:03:01 +09:00
FreezyLemon
3bf9901dd2 Fixed bugs and added tests 2018-01-09 16:11:45 +01:00
Dean Herbert
72624aea18 Use a better method of link compilation
Adds word wrap back, simplifies a lot.
2018-01-09 20:33:20 +09:00
Dean Herbert
1be0569743 Update licence headers 2018-01-09 14:34:52 +09:00
Dean Herbert
b035a92bda
Merge branch 'master' into url-parsing-support 2018-01-09 14:28:20 +09:00
Dean Herbert
37d393bca0 Update licence headers 2018-01-05 20:21:19 +09:00
Dean Herbert
faf1181fc3
Merge branch 'master' into url-parsing-support 2018-01-02 17:51:50 +09:00
FreezyLemon
e7721d71f3 Changed chat link implementation according to review 2017-12-31 00:51:47 +01:00
Dean Herbert
e332683d18 Fix music controller draggability 2017-12-30 21:10:40 +09:00
Dean Herbert
442a649c63 Make all FocusedOverlays hide on clicks outside of themselves
Also allows wheel events to pass through around them.
2017-12-30 20:45:41 +09:00
FreezyLemon
ae79be7b51 small style fixes plus new assert in test 2017-12-28 21:45:58 +01:00
FreezyLemon
7454633f63 Refactor and general tidying up 2017-12-28 20:11:21 +01:00
FreezyLemon
962e4d7c8a Removed LinkId and word wrapping (for now).
Also reimplemented the OsuHoverContainer properly
2017-12-25 20:46:04 +01:00
FreezyLemon
68255095a6 Renamed the IHasHoverSounds interface to ICanDisableHoverSounds and made it so that if the interface is not implemented, it is just ignored (samples will always be played). If it is implemented, the ShouldPlayHoverSound bool is decisive of whether sounds are played or not 2017-12-07 19:52:40 +01:00
FreezyLemon
e05618a415 Removed unnecessary "using" directives 2017-12-07 19:36:56 +01:00
FreezyLemon
a8599a1b75 Implemented new interface which allows parent containers to decide on whether a "OnHover" sound should be played. 2017-12-07 13:12:36 +01:00
FreezyLemon
9b866d2248 Made it so the link ID is always added before loading the SpriteTexts (fixed weird bug where some sprites would be white instead of blue). Also improved XML doc on TextColour 2017-12-04 13:46:07 +01:00
FreezyLemon
cf96323980 Added new OsuLinkSpriteText.TextColour property that sets the internal content (OsuHoverContainer)'s colour instead of the whole container, so that text colour is always changed through that (e.g. link colouring, link hover fade).
Implemented it to be used when adding text to an OsuLinkTextFlowContainer.
2017-12-04 13:33:42 +01:00
FreezyLemon
a839d0e91d LoadComponent before assigning URL to ensure dependency loading 2017-12-03 23:55:00 +01:00
FreezyLemon
1f1c7dd70f Moved LinkFlowContainer out of ProfileHeader to make it available for other uses too (e.g. chat) and renamed it to LinkTextFlowContainer bc it can contain both links and text, not only one 2017-12-01 20:26:51 +01:00
Dean Herbert
671b3d01ff Fix OsuClickableContainer's local content geting overwritten 2017-11-26 17:21:23 +09:00
Dean Herbert
ac7e373f40 Add hover/click sound effects to more stuff everywhere 2017-11-26 17:21:21 +09:00
Dean Herbert
07d6a70028 New sound effects with better names 2017-11-26 17:17:46 +09:00
Dean Herbert
bd616c1307 Simplify some property access 2017-11-21 12:42:28 +09:00
smoogipoo
dacabd4a90 Merge branch 'master' into lazy-working-beatmap 2017-11-17 21:46:19 +09:00
Dean Herbert
b3aae2340b Avoid accessing beatmaps from BeatSyncedContainer until they are loaded 2017-11-17 18:38:11 +09:00
Dean Herbert
6c40cf08cc Optimise leaderboard display
Adds async loading support and cleans up the code quite a bit in the process.
2017-11-16 23:22:25 +09:00
Dean Herbert
af03d883f1 Ensure overlay containers scroll to top when new information is presented 2017-11-15 19:01:30 +09:00
Dean Herbert
ed89f03900 Make ParallaxContainer public 2017-11-01 17:10:59 +09:00
Dean Herbert
5822a6cc96 Merge branch 'master' into ranks-section 2017-09-07 15:11:07 +09:00
smoogipooo
57678a13d9 Update in-line with framework changes. 2017-09-04 09:32:35 +09:00
Dean Herbert
250fb33fbc Merge branch 'master' into ranks-section 2017-08-22 12:46:28 +09:00
Dean Herbert
6ded194c53 Remove all usage of DI to retrieve InputManager
Uses GetContainingInputManager instead, as per framework changes.
2017-08-15 14:30:50 +09:00
Jorolf
c877a5a8b7 update TestCase 2017-08-09 19:26:27 +02:00
Jorolf
8631c469fc add license header 2017-08-09 18:50:44 +02:00
Jorolf
7d7cfe5d92 Merge branch 'master' of git://github.com/ppy/osu into ranks-section 2017-08-08 23:13:25 +02:00
Jorolf
1c2329f111 generalize the hover code 2017-08-08 23:11:46 +02:00
Huo Yaoyuan
8843d97895 Remove depth setting in SectionsContainer and profile. 2017-08-05 18:01:10 +08:00
Dean Herbert
91f3d8deb4 Improve class xmldoc 2017-08-03 15:48:06 +09:00
Dean Herbert
bb032508bd Add comment explaining why we use scale 2017-08-03 15:47:26 +09:00
Dean Herbert
c7f5b83e9e Derive from CompositeDrawable instead
We need to expose EdgeEffect as it's used in places.
2017-08-03 15:45:59 +09:00
Dean Herbert
0d9ea97828 Allow Rulesets to create a non-FontAwesome icon
This also
- Renames TextAwesome to SpriteIcon.
- Removes the default size of "20" from SpriteIcon (now defaults to the underlying texture size).
2017-08-03 14:36:21 +09:00
Thomas Müller
e68675f970 Rename EasingTypes to Easing 2017-07-22 20:53:53 +02:00
Dean Herbert
64ebc01a3b Remove many now unnecessary null-checks 2017-07-19 15:45:23 +09:00
Dean Herbert
007b343854 Fix incorrect equality check when TimingPointAt returns a default T 2017-07-19 15:16:40 +09:00
Huo Yaoyuan
26b36c08a3 Prefer ScrollTo in SectionsContainer. 2017-07-14 22:56:27 +08:00
Huo Yaoyuan
6cf36da389 Merge branch 'master' into profile 2017-07-14 22:52:19 +08:00
Dan Balasescu
a6d917285a Merge branch 'master' into settings-improvements 2017-07-14 19:22:45 +10:00
Dean Herbert
b7612af20c Make comment different 2017-07-14 18:08:47 +09:00
Dean Herbert
b1d447bf71 Add missing access modifier 2017-07-14 07:05:39 +09:00
Dean Herbert
bfa6a9aa4e Add missing licence header 2017-07-14 06:43:33 +09:00
Dean Herbert
ce204b8e7b Merge remote-tracking branch 'ppy/master' into right-mouse-scrollbar 2017-07-14 06:23:07 +09:00
Dean Herbert
f4fd263671 Fix settings not offsetting scroll operations by fixed header content 2017-07-13 17:09:12 +09:00
Dean Herbert
de46f3ab07 Remove all unnecessary parenthesis where object initialisers are used
Enforces at CI.
2017-07-13 15:11:33 +09:00
Dean Herbert
b79e309c2f Don't lock scroll position of SectionsContainer header elements on negative scroll
Feels better in all cases.
2017-07-13 14:24:41 +09:00
Dean Herbert
c02a85bc4a Formatting 2017-07-13 13:52:40 +09:00
Dean Herbert
3a4150c6c3 Merge remote-tracking branch 'upstream/master' into profile
# Conflicts:
#	osu.Game/Graphics/Containers/SectionsContainer.cs
2017-07-13 13:44:21 +09:00
Dean Herbert
9d47dd9ff9 Add support for right mouse absolute scrolling (when enabled)
Will likely need to be bindable when hooked up to settings and actually used.
2017-07-12 18:57:44 +09:00
Dean Herbert
0322e66c25 Merge remote-tracking branch 'upstream/master' into container-collection-readonlylist 2017-07-12 13:07:23 +09:00
Dean Herbert
c8c1dcae28 Fix incorrect filename 2017-07-12 12:55:40 +09:00
Thomas Müller
9d523ea012 Update framework 2017-07-12 11:06:13 +09:00
Thomas Müller
4045083dcd Update sorting comparers in line with framework changes 2017-07-11 21:21:58 +03:00
Huo Yaoyuan
fd4a054921 Merge branch 'master' into profile 2017-07-11 09:16:32 +08:00
Thomas Müller
d9b362489b Fix incorrect TimeUntilNextBeat and add TimeSinceLastBeat 2017-07-10 12:07:38 +03:00
Dean Herbert
2c8b8c3f9c Update loop logic in line with framework changes 2017-07-09 18:23:34 +09:00
Huo Yaoyuan
cadc191602 Merge branch 'master' into profile 2017-07-02 22:03:30 +08:00
Dean Herbert
043c7756f7 public -> protected 2017-07-01 07:09:26 -07:00
Dean Herbert
28f0da606a Add OsuFocusedOverlayContainer with predefined sounds. 2017-06-28 10:18:12 -07:00
Dean Herbert
480cdba023 Add OsuClickableContainer with generic sounds 2017-06-27 21:05:49 +09:00
Huo Yaoyuan
d24f78ea24 Merge branch 'master' into profile 2017-06-25 10:29:14 +08:00
Huo Yaoyuan
a187e50889 Unify usages of field and property. 2017-06-25 10:07:54 +08:00
Huo Yaoyuan
18295a9b97 Handle scrolling in SectionsContainer. 2017-06-25 10:06:54 +08:00
Thomas Müller
f5829860a2 Get rid of AlwaysReceiveInput 2017-06-23 18:02:24 +02:00
Huo Yaoyuan
af4ddf8fbd Merge branch 'master' into profile. 2017-06-16 16:32:54 +08:00
Huo Yaoyuan
3ec5d774df Child control fixes. 2017-06-15 22:42:15 +08:00
Huo Yaoyuan
1d85578bf5 Fix license header. 2017-06-15 07:29:32 +08:00
Huo Yaoyuan
755d2737d0 Improve OsuTextFlowContainer with framework. 2017-06-13 02:58:10 +08:00
Huo Yaoyuan
c75e2909ee Expose AddTextAwesome for OsuTextFlowContainer. 2017-06-13 00:58:32 +08:00
Huo Yaoyuan
fcd137ced2 Add OsuTextFlowContainer. 2017-06-13 00:51:06 +08:00
Huo Yaoyuan
915f61a8f7 Rename to scrollContentContainer. 2017-06-12 14:39:49 +08:00
Huo Yaoyuan
798d8711b8 Refactor SectionsContainer to generic. 2017-06-09 16:24:19 +08:00
Huo Yaoyuan
5a0bd3b695 Set content in profile sections. 2017-06-09 14:53:00 +08:00
Huo Yaoyuan
5033526070 Fix depth in SectiondContainer. 2017-06-09 13:37:55 +08:00
Huo Yaoyuan
e94d98fa84 Expose header background for SectionsContainer. 2017-06-07 22:11:38 +08:00
Thomas Müller
9c6ce230bc Fix compile error 2017-06-03 17:17:56 +02:00
smoogipooo
e348f86ce1 Update to match framework. 2017-06-01 14:24:31 +09:00
Dean Herbert
4ee11764b8 Merge branch 'master' into osu-direct 2017-05-24 12:16:34 +09:00
Dean Herbert
f57b234cc3 Expose Beatmap in BeatSyncedContainer 2017-05-24 01:44:47 +09:00
Dean Herbert
b12300391b Merge branch 'master' 2017-05-24 01:17:09 +09:00
Dean Herbert
0634a3a5c5 Merge branch 'master' into osu-direct 2017-05-23 17:33:20 +09:00
smoogipooo
aad6f8f5d6 Refactoring of BeatSyncedContainer. 2017-05-23 16:11:46 +09:00
smoogipooo
1867cbb381 Revert a bit of BeatSyncedContainer for smaller changeset. 2017-05-23 16:06:30 +09:00
smoogipooo
836bf930a0 More cleanups. 2017-05-23 15:29:38 +09:00
smoogipooo
3cdfd2eef5 Split ControlPoint into different types.
# Conflicts:
#	osu.Game.Rulesets.Mania/UI/Column.cs
2017-05-23 14:03:40 +09:00
Dean Herbert
3e0aaa1aa0 Add basic beat response to osu! logo 2017-05-23 12:29:43 +09:00
Dean Herbert
1295b0a7e1 Merge branch 'master' into ColdVolcano/beat-syncing 2017-05-23 10:51:47 +09:00
smoogipooo
adf8bb853e Move load() to be directly below ctor. 2017-05-22 20:06:37 +09:00
smoogipooo
de575b3867 Early return if beatLength = 0. 2017-05-22 20:02:02 +09:00
smoogipooo
95c4704a9e Delay backwards instead of using a millisecond tolerance. 2017-05-22 20:01:28 +09:00
Dan Balasescu
fc90cfa604 Update BeatSyncedContainer.cs 2017-05-22 17:50:05 +09:00
smoogipooo
70d7f61f7c More inversion for logic simplification. 2017-05-22 17:19:39 +09:00
smoogipooo
f81ffa636d Use BindTo instead of taking the game's beatmap bindable. 2017-05-22 17:18:11 +09:00
smoogipooo
609aac6453 Better kiai mode detection. 2017-05-22 17:18:05 +09:00
smoogipooo
b241140496 Proper kiai mode detection. 2017-05-22 17:18:00 +09:00
smoogipooo
abe9c464a8 Invert if statements. 2017-05-22 17:17:54 +09:00
Huo Yaoyuan
85684e5fee Do not scroll headers to when scrolling position is negative. 2017-05-22 15:54:58 +08:00
Huo Yaoyuan
7357076c4d CI fixes. 2017-05-21 04:48:43 +08:00
Huo Yaoyuan
a98f109d73 Use LayoutSize for header and footer layout. 2017-05-21 04:01:07 +08:00
Huo Yaoyuan
93668e53a0 Add footer support. 2017-05-21 03:44:03 +08:00
Huo Yaoyuan
201b44dbf1 Do not make the name confusing. 2017-05-21 03:02:51 +08:00
Huo Yaoyuan
72621c81dc Handle null and invalidation of headers. 2017-05-21 02:37:34 +08:00
Huo Yaoyuan
e040f297c6 Set Masking = false and expose ScrollContainer. 2017-05-21 02:21:23 +08:00
Huo Yaoyuan
da47b0a260 Fix margin and offset calculating. 2017-05-21 02:11:55 +08:00
DrabWeb
e030573436 Add ReverseDepthFillFlowContainer to remove code duplication 2017-05-19 23:44:36 -03:00
Huo Yaoyuan
ecc222c043 Allow custom SectionsContainer. 2017-05-20 07:20:46 +08:00
Huo Yaoyuan
473441dfd4 Fix fields being null. 2017-05-20 07:07:27 +08:00
Huo Yaoyuan
e06c917c95 Selection support of SectionsContainer. 2017-05-20 06:39:01 +08:00
Huo Yaoyuan
058c5e18a4 Scrolling support for SectionsContainer. 2017-05-20 05:48:40 +08:00
Huo Yaoyuan
24a813e907 Basic children management of SectionsContainer. 2017-05-20 05:15:57 +08:00
Javier Flores
793b760ff2 Cleanup logic 2017-05-18 20:19:00 -05:00
Javier Flores
f4c7a02a6f Fix having negative beat when it should be 0 2017-05-17 09:23:04 -05:00
ColdVolcano
198542465b More CI fixes 2017-05-17 01:37:31 -05:00
ColdVolcano
387d26a576 CI Fixes 2017-05-17 01:26:34 -05:00
ColdVolcano
5f192cae7b Add missing licence header 2017-05-17 01:18:56 -05:00
ColdVolcano
0801a211da Add a base container with beat syncing logic 2017-05-17 01:14:04 -05:00
Dean Herbert
622b155fda OsuConfig -> OsuSetting 2017-05-15 10:56:27 +09:00
Huo Yaoyuan
411988f038 Remove all trailing whitespaces in this repo. 2017-04-06 16:21:18 +08:00
Dean Herbert
f7dc7e9bb9
Update references. 2017-03-28 21:26:20 +09:00
Dean Herbert
0bcb463acf ParallaxContainer should always know the mouse position. 2017-03-23 22:42:40 +09:00
Dean Herbert
54e1b24fe9
Enforce readonly private members where possible. 2017-03-23 13:50:08 +09:00
Dean Herbert
ab8a5afdb9
AlwaysReceiveInput and InternalContains. 2017-03-16 17:38:36 +09:00
Dean Herbert
0cad5d7d41
Fix most warnings. 2017-03-07 13:05:57 +09:00
Thomas Müller
1585ae842a Update framework 2017-02-26 11:22:58 +09:00
Thomas Müller
a5dfa7ab06 Remove unnecessary using statements 2017-02-23 21:38:10 +01:00
Jorolf
1e0a694ff8 replaced bool with Bindable<bool>
Also accounted for the ParallaxAmount when moving to default position
2017-02-19 17:11:36 +01:00
Jorolf
7f751d3653 Update ParallaxContainer.cs 2017-02-19 16:54:00 +01:00
Jorolf
e83ac8b04c Removed public ParallaxEnabled property 2017-02-19 13:47:26 +01:00
Jorolf
f166bb0f96 Moved movement to the default position to property 2017-02-18 22:26:48 +01:00
Jorolf
77bfe57d8c compacted code, made public bool to disable it 2017-02-18 22:00:07 +01:00
Jorolf
a48e4a31a7 Parallax Option works now 2017-02-18 21:34:21 +01:00
Dean Herbert
becb65f702
Fix ParallaxContainer breaking with no mouse state present. 2017-02-09 19:25:04 +09:00
Dean Herbert
50bd80cb0c
Update and standardise license headers. 2017-02-07 14:27:41 +09:00
Dean Herbert
f356640cb7 Add missing licence headers. 2016-12-06 19:07:15 +09:00
Dean Herbert
22905d2033 Align logo correctly between intro and main menu.
Kinda hacky but will do for now.
2016-12-01 21:59:32 +09:00
Dean Herbert
413138abe5 Delay movement of ParallaxContainers slightly. 2016-12-01 21:45:40 +09:00
Dean Herbert
c48acd4c3d Fix coordinates being in wrong space. 2016-11-24 16:17:40 +09:00
Dean Herbert
9938084343 Make parallax container work with global mouse state (so it ignores bounds checks). 2016-11-24 16:04:16 +09:00
Drew DeVault
0d4560a054 Update to latest DI stuff 2016-11-10 17:40:42 -05:00
Drew DeVault
fe9034323b Get the game running, though not perfectly 2016-11-10 16:42:29 -05:00
Drew DeVault
ee24cd310c Convert everything to DI pattern 2016-11-10 16:41:18 -05:00
Dean Herbert
a61fb5ef5d Initial updates to make generic containers work. 2016-11-07 21:13:56 +09:00
Dean Herbert
b86f308af6 Add async workflow. 2016-11-01 23:24:14 +09:00
Thomas Müller
68476eafb9 Use DrawSize instead of Size whereever Size was previously read due to framework changes.
Note, that this was just stupid replacement. Many components will likely want to actually read Size and not DrawSize. We may want to do a pass over this at some point, but for now everything is working like this. (Old behavior.)
2016-10-18 18:53:31 +02:00
Dean Herbert
4052a665bf Remove all non-load Game access. 2016-10-12 15:47:08 +09:00
Thomas Müller
dd04b33232 Use AddInternal instead of AddTopLevel. 2016-10-09 20:06:23 +09:00
Dean Herbert
ac16bffe49 Bring framework and resources up-to-date. 2016-10-01 19:05:26 +09:00
Dean Herbert
5afb038025 Use explicit cast to OsuGame rather than in-between derived classes.
# Conflicts:
#	osu.Game/GameModes/Menu/MainMenu.cs
2016-10-01 17:02:57 +09:00
Dean Herbert
cc14aeb802 Add basic background display system. 2016-09-30 18:45:55 +09:00
Dean Herbert
357c94ed8a Add OsuGameMode. Standardise naming of classes. 2016-09-30 13:30:55 +09:00
Dean Herbert
7dcf2c6269 Add TestCase for main menu ButtonSystem. 2016-09-29 23:46:24 +09:00
Dean Herbert
81f9ce657f License -> Licence. 2016-08-26 17:27:49 +09:00
Dean Herbert
6cbbeaaac0 Initial commit. 2016-08-26 14:41:47 +09:00