MineLittlePony/src/client/java/com/minelittlepony/client/gui/GuiPonySettings.java

114 lines
3.6 KiB
Java
Raw Normal View History

2019-03-23 20:49:34 +01:00
package com.minelittlepony.client.gui;
2019-03-23 20:49:34 +01:00
import com.minelittlepony.client.render.entities.MobRenderers;
import com.minelittlepony.common.MineLittlePony;
import com.minelittlepony.common.settings.PonyConfig;
import com.minelittlepony.common.settings.PonyLevel;
import com.minelittlepony.common.settings.PonyConfig.PonySettings;
import com.minelittlepony.gui.Checkbox;
import com.minelittlepony.gui.Label;
import com.minelittlepony.gui.SettingsPanel;
import com.minelittlepony.gui.Slider;
/**
* In-Game options menu.
*
*/
public class GuiPonySettings extends SettingsPanel {
private static final String OPTIONS_PREFIX = "minelp.options.";
private static final String PONY_LEVEL = OPTIONS_PREFIX + "ponylevel";
private static final String MOB_PREFIX = "minelp.mobs.";
private PonyConfig config;
public GuiPonySettings() {
2019-03-23 19:17:46 +01:00
config = MineLittlePony.getInstance().getConfig();
}
@Override
public void initGui() {
final int LEFT = width / 10;
final int RIGHT = mustScroll() ? LEFT : width - width / 3 - 16;
int row = mustScroll() ? 0 : 32;
if (!mustScroll()) {
addButton(new Label(width / 2, 12, getTitle(), -1, true));
}
addButton(new Label(LEFT, row += 15, PONY_LEVEL, -1));
addButton(new Slider(LEFT, row += 15, 0, 2, config.getPonyLevel().ordinal(), (int id, String name, float value) -> {
return format(PONY_LEVEL + "." + PonyLevel.valueFor(value).name().toLowerCase());
}, v -> {
PonyLevel level = PonyLevel.valueFor(v);
config.setPonyLevel(level);
return (float)level.ordinal();
}));
2018-10-21 17:19:00 +02:00
if (isCtrlKeyDown() && isShiftKeyDown()) {
2018-10-23 09:59:29 +02:00
addButton(new Label(LEFT, row += 30, "minelp.debug.scale", -1));
addButton(new Slider(LEFT, row += 15, 0.1F, 3, config.getGlobalScaleFactor(), (int id, String name, float value) -> {
return format("minelp.debug.scale.value", format(describeCurrentScale(value)));
2018-10-21 17:19:00 +02:00
}, v -> {
config.setGlobalScaleFactor(v);
return config.getGlobalScaleFactor();
}));
}
row += 15;
addButton(new Label(LEFT, row += 15, OPTIONS_PREFIX + "options", -1));
for (PonySettings i : PonySettings.values()) {
addButton(new Checkbox(LEFT, row += 15, OPTIONS_PREFIX + i.name().toLowerCase(), i.get(), i));
}
if (mustScroll()) {
row += 15;
} else {
row = 32;
}
addButton(new Label(RIGHT, row += 15, MOB_PREFIX + "title", -1));
for (MobRenderers i : MobRenderers.values()) {
addButton(new Checkbox(RIGHT, row += 15, MOB_PREFIX + i.name().toLowerCase(), i.get(), i));
}
}
2018-10-23 09:59:29 +02:00
public String describeCurrentScale(float value) {
if (value >= 3) {
return format("minelp.debug.scale.meg");
}
if (value == 2) {
return format("minelp.debug.scale.max");
}
if (value == 1) {
return format("minelp.debug.scale.mid");
}
if (value == 0.9F) {
return format("minelp.debug.scale.sa");
}
if (value <= 0.1F) {
return format("minelp.debug.scale.min");
}
return String.format("%f", value);
}
@Override
public void drawContents(int mouseX, int mouseY, float partialTicks) {
drawDefaultBackground();
super.drawContents(mouseX, mouseY, partialTicks);
}
@Override
public void onGuiClosed() {
config.save();
}
2018-09-07 21:16:07 +02:00
@Override
protected String getTitle() {
return OPTIONS_PREFIX + "title";
}
}