From 0dd3736f2aa44216c7f3b8b8dcf3f361e90a2311 Mon Sep 17 00:00:00 2001 From: "(G_H)" <33775693+CKHammer@users.noreply.github.com> Date: Sun, 23 Jun 2019 17:58:42 +0800 Subject: [PATCH] Add files via upload --- .../mindustry/ui/dialogs/SaveDialog.java | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 core/src/io/anuke/mindustry/ui/dialogs/SaveDialog.java diff --git a/core/src/io/anuke/mindustry/ui/dialogs/SaveDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/SaveDialog.java new file mode 100644 index 0000000000..1a3966b4d1 --- /dev/null +++ b/core/src/io/anuke/mindustry/ui/dialogs/SaveDialog.java @@ -0,0 +1,61 @@ +package io.anuke.mindustry.ui.dialogs; + +import io.anuke.arc.Core; +import io.anuke.arc.scene.ui.TextButton; +import io.anuke.arc.util.Time; +import io.anuke.mindustry.core.GameState.State; +import io.anuke.mindustry.game.Saves.SaveSlot; + +import static io.anuke.mindustry.Vars.*; + +public class SaveDialog extends LoadDialog{ + + public SaveDialog(){ + super("$savegame"); + + update(() -> { + if(state.is(State.menu) && isShown()){ + hide(); + } + }); + } + + public void addSetup(){ + slots.row(); + slots.addImageTextButton("$save.new", "icon-add", 14 * 3, () -> + 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).minWidth(300f).height(70f).pad(4f).padRight(-4); + } + + @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("$saveload"); + + Time.runTask(5f, () -> { + hide(); + ui.loadfrag.hide(); + try{ + slot.save(); + }catch(Throwable e){ + e.printStackTrace(); + + ui.showError("[accent]" + Core.bundle.get("savefail")); + } + }); + } + +}