steel_core/entity/base/
fire_freeze.rs1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
3pub struct EntityFireFreezeState {
4 pub(super) remaining_fire_ticks: i32,
5 pub(super) ticks_frozen: i32,
6 pub(super) is_in_powder_snow: bool,
7 pub(super) was_in_powder_snow: bool,
8 pub(super) has_visual_fire: bool,
9}
10
11impl EntityFireFreezeState {
12 #[must_use]
14 pub const fn new() -> Self {
15 Self {
16 remaining_fire_ticks: 0,
17 ticks_frozen: 0,
18 is_in_powder_snow: false,
19 was_in_powder_snow: false,
20 has_visual_fire: false,
21 }
22 }
23
24 #[must_use]
26 pub const fn from_parts(
27 remaining_fire_ticks: i32,
28 ticks_frozen: i32,
29 is_in_powder_snow: bool,
30 was_in_powder_snow: bool,
31 has_visual_fire: bool,
32 ) -> Self {
33 Self {
34 remaining_fire_ticks,
35 ticks_frozen,
36 is_in_powder_snow,
37 was_in_powder_snow,
38 has_visual_fire,
39 }
40 }
41
42 #[must_use]
44 pub const fn remaining_fire_ticks(self) -> i32 {
45 self.remaining_fire_ticks
46 }
47
48 #[must_use]
50 pub const fn ticks_frozen(self) -> i32 {
51 self.ticks_frozen
52 }
53
54 #[must_use]
56 pub const fn is_in_powder_snow(self) -> bool {
57 self.is_in_powder_snow
58 }
59
60 #[must_use]
62 pub const fn was_in_powder_snow(self) -> bool {
63 self.was_in_powder_snow
64 }
65
66 #[must_use]
68 pub const fn has_visual_fire(self) -> bool {
69 self.has_visual_fire
70 }
71
72 #[must_use]
74 pub const fn is_freezing(self) -> bool {
75 self.ticks_frozen > 0
76 }
77
78 #[must_use]
80 pub const fn is_fully_frozen(self, ticks_required_to_freeze: i32) -> bool {
81 self.ticks_frozen >= ticks_required_to_freeze
82 }
83}
84
85impl Default for EntityFireFreezeState {
86 fn default() -> Self {
87 Self::new()
88 }
89}