1#[derive(Copy, Clone)]
2pub enum SystemState {
3 Class,
4 Seed,
5 Orders,
6 PositionX,
7 PositionY,
8 VelocityX,
9 VelocityY,
10 Heading,
11 AngularVelocity,
12
13 AccelerateX,
14 AccelerateY,
15 Torque,
16
17 Gun0Aim,
18 Gun0Fire,
19 Gun1Aim,
20 Gun1Fire,
21 Gun2Aim,
22 Gun2Fire,
23 Gun3Aim,
24 Gun3Fire,
25
26 Missile0Launch,
27 Missile0Orders,
28 Missile1Launch,
29 Missile1Orders,
30 Missile2Launch,
31 Missile2Orders,
32 Missile3Launch,
33 Missile3Orders,
34
35 Explode,
36
37 RadarHeading,
38 RadarWidth,
39 RadarContactFound,
40 RadarContactClass,
41 RadarContactPositionX,
42 RadarContactPositionY,
43 RadarContactVelocityX,
44 RadarContactVelocityY,
45
46 DebugTextPointer,
47 DebugTextLength,
48
49 MaxAccelerationX,
50 MaxAccelerationY,
51 MaxAngularAcceleration,
52
53 RadioChannel,
54 RadioSend,
55 RadioReceive,
56
57 DebugLinesPointer,
58 DebugLinesLength,
59
60 RadarMinDistance,
61 RadarMaxDistance,
62
63 CurrentTick,
64 Energy,
65
66 Size,
67 MaxSize = 128,
68}
69
70#[derive(Copy, Clone, PartialEq, Eq, Debug)]
72pub enum Class {
73 Fighter,
74 Frigate,
75 Cruiser,
76 Asteroid,
77 Target,
78 Missile,
79 Torpedo,
80 Unknown,
81}
82
83impl Class {
84 pub fn from_f64(v: f64) -> Class {
85 match v as u32 {
86 0 => Class::Fighter,
87 1 => Class::Frigate,
88 2 => Class::Cruiser,
89 3 => Class::Asteroid,
90 4 => Class::Target,
91 5 => Class::Missile,
92 6 => Class::Torpedo,
93 _ => Class::Unknown,
94 }
95 }
96}
97
98#[derive(Default, Clone)]
99pub struct Line {
100 pub x0: f64,
101 pub y0: f64,
102 pub x1: f64,
103 pub y1: f64,
104 pub color: u32,
105}