| @@ -75,7 +75,7 @@ function abs2rel(coords) { | |||||
| return { x: (coords.x - 50) / canvasWidth, y: coords.y / canvasHeight }; | return { x: (coords.x - 50) / canvasWidth, y: coords.y / canvasHeight }; | ||||
| } | } | ||||
| function updateEntityElement(entity, element) { | |||||
| function updateEntityElement(entity, element, zIndex) { | |||||
| const position = rel2abs({ x: element.dataset.x, y: element.dataset.y }); | const position = rel2abs({ x: element.dataset.x, y: element.dataset.y }); | ||||
| const view = element.dataset.view; | const view = element.dataset.view; | ||||
| @@ -93,14 +93,30 @@ function updateEntityElement(entity, element) { | |||||
| bottomName.style.left = position.x + entX + "px"; | bottomName.style.left = position.x + entX + "px"; | ||||
| bottomName.style.top = "95vh"; | bottomName.style.top = "95vh"; | ||||
| bottomName.innerText = entity.name; | bottomName.innerText = entity.name; | ||||
| if (zIndex) { | |||||
| element.style.zIndex = zIndex; | |||||
| } | |||||
| } | } | ||||
| function updateSizes() { | function updateSizes() { | ||||
| drawScale(); | drawScale(); | ||||
| Object.entries(entities).forEach(([key, entity]) => { | |||||
| const element = document.querySelector("#entity-" + key); | |||||
| updateEntityElement(entity, element); | |||||
| let ordered = Object.entries(entities); | |||||
| ordered.sort((e1, e2) => { | |||||
| return e1[1].views[e1[1].view].height.toNumber("meters") - e2[1].views[e2[1].view].height.toNumber("meters") | |||||
| }); | }); | ||||
| let zIndex = ordered.length; | |||||
| ordered.forEach(entity => { | |||||
| const element = document.querySelector("#entity-" + entity[0]); | |||||
| updateEntityElement(entity[1], element, zIndex); | |||||
| zIndex -= 1; | |||||
| }); | |||||
| } | } | ||||
| function drawScale() { | function drawScale() { | ||||
| @@ -615,6 +631,7 @@ function displayEntity(entity, view, x, y) { | |||||
| box.id = "entity-" + entityIndex; | box.id = "entity-" + entityIndex; | ||||
| box.dataset.key = entityIndex; | box.dataset.key = entityIndex; | ||||
| box.dataset.view = view; | box.dataset.view = view; | ||||
| entity.view = view; | |||||
| entities[entityIndex] = entity; | entities[entityIndex] = entity; | ||||
| entity.index = entityIndex; | entity.index = entityIndex; | ||||
| @@ -700,7 +717,8 @@ document.addEventListener("DOMContentLoaded", () => { | |||||
| }); | }); | ||||
| document.querySelector("#entity-view").addEventListener("input", e => { | document.querySelector("#entity-view").addEventListener("input", e => { | ||||
| selected.dataset.view = e.target.value | |||||
| selected.dataset.view = e.target.value; | |||||
| entities[selected.dataset.view].view = e.target.value; | |||||
| const image = entities[selected.dataset.key].views[e.target.value].image | const image = entities[selected.dataset.key].views[e.target.value].image | ||||
| selected.querySelector(".entity-image").src = image.source; | selected.querySelector(".entity-image").src = image.source; | ||||
| @@ -745,7 +763,6 @@ document.addEventListener("DOMContentLoaded", () => { | |||||
| }); | }); | ||||
| document.addEventListener("keydown", e => { | document.addEventListener("keydown", e => { | ||||
| console.log(e) | |||||
| if (e.key == "Delete") { | if (e.key == "Delete") { | ||||
| if (selected) { | if (selected) { | ||||
| removeEntity(selected); | removeEntity(selected); | ||||