mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-16 17:31:24 +01:00
* chore: render debug elements * feat: redo draw state labels algo --------- Co-authored-by: Azgaar <azgaar.fmg@yandex.com>
72 lines
1.8 KiB
JavaScript
72 lines
1.8 KiB
JavaScript
"use strict";
|
|
// FMG utils used for debugging
|
|
|
|
function drawCellsValue(data) {
|
|
debug.selectAll("text").remove();
|
|
debug
|
|
.selectAll("text")
|
|
.data(data)
|
|
.enter()
|
|
.append("text")
|
|
.attr("x", (d, i) => pack.cells.p[i][0])
|
|
.attr("y", (d, i) => pack.cells.p[i][1])
|
|
.text(d => d);
|
|
}
|
|
|
|
function drawPolygons(data) {
|
|
const max = d3.max(data);
|
|
const min = d3.min(data);
|
|
const scheme = getColorScheme(terrs.select("#landHeights").attr("scheme"));
|
|
|
|
data = data.map(d => 1 - normalize(d, min, max));
|
|
|
|
debug.selectAll("polygon").remove();
|
|
debug
|
|
.selectAll("polygon")
|
|
.data(data)
|
|
.enter()
|
|
.append("polygon")
|
|
.attr("points", (d, i) => getGridPolygon(i))
|
|
.attr("fill", d => scheme(d))
|
|
.attr("stroke", d => scheme(d));
|
|
}
|
|
|
|
function drawRouteConnections() {
|
|
debug.select("#connections").remove();
|
|
const routes = debug.append("g").attr("id", "connections").attr("stroke-width", 0.8);
|
|
|
|
const points = pack.cells.p;
|
|
const links = pack.cells.routes;
|
|
|
|
for (const from in links) {
|
|
for (const to in links[from]) {
|
|
const [x1, y1] = points[from];
|
|
const [x3, y3] = points[to];
|
|
const [x2, y2] = [(x1 + x3) / 2, (y1 + y3) / 2];
|
|
const routeId = links[from][to];
|
|
|
|
routes
|
|
.append("line")
|
|
.attr("x1", x1)
|
|
.attr("y1", y1)
|
|
.attr("x2", x2)
|
|
.attr("y2", y2)
|
|
.attr("data-id", routeId)
|
|
.attr("stroke", C_12[routeId % 12]);
|
|
}
|
|
}
|
|
}
|
|
|
|
function drawPoint([x, y], {color = "red", radius = 0.5}) {
|
|
debug.append("circle").attr("cx", x).attr("cy", y).attr("r", radius).attr("fill", color);
|
|
}
|
|
|
|
function drawPath(points, {color = "red", width = 0.5}) {
|
|
const lineGen = d3.line().curve(d3.curveBundle);
|
|
debug
|
|
.append("path")
|
|
.attr("d", round(lineGen(points)))
|
|
.attr("stroke", color)
|
|
.attr("stroke-width", width)
|
|
.attr("fill", "none");
|
|
}
|