Unit list.

This commit is contained in:
PeekabooSteam
2023-03-16 15:06:42 +00:00
parent b89a1ed418
commit 4c6d445c4a
8 changed files with 130 additions and 2 deletions

View File

@@ -10,6 +10,7 @@ import { ATC } from "./atc/ATC";
import { FeatureSwitches } from "./FeatureSwitches";
import { LogPanel } from "./panels/logpanel";
import { getAirbases, getBulllseye as getBulllseyes, getMission, getUnits, toggleDemoEnabled } from "./server/server";
import { UnitDataTable } from "./units/unitdatatable";
var map: Map;
@@ -29,6 +30,7 @@ var connected: boolean = false;
var activeCoalition: string = "blue";
var sessionHash: string | null = null;
var unitDataTable = new UnitDataTable();
var featureSwitches;
@@ -75,6 +77,7 @@ function setup() {
startPeriodicUpdate();
}
function startPeriodicUpdate() {
requestUpdate();
requestRefresh();
@@ -84,6 +87,7 @@ function requestUpdate() {
/* Main update rate = 250ms is minimum time, equal to server update time. */
getUnits((data: UnitsData) => {
getUnitsManager()?.update(data);
unitDataTable.refresh( data.units );
checkSessionHash(data.sessionHash);
}, false);
setTimeout(() => requestUpdate(), getConnected() ? 250 : 1000);

View File

@@ -0,0 +1,82 @@
export class UnitDataTable {
#element;
#tableId = "unit-data-table";
#hasUpdated = false;
constructor() {
const table = document.getElementById( this.#tableId );
if ( table instanceof HTMLElement ) {
this.#element = table;
} else {
return;
}
}
getElement() {
return this.#element;
}
refresh( units:object ) {
if ( this.#hasUpdated ) {
return;
}
const unitsArray = Object.values( units );
function addRow( parentEl:HTMLElement, columns:string[] ) {
const rowDiv = document.createElement( "div" );
for ( const item of columns ) {
const div = document.createElement( "div" );
div.innerText = item;
rowDiv.appendChild( div );
}
parentEl.appendChild( rowDiv );
}
const el = this.getElement();
if ( el ) {
el.innerHTML = "";
addRow( el, [ "Callsign", "Name", "Category", "AI/Human" ] )
for ( const unit of unitsArray ) {
const dataset = [ unit.baseData.unitName, unit.baseData.name, unit.baseData.category, ( unit.baseData.AI ) ? "AI" : "Human" ];
if ( this.getElement() ) {
}
addRow( el, dataset );
}
}
this.#hasUpdated = true;
}
}