@spyglassmc/java-edition 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/README.md +36 -0
  2. package/lib/binder/index.d.ts +15 -0
  3. package/lib/binder/index.js +102 -0
  4. package/lib/common/index.d.ts +7 -0
  5. package/lib/common/index.js +60 -0
  6. package/lib/dependency/common.d.ts +26 -0
  7. package/lib/dependency/common.js +39 -0
  8. package/lib/dependency/index.d.ts +30 -0
  9. package/lib/dependency/index.js +172 -0
  10. package/lib/dependency/mcmeta.d.ts +79 -0
  11. package/lib/dependency/mcmeta.js +205 -0
  12. package/lib/index.d.ts +6 -0
  13. package/lib/index.js +76 -0
  14. package/lib/json/checker/data/advancement.d.ts +14 -0
  15. package/lib/json/checker/data/advancement.js +450 -0
  16. package/lib/json/checker/data/biome.d.ts +4 -0
  17. package/lib/json/checker/data/biome.js +151 -0
  18. package/lib/json/checker/data/common.d.ts +22 -0
  19. package/lib/json/checker/data/common.js +286 -0
  20. package/lib/json/checker/data/dimension.d.ts +4 -0
  21. package/lib/json/checker/data/dimension.js +238 -0
  22. package/lib/json/checker/data/feature.d.ts +9 -0
  23. package/lib/json/checker/data/feature.js +733 -0
  24. package/lib/json/checker/data/index.d.ts +4 -0
  25. package/lib/json/checker/data/index.js +43 -0
  26. package/lib/json/checker/data/loot_table.d.ts +8 -0
  27. package/lib/json/checker/data/loot_table.js +279 -0
  28. package/lib/json/checker/data/recipe.d.ts +2 -0
  29. package/lib/json/checker/data/recipe.js +53 -0
  30. package/lib/json/checker/data/structure.d.ts +8 -0
  31. package/lib/json/checker/data/structure.js +148 -0
  32. package/lib/json/checker/data/tag.d.ts +7 -0
  33. package/lib/json/checker/data/tag.js +38 -0
  34. package/lib/json/checker/data/text_component.d.ts +2 -0
  35. package/lib/json/checker/data/text_component.js +142 -0
  36. package/lib/json/checker/index.d.ts +5 -0
  37. package/lib/json/checker/index.js +28 -0
  38. package/lib/json/checker/util/advancement.d.ts +3 -0
  39. package/lib/json/checker/util/advancement.js +20 -0
  40. package/lib/json/checker/util/block_states.d.ts +13 -0
  41. package/lib/json/checker/util/block_states.js +85 -0
  42. package/lib/json/checker/util/color.d.ts +4 -0
  43. package/lib/json/checker/util/color.js +64 -0
  44. package/lib/json/checker/util/index.d.ts +8 -0
  45. package/lib/json/checker/util/index.js +20 -0
  46. package/lib/json/checker/util/nbt.d.ts +17 -0
  47. package/lib/json/checker/util/nbt.js +71 -0
  48. package/lib/json/checker/util/recipe.d.ts +6 -0
  49. package/lib/json/checker/util/recipe.js +16 -0
  50. package/lib/json/checker/util/uuid.d.ts +2 -0
  51. package/lib/json/checker/util/uuid.js +12 -0
  52. package/lib/json/checker/util/version.d.ts +46 -0
  53. package/lib/json/checker/util/version.js +54 -0
  54. package/lib/json/index.d.ts +4 -0
  55. package/lib/json/index.js +32 -0
  56. package/lib/mcfunction/checker/index.d.ts +7 -0
  57. package/lib/mcfunction/checker/index.js +217 -0
  58. package/lib/mcfunction/colorizer/index.d.ts +6 -0
  59. package/lib/mcfunction/colorizer/index.js +38 -0
  60. package/lib/mcfunction/common/index.d.ts +7 -0
  61. package/lib/mcfunction/common/index.js +47 -0
  62. package/lib/mcfunction/completer/argument.d.ts +5 -0
  63. package/lib/mcfunction/completer/argument.js +292 -0
  64. package/lib/mcfunction/completer/index.d.ts +2 -0
  65. package/lib/mcfunction/completer/index.js +14 -0
  66. package/lib/mcfunction/index.d.ts +8 -0
  67. package/lib/mcfunction/index.js +72 -0
  68. package/lib/mcfunction/inlayHintProvider.d.ts +4 -0
  69. package/lib/mcfunction/inlayHintProvider.js +40 -0
  70. package/lib/mcfunction/node/argument.d.ts +187 -0
  71. package/lib/mcfunction/node/argument.js +281 -0
  72. package/lib/mcfunction/node/index.d.ts +2 -0
  73. package/lib/mcfunction/node/index.js +14 -0
  74. package/lib/mcfunction/parser/argument.d.ts +15 -0
  75. package/lib/mcfunction/parser/argument.js +934 -0
  76. package/lib/mcfunction/parser/index.d.ts +2 -0
  77. package/lib/mcfunction/parser/index.js +14 -0
  78. package/lib/mcfunction/signatureHelpProvider.d.ts +8 -0
  79. package/lib/mcfunction/signatureHelpProvider.js +103 -0
  80. package/lib/mcfunction/tree/1.15.d.ts +9 -0
  81. package/lib/mcfunction/tree/1.15.js +542 -0
  82. package/lib/mcfunction/tree/1.16.d.ts +10 -0
  83. package/lib/mcfunction/tree/1.16.js +77 -0
  84. package/lib/mcfunction/tree/1.17.d.ts +12 -0
  85. package/lib/mcfunction/tree/1.17.js +166 -0
  86. package/lib/mcfunction/tree/1.18.d.ts +26 -0
  87. package/lib/mcfunction/tree/1.18.js +6 -0
  88. package/lib/mcfunction/tree/1.19.d.ts +26 -0
  89. package/lib/mcfunction/tree/1.19.js +6 -0
  90. package/lib/mcfunction/tree/argument.d.ts +179 -0
  91. package/lib/mcfunction/tree/argument.js +3 -0
  92. package/lib/mcfunction/tree/index.d.ts +7 -0
  93. package/lib/mcfunction/tree/index.js +19 -0
  94. package/package.json +41 -0
@@ -0,0 +1,450 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.advancement = exports.criterion = exports.damage_predicate = exports.damage_source_predicate = exports.entity_predicate = exports.player_predicate = exports.statistic_predicate = exports.mob_effect_predicate = exports.distance_predicate = exports.location_predicate = exports.fluid_predicate = exports.block_predicate = exports.item_predicate = void 0;
4
+ const primitives_1 = require("@spyglassmc/json/lib/checker/primitives");
5
+ const binder_1 = require("../../../binder");
6
+ const util_1 = require("../util");
7
+ const common_1 = require("./common");
8
+ const loot_table_1 = require("./loot_table");
9
+ const text_component_1 = require("./text_component");
10
+ const Triggers = (ctx) => [
11
+ 'minecraft:bee_nest_destroyed',
12
+ 'minecraft:bred_animals',
13
+ 'minecraft:brewed_potion',
14
+ 'minecraft:changed_dimension',
15
+ 'minecraft:channeled_lightning',
16
+ 'minecraft:construct_beacon',
17
+ 'minecraft:consume_item',
18
+ 'minecraft:cured_zombie_villager',
19
+ 'minecraft:effects_changed',
20
+ 'minecraft:enchanted_item',
21
+ 'minecraft:enter_block',
22
+ 'minecraft:entity_hurt_player',
23
+ 'minecraft:entity_killed_player',
24
+ ...(0, util_1.versioned)(ctx, '1.18', ['minecraft:fall_from_height']),
25
+ 'minecraft:filled_bucket',
26
+ 'minecraft:fishing_rod_hooked',
27
+ 'minecraft:hero_of_the_village',
28
+ 'minecraft:impossible',
29
+ 'minecraft:inventory_changed',
30
+ 'minecraft:item_durability_changed',
31
+ ...(0, util_1.versioned)(ctx, '1.16', ['minecraft:item_used_on_block']),
32
+ 'minecraft:killed_by_crossbow',
33
+ 'minecraft:levitation',
34
+ ...(0, util_1.versioned)(ctx, '1.17', ['minecraft:lightning_strike']),
35
+ 'minecraft:location',
36
+ 'minecraft:nether_travel',
37
+ 'minecraft:placed_block',
38
+ ...(0, util_1.versioned)(ctx, '1.16', ['minecraft:player_generates_container_loot']),
39
+ 'minecraft:player_hurt_entity',
40
+ ...(0, util_1.versioned)(ctx, '1.16', ['minecraft:player_interacted_with_entity']),
41
+ 'minecraft:player_killed_entity',
42
+ 'minecraft:recipe_unlocked',
43
+ ...(0, util_1.versioned)(ctx, '1.18', ['minecraft:ride_entity_in_lava']),
44
+ 'minecraft:shot_crossbow',
45
+ ...(0, util_1.versioned)(ctx, ['minecraft:safely_harvest_honey'], '1.16'),
46
+ 'minecraft:slept_in_bed',
47
+ 'minecraft:slide_down_block',
48
+ ...(0, util_1.versioned)(ctx, '1.17', ['minecraft:started_riding']),
49
+ 'minecraft:summoned_entity',
50
+ 'minecraft:tame_animal',
51
+ ...(0, util_1.versioned)(ctx, '1.16', ['minecraft:target_hit']),
52
+ 'minecraft:tick',
53
+ ...(0, util_1.versioned)(ctx, '1.16', ['minecraft:thrown_item_picked_up_by_entity']),
54
+ 'minecraft:used_ender_eye',
55
+ 'minecraft:used_totem',
56
+ ...(0, util_1.versioned)(ctx, '1.17', ['minecraft:using_item']),
57
+ 'minecraft:villager_trade',
58
+ 'minecraft:voluntary_exile',
59
+ ];
60
+ exports.item_predicate = (0, primitives_1.as)('item', (0, primitives_1.dispatch)((props, ctx) => (0, primitives_1.record)({
61
+ ...(0, util_1.versioned)(ctx, {
62
+ item: (0, primitives_1.opt)((0, primitives_1.resource)('item')),
63
+ }, '1.17', {
64
+ items: (0, primitives_1.opt)((0, primitives_1.listOf)((0, primitives_1.resource)('item'))),
65
+ }),
66
+ tag: (0, primitives_1.opt)((0, primitives_1.resource)('tag/item')),
67
+ count: (0, primitives_1.opt)(common_1.int_bounds),
68
+ durability: (0, primitives_1.opt)(common_1.float_bounds),
69
+ potion: (0, primitives_1.opt)((0, primitives_1.resource)('potion')),
70
+ nbt: (0, primitives_1.opt)((0, util_1.nbt)({ registry: 'item', ids: (0, primitives_1.extractStringArray)('items', props), tag: (0, primitives_1.extract)('tag', props) })),
71
+ enchantments: (0, primitives_1.opt)((0, primitives_1.listOf)((0, primitives_1.record)({
72
+ enchantment: (0, primitives_1.opt)((0, primitives_1.resource)('enchantment')),
73
+ levels: (0, primitives_1.opt)(common_1.int_bounds),
74
+ }))),
75
+ })));
76
+ exports.block_predicate = (0, primitives_1.as)('block', (0, primitives_1.dispatch)((props, ctx) => (0, primitives_1.record)({
77
+ ...(0, util_1.versioned)(ctx, {
78
+ block: (0, primitives_1.opt)((0, primitives_1.resource)('block')),
79
+ }, '1.17', {
80
+ blocks: (0, primitives_1.opt)((0, primitives_1.listOf)((0, primitives_1.resource)('block'))),
81
+ }),
82
+ tag: (0, primitives_1.opt)((0, primitives_1.resource)('tag/block')),
83
+ nbt: (0, primitives_1.opt)((0, util_1.nbt)({ registry: 'block', ids: (0, primitives_1.extractStringArray)('blocks', props), tag: (0, primitives_1.extract)('tag', props) })),
84
+ state: (0, primitives_1.opt)((0, util_1.blockStateMap)({
85
+ ids: (0, primitives_1.extractStringArray)('blocks', props),
86
+ tag: (0, primitives_1.extract)('tag', props),
87
+ mixedTypes: true,
88
+ })),
89
+ })));
90
+ exports.fluid_predicate = (0, primitives_1.as)('fluid', (0, primitives_1.dispatch)(props => (0, primitives_1.record)({
91
+ fluid: (0, primitives_1.opt)((0, primitives_1.resource)('fluid')),
92
+ tag: (0, primitives_1.opt)((0, primitives_1.resource)('tag/fluid')),
93
+ state: (0, primitives_1.opt)((0, util_1.blockStateMap)({
94
+ category: 'fluid',
95
+ id: (0, primitives_1.extract)('fluid', props),
96
+ tag: (0, primitives_1.extract)('tag', props),
97
+ mixedTypes: true,
98
+ })),
99
+ })));
100
+ exports.location_predicate = (0, primitives_1.as)('location', (0, primitives_1.dispatch)((_, ctx) => (0, primitives_1.record)({
101
+ position: (0, primitives_1.opt)((0, primitives_1.record)({
102
+ x: (0, primitives_1.opt)(common_1.float_bounds),
103
+ y: (0, primitives_1.opt)(common_1.float_bounds),
104
+ z: (0, primitives_1.opt)(common_1.float_bounds),
105
+ })),
106
+ biome: (0, primitives_1.opt)((0, primitives_1.resource)('worldgen/biome')),
107
+ feature: (0, primitives_1.opt)(primitives_1.simpleString),
108
+ dimension: (0, primitives_1.opt)((0, primitives_1.resource)('dimension')),
109
+ block: (0, primitives_1.opt)(exports.block_predicate),
110
+ fluid: (0, primitives_1.opt)(exports.fluid_predicate),
111
+ light: (0, primitives_1.opt)((0, primitives_1.record)({
112
+ light: common_1.int_bounds,
113
+ })),
114
+ smokey: (0, primitives_1.opt)((0, util_1.versioned)(ctx, '1.16', primitives_1.boolean)),
115
+ })));
116
+ exports.distance_predicate = (0, primitives_1.as)('distance', (0, primitives_1.record)({
117
+ x: (0, primitives_1.opt)(common_1.float_bounds),
118
+ y: (0, primitives_1.opt)(common_1.float_bounds),
119
+ z: (0, primitives_1.opt)(common_1.float_bounds),
120
+ absolute: (0, primitives_1.opt)(common_1.float_bounds),
121
+ horizontal: (0, primitives_1.opt)(common_1.float_bounds),
122
+ }));
123
+ exports.mob_effect_predicate = (0, primitives_1.as)('mob_effect', (0, primitives_1.record)({
124
+ amplifier: (0, primitives_1.opt)(common_1.int_bounds),
125
+ duration: (0, primitives_1.opt)(common_1.int_bounds),
126
+ ambient: (0, primitives_1.opt)(primitives_1.boolean),
127
+ visible: (0, primitives_1.opt)(primitives_1.boolean),
128
+ }));
129
+ exports.statistic_predicate = (0, primitives_1.as)('statistic', (0, primitives_1.dispatch)('type', (stat) => (0, primitives_1.record)({
130
+ type: (0, primitives_1.resource)('stat_type'),
131
+ ...(0, primitives_1.pick)(stat, {
132
+ mined: { stat: (0, primitives_1.resource)('block') },
133
+ crafted: { stat: (0, primitives_1.resource)('item') },
134
+ used: { stat: (0, primitives_1.resource)('item') },
135
+ broken: { stat: (0, primitives_1.resource)('item') },
136
+ picked_up: { stat: (0, primitives_1.resource)('item') },
137
+ dropped: { stat: (0, primitives_1.resource)('item') },
138
+ killed: { stat: (0, primitives_1.resource)('entity_type') },
139
+ killed_by: { stat: (0, primitives_1.resource)('entity_type') },
140
+ custom: { stat: (0, primitives_1.resource)('custom_stat') },
141
+ }),
142
+ value: common_1.int_bounds,
143
+ })));
144
+ exports.player_predicate = (0, primitives_1.as)('player', (0, primitives_1.dispatch)((_, ctx) => (0, primitives_1.record)({
145
+ gamemode: (0, primitives_1.opt)((0, primitives_1.literal)(['survival', 'adventure', 'creative', 'spectator'])),
146
+ level: (0, primitives_1.opt)(common_1.int_bounds),
147
+ advancements: (0, primitives_1.opt)((0, primitives_1.object)((0, primitives_1.resource)('advancement'), (advancement) => (0, primitives_1.any)([
148
+ primitives_1.boolean,
149
+ (0, primitives_1.object)((0, util_1.criterionReference)(advancement), () => primitives_1.boolean),
150
+ ]))),
151
+ recipes: (0, primitives_1.opt)((0, primitives_1.object)((0, primitives_1.resource)('recipe'), () => primitives_1.boolean)),
152
+ stats: (0, primitives_1.opt)((0, primitives_1.listOf)(exports.statistic_predicate)),
153
+ looking_at: (0, primitives_1.opt)((0, util_1.versioned)(ctx, '1.17', (0, primitives_1.ref)(() => exports.entity_predicate))),
154
+ })));
155
+ exports.entity_predicate = (0, primitives_1.as)('entity', (0, primitives_1.dispatch)((props, ctx) => (0, primitives_1.record)({
156
+ type: (0, primitives_1.opt)((0, primitives_1.resource)('entity_type', true)),
157
+ nbt: (0, primitives_1.opt)((0, util_1.nbt)({ registry: 'entity_type', idOrTag: (0, primitives_1.extract)('type', props) })),
158
+ team: (0, primitives_1.opt)((0, primitives_1.literal)('team')),
159
+ location: (0, primitives_1.opt)(exports.location_predicate),
160
+ stepping_on: (0, primitives_1.opt)((0, util_1.versioned)(ctx, '1.17', exports.location_predicate)),
161
+ distance: (0, primitives_1.opt)(exports.distance_predicate),
162
+ flags: (0, primitives_1.opt)((0, primitives_1.record)({
163
+ is_on_fire: (0, primitives_1.opt)(primitives_1.boolean),
164
+ is_sneaking: (0, primitives_1.opt)(primitives_1.boolean),
165
+ is_sprinting: (0, primitives_1.opt)(primitives_1.boolean),
166
+ is_swimming: (0, primitives_1.opt)(primitives_1.boolean),
167
+ is_baby: (0, primitives_1.opt)(primitives_1.boolean),
168
+ })),
169
+ equipment: (0, primitives_1.opt)((0, primitives_1.object)((0, primitives_1.literal)(common_1.Slots), () => exports.item_predicate)),
170
+ effects: (0, primitives_1.opt)((0, primitives_1.object)(primitives_1.simpleString, () => exports.mob_effect_predicate)),
171
+ player: (0, primitives_1.opt)(exports.player_predicate),
172
+ vehicle: (0, primitives_1.opt)((0, util_1.versioned)(ctx, '1.16', (0, primitives_1.ref)(() => exports.entity_predicate))),
173
+ passenger: (0, primitives_1.opt)((0, util_1.versioned)(ctx, '1.17', (0, primitives_1.ref)(() => exports.entity_predicate))),
174
+ targeted_entity: (0, primitives_1.opt)((0, util_1.versioned)(ctx, '1.16', (0, primitives_1.ref)(() => exports.entity_predicate))),
175
+ lightning_bolt: (0, primitives_1.opt)((0, util_1.versioned)(ctx, '1.17', (0, primitives_1.record)({
176
+ blocks_set_on_fire: (0, primitives_1.opt)(common_1.int_bounds),
177
+ entity_struck: (0, primitives_1.opt)((0, primitives_1.ref)(() => exports.entity_predicate)),
178
+ }))),
179
+ fishing_hook: (0, primitives_1.opt)((0, util_1.versioned)(ctx, '1.16', (0, primitives_1.record)({
180
+ in_open_water: (0, primitives_1.opt)(primitives_1.boolean),
181
+ }))),
182
+ catType: (0, primitives_1.opt)(primitives_1.simpleString),
183
+ })));
184
+ exports.damage_source_predicate = (0, primitives_1.as)('damage_source', (0, primitives_1.record)({
185
+ is_explosion: (0, primitives_1.opt)(primitives_1.boolean),
186
+ is_fire: (0, primitives_1.opt)(primitives_1.boolean),
187
+ is_magic: (0, primitives_1.opt)(primitives_1.boolean),
188
+ is_projectile: (0, primitives_1.opt)(primitives_1.boolean),
189
+ is_lightning: (0, primitives_1.opt)(primitives_1.boolean),
190
+ bypasses_armor: (0, primitives_1.opt)(primitives_1.boolean),
191
+ bypasses_invulnerability: (0, primitives_1.opt)(primitives_1.boolean),
192
+ bypasses_magic: (0, primitives_1.opt)(primitives_1.boolean),
193
+ source_entity: (0, primitives_1.opt)(exports.entity_predicate),
194
+ direct_entity: (0, primitives_1.opt)(exports.entity_predicate),
195
+ }));
196
+ exports.damage_predicate = (0, primitives_1.as)('damage', (0, primitives_1.record)({
197
+ dealt: (0, primitives_1.opt)(common_1.int_bounds),
198
+ taken: (0, primitives_1.opt)(common_1.int_bounds),
199
+ blocked: (0, primitives_1.opt)(primitives_1.boolean),
200
+ source_entity: (0, primitives_1.opt)(exports.entity_predicate),
201
+ type: (0, primitives_1.opt)(exports.damage_source_predicate),
202
+ }));
203
+ const entity = (0, primitives_1.any)([
204
+ exports.entity_predicate,
205
+ (0, primitives_1.listOf)((0, primitives_1.ref)(() => loot_table_1.predicate)),
206
+ ]);
207
+ exports.criterion = (0, primitives_1.as)('criterion', (0, primitives_1.dispatch)('trigger', (trigger, _, ctx) => (0, primitives_1.record)({
208
+ trigger: (0, primitives_1.resource)(Triggers(ctx)),
209
+ conditions: (0, primitives_1.opt)((0, primitives_1.dispatch)(props => (0, primitives_1.record)({
210
+ ...(0, util_1.versioned)(ctx, '1.16', (0, primitives_1.when)(trigger, ['impossible'], {}, {
211
+ player: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
212
+ })),
213
+ ...(0, primitives_1.pick)(trigger, {
214
+ bee_nest_destroyed: {
215
+ block: (0, primitives_1.opt)((0, primitives_1.resource)('block')),
216
+ item: (0, primitives_1.opt)(exports.item_predicate),
217
+ num_bees_inside: (0, primitives_1.opt)(primitives_1.int),
218
+ },
219
+ bred_animals: {
220
+ parent: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
221
+ partner: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
222
+ child: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
223
+ },
224
+ brewed_potion: {
225
+ potion: (0, primitives_1.opt)((0, primitives_1.resource)('potion')),
226
+ },
227
+ changed_dimension: {
228
+ from: (0, primitives_1.opt)((0, primitives_1.resource)('dimension')),
229
+ to: (0, primitives_1.opt)((0, primitives_1.resource)('dimension')),
230
+ },
231
+ channeled_lightning: {
232
+ victims: (0, primitives_1.opt)((0, primitives_1.listOf)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity))),
233
+ },
234
+ construct_beacon: {
235
+ level: (0, primitives_1.opt)(common_1.int_bounds),
236
+ },
237
+ consume_item: {
238
+ item: (0, primitives_1.opt)(exports.item_predicate),
239
+ },
240
+ cured_zombie_villager: {
241
+ villager: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
242
+ zombie: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
243
+ },
244
+ effects_changed: {
245
+ effects: (0, primitives_1.opt)((0, primitives_1.object)((0, primitives_1.resource)('mob_effect'), () => exports.mob_effect_predicate)),
246
+ source: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
247
+ },
248
+ enter_block: {
249
+ block: (0, primitives_1.opt)((0, primitives_1.resource)('block')),
250
+ state: (0, primitives_1.opt)((0, util_1.blockStateMap)({ id: (0, primitives_1.extract)('block', props) })),
251
+ },
252
+ enchanted_item: {
253
+ levels: (0, primitives_1.opt)(common_1.int_bounds),
254
+ item: (0, primitives_1.opt)(exports.item_predicate),
255
+ },
256
+ entity_hurt_player: {
257
+ damage: (0, primitives_1.opt)(exports.damage_predicate),
258
+ },
259
+ entity_killed_player: {
260
+ entity: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
261
+ killing_blow: (0, primitives_1.opt)(exports.damage_source_predicate),
262
+ },
263
+ fall_from_height: {
264
+ start_position: (0, primitives_1.opt)(exports.location_predicate),
265
+ distance: (0, primitives_1.opt)(exports.distance_predicate),
266
+ },
267
+ filled_bucket: {
268
+ item: (0, primitives_1.opt)(exports.item_predicate),
269
+ },
270
+ fishing_rod_hooked: {
271
+ entity: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
272
+ item: (0, primitives_1.opt)(exports.item_predicate),
273
+ },
274
+ hero_of_the_village: {
275
+ location: (0, primitives_1.opt)((0, util_1.versioned)(ctx, '1.16', exports.location_predicate)),
276
+ },
277
+ inventory_changed: {
278
+ slots: (0, primitives_1.opt)((0, primitives_1.record)({
279
+ empty: (0, primitives_1.opt)(common_1.int_bounds),
280
+ occupied: (0, primitives_1.opt)(common_1.int_bounds),
281
+ full: (0, primitives_1.opt)(common_1.int_bounds),
282
+ })),
283
+ items: (0, primitives_1.opt)((0, primitives_1.listOf)(exports.item_predicate)),
284
+ },
285
+ item_durability_changed: {
286
+ delta: (0, primitives_1.opt)(common_1.float_bounds),
287
+ durability: (0, primitives_1.opt)(common_1.float_bounds),
288
+ item: (0, primitives_1.opt)(exports.item_predicate),
289
+ },
290
+ item_used_on_block: {
291
+ item: (0, primitives_1.opt)(exports.item_predicate),
292
+ location: (0, primitives_1.opt)(exports.location_predicate),
293
+ },
294
+ killed_by_crossbow: {
295
+ unique_entity_types: (0, primitives_1.opt)(common_1.int_bounds),
296
+ victims: (0, primitives_1.opt)((0, primitives_1.listOf)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity))),
297
+ },
298
+ levitation: {
299
+ distance: (0, primitives_1.opt)(exports.distance_predicate),
300
+ duration: (0, primitives_1.opt)(common_1.float_bounds),
301
+ },
302
+ lightning_strike: {
303
+ lightning: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
304
+ bystander: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
305
+ },
306
+ location: {
307
+ location: (0, primitives_1.opt)((0, util_1.versioned)(ctx, '1.16', exports.location_predicate)),
308
+ },
309
+ nether_travel: {
310
+ ...(0, util_1.versioned)(ctx, {
311
+ entered: (0, primitives_1.opt)(exports.location_predicate),
312
+ }, '1.18', {
313
+ start_position: (0, primitives_1.opt)(exports.location_predicate),
314
+ }),
315
+ exited: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.location_predicate, '1.18')),
316
+ distance: (0, primitives_1.opt)(exports.distance_predicate),
317
+ },
318
+ placed_block: {
319
+ block: (0, primitives_1.opt)((0, primitives_1.resource)('block')),
320
+ state: (0, primitives_1.opt)((0, util_1.blockStateMap)({ id: (0, primitives_1.extract)('block', props) })),
321
+ item: (0, primitives_1.opt)(exports.item_predicate),
322
+ location: (0, primitives_1.opt)(exports.location_predicate),
323
+ },
324
+ player_generates_container_loot: {
325
+ loot_table: (0, primitives_1.resource)('loot_table'),
326
+ },
327
+ player_hurt_entity: {
328
+ damage: (0, primitives_1.opt)(exports.damage_predicate),
329
+ entity: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
330
+ },
331
+ player_interacted_with_entity: {
332
+ item: (0, primitives_1.opt)(exports.item_predicate),
333
+ entity: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
334
+ },
335
+ player_killed_entity: {
336
+ entity: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
337
+ killing_blow: (0, primitives_1.opt)(exports.damage_source_predicate),
338
+ },
339
+ recipe_unlocked: {
340
+ recipe: (0, primitives_1.resource)('recipe'),
341
+ },
342
+ ride_entity_in_lava: {
343
+ start_position: (0, primitives_1.opt)(exports.location_predicate),
344
+ distance: (0, primitives_1.opt)(exports.distance_predicate),
345
+ },
346
+ slept_in_bed: {
347
+ location: (0, primitives_1.opt)((0, util_1.versioned)(ctx, '1.16', exports.location_predicate)),
348
+ },
349
+ slide_down_block: {
350
+ block: (0, primitives_1.opt)((0, primitives_1.resource)('block')),
351
+ },
352
+ shot_crossbow: {
353
+ item: (0, primitives_1.opt)(exports.item_predicate),
354
+ },
355
+ summoned_entity: {
356
+ entity: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
357
+ },
358
+ tame_animal: {
359
+ entity: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
360
+ },
361
+ target_hit: {
362
+ projectile: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
363
+ shooter: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
364
+ signal_strength: (0, primitives_1.opt)(common_1.int_bounds),
365
+ },
366
+ thrown_item_picked_up_by_entity: {
367
+ entity: (0, primitives_1.opt)((0, util_1.versioned)(ctx, exports.entity_predicate, '1.16', entity)),
368
+ item: (0, primitives_1.opt)(exports.item_predicate),
369
+ },
370
+ used_ender_eye: {
371
+ distance: (0, primitives_1.opt)(common_1.float_bounds),
372
+ },
373
+ used_totem: {
374
+ item: (0, primitives_1.opt)(exports.item_predicate),
375
+ },
376
+ using_item: {
377
+ item: (0, primitives_1.opt)(exports.item_predicate),
378
+ },
379
+ villager_trade: {
380
+ villager: (0, primitives_1.opt)(exports.entity_predicate),
381
+ item: (0, primitives_1.opt)(exports.item_predicate),
382
+ },
383
+ voluntary_exile: {
384
+ location: (0, primitives_1.opt)((0, util_1.versioned)(ctx, '1.16', exports.location_predicate)),
385
+ },
386
+ }),
387
+ ...(0, primitives_1.when)(trigger, ['hero_of_the_village', 'location', 'slept_in_bed', 'voluntary_exile'], {
388
+ position: (0, primitives_1.opt)((0, util_1.deprecated)(ctx, '1.16', (0, primitives_1.record)({
389
+ x: (0, primitives_1.opt)(common_1.float_bounds),
390
+ y: (0, primitives_1.opt)(common_1.float_bounds),
391
+ z: (0, primitives_1.opt)(common_1.float_bounds),
392
+ }))),
393
+ biome: (0, primitives_1.opt)((0, util_1.deprecated)(ctx, '1.16', (0, primitives_1.resource)('worldgen/biome'))),
394
+ feature: (0, primitives_1.opt)((0, util_1.deprecated)(ctx, '1.16', primitives_1.simpleString)),
395
+ dimension: (0, primitives_1.opt)((0, util_1.deprecated)(ctx, '1.16', (0, primitives_1.resource)('dimension'))),
396
+ block: (0, primitives_1.opt)((0, util_1.deprecated)(ctx, '1.16', exports.block_predicate)),
397
+ fluid: (0, primitives_1.opt)((0, util_1.deprecated)(ctx, '1.16', exports.fluid_predicate)),
398
+ light: (0, primitives_1.opt)((0, util_1.deprecated)(ctx, '1.16', (0, primitives_1.record)({
399
+ light: common_1.int_bounds,
400
+ }))),
401
+ smokey: (0, primitives_1.opt)((0, util_1.deprecated)(ctx, '1.16', primitives_1.boolean)),
402
+ }),
403
+ }))),
404
+ })));
405
+ exports.advancement = (0, primitives_1.as)('advancement', (0, primitives_1.record)({
406
+ display: (0, primitives_1.opt)((0, primitives_1.record)({
407
+ icon: (0, primitives_1.dispatch)(props => (0, primitives_1.record)({
408
+ item: (0, primitives_1.resource)('item'),
409
+ nbt: (0, primitives_1.opt)((0, util_1.nbt)({ registry: 'item', id: (0, primitives_1.extract)('item', props) })),
410
+ })),
411
+ title: text_component_1.text_component,
412
+ description: text_component_1.text_component,
413
+ background: (0, primitives_1.opt)(primitives_1.simpleString),
414
+ frame: (0, primitives_1.opt)((0, primitives_1.literal)(['task', 'challenge', 'goal']), 'task'),
415
+ show_toast: (0, primitives_1.opt)(primitives_1.boolean, true),
416
+ announce_to_chat: (0, primitives_1.opt)(primitives_1.boolean, true),
417
+ hidden: (0, primitives_1.opt)(primitives_1.boolean, false),
418
+ })),
419
+ parent: (0, primitives_1.opt)((0, primitives_1.resource)('advancement')),
420
+ criteria: (0, primitives_1.object)((0, primitives_1.string)(undefined, undefined, (node, ctx) => {
421
+ // FIXME: Temporary solution to make tests pass when ensureChecked is not given.
422
+ if (!ctx.ensureChecked) {
423
+ return;
424
+ }
425
+ const parts = (0, binder_1.dissectUri)(ctx.doc.uri, ctx);
426
+ const advancement = `${parts?.namespace}:${parts?.identifier}`;
427
+ const criterion = node.value;
428
+ ctx.symbols.query(ctx.doc, 'advancement', advancement, criterion)
429
+ .enter({
430
+ data: { subcategory: 'criterion' },
431
+ usage: { type: 'definition', node },
432
+ });
433
+ }), () => exports.criterion),
434
+ requirements: (0, primitives_1.opt)((0, primitives_1.listOf)((0, primitives_1.listOf)((node, ctx) => {
435
+ // FIXME: Temporary solution to make tests pass when ensureChecked is not given.
436
+ if (!ctx.ensureChecked) {
437
+ return;
438
+ }
439
+ const parts = (0, binder_1.dissectUri)(ctx.doc.uri, ctx);
440
+ const advancement = `${parts?.namespace}:${parts?.identifier}`;
441
+ (0, util_1.criterionReference)(advancement)(node, ctx);
442
+ }))),
443
+ rewards: (0, primitives_1.opt)((0, primitives_1.record)({
444
+ function: (0, primitives_1.opt)((0, primitives_1.resource)('function')),
445
+ loot: (0, primitives_1.opt)((0, primitives_1.listOf)((0, primitives_1.resource)('loot_table'))),
446
+ recipes: (0, primitives_1.opt)((0, primitives_1.listOf)((0, primitives_1.resource)('recipe'))),
447
+ experience: (0, primitives_1.opt)(primitives_1.int),
448
+ })),
449
+ }));
450
+ //# sourceMappingURL=advancement.js.map
@@ -0,0 +1,4 @@
1
+ export declare const configured_surface_builder: import("@spyglassmc/json/lib/checker").JsonChecker;
2
+ export declare const configured_carver: import("@spyglassmc/json/lib/checker").JsonChecker;
3
+ export declare const biome: import("@spyglassmc/json/lib/checker").JsonChecker;
4
+ //# sourceMappingURL=biome.d.ts.map
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.biome = exports.configured_carver = exports.configured_surface_builder = void 0;
4
+ const primitives_1 = require("@spyglassmc/json/lib/checker/primitives");
5
+ const util_1 = require("../util");
6
+ const common_1 = require("./common");
7
+ const feature_1 = require("./feature");
8
+ const structure_1 = require("./structure");
9
+ const BiomeCategory = (ctx) => [
10
+ 'beach',
11
+ 'desert',
12
+ 'extreme_hills',
13
+ 'forest',
14
+ 'icy',
15
+ 'jungle',
16
+ 'mesa',
17
+ ...(0, util_1.versioned)(ctx, '1.18', ['mountain']),
18
+ 'mushroom',
19
+ 'nether',
20
+ 'none',
21
+ 'ocean',
22
+ 'plains',
23
+ 'river',
24
+ 'savanna',
25
+ 'swamp',
26
+ 'taiga',
27
+ 'the_end',
28
+ ...(0, util_1.versioned)(ctx, '1.17', ['underground']),
29
+ ];
30
+ const MobCategory = (ctx) => [
31
+ ...(0, util_1.versioned)(ctx, '1.18', ['axolotls']),
32
+ 'monster',
33
+ 'creature',
34
+ 'ambient',
35
+ 'water_creature',
36
+ 'water_ambient',
37
+ ...(0, util_1.versioned)(ctx, '1.17', ['underground_water_creature']),
38
+ 'misc',
39
+ ];
40
+ exports.configured_surface_builder = (0, primitives_1.as)('surface_builder', (0, primitives_1.record)({
41
+ type: (0, primitives_1.resource)('worldgen/surface_builder'),
42
+ config: (0, primitives_1.record)({
43
+ top_material: common_1.block_state,
44
+ under_material: common_1.block_state,
45
+ underwater_material: common_1.block_state,
46
+ }),
47
+ }));
48
+ exports.configured_carver = (0, primitives_1.as)('carver', (0, primitives_1.dispatch)('type', (type, _, ctx) => (0, primitives_1.record)({
49
+ type: (0, primitives_1.resource)('worldgen/carver'),
50
+ config: (0, primitives_1.record)({
51
+ probability: (0, primitives_1.floatRange)(0, 1),
52
+ ...(0, util_1.versioned)(ctx, '1.17', {
53
+ y: common_1.height_provider,
54
+ yScale: (0, common_1.floatProvider)(),
55
+ lava_level: common_1.vertical_anchor,
56
+ aquifers_enabled: (0, util_1.versioned)(ctx, primitives_1.boolean, '1.18'),
57
+ debug_settings: (0, primitives_1.opt)((0, primitives_1.record)({
58
+ debug_mode: (0, primitives_1.opt)(primitives_1.boolean),
59
+ air_state: (0, primitives_1.opt)(common_1.block_state),
60
+ water_state: (0, primitives_1.opt)(common_1.block_state),
61
+ lava_state: (0, primitives_1.opt)(common_1.block_state),
62
+ barrier_state: (0, primitives_1.opt)(common_1.block_state),
63
+ })),
64
+ ...(0, primitives_1.when)(type, ['cave', 'nether_cave', 'underwater_cave'], {
65
+ horizontal_radius_multiplier: (0, common_1.floatProvider)(),
66
+ vertical_radius_multiplier: (0, common_1.floatProvider)(),
67
+ floor_level: (0, common_1.floatProvider)(-1, 1),
68
+ }),
69
+ ...(0, primitives_1.when)(type, ['canyon', 'underwater_canyon'], {
70
+ vertical_rotation: (0, common_1.floatProvider)(),
71
+ shape: (0, primitives_1.record)({
72
+ distance_factor: (0, common_1.floatProvider)(),
73
+ thickness: (0, common_1.floatProvider)(),
74
+ width_smoothness: (0, primitives_1.intRange)(0, undefined),
75
+ horizontal_radius_factor: (0, common_1.floatProvider)(),
76
+ vertical_radius_default_factor: primitives_1.float,
77
+ vertical_radius_center_factor: primitives_1.float,
78
+ }),
79
+ }),
80
+ }),
81
+ }),
82
+ })));
83
+ exports.biome = (0, primitives_1.as)('biome', (0, primitives_1.dispatch)((props, ctx) => (0, primitives_1.record)({
84
+ ...(0, util_1.versioned)(ctx, {
85
+ depth: primitives_1.float,
86
+ scale: primitives_1.float,
87
+ }, '1.18'),
88
+ downfall: primitives_1.float,
89
+ temperature: primitives_1.float,
90
+ temperature_modifier: (0, primitives_1.opt)((0, primitives_1.literal)(['none', 'frozen'])),
91
+ precipitation: (0, primitives_1.literal)(['none', 'rain', 'snow']),
92
+ category: (0, primitives_1.literal)(BiomeCategory(ctx)),
93
+ effects: (0, primitives_1.record)({
94
+ sky_color: (0, util_1.intColor)(),
95
+ fog_color: (0, util_1.intColor)(),
96
+ water_color: (0, util_1.intColor)(),
97
+ water_fog_color: (0, util_1.intColor)(),
98
+ grass_color: (0, primitives_1.opt)((0, util_1.intColor)()),
99
+ foliage_color: (0, primitives_1.opt)((0, util_1.intColor)()),
100
+ grass_color_modifier: (0, primitives_1.opt)((0, primitives_1.literal)(['none', 'dark_forest', 'swamp'])),
101
+ particle: (0, primitives_1.opt)((0, primitives_1.record)({
102
+ options: (0, primitives_1.record)({
103
+ type: (0, primitives_1.resource)('particle_type'),
104
+ }),
105
+ probability: (0, primitives_1.floatRange)(0, 1),
106
+ })),
107
+ ambient_sound: (0, primitives_1.opt)((0, primitives_1.resource)('sound_event')),
108
+ mood_sound: (0, primitives_1.opt)((0, primitives_1.record)({
109
+ sound: (0, primitives_1.resource)('sound_event'),
110
+ tick_delay: primitives_1.int,
111
+ block_search_extent: primitives_1.int,
112
+ offset: primitives_1.float,
113
+ })),
114
+ additions_sound: (0, primitives_1.opt)((0, primitives_1.record)({
115
+ sound: (0, primitives_1.resource)('sound_event'),
116
+ tick_chance: (0, primitives_1.floatRange)(0, 1),
117
+ })),
118
+ music: (0, primitives_1.opt)((0, primitives_1.record)({
119
+ sound: (0, primitives_1.resource)('sound_event'),
120
+ min_delay: primitives_1.int,
121
+ max_delay: primitives_1.int,
122
+ replace_current_music: primitives_1.boolean,
123
+ })),
124
+ }),
125
+ player_spawn_friendly: (0, primitives_1.opt)((0, util_1.versioned)(ctx, primitives_1.boolean, '1.18')),
126
+ creature_spawn_probability: (0, primitives_1.opt)((0, primitives_1.floatRange)(0, 0.9999999)),
127
+ spawners: (0, primitives_1.object)((0, primitives_1.literal)(MobCategory(ctx)), () => (0, primitives_1.listOf)((0, primitives_1.record)({
128
+ type: (0, primitives_1.resource)('entity_type'),
129
+ weight: primitives_1.int,
130
+ minCount: primitives_1.int,
131
+ maxCount: primitives_1.int,
132
+ }))),
133
+ spawn_costs: (0, primitives_1.object)((0, primitives_1.resource)('entity_type'), () => (0, primitives_1.record)({
134
+ energy_budget: primitives_1.float,
135
+ charge: primitives_1.float,
136
+ })),
137
+ surface_builder: (0, util_1.versioned)(ctx, (0, primitives_1.any)([
138
+ (0, primitives_1.resource)('worldgen/configured_surface_builder'),
139
+ exports.configured_surface_builder,
140
+ ]), '1.18'),
141
+ carvers: (0, primitives_1.object)(['air', 'liquid'], () => (0, primitives_1.opt)((0, primitives_1.any)([
142
+ (0, primitives_1.listOf)((0, primitives_1.resource)('worldgen/configured_carver')),
143
+ (0, primitives_1.listOf)(exports.configured_carver),
144
+ ]))),
145
+ starts: (0, util_1.versioned)(ctx, (0, primitives_1.any)([
146
+ (0, primitives_1.listOf)((0, primitives_1.resource)('worldgen/configured_structure_feature')),
147
+ (0, primitives_1.listOf)(structure_1.configured_structure_feature),
148
+ ]), '1.18'),
149
+ features: (0, primitives_1.listOf)((0, util_1.versioned)(ctx, feature_1.configured_feature_list_ref, '1.18', feature_1.placed_feature_list_ref)),
150
+ })));
151
+ //# sourceMappingURL=biome.js.map
@@ -0,0 +1,22 @@
1
+ import type { JsonChecker } from '@spyglassmc/json/lib/checker/JsonChecker';
2
+ export declare const Y_SIZE: number;
3
+ export declare const MAX_Y: number;
4
+ export declare const MIN_Y: number;
5
+ export declare const number_provider: JsonChecker;
6
+ export declare const score_provider: JsonChecker;
7
+ export declare const nbt_provider: JsonChecker;
8
+ export declare const int_bounds: JsonChecker;
9
+ export declare const float_bounds: JsonChecker;
10
+ export declare const block_state: JsonChecker;
11
+ export declare const fluid_state: JsonChecker;
12
+ export declare const vertical_anchor: JsonChecker;
13
+ export declare const height_provider: JsonChecker;
14
+ export declare const floatProvider: (min?: number | undefined, max?: number | undefined) => JsonChecker;
15
+ export declare const intProvider: (min?: number | undefined, max?: number | undefined) => JsonChecker;
16
+ export declare const uniformInt: (min?: number | undefined, max?: number | undefined, maxSpread?: number | undefined) => JsonChecker;
17
+ export declare const inclusiveRange: (min?: number | undefined, max?: number | undefined) => JsonChecker;
18
+ export declare const noise_parameters: JsonChecker;
19
+ export declare const HeightmapType: string[];
20
+ export declare const Slots: string[];
21
+ export declare const Direction: string[];
22
+ //# sourceMappingURL=common.d.ts.map