1use crate::poi::{PointOfInterestType, PoiBlockMatcher, PoiTypeRegistry};
2use crate::vanilla_blocks;
3use steel_utils::Identifier;
4pub static ARMORER: PointOfInterestType = PointOfInterestType {
5 key: Identifier::vanilla_static("armorer"),
6 blocks: &[
7 PoiBlockMatcher {
8 block: &vanilla_blocks::BLAST_FURNACE,
9 properties: &[],
10 },
11 ],
12 ticket_count: 1u32,
13 search_distance: 1u32,
14};
15pub static BUTCHER: PointOfInterestType = PointOfInterestType {
16 key: Identifier::vanilla_static("butcher"),
17 blocks: &[
18 PoiBlockMatcher {
19 block: &vanilla_blocks::SMOKER,
20 properties: &[],
21 },
22 ],
23 ticket_count: 1u32,
24 search_distance: 1u32,
25};
26pub static CARTOGRAPHER: PointOfInterestType = PointOfInterestType {
27 key: Identifier::vanilla_static("cartographer"),
28 blocks: &[
29 PoiBlockMatcher {
30 block: &vanilla_blocks::CARTOGRAPHY_TABLE,
31 properties: &[],
32 },
33 ],
34 ticket_count: 1u32,
35 search_distance: 1u32,
36};
37pub static CLERIC: PointOfInterestType = PointOfInterestType {
38 key: Identifier::vanilla_static("cleric"),
39 blocks: &[
40 PoiBlockMatcher {
41 block: &vanilla_blocks::BREWING_STAND,
42 properties: &[],
43 },
44 ],
45 ticket_count: 1u32,
46 search_distance: 1u32,
47};
48pub static FARMER: PointOfInterestType = PointOfInterestType {
49 key: Identifier::vanilla_static("farmer"),
50 blocks: &[
51 PoiBlockMatcher {
52 block: &vanilla_blocks::COMPOSTER,
53 properties: &[],
54 },
55 ],
56 ticket_count: 1u32,
57 search_distance: 1u32,
58};
59pub static FISHERMAN: PointOfInterestType = PointOfInterestType {
60 key: Identifier::vanilla_static("fisherman"),
61 blocks: &[
62 PoiBlockMatcher {
63 block: &vanilla_blocks::BARREL,
64 properties: &[],
65 },
66 ],
67 ticket_count: 1u32,
68 search_distance: 1u32,
69};
70pub static FLETCHER: PointOfInterestType = PointOfInterestType {
71 key: Identifier::vanilla_static("fletcher"),
72 blocks: &[
73 PoiBlockMatcher {
74 block: &vanilla_blocks::FLETCHING_TABLE,
75 properties: &[],
76 },
77 ],
78 ticket_count: 1u32,
79 search_distance: 1u32,
80};
81pub static LEATHERWORKER: PointOfInterestType = PointOfInterestType {
82 key: Identifier::vanilla_static("leatherworker"),
83 blocks: &[
84 PoiBlockMatcher {
85 block: &vanilla_blocks::WATER_CAULDRON,
86 properties: &[],
87 },
88 PoiBlockMatcher {
89 block: &vanilla_blocks::POWDER_SNOW_CAULDRON,
90 properties: &[],
91 },
92 PoiBlockMatcher {
93 block: &vanilla_blocks::CAULDRON,
94 properties: &[],
95 },
96 PoiBlockMatcher {
97 block: &vanilla_blocks::LAVA_CAULDRON,
98 properties: &[],
99 },
100 ],
101 ticket_count: 1u32,
102 search_distance: 1u32,
103};
104pub static LIBRARIAN: PointOfInterestType = PointOfInterestType {
105 key: Identifier::vanilla_static("librarian"),
106 blocks: &[
107 PoiBlockMatcher {
108 block: &vanilla_blocks::LECTERN,
109 properties: &[],
110 },
111 ],
112 ticket_count: 1u32,
113 search_distance: 1u32,
114};
115pub static MASON: PointOfInterestType = PointOfInterestType {
116 key: Identifier::vanilla_static("mason"),
117 blocks: &[
118 PoiBlockMatcher {
119 block: &vanilla_blocks::STONECUTTER,
120 properties: &[],
121 },
122 ],
123 ticket_count: 1u32,
124 search_distance: 1u32,
125};
126pub static SHEPHERD: PointOfInterestType = PointOfInterestType {
127 key: Identifier::vanilla_static("shepherd"),
128 blocks: &[
129 PoiBlockMatcher {
130 block: &vanilla_blocks::LOOM,
131 properties: &[],
132 },
133 ],
134 ticket_count: 1u32,
135 search_distance: 1u32,
136};
137pub static TOOLSMITH: PointOfInterestType = PointOfInterestType {
138 key: Identifier::vanilla_static("toolsmith"),
139 blocks: &[
140 PoiBlockMatcher {
141 block: &vanilla_blocks::SMITHING_TABLE,
142 properties: &[],
143 },
144 ],
145 ticket_count: 1u32,
146 search_distance: 1u32,
147};
148pub static WEAPONSMITH: PointOfInterestType = PointOfInterestType {
149 key: Identifier::vanilla_static("weaponsmith"),
150 blocks: &[
151 PoiBlockMatcher {
152 block: &vanilla_blocks::GRINDSTONE,
153 properties: &[],
154 },
155 ],
156 ticket_count: 1u32,
157 search_distance: 1u32,
158};
159pub static HOME: PointOfInterestType = PointOfInterestType {
160 key: Identifier::vanilla_static("home"),
161 blocks: &[
162 PoiBlockMatcher {
163 block: &vanilla_blocks::RED_BED,
164 properties: &[("part", "head")],
165 },
166 PoiBlockMatcher {
167 block: &vanilla_blocks::WHITE_BED,
168 properties: &[("part", "head")],
169 },
170 PoiBlockMatcher {
171 block: &vanilla_blocks::MAGENTA_BED,
172 properties: &[("part", "head")],
173 },
174 PoiBlockMatcher {
175 block: &vanilla_blocks::GRAY_BED,
176 properties: &[("part", "head")],
177 },
178 PoiBlockMatcher {
179 block: &vanilla_blocks::LIME_BED,
180 properties: &[("part", "head")],
181 },
182 PoiBlockMatcher {
183 block: &vanilla_blocks::GREEN_BED,
184 properties: &[("part", "head")],
185 },
186 PoiBlockMatcher {
187 block: &vanilla_blocks::BLUE_BED,
188 properties: &[("part", "head")],
189 },
190 PoiBlockMatcher {
191 block: &vanilla_blocks::CYAN_BED,
192 properties: &[("part", "head")],
193 },
194 PoiBlockMatcher {
195 block: &vanilla_blocks::LIGHT_GRAY_BED,
196 properties: &[("part", "head")],
197 },
198 PoiBlockMatcher {
199 block: &vanilla_blocks::BROWN_BED,
200 properties: &[("part", "head")],
201 },
202 PoiBlockMatcher {
203 block: &vanilla_blocks::PURPLE_BED,
204 properties: &[("part", "head")],
205 },
206 PoiBlockMatcher {
207 block: &vanilla_blocks::YELLOW_BED,
208 properties: &[("part", "head")],
209 },
210 PoiBlockMatcher {
211 block: &vanilla_blocks::BLACK_BED,
212 properties: &[("part", "head")],
213 },
214 PoiBlockMatcher {
215 block: &vanilla_blocks::PINK_BED,
216 properties: &[("part", "head")],
217 },
218 PoiBlockMatcher {
219 block: &vanilla_blocks::ORANGE_BED,
220 properties: &[("part", "head")],
221 },
222 PoiBlockMatcher {
223 block: &vanilla_blocks::LIGHT_BLUE_BED,
224 properties: &[("part", "head")],
225 },
226 ],
227 ticket_count: 1u32,
228 search_distance: 1u32,
229};
230pub static MEETING: PointOfInterestType = PointOfInterestType {
231 key: Identifier::vanilla_static("meeting"),
232 blocks: &[
233 PoiBlockMatcher {
234 block: &vanilla_blocks::BELL,
235 properties: &[],
236 },
237 ],
238 ticket_count: 32u32,
239 search_distance: 6u32,
240};
241pub static BEEHIVE: PointOfInterestType = PointOfInterestType {
242 key: Identifier::vanilla_static("beehive"),
243 blocks: &[
244 PoiBlockMatcher {
245 block: &vanilla_blocks::BEEHIVE,
246 properties: &[],
247 },
248 ],
249 ticket_count: 0u32,
250 search_distance: 1u32,
251};
252pub static BEE_NEST: PointOfInterestType = PointOfInterestType {
253 key: Identifier::vanilla_static("bee_nest"),
254 blocks: &[
255 PoiBlockMatcher {
256 block: &vanilla_blocks::BEE_NEST,
257 properties: &[],
258 },
259 ],
260 ticket_count: 0u32,
261 search_distance: 1u32,
262};
263pub static NETHER_PORTAL: PointOfInterestType = PointOfInterestType {
264 key: Identifier::vanilla_static("nether_portal"),
265 blocks: &[
266 PoiBlockMatcher {
267 block: &vanilla_blocks::NETHER_PORTAL,
268 properties: &[],
269 },
270 ],
271 ticket_count: 0u32,
272 search_distance: 1u32,
273};
274pub static LODESTONE: PointOfInterestType = PointOfInterestType {
275 key: Identifier::vanilla_static("lodestone"),
276 blocks: &[
277 PoiBlockMatcher {
278 block: &vanilla_blocks::LODESTONE,
279 properties: &[],
280 },
281 ],
282 ticket_count: 0u32,
283 search_distance: 1u32,
284};
285pub static TEST_INSTANCE: PointOfInterestType = PointOfInterestType {
286 key: Identifier::vanilla_static("test_instance"),
287 blocks: &[
288 PoiBlockMatcher {
289 block: &vanilla_blocks::TEST_INSTANCE_BLOCK,
290 properties: &[],
291 },
292 ],
293 ticket_count: 0u32,
294 search_distance: 1u32,
295};
296pub static LIGHTNING_ROD: PointOfInterestType = PointOfInterestType {
297 key: Identifier::vanilla_static("lightning_rod"),
298 blocks: &[
299 PoiBlockMatcher {
300 block: &vanilla_blocks::WEATHERED_LIGHTNING_ROD,
301 properties: &[],
302 },
303 PoiBlockMatcher {
304 block: &vanilla_blocks::WAXED_LIGHTNING_ROD,
305 properties: &[],
306 },
307 PoiBlockMatcher {
308 block: &vanilla_blocks::WAXED_WEATHERED_LIGHTNING_ROD,
309 properties: &[],
310 },
311 PoiBlockMatcher {
312 block: &vanilla_blocks::EXPOSED_LIGHTNING_ROD,
313 properties: &[],
314 },
315 PoiBlockMatcher {
316 block: &vanilla_blocks::WAXED_EXPOSED_LIGHTNING_ROD,
317 properties: &[],
318 },
319 PoiBlockMatcher {
320 block: &vanilla_blocks::WAXED_OXIDIZED_LIGHTNING_ROD,
321 properties: &[],
322 },
323 PoiBlockMatcher {
324 block: &vanilla_blocks::OXIDIZED_LIGHTNING_ROD,
325 properties: &[],
326 },
327 PoiBlockMatcher {
328 block: &vanilla_blocks::LIGHTNING_ROD,
329 properties: &[],
330 },
331 ],
332 ticket_count: 0u32,
333 search_distance: 1u32,
334};
335pub fn register_poi_types(registry: &mut PoiTypeRegistry) {
336 registry.register(&ARMORER);
337 registry.register(&BUTCHER);
338 registry.register(&CARTOGRAPHER);
339 registry.register(&CLERIC);
340 registry.register(&FARMER);
341 registry.register(&FISHERMAN);
342 registry.register(&FLETCHER);
343 registry.register(&LEATHERWORKER);
344 registry.register(&LIBRARIAN);
345 registry.register(&MASON);
346 registry.register(&SHEPHERD);
347 registry.register(&TOOLSMITH);
348 registry.register(&WEAPONSMITH);
349 registry.register(&HOME);
350 registry.register(&MEETING);
351 registry.register(&BEEHIVE);
352 registry.register(&BEE_NEST);
353 registry.register(&NETHER_PORTAL);
354 registry.register(&LODESTONE);
355 registry.register(&TEST_INSTANCE);
356 registry.register(&LIGHTNING_ROD);
357}