Added method for drawing tooltips.
Currently used for game mods and the music buttons in the main menu. Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
This commit is contained in:
@@ -150,8 +150,6 @@ public class ButtonMenu extends BasicGameState {
|
||||
|
||||
@Override
|
||||
public void draw(GameContainer container, StateBasedGame game, Graphics g) {
|
||||
super.draw(container, game, g);
|
||||
|
||||
int width = container.getWidth();
|
||||
int height = container.getHeight();
|
||||
|
||||
@@ -171,9 +169,21 @@ public class ButtonMenu extends BasicGameState {
|
||||
category.getName(), category.getColor());
|
||||
}
|
||||
|
||||
// buttons (TODO: draw descriptions when hovering)
|
||||
for (GameMod mod : GameMod.values())
|
||||
// buttons
|
||||
Input input = container.getInput();
|
||||
int mouseX = input.getMouseX(), mouseY = input.getMouseY();
|
||||
GameMod hoverMod = null;
|
||||
for (GameMod mod : GameMod.values()) {
|
||||
mod.draw();
|
||||
if (hoverMod == null && mod.contains(mouseX, mouseY))
|
||||
hoverMod = mod;
|
||||
}
|
||||
|
||||
super.draw(container, game, g);
|
||||
|
||||
// tooltips
|
||||
if (hoverMod != null && hoverMod.isImplemented())
|
||||
Utils.drawTooltip(g, hoverMod.getDescription(), true);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -280,6 +290,10 @@ public class ButtonMenu extends BasicGameState {
|
||||
// draw buttons
|
||||
for (int i = 0; i < buttons.length; i++)
|
||||
menuButtons[i].draw(buttons[i].getColor());
|
||||
|
||||
Utils.drawVolume(g);
|
||||
Utils.drawFPS();
|
||||
Utils.drawCursor();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -564,9 +578,6 @@ public class ButtonMenu extends BasicGameState {
|
||||
g.setBackground(Color.black);
|
||||
if (menuState != null)
|
||||
menuState.draw(container, game, g);
|
||||
Utils.drawVolume(g);
|
||||
Utils.drawFPS();
|
||||
Utils.drawCursor();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -259,6 +259,16 @@ public class MainMenu extends BasicGameState {
|
||||
Utils.drawVolume(g);
|
||||
Utils.drawFPS();
|
||||
Utils.drawCursor();
|
||||
|
||||
// tooltips
|
||||
if (musicPositionBarContains(mouseX, mouseY))
|
||||
Utils.drawTooltip(g, "Click to seek to a specific point in the song.", false);
|
||||
else if (musicPlay.contains(mouseX, mouseY))
|
||||
Utils.drawTooltip(g, (MusicController.isPlaying()) ? "Pause" : "Play", false);
|
||||
else if (musicNext.contains(mouseX, mouseY))
|
||||
Utils.drawTooltip(g, "Next track", false);
|
||||
else if (musicPrevious.contains(mouseX, mouseY))
|
||||
Utils.drawTooltip(g, "Previous track", false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -273,10 +283,13 @@ public class MainMenu extends BasicGameState {
|
||||
if (repoButton != null)
|
||||
repoButton.hoverUpdate(delta, mouseX, mouseY);
|
||||
downloadsButton.hoverUpdate(delta, mouseX, mouseY);
|
||||
// ensure only one button is in hover state at once
|
||||
if (musicPositionBarContains(mouseX, mouseY))
|
||||
mouseX = mouseY = -1;
|
||||
musicPlay.hoverUpdate(delta, mouseX, mouseY);
|
||||
musicPause.hoverUpdate(delta, mouseX, mouseY);
|
||||
if (musicPlay.contains(mouseX, mouseY))
|
||||
mouseX = mouseY = -1; // ensure only one button is in hover state at once
|
||||
mouseX = mouseY = -1;
|
||||
musicNext.hoverUpdate(delta, mouseX, mouseY);
|
||||
musicPrevious.hoverUpdate(delta, mouseX, mouseY);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user