package org.terasology.rendering.gui.framework.style;
import org.terasology.rendering.gui.framework.UIDisplayElement;
import javax.vecmath.Vector4f;
import java.util.logging.Level;
import java.util.logging.Logger;
public abstract class UIProperty extends UIDisplayElement {
private Logger logger = Logger.getLogger(getClass().getName());
public void render() {
}
;
public void update() {
}
;
public void parse(String property, String value) {
}
;
//Temporary. Value can have 2 arguments. For example 2/150
public float parseFloat(String value) {
if (value.indexOf("/") < 0) {
try {
return Float.parseFloat(value);
} catch (NumberFormatException e) {
logger.log(Level.WARNING, "Bad float value - " + value);
return 0f;
}
} else {
try {
float arg1 = Float.parseFloat(value.split("/")[0]);
float arg2 = Float.parseFloat(value.split("/")[1]);
return arg1 / arg2;
} catch (Exception e) {
logger.log(Level.WARNING, e.getMessage());
return 0f;
}
}
}
public Vector4f hexToRGB(String hexColor) {
try {
return new Vector4f((float) Integer.parseInt(checkHex(hexColor).substring(0, 2), 16) / 255f,
(float) Integer.parseInt(checkHex(hexColor).substring(2, 4), 16) / 255f,
(float) Integer.parseInt(checkHex(hexColor).substring(4, 6), 16) / 255f,
1.0f);
} catch (NumberFormatException e) {
logger.log(Level.WARNING, "Bad Hex color value - " + hexColor);
return new Vector4f();
}
}
public String checkHex(String h) {
return (h.charAt(0) == '#') ? h.substring(1, 7) : h;
}
}