1
1
use super :: * ;
2
2
3
+ pub type AdvancementUpdateS2c < ' a > =
4
+ GenericAdvancementUpdateS2c < ' a , ( Ident < Cow < ' a , str > > , Advancement < ' a , Option < ItemStack > > ) > ;
5
+
3
6
#[ derive( Clone , Debug , Encode , Decode , Packet ) ]
4
7
#[ packet( id = packet_id:: ADVANCEMENT_UPDATE_S2C ) ]
5
- pub struct AdvancementUpdateS2c < ' a > {
8
+ pub struct GenericAdvancementUpdateS2c < ' a , AM : ' a > {
6
9
pub reset : bool ,
7
- pub advancement_mapping : Vec < ( Ident < Cow < ' a , str > > , Advancement < ' a , Option < ItemStack > > ) > ,
10
+ pub advancement_mapping : Vec < AM > ,
8
11
pub identifiers : Vec < Ident < Cow < ' a , str > > > ,
9
12
pub progress_mapping : Vec < ( Ident < Cow < ' a , str > > , Vec < AdvancementCriteria < ' a > > ) > ,
10
13
}
11
14
15
+ #[ derive( Clone , PartialEq , Debug , Encode , Decode ) ]
16
+ pub struct Advancement < ' a , I > {
17
+ pub parent_id : Option < Ident < Cow < ' a , str > > > ,
18
+ pub display_data : Option < AdvancementDisplay < ' a , I > > ,
19
+ pub criteria : Vec < ( Ident < Cow < ' a , str > > , ( ) ) > ,
20
+ pub requirements : Vec < AdvancementRequirements < ' a > > ,
21
+ pub sends_telemetry_data : bool ,
22
+ }
23
+
12
24
#[ derive( Clone , PartialEq , Eq , Debug , Encode , Decode ) ]
13
- pub struct AdvancementCriteria < ' a > {
14
- pub criterion_identifier : Ident < Cow < ' a , str > > ,
15
- /// If present, the criteria has been achieved at the
16
- /// time wrapped; time represented as millis since epoch
17
- pub criterion_progress : Option < i64 > ,
25
+ pub struct AdvancementRequirements < ' a > {
26
+ pub requirement : Vec < & ' a str > ,
18
27
}
19
28
20
29
#[ derive( Clone , PartialEq , Debug ) ]
@@ -29,6 +38,14 @@ pub struct AdvancementDisplay<'a, I> {
29
38
pub y_coord : f32 ,
30
39
}
31
40
41
+ #[ derive( Clone , PartialEq , Eq , Debug , Encode , Decode ) ]
42
+ pub struct AdvancementCriteria < ' a > {
43
+ pub criterion_identifier : Ident < Cow < ' a , str > > ,
44
+ /// If present, the criteria has been achieved at the
45
+ /// time wrapped; time represented as millis since epoch
46
+ pub criterion_progress : Option < i64 > ,
47
+ }
48
+
32
49
impl < I : Encode > Encode for AdvancementDisplay < ' _ , I > {
33
50
fn encode ( & self , mut w : impl Write ) -> anyhow:: Result < ( ) > {
34
51
self . title . encode ( & mut w) ?;
@@ -78,17 +95,3 @@ impl<'a, I: Decode<'a>> Decode<'a> for AdvancementDisplay<'a, I> {
78
95
} )
79
96
}
80
97
}
81
-
82
- #[ derive( Clone , PartialEq , Debug , Encode , Decode ) ]
83
- pub struct Advancement < ' a , I > {
84
- pub parent_id : Option < Ident < Cow < ' a , str > > > ,
85
- pub display_data : Option < AdvancementDisplay < ' a , I > > ,
86
- pub criteria : Vec < ( Ident < Cow < ' a , str > > , ( ) ) > ,
87
- pub requirements : Vec < AdvancementRequirements < ' a > > ,
88
- pub sends_telemetry_data : bool ,
89
- }
90
-
91
- #[ derive( Clone , PartialEq , Eq , Debug , Encode , Decode ) ]
92
- pub struct AdvancementRequirements < ' a > {
93
- pub requirement : Vec < & ' a str > ,
94
- }
0 commit comments