예제 #1
0
        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);
            }
        }
예제 #2
0
        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;
            }
        }