Просмотр исходного кода

Allow spawning of entities

tags/v0.0.2
Fen Dweller 6 лет назад
Родитель
Сommit
33eda1c94a
2 измененных файлов: 44 добавлений и 0 удалений
  1. +36
    -0
      macrovision.js
  2. +8
    -0
      presets/characters.js

+ 36
- 0
macrovision.js Просмотреть файл

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


const availableEntities = {

}

const entities = { const entities = {


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


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


clearViewList(); 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", () => { window.addEventListener("resize", () => {
updateSizes(); updateSizes();
}) })


+ 8
- 0
presets/characters.js Просмотреть файл

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

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


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

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

Загрузка…
Отмена
Сохранить