diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index e657765766..69d7e93c2f 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -525,6 +525,7 @@ setting.mutemusic.name = Mute Music setting.sfxvol.name = SFX Volume setting.mutesound.name = Mute Sound setting.crashreport.name = Send Anonymous Crash Reports +setting.savecreate.name = Auto-Create Saves setting.chatopacity.name = Chat Opacity setting.playerchat.name = Display In-Game Chat uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] seconds... diff --git a/core/src/io/anuke/mindustry/core/Control.java b/core/src/io/anuke/mindustry/core/Control.java index 3856ebe903..a12ae0cd80 100644 --- a/core/src/io/anuke/mindustry/core/Control.java +++ b/core/src/io/anuke/mindustry/core/Control.java @@ -26,6 +26,8 @@ import io.anuke.mindustry.world.*; import io.anuke.mindustry.world.blocks.storage.*; import java.io.*; +import java.time.*; +import java.time.format.*; import static io.anuke.arc.Core.*; import static io.anuke.mindustry.Vars.*; @@ -230,6 +232,9 @@ public class Control implements ApplicationListener, Loadable{ world.loadMap(map, rules); state.rules = rules; logic.play(); + if(settings.getBool("savecreate")){ + control.saves.addSave(map.name() + "-" + DateTimeFormatter.ofPattern("MMM dd h:mm").format(LocalDateTime.now())); + } }); } diff --git a/core/src/io/anuke/mindustry/ui/dialogs/LoadDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/LoadDialog.java index 043bc7585a..8440fe031b 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/LoadDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/LoadDialog.java @@ -51,6 +51,7 @@ public class LoadDialog extends FloatingDialog{ Time.runTask(2f, () -> Core.scene.setScrollFocus(pane)); Array array = control.saves.getSaveSlots(); + array.sort((slot, other) -> -Long.compare(slot.getTimestamp(), other.getTimestamp())); for(SaveSlot slot : array){ if(slot.isHidden()) continue; diff --git a/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java index c3ddaeb1fa..2450e0dd93 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java @@ -139,6 +139,8 @@ public class SettingsMenuDialog extends SettingsDialog{ game.checkPref("crashreport", true); } + game.checkPref("savecreate", true); + game.pref(new Setting(){ @Override public void add(SettingsTable table){