@kradle/challenges-sdk 0.22.0 → 0.24.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 (43) hide show
  1. package/CHANGELOG.md +38 -1
  2. package/LLM_README.md +54 -15
  3. package/README.md +20 -2
  4. package/dist/engine.d.ts +2 -1
  5. package/dist/engine.d.ts.map +1 -1
  6. package/dist/engine.js +4 -1
  7. package/dist/engine.js.map +1 -1
  8. package/dist/index.d.ts +2 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +6 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/runtime/builder.d.ts.map +1 -1
  13. package/dist/runtime/builder.js +26 -6
  14. package/dist/runtime/builder.js.map +1 -1
  15. package/dist/runtime/dimensions.d.ts +24 -0
  16. package/dist/runtime/dimensions.d.ts.map +1 -0
  17. package/dist/runtime/dimensions.js +47 -0
  18. package/dist/runtime/dimensions.js.map +1 -0
  19. package/dist/runtime/reducer.d.ts.map +1 -1
  20. package/dist/runtime/reducer.js +98 -29
  21. package/dist/runtime/reducer.js.map +1 -1
  22. package/dist/runtime/types.d.ts +56 -6
  23. package/dist/runtime/types.d.ts.map +1 -1
  24. package/dist/runtime/types.js.map +1 -1
  25. package/dist/runtime/wire.d.ts +33 -2
  26. package/dist/runtime/wire.d.ts.map +1 -1
  27. package/dist/runtime/wire.js +2 -0
  28. package/dist/runtime/wire.js.map +1 -1
  29. package/dist/runtime/world.d.ts +87 -4
  30. package/dist/runtime/world.d.ts.map +1 -1
  31. package/dist/runtime/world.js +288 -23
  32. package/dist/runtime/world.js.map +1 -1
  33. package/dist/structures.d.ts.map +1 -1
  34. package/dist/structures.js +3 -1
  35. package/dist/structures.js.map +1 -1
  36. package/dist/test/harness.d.ts +13 -2
  37. package/dist/test/harness.d.ts.map +1 -1
  38. package/dist/test/harness.js +44 -9
  39. package/dist/test/harness.js.map +1 -1
  40. package/dist/test/helpers.d.ts.map +1 -1
  41. package/dist/test/helpers.js +2 -1
  42. package/dist/test/helpers.js.map +1 -1
  43. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -17,6 +17,41 @@ also hand-edit this file or the [Unreleased] section at any time.
17
17
 
18
18
  ## [Unreleased]
19
19
 
20
+ ## [0.24.0] - 2026-10-20
21
+
22
+ ### Added
23
+
24
+ - A game can enable the Nether and the End. Set `challengeConfig.dimensions` to a list of unique ids (`minecraft:overworld`, `minecraft:the_nether`, `minecraft:the_end`) with the Overworld first. The default enables the Overworld alone, and the world archive must contain every selected dimension.
25
+ - A position accepts `dimension`; an absent value means the Overworld. This covers blocks, containers, entities, teleports, zones, locations and structures. Use the player's position to keep an effect in the dimension the player is in.
26
+ - `DIMENSIONS`, `Dimension` and `OVERWORLD` are exported from `@kradle/challenges-sdk`.
27
+ - `dimensionChanged` reports a portal transition as `{ player, from, to }`. It does not consume a life and it does not disconnect the player; the inventory, the lives and the connection stay.
28
+ - `g.dimensionTime(dimension)` returns the observed time of day: `0` for the Overworld before the first sample, `undefined` for another dimension. `g.worldTime` stays the Overworld time.
29
+ - `g.time(value, dimension)`, `g.gamerule(rule, value, dimension)`, `g.killEntities(types, dimension)`, `g.worldBorder({ ...options, dimension })` and `g.command(cmd, name, dimension)` take a target dimension. An absent dimension targets the Overworld.
30
+ - `g.entities({ dimension })` restricts an entity search to one dimension.
31
+ - In tests, `game.loadChunk`, `game.unloadChunk` and `game.fillChunks` take a dimension, and `fake.moveTo`, `fake.enters` and `fake.exits` keep the player's dimension.
32
+
33
+ ### Changed
34
+
35
+ - The world defaults (the time of day, the daylight cycle, mob spawning, natural regeneration) apply to every enabled dimension. A game that enables the Overworld alone behaves as before.
36
+ - `defineChallenge` refuses an invalid dimension list with `bad_dimensions` and the path `challengeConfig.dimensions`, and a zone whose corners use different or disabled dimensions with `bad_zone` and the zone path.
37
+ - A box cannot cross dimensions. `g.fill`, `g.clone`, `g.inZone` with a box, `g.entities({ box })` and `g.regionLoaded` throw `invalid_value` with the category `api` for a box whose corners use two dimensions, and an effect that names a disabled dimension is refused. A position in another dimension is never inside a box, and the test helper `near` compares the dimensions first.
38
+ - `README.md` and `LLM_README.md` describe the dimensions: how to enable them, what carries a dimension, the per-dimension effects, the time reads and the `dimensionChanged` handler.
39
+
40
+ ## [0.23.0] - 2026-10-15
41
+
42
+ ### Added
43
+
44
+ - `entity.nbt` holds an entity's saved NBT, and `g.blockNbt(at)` returns a block entity's saved NBT, as `/data get` shows them. Both are available at setup and update on every tick, also after a command changes them. An entity's NBT leaves out the keys that its other fields carry (position, motion, rotation, uuid, custom name, tags, fire, air, passengers, effects, absorption); a block entity's NBT leaves out its id and position.
45
+ - `blockNbtChanged` reports a block entity's NBT changes.
46
+ - `entityChanged` and `blockNbtChanged` carry `changed`, the paths that changed (`health`, `nbt.data.score`, `nbt.Items[3].count`). Use `valueAt(root, path)` to read one and `changedUnder(changed, path)` to test a subtree, so a handler skips a counter in one line. A hook with no handler still costs nothing: the paths are built only for a handler.
47
+ - `valueAt` and `changedUnder` are exported from `@kradle/challenges-sdk`.
48
+ - In tests, use `game.entityNbt(id, nbt)` and `game.blockNbt(at, nbt)` to report NBT. They send the delta from the mirrored NBT, and they copy it, so a test can change and send the same object again.
49
+
50
+ ### Changed
51
+
52
+ - **Breaking:** `entityChanged` also fires when an entity's NBT changes. A counter such as a dropped item's `Age` can cause an event on each tick. A block entity change, such as a furnace counter, fires `blockNbtChanged`. Use `changedUnder(changed, path)` to check which fields changed.
53
+ - `README.md` and `LLM_README.md` describe the NBT reads, what each one leaves out, and the two events. The world reads still expose no command storage; a named command reads it.
54
+
20
55
  ## [0.22.0] - 2026-10-14
21
56
 
22
57
  ### Added
@@ -358,7 +393,9 @@ also hand-edit this file or the [Unreleased] section at any time.
358
393
  - Voting primitives (`votedFor`, `promptVote`, `allVotesIn`, `assignDefaultVotes`) for challenges that use discuss-then-vote-then-act phases as an alternative to pad-based voting.
359
394
  - Build-time validation of vote IDs and options against `KRADLE_CHALLENGE_VOTING_OPTIONS` (when set), matching the existing `getLocation`/`setEndState` pattern. `promptVote` also validates each announced option against the declared `votingOptions`.
360
395
 
361
- [Unreleased]: https://github.com/Kradle-ai/challenges-sdk/compare/v0.22.0...HEAD
396
+ [Unreleased]: https://github.com/Kradle-ai/challenges-sdk/compare/v0.24.0...HEAD
397
+ [0.24.0]: https://github.com/Kradle-ai/challenges-sdk/compare/v0.23.0...v0.24.0
398
+ [0.23.0]: https://github.com/Kradle-ai/challenges-sdk/compare/v0.22.0...v0.23.0
362
399
  [0.22.0]: https://github.com/Kradle-ai/challenges-sdk/compare/v0.21.1...v0.22.0
363
400
  [0.21.1]: https://github.com/Kradle-ai/challenges-sdk/compare/v0.21.0...v0.21.1
364
401
  [0.21.0]: https://github.com/Kradle-ai/challenges-sdk/compare/v0.20.0...v0.21.0
package/LLM_README.md CHANGED
@@ -10,17 +10,18 @@ This document is the API reference for AI agents that write Kradle challenges wi
10
10
  4. [defineChallenge API](#definechallenge-api)
11
11
  5. [The Steps](#the-steps)
12
12
  6. [Handlers](#handlers)
13
- 7. [The Context](#the-context)
14
- 8. [Players and Entities](#players-and-entities)
15
- 9. [Structures](#structures)
16
- 10. [Native dialogs](#native-dialogs)
17
- 11. [Constraints](#constraints)
18
- 12. [Testing](#testing)
19
- 13. [Build and Run](#build-and-run)
20
- 14. [Complete Examples](#complete-examples)
21
- 15. [Common Patterns](#common-patterns)
22
- 16. [Common Gotchas](#common-gotchas)
23
- 17. [Tips for LLMs](#tips-for-llms)
13
+ 7. [Dimensions](#dimensions)
14
+ 8. [The Context](#the-context)
15
+ 9. [Players and Entities](#players-and-entities)
16
+ 10. [Structures](#structures)
17
+ 11. [Native dialogs](#native-dialogs)
18
+ 12. [Constraints](#constraints)
19
+ 13. [Testing](#testing)
20
+ 14. [Build and Run](#build-and-run)
21
+ 15. [Complete Examples](#complete-examples)
22
+ 16. [Common Patterns](#common-patterns)
23
+ 17. [Common Gotchas](#common-gotchas)
24
+ 18. [Tips for LLMs](#tips-for-llms)
24
25
 
25
26
  ---
26
27
 
@@ -60,7 +61,7 @@ A challenge folder holds `challenge.ts` (the rules), `config.ts` (the metadata a
60
61
 
61
62
  **The stages.** `CONNECTING` until every participant is connected and has a position; then the initializers run, then `setup` (the world build, confirmed by the engine), then `PLAYING` (`start`, the phases, the handlers), then `OVER`.
62
63
 
63
- **The world mirror.** The engine streams the players, the entities, every loaded chunk, the block changes and the containers. The SDK keeps them in the state and answers `g.blockAt`, `g.entities`, `g.containerContents`, `g.players` from that mirror. Nothing is declared: the mirror holds everything the server has loaded.
64
+ **The world mirror.** The engine streams the players, the entities, every loaded chunk, the block changes, the containers and the NBT of the entities and the block entities. The SDK keeps them in the state and answers `g.blockAt`, `g.entities`, `g.containerContents`, `g.blockNbt`, `g.players` from that mirror. Nothing is declared: the mirror holds everything the server has loaded.
64
65
 
65
66
  **Effects.** `g.give`, `g.fill`, `g.teleport`, `g.say`... queue commands for the engine. They are applied on the next server tick and reported back as facts (a placed block comes back through the mirror). A refused effect arrives as `on.effectFailed`.
66
67
 
@@ -154,6 +155,7 @@ The steps register behavior and return the same challenge object. Use one chain
154
155
  | `tick(g)` | Every server tick. |
155
156
  | `joined`, `left` | `{ player }` |
156
157
  | `move` | `{ player, from, to }`: one per tick in which the player moved. |
158
+ | `dimensionChanged` | `{ player, from, to }`: the player enters another dimension. |
157
159
  | `damaged` | `{ player, amount, cause, attacker? }` |
158
160
  | `died` | `{ player, cause, killer? }` |
159
161
  | `respawned` | `{ player }` |
@@ -167,7 +169,8 @@ The steps register behavior and return the same challenge object. Use one chain
167
169
  | `dialogResponse` | `{ player, dialogId, buttonId, inputs }`: one valid response to the current native dialog. |
168
170
  | `animation` | `{ player, animation }`: `swing` or `swing_off`. |
169
171
  | `gamemode` | `{ player, gamemode }` |
170
- | `entitySpawned`, `entityChanged`, `entityRemoved` | `{ entity }`, `{ entity, was }`, `{ entity, cause, killer? }` |
172
+ | `entitySpawned`, `entityChanged`, `entityRemoved` | `{ entity }`, `{ entity, was, changed }` (also on every NBT change), `{ entity, cause, killer? }` |
173
+ | `blockNbtChanged` | `{ at, nbt, was, changed }`: a block entity's NBT changed (`nbt` is `undefined` when it is gone). |
171
174
  | `vote` | `{ player, voteId, option }`: accepted votes only; the option is typed by the vote id after `if (voteId === "room")`. |
172
175
  | `walkDone` | `{ player, ok }` |
173
176
  | `timer` | `{ name }` |
@@ -178,13 +181,49 @@ The steps register behavior and return the same challenge object. Use one chain
178
181
 
179
182
  ---
180
183
 
184
+ ## Dimensions
185
+
186
+ Dimensions use `minecraft:overworld`, `minecraft:the_nether`, and `minecraft:the_end`.
187
+ Set `challengeConfig.dimensions` to an array of unique IDs, with the Overworld first.
188
+ The default enables only the Overworld. The world archive must contain the selected dimensions.
189
+
190
+ A position accepts `dimension`; an absent value means the Overworld.
191
+ This applies to blocks, containers, entities, teleports, zones, locations, and structures.
192
+ A box and a clone must stay within one dimension. `g.entities({ dimension })` restricts an entity search.
193
+ World defaults apply to each enabled dimension.
194
+ `g.time(value, dimension)`, `g.gamerule(rule, value, dimension)`, and `g.killEntities(types, dimension)` accept a target dimension.
195
+ `g.worldBorder({ ...options, dimension })` and `g.command(command, name, dimension)` also accept a target dimension.
196
+ These methods target the Overworld when the dimension is absent.
197
+ `g.dimensionTime(dimension)` returns the observed time. Before the first sample, it returns `0` for the Overworld and `undefined` for other dimensions.
198
+ `g.worldTime` remains the Overworld time.
199
+ The `dimensionChanged` handler receives `{ player, from, to }`. It does not consume a life or emit a disconnect.
200
+
201
+ `defineChallenge` refuses invalid dimension lists with `bad_dimensions` and a `challengeConfig.dimensions` path.
202
+ It refuses zones with corners in different or disabled dimensions with `bad_zone` and the zone path.
203
+ A box that crosses dimensions in a rule throws `invalid_value` with category `api`.
204
+
181
205
  ## The Context
182
206
 
183
207
  `g` is the gameplay context. The read-only context (pure callbacks) has the reads only; the notification context (`onOver`) adds the messages and metrics; the setup context has everything but the phase, end, timer, vote, walk and batch calls.
184
208
 
185
209
  **Reads.** `g.state`, `g.params`, `g.players`, `g.activePlayers`, `g.player(name)`, `g.playersWithRole(role)`, `g.playerWithRole(role)` (throws unless exactly one), `g.tick`, `g.elapsed` (ticks since start), `g.status`, `g.phase` (`null` without phases), `g.phaseEntry`, `g.phaseElapsed`, `g.phaseRemaining` (`null` without a duration), `g.location(name)`, `g.inZone(player, zone | box)`, `g.countItems(player, item)`, `g.worldTime`.
186
210
 
187
- **The mirror.** `g.blockAt(at)` (the id, `undefined` outside the loaded chunks), `g.blockStateAt(at)` (`{ id, props }`), `g.blockMatches(at, match)` (throws `block_unknown` outside the loaded chunks), `g.blockCount(box, match, { partial? })` and `g.findBlocks(box, match, { limit?, partial? })` (they throw when a chunk of the box is not loaded, unless `partial`), `g.regionLoaded(box)`, `g.entities({ box?, type?, tag? })`, `g.entity(id)`, `g.containerContents(at)` (any container the mirror holds). A `match` is an id (any state), `{ id, props }` (the given props must match), or a function over the state.
211
+ **The mirror.** `g.blockAt(at)` (the id, `undefined` outside the loaded chunks), `g.blockStateAt(at)` (`{ id, props }`), `g.blockMatches(at, match)` (throws `block_unknown` outside the loaded chunks), `g.blockCount(box, match, { partial? })` and `g.findBlocks(box, match, { limit?, partial? })` (they throw when a chunk of the box is not loaded, unless `partial`), `g.regionLoaded(box)`, `g.entities({ box?, type?, tag? })`, `g.entity(id)`, `g.containerContents(at)` (any container the mirror holds), `g.blockNbt(at)` (the NBT of a block entity). A `match` is an id (any state), `{ id, props }` (the given props must match), or a function over the state.
212
+
213
+ **NBT.** `entity.nbt` is the saved NBT of an entity, and `g.blockNbt(at)` is the saved NBT of a block entity (a chest, a sign, a furnace), as `/data get` shows them. A number has no type suffix, and a byte boolean is `0` or `1`. An entity's NBT leaves out the keys that its other fields carry (position, motion, rotation, uuid, custom name, tags, fire, air, passengers, effects, absorption); a block entity's NBT leaves out its id and position. Every other key is there, also a key that changes on every tick (a TNT's `fuse`, a furnace's `cooking_time_spent`, an item's `Age`). The NBT is there at setup and stays current on every tick, also after a command changed it: `g.command("data merge entity @e[tag=flag,limit=1] {data:{taken:1b}}")` shows in `entity.nbt.data.taken` a tick later. An NBT change fires `entityChanged` for an entity and `blockNbtChanged` for a block entity, also for a key that counts on every tick (a dropped item fires on every tick for its `Age`). `changed` lists the paths that changed: a field (`health`, `tags`) or an NBT leaf (`nbt.data.score`, `nbt.Items[3].count`; a key that is not a plain name is quoted, `nbt["Paper.Delay"]`). For a block entity the paths start at its NBT (`Items[3].count`), and `""` is the whole NBT (the first sight, or the block entity is gone). `valueAt(root, path)` reads the new value (from the entity, or from the block's `nbt`), and `changedUnder(changed, path)` tells whether a change touches a subtree.
214
+
215
+ ```ts
216
+ // no-compile
217
+ const flag = g.entities({ tag: "flag" })[0];
218
+ const taken = (flag?.nbt?.data as { taken?: number } | undefined)?.taken === 1;
219
+ const signText = g.blockNbt({ x: 3, y: 64, z: 7 })?.front_text;
220
+
221
+ // In .on({ ... }):
222
+ entityChanged(g, { entity, changed }) {
223
+ if (!changedUnder(changed, "nbt.data")) return; // skips a counter such as `nbt.Age`
224
+ const score = valueAt(entity, "nbt.data.score");
225
+ },
226
+ ```
188
227
 
189
228
  **Votes.** `g.votes(id)` (voter to option), `g.vote(player, id)`, `g.voteOpen(id)`, `g.tally(id)` (`{ counts, leaders, abstaining }`); `g.openVote(id)` (a new round; throws `vote_open` on an open round), `g.closeVote(id)`, `g.resetVote(id)`. A round is closed until opened. An eliminated player's vote is refused unless `allowEliminated`; the `player` vote (`skills.voteForPlayer`) excludes the voter unless `allowSelf`.
190
229
 
@@ -224,7 +263,7 @@ It also supports the existing gameplay and block commands.
224
263
  Vanilla command syntax and rules still apply.
225
264
  Block and container changes reach the world observations, including closed containers, jukeboxes, lecterns, chiseled bookshelves, and decorated pots.
226
265
  The typed `g.container` method does not accept jukeboxes, lecterns, chiseled bookshelves, or decorated pots.
227
- The observations do not expose arbitrary NBT or command storage; a named command can read them.
266
+ The world reads expose the NBT of the entities (`entity.nbt`) and of the block entities (`g.blockNbt(at)`). They do not expose command storage; a named command can read it.
228
267
  Native Minecraft clients show raw dialogs. Use `g.dialog` for button and input responses; text agents do not receive dialogs.
229
268
  The printed text of a command does not return to the challenge. To read what a command returned, give it a name: `g.command(cmd, name)`.
230
269
  `on.commandResult` then reports `{ name, ok, value?, error? }` on a later event.
package/README.md CHANGED
@@ -146,11 +146,15 @@ the state; the SDK answers from that mirror:
146
146
  - `g.blockCount(box, match)`, `g.findBlocks(box, match)`: they throw when a chunk of the box is not loaded, unless `{ partial: true }`
147
147
  - `g.entities({ box?, type?, tag? })`, `g.entity(id)`: all non-player entities in loaded chunks, available before setup
148
148
  - `g.containerContents(at)`: any chest or other container the mirror holds
149
+ - `entity.nbt`, `g.blockNbt(at)`: the saved NBT of an entity or a block entity, as `/data get` shows it, current on every tick
149
150
  - `p.pos`, `p.inventory`, `p.zones`; `g.inZone(p, zone)`, `g.countItems(p, item)`
150
151
 
151
152
  The handlers report the changes: `blockPlaced`, `blockBroken`, `blocksChanged`
152
153
  (every cause, a fill or a clone as one entry), `container`, `inventory`, `move`,
153
- `zoneEntered`, `zoneLeft`, `entitySpawned`, `entityChanged`, `entityRemoved`.
154
+ `zoneEntered`, `zoneLeft`, `entitySpawned`, `entityChanged`, `entityRemoved`,
155
+ `blockNbtChanged`. `entityChanged` and `blockNbtChanged` carry `changed`, the paths
156
+ that changed (`health`, `nbt.data.score`); `valueAt(root, path)` reads one and
157
+ `changedUnder(changed, path)` tests a subtree.
154
158
 
155
159
  ### Structures
156
160
 
@@ -215,7 +219,7 @@ It also supports the existing gameplay and block commands.
215
219
  Vanilla command syntax and rules still apply.
216
220
  Block and container changes reach the world observations, including closed containers, jukeboxes, lecterns, chiseled bookshelves, and decorated pots.
217
221
  The typed `g.container` method does not accept jukeboxes, lecterns, chiseled bookshelves, or decorated pots.
218
- The observations do not expose arbitrary NBT or command storage; a named command can read them.
222
+ The world reads expose the NBT of the entities (`entity.nbt`) and of the block entities (`g.blockNbt(at)`). They do not expose command storage; a named command can read it.
219
223
  Native Minecraft clients show raw dialogs. Use `g.dialog` for button and input responses; text agents do not receive dialogs.
220
224
  The printed text of a command does not return to the challenge. To read what a command returned, give it a name: `g.command(cmd, name)`.
221
225
  `on.commandResult` then reports `{ name, ok, value?, error? }` on a later event.
@@ -320,3 +324,17 @@ Use the typed methods for a dialog that needs responses. Do not mix raw dialog c
320
324
  For a harness test, declare a human with `{ role: "player", human: true }` in `game.begin`.
321
325
  Use `game.dialogResponse(playerName, buttonId, inputs)` to submit a response to the current dialog.
322
326
  Use `game.dispatch` with a `dialog_response` event to check old or malformed responses.
327
+
328
+ ## Nether and End
329
+
330
+ Set `challengeConfig.dimensions` to enable dimensions for a game.
331
+ The list must start with `minecraft:overworld`. It can also contain `minecraft:the_nether` and `minecraft:the_end`.
332
+ The world archive must contain each selected dimension. Games use only the Overworld when the field is absent.
333
+
334
+ Positions can contain a `dimension` field. A position without this field refers to the Overworld.
335
+ Use the player position to keep an effect in the player's current dimension.
336
+ Boxes cannot cross dimensions. Portals preserve the player's inventory, lives, and connection to the game.
337
+ The `dimensionChanged` handler reports a portal transition.
338
+
339
+ Invalid dimension lists and zone dimensions fail when `defineChallenge` runs. The error includes the affected field path.
340
+ A box cannot cross dimensions; an invalid box in a rule gives an API error.
package/dist/engine.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  export type { AnyChallenge } from "./runtime/builder.js";
2
+ export type { DialogSpec, DialogValues } from "./runtime/dialog.js";
3
+ export { DIMENSIONS, type Dimension, OVERWORLD } from "./runtime/dimensions.js";
2
4
  export { ChallengeError, categoryOf, type ErrorCategory } from "./runtime/errors.js";
3
5
  export { assertJson, MAX_BATCH_EFFECTS, MAX_FILL_VOLUME, parseBlockState, type State, splitBatches, } from "./runtime/reducer.js";
4
6
  export { type Duration, type Ticks, toTicks } from "./runtime/time.js";
5
7
  export type { Action, BlockId, Box, Capability, ChatColor, ChatText, ContainerItem, Effect, EffectId, EndReason, EngineChallenge, EntityTypeId, Event, GameMode, GateEffect, ItemId, ItemMeta, ItemStack, Json, ManifestVote, Participant, PlayerSample, RuntimeManifest, SdkEndState, SlotChange, Status, TextComponent, TitleTimes, Vec3, } from "./runtime/wire.js";
6
8
  export { ALL_CAPABILITIES, MINECRAFT_TARGET } from "./runtime/wire.js";
7
9
  export type { ChunkMessage, Entity, EntityMove, Equipment, EquipmentChange, EquipmentSlot, Equipped, WorldState, } from "./runtime/world.js";
8
- export type { DialogSpec, DialogValues } from "./runtime/dialog.js";
9
10
  //# sourceMappingURL=engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EACN,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,KAAK,KAAK,EACV,YAAY,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvE,YAAY,EACX,MAAM,EACN,OAAO,EACP,GAAG,EACH,UAAU,EACV,SAAS,EACT,QAAQ,EACR,aAAa,EACb,MAAM,EACN,QAAQ,EACR,SAAS,EACT,eAAe,EACf,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,UAAU,EACV,MAAM,EACN,aAAa,EACb,UAAU,EACV,IAAI,GACJ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,YAAY,EACX,YAAY,EACZ,MAAM,EACN,UAAU,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,QAAQ,EACR,UAAU,GACV,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EACN,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,KAAK,KAAK,EACV,YAAY,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvE,YAAY,EACX,MAAM,EACN,OAAO,EACP,GAAG,EACH,UAAU,EACV,SAAS,EACT,QAAQ,EACR,aAAa,EACb,MAAM,EACN,QAAQ,EACR,SAAS,EACT,eAAe,EACf,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,UAAU,EACV,MAAM,EACN,aAAa,EACb,UAAU,EACV,IAAI,GACJ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,YAAY,EACX,YAAY,EACZ,MAAM,EACN,UAAU,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,QAAQ,EACR,UAAU,GACV,MAAM,oBAAoB,CAAC"}
package/dist/engine.js CHANGED
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MINECRAFT_TARGET = exports.ALL_CAPABILITIES = exports.toTicks = exports.splitBatches = exports.parseBlockState = exports.MAX_FILL_VOLUME = exports.MAX_BATCH_EFFECTS = exports.assertJson = exports.categoryOf = exports.ChallengeError = void 0;
3
+ exports.MINECRAFT_TARGET = exports.ALL_CAPABILITIES = exports.toTicks = exports.splitBatches = exports.parseBlockState = exports.MAX_FILL_VOLUME = exports.MAX_BATCH_EFFECTS = exports.assertJson = exports.categoryOf = exports.ChallengeError = exports.OVERWORLD = exports.DIMENSIONS = void 0;
4
+ var dimensions_js_1 = require("./runtime/dimensions.js");
5
+ Object.defineProperty(exports, "DIMENSIONS", { enumerable: true, get: function () { return dimensions_js_1.DIMENSIONS; } });
6
+ Object.defineProperty(exports, "OVERWORLD", { enumerable: true, get: function () { return dimensions_js_1.OVERWORLD; } });
4
7
  var errors_js_1 = require("./runtime/errors.js");
5
8
  Object.defineProperty(exports, "ChallengeError", { enumerable: true, get: function () { return errors_js_1.ChallengeError; } });
6
9
  Object.defineProperty(exports, "categoryOf", { enumerable: true, get: function () { return errors_js_1.categoryOf; } });
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":";;;AAGA,iDAAqF;AAA5E,2GAAA,cAAc,OAAA;AAAE,uGAAA,UAAU,OAAA;AACnC,mDAO8B;AAN7B,wGAAA,UAAU,OAAA;AACV,+GAAA,iBAAiB,OAAA;AACjB,6GAAA,eAAe,OAAA;AACf,6GAAA,eAAe,OAAA;AAEf,0GAAA,YAAY,OAAA;AAEb,6CAAuE;AAAnC,kGAAA,OAAO,OAAA;AAgC3C,6CAAuE;AAA9D,2GAAA,gBAAgB,OAAA;AAAE,2GAAA,gBAAgB,OAAA"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":";;;AAIA,yDAAgF;AAAvE,2GAAA,UAAU,OAAA;AAAkB,0GAAA,SAAS,OAAA;AAC9C,iDAAqF;AAA5E,2GAAA,cAAc,OAAA;AAAE,uGAAA,UAAU,OAAA;AACnC,mDAO8B;AAN7B,wGAAA,UAAU,OAAA;AACV,+GAAA,iBAAiB,OAAA;AACjB,6GAAA,eAAe,OAAA;AACf,6GAAA,eAAe,OAAA;AAEf,0GAAA,YAAY,OAAA;AAEb,6CAAuE;AAAnC,kGAAA,OAAO,OAAA;AAgC3C,6CAAuE;AAA9D,2GAAA,gBAAgB,OAAA;AAAE,2GAAA,gBAAgB,OAAA"}
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export type { BlockMatch, BlockPos, BlockSpec, BlockState, ChallengeApi, Challen
7
7
  export { PLAYER_VOTE, WORLD_DEFAULTS } from "./runtime/types.js";
8
8
  export type { BlockId, Box, ChatColor, ChatText, EffectId, EndReason, EntityTypeId, GameMode, ItemId, ItemMeta, ItemStack, Json, SdkEndState, Status, TextComponent, Vec3, } from "./runtime/wire.js";
9
9
  export { MINECRAFT_TARGET } from "./runtime/wire.js";
10
- export { blockIdOf, bounds, type Entity, type EntityFilter, type Equipment, inBox } from "./runtime/world.js";
10
+ export { blockIdOf, bounds, changedUnder, type Entity, type EntityFilter, type Equipment, inBox, valueAt, } from "./runtime/world.js";
11
11
  import type { BlockPos } from "./runtime/types.js";
12
12
  import type { Vec3 } from "./runtime/wire.js";
13
13
  /** The integer block position of a continuous position: each axis floored. */
@@ -19,4 +19,5 @@ export declare const above: (at: Vec3) => BlockPos;
19
19
  /** `at` moved by `d` on each axis. */
20
20
  export declare const offset: (at: Vec3, d: Partial<Vec3>) => Vec3;
21
21
  export type { Dialog, DialogInput, DialogValues } from "./runtime/dialog.js";
22
+ export { DIMENSIONS, type Dimension, OVERWORLD } from "./runtime/dimensions.js";
22
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACN,WAAW,EACX,SAAS,EACT,SAAS,EACT,KAAK,QAAQ,EACb,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,KAAK,EACV,KAAK,EACL,OAAO,GACP,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,UAAU,EACV,YAAY,EACZ,eAAe,EACf,GAAG,EACH,KAAK,EACL,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,EACX,cAAc,EACd,SAAS,EACT,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,EACT,UAAU,EACV,YAAY,EACZ,MAAM,EACN,MAAM,EACN,MAAM,EACN,QAAQ,EACR,UAAU,EACV,SAAS,EACT,YAAY,EACZ,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,KAAK,GACL,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjE,YAAY,EACX,OAAO,EACP,GAAG,EACH,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,WAAW,EACX,MAAM,EACN,aAAa,EACb,IAAI,GACJ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE9G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,8EAA8E;AAC9E,eAAO,MAAM,UAAU,GAAI,GAAG,IAAI,KAAG,QAA4E,CAAC;AAClH,iGAAiG;AACjG,eAAO,MAAM,KAAK,GAAI,IAAI,IAAI,KAAG,QAAmF,CAAC;AACrH,wCAAwC;AACxC,eAAO,MAAM,KAAK,GAAI,IAAI,IAAI,KAAG,QAAmF,CAAC;AACrH,sCAAsC;AACtC,eAAO,MAAM,MAAM,GAAI,IAAI,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAG,IAIlD,CAAC;AAEH,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACN,WAAW,EACX,SAAS,EACT,SAAS,EACT,KAAK,QAAQ,EACb,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,KAAK,EACV,KAAK,EACL,OAAO,GACP,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,UAAU,EACV,YAAY,EACZ,eAAe,EACf,GAAG,EACH,KAAK,EACL,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,EACX,cAAc,EACd,SAAS,EACT,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,EACT,UAAU,EACV,YAAY,EACZ,MAAM,EACN,MAAM,EACN,MAAM,EACN,QAAQ,EACR,UAAU,EACV,SAAS,EACT,YAAY,EACZ,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,KAAK,GACL,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjE,YAAY,EACX,OAAO,EACP,GAAG,EACH,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,WAAW,EACX,MAAM,EACN,aAAa,EACb,IAAI,GACJ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACN,SAAS,EACT,MAAM,EACN,YAAY,EACZ,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,EACL,OAAO,GACP,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,8EAA8E;AAC9E,eAAO,MAAM,UAAU,GAAI,GAAG,IAAI,KAAG,QAA4E,CAAC;AAClH,iGAAiG;AACjG,eAAO,MAAM,KAAK,GAAI,IAAI,IAAI,KAAG,QAAmF,CAAC;AACrH,wCAAwC;AACxC,eAAO,MAAM,KAAK,GAAI,IAAI,IAAI,KAAG,QAAmF,CAAC;AACrH,sCAAsC;AACtC,eAAO,MAAM,MAAM,GAAI,IAAI,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAG,IAIlD,CAAC;AAEH,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.offset = exports.above = exports.below = exports.toBlockPos = exports.inBox = exports.bounds = exports.blockIdOf = exports.MINECRAFT_TARGET = exports.WORLD_DEFAULTS = exports.PLAYER_VOTE = exports.toTicks = exports.ticks = exports.TICKS_PER_SECOND = exports.subtractDuration = exports.seconds = exports.minutes = exports.asSeconds = exports.asMinutes = exports.addDuration = exports.winBy = exports.MAX_TRANSITIONS_PER_EVENT = exports.MAX_FILL_VOLUME = exports.MAX_BATCH_EFFECTS = exports.ChallengeError = exports.defineChallenge = void 0;
3
+ exports.OVERWORLD = exports.DIMENSIONS = exports.offset = exports.above = exports.below = exports.toBlockPos = exports.valueAt = exports.inBox = exports.changedUnder = exports.bounds = exports.blockIdOf = exports.MINECRAFT_TARGET = exports.WORLD_DEFAULTS = exports.PLAYER_VOTE = exports.toTicks = exports.ticks = exports.TICKS_PER_SECOND = exports.subtractDuration = exports.seconds = exports.minutes = exports.asSeconds = exports.asMinutes = exports.addDuration = exports.winBy = exports.MAX_TRANSITIONS_PER_EVENT = exports.MAX_FILL_VOLUME = exports.MAX_BATCH_EFFECTS = exports.ChallengeError = exports.defineChallenge = void 0;
4
4
  // The author API: `@kradle/challenges-sdk`. The engine protocol is `@kradle/challenges-sdk/engine`,
5
5
  // the test kit `@kradle/challenges-sdk/test`.
6
6
  var builder_js_1 = require("./runtime/builder.js");
@@ -31,7 +31,9 @@ Object.defineProperty(exports, "MINECRAFT_TARGET", { enumerable: true, get: func
31
31
  var world_js_1 = require("./runtime/world.js");
32
32
  Object.defineProperty(exports, "blockIdOf", { enumerable: true, get: function () { return world_js_1.blockIdOf; } });
33
33
  Object.defineProperty(exports, "bounds", { enumerable: true, get: function () { return world_js_1.bounds; } });
34
+ Object.defineProperty(exports, "changedUnder", { enumerable: true, get: function () { return world_js_1.changedUnder; } });
34
35
  Object.defineProperty(exports, "inBox", { enumerable: true, get: function () { return world_js_1.inBox; } });
36
+ Object.defineProperty(exports, "valueAt", { enumerable: true, get: function () { return world_js_1.valueAt; } });
35
37
  /** The integer block position of a continuous position: each axis floored. */
36
38
  const toBlockPos = (v) => ({ x: Math.floor(v.x), y: Math.floor(v.y), z: Math.floor(v.z) });
37
39
  exports.toBlockPos = toBlockPos;
@@ -48,4 +50,7 @@ const offset = (at, d) => ({
48
50
  z: at.z + (d.z ?? 0),
49
51
  });
50
52
  exports.offset = offset;
53
+ var dimensions_js_1 = require("./runtime/dimensions.js");
54
+ Object.defineProperty(exports, "DIMENSIONS", { enumerable: true, get: function () { return dimensions_js_1.DIMENSIONS; } });
55
+ Object.defineProperty(exports, "OVERWORLD", { enumerable: true, get: function () { return dimensions_js_1.OVERWORLD; } });
51
56
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oGAAoG;AACpG,8CAA8C;AAC9C,mDAA0F;AAA9C,6GAAA,eAAe,OAAA;AAC3D,iDAAyE;AAAhE,2GAAA,cAAc,OAAA;AACvB,mDAAqG;AAA5F,+GAAA,iBAAiB,OAAA;AAAE,6GAAA,eAAe,OAAA;AAAE,uHAAA,yBAAyB,OAAA;AACtE,+CAA2C;AAAlC,iGAAA,KAAK,OAAA;AACd,6CAY2B;AAX1B,sGAAA,WAAW,OAAA;AACX,oGAAA,SAAS,OAAA;AACT,oGAAA,SAAS,OAAA;AAET,kGAAA,OAAO,OAAA;AACP,kGAAA,OAAO,OAAA;AACP,2GAAA,gBAAgB,OAAA;AAChB,2GAAA,gBAAgB,OAAA;AAEhB,gGAAA,KAAK,OAAA;AACL,kGAAA,OAAO,OAAA;AAkDR,+CAAiE;AAAxD,uGAAA,WAAW,OAAA;AAAE,0GAAA,cAAc,OAAA;AAmBpC,6CAAqD;AAA5C,2GAAA,gBAAgB,OAAA;AACzB,+CAA8G;AAArG,qGAAA,SAAS,OAAA;AAAE,kGAAA,MAAM,OAAA;AAAkD,iGAAA,KAAK,OAAA;AAIjF,8EAA8E;AACvE,MAAM,UAAU,GAAG,CAAC,CAAO,EAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAArG,QAAA,UAAU,cAA2F;AAClH,iGAAiG;AAC1F,MAAM,KAAK,GAAG,CAAC,EAAQ,EAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAAxG,QAAA,KAAK,SAAmG;AACrH,wCAAwC;AACjC,MAAM,KAAK,GAAG,CAAC,EAAQ,EAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAAxG,QAAA,KAAK,SAAmG;AACrH,sCAAsC;AAC/B,MAAM,MAAM,GAAG,CAAC,EAAQ,EAAE,CAAgB,EAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;CACpB,CAAC,CAAC;AAJU,QAAA,MAAM,UAIhB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oGAAoG;AACpG,8CAA8C;AAC9C,mDAA0F;AAA9C,6GAAA,eAAe,OAAA;AAC3D,iDAAyE;AAAhE,2GAAA,cAAc,OAAA;AACvB,mDAAqG;AAA5F,+GAAA,iBAAiB,OAAA;AAAE,6GAAA,eAAe,OAAA;AAAE,uHAAA,yBAAyB,OAAA;AACtE,+CAA2C;AAAlC,iGAAA,KAAK,OAAA;AACd,6CAY2B;AAX1B,sGAAA,WAAW,OAAA;AACX,oGAAA,SAAS,OAAA;AACT,oGAAA,SAAS,OAAA;AAET,kGAAA,OAAO,OAAA;AACP,kGAAA,OAAO,OAAA;AACP,2GAAA,gBAAgB,OAAA;AAChB,2GAAA,gBAAgB,OAAA;AAEhB,gGAAA,KAAK,OAAA;AACL,kGAAA,OAAO,OAAA;AAkDR,+CAAiE;AAAxD,uGAAA,WAAW,OAAA;AAAE,0GAAA,cAAc,OAAA;AAmBpC,6CAAqD;AAA5C,2GAAA,gBAAgB,OAAA;AACzB,+CAS4B;AAR3B,qGAAA,SAAS,OAAA;AACT,kGAAA,MAAM,OAAA;AACN,wGAAA,YAAY,OAAA;AAIZ,iGAAA,KAAK,OAAA;AACL,mGAAA,OAAO,OAAA;AAKR,8EAA8E;AACvE,MAAM,UAAU,GAAG,CAAC,CAAO,EAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAArG,QAAA,UAAU,cAA2F;AAClH,iGAAiG;AAC1F,MAAM,KAAK,GAAG,CAAC,EAAQ,EAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAAxG,QAAA,KAAK,SAAmG;AACrH,wCAAwC;AACjC,MAAM,KAAK,GAAG,CAAC,EAAQ,EAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAAxG,QAAA,KAAK,SAAmG;AACrH,sCAAsC;AAC/B,MAAM,MAAM,GAAG,CAAC,EAAQ,EAAE,CAAgB,EAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;CACpB,CAAC,CAAC;AAJU,QAAA,MAAM,UAIhB;AAGH,yDAAgF;AAAvE,2GAAA,UAAU,OAAA;AAAkB,0GAAA,SAAS,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/runtime/builder.ts"],"names":[],"mappings":"AAYA,OAAO,EAAwF,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AAEhI,OAAO,KAAK,EACX,YAAY,EACZ,eAAe,EACf,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,SAAS,EACT,SAAS,EACT,cAAc,EACd,SAAS,EAET,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,MAAM,EAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAKrE,mGAAmG;AACnG,MAAM,WAAW,SAAS,CACzB,CAAC,SAAS,eAAe,EACzB,CAAC,EACD,EAAE,SAAS,SAAS,CAAC,CAAC,CAAC,EACvB,EAAE,SAAS,MAAM,EACjB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,SAAS,CAClB,SAAQ,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5C,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,iEAAiE;IACjE,IAAI,IAAI,KAAK,CAAC;IACd,2FAA2F;IAC3F,MAAM,CACL,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,GACV;QACF,0DAA0D;QAC1D,KAAK,EAAE,KAAK,CAAC;QACb,8CAA8C;QAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;AAyH9I;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,KAAK,CAAC,CAAC,SAAS,eAAe,EAC/B,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACxC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACxC,EAAE,SAAS,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EACrE,KAAK,CAAC,EAAE,SAAS,MAAM,GAAG,KAAK,EAC/B,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,EAC9B,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,EAC9B,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAC/C,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAoMzG;AAED,KAAK,OAAO,CAAC,CAAC,SAAS,eAAe,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;AAGpE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/runtime/builder.ts"],"names":[],"mappings":"AAcA,OAAO,EAMN,KAAK,KAAK,EACV,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EACX,YAAY,EACZ,eAAe,EACf,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,SAAS,EACT,SAAS,EACT,cAAc,EACd,SAAS,EAET,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,MAAM,EAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAKrE,mGAAmG;AACnG,MAAM,WAAW,SAAS,CACzB,CAAC,SAAS,eAAe,EACzB,CAAC,EACD,EAAE,SAAS,SAAS,CAAC,CAAC,CAAC,EACvB,EAAE,SAAS,MAAM,EACjB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,SAAS,CAClB,SAAQ,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5C,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,iEAAiE;IACjE,IAAI,IAAI,KAAK,CAAC;IACd,2FAA2F;IAC3F,MAAM,CACL,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,GACV;QACF,0DAA0D;QAC1D,KAAK,EAAE,KAAK,CAAC;QACb,8CAA8C;QAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,CAC9B,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5C,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAC9D,CAAC;AAiJF;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,KAAK,CAAC,CAAC,SAAS,eAAe,EAC/B,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACxC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACxC,EAAE,SAAS,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EACrE,KAAK,CAAC,EAAE,SAAS,MAAM,GAAG,KAAK,EAC/B,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,EAC9B,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,EAC9B,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAC/C,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CA8MzG;AAED,KAAK,OAAO,CAAC,CAAC,SAAS,eAAe,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;AAGpE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -1,4 +1,7 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineChallenge = defineChallenge;
4
+ const dimensions_js_1 = require("./dimensions.js");
2
5
  // `defineChallenge(config, decl)`: the challenge object an author builds with
3
6
  // steps (`.setup`, `.start`, `.phase`, `.on`, `.outcome`, ...). The root
4
7
  // declaration fixes every literal type; the steps register behavior and return
@@ -9,8 +12,6 @@
9
12
  // `manifest` (the loaders read it before they init). Registration copies what
10
13
  // the author passed, so a captured array cannot change the definition later,
11
14
  // and a step after the lock throws.
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.defineChallenge = defineChallenge;
14
15
  const errors_js_1 = require("./errors.js");
15
16
  const reducer_js_1 = require("./reducer.js");
16
17
  const time_js_1 = require("./time.js");
@@ -65,6 +66,7 @@ function validateDecl(config, decl) {
65
66
  if (!config.roles || Object.keys(config.roles).length === 0) {
66
67
  throw (0, errors_js_1.definitionError)("bad_config", "defineChallenge: the config declares no roles", { path: "config.roles" });
67
68
  }
69
+ const dimensions = (0, dimensions_js_1.enabledDimensions)(config.challengeConfig?.dimensions);
68
70
  if (decl.life !== "single" && decl.life !== "respawn") {
69
71
  throw (0, errors_js_1.definitionError)("bad_life", `life must be "single" or "respawn" (got ${JSON.stringify(decl.life)})`, {
70
72
  path: "life",
@@ -105,7 +107,10 @@ function validateDecl(config, decl) {
105
107
  }
106
108
  for (const o of options) {
107
109
  if (typeof o !== "string" || !TAG_SAFE.test(o))
108
- throw (0, errors_js_1.definitionError)("bad_vote", `${path}: the option ${JSON.stringify(o)} uses [a-z0-9_.-]`, { path, value: o });
110
+ throw (0, errors_js_1.definitionError)("bad_vote", `${path}: the option ${JSON.stringify(o)} uses [a-z0-9_.-]`, {
111
+ path,
112
+ value: o,
113
+ });
109
114
  }
110
115
  if (new Set(options).size !== options.length)
111
116
  throw (0, errors_js_1.definitionError)("bad_vote", `${path}: an option repeats`, { path });
@@ -116,6 +121,12 @@ function validateDecl(config, decl) {
116
121
  const b = box;
117
122
  if (!b?.from || !b?.to)
118
123
  throw (0, errors_js_1.definitionError)("bad_zone", `zones.${name}: a zone is a box { from, to }`, { path: `zones.${name}` });
124
+ if ((0, dimensions_js_1.dimensionOf)(b.from) !== (0, dimensions_js_1.dimensionOf)(b.to) || !dimensions.includes((0, dimensions_js_1.dimensionOf)(b.from)))
125
+ throw (0, errors_js_1.definitionError)("bad_zone", `zones.${name}: both corners must use the same enabled dimension`, {
126
+ path: `zones.${name}`,
127
+ value: box,
128
+ allowed: dimensions,
129
+ });
119
130
  }
120
131
  }
121
132
  function validatePhaseSpec(name, spec, phases) {
@@ -135,7 +146,9 @@ function validatePhaseSpec(name, spec, phases) {
135
146
  const hasRemaining = "remaining" in st && st.remaining !== undefined;
136
147
  const hasElapsed = "elapsed" in st && st.elapsed !== undefined;
137
148
  if (hasRemaining === hasElapsed) {
138
- throw (0, errors_js_1.definitionError)("bad_step", `${path}.at: each step needs exactly one of 'elapsed' or 'remaining'`, { path: `${path}.at` });
149
+ throw (0, errors_js_1.definitionError)("bad_step", `${path}.at: each step needs exactly one of 'elapsed' or 'remaining'`, {
150
+ path: `${path}.at`,
151
+ });
139
152
  }
140
153
  if (hasRemaining && spec.duration === undefined) {
141
154
  throw (0, errors_js_1.definitionError)("bad_step", `${path}.at: 'remaining' needs a 'duration'`, { path: `${path}.at` });
@@ -189,7 +202,9 @@ function defineChallenge(config, decl) {
189
202
  let reducer = null;
190
203
  const assertOpen = (step) => {
191
204
  if (locked)
192
- throw (0, errors_js_1.definitionError)("locked", `${step}: the challenge is locked; register every step before init()`, { path: step });
205
+ throw (0, errors_js_1.definitionError)("locked", `${step}: the challenge is locked; register every step before init()`, {
206
+ path: step,
207
+ });
193
208
  };
194
209
  function lock() {
195
210
  if (locked)
@@ -200,18 +215,23 @@ function defineChallenge(config, decl) {
200
215
  });
201
216
  }
202
217
  if (!outcome)
203
- throw (0, errors_js_1.definitionError)("missing_outcome", "outcome(...) is required: how does the game end, who wins?", { path: "outcome" });
218
+ throw (0, errors_js_1.definitionError)("missing_outcome", "outcome(...) is required: how does the game end, who wins?", {
219
+ path: "outcome",
220
+ });
204
221
  for (const name of Object.keys(phaseSpecs))
205
222
  validatePhaseSpec(name, phaseSpecs[name], phases);
206
223
  at.forEach((st, i) => checkDuration(st.at, `at.${i}`));
207
224
  every.forEach((ev, i) => checkDuration(ev.interval, `every.${i}.interval`));
225
+ const dimensions = (0, dimensions_js_1.enabledDimensions)(ownConfig.challengeConfig?.dimensions);
208
226
  const declaredLocations = Object.keys(ownConfig.challengeConfig?.locations ?? {});
209
227
  const manifest = {
210
228
  runtime: 2,
229
+ ...(dimensions.length > 1 ? { dimensions } : {}),
211
230
  minecraft: wire_js_1.MINECRAFT_TARGET,
212
231
  name: ownConfig.name,
213
232
  life,
214
233
  roles: Object.keys(ownConfig.roles),
234
+ mirror: { nbt: true },
215
235
  votes: Object.fromEntries(Object.entries(votes).map(([id, v]) => [
216
236
  id,
217
237
  {
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/runtime/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/runtime/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /** The dimensions that a game can enable. */
2
+ export declare const DIMENSIONS: readonly ["minecraft:overworld", "minecraft:the_nether", "minecraft:the_end"];
3
+ /** A stable dimension ID. Server-specific world keys do not form part of this API. */
4
+ export type Dimension = (typeof DIMENSIONS)[number];
5
+ /** The dimension when a position or game configuration omits it. */
6
+ export declare const OVERWORLD: Dimension;
7
+ /** Validate the game dimensions. The Overworld must come first; IDs must be unique. */
8
+ export declare function enabledDimensions(value: unknown): Dimension[];
9
+ /** The dimension of a position. */
10
+ export declare function dimensionOf(position: {
11
+ dimension?: Dimension | undefined;
12
+ }): Dimension;
13
+ /** The spatial key prefix. Old Overworld keys retain their format. */
14
+ export declare function dimensionPrefix(dimension?: Dimension): string;
15
+ /** The block key for a position. */
16
+ export declare function positionKey(at: {
17
+ x: number;
18
+ y: number;
19
+ z: number;
20
+ dimension?: Dimension | undefined;
21
+ }): string;
22
+ /** True when a block key belongs to the specified chunk and dimension. */
23
+ export declare function keyInChunk(key: string, x: number, z: number, dimension?: Dimension): boolean;
24
+ //# sourceMappingURL=dimensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dimensions.d.ts","sourceRoot":"","sources":["../../src/runtime/dimensions.ts"],"names":[],"mappings":"AAEA,6CAA6C;AAC7C,eAAO,MAAM,UAAU,+EAAgF,CAAC;AAExG,sFAAsF;AACtF,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpD,oEAAoE;AACpE,eAAO,MAAM,SAAS,EAAE,SAAiC,CAAC;AAE1D,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,CAgB7D;AAED,mCAAmC;AACnC,wBAAgB,WAAW,CAAC,QAAQ,EAAE;IAAE,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,GAAG,SAAS,CAEtF;AAED,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,SAAS,GAAE,SAAqB,GAAG,MAAM,CAExE;AAED,oCAAoC;AACpC,wBAAgB,WAAW,CAAC,EAAE,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,GAAG,MAAM,CAE9G;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,GAAE,SAAqB,GAAG,OAAO,CAKvG"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OVERWORLD = exports.DIMENSIONS = void 0;
4
+ exports.enabledDimensions = enabledDimensions;
5
+ exports.dimensionOf = dimensionOf;
6
+ exports.dimensionPrefix = dimensionPrefix;
7
+ exports.positionKey = positionKey;
8
+ exports.keyInChunk = keyInChunk;
9
+ const errors_js_1 = require("./errors.js");
10
+ /** The dimensions that a game can enable. */
11
+ exports.DIMENSIONS = ["minecraft:overworld", "minecraft:the_nether", "minecraft:the_end"];
12
+ /** The dimension when a position or game configuration omits it. */
13
+ exports.OVERWORLD = "minecraft:overworld";
14
+ /** Validate the game dimensions. The Overworld must come first; IDs must be unique. */
15
+ function enabledDimensions(value) {
16
+ if (value === undefined)
17
+ return [exports.OVERWORLD];
18
+ if (!Array.isArray(value) ||
19
+ value.length === 0 ||
20
+ value[0] !== exports.OVERWORLD ||
21
+ new Set(value).size !== value.length ||
22
+ !value.every((id) => exports.DIMENSIONS.includes(id))) {
23
+ throw (0, errors_js_1.definitionError)("bad_dimensions", "dimensions must start with minecraft:overworld and contain unique supported IDs", { path: "challengeConfig.dimensions", value, allowed: exports.DIMENSIONS });
24
+ }
25
+ return [...value];
26
+ }
27
+ /** The dimension of a position. */
28
+ function dimensionOf(position) {
29
+ return position.dimension ?? exports.OVERWORLD;
30
+ }
31
+ /** The spatial key prefix. Old Overworld keys retain their format. */
32
+ function dimensionPrefix(dimension = exports.OVERWORLD) {
33
+ return dimension === exports.OVERWORLD ? "" : `${dimension}|`;
34
+ }
35
+ /** The block key for a position. */
36
+ function positionKey(at) {
37
+ return `${dimensionPrefix(at.dimension)}${Math.floor(at.x)},${Math.floor(at.y)},${Math.floor(at.z)}`;
38
+ }
39
+ /** True when a block key belongs to the specified chunk and dimension. */
40
+ function keyInChunk(key, x, z, dimension = exports.OVERWORLD) {
41
+ const prefix = dimensionPrefix(dimension);
42
+ if (prefix ? !key.startsWith(prefix) : key.includes("|"))
43
+ return false;
44
+ const [bx, , bz] = key.slice(prefix.length).split(",").map(Number);
45
+ return bx >> 4 === x && bz >> 4 === z;
46
+ }
47
+ //# sourceMappingURL=dimensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dimensions.js","sourceRoot":"","sources":["../../src/runtime/dimensions.ts"],"names":[],"mappings":";;;AAYA,8CAgBC;AAGD,kCAEC;AAGD,0CAEC;AAGD,kCAEC;AAGD,gCAKC;AAnDD,2CAA8C;AAE9C,6CAA6C;AAChC,QAAA,UAAU,GAAG,CAAC,qBAAqB,EAAE,sBAAsB,EAAE,mBAAmB,CAAU,CAAC;AAKxG,oEAAoE;AACvD,QAAA,SAAS,GAAc,qBAAqB,CAAC;AAE1D,uFAAuF;AACvF,SAAgB,iBAAiB,CAAC,KAAc;IAC/C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,iBAAS,CAAC,CAAC;IAC5C,IACC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,KAAK,CAAC,MAAM,KAAK,CAAC;QAClB,KAAK,CAAC,CAAC,CAAC,KAAK,iBAAS;QACtB,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM;QACpC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,kBAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAC5C,CAAC;QACF,MAAM,IAAA,2BAAe,EACpB,gBAAgB,EAChB,iFAAiF,EACjF,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAU,EAAE,CAClE,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,mCAAmC;AACnC,SAAgB,WAAW,CAAC,QAA+C;IAC1E,OAAO,QAAQ,CAAC,SAAS,IAAI,iBAAS,CAAC;AACxC,CAAC;AAED,sEAAsE;AACtE,SAAgB,eAAe,CAAC,YAAuB,iBAAS;IAC/D,OAAO,SAAS,KAAK,iBAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC;AACvD,CAAC;AAED,oCAAoC;AACpC,SAAgB,WAAW,CAAC,EAA0E;IACrG,OAAO,GAAG,eAAe,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACtG,CAAC;AAED,0EAA0E;AAC1E,SAAgB,UAAU,CAAC,GAAW,EAAE,CAAS,EAAE,CAAS,EAAE,YAAuB,iBAAS;IAC7F,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACvE,MAAM,CAAC,EAAE,EAAE,AAAD,EAAG,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAA6B,CAAC;IAC/F,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC"}