Commit Graph

179 Commits

Author SHA1 Message Date
fd
678a2ad681 Mp3 wav through mp3spi
May have fixed loading some other unique audio.
2015-02-18 00:35:35 -05:00
Jeffrey Han
69f5aa5748 Added a separate Game Mods menu.
- 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>
2015-02-16 17:53:24 -05:00
Jeffrey Han
329d54c230 Minor changes.
- Replaced duplicate GameImage.process_sub() calls from related images with calling a single method, for easier editing.
- Suppress warnings from overwritten Slick2D classes.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-16 01:24:22 -05:00
Jeffrey Han
66016160a4 Song menu graphical updates.
- Added "selection-*" images from Xiaounlimited's "Nexus Ivory" skin.  These do the same thing as the F1-F3 keyboard buttons in the song menu.
- Removed the old wrench icon and replaced it with an "Other Options" button. F1 no longer opens the options menu.
- Moved the search bar to under the tabs and better simulate osu! behavior.  Removed the old search icon.
- Added solid black bars at the top and bottom of the song menu.  Moved the top divider closer to the end of the information text.  Cropped song button images to fit between the bars.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-15 21:38:54 -05:00
Jeffrey Han
4826798fba Reformatting of #20, and disable the hit error bar by default.
Added an option (in the "Custom" tab) to enable the bar.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-15 01:40:01 -05:00
Jeffrey Han
b7f86f1962 Merge pull request #20 from fluddokt/omaster
Visual changes:
- Larger hit circles
- Circle overlay after drawing circle
- Fade in approach circles
- Fade in sliders
- Fade out hit lighting
- Hit Error Bar
- Reverse Slider ball rotation on repeats
- Fill bg image to screen while keeping aspect ratio
- Added a few more resolutions
2015-02-15 00:45:43 -05:00
Jeffrey Han
c2793ae31c Some graphical improvements and fixes.
- The music position bar in the main menu is now clickable (changes track position).
- Fixed scroll bar height function, and merged all scroll bar drawing into a single Utils.drawScrollbar() method.
- Fixed the buggy song menu scroll bar.
- Scaled the sizes/positions of the main menu music icons (previously fixed/hardcoded).

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-15 00:25:07 -05:00
fd
5a2fbd82fa Removed Hit Error Bar during breaks
Keep Hit Error Ticks inside bar
Removed Miss Locations
2015-02-14 22:15:41 -05:00
fd
8c3604d4db Visual changes #2
Fill bg image to screen while keeping aspec ratio
Added a few more resolutions
2015-02-14 14:10:47 -05:00
fd
597c4bfb19 Visual Changes
mostly personal preferences though

Larger hit circles
Circle overlay after drawing circle
Fade in approach circles
Fade in sliders (I don't think it looks that bad)
Fade out hit lighting
Hit Error Bar
 Probably need an option for this.
Miss locations(I don't know)

Reverse Slider ball rotation on repeats
2015-02-14 13:45:14 -05:00
Jeffrey Han
54806303f4 Reformatting of #17 and #18, and minor bug fix in #17.
Fixed not losing any health at near-zero rotation angles.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-14 01:07:17 -05:00
Jeffrey Han
2c59b345b5 Merge pull request #17 from PizzaLovers007/master
Reworked Spinner
2015-02-14 00:37:55 -05:00
PizzaLovers007
e88ebbbea2 Removed extra debug code 2015-02-13 21:48:11 -06:00
PizzaLovers007
c891cbeafa Changed spinner calculations again
Sets the RPM to the average of the last 50 velocities read by the
cursor.
2015-02-13 21:46:17 -06:00
PizzaLovers007
8e6ecd2326 Removed extra debug code 2015-02-13 17:18:48 -06:00
PizzaLovers007
548e389724 Completely reworked how the spinner spins
Added a “weight” to the spinner to make the RPM more like osu!

May need to tweak constants to make the spinner feel more natural.
2015-02-13 17:12:04 -06:00
Jeffrey Han
ed2d3058ba Merge pull request #16 from SuperNascher/master
Implemented XDG base directory support for Unix-like operating systems.  This is disabled by default.  To use these directories, uncomment the line in pom.xml that sets the "XDG" system property when packaging opsu!.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-13 15:03:17 -05:00
Jeffrey Han
7cc4ff51d0 Follow-up to c6791c4.
- 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>
2015-02-13 03:45:38 -05:00
Jeffrey Han
c6791c4714 Added new menus, implemented using a generic ButtonMenu state.
New menus: beatmap options (erase scores/delete), delete beatmaps (single/all), reload songs.
- Pressing F3 or right-clicking in the song menu state will open the beatmap options menu.
- Pressing F5 in the song menu now opens a confirmation menu before reloading beatmaps.
- Deleted MainMenuExit state, which is replaced by MenuState.EXIT in ButtonMenu.
- Decreased Utils.FONT_XLARGE size (to fit in buttons).

Note: as of 800014e, song directory deletion is broken.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-13 02:43:34 -05:00
Jeffrey Han
4920508060 Quick fix for song groups with different preview times.
Also moved some negative track position checks around to catch more cases.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-12 14:52:51 -05:00
Jeffrey Han
f6eec5cd6c Follow-up to #15.
- Removed the temporary directory (Options.TMP_DIR), which is no longer needed.
- Excluded original Slick2D classes that were overridden in pom.xml.
- Formatting changes and documentation.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-12 03:52:19 -05:00
Jeffrey Han
800014ed4c Merge pull request #15 from fluddokt/omaster
MP3 Audio Streaming through modifying some of slick's openal files
2015-02-12 02:47:32 -05:00
Jeffrey Han
b69ff68d7c Added methods to delete songs and song groups.
- OsuGroupList.get().deleteSongGroup() will delete a song group from the list.
- OsuGroupList.get().deleteSong() will delete an individual song from the list (must be expanded), and will delete the song group if there are no remaining songs in the group.
- If possible, deleted beatmap files are moved to system trash (using JNA); otherwise, they are deleted immediately.  This is done through Utils.deleteToTrash().

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-12 02:27:33 -05:00
fd
a0bf2293cf Clean up and it doesn't throw that slick exception anymore. 2015-02-11 22:41:20 -05:00
Jeffrey Han
99bc944ed6 Minor updates.
- Draw the playfield background in the song menu if a background cannot be drawn for the focused beatmap.
- Added ScoreDB.deleteScore() method to delete a score from the database.
- Added @author tags for curve-related classes (by fluddokt, #12).

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-11 02:56:02 -05:00
Jeffrey Han
63271c125c Quick fix: rotate spinner circle. (fluddokt/opsu@da475df)
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-10 00:26:48 -05:00
Jeffrey Han
be3b94f5db Prevent downloading songs that are already loaded. (base: fluddokt/opsu/76778f8)
- 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>
2015-02-09 23:22:58 -05:00
Jeffrey Han
f56c02864b Updates and fixes from fluddokt/opsu@76778f8 and fluddokt/opsu@cf321e9.
- Rotate slider ball image along the curve.
- Show download speed and time remaining when hovering over the download info button.
- Maintain aspect ratio of beatmap background image during gameplay.
- Clear beatmap background image cache after reaching OsuFile.MAX_CACHE_SIZE.
- Multiply hit circle size by OsuHitObject.getXMultiplier().
- Scale MENU_BUTTON_BG based on SongMenu.MAX_SONG_BUTTONS.
- Fixed download search TextField retaining focus even after leaving the downloads menu.
- Include Unicode title/artist strings in searches.
- Parse x,y beatmap coordinates as floats (instead of integers), and only read Kiai time if present.
- Added 1600x1200 resolution.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-09 21:40:38 -05:00
fd
08406ac038 Changed some methods in OpenALStreamPlayer to synchornized methods.
Seems to work with ogg now too.

Hopefully this fixes it, but I don't 
actually know much about concurrency.

However it stills throws "Could not clear SoundStore sources, err"
and so it remains removed.
2015-02-09 21:33:37 -05:00
Terrence
6c7aac53f4 Revert "Revert "Further implementation of "weighted" spinner""
This reverts commit 582af96e12.
2015-02-09 17:58:04 -06:00
Terrence
582af96e12 Revert "Further implementation of "weighted" spinner"
This reverts commit 7ec6e81e8f.
2015-02-09 17:57:49 -06:00
Terrence
7ec6e81e8f Further implementation of "weighted" spinner
Current Issues:
- Need to handle change in direction better
- Spinning speed seems to be inaccurate
2015-02-09 17:57:20 -06:00
PizzaLovers007
826376a127 Initial Implementation of a "weighted" spinner
Added angular velocity and angular drag
2015-02-09 17:11:49 -06:00
fd
6883e2ab44 MP3 Audio Streaming through modifying some of slick's openal files
May rarly crash/not play on next music.
May have introduced other unknown bugs. 
This may be due to loading it async.
Also loading of ogg is not loaded async anymore as it seems it doesn't
work very well.
2015-02-08 23:48:55 -05:00
Jeffrey Han
29189fddff Changed theme song.
New track is "On the Bach" by Jingle Punks, from the YouTube Audio Library (https://www.youtube.com/audiolibrary/music).

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-04 03:43:23 -05:00
Jeffrey Han
b96a20e23f Small fixes.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-02 01:39:19 -05:00
Jeffrey Han
ec90d6fd03 Beatmap downloader improvements and fixes.
Updates:
- Added some buttons to downloads menu: clear inactive downloads, import beatmaps, reset search, and show/hide unranked maps.
- Small changes to OsuParser, OszUnpacker, and OsuGroupList (mostly adding return values) to allow parsing only newly unpacked beatmaps.
- Added alpha fade hover effect to MenuButton, as an alternative to expanding (used for 3-part menu buttons).
- Added text rendering fields to MenuButton (also for the 3-part menu buttons).
- Added sound effects to downloads menu.

Fixes:
- Check downloads for illegal filename characters, and remove them if necessary.
- The number of results and downloads shown now supports all resolutions.
- Confirmation dialog no longer appears when restarting the application (since downloads are static).
- Do not set a focus node immediately if the theme song will be played.
- Always play the theme song if no songs are loaded (even if disabled in settings).

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-02 00:15:16 -05:00
Jeffrey Han
cfc0449ab2 Small follow-up to 70c70fd.
- Page back/forward are now expanding buttons instead of static images.
- Fixed a mistake in DownloadList.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-01 02:53:01 -05:00
Jeffrey Han
70c70fd812 Implemented an internal beatmap downloader (using Bloodcat).
The downloads menu can be accessed through the button on the right side of the main menu.  The downloader supports searching and concurrent downloads (NOTE: this is limited by the download server!).  Double-click any search result to begin downloading it to the SongPacks directory; cancel the download by hitting the red 'x' in the upper-right corner.  A confirmation will appear if trying to quit opsu! while downloads are running.

New classes:
- Download: represents an individual download from a remote address to a local path, and provides status and progress information; downloads files using Java NIO.
- DownloadNode: holds a Download object as well as additional beatmap fields, and handles drawing.
- DownloadList: manages the current list of downloads.
- DownloadsMenu: game state controller.
- DownloadServer: interface for a beatmap download server.
- BloodcatServer: implements DownloadServer using Bloodcat.
- ReadableByteChannelWrapper: wrapper for ReadableByteChannel that tracks progress.

Added images:
- "downloads" image by @kouyang.
- "search-background" image from "Minimalist Miku" skin (listed in credits).
- "delete" icon by Visual Pharm (https://www.iconfinder.com/icons/27842/) under CC BY-ND 3.0.

Other changes:
- Added up/down/left/right Expand directions to MenuButton class.
- Removed width/height parameters from OsuParser (leftovers).

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-02-01 02:10:17 -05:00
Jeffrey Han
cb5a7d6a4b Added description for game mods.
These will appear on the bottom of the screen when hovering over the buttons in the options menu.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-01-30 03:45:06 -05:00
Jeffrey Han
84e463e8fb Added a listener for the end of music tracks.
Fixes a bug during gameplay where if the music track ends before the last hit object is processed (esp. spinners), the game would hang.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-01-29 21:24:21 -05:00
Jeffrey Han
e93fe25834 Code style cleanup from #12.
- Moved all curve-related classes into a new package.
- Added some fields and methods to Curve abstract class.
- Removed the old (no longer used) Bezier subclass.
- Changed Error throwing to ErrorHandler.error() calls.
- Formatted code.

Also fixed a crash when reaching the ranking screen with the "Auto" mod active.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-01-29 20:36:23 -05:00
Jeffrey Han
94d7ff37eb Merge pull request #12 from fluddokt/omaster
New slider curve types (CircumscribedCircle, LinearBezier) and other fixes.
- Better rendering of multi-repeat arrows.
- Fixed circle color ordering.
- Better multipliers for hit object coordinates.
2015-01-29 15:04:44 -05:00
Jeffrey Han
6fa8df955f Minor theme song fix.
Prevents a bug due to threading where the theme song can still be playing in the song menu (when songs are loaded) if the user clicks fast enough.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-01-29 03:57:55 -05:00
Jeffrey Han
baba1540a5 Javadoc fixes.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-01-29 03:17:53 -05:00
Jeffrey Han
f0858f657b Display time since achieving recent scores.
- Added history icon by Google: https://www.iconfinder.com/icons/326655/
- Draw history icon and elapsed time next to score buttons if they were achieved within 24 hours.  Conforming to osu! behavior, the elapsed time is not updated in real-time.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-01-29 03:05:09 -05:00
Jeffrey Han
0165abde56 Many quick bug fixes.
- Fixed bug when having "Sudden Death" and Easy "mods" enabled at the same time.  Additional "lives" are no longer granted.
- Fixed bug where GameMod active states weren't being reset upon restart.
- Fixed bug where GameMods were drawn as if inactive when viewing scores.  Alpha levels are now only set when drawing the button (i.e. calling GameMod.draw()).
- Moved large grade scaling into GameImage, and slightly padded the right side when drawing.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-01-29 01:50:26 -05:00
fd
0e9fd24754 Minor Fixes for beziers angles 2015-01-29 01:08:23 -05:00
Jeffrey Han
1ddeb3461d Moved ScoreData to separate file and renamed Scores to ScoreDB.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-01-29 00:56:30 -05:00
fd
07f6ef9479 Comments for previous commit 2015-01-29 00:37:25 -05:00