Files
Mindustry/core/src/mindustry/ui/dialogs/HostDialog.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();
});
}
}