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
//! Fired when there are updates to the player's ship modules.
use serde::{Deserialize, Serialize};
use crate::modules::ship::{ShipModule, ShipSlot, ShipType};
/// Fired when there are updates to the player's ship modules.
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
#[serde(rename_all = "PascalCase")]
pub struct LoadoutEvent {
/// The current active ship.
pub ship: ShipType,
/// The current active ship id.
#[serde(rename = "ShipID")]
pub ship_id: u32,
/// The name of the current active ship.
pub ship_name: String,
/// The name of the current call-sign.
pub ship_ident: String,
/// List of current modules.
pub modules: Vec<LoadoutEventModule>,
}
/// An active loadout module.
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
#[serde(rename_all = "PascalCase")]
pub struct LoadoutEventModule {
/// The slot the module is assigned to.
pub slot: ShipSlot,
/// The assigned module.
pub item: ShipModule,
/// Whether the module is currently active.
pub on: bool,
/// The power priority.
pub priority: u8,
/// The current health for the module.
pub health: f32,
// TODO check when this value is used
pub value: Option<u32>,
pub ammo_in_clip: Option<u32>,
}