|  |  | @@ -24,6 +24,15 @@ function makeObject(name, viewInfo) { | 
		
	
		
			
			|  |  |  | base: value.mass | 
		
	
		
			
			|  |  |  | }; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (value.volume) { | 
		
	
		
			
			|  |  |  | views[key].attributes.capacity = { | 
		
	
		
			
			|  |  |  | name: "Volume", | 
		
	
		
			
			|  |  |  | power: 3, | 
		
	
		
			
			|  |  |  | type: "volume", | 
		
	
		
			
			|  |  |  | base: value.volume | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | }); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | return makeEntity({ name: name }, views); | 
		
	
	
		
			
				|  |  | @@ -100,6 +109,37 @@ function makeHeightWeight(info, category, prefix = "", type = "objects") { | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | function makeHeightWeightSphere(info, category, prefix = "", type = "objects") { | 
		
	
		
			
			|  |  |  | const views = {}; | 
		
	
		
			
			|  |  |  | info.forEach(object => { | 
		
	
		
			
			|  |  |  | let src; | 
		
	
		
			
			|  |  |  | // this lets us provide our own source if needed | 
		
	
		
			
			|  |  |  | // useful for reusing existing art | 
		
	
		
			
			|  |  |  | if (object[5]) { | 
		
	
		
			
			|  |  |  | src = object[5]; | 
		
	
		
			
			|  |  |  | } else { | 
		
	
		
			
			|  |  |  | src = "./media/" + type + "/" + category.replace(/ /g, "-").toLowerCase() + "/" + prefix + object[0] + ".svg"; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | views[object[0]] = { | 
		
	
		
			
			|  |  |  | height: math.unit(object[1], object[2]), | 
		
	
		
			
			|  |  |  | mass: math.unit(object[3], object[4]), | 
		
	
		
			
			|  |  |  | volume: math.unit(Math.PI * 4 / 3 * Math.pow((object[1]/2), 3), object[2] + "^3"), | 
		
	
		
			
			|  |  |  | image: { source: src }, | 
		
	
		
			
			|  |  |  | name: object[0].replace(/-/g, " ").replace(/\b\w/g, x => x.toUpperCase()), | 
		
	
		
			
			|  |  |  | rename: true | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | }); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | return { | 
		
	
		
			
			|  |  |  | name: category, | 
		
	
		
			
			|  |  |  | constructor: () => makeObject( | 
		
	
		
			
			|  |  |  | category, | 
		
	
		
			
			|  |  |  | views | 
		
	
		
			
			|  |  |  | ) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | function makeShoes() { | 
		
	
		
			
			|  |  |  | const views = {}; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | 
 |