Browse Source

Allow spawning of entities

tags/v0.0.2
Fen Dweller 5 years ago
parent
commit
33eda1c94a
2 changed files with 44 additions and 0 deletions
  1. +36
    -0
      macrovision.js
  2. +8
    -0
      presets/characters.js

+ 36
- 0
macrovision.js View File

@@ -32,6 +32,10 @@ const config = {
maxLineSize: 250
}

const availableEntities = {

}

const entities = {

}
@@ -481,6 +485,8 @@ function testClick(event) {

function removeEntity(element) {
delete entities[element.dataset.key];
const bottomName = document.querySelector("#bottom-name-" + element.dataset.key);
bottomName.parentElement.removeChild(bottomName);
element.parentElement.removeChild(element);
}
function displayEntity(entity, view, x, y) {
@@ -581,8 +587,38 @@ document.addEventListener("DOMContentLoaded", () => {
});

clearViewList();

prepareEntities();
});

function prepareEntities() {
availableEntities["buildings"] = makeBuildings();
availableEntities["characters"] = makeCharacters();

const holder = document.querySelector("#menubar");
Object.entries(availableEntities).forEach(([category, entityList]) => {
const select = document.createElement("select");
select.id = "create-entity-" + category;
for (let i = 0; i < entityList.length; i++) {
const entity = entityList[i];
const option = document.createElement("option");
option.value = i;
option.innerText = entity.name;
select.appendChild(option);
};

const button = document.createElement("button");

button.innerText = "Create " + category;
button.addEventListener("click", e => {
displayEntity(entityList[select.value], entityList[select.value].defaultView, 0.5, 0.5);
});

holder.appendChild(select);
holder.appendChild(button);
});
}

window.addEventListener("resize", () => {
updateSizes();
})


+ 8
- 0
presets/characters.js View File

@@ -56,6 +56,7 @@ function makeFen() {
entity.views.body.height = math.unit(1, "km");
return entity;
}

function makeMan() {
const views = {
body: {
@@ -81,4 +82,11 @@ function makeMan() {
};

return makeEntity("Man", "Fen", views);
}

function makeCharacters() {
const results = [];
results.push(makeFen());
results.push(makeMan());
return results;
}

Loading…
Cancel
Save