Merge branch 'v0.1.0' of https://github.com/Pax1601/DCSOlympus into v0.1.0

This commit is contained in:
PeekabooSteam
2023-03-07 22:43:17 +00:00
11 changed files with 92 additions and 19 deletions

View File

@@ -1,5 +1,6 @@
interface UnitsData {
units: {[key: string]: UnitData},
units: {[key: string]: UnitData},
sessionHash: string
}
interface AirbasesData {

View File

@@ -30,6 +30,8 @@ var logPanel: LogPanel;
var connected: boolean = false;
var activeCoalition: string = "blue";
var sessionHash: string | null = null;
var featureSwitches;
function setup() {
@@ -43,7 +45,7 @@ function setup() {
contextMenu = new ContextMenu("contextmenu");
unitInfoPanel = new UnitInfoPanel("unit-info-panel");
//unitInfoPanel = new UnitInfoPanel("unit-info-panel");
unitControlPanel = new UnitControlPanel("unit-control-panel");
connectionStatusPanel = new ConnectionStatusPanel("connection-status-panel");
mouseInfoPanel = new MouseInfoPanel("mouse-info-panel");
@@ -151,7 +153,10 @@ function startPeriodicUpdate()
function requestUpdate() {
/* Main update rate = 250ms is minimum time, equal to server update time. */
getUnits((data: UnitsData) => getUnitsManager()?.update(data), false);
getUnits((data: UnitsData) => {
getUnitsManager()?.update(data);
checkSessionHash(data.sessionHash);
}, false);
setTimeout(() => requestUpdate(), getConnected() ? 250 : 1000);
getConnectionStatusPanel()?.update(getConnected());
@@ -159,8 +164,24 @@ function requestUpdate() {
function requestRefresh() {
/* Main refresh rate = 5000ms. */
getUnits((data: UnitsData) => getUnitsManager()?.update(data), true);
setTimeout(() => requestUpdate(), 5000);
getUnits((data: UnitsData) => {
getUnitsManager()?.update(data);
getAirbases((data: AirbasesData) => getMissionData()?.update(data));
getBulllseye((data: BullseyesData) => getMissionData()?.update(data));
checkSessionHash(data.sessionHash);
}, true);
setTimeout(() => requestRefresh(), 5000);
}
function checkSessionHash(newSessionHash: string)
{
if (sessionHash != null)
{
if (newSessionHash != sessionHash)
location.reload();
}
else
sessionHash = newSessionHash;
}
export function getMap() {

View File

@@ -2,7 +2,7 @@ import * as L from 'leaflet'
import { setConnected } from '..';
/* Edit here to change server address */
const REST_ADDRESS = "http://localhost:3000/demo";
const REST_ADDRESS = "http://localhost:30000/olympus";
const UNITS_URI = "units";
const REFRESH_URI = "refresh";
const UPDATE_URI = "update";

View File

@@ -88,15 +88,30 @@ export class Unit extends Marker {
setData(data: UnitData) {
document.dispatchEvent(new CustomEvent("unitUpdated", { detail: this }));
var updateMarker = true;
//if (this.getFlightData().latitude != response.flightData.latitude ||
// this.getFlightData().longitude != response.flightData.longitude ||
// this.getData().alive != response.alive ||
// this.#forceUpdate ||
// !getMap().hasLayer(this.#marker))
// updateMarker = true;
var updateMarker = false;
if (this.getFlightData().latitude != data.flightData.latitude ||
this.getFlightData().longitude != data.flightData.longitude ||
this.getData().alive != data.alive || this.#forceUpdate || !getMap().hasLayer(this))
updateMarker = true;
this.#data.AI = data.AI;
this.#data.name = data.name;
this.#data.unitName = data.unitName;
this.#data.groupName = data.groupName;
this.#data.alive = data.alive;
this.#data.category = data.category;
if (data.flightData != undefined)
this.#data.flightData = data.flightData;
if (data.missionData != undefined)
this.#data.missionData = data.missionData;
if (data.formationData != undefined)
this.#data.formationData = data.formationData;
if (data.taskData != undefined)
this.#data.taskData = data.taskData;
if (data.optionsData != undefined)
this.#data.optionsData = data.optionsData;
this.#data = data;
/* Dead units can't be selected */
this.setSelected(this.getSelected() && this.getData().alive)
@@ -163,7 +178,7 @@ export class Unit extends Marker {
addDestination(latlng: L.LatLng) {
var path: any = {};
if (this.getTaskData().activePath != null) {
if (this.getTaskData().activePath != undefined) {
path = this.getTaskData().activePath;
path[(Object.keys(path).length + 1).toString()] = latlng;
}
@@ -174,7 +189,7 @@ export class Unit extends Marker {
}
clearDestinations() {
this.getTaskData().activePath = null;
this.getTaskData().activePath = undefined;
}
getHidden() {
@@ -191,7 +206,7 @@ export class Unit extends Marker {
getWingmen() {
var wingmen: Unit[] = [];
if (this.getFormationData().wingmenIDs != null) {
if (this.getFormationData().wingmenIDs != undefined) {
for (let ID of this.getFormationData().wingmenIDs) {
var unit = getUnitsManager().getUnitByID(ID)
if (unit)
@@ -318,7 +333,7 @@ export class Unit extends Marker {
}
#drawPath() {
if (this.getTaskData().activePath != null) {
if (this.getTaskData().activePath != undefined) {
var points = [];
points.push(new LatLng(this.getFlightData().latitude, this.getFlightData().longitude));