Add option to color main menu logo based on the cursor color (close #82)
This commit is contained in:
parent
64a3a85eb0
commit
c974374d67
|
@ -445,6 +445,7 @@ public class Options {
|
||||||
},
|
},
|
||||||
DYNAMIC_BACKGROUND ("Enable Dynamic Backgrounds", "DynamicBackground", "The song background will be used as the main menu background.", true),
|
DYNAMIC_BACKGROUND ("Enable Dynamic Backgrounds", "DynamicBackground", "The song background will be used as the main menu background.", true),
|
||||||
LOAD_VERBOSE ("Show Detailed Loading Progress", "LoadVerbose", "Display more specific loading information in the splash screen.", false),
|
LOAD_VERBOSE ("Show Detailed Loading Progress", "LoadVerbose", "Display more specific loading information in the splash screen.", false),
|
||||||
|
COLOR_MAIN_MENU_LOGO ("Use cursor color as main menu logo tint", "ColorMainMenuLogo", "Colorful main menu logo", false),
|
||||||
MASTER_VOLUME ("Master Volume", "VolumeUniversal", "Global volume level.", 35, 0, 100) {
|
MASTER_VOLUME ("Master Volume", "VolumeUniversal", "Global volume level.", 35, 0, 100) {
|
||||||
@Override
|
@Override
|
||||||
public void setValue(int value) {
|
public void setValue(int value) {
|
||||||
|
@ -1545,6 +1546,12 @@ public class Options {
|
||||||
*/
|
*/
|
||||||
public static boolean isLoadVerbose() { return GameOption.LOAD_VERBOSE.getBooleanValue(); }
|
public static boolean isLoadVerbose() { return GameOption.LOAD_VERBOSE.getBooleanValue(); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether or not to color the main menu logo.
|
||||||
|
* @return true if enabled
|
||||||
|
*/
|
||||||
|
public static boolean isColorMainMenuLogo() { return GameOption.COLOR_MAIN_MENU_LOGO.getBooleanValue(); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the track checkpoint time.
|
* Returns the track checkpoint time.
|
||||||
* @return the checkpoint time (in ms)
|
* @return the checkpoint time (in ms)
|
||||||
|
|
|
@ -32,11 +32,8 @@ import itdelatrisu.opsu.beatmap.BeatmapSetNode;
|
||||||
import itdelatrisu.opsu.beatmap.TimingPoint;
|
import itdelatrisu.opsu.beatmap.TimingPoint;
|
||||||
import itdelatrisu.opsu.downloads.Updater;
|
import itdelatrisu.opsu.downloads.Updater;
|
||||||
import itdelatrisu.opsu.states.ButtonMenu.MenuState;
|
import itdelatrisu.opsu.states.ButtonMenu.MenuState;
|
||||||
import itdelatrisu.opsu.ui.Colors;
|
import itdelatrisu.opsu.ui.*;
|
||||||
import itdelatrisu.opsu.ui.Fonts;
|
|
||||||
import itdelatrisu.opsu.ui.MenuButton;
|
|
||||||
import itdelatrisu.opsu.ui.MenuButton.Expand;
|
import itdelatrisu.opsu.ui.MenuButton.Expand;
|
||||||
import itdelatrisu.opsu.ui.UI;
|
|
||||||
import itdelatrisu.opsu.ui.animations.AnimatedValue;
|
import itdelatrisu.opsu.ui.animations.AnimatedValue;
|
||||||
import itdelatrisu.opsu.ui.animations.AnimationEquation;
|
import itdelatrisu.opsu.ui.animations.AnimationEquation;
|
||||||
|
|
||||||
|
@ -126,6 +123,9 @@ public class MainMenu extends BasicGameState {
|
||||||
private Input input;
|
private Input input;
|
||||||
private final int state;
|
private final int state;
|
||||||
|
|
||||||
|
private float hue = 0;
|
||||||
|
private boolean huedone = false;
|
||||||
|
|
||||||
public MainMenu(int state) {
|
public MainMenu(int state) {
|
||||||
this.state = state;
|
this.state = state;
|
||||||
}
|
}
|
||||||
|
@ -273,14 +273,16 @@ public class MainMenu extends BasicGameState {
|
||||||
|
|
||||||
Double position = MusicController.getBeatProgress();
|
Double position = MusicController.getBeatProgress();
|
||||||
|
|
||||||
|
// logo
|
||||||
|
Color color = Options.isColorMainMenuLogo() ? Cursor.lastCursorColor : Color.white;
|
||||||
if (position != null) {
|
if (position != null) {
|
||||||
double scale = 1 - (0 - position) * 0.05;
|
double scale = 1 - (0 - position) * 0.05;
|
||||||
logo.draw(Color.white, (float) scale);
|
logo.draw(color, (float) scale);
|
||||||
Image piece = GameImage.MENU_LOGO_PIECE.getImage().getScaledCopy(logo.getCurrentScale());
|
Image piece = GameImage.MENU_LOGO_PIECE.getImage().getScaledCopy(logo.getCurrentScale());
|
||||||
float scaleposmodx = piece.getWidth() / 2;
|
float scaleposmodx = piece.getWidth() / 2;
|
||||||
float scaleposmody = piece.getHeight() / 2;
|
float scaleposmody = piece.getHeight() / 2;
|
||||||
piece.rotate((float)(position * 360));
|
piece.rotate((float)(position * 360));
|
||||||
piece.draw(logo.getX() - scaleposmodx, logo.getY() - scaleposmody);
|
piece.draw(logo.getX() - scaleposmodx, logo.getY() - scaleposmody, color);
|
||||||
Image logoCopy = GameImage.MENU_LOGO.getImage().getScaledCopy(logo.getCurrentScale() / (float) scale * 1.05f);
|
Image logoCopy = GameImage.MENU_LOGO.getImage().getScaledCopy(logo.getCurrentScale() / (float) scale * 1.05f);
|
||||||
scaleposmodx = logoCopy.getWidth() / 2;
|
scaleposmodx = logoCopy.getWidth() / 2;
|
||||||
scaleposmody = logoCopy.getHeight() / 2;
|
scaleposmody = logoCopy.getHeight() / 2;
|
||||||
|
@ -289,7 +291,7 @@ public class MainMenu extends BasicGameState {
|
||||||
logoCopy.draw(logo.getX() - scaleposmodx, logo.getY() - scaleposmody, Colors.GHOST_LOGO);
|
logoCopy.draw(logo.getX() - scaleposmodx, logo.getY() - scaleposmody, Colors.GHOST_LOGO);
|
||||||
Colors.GHOST_LOGO.a = a;
|
Colors.GHOST_LOGO.a = a;
|
||||||
} else {
|
} else {
|
||||||
logo.draw();
|
logo.draw(color);
|
||||||
}
|
}
|
||||||
|
|
||||||
// draw music buttons
|
// draw music buttons
|
||||||
|
|
|
@ -58,7 +58,8 @@ public class OptionsMenu extends BasicGameState implements OptionsOverlay.Parent
|
||||||
GameOption.SCREENSHOT_FORMAT,
|
GameOption.SCREENSHOT_FORMAT,
|
||||||
GameOption.DYNAMIC_BACKGROUND,
|
GameOption.DYNAMIC_BACKGROUND,
|
||||||
GameOption.LOAD_HD_IMAGES,
|
GameOption.LOAD_HD_IMAGES,
|
||||||
GameOption.LOAD_VERBOSE
|
GameOption.LOAD_VERBOSE,
|
||||||
|
GameOption.COLOR_MAIN_MENU_LOGO,
|
||||||
}),
|
}),
|
||||||
new OptionTab("Music", new GameOption[] {
|
new OptionTab("Music", new GameOption[] {
|
||||||
GameOption.MASTER_VOLUME,
|
GameOption.MASTER_VOLUME,
|
||||||
|
|
|
@ -76,6 +76,7 @@ public class Cursor {
|
||||||
public static Color lastMirroredObjColor = Color.white;
|
public static Color lastMirroredObjColor = Color.white;
|
||||||
public static Color nextObjColor = Color.white;
|
public static Color nextObjColor = Color.white;
|
||||||
public static Color nextMirroredObjColor = Color.white;
|
public static Color nextMirroredObjColor = Color.white;
|
||||||
|
public static Color lastCursorColor = Color.white;
|
||||||
|
|
||||||
private boolean isMirrored;
|
private boolean isMirrored;
|
||||||
|
|
||||||
|
@ -177,7 +178,7 @@ public class Cursor {
|
||||||
if (isMirrored) {
|
if (isMirrored) {
|
||||||
filter = Dancer.cursorColorMirrorOverride.getMirrorColor();
|
filter = Dancer.cursorColorMirrorOverride.getMirrorColor();
|
||||||
} else {
|
} else {
|
||||||
filter = Dancer.cursorColorOverride.getColor();
|
lastCursorColor = filter = Dancer.cursorColorOverride.getColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
// draw a fading trail
|
// draw a fading trail
|
||||||
|
|
Loading…
Reference in New Issue
Block a user