101 lines
2.9 KiB
Java
101 lines
2.9 KiB
Java
package mindustry.ui.dialogs;
|
|
|
|
import arc.*;
|
|
import arc.scene.ui.*;
|
|
import arc.util.*;
|
|
import mindustry.*;
|
|
import mindustry.core.*;
|
|
import mindustry.game.EventType.*;
|
|
import mindustry.gen.*;
|
|
import mindustry.ui.*;
|
|
|
|
import java.io.*;
|
|
|
|
import static mindustry.Vars.*;
|
|
|
|
public class HostDialog extends BaseDialog{
|
|
float w = 300;
|
|
|
|
public HostDialog(){
|
|
super("@hostserver");
|
|
|
|
addCloseButton();
|
|
|
|
cont.table(t -> {
|
|
t.add("@name").padRight(10);
|
|
t.field(Core.settings.getString("name"), text -> {
|
|
player.name(text);
|
|
Core.settings.put("name", text);
|
|
ui.listfrag.rebuild();
|
|
}).grow().pad(8).get().setMaxLength(40);
|
|
|
|
ImageButton button = t.button(Tex.whiteui, Styles.squarei, 40, () -> {
|
|
new PaletteDialog().show(color -> {
|
|
player.color.set(color);
|
|
Core.settings.put("color-0", color.rgba());
|
|
});
|
|
}).size(54f).get();
|
|
button.update(() -> button.getStyle().imageUpColor = player.color());
|
|
}).width(w).height(70f).pad(4).colspan(3);
|
|
|
|
if(steam){
|
|
cont.row();
|
|
|
|
cont.add().width(65f);
|
|
|
|
cont.check("@steam.friendsonly", !Core.settings.getBool("steampublichost"), val -> Core.settings.put("steampublichost", !val)).colspan(2).left()
|
|
.with(c -> ui.addDescTooltip(c, "@steam.friendsonly.tooltip")).padBottom(15f).row();
|
|
}
|
|
|
|
cont.row();
|
|
|
|
cont.add().width(65f);
|
|
|
|
cont.button("@host", () -> {
|
|
if(Core.settings.getString("name").trim().isEmpty()){
|
|
ui.showInfo("@noname");
|
|
return;
|
|
}
|
|
|
|
runHost();
|
|
}).width(w).height(70f);
|
|
|
|
if(!steam){
|
|
cont.button("?", () -> ui.showInfo("@host.info")).size(65f, 70f).padLeft(6f);
|
|
}else{
|
|
cont.add().size(65f, 70f).padLeft(6f);
|
|
}
|
|
|
|
shown(() -> {
|
|
if(!steam){
|
|
Core.app.post(() -> Core.settings.getBoolOnce("hostinfo", () -> ui.showInfo("@host.info")));
|
|
}
|
|
});
|
|
}
|
|
|
|
public void runHost(){
|
|
ui.loadfrag.show("@hosting");
|
|
Time.runTask(5f, () -> {
|
|
try{
|
|
net.host(Vars.port);
|
|
player.admin = true;
|
|
Events.fire(new HostEvent());
|
|
|
|
if(steam && Core.settings.getBool("steampublichost")){
|
|
if(Version.modifier.contains("beta") || Version.modifier.contains("alpha")){
|
|
Core.settings.put("steampublichost", false);
|
|
platform.updateLobby();
|
|
Core.settings.getBoolOnce("betapublic", () -> ui.showInfo("@public.beta"));
|
|
}
|
|
}
|
|
|
|
|
|
}catch(IOException e){
|
|
ui.showException("@server.error", e);
|
|
}
|
|
ui.loadfrag.hide();
|
|
hide();
|
|
});
|
|
}
|
|
}
|