Quellcode durchsuchen

Add a dropdown box to select an entity

tags/v0.1.0
Fen Dweller vor 6 Jahren
Ursprung
Commit
48927b21f7
2 geänderte Dateien mit 32 neuen und 0 gelöschten Zeilen
  1. +8
    -0
      macrovision.html
  2. +24
    -0
      macrovision.js

+ 8
- 0
macrovision.html Datei anzeigen

@@ -134,6 +134,14 @@
</div> </div>
</div> </div>
</span> </span>
<div class="options-label">
Selected Entity
</div>
<div class="options-row">
<select id="options-selected-entity" class="options-selector">
<option id="options-selected-entity-none">None</option>
</select>
</div>
<h3 class="options-header" id="entity-category-header">Entity options</h3> <h3 class="options-header" id="entity-category-header">Entity options</h3>
<div class="options-category" id="entity-category"> <div class="options-category" id="entity-category">
<div class="options-label"> <div class="options-label">


+ 24
- 0
macrovision.js Datei anzeigen

@@ -408,6 +408,8 @@ function deselect() {
selected.classList.remove("selected"); selected.classList.remove("selected");
} }


document.getElementById("options-selected-entity-none").selected = "selected";

clearAttribution(); clearAttribution();


selected = null; selected = null;
@@ -421,6 +423,8 @@ function select(target) {
selected = target; selected = target;
selectedEntity = entities[target.dataset.key]; selectedEntity = entities[target.dataset.key];


document.getElementById("options-selected-entity-" + target.dataset.key).selected = "selected";

selected.classList.add("selected"); selected.classList.add("selected");
displayAttribution(selectedEntity.views[selectedEntity.view].image.source); displayAttribution(selectedEntity.views[selectedEntity.view].image.source);
@@ -869,6 +873,10 @@ function removeEntity(element) {
if (selected == element) { if (selected == element) {
deselect(); deselect();
} }

const option = document.querySelector("#options-selected-entity-" + element.dataset.key);
option.parentElement.removeChild(option);

delete entities[element.dataset.key]; delete entities[element.dataset.key];
const bottomName = document.querySelector("#bottom-name-" + element.dataset.key); const bottomName = document.querySelector("#bottom-name-" + element.dataset.key);
bottomName.parentElement.removeChild(bottomName); bottomName.parentElement.removeChild(bottomName);
@@ -959,6 +967,13 @@ function displayEntity(entity, view, x, y, selectEntity=false) {
topName.addEventListener("click", () => select(box)); topName.addEventListener("click", () => select(box));


world.appendChild(topName); world.appendChild(topName);
const entityOption = document.createElement("option");
entityOption.id = "options-selected-entity-" + entityIndex;
entityOption.value = entityIndex;
entityOption.innerText = entity.name;

document.getElementById("options-selected-entity").appendChild(entityOption);
entityIndex += 1; entityIndex += 1;
if (config.autoFit) { if (config.autoFit) {
fitWorld(); fitWorld();
@@ -1156,6 +1171,15 @@ document.addEventListener("DOMContentLoaded", () => {
prepareMenu(); prepareMenu();
prepareEntities(); prepareEntities();


document.querySelector("#options-selected-entity").addEventListener("input", e => {
if (e.target.value == "none") {
deselect()
} else {
select(document.querySelector("#entity-" + e.target.value));
}
});

document.querySelector("#menu-toggle-sidebar").addEventListener("click", e => { document.querySelector("#menu-toggle-sidebar").addEventListener("click", e => {
const sidebar = document.querySelector("#options"); const sidebar = document.querySelector("#options");
if (sidebar.classList.contains("hidden")) { if (sidebar.classList.contains("hidden")) {


Laden…
Abbrechen
Speichern