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