|  |  | @@ -1206,8 +1206,26 @@ function makeEntity(info, views, sizes, forms = {}) { | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | view.units = {}; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (config.autoMass && view.attributes.weight === undefined) { | 
		
	
		
			
			|  |  |  | let base = undefined; | 
		
	
		
			
			|  |  |  | switch(config.autoMass) { | 
		
	
		
			
			|  |  |  | case "human": | 
		
	
		
			
			|  |  |  | base = math.divide(math.unit(150, "lbs"), math.unit(5.917, "feet")) | 
		
	
		
			
			|  |  |  | break | 
		
	
		
			
			|  |  |  | case "quadruped at shoulder": | 
		
	
		
			
			|  |  |  | base = math.divide(math.unit(80, "lbs"), math.unit(30, "inches")) | 
		
	
		
			
			|  |  |  | break | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | view.attributes.weight = { | 
		
	
		
			
			|  |  |  | name: "Mass", | 
		
	
		
			
			|  |  |  | power: 3, | 
		
	
		
			
			|  |  |  | type: "mass", | 
		
	
		
			
			|  |  |  | base: math.multiply(base, view.attributes.height.base) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (config.autoFoodIntake && view.attributes.weight !== undefined && view.attributes.energyNeed === undefined) { | 
		
	
		
			
			|  |  |  | view.attributes.energyNeed = { | 
		
	
		
			
			|  |  |  | view.attributes.energyIntake = { | 
		
	
		
			
			|  |  |  | name: "Food Intake", | 
		
	
		
			
			|  |  |  | power: 3, | 
		
	
		
			
			|  |  |  | type: "energy", | 
		
	
	
		
			
				|  |  | @@ -2526,6 +2544,7 @@ const settingsData = { | 
		
	
		
			
			|  |  |  | desc: "Draw interesting altitudes", | 
		
	
		
			
			|  |  |  | type: "select", | 
		
	
		
			
			|  |  |  | default: "none", | 
		
	
		
			
			|  |  |  | disabled: "none", | 
		
	
		
			
			|  |  |  | options: [ | 
		
	
		
			
			|  |  |  | "none", | 
		
	
		
			
			|  |  |  | "all", | 
		
	
	
		
			
				|  |  | @@ -2598,6 +2617,7 @@ const settingsData = { | 
		
	
		
			
			|  |  |  | desc: "What kind of ground to show, if any", | 
		
	
		
			
			|  |  |  | type: "select", | 
		
	
		
			
			|  |  |  | default: "black", | 
		
	
		
			
			|  |  |  | disabled: "none", | 
		
	
		
			
			|  |  |  | options: [ | 
		
	
		
			
			|  |  |  | "none", | 
		
	
		
			
			|  |  |  | "black", | 
		
	
	
		
			
				|  |  | @@ -2822,6 +2842,24 @@ const settingsData = { | 
		
	
		
			
			|  |  |  | toggleBodyClass("smoothing", param); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | "auto-mass": { | 
		
	
		
			
			|  |  |  | name: "Estimate Mass", | 
		
	
		
			
			|  |  |  | desc: "Guess the mass of things that don't have one specified using the selected body type", | 
		
	
		
			
			|  |  |  | type: "select", | 
		
	
		
			
			|  |  |  | default: "off", | 
		
	
		
			
			|  |  |  | disabled: "off", | 
		
	
		
			
			|  |  |  | options: [ | 
		
	
		
			
			|  |  |  | "off", | 
		
	
		
			
			|  |  |  | "human", | 
		
	
		
			
			|  |  |  | "quadruped at shoulder", | 
		
	
		
			
			|  |  |  | ], | 
		
	
		
			
			|  |  |  | get value() { | 
		
	
		
			
			|  |  |  | return config.autoMass | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | set value(param) { | 
		
	
		
			
			|  |  |  | config.autoMass = param | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | "auto-food-intake": { | 
		
	
		
			
			|  |  |  | name: "Estimate Food Intake", | 
		
	
		
			
			|  |  |  | desc: "Guess how much food creatures need, based on their mass -- 2000kcal per 150lbs", | 
		
	
	
		
			
				|  |  | @@ -2941,10 +2979,16 @@ function prepareSettings(userSettings) { | 
		
	
		
			
			|  |  |  | holder.appendChild(select); | 
		
	
		
			
			|  |  |  | menubar.appendChild(holder); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | holder.classList.add("enabled"); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | const update = () => { | 
		
	
		
			
			|  |  |  | entry.value = select.value; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (entry.disabled !== undefined && entry.value !== entry.disabled) { | 
		
	
		
			
			|  |  |  | holder.classList.add("enabled"); | 
		
	
		
			
			|  |  |  | holder.classList.remove("disabled"); | 
		
	
		
			
			|  |  |  | } else { | 
		
	
		
			
			|  |  |  | holder.classList.remove("enabled"); | 
		
	
		
			
			|  |  |  | holder.classList.add("disabled"); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | update(); | 
		
	
	
		
			
				|  |  | 
 |