ATC clocks now synched to mission time

This commit is contained in:
PeekabooSteam 2023-05-17 19:36:12 +01:00
parent 0b490e4ce2
commit 2b155c4ed3
4 changed files with 87 additions and 5 deletions

View File

@ -1,3 +1,5 @@
import { getMissionData } from "..";
import { getConnected } from "../server/server";
import { ATCBoard } from "./atcboard";
import { ATCBoardGround } from "./board/ground";
import { ATCBoardTower } from "./board/tower";
@ -48,6 +50,10 @@ class ATCDataHandler {
this.#updateInterval = window.setInterval( () => {
if ( !getConnected() ) {
return;
}
const aBoardIsVisible = this.#atc.getBoards().some( board => board.boardIsVisible() );
if ( aBoardIsVisible ) {
@ -135,7 +141,7 @@ export class ATC {
getMissionDateTime() : Date {
return new Date( this.getMissionStartDateTime().getTime() + this.getMissionElapsedSeconds() );
return new Date( getMissionData().getNowDate() );
}

View File

@ -2,9 +2,10 @@ import { Dropdown } from "../controls/dropdown";
import { zeroAppend } from "../other/utils";
import { ATC } from "./atc";
import { Unit } from "../units/unit";
import { getUnitsManager } from "..";
import { getMissionData, getUnitsManager } from "..";
import Sortable from "sortablejs";
import { FlightInterface } from "./atc";
import { getConnected } from "../server/server";
export interface StripBoardStripInterface {
"id": string,
@ -84,6 +85,10 @@ export abstract class ATCBoard {
window.setInterval( () => {
if ( !getConnected() ) {
return;
}
this.updateClock();
}, 1000 );
@ -410,6 +415,10 @@ export abstract class ATCBoard {
this.#updateInterval = window.setInterval( () => {
if ( !getConnected() ) {
return;
}
this.update();
}, this.#updateIntervalDelay );
@ -446,8 +455,12 @@ export abstract class ATCBoard {
updateClock() {
const now = this.#atc.getMissionDateTime();
this.#clockElement.innerText = now.toLocaleTimeString();
const missionTime = this.#atc.getMissionDateTime().getTime();
const timeDiff = new Date().getTime() - getMissionData().getUpdateTime();
const nowDate = new Date( missionTime + timeDiff );
this.#clockElement.innerText = nowDate.toLocaleTimeString();
}

View File

@ -16,6 +16,14 @@ export class MissionHandler
#airbasesMarkers: {[name: string]: Airbase};
#theatre : string = "";
// Time
#date : any;
#elapsedTime : any;
#startTime : any;
#time : any;
#updateTime : any;
constructor()
{
this.#bullseyes = undefined;
@ -50,7 +58,30 @@ export class MissionHandler
getInfoPopup().setText("Map set to " + this.#theatre);
}
if ( "date" in data.mission ) {
this.#date = data.mission.date;
}
if ( "elapsedTime" in data.mission ) {
this.#elapsedTime = data.mission.elapsedTime;
}
if ( "startTime" in data.mission ) {
this.#startTime = data.mission.startTime;
}
if ( "time" in data.mission ) {
this.#time = data.mission.time;
}
}
if ( "time" in data ) {
this.#updateTime = data.time;
}
}
getBullseyes()
@ -90,6 +121,38 @@ export class MissionHandler
}
}
getDate() {
return this.#date;
}
getNowDate() {
const date = this.getDate();
const time = this.getTime();
let year = date.Year;
let month = date.Month - 1;
if ( month < 0 ) {
month = 11;
year--;
}
return new Date( year, month, date.Day, time.h, time.m, time.s );
}
getTime() {
return this.#time;
}
getUpdateTime() {
return this.#updateTime;
}
#onAirbaseClick(e: any)
{
getMap().showAirbaseContextMenu(e, e.sourceTarget);

View File

@ -322,7 +322,7 @@ export class AircraftDatabase extends UnitDatabase {
},
"H-6J": {
"name": "H-6J",
"label": "H-6J Badger,
"label": "H-6J Badger",
"era": ["Mid Cold War, Late Cold War", "Modern"],
"shortLabel": "H6",
"loadouts": [