Fixed many crashes with B14, added color customization

This commit is contained in:
Anuken
2018-01-31 00:35:27 -05:00
parent 0c4f3dc612
commit 5be256212c
17 changed files with 169 additions and 46 deletions
@@ -0,0 +1,44 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.graphics.Color;
import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.scene.ui.Dialog;
import io.anuke.ucore.scene.ui.ImageButton;
import io.anuke.ucore.scene.ui.layout.Table;
import static io.anuke.mindustry.Vars.player;
import static io.anuke.mindustry.Vars.playerColors;
public class ColorPickDialog extends Dialog{
private Consumer<Color> cons;
public ColorPickDialog(){
super("", "dialog");
build();
}
private void build(){
Table table = new Table();
content().add(table);
for(int i = 0; i < playerColors.length; i ++){
Color color = playerColors[i];
ImageButton button = table.addImageButton("white", "toggle", 34, () -> {
cons.accept(color);
hide();
}).size(44, 48).pad(0).padBottom(-5.1f).get();
button.setChecked(player.getColor().equals(color));
button.getStyle().imageUpColor = color;
if(i%4 == 3){
table.row();
}
}
}
public void show(Consumer<Color> cons){
this.cons = cons;
show();
}
}
@@ -1,14 +1,17 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.graphics.Color;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.net.Net;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.scene.ui.ImageButton;
import io.anuke.ucore.util.Bundles;
import io.anuke.ucore.util.Strings;
import java.io.IOException;
import static io.anuke.mindustry.Vars.player;
import static io.anuke.mindustry.Vars.ui;
//TODO add port specification
@@ -29,6 +32,15 @@ public class HostDialog extends FloatingDialog{
Settings.save();
ui.listfrag.rebuild();
}).grow().pad(8);
ImageButton button = t.addImageButton("white", 40, () -> {
new ColorPickDialog().show(color -> {
player.color.set(color);
Settings.putInt("color", Color.rgba8888(color));
Settings.save();;
});
}).size(50f, 54f).get();
button.update(() -> button.getStyle().imageUpColor = player.getColor());
}).width(w).height(70f).pad(4);
content().row();
@@ -1,5 +1,6 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.utils.Array;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.io.Platform;
@@ -9,6 +10,7 @@ import io.anuke.ucore.core.Settings;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.scene.style.Drawable;
import io.anuke.ucore.scene.ui.Dialog;
import io.anuke.ucore.scene.ui.ImageButton;
import io.anuke.ucore.scene.ui.ScrollPane;
import io.anuke.ucore.scene.ui.TextButton;
import io.anuke.ucore.scene.ui.layout.Table;
@@ -16,6 +18,7 @@ import io.anuke.ucore.util.Bundles;
import io.anuke.ucore.util.Log;
import io.anuke.ucore.util.Strings;
import static io.anuke.mindustry.Vars.player;
import static io.anuke.mindustry.Vars.ui;
public class JoinDialog extends FloatingDialog {
@@ -40,7 +43,7 @@ public class JoinDialog extends FloatingDialog {
Platform.instance.addDialog(add.content().addField(Settings.getString("ip"), text ->{
Settings.putString("ip", text);
Settings.save();
}).size(340f, 54f).get(), 100);
}).size(320f, 54f).get(), 100);
add.content().row();
add.buttons().defaults().size(140f, 60f).pad(4f);
@@ -173,6 +176,16 @@ public class JoinDialog extends FloatingDialog {
Settings.put("name", text);
Settings.save();
}).grow().pad(8);
ImageButton button = t.addImageButton("white", 40, () -> {
new ColorPickDialog().show(color -> {
player.color.set(color);
Settings.putInt("color", Color.rgba8888(color));
Settings.save();
});
}).size(50f, 54f).get();
button.update(() -> button.getStyle().imageUpColor = player.getColor());
}).width(w).height(70f).pad(4);
content().row();
content().add(pane).width(w).pad(0);