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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
//! Fired when opening the fleet carrier management panel.
use serde::{Deserialize, Serialize};
use crate::modules::station::CarrierDockingAccess;
use crate::station::{CarrierCrewRole, CarrierFinance};
/// Fired when opening the fleet carrier management panel.
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
#[serde(rename_all = "PascalCase")]
pub struct CarrierStatsEvent {
/// The id of the carrier that the player deposited fuel to. This is functionally the same as
/// the market id.
#[serde(rename = "CarrierID")]
pub carrier_id: u64,
/// The callsign of the carrier.
pub callsign: String,
/// The name of the carrier.
pub name: String,
/// The current docking access.
pub docking_access: CarrierDockingAccess,
/// The current notorious docking option.
pub allow_notorious: bool,
/// The current fuel level of the carrier. This is a number between 0 and 1000 and does not
/// include any tritium that might be stored in the cargo hold of the carrier.
pub fuel_level: u16,
/// The current jump range for the carrier.
pub jump_range_curr: f32,
/// The max jump range for the carrier. This is always 500.
pub jump_range_max: f32,
/// Whether the carrier is pending decommission.
pub pending_decommission: bool,
/// Details about how much of the internal cargo space is being used.
pub space_usage: CarrierStatsEventSpaceUsage,
/// Details about the current finances of the fleet carrier.
pub finance: CarrierFinance,
/// List of services and their status for the fleet carrier.
pub crew: Vec<CarrierStatsEventCrewEntry>,
/// List of loaded ship packs and their status.
pub ship_packs: Vec<CarrierStatsEventPack>,
/// List of loaded module packs and their status.
pub module_packs: Vec<CarrierStatsEventPack>,
}
/// Details about how much of the internal cargo space is being used.
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
#[serde(rename_all = "PascalCase")]
pub struct CarrierStatsEventSpaceUsage {
/// The total available capacity for the fleet carrier. This is always 25000.
pub total_capacity: u16,
/// How much of the available capacity is being used by services.
pub crew: u16,
/// How much of the available capacity is being used by stored cargo.
pub cargo: u16,
/// How much of the available capacity is reserved for open buy orders.
pub cargo_space_reserved: u16,
/// How much of the available capacity is being used for storing ship packs.
pub ship_packs: u16,
/// How much of the available capacity is being used for storing module packs.
pub module_packs: u16,
/// How much free space there is left.
pub free_space: u16,
}
/// An entry for a given fleet carrier service.
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
#[serde(rename_all = "PascalCase")]
pub struct CarrierStatsEventCrewEntry {
/// The service this entry is for.
pub crew_role: CarrierCrewRole,
/// Whether the given service is installed on the carrier.
pub activated: bool,
/// Whether the given service is currently enabled or is suspended.
#[serde(default)]
pub enabled: bool,
/// The name of the crew member shown in the services tab.
pub crew_name: Option<String>,
}
/// A pack that is currently stored on the carrier.
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
#[serde(rename_all = "PascalCase")]
pub struct CarrierStatsEventPack {
/// The name of the pack theme.
pub pack_theme: String,
/// The tier of the pack.
pub pack_tier: u8,
}