gravity/overlay.js
2025-12-28 15:19:58 -06:00

37 lines
1.0 KiB
JavaScript

export class Overlay {
sim = undefined;
constructor(sim) {
this.sim = sim;
// Add info text box
const infoBox = document.createElement('div');
this.sim.div.appendChild(infoBox);
this.infoBox = infoBox;
infoBox.style.position = 'relative';
infoBox.style.display = 'inline-block';
infoBox.style.top = 0;
infoBox.style.left = '14em';
infoBox.width = 'fit-content';
infoBox.style.zIndex = 1;
}
renderInfo() {
this.infoBox.innerHTML = '';
const table = document.createElement('table');
for (let [k, v] of Object.entries(this.sim.info)) {
let row = document.createElement('tr');
let keyCell = document.createElement('td');
keyCell.innerHTML = `${k}: `;
row.appendChild(keyCell);
let vs = Array.isArray(v) ? v : [v];
for (let x of vs) {
let valueCell = document.createElement('td');
valueCell.innerHTML = x;
row.appendChild(valueCell);
}
table.appendChild(row);
}
this.infoBox.appendChild(table);
}
}