ed_journals/modules/logs/content/log_event_content/
approach_settlement_event.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//! Fired when the player approaches a planetary settlement.

use serde::{Deserialize, Serialize};

use crate::modules::station::StationInfo;

/// Fired when the player approaches a planetary settlement.
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
#[serde(rename_all = "PascalCase")]
pub struct ApproachSettlementEvent {
    /// The name of the settlement the player is currently approaching.
    pub name: String,

    /// The localized name of the settlement. This is not always set, but might be set if the name
    /// field contains a specific format which would usually be formatted by the game.
    #[serde(rename = "Name_Localised")]
    pub name_localized: Option<String>,

    /// Station info like for example the market id, though not all settlements have this
    /// information as the game also fires this event when approaching settlements the player cannot
    /// dock at.
    #[serde(flatten)]
    pub station_info: Option<StationInfo>,

    /// The system address where the settlement is located.
    pub system_address: u64,

    /// The body id of the planet the settlement is located at.
    #[serde(rename = "BodyID")]
    pub body_id: u8,

    /// The name of the planet the settlement is located at.
    pub body_name: String,

    #[serde(flatten)]
    pub location: Option<ApproachSettlementEventLocation>,
}

#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
#[serde(rename_all = "PascalCase")]
pub struct ApproachSettlementEventLocation {
    /// The latitude of the settlement on the planet.
    pub latitude: f32,

    /// The longitude of the settlement on the planet.
    pub longitude: f32,
}