diff --git a/core/src/io/anuke/mindustry/ui/dialogs/ModsDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/ModsDialog.java index fd2c0d4052..aeff1ee133 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/ModsDialog.java @@ -98,7 +98,7 @@ public class ModsDialog extends FloatingDialog{ void setup(){ cont.clear(); - cont.defaults().width(mobile ? 500 : 520f).pad(4); + cont.defaults().width(mobile ? 500 : 560f).pad(4); cont.add("$mod.reloadrequired").visible(mods::requiresReload).center().get().setAlignment(Align.center); cont.row(); if(!(mods.all().isEmpty() && mods.disabled().isEmpty())){ diff --git a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java index a6f7648b31..a88d87bd81 100644 --- a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java +++ b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java @@ -39,7 +39,7 @@ import static io.anuke.mindustry.Vars.*; public class DesktopLauncher extends ClientLauncher{ public final static String discordID = "610508934456934412"; - boolean useDiscord = OS.is64Bit, showConsole = OS.getPropertyNotNull("user.name").equals("anuke"); + boolean useDiscord = OS.is64Bit, loadError = false; static{ if(!Charset.forName("US-ASCII").newEncoder().canEncode(System.getProperty("user.name", ""))){ @@ -91,67 +91,69 @@ public class DesktopLauncher extends ClientLauncher{ } } - if(showConsole){ - StringBuilder base = new StringBuilder(); - Log.setLogger(new LogHandler(){ - @Override - public void print(String text, Object... args){ - String out = Log.format(text, false, args); + StringBuilder base = new StringBuilder(); + Log.setLogger(new LogHandler(){ + @Override + public void print(String text, Object... args){ + String out = Log.format(text, false, args); - base.append(out).append("\n"); - } - }); + base.append(out).append("\n"); + } + }); - Events.on(ClientLoadEvent.class, event -> { - Label[] label = {null}; - boolean[] visible = {false}; - Core.scene.table(t -> { - t.touchable(Touchable.disabled); - t.top().left(); - t.update(() -> { - if(Core.input.keyTap(KeyCode.BACKTICK)){ - visible[0] = !visible[0]; - } - - t.toFront(); - }); - t.table(Styles.black3, f -> label[0] = f.add("").get()).visible(() -> visible[0]); - label[0].getText().append(base); - }); - - Log.setLogger(new LogHandler(){ - @Override - public void print(String text, Object... args){ - super.print(text, args); - String out = Log.format(text, false, args); - - int maxlen = 2048; - - if(label[0].getText().length() > maxlen){ - label[0].setText(label[0].getText().substring(label[0].getText().length() - maxlen)); - } - - label[0].getText().append(out).append("\n"); - label[0].invalidateHierarchy(); + Events.on(ClientLoadEvent.class, event -> { + Label[] label = {null}; + boolean[] visible = {false}; + Core.scene.table(t -> { + t.touchable(Touchable.disabled); + t.top().left(); + t.update(() -> { + if(Core.input.keyTap(KeyCode.BACKTICK) && (loadError || System.getProperty("user.name").equals("anuke"))){ + visible[0] = !visible[0]; } + + t.toFront(); }); + t.table(Styles.black3, f -> label[0] = f.add("").get()).visible(() -> visible[0]); + label[0].getText().append(base); }); - } + + Log.setLogger(new LogHandler(){ + @Override + public void print(String text, Object... args){ + super.print(text, args); + String out = Log.format(text, false, args); + + int maxlen = 2048; + + if(label[0].getText().length() > maxlen){ + label[0].setText(label[0].getText().substring(label[0].getText().length() - maxlen)); + } + + label[0].getText().append(out).append("\n"); + label[0].invalidateHierarchy(); + } + }); + }); try{ try{ SteamAPI.loadLibraries(); }catch(Throwable t){ logSteamError(t); - fallbackSteam(); } if(!SteamAPI.init()){ + loadError = true; Log.err("Steam client not running."); }else{ initSteam(args); Vars.steam = true; } + + if(SteamAPI.restartAppIfNecessary(SVars.steamID)){ + System.exit(0); + } }catch(Throwable e){ steam = false; Log.err("Failed to load Steam native libraries."); @@ -161,6 +163,7 @@ public class DesktopLauncher extends ClientLauncher{ } void logSteamError(Throwable e){ + loadError = true; Log.err(e); try(OutputStream s = new FileOutputStream(new File("steam-error-log-" + System.nanoTime() + ".txt"))){ String log = Strings.parseException(e, true);