mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
273 lines
5.5 KiB
TypeScript
273 lines
5.5 KiB
TypeScript
import { LatLng } from "leaflet";
|
|
import { OlympusApp } from "./olympusapp";
|
|
import { Airbase } from "./mission/airbase";
|
|
|
|
export interface OlympusPlugin {
|
|
getName: () => string;
|
|
initialize: (app: OlympusApp) => boolean;
|
|
}
|
|
|
|
declare global {
|
|
function getOlympusPlugin(): OlympusPlugin;
|
|
}
|
|
|
|
export interface ConfigurationOptions {
|
|
port: number;
|
|
address: string;
|
|
}
|
|
|
|
export interface ContextMenuOption {
|
|
tooltip: string;
|
|
src: string;
|
|
callback: CallableFunction;
|
|
}
|
|
|
|
export interface AirbasesData {
|
|
airbases: { [key: string]: any },
|
|
sessionHash: string;
|
|
time: number;
|
|
}
|
|
|
|
export interface BullseyesData {
|
|
bullseyes: { [key: string]: { latitude: number, longitude: number, coalition: string } },
|
|
sessionHash: string;
|
|
time: number;
|
|
}
|
|
|
|
export interface MissionData {
|
|
mission: {
|
|
theatre: string,
|
|
dateAndTime: DateAndTime;
|
|
commandModeOptions: CommandModeOptions;
|
|
coalitions: { red: string[], blue: string[] };
|
|
}
|
|
time: number;
|
|
sessionHash: string;
|
|
}
|
|
|
|
export interface CommandModeOptions {
|
|
commandMode: string;
|
|
restrictSpawns: boolean;
|
|
restrictToCoalition: boolean;
|
|
setupTime: number;
|
|
spawnPoints: {
|
|
red: number,
|
|
blue: number
|
|
},
|
|
eras: string[]
|
|
}
|
|
|
|
export interface DateAndTime {
|
|
date: { Year: number, Month: number, Day: number };
|
|
time: { h: number, m: number, s: number };
|
|
elapsedTime: number;
|
|
startTime: number;
|
|
}
|
|
|
|
export interface LogData {
|
|
logs: { [key: string]: string },
|
|
sessionHash: string;
|
|
time: number;
|
|
}
|
|
|
|
export interface ServerRequestOptions {
|
|
time?: number;
|
|
commandHash?: string;
|
|
}
|
|
|
|
export interface UnitSpawnTable {
|
|
unitType: string,
|
|
location: LatLng,
|
|
altitude?: number,
|
|
loadout?: string,
|
|
liveryID: string
|
|
}
|
|
|
|
export interface ObjectIconOptions {
|
|
showState: boolean,
|
|
showVvi: boolean,
|
|
showHotgroup: boolean,
|
|
showUnitIcon: boolean,
|
|
showShortLabel: boolean,
|
|
showFuel: boolean,
|
|
showAmmo: boolean,
|
|
showSummary: boolean,
|
|
showCallsign: boolean,
|
|
rotateToHeading: boolean
|
|
}
|
|
|
|
export interface GeneralSettings {
|
|
prohibitJettison: boolean;
|
|
prohibitAA: boolean;
|
|
prohibitAG: boolean;
|
|
prohibitAfterburner: boolean;
|
|
prohibitAirWpn: boolean;
|
|
}
|
|
|
|
export interface TACAN {
|
|
isOn: boolean;
|
|
channel: number;
|
|
XY: string;
|
|
callsign: string;
|
|
}
|
|
|
|
export interface Radio {
|
|
frequency: number;
|
|
callsign: number;
|
|
callsignNumber: number;
|
|
}
|
|
|
|
export interface Ammo {
|
|
quantity: number,
|
|
name: string,
|
|
guidance: number,
|
|
category: number,
|
|
missileCategory: number
|
|
}
|
|
|
|
export interface Contact {
|
|
ID: number,
|
|
detectionMethod: number
|
|
}
|
|
|
|
export interface Offset {
|
|
x: number,
|
|
y: number,
|
|
z: number
|
|
}
|
|
|
|
export interface UnitData {
|
|
category: string,
|
|
ID: number;
|
|
alive: boolean;
|
|
human: boolean;
|
|
controlled: boolean;
|
|
coalition: string;
|
|
country: number;
|
|
name: string;
|
|
unitName: string;
|
|
groupName: string;
|
|
state: string;
|
|
task: string;
|
|
hasTask: boolean;
|
|
position: LatLng;
|
|
speed: number;
|
|
heading: number;
|
|
isTanker: boolean;
|
|
isAWACS: boolean;
|
|
onOff: boolean;
|
|
followRoads: boolean;
|
|
fuel: number;
|
|
desiredSpeed: number;
|
|
desiredSpeedType: string;
|
|
desiredAltitude: number;
|
|
desiredAltitudeType: string;
|
|
leaderID: number;
|
|
formationOffset: Offset;
|
|
targetID: number;
|
|
targetPosition: LatLng;
|
|
ROE: string;
|
|
reactionToThreat: string;
|
|
emissionsCountermeasures: string;
|
|
TACAN: TACAN;
|
|
radio: Radio;
|
|
generalSettings: GeneralSettings;
|
|
ammo: Ammo[];
|
|
contacts: Contact[];
|
|
activePath: LatLng[];
|
|
isLeader: boolean;
|
|
}
|
|
|
|
export interface LoadoutItemBlueprint {
|
|
name: string;
|
|
quantity: number;
|
|
effectiveAgainst?: string;
|
|
}
|
|
|
|
export interface LoadoutBlueprint {
|
|
fuel: number;
|
|
items: LoadoutItemBlueprint[];
|
|
roles: string[];
|
|
code: string;
|
|
name: string;
|
|
}
|
|
|
|
export interface UnitBlueprint {
|
|
name: string;
|
|
coalition: string;
|
|
era: string;
|
|
label: string;
|
|
shortLabel: string;
|
|
type?: string;
|
|
range?: string;
|
|
loadouts?: LoadoutBlueprint[];
|
|
filename?: string;
|
|
liveries?: { [key: string]: { name: string, countries: string[] } };
|
|
cost?: number;
|
|
barrelHeight?: number;
|
|
muzzleVelocity?: number;
|
|
}
|
|
|
|
export interface UnitSpawnOptions {
|
|
roleType: string;
|
|
name: string;
|
|
latlng: LatLng;
|
|
coalition: string;
|
|
count: number;
|
|
country: string;
|
|
loadout: LoadoutBlueprint | undefined;
|
|
airbase: Airbase | undefined;
|
|
liveryID: string | undefined;
|
|
altitude: number | undefined;
|
|
}
|
|
|
|
export interface AirbaseOptions {
|
|
name: string,
|
|
position: L.LatLng
|
|
}
|
|
|
|
export interface AirbaseChartData {
|
|
elevation: string,
|
|
ICAO: string,
|
|
TACAN: string,
|
|
runways: AirbaseChartRunwayData[]
|
|
}
|
|
|
|
export interface AirbaseChartRunwayHeadingData {
|
|
[index: string]: {
|
|
magHeading: string,
|
|
ILS: string
|
|
}
|
|
}
|
|
|
|
export interface AirbaseChartRunwayData {
|
|
headings: AirbaseChartRunwayHeadingData[],
|
|
length: string
|
|
}
|
|
|
|
export interface Listener {
|
|
callback: CallableFunction;
|
|
name?: string
|
|
}
|
|
|
|
export interface ShortcutOptions {
|
|
altKey?: boolean;
|
|
callback: CallableFunction;
|
|
ctrlKey?: boolean;
|
|
name?: string;
|
|
shiftKey?: boolean;
|
|
}
|
|
|
|
export interface KeyboardShortcutOptions extends ShortcutOptions {
|
|
code: string;
|
|
event?: "keydown" | "keyup";
|
|
}
|
|
|
|
export interface MouseShortcutOptions extends ShortcutOptions {
|
|
button: number;
|
|
event: "mousedown" | "mouseup";
|
|
}
|
|
|
|
export interface Manager {
|
|
add: CallableFunction;
|
|
} |