|  |  | @@ -183,7 +183,27 @@ function makeEntity() { | 
		
	
		
			
			|  |  |  | type: "mass", | 
		
	
		
			
			|  |  |  | base: math.unit(80, "kg") | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | image: "./man.svg", | 
		
	
		
			
			|  |  |  | name: "Body" | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | pepper: { | 
		
	
		
			
			|  |  |  | attributes: { | 
		
	
		
			
			|  |  |  | height: { | 
		
	
		
			
			|  |  |  | name: "Height", | 
		
	
		
			
			|  |  |  | power: 1, | 
		
	
		
			
			|  |  |  | type: "length", | 
		
	
		
			
			|  |  |  | base: math.unit(50, "centimeter") | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | weight: { | 
		
	
		
			
			|  |  |  | name: "Weight", | 
		
	
		
			
			|  |  |  | power: 3, | 
		
	
		
			
			|  |  |  | type: "mass", | 
		
	
		
			
			|  |  |  | base: math.unit(1, "kg") | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | image: "./pepper.png", | 
		
	
		
			
			|  |  |  | name: "Pepper" | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | init: function () { | 
		
	
	
		
			
				|  |  | @@ -243,6 +263,7 @@ function deselect() { | 
		
	
		
			
			|  |  |  | selected.classList.remove("selected"); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | selected = null; | 
		
	
		
			
			|  |  |  | clearViewList(); | 
		
	
		
			
			|  |  |  | clearEntityOptions(); | 
		
	
		
			
			|  |  |  | clearViewOptions(); | 
		
	
		
			
			|  |  |  | } | 
		
	
	
		
			
				|  |  | @@ -255,6 +276,7 @@ function select(target) { | 
		
	
		
			
			|  |  |  | selected.classList.add("selected"); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | entityInfo(selectedEntity, target.dataset.view); | 
		
	
		
			
			|  |  |  | configViewList(selectedEntity, target.dataset.view); | 
		
	
		
			
			|  |  |  | configEntityOptions(selectedEntity); | 
		
	
		
			
			|  |  |  | configViewOptions(selectedEntity, target.dataset.view); | 
		
	
		
			
			|  |  |  | } | 
		
	
	
		
			
				|  |  | @@ -265,6 +287,33 @@ function entityInfo(entity, view) { | 
		
	
		
			
			|  |  |  | document.querySelector("#entity-height").innerText = "Height: " + entity.views[view].height.format({ precision: 3 }); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | function configViewList(entity, selectedView) { | 
		
	
		
			
			|  |  |  | const list = document.querySelector("#entity-view"); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | list.innerHTML = ""; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | list.style.display = "block"; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | console.log | 
		
	
		
			
			|  |  |  | Object.keys(entity.views).forEach(view => { | 
		
	
		
			
			|  |  |  | const option = document.createElement("option"); | 
		
	
		
			
			|  |  |  | option.innerText = entity.views[view].name; | 
		
	
		
			
			|  |  |  | option.value = view; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (view === selectedView) { | 
		
	
		
			
			|  |  |  | option.selected = true; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | list.appendChild(option); | 
		
	
		
			
			|  |  |  | }); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | function clearViewList() { | 
		
	
		
			
			|  |  |  | const list = document.querySelector("#entity-view"); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | list.innerHTML = ""; | 
		
	
		
			
			|  |  |  | list.style.display = "none"; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | function configEntityOptions(entity) { | 
		
	
		
			
			|  |  |  | const holder = document.querySelector("#options-entity"); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -428,7 +477,7 @@ function displayEntity(entity, view, x, y) { | 
		
	
		
			
			|  |  |  | box.appendChild(img); | 
		
	
		
			
			|  |  |  | box.appendChild(nameTag); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | img.src = "./man.svg" | 
		
	
		
			
			|  |  |  | img.src = entity.views[view].image | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | box.dataset.x = x; | 
		
	
		
			
			|  |  |  | box.dataset.y = y; | 
		
	
	
		
			
				|  |  | @@ -471,6 +520,15 @@ document.addEventListener("DOMContentLoaded", () => { | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | world.addEventListener("mousedown", e => deselect()); | 
		
	
		
			
			|  |  |  | document.addEventListener("mouseup", e => clickUp()); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | document.querySelector("#entity-view").addEventListener("input", e => { | 
		
	
		
			
			|  |  |  | console.log(e.target.value) | 
		
	
		
			
			|  |  |  | selected.dataset.view = e.target.value | 
		
	
		
			
			|  |  |  | selected.querySelector(".entity-image").src = entities[selected.dataset.key].views[e.target.value].image; | 
		
	
		
			
			|  |  |  | updateSizes(); | 
		
	
		
			
			|  |  |  | }); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | clearViewList(); | 
		
	
		
			
			|  |  |  | }); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | window.addEventListener("resize", () => { | 
		
	
	
		
			
				|  |  | 
 |