add visual indicator for numeric values in the option menu
This commit is contained in:
parent
b6f2101c16
commit
7898b669f5
|
@ -1376,7 +1376,20 @@ public class Options {
|
||||||
} else if (type == OptionType.BOOLEAN)
|
} else if (type == OptionType.BOOLEAN)
|
||||||
bool = Boolean.parseBoolean(s);
|
bool = Boolean.parseBoolean(s);
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
public boolean isDragOption() {
|
||||||
|
return type == OptionType.NUMERIC;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMinValue() {
|
||||||
|
return min;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMaxValue() {
|
||||||
|
return max;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/** Map of option display names to GameOptions. */
|
/** Map of option display names to GameOptions. */
|
||||||
private static HashMap<String, GameOption> optionMap;
|
private static HashMap<String, GameOption> optionMap;
|
||||||
|
|
|
@ -558,9 +558,17 @@ public class OptionsMenu extends BasicGameState {
|
||||||
Color color = (focus) ? Color.cyan : Color.white;
|
Color color = (focus) ? Color.cyan : Color.white;
|
||||||
|
|
||||||
Fonts.MEDIUM.drawString(width / 30, y, option.getName(), color);
|
Fonts.MEDIUM.drawString(width / 30, y, option.getName(), color);
|
||||||
Fonts.MEDIUM.drawString(width / 2, y, option.getValueString(), color);
|
|
||||||
Fonts.SMALL.drawString(width / 30, y + textHeight, option.getDescription(), color);
|
Fonts.SMALL.drawString(width / 30, y + textHeight, option.getDescription(), color);
|
||||||
|
Fonts.MEDIUM.drawString(width / 2, y, option.getValueString(), color);
|
||||||
g.setColor(Colors.WHITE_ALPHA);
|
g.setColor(Colors.WHITE_ALPHA);
|
||||||
|
if (option.isDragOption()) {
|
||||||
|
float availableWidth = width / 2 - width / 30;
|
||||||
|
g.fillRect(width / 2, y + textHeight, 20, 10);
|
||||||
|
g.fillRect(width / 2 + availableWidth - 20, y + textHeight, 20, 10);
|
||||||
|
availableWidth -= 40 + 100;
|
||||||
|
float optionPercent = (float) (option.getIntegerValue() - option.getMinValue()) / (option.getMaxValue() - option.getMinValue());
|
||||||
|
g.fillRect(width / 2 + 20 + optionPercent * availableWidth, y + textHeight, 100, 10);
|
||||||
|
}
|
||||||
g.drawLine(0, y + textHeight, width, y + textHeight);
|
g.drawLine(0, y + textHeight, width, y + textHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user