Files
pomomon-garden/src/features/wonderevent/components.rs

40 lines
1.0 KiB
Rust

use crate::prelude::*;
/// Defines the bounds of the grid for the server.
#[derive(Debug, Serialize, Deserialize, PartialEq, Clone)]
pub struct MaxFieldSize {
#[serde(rename = "minX")]
pub min_x: u32,
#[serde(rename = "maxX")]
pub max_x: u32,
#[serde(rename = "minY")]
pub min_y: u32,
#[serde(rename = "maxY")]
pub max_y: u32,
}
/// Coordinates for a wonder event target.
#[derive(Debug, Serialize, Deserialize, PartialEq, Clone)]
pub struct Position {
pub x: u32,
pub y: u32,
}
/// WebSocket messages exchanged with the wonder event server.
#[derive(Debug, Serialize, Deserialize, PartialEq, Clone)]
#[serde(tag = "messageType")]
pub enum WonderEventMessage {
#[serde(rename = "WONDER_REQUEST")]
WonderRequest {
#[serde(rename = "maxFieldSize")]
max_field_size: MaxFieldSize,
},
#[serde(rename = "REQUEST_ERROR")]
RequestError { error: String },
#[serde(rename = "NO_WONDER")]
NoWonder,
#[serde(rename = "WONDER_GRANTED")]
WonderGranted { position: Position },
}