public SaveGameScreen(Game game) : base("Save Game") { this.game = game; Title.Position = new CPos(0, -4096, 0); list = new GameSaveList(4096, "wooden") { Position = new CPos(0, 1024, 0) }; Add(new Button("Back", "wooden", () => game.ShowScreen(ScreenType.MENU)) { Position = new CPos(4096, 6144, 0) }); Add(new Button("Save", "wooden", () => { saveGame(); game.RefreshSaveGameScreens(); }) { Position = new CPos(0, 6144, 0) }); Add(new Button("New Save", "wooden", () => createSaveScreen.ActiveScreen = true) { Position = new CPos(-4096, 6144, 0) }); Add(list); createSaveScreen = new NewSaveGameScreen(game); }
public LoadGameScreen(Game game) : base("Load Game") { this.game = game; Title.Position = new CPos(0, -4096, 0); list = new GameSaveList(4096, "wooden") { Position = new CPos(0, 1024, 0) }; Add(new Button("Back", "wooden", () => game.ShowScreen(ScreenType.MENU)) { Position = new CPos(4096, 6144, 0) }); void loadAction() { var save = list.SelectedSave; if (save != null) { humanAgreeOnLoad(() => { Log.Debug($"Loading game save '{save.SaveName}'."); GameController.CreateNew(save.Copy(), loadStatsMap: true); }, "Are you sure you want to load this save? Unsaved progress will be lost!"); } } Add(new Button("Load", "wooden", loadAction) { Position = new CPos(0, 6144, 0) }); void deleteAction() { var save = list.SelectedSave; if (save != null) { humanAgreeOnDelete(() => { GameSaveManager.Delete(save); game.RefreshSaveGameScreens(); game.ShowScreen(ScreenType.LOADGAME); Log.Debug($"Deleted game save '{save.SaveName}'."); }, "Are you sure you want to delete this save?"); } } Add(new Button("Delete", "wooden", deleteAction) { Position = new CPos(-4096, 6144, 0) }); Add(list); }