mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
Timeout much shorter when server is paused to reduce update lag
This commit is contained in:
@@ -1,36 +1,27 @@
|
|||||||
import { getApp } from "..";
|
|
||||||
import { Panel } from "./panel";
|
import { Panel } from "./panel";
|
||||||
|
|
||||||
export class ConnectionStatusPanel extends Panel {
|
export class ConnectionStatusPanel extends Panel {
|
||||||
|
|
||||||
#previousMissionElapsedTime:number = 0;
|
|
||||||
|
|
||||||
constructor(ID: string) {
|
constructor(ID: string) {
|
||||||
super( ID );
|
super( ID );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
update(connected: boolean) {
|
|
||||||
|
|
||||||
if ( connected ) {
|
|
||||||
|
|
||||||
const missionElapsedTime = getApp().getMissionManager().getDateAndTime().elapsedTime;
|
|
||||||
|
|
||||||
if ( missionElapsedTime === this.#previousMissionElapsedTime ) {
|
|
||||||
this.getElement().toggleAttribute( "data-is-connected", false );
|
|
||||||
this.getElement().toggleAttribute( "data-is-paused", true );
|
|
||||||
} else {
|
|
||||||
this.getElement().toggleAttribute( "data-is-connected", true );
|
|
||||||
this.getElement().toggleAttribute( "data-is-paused", false );
|
|
||||||
}
|
|
||||||
|
|
||||||
this.#previousMissionElapsedTime = missionElapsedTime;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
this.getElement().toggleAttribute( "data-is-connected", false );
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
showDisconnected() {
|
||||||
|
this.getElement().toggleAttribute( "data-is-connected", false );
|
||||||
|
this.getElement().toggleAttribute( "data-is-paused", false );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
showConnected() {
|
||||||
|
this.getElement().toggleAttribute( "data-is-connected", true );
|
||||||
|
this.getElement().toggleAttribute( "data-is-paused", false );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
showServerPaused() {
|
||||||
|
this.getElement().toggleAttribute( "data-is-connected", false );
|
||||||
|
this.getElement().toggleAttribute( "data-is-paused", true );
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -17,6 +17,8 @@ export class ServerManager {
|
|||||||
#sessionHash: string | null = null;
|
#sessionHash: string | null = null;
|
||||||
#lastUpdateTimes: {[key: string]: number} = {}
|
#lastUpdateTimes: {[key: string]: number} = {}
|
||||||
#demoEnabled = false;
|
#demoEnabled = false;
|
||||||
|
#previousMissionElapsedTime:number = 0; // Track if mission elapsed time is increasing (i.e. is the server paused)
|
||||||
|
#serverIsPaused: boolean = false;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
this.#lastUpdateTimes[UNITS_URI] = Date.now();
|
this.#lastUpdateTimes[UNITS_URI] = Date.now();
|
||||||
@@ -426,9 +428,25 @@ export class ServerManager {
|
|||||||
var time = getApp().getUnitsManager()?.update(buffer);
|
var time = getApp().getUnitsManager()?.update(buffer);
|
||||||
return time;
|
return time;
|
||||||
}, true);
|
}, true);
|
||||||
(getApp().getPanelsManager().get("connectionStatus") as ConnectionStatusPanel).update(this.getConnected());
|
|
||||||
|
const elapsedMissionTime = getApp().getMissionManager().getDateAndTime().elapsedTime;
|
||||||
|
this.#serverIsPaused = ( elapsedMissionTime === this.#previousMissionElapsedTime );
|
||||||
|
this.#previousMissionElapsedTime = elapsedMissionTime;
|
||||||
|
|
||||||
|
const csp = (getApp().getPanelsManager().get("connectionStatus") as ConnectionStatusPanel);
|
||||||
|
|
||||||
|
if ( this.getConnected() ) {
|
||||||
|
if ( this.getServerIsPaused() ) {
|
||||||
|
csp.showServerPaused();
|
||||||
|
} else {
|
||||||
|
csp.showConnected();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
csp.showDisconnected();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}, 5000);
|
}, ( this.getServerIsPaused() ? 500 : 5000 ));
|
||||||
|
|
||||||
window.setInterval(() => {
|
window.setInterval(() => {
|
||||||
if (!this.getPaused() && getApp().getMissionManager().getCommandModeOptions().commandMode != NONE) {
|
if (!this.getPaused() && getApp().getMissionManager().getCommandModeOptions().commandMode != NONE) {
|
||||||
@@ -502,4 +520,8 @@ export class ServerManager {
|
|||||||
getPaused() {
|
getPaused() {
|
||||||
return this.#paused;
|
return this.#paused;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getServerIsPaused() {
|
||||||
|
return this.#serverIsPaused;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user