public override void OnInitialize() { AddElement(_presenter = new SCCMListPresenter { Alignment = HUDAlignment.CENTERLEFT, RelativePosition = new FPoint(16, 0), Size = new FSize(Width - 16 - 16 - 48 - 16, Height - 16 - 16), }); AddElement(_scrollbar = new SCCMListScrollbar { Alignment = HUDAlignment.CENTERRIGHT, RelativePosition = new FPoint(16, 0), Size = new FSize(48, Height - 16 - 16), }); AddElement(_waitingCog = new HUDImage { Alignment = HUDAlignment.CENTER, RelativePosition = FPoint.Zero, Image = Textures.CannonCogBig, RotationSpeed = 0.35f, Color = FlatColors.Clouds, Size = new FSize(192, 192) }); _presenter.Load(QueryData, _scrollbar, _waitingCog, false); }
private async Task <SCCMListPresenter.LoadFuncResult> QueryData(SCCMListPresenter list, int page, int reqid) { try { var r = await MainGame.Inst.Backend.QueryUserLevel(MainGame.Inst.Profile, QueryUserLevelCategory.NewLevels, string.Empty, page); if (r == null) { return(SCCMListPresenter.LoadFuncResult.Error); } else { if (r.Count == 0) { return(SCCMListPresenter.LoadFuncResult.LastPage); } else { MonoSAMGame.CurrentInst.DispatchBeginInvoke(() => { if (list.IsCurrentRequest(reqid)) { foreach (var levelmeta in r) { list.AddEntry(new SCCMListElementOnlinePlayable(levelmeta)); } } }); return(SCCMListPresenter.LoadFuncResult.Success); } } } catch (Exception e) { SAMLog.Error("SCCMTN::QD", e); MonoSAMGame.CurrentInst.DispatchBeginInvoke(() => { HUD.AddModal(new HUDFadeOutInfoBox(5, 2, 0.3f) { L10NText = L10NImpl.STR_CPP_COMERR, TextColor = FlatColors.Clouds, Background = HUDBackgroundDefinition.CreateRounded(FlatColors.Alizarin, 16), CloseOnClick = true, }, true); }); return(SCCMListPresenter.LoadFuncResult.Error); } }
private Task <SCCMListPresenter.LoadFuncResult> QueryData(SCCMListPresenter list, int page, int reqid) { list.AddEntry(new SCCMListElementNewUserLevel()); foreach (var userlevel in SCCMUtils.ListUserLevelsUnfinished()) { if (userlevel.AuthorUserID != MainGame.Inst.Profile.OnlineUserID) { continue; } list.AddEntry(new SCCMListElementEditable(userlevel)); } var localLevels = new List <Tuple <long, string, SCCMListElementLocalPlayable, string> >(); foreach (var userleveltuple in SCCMUtils.ListUserLevelsFinished()) { var filename = userleveltuple.Item1; var userlevel = userleveltuple.Item2; var levelhash = userleveltuple.Item3; if (userlevel.CustomMeta_UserID == MainGame.Inst.Profile.OnlineUserID) { var entry = new SCCMListElementLocalPlayable(userlevel); localLevels.Add(Tuple.Create(userlevel.CustomMeta_LevelID, levelhash, entry, filename)); list.AddEntry(entry); } else { SAMLog.Info("SCCMTML::DelFinLevel", $"Level {userlevel.UniqueID:B} deleted cause wrong username {userlevel.CustomMeta_UserID} <> {MainGame.Inst.Profile.OnlineUserID}"); SCCMUtils.DeleteUserLevelFinished(filename); } } QueryMetaFromServer(localLevels).EnsureNoError(); return(Task.FromResult(SCCMListPresenter.LoadFuncResult.LastPage)); }
public override void OnInitialize() { AddElement(_textbox = new HUDSimpleTextBox { Alignment = HUDAlignment.TOPLEFT, RelativePosition = new FPoint(16, 16), Size = new FSize(Width - 16 - 16 - 64, 64), ColorText = Color.Black, Font = Textures.HUDFontRegular, FontSize = 48, MaxLength = SCCMLevelData.MaxNameLength, BackgroundNormal = HUDBackgroundDefinition.CreateSimpleOutline(FlatColors.Clouds, Color.Black, HUD.PixelWidth), BackgroundFocused = HUDBackgroundDefinition.CreateSimpleOutline(FlatColors.Clouds, Color.Black, HUD.PixelWidth), EnterKey = (s, e) => StartSearch(), CloseKeyboard = (s, e) => StartSearch(), }); AddElement(new HUDImageButton { Alignment = HUDAlignment.TOPRIGHT, RelativePosition = new FPoint(16 + HUD.PixelWidth, 16), Size = new FSize(64, 64), Image = Textures.TexHUDButtonIconMagnifier, ImagePadding = 8, ImageColor = FlatColors.Asbestos, BackgroundNormal = HUDBackgroundDefinition.CreateSimpleOutline(FlatColors.Clouds, Color.Black, HUD.PixelWidth), BackgroundPressed = HUDBackgroundDefinition.CreateSimpleOutline(FlatColors.Concrete, Color.Black, HUD.PixelWidth), Click = (s, e) => StartSearch(), }); AddElement(_presenter = new SCCMListPresenter { Alignment = HUDAlignment.BOTTOMLEFT, RelativePosition = new FPoint(16, 16), Size = new FSize(Width - 16 - 16 - 48 - 16, Height - 16 - 16 - 16 - 64), IsVisible = true, }); AddElement(_scrollbar = new SCCMListScrollbar { Alignment = HUDAlignment.BOTTOMRIGHT, RelativePosition = new FPoint(16, 16), Size = new FSize(48, Height - 16 - 16 - 16 - 64), IsVisible = true, }); AddElement(_waitingCog = new HUDImage { Alignment = HUDAlignment.CENTER, RelativePosition = new FPoint(0, 16 + 32), Image = Textures.CannonCogBig, RotationSpeed = 0.35f, Color = FlatColors.Clouds, Size = new FSize(192, 192), IsVisible = false, }); _presenter.Load(QueryData, _scrollbar, _waitingCog); }