use of binnie.core.gui.geometry.Border in project Binnie by ForestryMC.
the class StyleSheetParser method parseTextures.
private static Map<String, Texture> parseTextures(JsonObject jsonObject, Map<String, ParsedTextureSheet> textureSheets) {
JsonArray texturesJson = JsonUtils.getJsonArray(jsonObject, TEXTURES_KEY);
if (texturesJson == null) {
return Collections.emptyMap();
}
Map<String, Texture> textures = new HashMap<>();
for (JsonElement element : texturesJson) {
if (!element.isJsonObject()) {
continue;
}
try {
JsonObject sheetJson = element.getAsJsonObject();
String name = JsonUtils.getString(sheetJson, NAME_KEY);
String sheet = JsonUtils.getString(sheetJson, SHEET_KEY);
JsonArray uvArray = JsonUtils.getJsonArray(sheetJson, UV_KEY);
IBinnieTexture textureSheet = textureSheets.get(sheet);
Area uv = parseArea(uvArray);
Border border = Border.ZERO;
Border padding = Border.ZERO;
if (sheetJson.has(BORDER_KEY)) {
JsonArray array = JsonUtils.getJsonArray(sheetJson, BORDER_KEY);
border = parseBorder(array);
}
if (sheetJson.has(PADDING_KEY)) {
JsonArray array = JsonUtils.getJsonArray(sheetJson, PADDING_KEY);
padding = parseBorder(array);
}
Texture texture = new Texture(uv, padding, border, textureSheet);
textures.put(name, texture);
} catch (Exception e) {
Log.warning("Failed to load stylesheet for Binnie's Mods.", e);
}
}
return textures;
}
use of binnie.core.gui.geometry.Border in project Binnie by ForestryMC.
the class StyleSheetParser method parseBorder.
private static Border parseBorder(JsonArray array) {
int[] ints = new int[array.size()];
if (ints.length < 1 || ints.length > 4) {
throw new JsonParseException("Parameter must have between one and four numbers");
}
for (int i = 0; i < array.size(); i++) {
JsonElement object = array.get(i);
ints[i] = JsonUtils.getInt(object, UV_KEY + i);
}
if (ints.length == 1) {
return new Border(ints[0]);
}
if (ints.length == 2) {
return new Border(ints[0], ints[1]);
}
if (ints.length == 3) {
return new Border(ints[0], ints[1], ints[2]);
}
return new Border(ints[0], ints[1], ints[2], ints[3]);
}
use of binnie.core.gui.geometry.Border in project Binnie by ForestryMC.
the class ControlToleranceBar method onRenderBackground.
@Override
@SideOnly(Side.CLIENT)
public void onRenderBackground(int guiWidth, int guiHeight) {
RenderUtil.drawGradientRect(getArea(), -1431655766, -1431655766);
int w = getArea().width() / fullSet.size();
int t = 0;
for (T value : fullSet) {
int col = (tolerated.contains(value) ? -16777216 : 855638016) + getColour(value);
Border inset = new Border(tolerated.contains(value) ? 1 : 3);
RenderUtil.drawGradientRect(new Area(w * t, 0, w, getHeight()).inset(inset), col, col);
++t;
}
}
Aggregations