1use crate::attribute::{Attribute, AttributeRegistry};
2use steel_utils::Identifier;
3pub static ARMOR: &Attribute = &Attribute {
4 key: Identifier::vanilla_static("armor"),
5 translation_key: "attribute.name.armor",
6 default_value: 0f64,
7 min_value: 0f64,
8 max_value: 30f64,
9 syncable: true,
10};
11pub static ARMOR_TOUGHNESS: &Attribute = &Attribute {
12 key: Identifier::vanilla_static("armor_toughness"),
13 translation_key: "attribute.name.armor_toughness",
14 default_value: 0f64,
15 min_value: 0f64,
16 max_value: 20f64,
17 syncable: true,
18};
19pub static ATTACK_DAMAGE: &Attribute = &Attribute {
20 key: Identifier::vanilla_static("attack_damage"),
21 translation_key: "attribute.name.attack_damage",
22 default_value: 2f64,
23 min_value: 0f64,
24 max_value: 2048f64,
25 syncable: false,
26};
27pub static ATTACK_KNOCKBACK: &Attribute = &Attribute {
28 key: Identifier::vanilla_static("attack_knockback"),
29 translation_key: "attribute.name.attack_knockback",
30 default_value: 0f64,
31 min_value: 0f64,
32 max_value: 5f64,
33 syncable: false,
34};
35pub static ATTACK_SPEED: &Attribute = &Attribute {
36 key: Identifier::vanilla_static("attack_speed"),
37 translation_key: "attribute.name.attack_speed",
38 default_value: 4f64,
39 min_value: 0f64,
40 max_value: 1024f64,
41 syncable: true,
42};
43pub static BLOCK_BREAK_SPEED: &Attribute = &Attribute {
44 key: Identifier::vanilla_static("block_break_speed"),
45 translation_key: "attribute.name.block_break_speed",
46 default_value: 1f64,
47 min_value: 0f64,
48 max_value: 1024f64,
49 syncable: true,
50};
51pub static BLOCK_INTERACTION_RANGE: &Attribute = &Attribute {
52 key: Identifier::vanilla_static("block_interaction_range"),
53 translation_key: "attribute.name.block_interaction_range",
54 default_value: 4.5f64,
55 min_value: 0f64,
56 max_value: 64f64,
57 syncable: true,
58};
59pub static BURNING_TIME: &Attribute = &Attribute {
60 key: Identifier::vanilla_static("burning_time"),
61 translation_key: "attribute.name.burning_time",
62 default_value: 1f64,
63 min_value: 0f64,
64 max_value: 1024f64,
65 syncable: true,
66};
67pub static CAMERA_DISTANCE: &Attribute = &Attribute {
68 key: Identifier::vanilla_static("camera_distance"),
69 translation_key: "attribute.name.camera_distance",
70 default_value: 4f64,
71 min_value: 0f64,
72 max_value: 32f64,
73 syncable: true,
74};
75pub static EXPLOSION_KNOCKBACK_RESISTANCE: &Attribute = &Attribute {
76 key: Identifier::vanilla_static("explosion_knockback_resistance"),
77 translation_key: "attribute.name.explosion_knockback_resistance",
78 default_value: 0f64,
79 min_value: 0f64,
80 max_value: 1f64,
81 syncable: true,
82};
83pub static ENTITY_INTERACTION_RANGE: &Attribute = &Attribute {
84 key: Identifier::vanilla_static("entity_interaction_range"),
85 translation_key: "attribute.name.entity_interaction_range",
86 default_value: 3f64,
87 min_value: 0f64,
88 max_value: 64f64,
89 syncable: true,
90};
91pub static FALL_DAMAGE_MULTIPLIER: &Attribute = &Attribute {
92 key: Identifier::vanilla_static("fall_damage_multiplier"),
93 translation_key: "attribute.name.fall_damage_multiplier",
94 default_value: 1f64,
95 min_value: 0f64,
96 max_value: 100f64,
97 syncable: true,
98};
99pub static FLYING_SPEED: &Attribute = &Attribute {
100 key: Identifier::vanilla_static("flying_speed"),
101 translation_key: "attribute.name.flying_speed",
102 default_value: 0.4f64,
103 min_value: 0f64,
104 max_value: 1024f64,
105 syncable: true,
106};
107pub static FOLLOW_RANGE: &Attribute = &Attribute {
108 key: Identifier::vanilla_static("follow_range"),
109 translation_key: "attribute.name.follow_range",
110 default_value: 32f64,
111 min_value: 0f64,
112 max_value: 2048f64,
113 syncable: false,
114};
115pub static GRAVITY: &Attribute = &Attribute {
116 key: Identifier::vanilla_static("gravity"),
117 translation_key: "attribute.name.gravity",
118 default_value: 0.08f64,
119 min_value: -1f64,
120 max_value: 1f64,
121 syncable: true,
122};
123pub static JUMP_STRENGTH: &Attribute = &Attribute {
124 key: Identifier::vanilla_static("jump_strength"),
125 translation_key: "attribute.name.jump_strength",
126 default_value: 0.41999998688697815f64,
127 min_value: 0f64,
128 max_value: 32f64,
129 syncable: true,
130};
131pub static KNOCKBACK_RESISTANCE: &Attribute = &Attribute {
132 key: Identifier::vanilla_static("knockback_resistance"),
133 translation_key: "attribute.name.knockback_resistance",
134 default_value: 0f64,
135 min_value: 0f64,
136 max_value: 1f64,
137 syncable: false,
138};
139pub static LUCK: &Attribute = &Attribute {
140 key: Identifier::vanilla_static("luck"),
141 translation_key: "attribute.name.luck",
142 default_value: 0f64,
143 min_value: -1024f64,
144 max_value: 1024f64,
145 syncable: true,
146};
147pub static MAX_ABSORPTION: &Attribute = &Attribute {
148 key: Identifier::vanilla_static("max_absorption"),
149 translation_key: "attribute.name.max_absorption",
150 default_value: 0f64,
151 min_value: 0f64,
152 max_value: 2048f64,
153 syncable: true,
154};
155pub static MAX_HEALTH: &Attribute = &Attribute {
156 key: Identifier::vanilla_static("max_health"),
157 translation_key: "attribute.name.max_health",
158 default_value: 20f64,
159 min_value: 1f64,
160 max_value: 1024f64,
161 syncable: true,
162};
163pub static MINING_EFFICIENCY: &Attribute = &Attribute {
164 key: Identifier::vanilla_static("mining_efficiency"),
165 translation_key: "attribute.name.mining_efficiency",
166 default_value: 0f64,
167 min_value: 0f64,
168 max_value: 1024f64,
169 syncable: true,
170};
171pub static MOVEMENT_EFFICIENCY: &Attribute = &Attribute {
172 key: Identifier::vanilla_static("movement_efficiency"),
173 translation_key: "attribute.name.movement_efficiency",
174 default_value: 0f64,
175 min_value: 0f64,
176 max_value: 1f64,
177 syncable: true,
178};
179pub static MOVEMENT_SPEED: &Attribute = &Attribute {
180 key: Identifier::vanilla_static("movement_speed"),
181 translation_key: "attribute.name.movement_speed",
182 default_value: 0.7f64,
183 min_value: 0f64,
184 max_value: 1024f64,
185 syncable: true,
186};
187pub static OXYGEN_BONUS: &Attribute = &Attribute {
188 key: Identifier::vanilla_static("oxygen_bonus"),
189 translation_key: "attribute.name.oxygen_bonus",
190 default_value: 0f64,
191 min_value: 0f64,
192 max_value: 1024f64,
193 syncable: true,
194};
195pub static SAFE_FALL_DISTANCE: &Attribute = &Attribute {
196 key: Identifier::vanilla_static("safe_fall_distance"),
197 translation_key: "attribute.name.safe_fall_distance",
198 default_value: 3f64,
199 min_value: -1024f64,
200 max_value: 1024f64,
201 syncable: true,
202};
203pub static SCALE: &Attribute = &Attribute {
204 key: Identifier::vanilla_static("scale"),
205 translation_key: "attribute.name.scale",
206 default_value: 1f64,
207 min_value: 0.0625f64,
208 max_value: 16f64,
209 syncable: true,
210};
211pub static SNEAKING_SPEED: &Attribute = &Attribute {
212 key: Identifier::vanilla_static("sneaking_speed"),
213 translation_key: "attribute.name.sneaking_speed",
214 default_value: 0.3f64,
215 min_value: 0f64,
216 max_value: 1f64,
217 syncable: true,
218};
219pub static SPAWN_REINFORCEMENTS: &Attribute = &Attribute {
220 key: Identifier::vanilla_static("spawn_reinforcements"),
221 translation_key: "attribute.name.spawn_reinforcements",
222 default_value: 0f64,
223 min_value: 0f64,
224 max_value: 1f64,
225 syncable: false,
226};
227pub static STEP_HEIGHT: &Attribute = &Attribute {
228 key: Identifier::vanilla_static("step_height"),
229 translation_key: "attribute.name.step_height",
230 default_value: 0.6f64,
231 min_value: 0f64,
232 max_value: 10f64,
233 syncable: true,
234};
235pub static SUBMERGED_MINING_SPEED: &Attribute = &Attribute {
236 key: Identifier::vanilla_static("submerged_mining_speed"),
237 translation_key: "attribute.name.submerged_mining_speed",
238 default_value: 0.2f64,
239 min_value: 0f64,
240 max_value: 20f64,
241 syncable: true,
242};
243pub static SWEEPING_DAMAGE_RATIO: &Attribute = &Attribute {
244 key: Identifier::vanilla_static("sweeping_damage_ratio"),
245 translation_key: "attribute.name.sweeping_damage_ratio",
246 default_value: 0f64,
247 min_value: 0f64,
248 max_value: 1f64,
249 syncable: true,
250};
251pub static TEMPT_RANGE: &Attribute = &Attribute {
252 key: Identifier::vanilla_static("tempt_range"),
253 translation_key: "attribute.name.tempt_range",
254 default_value: 10f64,
255 min_value: 0f64,
256 max_value: 2048f64,
257 syncable: false,
258};
259pub static WATER_MOVEMENT_EFFICIENCY: &Attribute = &Attribute {
260 key: Identifier::vanilla_static("water_movement_efficiency"),
261 translation_key: "attribute.name.water_movement_efficiency",
262 default_value: 0f64,
263 min_value: 0f64,
264 max_value: 1f64,
265 syncable: true,
266};
267pub static WAYPOINT_TRANSMIT_RANGE: &Attribute = &Attribute {
268 key: Identifier::vanilla_static("waypoint_transmit_range"),
269 translation_key: "attribute.name.waypoint_transmit_range",
270 default_value: 0f64,
271 min_value: 0f64,
272 max_value: 60000000f64,
273 syncable: false,
274};
275pub static WAYPOINT_RECEIVE_RANGE: &Attribute = &Attribute {
276 key: Identifier::vanilla_static("waypoint_receive_range"),
277 translation_key: "attribute.name.waypoint_receive_range",
278 default_value: 0f64,
279 min_value: 0f64,
280 max_value: 60000000f64,
281 syncable: false,
282};
283pub fn register_attributes(registry: &mut AttributeRegistry) {
284 registry.register(ARMOR);
285 registry.register(ARMOR_TOUGHNESS);
286 registry.register(ATTACK_DAMAGE);
287 registry.register(ATTACK_KNOCKBACK);
288 registry.register(ATTACK_SPEED);
289 registry.register(BLOCK_BREAK_SPEED);
290 registry.register(BLOCK_INTERACTION_RANGE);
291 registry.register(BURNING_TIME);
292 registry.register(CAMERA_DISTANCE);
293 registry.register(EXPLOSION_KNOCKBACK_RESISTANCE);
294 registry.register(ENTITY_INTERACTION_RANGE);
295 registry.register(FALL_DAMAGE_MULTIPLIER);
296 registry.register(FLYING_SPEED);
297 registry.register(FOLLOW_RANGE);
298 registry.register(GRAVITY);
299 registry.register(JUMP_STRENGTH);
300 registry.register(KNOCKBACK_RESISTANCE);
301 registry.register(LUCK);
302 registry.register(MAX_ABSORPTION);
303 registry.register(MAX_HEALTH);
304 registry.register(MINING_EFFICIENCY);
305 registry.register(MOVEMENT_EFFICIENCY);
306 registry.register(MOVEMENT_SPEED);
307 registry.register(OXYGEN_BONUS);
308 registry.register(SAFE_FALL_DISTANCE);
309 registry.register(SCALE);
310 registry.register(SNEAKING_SPEED);
311 registry.register(SPAWN_REINFORCEMENTS);
312 registry.register(STEP_HEIGHT);
313 registry.register(SUBMERGED_MINING_SPEED);
314 registry.register(SWEEPING_DAMAGE_RATIO);
315 registry.register(TEMPT_RANGE);
316 registry.register(WATER_MOVEMENT_EFFICIENCY);
317 registry.register(WAYPOINT_TRANSMIT_RANGE);
318 registry.register(WAYPOINT_RECEIVE_RANGE);
319}