diff --git a/index.css b/index.css index a1a24e92..d57a8007 100644 --- a/index.css +++ b/index.css @@ -991,12 +991,6 @@ body button.noicon { stroke-width: 0.4; } -#controlCells > .occupied { - fill: #ff828240; - stroke: #ff8282; - stroke-width: 0.4; -} - #vertices > circle { fill: #ff0000; stroke: #841f1f; diff --git a/modules/ui/rivers-editor.js b/modules/ui/rivers-editor.js index b2b926d0..50a01ac3 100644 --- a/modules/ui/rivers-editor.js +++ b/modules/ui/rivers-editor.js @@ -124,18 +124,13 @@ function editRiver(id) { const initCell = +this.dataset.cell; const index = +this.dataset.i; - const occupiedCells = i.filter(i => r[i] && !river.cells.includes(i)); - drawCells(occupiedCells, "occupied"); let movedToCell = null; d3.event.on("drag", function () { const {x, y} = d3.event; const currentCell = findCell(x, y); - if (initCell !== currentCell) { - if (occupiedCells.includes(currentCell)) return; - movedToCell = currentCell; - } else movedToCell = null; + movedToCell = initCell !== currentCell ? currentCell : null; this.setAttribute("cx", x); this.setAttribute("cy", y); @@ -149,15 +144,15 @@ function editRiver(id) { river.cells[index] = movedToCell; drawCells(river.cells, "current"); - // swap river data - r[initCell] = 0; - r[movedToCell] = river.i; - const sourceFlux = fl[initCell]; - fl[initCell] = fl[movedToCell]; - fl[movedToCell] = sourceFlux; + if (!r[movedToCell]) { + // swap river data + r[initCell] = 0; + r[movedToCell] = river.i; + const sourceFlux = fl[initCell]; + fl[initCell] = fl[movedToCell]; + fl[movedToCell] = sourceFlux; + } } - - debug.select("#controlCells").selectAll("polygon.available, polygon.occupied").remove(); }); }