Made game autosave when quitting
This commit is contained in:
@@ -37,6 +37,10 @@ public class Saves {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SaveSlot getCurrent() {
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
|
||||||
public void update(){
|
public void update(){
|
||||||
if(!GameState.is(State.menu) && !GameState.is(State.dead) && current != null && current.isAutosave()){
|
if(!GameState.is(State.menu) && !GameState.is(State.dead) && current != null && current.isAutosave()){
|
||||||
time += Timers.delta();
|
time += Timers.delta();
|
||||||
|
|||||||
@@ -2,15 +2,19 @@ package io.anuke.mindustry.ui;
|
|||||||
|
|
||||||
import static io.anuke.mindustry.Vars.ui;
|
import static io.anuke.mindustry.Vars.ui;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.utils.reflect.ClassReflection;
|
||||||
import io.anuke.mindustry.Vars;
|
import io.anuke.mindustry.Vars;
|
||||||
import io.anuke.mindustry.core.GameState;
|
import io.anuke.mindustry.core.GameState;
|
||||||
import io.anuke.mindustry.core.GameState.State;
|
import io.anuke.mindustry.core.GameState.State;
|
||||||
|
import io.anuke.ucore.UCore;
|
||||||
|
import io.anuke.ucore.core.Timers;
|
||||||
import io.anuke.ucore.scene.Element;
|
import io.anuke.ucore.scene.Element;
|
||||||
import io.anuke.ucore.scene.builders.build;
|
import io.anuke.ucore.scene.builders.build;
|
||||||
import io.anuke.ucore.scene.builders.imagebutton;
|
import io.anuke.ucore.scene.builders.imagebutton;
|
||||||
import io.anuke.ucore.scene.ui.ConfirmDialog;
|
import io.anuke.ucore.scene.ui.ConfirmDialog;
|
||||||
import io.anuke.ucore.scene.ui.ImageButton;
|
import io.anuke.ucore.scene.ui.ImageButton;
|
||||||
import io.anuke.ucore.scene.ui.layout.Cell;
|
import io.anuke.ucore.scene.ui.layout.Cell;
|
||||||
|
import io.anuke.ucore.util.Bundles;
|
||||||
|
|
||||||
public class MenuDialog extends FloatingDialog{
|
public class MenuDialog extends FloatingDialog{
|
||||||
private SaveDialog save = new SaveDialog();
|
private SaveDialog save = new SaveDialog();
|
||||||
@@ -57,6 +61,7 @@ public class MenuDialog extends FloatingDialog{
|
|||||||
content().row();
|
content().row();
|
||||||
content().addButton("$text.quit", () -> {
|
content().addButton("$text.quit", () -> {
|
||||||
new ConfirmDialog("$text.confirm", "$text.quit.confirm", () -> {
|
new ConfirmDialog("$text.confirm", "$text.quit.confirm", () -> {
|
||||||
|
runSave();
|
||||||
hide();
|
hide();
|
||||||
GameState.set(State.menu);
|
GameState.set(State.menu);
|
||||||
}){
|
}){
|
||||||
@@ -89,6 +94,7 @@ public class MenuDialog extends FloatingDialog{
|
|||||||
|
|
||||||
new imagebutton("icon-quit", isize, () -> {
|
new imagebutton("icon-quit", isize, () -> {
|
||||||
new ConfirmDialog("$text.confirm", "$text.quit.confirm", () -> {
|
new ConfirmDialog("$text.confirm", "$text.quit.confirm", () -> {
|
||||||
|
runSave();
|
||||||
hide();
|
hide();
|
||||||
GameState.set(State.menu);
|
GameState.set(State.menu);
|
||||||
}){{
|
}){{
|
||||||
@@ -106,4 +112,22 @@ public class MenuDialog extends FloatingDialog{
|
|||||||
build.end();
|
build.end();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void runSave(){
|
||||||
|
if(Vars.control.getSaves().getCurrent() == null ||
|
||||||
|
!Vars.control.getSaves().getCurrent().isAutosave()) return;
|
||||||
|
|
||||||
|
Vars.ui.showLoading("$text.saveload");
|
||||||
|
|
||||||
|
Timers.runTask(5f, () -> {
|
||||||
|
Vars.ui.hideLoading();
|
||||||
|
try{
|
||||||
|
Vars.control.getSaves().getCurrent().save();
|
||||||
|
}catch(Throwable e){
|
||||||
|
e = (e.getCause() == null ? e : e.getCause());
|
||||||
|
|
||||||
|
Vars.ui.showError("[orange]"+ Bundles.get("text.savefail")+"\n[white]" + ClassReflection.getSimpleName(e.getClass()) + ": " + e.getMessage() + "\n" + "at " + e.getStackTrace()[0].getFileName() + ":" + e.getStackTrace()[0].getLineNumber());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ public class SaveDialog extends LoadDialog{
|
|||||||
}
|
}
|
||||||
|
|
||||||
void save(SaveSlot slot){
|
void save(SaveSlot slot){
|
||||||
|
|
||||||
Vars.ui.showLoading("$text.saveload");
|
Vars.ui.showLoading("$text.saveload");
|
||||||
|
|
||||||
Timers.runTask(5f, () -> {
|
Timers.runTask(5f, () -> {
|
||||||
|
|||||||
Reference in New Issue
Block a user