~starkingdoms/starkingdoms

5b9d5fdbe757f06dddb4f01d4861e56fe4fa2447 — core 1 year, 11 months ago 4b1c9e1
add beginnings of options UI, add RequestSave, SaveEligibility, SaveData packets
M server/src/packet.rs => server/src/packet.rs +7 -0
@@ 83,6 83,7 @@ pub enum Packet {
        released: bool,
        button: ButtonType,
    },
    RequestSave {},
    // clientbound
    SpawnPlayer {
        id: u32,


@@ 112,4 113,10 @@ pub enum Packet {
        actor: String,
        content: String,
    },
    SaveEligibility {
        eligible: bool,
    },
    SaveData {
        payload: Vec<u8>,
    },
}

M starkingdoms-client/src/pages/Play.svelte => starkingdoms-client/src/pages/Play.svelte +16 -0
@@ 94,6 94,22 @@

<Chatbox bind:this={chatbox} />

<div class="options">
  <Popup
    title="Options"
    id="options"
    draggable
    minimizable
    style="width: 20vw; position: absolute;">
    <label for="dev_mode">Developer mode (Advanced)</label>
    <input type="checkbox" id="dev_mode" />
    <span>
      Enables parts of the client intended only for StarKingdoms developers.
      Buggy. Use at your own risk.
    </span>
  </Popup>
</div>

<div class="hud" id="hud">
  <Popup notitle title="" id="hud-content-wrapper">
    <table>

M starkingdoms-client/src/protocol.ts => starkingdoms-client/src/protocol.ts +17 -1
@@ 83,6 83,13 @@ export interface MessagePacket {
  actor: string;
  content: string;
}
export interface RequestSavePacket {}
export interface SaveEligibilityPacket {
  eligible: boolean;
}
export interface SaveDataPacket {
  payload: Buffer;
}

export enum PacketType {
  // serverbound


@@ 90,6 97,7 @@ export enum PacketType {
  SendMessage = "SendMessage",
  PlayerInput = "PlayerInput",
  PlayerMouseInput = "PlayerMouseInput",
  RequestSave = "RequestSave",
  // clientbound
  SpawnPlayer = "SpawnPlayer",
  PlayerList = "PlayerList",


@@ 99,6 107,8 @@ export enum PacketType {
  DespawnPart = "DespawnPart",
  PlayerLeave = "PlayerLeave",
  Message = "Message",
  SaveEligibility = "SaveEligibility",
  SaveData = "SaveData",
}

export interface Packet {


@@ 115,7 125,10 @@ export interface Packet {
    | SendMessagePacket
    | MessagePacket
    | PlayerInputPacket
    | PlayerMouseInputPacket;
    | PlayerMouseInputPacket
    | RequestSavePacket
    | SaveEligibilityPacket
    | SaveDataPacket;
}

export const SERVERBOUND = [


@@ 123,6 136,7 @@ export const SERVERBOUND = [
  PacketType.SendMessage,
  PacketType.PlayerInput,
  PacketType.PlayerMouseInput,
  PacketType.RequestSave,
];
export const CLIENTBOUND = [
  PacketType.SpawnPlayer,


@@ 133,6 147,8 @@ export const CLIENTBOUND = [
  PacketType.DespawnPart,
  PacketType.PlayerLeave,
  PacketType.Message,
  PacketType.SaveEligibility,
  PacketType.SaveData,
];

export enum Direction {