public void ConfigureScreen(DrawingSurface ds, DrawingSurface.Options options) { ds.surface.Font = options.custom.Get("font", ds.surface.Font); ds.surface.FontSize = options.size == 0f ? ds.surface.FontSize : options.size; ds.surface.TextPadding = options.textPadding ?? ds.surface.TextPadding; ds.surface.ScriptForegroundColor = options.colour ?? ds.surface.ScriptForegroundColor; ds.surface.ScriptBackgroundColor = options.bgColour ?? ds.surface.ScriptBackgroundColor; }
public Node(string action, string text = null, DrawingSurface.Options opts = null) { this.action = action; this.text = text; this.options = opts ?? new DrawingSurface.Options(); if (action == "text") { this.options.text = this.options.text ?? text; this.sprite = DrawingSurface.TextSprite(this.options); } }
public DrawingSurface.Options StringToOptions(string options = "") { DrawingSurface.Options opts = new DrawingSurface.Options(); if (options == "") { return(opts); } Dictionary <string, string> parsed = options.Split(splitSemi, StringSplitOptions.RemoveEmptyEntries) .Select(v => v.Split('=')) .ToDictionary(pair => pair.Length > 1 ? pair[0] : "unknown", pair => pair.Length > 1 ? pair[1] : pair[0]); string value; if (parsed.Pop("width", out value)) { opts.width = Util.ParseFloat(value); } if (parsed.Pop("height", out value)) { opts.height = Util.ParseFloat(value); } if (parsed.Pop("outline", out value)) { opts.outline = Util.ParseBool(value); } if (parsed.Pop("bgColour", out value)) { opts.bgColour = DrawingSurface.StringToColour(value); } if (parsed.Pop("colour", out value)) { opts.colour = DrawingSurface.StringToColour(value); } if (parsed.Pop("fillColour", out value)) { opts.fillColour = DrawingSurface.StringToColour(value); } if (parsed.Pop("textColour", out value)) { opts.textColour = DrawingSurface.StringToColour(value); } if (parsed.Pop("height", out value)) { opts.height = Util.ParseFloat(value); } if (parsed.Pop("high", out value)) { opts.high = Util.ParseFloat(value); } if (parsed.Pop("low", out value)) { opts.low = Util.ParseFloat(value); } if (parsed.Pop("net", out value)) { opts.net = Util.ParseFloat(value); } if (parsed.Pop("pad", out value)) { opts.pad = Util.ParseFloat(value); } if (parsed.Pop("pct", out value)) { opts.pct = Util.ParseFloat(value); } if (parsed.Pop("scale", out value)) { opts.scale = Util.ParseFloat(value); } if (parsed.Pop("size", out value)) { opts.size = Util.ParseFloat(value); } if (parsed.Pop("width", out value)) { opts.width = Util.ParseFloat(value); } if (parsed.Pop("text", out value)) { opts.text = value; } if (parsed.Pop("textPading", out value)) { opts.textPadding = Util.ParseFloat(value); } if (parsed.Pop("align", out value)) { opts.align = DrawingSurface.stringToAlignment.Get(value); } if (parsed.Pop("colours", out value)) { opts.colours = value.Split(DrawingSurface.underscoreSep) .Select(col => DrawingSurface.StringToColour(col) ?? Color.White).ToList(); } if (parsed.Pop("values", out value)) { opts.values = value.Split(DrawingSurface.underscoreSep) .Select(pct => Util.ParseFloat(pct, 0f)).ToList(); } opts.custom = parsed; return(opts); }