~starkingdoms/starkingdoms

f4c1d03419ac994adf15e26ff26dd33cb5251122 — ghostlyzsh 1 year, 11 months ago c95c0de
still broken code
M starkingdoms-client/src/hub.ts => starkingdoms-client/src/hub.ts +23 -0
@@ 1,11 1,13 @@
import createDebug from "debug";
import type {
    DespawnPartPacket,
  MessagePacket,
  Packet,
  PartPositionsPacket,
  PlanetPositionsPacket,
  PlayerLeavePacket,
  PlayerListPacket,
  SpawnPartPacket,
  SpawnPlayerPacket,
} from "./protocol.ts";
import { MessageType, PacketType } from "./protocol.ts";


@@ 14,6 16,8 @@ import { global } from "./globals.ts";
import { startRender } from "./rendering.ts";
import { ButtonType } from "./protocol.ts";
import type Chatbox from "./components/Chatbox.svelte";
import {part_texture_url} from "./textures.js";
import * as PIXI from "pixi.js";

const logger = createDebug("hub");



@@ 257,6 261,25 @@ export async function hub_connect(
            ).toString();
          }
        }
      } else if (packet.t == PacketType.SpawnPart) {
        let p = <SpawnPartPacket>packet.c;
        let id = p.id;
        let part = p.part;
        global.parts_map.set(id, part);

        logger(`spawn part`);
        let part_sprite = PIXI.Sprite.from(part_texture_url(part.part_type));
        global.rendering!.part_sprite_map.set(id, part_sprite);
        global.rendering!.app.stage.addChild(part_sprite);
      } else if (packet.t == PacketType.DespawnPart) {
        let p = <DespawnPartPacket>packet.c;
        let id = p.id;
        let part = global.parts_map.get(id);
        let part_sprite = PIXI.Sprite.from(part_texture_url(part.part_type));
        logger(`despawned part`);
        global.parts_map.delete(id);
        global.rendering!.part_sprite_map.delete(id);
        global.rendering!.app.stage.removeChild(part_sprite);
      } else if (packet.t == PacketType.PlayerLeave) {
        let p = <PlayerLeavePacket>packet.c;
        let username = global.players_map.get(p.id)!;

M starkingdoms-client/src/protocol.ts => starkingdoms-client/src/protocol.ts +14 -0
@@ 10,6 10,7 @@ export enum PlanetType {
export enum PartType {
  Hearty = "Hearty",
  Cargo = "Cargo",
  Hub = "Hub",
}
export enum ButtonType {
  Left = "Left",


@@ 39,6 40,13 @@ export interface PlanetPositionsPacket {
export interface PartPositionsPacket {
  parts: [number, Part][];
}
export interface SpawnPartPacket {
    id: number;
    part: Part;
}
export interface DespawnPartPacket {
    id: number;
}
export interface PlayerInputPacket {
  up: boolean;
  down: boolean;


@@ 84,6 92,8 @@ export enum PacketType {
  PlayerList = "PlayerList",
  PlanetPositions = "PlanetPositions",
  PartPositions = "PartPositions",
  SpawnPart = "SpawnPart",
  DespawnPart = "DespawnPart",
  PlayerLeave = "PlayerLeave",
  Message = "Message",
}


@@ 96,6 106,8 @@ export interface Packet {
    | PlayerListPacket
    | PlanetPositionsPacket
    | PartPositionsPacket
    | SpawnPartPacket
    | DespawnPartPacket
    | PlayerLeavePacket
    | SendMessagePacket
    | MessagePacket


@@ 114,6 126,8 @@ export const CLIENTBOUND = [
  PacketType.PlayerList,
  PacketType.PlanetPositions,
  PacketType.PartPositions,
  PacketType.SpawnPart,
  PacketType.DespawnPart,
  PacketType.PlayerLeave,
  PacketType.Message,
];

M starkingdoms-client/src/textures.ts => starkingdoms-client/src/textures.ts +3 -0
@@ 3,6 3,7 @@ import tex_earth from "./assets/earth.svg";
import tex_moon from "./assets/moon.svg";
import tex_hearty from "./assets/hearty.svg";
import tex_cargo_off from "./assets/cargo_off.svg";
import tex_hub_off from "./assets/hub_off.svg";
import tex_missing from "./assets/missing.svg";

export function planet_texture_url(type: PlanetType): string {


@@ 19,6 20,8 @@ export function part_texture_url(type: PartType): string {
    return tex_hearty;
  } else if (type == PartType.Cargo) {
    return tex_cargo_off;
  } else if (type == PartType.Hub) {
    return tex_hub_off;
  }
  return tex_missing;
}