Added language select menu

This commit is contained in:
Anuken
2018-01-18 22:13:45 -05:00
parent 345537cdd9
commit 3b8b3dc345
13 changed files with 436 additions and 349 deletions

View File

@@ -1,6 +1,8 @@
package io.anuke.mindustry.ui;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import io.anuke.ucore.UCore;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.function.Listenable;
import io.anuke.ucore.scene.ui.Button;
@@ -34,11 +36,15 @@ public class MenuButton extends Button{
added = true;
String style = "title";
float scale = 4f;
BitmapFont font = Core.skin.getFont("title");
if(hasInvalid){
style = "default";
scale = Unit.dp.scl(1f);
}
add(text, style, scale);
add(text, style, scale).color(hasInvalid ? Color.DARK_GRAY : Color.WHITE);
if(hasInvalid){
row();
UCore.log(Core.font.getData().capHeight, Core.font.getData().down, Core.font.getData().lineHeight, Core.font.getData().ascent);
add(text, style, scale).padTop(Unit.dp.scl(-Core.font.getData().lineHeight * scale * 2f - 4f)).color(Color.WHITE);
}
}
}

View File

@@ -1,12 +1,47 @@
package io.anuke.mindustry.ui.dialogs;
import io.anuke.mindustry.Vars;
import io.anuke.ucore.UCore;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.scene.ui.ButtonGroup;
import io.anuke.ucore.scene.ui.ScrollPane;
import io.anuke.ucore.scene.ui.TextButton;
import io.anuke.ucore.scene.ui.layout.Table;
import java.util.Locale;
public class LanguageDialog extends FloatingDialog{
private Locale[] locales = {Locale.ENGLISH, Locale.FRENCH, new Locale("es", "LA"), new Locale("pt", "BR")};
private Locale[] locales = {Locale.ENGLISH, new Locale("fr", "FR"), new Locale("es", "LA"), new Locale("pt", "BR")};
public LanguageDialog(){
super("$text.language");
super("$text.settings.language");
addCloseButton();
setup();
}
private void setup(){
Table langs = new Table();
langs.marginRight(24f).marginLeft(24f);
ScrollPane pane = new ScrollPane(langs, "clear");
pane.setFadeScrollBars(false);
ButtonGroup<TextButton> group = new ButtonGroup<>();
for(Locale loc : locales){
TextButton button = new TextButton(loc.getDisplayName(loc), "toggle");
button.setChecked(Vars.ui.getLocale().equals(loc));
button.clicked(() -> {
if(Vars.ui.getLocale().equals(loc)) return;
Settings.putString("locale", loc.toString());
Settings.save();
UCore.log("Setting locale: " + loc.toString());
Vars.ui.showInfo("$text.language.restart");
});
langs.add(button).group(group).update(t -> {
t.setChecked(loc.equals(Vars.ui.getLocale()));
}).size(400f, 60f).row();
}
content().add(pane);
}
}

View File

@@ -81,11 +81,10 @@ public class SettingsMenuDialog extends SettingsDialog{
menu.addButton("$text.settings.graphics", () -> visible(1));
menu.row();
menu.addButton("$text.settings.sound", () -> visible(2));
if(!Vars.android) {
menu.row();
menu.addButton("$text.settings.controls", Vars.ui.controls::show);
}
menu.row();
menu.addButton("$text.settings.controls", Vars.ui.controls::show);
menu.row();
menu.addButton("$text.settings.language", Vars.ui.language::show);
prefs.clearChildren();
prefs.add(menu);

View File

@@ -23,7 +23,7 @@ public class MenuFragment implements Fragment{
PressGroup group = new PressGroup();
float scale = 4f;
defaults().size(100*scale, 21*scale).pad(-10f);
defaults().size(140*scale, 21*scale).pad(-10f);
add(new MenuButton("$text.play", group, ui.levels::show));
row();