flatland_client_ui/
hud.rs1#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
5pub enum HudViewMode {
6 #[default]
7 Normal,
8 Compact,
9 Map,
10}
11
12impl HudViewMode {
13 pub fn cycle(self) -> Self {
14 match self {
15 Self::Normal => Self::Compact,
16 Self::Compact => Self::Map,
17 Self::Map => Self::Normal,
18 }
19 }
20
21 pub fn label(self) -> &'static str {
22 match self {
23 Self::Normal => "normal",
24 Self::Compact => "compact",
25 Self::Map => "map",
26 }
27 }
28
29 pub fn from_label(s: &str) -> Option<Self> {
31 match s.trim().to_ascii_lowercase().as_str() {
32 "normal" => Some(Self::Normal),
33 "compact" => Some(Self::Compact),
34 "map" => Some(Self::Map),
35 _ => None,
36 }
37 }
38}
39
40#[derive(Debug, Default)]
41pub struct PlayHud<'a> {
42 pub movement: &'a str,
43 pub sprint_mode: bool,
44 pub map_target: Option<(f32, f32)>,
45 pub auto_nav_goal: Option<(f32, f32)>,
46 pub mouse_hover: Option<(f32, f32)>,
48 pub view_mode: HudViewMode,
49}