AudioSystem.getAudioInputStream(URL) was causing issues, so just download the files using the more robust Download class.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Added a missing "songScrolling.released()" call upon entering the song menu as the pressed state wasn't being cleared (causing an issue with the scroll wheel upon re-entering the state).
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Clicks and animation updates are now handled internally within the DropdownMenu class, which should simplify usage a bit. Override menuClicked() and itemSelected() instead for event handling.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Using 'fa-chevron-down' and 'fa-chevron-right' icons from Font Awesome v4.4.0 (https://github.com/FortAwesome/Font-Awesome).
The dropdown menu is currently used only in the downloads menu to select servers.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Moved Utils.loadGlyphs() into this class, and rewrote it to take a single generic string (instead of beatmap title/artist strings, specifically).
- Also moved font initialization into this class.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Submitting new queries will now actually cancel the old query and immediately use the result of the new query. The old behavior was very inconsistent about this.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
URL: http://osu.uu.gl/
Note that there's no API available, so this just parses the HTML for beatmap data. It's pretty slow compared to the other servers.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
URL: http://osu.yas-online.net/
Note that fetching the direct download URL for a beatmap requires an extra query, which is not currently done asynchronously (but it really should be).
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Many code style changes.
- Don't increment combo if missing the last slider circle.
- Added player name in ranking screen.
- Don't show null/default player names.
- Only import replays with .osr extension.
- Display loading status for importing replays.
- Moved MD5InputStreamWrapper to package "opsu.io".
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Renamed "OsuFile" to "Beatmap". All related variables and methods with "osu" have also been renamed to "beatmap" (or variants of each).
- Renamed "OsuGroupNode" to "BeatmapSetNode". Avoids confusion since groups are identified by a "set ID", not a "group ID".
- Renamed "OsuGroupList" to "BeatmapSetList", for the same reason as above.
- Renamed "OsuDB" to "BeatmapDB", for the same reason as above.
- Moved classes directly related to parsed beatmaps (Beatmap, BeatmapSetList, BeatmapSetNode, OsuHitObject, and TimingPoint) into a new "beatmap" package.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
The master volume can now be changed (using the mouse wheel) with the ALT key pressed in any menu, as in osu!.
Also improved the handling of dimmed tracks.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Don't call MusicController.loopTrackIfEnded() if a beatmap reloading thread is running.
Other changes:
- Fixed issue where long download result text would be drawn outside the result area by adding a clip.
- Changed default music offset from -150ms to -75ms.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Changed the time format displayed on the main menu to match osu!.
- If no beatmaps are loaded, redirect the user to the downloads menu instead of an empty song menu.
Also, start showing bar notifications at time 1 instead of 0 so it can be called in enter() methods without visual delays.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Main menu:
-- 'd': opens downloads menu
-- 'r': plays random track
- Song menu:
-- SHIFT+DEL: opens beatmap deletion menu
Other changes:
- In the main menu, tracks now play from the beginning instead of the preview time.
- Fixed "next page" icon sometimes showing in the downloads menu when a next page didn't exist.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Notifications are now sent when a download is complete and when new songs are imported in the downloads menu.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- F7: cycles through FPS settings.
- F10: toggles mouse enable/disable state during gameplay.
Also added bar notifications for saving/loading checkpoints.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Added draw(), update(), and enter() methods in UI to do all the necessary calls (instead of letting the states handle them).
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Replaces the mods being shown in the options menu.
- Added all the (base) mod icons to the menu, with the unimplemented ones grayed out.
- Added a rotation effect to MenuButton, and now multiple effects can be set at once.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Added score management menu for deleting individual scores.
- Store generated title string lists in the beatmap menus to prevent performance issues.
Allow using the right mouse button (as well as left mouse button) in all states.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- All beatmap set IDs are now stored in a set in OsuGroupList.
- OsuParser now checks the directory name for beatmap set IDs if the OsuFile doesn't contain one (for older beatmap formats).
Tweaks:
- Clear completed downloads when hitting "Import All".
- Call Download.updateReadSoFar() upon starting downloads instead of waiting for user to hover over the button (causing an unnecessary delay).
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>