1use serde::{Deserialize, Serialize};
2
3#[derive(Default, Clone, PartialEq, Debug, Serialize, Deserialize, PartialOrd)]
5pub struct Item {
6 pub name: String,
7 pub quantity: u32,
8 pub durability: f32,
9 pub column: u32,
10 pub row: u32,
11 pub equipped: u8,
12 pub quality: u32,
13 pub variant: u32,
14 pub creator_id: u64,
15 pub creator_name: String,
16}
17
18impl Item {
19 pub const fn null_item() -> Item {
21 Item {
22 name: String::new(),
23 quantity: 0,
24 durability: 0.0,
25 column: 0,
26 row: 0,
27 equipped: 0,
28 quality: 0,
29 variant: 0,
30 creator_id: 0,
31 creator_name: String::new(),
32 }
33 }
34 pub fn default_items() -> Vec<Item> {
36 let mut v = vec![];
37
38 v.push(Item {
39 name: String::from("MaceIron"),
40 quantity: 1,
41 durability: 221.0,
42 column: 0,
43 row: 0,
44 equipped: 1,
45 quality: 2,
46 variant: 0,
47 creator_id: 0,
48 creator_name: String::new(),
49 });
50 v.push(Item {
51 name: String::from("ShieldBronzeBuckler"),
52 quantity: 1,
53 durability: 200.0,
54 column: 1,
55 row: 0,
56 equipped: 0,
57 quality: 1,
58 variant: 0,
59 creator_id: 0,
60 creator_name: String::new(),
61 });
62 v.push(Item {
63 name: String::from("Wishbone"),
64 quantity: 1,
65 durability: 100.0,
66 column: 7,
67 row: 1,
68 equipped: 1,
69 quality: 1,
70 variant: 0,
71 creator_id: 0,
72 creator_name: String::new(),
73 });
74 v.push(Item {
75 name: String::from("PickaxeIron"),
76 quantity: 1,
77 durability: 225.0,
78 column: 2,
79 row: 0,
80 equipped: 0,
81 quality: 3,
82 variant: 0,
83 creator_id: 0,
84 creator_name: String::new(),
85 });
86 v.push(Item {
87 name: String::from("Sausages"),
88 quantity: 17,
89 durability: 100.0,
90 column: 0,
91 row: 3,
92 equipped: 0,
93 quality: 1,
94 variant: 0,
95 creator_id: 0,
96 creator_name: String::new(),
97 });
98 v.push(Item {
99 name: String::from("TurnupStew"),
100 quantity: 8,
101 durability: 100.0,
102 column: 0,
103 row: 2,
104 equipped: 0,
105 quality: 1,
106 variant: 0,
107 creator_id: 0,
108 creator_name: String::new(),
109 });
110 v
111 }
112}