use bevy::{math::DVec3, prelude::*};
use fmc_protocol_derive::{ClientBound, ServerBound};
use serde::{Deserialize, Serialize};
#[derive(ClientBound, Event, Serialize, Deserialize, Debug, Clone)]
pub struct PlayerAabb {
pub center: Vec3,
pub half_extents: Vec3,
}
#[derive(ClientBound, ServerBound, Event, Serialize, Deserialize, Debug, Clone)]
pub struct PlayerPosition {
pub position: DVec3,
}
#[derive(ClientBound, Event, Serialize, Deserialize, Debug, Clone)]
pub struct PlayerCameraPosition {
pub position: Vec3,
}
#[derive(ClientBound, ServerBound, Event, Serialize, Deserialize, Debug, Clone)]
pub struct PlayerCameraRotation {
pub rotation: Quat,
}
#[derive(ServerBound, Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
pub enum LeftClick {
Press,
Release,
}
#[derive(ServerBound, Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
pub enum RightClick {
Press,
Release,
}
#[derive(ServerBound, Serialize, Deserialize, Debug, Clone)]
pub struct RenderDistance {
pub chunks: u32,
}