public override void OnInitialize() { base.OnInitialize(); AddElement(new HUDLabel(1) { TextAlignment = HUDAlignment.CENTER, Alignment = HUDAlignment.TOPLEFT, RelativePosition = new FPoint(0, 0), Size = new FSize(WIDTH, 96), Font = Textures.HUDFontBold, FontSize = 64, L10NText = L10NImpl.STR_ATTRIBUTIONS, TextColor = FlatColors.Clouds, }); for (int i = 0; i < Attributions.LINK_BACK.Length; i++) { var dd = Attributions.LINK_BACK[i]; var btn = new HUDTextButton(1) { TextAlignment = HUDAlignment.CENTERLEFT, Alignment = HUDAlignment.TOPCENTER, RelativePosition = new FPoint(((i % 2) * 2 - 1) * LINE_OFFSET, 96 + (i / 2) * 48), Size = new FSize(LINE_WIDTH, 32), Font = Textures.HUDFontRegular, FontSize = 24, Text = dd.Item1, TextColor = FlatColors.Foreground, TextPadding = 16, BackgroundNormal = HUDBackgroundDefinition.CreateSimpleBlur(FlatColors.TextHUD, 16), BackgroundPressed = HUDBackgroundDefinition.CreateSimpleBlur(FlatColors.ControlHighlight, 16), ClickMode = HUDButton.HUDButtonClickMode.Single, }; if (!string.IsNullOrWhiteSpace(dd.Item2)) { btn.ButtonClick += (s, a) => { HUD.ShowToast(null, dd.Item2, 32, FlatColors.Silver, FlatColors.Foreground, 3f); MainGame.Inst.GDBridge.OpenURL(dd.Item2); }; } AddElement(btn); } }
public HUDToast ShowToast(string id, string text, int size, Color background, Color foreground, float lifetime) { lock (_toasts) { while (_toasts.Count >= MAX_TOAST_COUNT) { _toasts[0].Alive = false; _toasts.RemoveAt(0); } if (id != null) { foreach (var xtoast in _toasts) { if (xtoast.ToastID == id) { xtoast.Reset(text, background, foreground, lifetime); return(xtoast); } } } float px = HUDToast.PAD_BOTTOM; foreach (var xtoast in _toasts) { xtoast.PositionY.SetForce(px); px += xtoast.Height + HUDToast.PAD_VERT; } var toast = new HUDToast(id, lifetime, px); toast.Text = text; toast.Alignment = HUDAlignment.BOTTOMCENTER; toast.RelativePosition = new FPoint(0, px); toast.FontSize = size; toast.Font = DefaultFont; toast.TextColor = foreground; toast.Background = HUDBackgroundDefinition.CreateSimpleBlur(background, size / 4f); toast.TextPadding = new FSize(size / 5f, size / 5f); toast.MaxWidth = Width * 0.8f; toast.WordWrap = HUDWordWrap.WrapByWordTrusted; AddElement(toast); _toasts.Add(toast); return(toast); } }