This commit is contained in:
Anuken
2019-10-30 00:27:17 -04:00
parent 77dbeed890
commit fcbcdfc5d9
2 changed files with 47 additions and 44 deletions

View File

@ -98,7 +98,7 @@ public class ModsDialog extends FloatingDialog{
void setup(){ void setup(){
cont.clear(); 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.add("$mod.reloadrequired").visible(mods::requiresReload).center().get().setAlignment(Align.center);
cont.row(); cont.row();
if(!(mods.all().isEmpty() && mods.disabled().isEmpty())){ if(!(mods.all().isEmpty() && mods.disabled().isEmpty())){

View File

@ -39,7 +39,7 @@ import static io.anuke.mindustry.Vars.*;
public class DesktopLauncher extends ClientLauncher{ public class DesktopLauncher extends ClientLauncher{
public final static String discordID = "610508934456934412"; public final static String discordID = "610508934456934412";
boolean useDiscord = OS.is64Bit, showConsole = OS.getPropertyNotNull("user.name").equals("anuke"); boolean useDiscord = OS.is64Bit, loadError = false;
static{ static{
if(!Charset.forName("US-ASCII").newEncoder().canEncode(System.getProperty("user.name", ""))){ 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();
StringBuilder base = new StringBuilder(); Log.setLogger(new LogHandler(){
Log.setLogger(new LogHandler(){ @Override
@Override public void print(String text, Object... args){
public void print(String text, Object... args){ String out = Log.format(text, false, args);
String out = Log.format(text, false, args);
base.append(out).append("\n"); base.append(out).append("\n");
} }
}); });
Events.on(ClientLoadEvent.class, event -> { Events.on(ClientLoadEvent.class, event -> {
Label[] label = {null}; Label[] label = {null};
boolean[] visible = {false}; boolean[] visible = {false};
Core.scene.table(t -> { Core.scene.table(t -> {
t.touchable(Touchable.disabled); t.touchable(Touchable.disabled);
t.top().left(); t.top().left();
t.update(() -> { t.update(() -> {
if(Core.input.keyTap(KeyCode.BACKTICK)){ if(Core.input.keyTap(KeyCode.BACKTICK) && (loadError || System.getProperty("user.name").equals("anuke"))){
visible[0] = !visible[0]; 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();
} }
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{
try{ try{
SteamAPI.loadLibraries(); SteamAPI.loadLibraries();
}catch(Throwable t){ }catch(Throwable t){
logSteamError(t); logSteamError(t);
fallbackSteam();
} }
if(!SteamAPI.init()){ if(!SteamAPI.init()){
loadError = true;
Log.err("Steam client not running."); Log.err("Steam client not running.");
}else{ }else{
initSteam(args); initSteam(args);
Vars.steam = true; Vars.steam = true;
} }
if(SteamAPI.restartAppIfNecessary(SVars.steamID)){
System.exit(0);
}
}catch(Throwable e){ }catch(Throwable e){
steam = false; steam = false;
Log.err("Failed to load Steam native libraries."); Log.err("Failed to load Steam native libraries.");
@ -161,6 +163,7 @@ public class DesktopLauncher extends ClientLauncher{
} }
void logSteamError(Throwable e){ void logSteamError(Throwable e){
loadError = true;
Log.err(e); Log.err(e);
try(OutputStream s = new FileOutputStream(new File("steam-error-log-" + System.nanoTime() + ".txt"))){ try(OutputStream s = new FileOutputStream(new File("steam-error-log-" + System.nanoTime() + ".txt"))){
String log = Strings.parseException(e, true); String log = Strings.parseException(e, true);