import { ClientHub } from "./hub.ts";
import { Part, Planet } from "./protocol.ts";
import * as PIXI from "pixi.js";
export interface GlobalData {
client: ClientHub | null;
me: GlobalMe | null;
players_map: Map<number, string>;
inverse_players_map: Map<string, number>;
planets_map: Map<number, Planet>;
parts_map: Map<number, Part>;
up: boolean;
down: boolean;
left: boolean;
right: boolean;
rendering: GlobalRendering | null;
}
export interface GlobalRendering {
app: PIXI.Application;
player_text_map: Map<number, PIXI.Text>;
planet_sprite_map: Map<number, PIXI.Sprite>;
part_sprite_map: Map<number, PIXI.Sprite>;
}
export interface GlobalMe {
username: string;
part_id: number;
}
export const global: GlobalData = {
client: null,
me: null,
players_map: new Map(),
inverse_players_map: new Map(),
planets_map: new Map(),
parts_map: new Map(),
up: false,
down: false,
left: false,
right: false,
rendering: null,
};
export function player(): Part | undefined {
if (global.me !== null) {
return global.parts_map.get(global.me!.part_id);
} else {
return undefined;
}
}