public void initMainContainer() { VList vlSaves = new VList(); vlSaves.PercentWidth = vlSaves.PercentHeight = 100; VPane vpMain = new VPane(vlSaves, inputInfoPane); vpMain.PercentWidth = 50; vpMain.PercentHeight = 100; vpMain.Color = Color.Black; vpMain.Alpha = 0.5f; if (GameManager.SaveStates.Count < MAX_SAVES) { vlSaves.add(tiNewGame); } int i = 0; GameManager.SaveStates.Sort((s1, s2) => - DateTime.Compare(s1.SavedDate, s2.SavedDate)); GameManager.SaveStates.ForEach(saveState => { TextItem saveInfo = new TextItem("", "fonts/menu_font1"); TextItem saveDetail = new TextItem("", "fonts/menu_font2"); ImageItem saveThumbnail = new ImageItem("images/world/entities/npcs/neutral/kevin_sheet", new Rectangle(0, 32, 16, 16)); VPane textPane = new VPane(saveInfo, saveDetail); HPane saveEntry = new HPane(saveThumbnail, textPane); saveEntry.PercentWidth = 100; saveEntry.Color = i % 2 == 0 ? Color.Black : Color.Gray; saveEntry.Alpha = 0.3f; textPane.PercentWidth = 70; saveDetail.SecondaryColor = Color.Yellow; saveInfo.SecondaryColor = Color.Yellow; saveThumbnail.SecondaryColor = Color.White; saveThumbnail.DefaultScale = 4; saveThumbnail.MillisPerScale = 128; saveInfo.Text = "" + saveState.SavedDate; saveDetail.Text = "Created at: " + saveState.CreationDate + ", Total Playtime: " + saveState.Playtime; saveInfos.Add(saveInfo); saveDetails.Add(saveDetail); saveThumbnails.Add(saveThumbnail); vlSaves.add(saveEntry); ++i; }); vlSaves.SelectedEvent += (sender, args) => { if (!(args.SelectedItem is Container)) { return; } int selected = args.SelectedIndex - (vlSaves.Children.Contains(tiNewGame) ? 1 : 0); saveInfos[selected].IsSelected = true; saveDetails[selected].IsSelected = true; saveThumbnails[selected].IsSelected = true; }; vlSaves.DeselectedEvent += (sender, args) => { if (!(args.SelectedItem is Container)) { return; } int selected = args.SelectedIndex - (vlSaves.Children.Contains(tiNewGame) ? 1 : 0); saveInfos[selected].IsSelected = false; saveDetails[selected].IsSelected = false; saveThumbnails[selected].IsSelected = false; }; vlSaves.ActionKeys.Add(deleteKey); vlSaves.ActionButtons.Add(deleteButton); vlSaves.ActionEvent += (sender, args) => { if (Keyboard.GetState().IsKeyDown(deleteKey) || GamePad.GetState(0).IsButtonDown(deleteButton)) { if (args.SelectedItem is Container) { ScreenManager.AddScreen(new ConfirmDialog(ParentScreen, answer => { if (answer == 0 || answer == 2) { if (answer == 0) { GameManager.SaveStates.RemoveAt(args.SelectedIndex - (vlSaves.Children.Contains(tiNewGame) ? 1 : 0)); ScreenManager.AddScreen(new SaveMenuScreen(ParentScreen), null); } Alpha = 0; ExitScreen(); } }, "Do you really want to delete this Savegame?", "This action cannot be undone!"), null); } return; } GameManager.ActiveSave = (args.SelectedItem is TextItem) ? new SaveState() : GameManager.SaveStates[args.SelectedIndex - (vlSaves.Children.Contains(tiNewGame) ? 1 : 0)]; ExitScreen(); ParentScreen.ExitScreen(); ((Besmash)ScreenManager.Game).loadSave(); ScreenManager.AddScreen(new GameplayScreen(ParentScreen), null); }; vlSaves.CancelEvent += (sender, args) => { Alpha = 0; ExitScreen(); }; vlSaves.select(0); vlSaves.IsFocused = true; MainContainer.add(vpMain); }