Fixed rules not saving / Memory usage reduction

This commit is contained in:
Anuken
2019-05-14 11:48:14 -04:00
parent 4d40af6ac0
commit 0e869f3cb5
4 changed files with 21 additions and 13 deletions

View File

@@ -21,6 +21,7 @@ import io.anuke.mindustry.Vars;
import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.core.Platform; import io.anuke.mindustry.core.Platform;
import io.anuke.mindustry.game.*; import io.anuke.mindustry.game.*;
import io.anuke.mindustry.io.JsonIO;
import io.anuke.mindustry.io.MapIO; import io.anuke.mindustry.io.MapIO;
import io.anuke.mindustry.maps.Map; import io.anuke.mindustry.maps.Map;
import io.anuke.mindustry.ui.dialogs.FloatingDialog; import io.anuke.mindustry.ui.dialogs.FloatingDialog;
@@ -254,6 +255,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
private void save(){ private void save(){
String name = editor.getTags().get("name", "").trim(); String name = editor.getTags().get("name", "").trim();
editor.getTags().put("rules", JsonIO.write(state.rules));
if(name.isEmpty()){ if(name.isEmpty()){
infoDialog.show(); infoDialog.show();

View File

@@ -7,9 +7,7 @@ import io.anuke.arc.graphics.Color;
import io.anuke.arc.scene.ui.ScrollPane; import io.anuke.arc.scene.ui.ScrollPane;
import io.anuke.arc.scene.ui.layout.Cell; import io.anuke.arc.scene.ui.layout.Cell;
import io.anuke.arc.scene.ui.layout.Table; import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.util.OS; import io.anuke.arc.util.*;
import io.anuke.arc.util.Strings;
import io.anuke.arc.util.Time;
import io.anuke.mindustry.graphics.Pal; import io.anuke.mindustry.graphics.Pal;
import io.anuke.mindustry.io.Contributors; import io.anuke.mindustry.io.Contributors;
import io.anuke.mindustry.io.Contributors.Contributor; import io.anuke.mindustry.io.Contributors.Contributor;
@@ -27,7 +25,10 @@ public class AboutDialog extends FloatingDialog{
super("$about.button"); super("$about.button");
if(!ios){ if(!ios){
Contributors.getContributors(out -> contributors = out, Throwable::printStackTrace); shown(() -> Contributors.getContributors(out -> {
contributors = out;
Core.app.post(this::setup);
}, Throwable::printStackTrace));
} }
shown(this::setup); shown(this::setup);

View File

@@ -24,15 +24,17 @@ public class ChangelogDialog extends FloatingDialog{
cont.add("$changelog.loading"); cont.add("$changelog.loading");
if(!ios && !OS.isMac){ shown(() -> {
Changelogs.getChangelog(result -> { if(!ios && !OS.isMac){
versions = result; Changelogs.getChangelog(result -> {
Core.app.post(this::setup); versions = result;
}, t -> { Core.app.post(this::setup);
Log.err(t); }, t -> {
Core.app.post(this::setup); Log.err(t);
}); Core.app.post(this::setup);
} });
}
});
} }
void setup(){ void setup(){

View File

@@ -3,10 +3,12 @@ package io.anuke.mindustry.ui.dialogs;
import io.anuke.arc.function.*; import io.anuke.arc.function.*;
import io.anuke.arc.graphics.Color; import io.anuke.arc.graphics.Color;
import io.anuke.arc.scene.ui.layout.Table; import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.util.Log;
import io.anuke.arc.util.Strings; import io.anuke.arc.util.Strings;
import io.anuke.mindustry.core.Platform; import io.anuke.mindustry.core.Platform;
import io.anuke.mindustry.game.Rules; import io.anuke.mindustry.game.Rules;
import io.anuke.mindustry.graphics.Pal; import io.anuke.mindustry.graphics.Pal;
import io.anuke.mindustry.io.JsonIO;
import static io.anuke.mindustry.Vars.tilesize; import static io.anuke.mindustry.Vars.tilesize;
@@ -24,6 +26,7 @@ public class CustomRulesDialog extends FloatingDialog{
} }
public void show(Rules rules, Supplier<Rules> resetter){ public void show(Rules rules, Supplier<Rules> resetter){
Log.info("Shown: " + JsonIO.write(rules));
this.rules = rules; this.rules = rules;
this.resetter = resetter; this.resetter = resetter;
show(); show();