2using System.Collections.Generic;
4using System.Reflection;
7using Microsoft.Xna.Framework;
8using Microsoft.Xna.Framework.Input;
9using Microsoft.Xna.Framework.Graphics;
15 public class CUIBorder : ICloneable
17 private Color color;
public Color Color
26 private float thickness = 1f;
public float Thickness
36 public bool Visible {
get;
set; }
39 public void UpdateVisible()
41 Visible = Thickness != 0f && color != Color.Transparent;
44 public CUIBorder() { }
45 public CUIBorder(Color color,
float thickness = 1f)
48 this.thickness = thickness;
52 public override bool Equals(
object obj)
54 if (obj is CUIBorder border)
56 if (Color == border.Color && Thickness == border.Thickness)
return true;
63 return new CUIBorder(Color, Thickness);
67 public override string ToString() => $
"[{CUIExtensions.ColorToString(Color)},{Thickness}]";
68 public static CUIBorder Parse(
string raw)
70 CUIBorder border =
new CUIBorder();
73 string[] sub = raw.Split(
'[',
']');
77 border.Color = CUIExtensions.ParseColor(sub[0]);
82 string content = raw.Split(
'[',
']').ElementAtOrDefault(1);
84 if (content.Trim() !=
"")
86 IEnumerable<string> values = content.Split(
',');
87 if (values.ElementAtOrDefault(0) !=
null)
89 border.Color = CUIExtensions.ParseColor(values.ElementAtOrDefault(0));
91 if (values.ElementAtOrDefault(1) !=
null)
94 if (
float.TryParse(values.ElementAtOrDefault(1), out t))
103 catch (Exception e) { CUI.Warning($
"Couldn't parse CUIBorder [{raw}]:\n{e.Message}"); }