Files
Mindustry/core/src/mindustry/ui/dialogs/SaveDialog.java
2020-10-02 19:51:30 -04:00

61 lines
1.4 KiB
Java

package mindustry.ui.dialogs;
import arc.*;
import arc.scene.ui.*;
import arc.util.*;
import mindustry.game.Saves.*;
import mindustry.gen.*;
import static mindustry.Vars.*;
public class SaveDialog extends LoadDialog{
public SaveDialog(){
super("@savegame");
update(() -> {
if(state.isMenu() && isShown()){
hide();
}
});
}
@Override
public void addSetup(){
buttons.button("@save.new", Icon.add, () ->
ui.showTextInput("@save", "@save.newslot", 30, "",
text -> ui.loadAnd("@saving", () -> {
control.saves.addSave(text);
Core.app.post(() -> Core.app.post(this::setup));
}))).fillX().margin(10f);
}
@Override
public void modifyButton(TextButton button, SaveSlot slot){
button.clicked(() -> {
if(button.childrenPressed()) return;
ui.showConfirm("@overwrite", "@save.overwrite", () -> save(slot));
});
}
void save(SaveSlot slot){
ui.loadfrag.show("@saving");
Time.runTask(5f, () -> {
hide();
ui.loadfrag.hide();
try{
slot.save();
}catch(Throwable e){
e.printStackTrace();
ui.showException("[accent]" + Core.bundle.get("savefail"), e);
}
});
}
}