Example usage for com.badlogic.gdx.utils JsonValue next

List of usage examples for com.badlogic.gdx.utils JsonValue next

Introduction

In this page you can find the example usage for com.badlogic.gdx.utils JsonValue next.

Prototype

public JsonValue next() 

Source Link

Document

Returns the next sibling of this value.

Usage

From source file:be.ac.ucl.lfsab1509.bouboule.game.physicEditor.BodyEditorLoader.java

License:Open Source License

private Model readJson(String str) {
    Model m = new Model();

    JsonValue map = new JsonReader().parse(str);

    JsonValue bodyElem = map.getChild("rigidBodies");
    for (; bodyElem != null; bodyElem = bodyElem.next()) {
        RigidBodyModel rbModel = readRigidBody(bodyElem);
        m.rigidBodies.put(rbModel.name, rbModel);
    }/*from   w  w  w.  ja  va  2  s  .co  m*/

    return m;
}

From source file:be.ac.ucl.lfsab1509.bouboule.game.physicEditor.BodyEditorLoader.java

License:Open Source License

private RigidBodyModel readRigidBody(JsonValue bodyElem) {
    RigidBodyModel rbModel = new RigidBodyModel();
    rbModel.name = bodyElem.getString("name");
    rbModel.imagePath = bodyElem.getString("imagePath");

    JsonValue originElem = bodyElem.get("origin");
    rbModel.origin.x = originElem.getFloat("x");
    rbModel.origin.y = originElem.getFloat("y");

    // polygons//  w w w. ja v  a2s  . co m
    JsonValue polygonsElem = bodyElem.getChild("polygons");
    for (; polygonsElem != null; polygonsElem = polygonsElem.next()) {

        PolygonModel polygon = new PolygonModel();
        rbModel.polygons.add(polygon);

        JsonValue vertexElem = polygonsElem.child();
        for (; vertexElem != null; vertexElem = vertexElem.next()) {
            float x = vertexElem.getFloat("x");
            float y = vertexElem.getFloat("y");
            polygon.vertices.add(new Vector2(x, y));
        }

        polygon.buffer = new Vector2[polygon.vertices.size()];

    }

    // circles
    JsonValue circleElem = bodyElem.getChild("circles");

    for (; circleElem != null; circleElem = circleElem.next()) {
        CircleModel circle = new CircleModel();
        rbModel.circles.add(circle);

        circle.center.x = circleElem.getFloat("cx");
        circle.center.y = circleElem.getFloat("cy");
        circle.radius = circleElem.getFloat("r");
    }

    return rbModel;
}

From source file:br.com.questingsoftware.libgdx.g3db.G3DBConverter.java

License:Apache License

private void writeObject(JsonValue root, UBJsonWriter writer) throws IOException {
    if (root.type() == ValueType.array) {
        if (root.name() != null) {
            writer.array(root.name());/* w w w  .j a  v a2 s  .c  om*/
        } else {
            writer.array();
        }
    } else {
        if (root.name() != null) {
            writer.object(root.name());
        } else {
            writer.object();
        }
    }

    JsonValue child = root.child();
    while (child != null) {
        switch (child.type()) {
        case booleanValue:
            if (child.name() != null) {
                writer.set(child.name(), child.asBoolean());
            } else {
                writer.value(child.asBoolean());
            }
            break;

        case doubleValue:
            if (child.name() != null) {
                writer.set(child.name(), child.asDouble());
            } else {
                writer.value(child.asDouble());
            }
            break;

        case longValue:
            if (child.name() != null) {
                writer.set(child.name(), child.asLong());
            } else {
                writer.value(child.asLong());
            }
            break;

        case stringValue:
            if (child.name() != null) {
                writer.set(child.name(), child.asString());
            } else {
                writer.value(child.asString());
            }
            break;

        case nullValue:
            if (child.name() != null) {
                writer.set(child.name());
            }
            break;

        case array:
        case object:
            writeObject(child, writer);
            break;
        }

        child = child.next();
    }

    writer.pop();
}

From source file:com.strategames.engine.storage.GameMetaData.java

License:Open Source License

@Override
public void read(Json json, JsonValue jsonData) {
    JsonValue child = jsonData.child();

    while (child != null) {
        if (child.name.contentEquals("uuid")) {
            uuid = child.asString();//from  w  w  w. ja  va 2  s . co m
        } else if (child.name.contentEquals("name")) {
            name = child.asString();
        } else if (child.name.contentEquals("designer")) {
            designer = child.asString();
        } else if (child.name.contentEquals("info")) {
            parseAdditionalInfo(child.asString());
        }

        child = child.next();
    }
}

From source file:es.eucm.ead.buildtools.GenerateFieldClasses.java

License:Open Source License

private static String buildCode(Files files, Json json, String originJsonSchemaPath, String targetPackageName,
        String targetDirectory, boolean mainClass) {
    FileHandle fh = files.internal(originJsonSchemaPath);

    JsonValue next = json.fromJson(null, null, fh);
    next = next.child();/*  w  w  w.j  a v a 2 s . c  o  m*/

    String fieldsCode = "";
    String headerCode = "";
    String targetClassName = "";
    while ((next = next.next()) != null) {
        if (next.name().equals("properties")) {
            JsonValue nextProperty = next.child();
            fieldsCode += buildFields(nextProperty);
            break;
        } else if (next.name().equals("extends")) {
            String relativeParentJsonSchemaPath = next.child().asString();
            // Calculate directory to find parent class
            String parentJsonSchemaPath = originJsonSchemaPath.substring(0,
                    originJsonSchemaPath.lastIndexOf("/") + 1) + relativeParentJsonSchemaPath;
            fieldsCode += buildCode(files, json, parentJsonSchemaPath, null, null, false);
        } else if (next.name().equals("javaType") && mainClass) {
            String javaType = next.asString();
            String originalClassName = javaType.substring(javaType.lastIndexOf(".") + 1, javaType.length());
            targetClassName = originalClassName + "Fields";
            headerCode = getClassHeader(originalClassName, targetPackageName, targetClassName);
        }
    }

    if (mainClass) {
        if (fieldsCode.length() > 0) {
            System.out.println("Generating code for class " + targetClassName);
            String classCode = headerCode + fieldsCode + "}";
            writeClass(files, classCode, targetPackageName, targetClassName, targetDirectory);
            return classCode;
        } else {
            System.out.println("Skipping class " + targetClassName + " (no properties)");
            return "";
        }
    } else {
        return fieldsCode;
    }
}

From source file:es.eucm.ead.buildtools.GenerateFieldClasses.java

License:Open Source License

private static String buildFields(JsonValue nextProperty) {
    String classCode = "";
    while (nextProperty != null) {
        // Look for description
        JsonValue description = nextProperty.child();
        while (description != null && !description.name().equals("description")) {
            description = description.next();
        }//from   ww  w  . j a v  a 2s. com
        if (description != null) {
            classCode += "\t/**\n";
            classCode += "\t *" + description.asString() + "\n";
            classCode += "\t*/\n";
        }
        classCode += "\tpublic static final String " + nextProperty.name().toUpperCase() + " = \""
                + nextProperty.name() + "\";\n\n";
        nextProperty = nextProperty.next();
    }
    return classCode;
}

From source file:es.eucm.ead.engine.tracking.gleaner.GleanerGameTracker.java

License:Open Source License

/**
 * Configure the tracker/*from  w ww .ja  va  2  s .  c om*/
 *
 * @param config the json configuration
 */
private void configure(JsonValue config) {
    press = config.getBoolean(PRESS, false);
    phases = config.getBoolean(PHASES, false);
    tracker.setMaxTracesPerQueue(config.getInt(MAX_TRACES, -1));
    JsonValue variables = config.get(VARIABLES);
    if (variables != null) {
        if (variables.isArray()) {
            JsonValue current = variables.child();
            while (current != null) {
                this.watchField(current.asString());
                current = current.next();
            }
        } else {
            logger.warn("Invalid configuration value for variables. It should be an array of strings.");
        }
    }
}

From source file:stu.tnt.gdx.widget.StyleAtlas.java

License:Apache License

protected Json getJsonLoader(final FileHandle skinFile) {
    final Skin skin = this;

    final Json json = new Json() {
        public <T> T readValue(Class<T> type, Class elementType, JsonValue jsonData) {
            // If the JSON is a string but the type is not, look up the
            // actual value by name.
            if (jsonData.isString() && !ClassReflection.isAssignableFrom(CharSequence.class, type))
                return get(jsonData.asString(), type);
            return super.readValue(type, elementType, jsonData);
        }/*from   w ww .j ava  2  s . c  o  m*/
    };
    json.setTypeName(null);
    json.setUsePrototypes(false);

    /* ------------------------------------------------ */

    json.setSerializer(Skin.class, new ReadOnlySerializer<Skin>() {
        public Skin read(Json json, JsonValue typeToValueMap, Class ignored) {
            for (JsonValue valueMap = typeToValueMap.child(); valueMap != null; valueMap = valueMap.next()) {
                try {
                    readNamedObjects(json, ClassReflection.forName(valueMap.name()), valueMap);
                } catch (ReflectionException ex) {
                    throw new SerializationException(ex);
                }
            }
            return skin;
        }

        private void readNamedObjects(Json json, Class type, JsonValue valueMap) {
            Class addType = type == TintedDrawable.class ? Drawable.class : type;
            for (JsonValue valueEntry = valueMap.child(); valueEntry != null; valueEntry = valueEntry.next()) {
                Object object = json.readValue(type, valueEntry);
                if (object == null)
                    continue;
                try {
                    add(valueEntry.name(), object, addType);
                } catch (Exception ex) {
                    throw new SerializationException(
                            "Error reading " + ClassReflection.getSimpleName(type) + ": " + valueEntry.name(),
                            ex);
                }
            }
        }
    });

    json.setSerializer(BitmapFont.class, new ReadOnlySerializer<BitmapFont>() {
        public BitmapFont read(Json json, JsonValue jsonData, Class type) {
            String path = json.readValue("file", String.class, jsonData);

            FileHandle fontFile = skinFile.parent().child(path);
            if (!fontFile.exists())
                fontFile = Gdx.files.internal(path);
            if (!fontFile.exists())
                throw new SerializationException("Font file not found: " + fontFile);

            // Use a region with the same name as the font, else use
            // a PNG file in the same directory as the FNT file.
            String regionName = fontFile.nameWithoutExtension();
            try {
                TextureRegion region = skin.optional(regionName, TextureRegion.class);
                if (region != null)
                    return new BitmapFont(fontFile, region, false);
                else {
                    FileHandle imageFile = fontFile.parent().child(regionName + ".png");
                    if (imageFile.exists())
                        return new BitmapFont(fontFile, imageFile, false);
                    else
                        return new BitmapFont(fontFile, false);
                }
            } catch (RuntimeException ex) {
                throw new SerializationException("Error loading bitmap font: " + fontFile, ex);
            }
        }
    });

    json.setSerializer(Color.class, new ReadOnlySerializer<Color>() {
        public Color read(Json json, JsonValue jsonData, Class type) {
            if (jsonData.isString())
                return get(jsonData.asString(), Color.class);
            String hex = json.readValue("hex", String.class, (String) null, jsonData);
            if (hex != null)
                return Color.valueOf(hex);
            float r = json.readValue("r", float.class, 0f, jsonData);
            float g = json.readValue("g", float.class, 0f, jsonData);
            float b = json.readValue("b", float.class, 0f, jsonData);
            float a = json.readValue("a", float.class, 1f, jsonData);
            return new Color(r, g, b, a);
        }
    });

    json.setSerializer(TintedDrawable.class, new ReadOnlySerializer() {
        public Object read(Json json, JsonValue jsonData, Class type) {
            String name = json.readValue("name", String.class, jsonData);
            Color color = json.readValue("color", Color.class, jsonData);
            return newDrawable(name, color);
        }
    });

    /* ------------------------------------------------ */

    json.setSerializer(Attributes.class, new ReadOnlySerializer<Attributes>() {
        @Override
        public Attributes read(Json json, JsonValue jsonData, Class type) {
            float startX = json.readValue("startX", float.class, (float) 0, jsonData);
            float startY = json.readValue("startY", float.class, (float) 0, jsonData);
            float dstX = json.readValue("x", float.class, jsonData);
            float dstY = json.readValue("y", float.class, jsonData);
            float width = json.readValue("width", float.class, jsonData);
            float height = json.readValue("height", float.class, jsonData);
            Attributes attr = new Attributes();
            attr.startX = startX;
            attr.startY = startY;
            attr.x = dstX;
            attr.y = dstY;
            attr.width = width;
            attr.height = height;
            return attr;
        }
    });

    /* ------------------------------------------------ */

    json.setSerializer(ScalingSet.class, new ReadOnlySerializer<ScalingSet>() {
        @Override
        public ScalingSet read(Json json, JsonValue jsonData, Class type) {
            float layoutx = json.readValue("layoutx", float.class, jsonData);
            float layouty = json.readValue("layouty", float.class, jsonData);
            float layoutwidth = json.readValue("layoutwidth", float.class, jsonData);
            float layoutheight = json.readValue("layoutheight", float.class, jsonData);
            float whratio = json.readValue("whratio", float.class, jsonData);
            float hwratio = json.readValue("hwratio", float.class, jsonData);
            return new ScalingSet().set(layoutx, layouty, layoutwidth, layoutheight, whratio, hwratio);
        }
    });

    /* ------------------------------------------------ */

    json.setSerializer(Vector2.class, new ReadOnlySerializer<Vector2>() {
        @Override
        public Vector2 read(Json json, JsonValue jsonData, Class type) {
            return new Vector2(json.readValue("x", float.class, jsonData),
                    json.readValue("y", float.class, jsonData));
        }
    });
    return json;
}