void ParseFontCharProperty(ref FontChar fontChar, string name) { switch (name) { case "CharCode": fontChar.Char = (char)lexer.ParseInt(); break; case "TexPosition": fontChar.UV0 = lexer.ParseVector2() / (Vector2)textureSize; break; case "TexSize": Vector2 size = lexer.ParseVector2(); fontChar.Width = size.X; fontChar.Height = size.Y; fontChar.UV1 = fontChar.UV0 + size / (Vector2)textureSize; break; case "ACWidths": fontChar.ACWidths = lexer.ParseVector2(); break; case "TextureIndex": fontChar.TextureIndex = lexer.ParseInt(); break; default: throw new Exception("Unknown property '{0}'. Parsing: {1}", name, fontChar); } }
protected void ParseGraphicProperty(Node node, string name) { Widget widget = (Widget)node; switch (name) { case "Anchors": widget.Anchors = (Anchors)lexer.ParseInt(); break; case "HitTestMethod": widget.HitTestMethod = (HitTestMethod)lexer.ParseInt(); break; case "SkinningWeights": widget.SkinningWeights = lexer.ParseSkinningWeights(); break; case "Visible": widget.Visible = lexer.ParseBool(); break; case "Position": widget.Position = lexer.ParseVector2(); break; case "Pivot": widget.Pivot = lexer.ParseVector2(); break; case "Size": widget.Size = lexer.ParseVector2(); break; case "Scale": widget.Scale = lexer.ParseVector2(); break; case "Color": widget.Color = lexer.ParseColor4(); break; case "Rotation": widget.Rotation = lexer.ParseFloat(); break; case "BlendMode": var t = ParseBlendMode(); widget.Blending = t.Item1; widget.Shader = t.Item2; break; case "SuppressSkin": lexer.ParseBool(); break; case "VisualName": lexer.ParseQuotedString(); System.Console.WriteLine("WARNING: Citrus doesn't support skins. VisualName must be empty"); break; default: ParseActorProperty(node, name); break; } }