~starkingdoms/starkingdoms

ref: e0fddea3f712d7c602ebbecba40358879d4ffdc0 starkingdoms/starkingdoms-client/src/globals.ts -rw-r--r-- 1.5 KiB
e0fddea3 — ghostlyzsh ship editor loading fixed 1 year, 8 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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;

  saveEligible: boolean;
  leaving: boolean;
  scale: number;
}

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>;
  part_sprites_need_texture_change: number[];
  starfield: GlobalRenderingStarfield;
  starfield_near: GlobalRenderingStarfield;
  indicator_sprite_map: Map<number, PIXI.Sprite>;
}

export interface GlobalRenderingStarfield {
  sprite: PIXI.TilingSprite;
  off_x: number;
  off_y: number;
}

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,
  saveEligible: false,
  leaving: false,
  scale: 1,
};

export function player(): Part | undefined {
  if (global.me !== null) {
    return global.parts_map.get(global.me!.part_id);
  } else {
    return undefined;
  }
}