veloren_voxygen/settings/
hud_position.rs

1use serde::{Deserialize, Serialize};
2use vek::Vec2;
3
4pub const DEFAULT_OWN_BAG_WIDTH: f64 = 424.0;
5pub const DEFAULT_OWN_BAG_HEIGHT: f64 = 708.0;
6pub const DEFAULT_OTHER_BAG_WIDTH: f64 = 424.0;
7pub const DEFAULT_OTHER_BAG_HEIGHT: f64 = 548.0;
8
9pub const DEFAULT_OWN_BAG_POSITION_MARGIN_BOTTOM: f64 = 70.0;
10pub const DEFAULT_OWN_BAG_POSITION_MARGIN_RIGHT: f64 = 5.0;
11pub const DEFAULT_OTHER_BAG_POSITION_MARGIN_BOTTOM: f64 = 230.0;
12pub const DEFAULT_OTHER_BAG_POSITION_MARGIN_LEFT: f64 = 5.0;
13
14pub const MINIMAP_POSITION_MARGIN_TOP: f64 = 5.0;
15pub const MINIMAP_POSITION_MARGIN_RIGHT: f64 = 5.0;
16
17pub const CRAFTING_POSITION_MARGIN_BOTTOM: f64 = 308.0;
18pub const CRAFTING_POSITION_MARGIN_RIGHT: f64 = 450.0;
19
20pub const SOCIAL_POSITION_MARGIN_LEFT: f64 = 25.0;
21pub const SOCIAL_POSITION_MARGIN_BOTTOM: f64 = 308.0;
22
23#[derive(Clone, Debug, Serialize, Deserialize)]
24#[serde(default)]
25pub struct BagHudPosition {
26    pub own: Vec2<f64>,
27    pub other: Vec2<f64>,
28}
29
30impl Default for BagHudPosition {
31    fn default() -> Self {
32        Self {
33            own: [
34                DEFAULT_OWN_BAG_POSITION_MARGIN_RIGHT,
35                DEFAULT_OWN_BAG_POSITION_MARGIN_BOTTOM,
36            ]
37            .into(),
38            other: [
39                DEFAULT_OTHER_BAG_POSITION_MARGIN_LEFT,
40                DEFAULT_OTHER_BAG_POSITION_MARGIN_BOTTOM,
41            ]
42            .into(),
43        }
44    }
45}
46
47#[derive(Clone, Debug, Serialize, Deserialize)]
48#[serde(default)]
49pub struct HudPositionSettings {
50    pub bag: BagHudPosition,
51    pub minimap: Vec2<f64>,
52    pub crafting: Vec2<f64>,
53    pub social: Vec2<f64>,
54}
55
56impl Default for HudPositionSettings {
57    fn default() -> Self {
58        Self {
59            bag: BagHudPosition::default(),
60            minimap: [MINIMAP_POSITION_MARGIN_RIGHT, MINIMAP_POSITION_MARGIN_TOP].into(),
61            crafting: [
62                CRAFTING_POSITION_MARGIN_RIGHT,
63                CRAFTING_POSITION_MARGIN_BOTTOM,
64            ]
65            .into(),
66            social: [SOCIAL_POSITION_MARGIN_LEFT, SOCIAL_POSITION_MARGIN_BOTTOM].into(),
67        }
68    }
69}