Example #1
0
        public override OgmoValueDefinition ReadJson(JsonReader reader, Type objectType, OgmoValueDefinition existingValue, bool hasExistingValue, JsonSerializer serializer)
        {
            JObject obj = JObject.Load(reader);

            switch ((string)obj["definition"])
            {
            case "String":
                var strValue = new OgmoStringValueDefinition();
                strValue.Name           = (string)obj["name"];
                strValue.Default        = (string)obj["defaults"];
                strValue.MaxLength      = (int)obj["maxLength"];
                strValue.TrimWhitespace = (bool)obj["trimWhitespace"];
                return(strValue);

            case "Text":
                var textValue = new OgmoTextValueDefinition();
                textValue.Name    = (string)obj["name"];
                textValue.Default = (string)obj["defaults"];
                return(textValue);

            case "Enum":
                var enumValue = new OgmoEnumValueDefinition();
                enumValue.Name = (string)obj["name"];
                var arr          = obj["choices"].Children().ToArray();
                var finalChoices = new string[arr.Length];
                for (int i = 0; i < arr.Length; i++)
                {
                    finalChoices[i] = (string)arr[i];
                }
                enumValue.Choices = finalChoices;
                enumValue.Default = (int)obj["defaults"];
                return(enumValue);

            case "Integer":
                var intValue = new OgmoIntegerValueDefinition();
                intValue.Name    = (string)obj["name"];
                intValue.Default = (int)obj["defaults"];
                intValue.Bounded = (bool)obj["bounded"];
                intValue.Min     = (int)obj["min"];
                intValue.Max     = (int)obj["max"];
                return(intValue);

            case "Float":
                var floatValue = new OgmoFloatValueDefinition();
                floatValue.Name    = (string)obj["name"];
                floatValue.Default = (float)obj["defaults"];
                floatValue.Bounded = (bool)obj["bounded"];
                floatValue.Min     = (float)obj["min"];
                floatValue.Max     = (float)obj["max"];
                return(floatValue);

            case "Color":
                var colValue = new OgmoColorValueDefinition();
                colValue.Name         = (string)obj["name"];
                colValue.Default      = ColorExt.HexToColor((string)obj["defaults"]);
                colValue.IncludeAlpha = (bool)obj["includeAlpha"];
                return(colValue);
            }
            return(null);
        }
Example #2
0
        public override OgmoEntityDefinition ReadJson(JsonReader reader, Type objectType, OgmoEntityDefinition existingValue, bool hasExistingValue, JsonSerializer serializer)
        {
            JObject obj = JObject.Load(reader);
            var     def = new OgmoEntityDefinition();

            def.Name     = (string)obj["name"];
            def.ExportID = (string)obj["_eid"];

            def.Size   = new Point();
            def.Size.X = (int)obj["size"]["x"];
            def.Size.Y = (int)obj["size"]["y"];

            def.Origin   = new Point();
            def.Origin.X = (int)obj["origin"]["x"];
            def.Origin.Y = (int)obj["origin"]["y"];

            def.TileSize   = new Point();
            def.TileSize.X = (int)obj["tileSize"]["x"];
            def.TileSize.Y = (int)obj["tileSize"]["y"];

            def.Limit = (int)obj["limit"];

            var taglist = obj["tags"].Children().ToArray();

            def.Tags = new string[taglist.Length];
            for (int i = 0; i < taglist.Length; i++)
            {
                def.Tags[i] = (string)taglist[i];
            }

            var valuelist = obj["values"].Children().ToArray();

            def.ValueDefinitions = new OgmoValueDefinition[valuelist.Length];
            for (int i = 0; i < valuelist.Length; i++)
            {
                OgmoValueDefinition ov     = new OgmoEnumValueDefinition();
                OgmoValueDefinition result = (OgmoValueDefinition)OgmoValueDefinitionConverter.Instance.ReadJson(valuelist[i].CreateReader(), typeof(OgmoValueDefinition), ov, serializer);
                def.ValueDefinitions[i] = result;
            }

            return(def);
        }
        public override OgmoLayerDefinition ReadJson(JsonReader reader, Type objectType, OgmoLayerDefinition existingValue, bool hasExistingValue, JsonSerializer serializer)
        {
            JObject obj = JObject.Load(reader);

            switch ((string)obj["definition"])
            {
            case "entity":
                var entLayer = new OgmoEntityLayerDefinition();
                entLayer.Name     = (string)obj["name"];
                entLayer.ExportID = (string)obj["exportID"];

                var entsize = new Point();
                entsize.X         = (int)obj["gridSize"]["x"];
                entsize.Y         = (int)obj["gridSize"]["y"];
                entLayer.GridSize = entsize;

                return(entLayer);

            case "decal":
                var decLayer = new OgmoDecalLayerDefinition();
                decLayer.Name     = (string)obj["name"];
                decLayer.ExportID = (string)obj["exportID"];

                var decsize = new Point();
                decsize.X         = (int)obj["gridSize"]["x"];
                decsize.Y         = (int)obj["gridSize"]["y"];
                decLayer.GridSize = decsize;

                decLayer.Folder = (string)obj["folder"];

                decLayer.Scalable  = (bool)obj["scaleable"];
                decLayer.Rotatable = (bool)obj["rotatable"];

                var vallist = obj["values"].Children().ToArray();
                decLayer.Values = new OgmoValueDefinition[vallist.Length];
                for (int i = 0; i < vallist.Length; i++)
                {
                    OgmoValueDefinition ov     = new OgmoEnumValueDefinition();
                    OgmoValueDefinition result = (OgmoValueDefinition)OgmoValueDefinitionConverter.Instance.ReadJson(vallist[i].CreateReader(), typeof(OgmoValueDefinition), ov, serializer);
                    decLayer.Values[i] = result;
                }

                return(decLayer);

            case "tile":
                var tileLayer = new OgmoTileLayerDefinition();
                tileLayer.Name     = (string)obj["name"];
                tileLayer.ExportID = (string)obj["exportID"];

                var tilesize = new Point();
                tilesize.X         = (int)obj["gridSize"]["x"];
                tilesize.Y         = (int)obj["gridSize"]["y"];
                tileLayer.GridSize = tilesize;

                tileLayer.ExportStyle = (OgmoTileLayerDefinition.ExportMode)((int)obj["exportMode"]);
                tileLayer.ArrayStyle  = (OgmoTileLayerDefinition.ArrayMode)((int)obj["arrayMode"]);

                tileLayer.DefaultTileset = (string)obj["defaultTileset"];

                return(tileLayer);
            }
            return(null);
        }