Generate props.json (trees)
by espeon
HTML
<div id="header"></div>---
<div id="main"></div>
JavaScript
(function ($) {
var display = function (selector, txt) {
$(selector).append(txt);
};
var output = "";
var count = 0;
var grid = {
cellWidth: 200,
cellHeight: 100,
width: 30,
height: 30
};
grid.originX = grid.cellWidth * grid.width / 2;
grid.originY = 400;
for (var x = -(grid.height / 2); x < (grid.height + grid.height / 2); x++) {
for (var y = -(grid.width / 2); y < (grid.width + grid.width / 2); y++) {
var isInXZone = (x >= 5 && x <= 25);
var isInYZone = (y >= 5 && y <= 25);
if (isInXZone && isInYZone) {
continue;
}
var deltaX = 50;
var deltaY = 30;
var offsetX = 190 - deltaX + Math.round(Math.random() * deltaX * 2);
var offsetY = 325 - deltaY + Math.round(Math.random() * deltaY * 2);
var left = grid.cellWidth / 2 * (y - x) - offsetX + grid.originX;
var top = grid.cellHeight / 2 * (x + y) - offsetY + grid.originY;
var isHorizontallyOutside = (left <= 0 || left >= grid.cellWidth * grid.width);
var isVerticallyOutside = (top <= 0 || top >= grid.cellHeight * grid.height);
if (isHorizontallyOutside || isVerticallyOutside) {
continue;
}
if (Math.random() < 0.9) {
continue;
}
var tree = (Math.random() > 0.3) ? "tree--oak" : "tree--cedar";
output += '{ "type": "' + tree + '", "grid": { "offsetX": ' + offsetX + ', "offsetY": ' + offsetY + ', "height": 1, "width": 1, "x": ' + x + ', "y": ' + y + ' } },';
count++;
}
}
display("#main", output);
display("#header", count + " trees generated (1600 max.) !<br>");
display("#header", Math.round(count / 1800 * 100) + "% of the map is covered...");
})(jQuery);