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); } }
public void CopyToast(GameHUD phud) { bool postreset = _toasts.Any(); foreach (var t in phud._toasts) { var copy = HUDToast.Copy(t); AddElement(copy); _toasts.Add(copy); } if (postreset) { float px = HUDToast.PAD_BOTTOM; foreach (var xtoast in _toasts) { xtoast.PositionY.SetForce(px); px += xtoast.Height + HUDToast.PAD_VERT; } } }