1use crate::shared_structs::{BiomeCondition, SpawnConditionEntry};
2use crate::wolf_variant::{WolfAssetInfo, WolfVariant, WolfVariantRegistry};
3use std::borrow::Cow;
4use steel_utils::Identifier;
5pub static PALE: WolfVariant = WolfVariant {
6 key: Identifier::vanilla_static("pale"),
7 assets: WolfAssetInfo {
8 wild: Identifier {
9 namespace: Cow::Borrowed("minecraft"),
10 path: Cow::Borrowed("entity/wolf/wolf"),
11 },
12 tame: Identifier {
13 namespace: Cow::Borrowed("minecraft"),
14 path: Cow::Borrowed("entity/wolf/wolf_tame"),
15 },
16 angry: Identifier {
17 namespace: Cow::Borrowed("minecraft"),
18 path: Cow::Borrowed("entity/wolf/wolf_angry"),
19 },
20 },
21 baby_assets: WolfAssetInfo {
22 wild: Identifier {
23 namespace: Cow::Borrowed("minecraft"),
24 path: Cow::Borrowed("entity/wolf/wolf_baby"),
25 },
26 tame: Identifier {
27 namespace: Cow::Borrowed("minecraft"),
28 path: Cow::Borrowed("entity/wolf/wolf_tame_baby"),
29 },
30 angry: Identifier {
31 namespace: Cow::Borrowed("minecraft"),
32 path: Cow::Borrowed("entity/wolf/wolf_angry_baby"),
33 },
34 },
35 spawn_conditions: &[SpawnConditionEntry {
36 priority: 0i32,
37 condition: None,
38 }],
39};
40pub static SPOTTED: WolfVariant = WolfVariant {
41 key: Identifier::vanilla_static("spotted"),
42 assets: WolfAssetInfo {
43 wild: Identifier {
44 namespace: Cow::Borrowed("minecraft"),
45 path: Cow::Borrowed("entity/wolf/wolf_spotted"),
46 },
47 tame: Identifier {
48 namespace: Cow::Borrowed("minecraft"),
49 path: Cow::Borrowed("entity/wolf/wolf_spotted_tame"),
50 },
51 angry: Identifier {
52 namespace: Cow::Borrowed("minecraft"),
53 path: Cow::Borrowed("entity/wolf/wolf_spotted_angry"),
54 },
55 },
56 baby_assets: WolfAssetInfo {
57 wild: Identifier {
58 namespace: Cow::Borrowed("minecraft"),
59 path: Cow::Borrowed("entity/wolf/wolf_spotted_baby"),
60 },
61 tame: Identifier {
62 namespace: Cow::Borrowed("minecraft"),
63 path: Cow::Borrowed("entity/wolf/wolf_spotted_tame_baby"),
64 },
65 angry: Identifier {
66 namespace: Cow::Borrowed("minecraft"),
67 path: Cow::Borrowed("entity/wolf/wolf_spotted_angry_baby"),
68 },
69 },
70 spawn_conditions: &[SpawnConditionEntry {
71 priority: 1i32,
72 condition: Some(BiomeCondition {
73 condition_type: "minecraft:biome",
74 biomes: "#minecraft:is_savanna",
75 }),
76 }],
77};
78pub static SNOWY: WolfVariant = WolfVariant {
79 key: Identifier::vanilla_static("snowy"),
80 assets: WolfAssetInfo {
81 wild: Identifier {
82 namespace: Cow::Borrowed("minecraft"),
83 path: Cow::Borrowed("entity/wolf/wolf_snowy"),
84 },
85 tame: Identifier {
86 namespace: Cow::Borrowed("minecraft"),
87 path: Cow::Borrowed("entity/wolf/wolf_snowy_tame"),
88 },
89 angry: Identifier {
90 namespace: Cow::Borrowed("minecraft"),
91 path: Cow::Borrowed("entity/wolf/wolf_snowy_angry"),
92 },
93 },
94 baby_assets: WolfAssetInfo {
95 wild: Identifier {
96 namespace: Cow::Borrowed("minecraft"),
97 path: Cow::Borrowed("entity/wolf/wolf_snowy_baby"),
98 },
99 tame: Identifier {
100 namespace: Cow::Borrowed("minecraft"),
101 path: Cow::Borrowed("entity/wolf/wolf_snowy_tame_baby"),
102 },
103 angry: Identifier {
104 namespace: Cow::Borrowed("minecraft"),
105 path: Cow::Borrowed("entity/wolf/wolf_snowy_angry_baby"),
106 },
107 },
108 spawn_conditions: &[SpawnConditionEntry {
109 priority: 1i32,
110 condition: Some(BiomeCondition {
111 condition_type: "minecraft:biome",
112 biomes: "minecraft:grove",
113 }),
114 }],
115};
116pub static BLACK: WolfVariant = WolfVariant {
117 key: Identifier::vanilla_static("black"),
118 assets: WolfAssetInfo {
119 wild: Identifier {
120 namespace: Cow::Borrowed("minecraft"),
121 path: Cow::Borrowed("entity/wolf/wolf_black"),
122 },
123 tame: Identifier {
124 namespace: Cow::Borrowed("minecraft"),
125 path: Cow::Borrowed("entity/wolf/wolf_black_tame"),
126 },
127 angry: Identifier {
128 namespace: Cow::Borrowed("minecraft"),
129 path: Cow::Borrowed("entity/wolf/wolf_black_angry"),
130 },
131 },
132 baby_assets: WolfAssetInfo {
133 wild: Identifier {
134 namespace: Cow::Borrowed("minecraft"),
135 path: Cow::Borrowed("entity/wolf/wolf_black_baby"),
136 },
137 tame: Identifier {
138 namespace: Cow::Borrowed("minecraft"),
139 path: Cow::Borrowed("entity/wolf/wolf_black_tame_baby"),
140 },
141 angry: Identifier {
142 namespace: Cow::Borrowed("minecraft"),
143 path: Cow::Borrowed("entity/wolf/wolf_black_angry_baby"),
144 },
145 },
146 spawn_conditions: &[SpawnConditionEntry {
147 priority: 1i32,
148 condition: Some(BiomeCondition {
149 condition_type: "minecraft:biome",
150 biomes: "minecraft:old_growth_pine_taiga",
151 }),
152 }],
153};
154pub static ASHEN: WolfVariant = WolfVariant {
155 key: Identifier::vanilla_static("ashen"),
156 assets: WolfAssetInfo {
157 wild: Identifier {
158 namespace: Cow::Borrowed("minecraft"),
159 path: Cow::Borrowed("entity/wolf/wolf_ashen"),
160 },
161 tame: Identifier {
162 namespace: Cow::Borrowed("minecraft"),
163 path: Cow::Borrowed("entity/wolf/wolf_ashen_tame"),
164 },
165 angry: Identifier {
166 namespace: Cow::Borrowed("minecraft"),
167 path: Cow::Borrowed("entity/wolf/wolf_ashen_angry"),
168 },
169 },
170 baby_assets: WolfAssetInfo {
171 wild: Identifier {
172 namespace: Cow::Borrowed("minecraft"),
173 path: Cow::Borrowed("entity/wolf/wolf_ashen_baby"),
174 },
175 tame: Identifier {
176 namespace: Cow::Borrowed("minecraft"),
177 path: Cow::Borrowed("entity/wolf/wolf_ashen_tame_baby"),
178 },
179 angry: Identifier {
180 namespace: Cow::Borrowed("minecraft"),
181 path: Cow::Borrowed("entity/wolf/wolf_ashen_angry_baby"),
182 },
183 },
184 spawn_conditions: &[SpawnConditionEntry {
185 priority: 1i32,
186 condition: Some(BiomeCondition {
187 condition_type: "minecraft:biome",
188 biomes: "minecraft:snowy_taiga",
189 }),
190 }],
191};
192pub static RUSTY: WolfVariant = WolfVariant {
193 key: Identifier::vanilla_static("rusty"),
194 assets: WolfAssetInfo {
195 wild: Identifier {
196 namespace: Cow::Borrowed("minecraft"),
197 path: Cow::Borrowed("entity/wolf/wolf_rusty"),
198 },
199 tame: Identifier {
200 namespace: Cow::Borrowed("minecraft"),
201 path: Cow::Borrowed("entity/wolf/wolf_rusty_tame"),
202 },
203 angry: Identifier {
204 namespace: Cow::Borrowed("minecraft"),
205 path: Cow::Borrowed("entity/wolf/wolf_rusty_angry"),
206 },
207 },
208 baby_assets: WolfAssetInfo {
209 wild: Identifier {
210 namespace: Cow::Borrowed("minecraft"),
211 path: Cow::Borrowed("entity/wolf/wolf_rusty_baby"),
212 },
213 tame: Identifier {
214 namespace: Cow::Borrowed("minecraft"),
215 path: Cow::Borrowed("entity/wolf/wolf_rusty_tame_baby"),
216 },
217 angry: Identifier {
218 namespace: Cow::Borrowed("minecraft"),
219 path: Cow::Borrowed("entity/wolf/wolf_rusty_angry_baby"),
220 },
221 },
222 spawn_conditions: &[SpawnConditionEntry {
223 priority: 1i32,
224 condition: Some(BiomeCondition {
225 condition_type: "minecraft:biome",
226 biomes: "#minecraft:is_jungle",
227 }),
228 }],
229};
230pub static WOODS: WolfVariant = WolfVariant {
231 key: Identifier::vanilla_static("woods"),
232 assets: WolfAssetInfo {
233 wild: Identifier {
234 namespace: Cow::Borrowed("minecraft"),
235 path: Cow::Borrowed("entity/wolf/wolf_woods"),
236 },
237 tame: Identifier {
238 namespace: Cow::Borrowed("minecraft"),
239 path: Cow::Borrowed("entity/wolf/wolf_woods_tame"),
240 },
241 angry: Identifier {
242 namespace: Cow::Borrowed("minecraft"),
243 path: Cow::Borrowed("entity/wolf/wolf_woods_angry"),
244 },
245 },
246 baby_assets: WolfAssetInfo {
247 wild: Identifier {
248 namespace: Cow::Borrowed("minecraft"),
249 path: Cow::Borrowed("entity/wolf/wolf_woods_baby"),
250 },
251 tame: Identifier {
252 namespace: Cow::Borrowed("minecraft"),
253 path: Cow::Borrowed("entity/wolf/wolf_woods_tame_baby"),
254 },
255 angry: Identifier {
256 namespace: Cow::Borrowed("minecraft"),
257 path: Cow::Borrowed("entity/wolf/wolf_woods_angry_baby"),
258 },
259 },
260 spawn_conditions: &[SpawnConditionEntry {
261 priority: 1i32,
262 condition: Some(BiomeCondition {
263 condition_type: "minecraft:biome",
264 biomes: "minecraft:forest",
265 }),
266 }],
267};
268pub static CHESTNUT: WolfVariant = WolfVariant {
269 key: Identifier::vanilla_static("chestnut"),
270 assets: WolfAssetInfo {
271 wild: Identifier {
272 namespace: Cow::Borrowed("minecraft"),
273 path: Cow::Borrowed("entity/wolf/wolf_chestnut"),
274 },
275 tame: Identifier {
276 namespace: Cow::Borrowed("minecraft"),
277 path: Cow::Borrowed("entity/wolf/wolf_chestnut_tame"),
278 },
279 angry: Identifier {
280 namespace: Cow::Borrowed("minecraft"),
281 path: Cow::Borrowed("entity/wolf/wolf_chestnut_angry"),
282 },
283 },
284 baby_assets: WolfAssetInfo {
285 wild: Identifier {
286 namespace: Cow::Borrowed("minecraft"),
287 path: Cow::Borrowed("entity/wolf/wolf_chestnut_baby"),
288 },
289 tame: Identifier {
290 namespace: Cow::Borrowed("minecraft"),
291 path: Cow::Borrowed("entity/wolf/wolf_chestnut_tame_baby"),
292 },
293 angry: Identifier {
294 namespace: Cow::Borrowed("minecraft"),
295 path: Cow::Borrowed("entity/wolf/wolf_chestnut_angry_baby"),
296 },
297 },
298 spawn_conditions: &[SpawnConditionEntry {
299 priority: 1i32,
300 condition: Some(BiomeCondition {
301 condition_type: "minecraft:biome",
302 biomes: "minecraft:old_growth_spruce_taiga",
303 }),
304 }],
305};
306pub static STRIPED: WolfVariant = WolfVariant {
307 key: Identifier::vanilla_static("striped"),
308 assets: WolfAssetInfo {
309 wild: Identifier {
310 namespace: Cow::Borrowed("minecraft"),
311 path: Cow::Borrowed("entity/wolf/wolf_striped"),
312 },
313 tame: Identifier {
314 namespace: Cow::Borrowed("minecraft"),
315 path: Cow::Borrowed("entity/wolf/wolf_striped_tame"),
316 },
317 angry: Identifier {
318 namespace: Cow::Borrowed("minecraft"),
319 path: Cow::Borrowed("entity/wolf/wolf_striped_angry"),
320 },
321 },
322 baby_assets: WolfAssetInfo {
323 wild: Identifier {
324 namespace: Cow::Borrowed("minecraft"),
325 path: Cow::Borrowed("entity/wolf/wolf_striped_baby"),
326 },
327 tame: Identifier {
328 namespace: Cow::Borrowed("minecraft"),
329 path: Cow::Borrowed("entity/wolf/wolf_striped_tame_baby"),
330 },
331 angry: Identifier {
332 namespace: Cow::Borrowed("minecraft"),
333 path: Cow::Borrowed("entity/wolf/wolf_striped_angry_baby"),
334 },
335 },
336 spawn_conditions: &[SpawnConditionEntry {
337 priority: 1i32,
338 condition: Some(BiomeCondition {
339 condition_type: "minecraft:biome",
340 biomes: "#minecraft:is_badlands",
341 }),
342 }],
343};
344pub fn register_wolf_variants(registry: &mut WolfVariantRegistry) {
345 registry.register(&PALE);
346 registry.register(&SPOTTED);
347 registry.register(&SNOWY);
348 registry.register(&BLACK);
349 registry.register(&ASHEN);
350 registry.register(&RUSTY);
351 registry.register(&WOODS);
352 registry.register(&CHESTNUT);
353 registry.register(&STRIPED);
354}