feat: Implement RuntimeDefsModule for managing shared runtime definitions and update related components

This commit is contained in:
Azgaar 2026-03-13 12:18:27 +01:00
parent f928f9d101
commit 73d6d664fc
14 changed files with 126 additions and 43 deletions

View file

@ -79,7 +79,7 @@ function editCoastline() {
const feature = features[featureId];
// change coastline path
defs.select("#featurePaths > path#feature_" + featureId).attr("d", getFeaturePath(feature));
d3.select("#featurePaths > path#feature_" + featureId).attr("d", getFeaturePath(feature));
// update area
const points = feature.vertices.map(vertex => vertices.p[vertex]);

View file

@ -75,8 +75,9 @@ function editHeightmap(options) {
viewbox.selectAll("#landmass, #lakes").style("display", "none");
changeOnlyLand.checked = true;
} else if (mode === "risk") {
defs.selectAll("#land, #water").selectAll("path").remove();
defs.select("#featurePaths").selectAll("path").remove();
RuntimeDefs.getLandMask().selectAll("path").remove();
RuntimeDefs.getWaterMask().selectAll("path").remove();
RuntimeDefs.getFeaturePaths().selectAll("path").remove();
viewbox.selectAll("#coastline use, #lakes path, #oceanLayers path").remove();
changeOnlyLand.checked = false;
}

View file

@ -106,7 +106,7 @@ function editLake() {
const feature = getLake();
// update lake path
defs.select("#featurePaths > path#feature_" + feature.i).attr("d", getFeaturePath(feature));
d3.select("#featurePaths > path#feature_" + feature.i).attr("d", getFeaturePath(feature));
// update area
const points = feature.vertices.map(vertex => pack.vertices.p[vertex]);

View file

@ -649,8 +649,7 @@ function addLabelOnClick() {
.attr("x", 0)
.text(name);
defs
.select("#textPaths")
RuntimeDefs.getTextPaths()
.append("path")
.attr("id", "textPath_" + id)
.attr("d", `M${point[0] - width},${point[1]} h${width * 2}`);