Sfoglia il codice sorgente

Add an option to show how far the horizon is

master
Fen Dweller 4 anni fa
parent
commit
2f0928cb8d
1 ha cambiato i file con 33 aggiunte e 13 eliminazioni
  1. +33
    -13
      macrovision.js

+ 33
- 13
macrovision.js Vedi File

@@ -571,13 +571,12 @@ function updateEntityElement(entity, element) {
let ratioInfo

function updateRatios() {
let text = ""
if (config.showRatios) {
if (selectedEntity !== null && prevSelectedEntity !== null && selectedEntity !== prevSelectedEntity) {
let first = selectedEntity.currentView.height;
let second = prevSelectedEntity.currentView.height;
let text = ""
if (first.toNumber("meters") < second.toNumber("meters")) {
text += selectedEntity.name + " is " + math.format(math.divide(second, first), { precision: 5 }) + " times smaller than " + prevSelectedEntity.name;
} else {
@@ -592,23 +591,35 @@ function updateRatios() {
apparentHeight = apparentHeight.to("meters");
}

text += prevSelectedEntity.name + " looks " + math.format(apparentHeight, { precision: 3}) + " tall to " + selectedEntity.name;
text += prevSelectedEntity.name + " looks " + math.format(apparentHeight, { precision: 3}) + " tall to " + selectedEntity.name + "\n";

if (selectedEntity.currentView.capacity && prevSelectedEntity.currentView.weight) {
const containCount = math.divide(selectedEntity.currentView.capacity, math.divide(prevSelectedEntity.currentView.weight, math.unit("80kg/people")));
if (containCount > 0.1) {
text += "\n"
text += selectedEntity.name + " can fit " + math.format(containCount, { precision: 1 }) + " of " + prevSelectedEntity.name + " inside them"
text += selectedEntity.name + " can fit " + math.format(containCount, { precision: 1 }) + " of " + prevSelectedEntity.name + " inside them" + "\n"
}
}
ratioInfo.innerText = text;
} else {
//ratioInfo.innerText = "";
}
}

if (config.showHorizon) {
if (selectedEntity !== null) {
const R = math.unit(1.27560e+7, "meters")
const h = selectedEntity.currentView.height

const first = math.multiply(2, math.multiply(R, h))
const second = math.multiply(h, h)

const sightline = math.sqrt(math.add(first, second)).to(config.height.units[0].unit.name)

text += selectedEntity.name + " could see for " + math.format(sightline, { precision: 3 })
}
}

ratioInfo.innerText = text;
}

@@ -2752,11 +2763,20 @@ const settingsData = {
},
set value(param) {
config.showRatios = param;
if (param) {
document.body.querySelector(".ratio-info").style.display = "block";
} else {
document.body.querySelector(".ratio-info").style.display = "none";
}
updateRatios();
}
},
"show-horizon": {
name: "Show Horizon",
desc: "Show how far the horizon would be for the selected character",
type: "toggle",
default: false,
get value() {
return config.showHorizon;
},
set value(param) {
config.showHorizon = param;
updateRatios();
}
},
"attach-rulers": {


Loading…
Annulla
Salva