private static void parseValueElement(Element element, ConfigurableEmitter.Value value) {
        if (element == null) {
            return;
        }

        String type = element.getAttribute("type");
        String v = element.getAttribute("value");

        if (type == null || type.length() == 0) {
            // support for old style which did not write the type
            if (value instanceof SimpleValue) {
                ((SimpleValue) value).setValue(Float.parseFloat(v));
            } else if (value instanceof RandomValue) {
                ((RandomValue) value).setValue(Float.parseFloat(v));
            } else {
                Log.warn("problems reading element, skipping: " + element);
            }
        } else {
            // type given: this is the new style
            if (type.equals("simple")) {
                ((SimpleValue) value).setValue(Float.parseFloat(v));
            } else if (type.equals("random")) {
                ((RandomValue) value).setValue(Float.parseFloat(v));
            } else if (type.equals("linear")) {
                String min = element.getAttribute("min");
                String max = element.getAttribute("max");
                String active = element.getAttribute("active");

                NodeList points = element.getElementsByTagName("point");

                ArrayList curve = new ArrayList();
                for (int i = 0; i < points.getLength(); i++) {
                    Element point = (Element) points.item(i);

                    float x = Float.parseFloat(point.getAttribute("x"));
                    float y = Float.parseFloat(point.getAttribute("y"));

                    curve.add(new Vector2f(x, y));
                }

                ((LinearInterpolator) value).setCurve(curve);
                ((LinearInterpolator) value).setMin(Integer.parseInt(min));
                ((LinearInterpolator) value).setMax(Integer.parseInt(max));
                ((LinearInterpolator) value).setActive("true".equals(active));
            } else {
                Log.warn("unkown type detected: " + type);
            }
        }
    }