~starkingdoms/starkingdoms

ref: 9e49c0f6e713776fbb82ae93b9343bcac98842b7 starkingdoms/starkingdoms-client/src/globals.ts -rw-r--r-- 1.4 KiB
9e49c0f6 — core clean up starfield code 1 year, 11 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
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;
}

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;
}

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: true,
};

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