nucleation 0.10.22 → 0.10.24

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 (303) hide show
  1. package/README.md +12 -0
  2. package/Schematic.d.mts +23 -0
  3. package/Schematic.d.ts +23 -0
  4. package/Schematic.mjs +70 -0
  5. package/nucleation.wasm +0 -0
  6. package/package.json +7 -2
  7. package/renderer/AnimationEffect.d.mts +44 -0
  8. package/renderer/AnimationEffect.d.ts +44 -0
  9. package/renderer/AnimationEffect.mjs +204 -0
  10. package/renderer/Autostack.d.mts +43 -0
  11. package/renderer/Autostack.d.ts +43 -0
  12. package/renderer/Autostack.mjs +134 -0
  13. package/renderer/BlockPos.d.mts +28 -0
  14. package/renderer/BlockPos.d.ts +28 -0
  15. package/renderer/BlockPos.mjs +130 -0
  16. package/renderer/BlockState.d.mts +39 -0
  17. package/renderer/BlockState.d.ts +39 -0
  18. package/renderer/BlockState.mjs +134 -0
  19. package/renderer/Blocks.d.mts +91 -0
  20. package/renderer/Blocks.d.ts +91 -0
  21. package/renderer/Blocks.mjs +308 -0
  22. package/renderer/Brush.d.mts +99 -0
  23. package/renderer/Brush.d.ts +99 -0
  24. package/renderer/Brush.mjs +335 -0
  25. package/renderer/BuildAnimation.d.mts +179 -0
  26. package/renderer/BuildAnimation.d.ts +179 -0
  27. package/renderer/BuildAnimation.mjs +1148 -0
  28. package/renderer/BuildingTool.d.mts +46 -0
  29. package/renderer/BuildingTool.d.ts +46 -0
  30. package/renderer/BuildingTool.mjs +121 -0
  31. package/renderer/CellExecutor.d.mts +51 -0
  32. package/renderer/CellExecutor.d.ts +51 -0
  33. package/renderer/CellExecutor.mjs +171 -0
  34. package/renderer/CellularSdfConfig.d.mts +22 -0
  35. package/renderer/CellularSdfConfig.d.ts +22 -0
  36. package/renderer/CellularSdfConfig.mjs +69 -0
  37. package/renderer/ChunkMeshResult.d.mts +75 -0
  38. package/renderer/ChunkMeshResult.d.ts +75 -0
  39. package/renderer/ChunkMeshResult.mjs +253 -0
  40. package/renderer/CircuitBuilder.d.mts +118 -0
  41. package/renderer/CircuitBuilder.d.ts +118 -0
  42. package/renderer/CircuitBuilder.mjs +516 -0
  43. package/renderer/Curve3D.d.mts +27 -0
  44. package/renderer/Curve3D.d.ts +27 -0
  45. package/renderer/Curve3D.mjs +101 -0
  46. package/renderer/DefinitionRegion.d.mts +274 -0
  47. package/renderer/DefinitionRegion.d.ts +274 -0
  48. package/renderer/DefinitionRegion.mjs +973 -0
  49. package/renderer/Design.d.mts +348 -0
  50. package/renderer/Design.d.ts +348 -0
  51. package/renderer/Design.mjs +1334 -0
  52. package/renderer/Diff.d.mts +88 -0
  53. package/renderer/Diff.d.ts +88 -0
  54. package/renderer/Diff.mjs +316 -0
  55. package/renderer/Dimensions.d.mts +28 -0
  56. package/renderer/Dimensions.d.ts +28 -0
  57. package/renderer/Dimensions.mjs +130 -0
  58. package/renderer/DistanceField.d.mts +39 -0
  59. package/renderer/DistanceField.d.ts +39 -0
  60. package/renderer/DistanceField.mjs +114 -0
  61. package/renderer/ExecutionMode.d.mts +42 -0
  62. package/renderer/ExecutionMode.d.ts +42 -0
  63. package/renderer/ExecutionMode.mjs +127 -0
  64. package/renderer/Field3.d.mts +40 -0
  65. package/renderer/Field3.d.ts +40 -0
  66. package/renderer/Field3.mjs +160 -0
  67. package/renderer/FieldProgram.d.mts +40 -0
  68. package/renderer/FieldProgram.d.ts +40 -0
  69. package/renderer/FieldProgram.mjs +167 -0
  70. package/renderer/FieldProgramBinaryOp.d.mts +42 -0
  71. package/renderer/FieldProgramBinaryOp.d.ts +42 -0
  72. package/renderer/FieldProgramBinaryOp.mjs +118 -0
  73. package/renderer/FieldProgramBuilder.d.mts +104 -0
  74. package/renderer/FieldProgramBuilder.d.ts +104 -0
  75. package/renderer/FieldProgramBuilder.mjs +486 -0
  76. package/renderer/FieldProgramDistanceKind.d.mts +26 -0
  77. package/renderer/FieldProgramDistanceKind.d.ts +26 -0
  78. package/renderer/FieldProgramDistanceKind.mjs +78 -0
  79. package/renderer/FieldProgramUnaryOp.d.mts +34 -0
  80. package/renderer/FieldProgramUnaryOp.d.ts +34 -0
  81. package/renderer/FieldProgramUnaryOp.mjs +102 -0
  82. package/renderer/FieldProgramValueType.d.mts +25 -0
  83. package/renderer/FieldProgramValueType.d.ts +25 -0
  84. package/renderer/FieldProgramValueType.mjs +75 -0
  85. package/renderer/FieldRange.d.mts +15 -0
  86. package/renderer/FieldRange.d.ts +15 -0
  87. package/renderer/FieldRange.mjs +109 -0
  88. package/renderer/Fingerprint.d.mts +44 -0
  89. package/renderer/Fingerprint.d.ts +44 -0
  90. package/renderer/Fingerprint.mjs +197 -0
  91. package/renderer/GeneratedChunk.d.mts +35 -0
  92. package/renderer/GeneratedChunk.d.ts +35 -0
  93. package/renderer/GeneratedChunk.mjs +178 -0
  94. package/renderer/GeneratedChunkCoverage.d.mts +25 -0
  95. package/renderer/GeneratedChunkCoverage.d.ts +25 -0
  96. package/renderer/GeneratedChunkCoverage.mjs +75 -0
  97. package/renderer/GeneratedChunkOverlayMode.d.mts +24 -0
  98. package/renderer/GeneratedChunkOverlayMode.d.ts +24 -0
  99. package/renderer/GeneratedChunkOverlayMode.mjs +72 -0
  100. package/renderer/GeneratedWorldStream.d.mts +28 -0
  101. package/renderer/GeneratedWorldStream.d.ts +28 -0
  102. package/renderer/GeneratedWorldStream.mjs +86 -0
  103. package/renderer/Geo.d.mts +41 -0
  104. package/renderer/Geo.d.ts +41 -0
  105. package/renderer/Geo.mjs +121 -0
  106. package/renderer/Hdl.d.mts +56 -0
  107. package/renderer/Hdl.d.ts +56 -0
  108. package/renderer/Hdl.mjs +163 -0
  109. package/renderer/InterpolationSpace.d.mts +25 -0
  110. package/renderer/InterpolationSpace.d.ts +25 -0
  111. package/renderer/InterpolationSpace.mjs +73 -0
  112. package/renderer/IoLayout.d.mts +26 -0
  113. package/renderer/IoLayout.d.ts +26 -0
  114. package/renderer/IoLayout.mjs +81 -0
  115. package/renderer/IoLayoutBuilder.d.mts +73 -0
  116. package/renderer/IoLayoutBuilder.d.ts +73 -0
  117. package/renderer/IoLayoutBuilder.mjs +315 -0
  118. package/renderer/IoType.d.mts +41 -0
  119. package/renderer/IoType.d.ts +41 -0
  120. package/renderer/IoType.mjs +125 -0
  121. package/renderer/ItemModelConfig.d.mts +65 -0
  122. package/renderer/ItemModelConfig.d.ts +65 -0
  123. package/renderer/ItemModelConfig.mjs +223 -0
  124. package/renderer/ItemModelPackBuilder.d.mts +32 -0
  125. package/renderer/ItemModelPackBuilder.d.ts +32 -0
  126. package/renderer/ItemModelPackBuilder.mjs +104 -0
  127. package/renderer/ItemModelResult.d.mts +72 -0
  128. package/renderer/ItemModelResult.d.ts +72 -0
  129. package/renderer/ItemModelResult.mjs +268 -0
  130. package/renderer/ItemScale.d.mts +31 -0
  131. package/renderer/ItemScale.d.ts +31 -0
  132. package/renderer/ItemScale.mjs +133 -0
  133. package/renderer/LayoutFunction.d.mts +52 -0
  134. package/renderer/LayoutFunction.d.ts +52 -0
  135. package/renderer/LayoutFunction.mjs +159 -0
  136. package/renderer/MchprsWorld.d.mts +131 -0
  137. package/renderer/MchprsWorld.d.ts +131 -0
  138. package/renderer/MchprsWorld.mjs +423 -0
  139. package/renderer/MeshBounds.d.mts +40 -0
  140. package/renderer/MeshBounds.d.ts +40 -0
  141. package/renderer/MeshBounds.mjs +181 -0
  142. package/renderer/MeshConfig.d.mts +101 -0
  143. package/renderer/MeshConfig.d.ts +101 -0
  144. package/renderer/MeshConfig.mjs +306 -0
  145. package/renderer/MeshJob.d.mts +44 -0
  146. package/renderer/MeshJob.d.ts +44 -0
  147. package/renderer/MeshJob.mjs +116 -0
  148. package/renderer/MeshPhase.d.mts +38 -0
  149. package/renderer/MeshPhase.d.ts +38 -0
  150. package/renderer/MeshPhase.mjs +90 -0
  151. package/renderer/MeshProgress.d.mts +32 -0
  152. package/renderer/MeshProgress.d.ts +32 -0
  153. package/renderer/MeshProgress.mjs +134 -0
  154. package/renderer/MeshResult.d.mts +76 -0
  155. package/renderer/MeshResult.d.ts +76 -0
  156. package/renderer/MeshResult.mjs +269 -0
  157. package/renderer/MultiMeshResult.d.mts +50 -0
  158. package/renderer/MultiMeshResult.d.ts +50 -0
  159. package/renderer/MultiMeshResult.mjs +166 -0
  160. package/renderer/Nbt.d.mts +50 -0
  161. package/renderer/Nbt.d.ts +50 -0
  162. package/renderer/Nbt.mjs +161 -0
  163. package/renderer/NucleationError.d.mts +53 -0
  164. package/renderer/NucleationError.d.ts +53 -0
  165. package/renderer/NucleationError.mjs +136 -0
  166. package/renderer/OutputCondition.d.mts +45 -0
  167. package/renderer/OutputCondition.d.ts +45 -0
  168. package/renderer/OutputCondition.mjs +129 -0
  169. package/renderer/Palette.d.mts +157 -0
  170. package/renderer/Palette.d.ts +157 -0
  171. package/renderer/Palette.mjs +487 -0
  172. package/renderer/PaletteBuilder.d.mts +119 -0
  173. package/renderer/PaletteBuilder.d.ts +119 -0
  174. package/renderer/PaletteBuilder.mjs +457 -0
  175. package/renderer/README.md +67 -0
  176. package/renderer/RawMeshExport.d.mts +74 -0
  177. package/renderer/RawMeshExport.d.ts +74 -0
  178. package/renderer/RawMeshExport.mjs +243 -0
  179. package/renderer/RedstoneGraph.d.mts +58 -0
  180. package/renderer/RedstoneGraph.d.ts +58 -0
  181. package/renderer/RedstoneGraph.mjs +242 -0
  182. package/renderer/RegionBounds.d.mts +41 -0
  183. package/renderer/RegionBounds.d.ts +41 -0
  184. package/renderer/RegionBounds.mjs +182 -0
  185. package/renderer/RenderConfig.d.mts +101 -0
  186. package/renderer/RenderConfig.d.ts +101 -0
  187. package/renderer/RenderConfig.mjs +271 -0
  188. package/renderer/Renderer.d.mts +51 -0
  189. package/renderer/Renderer.d.ts +51 -0
  190. package/renderer/Renderer.mjs +219 -0
  191. package/renderer/ResourcePack.d.mts +105 -0
  192. package/renderer/ResourcePack.d.ts +105 -0
  193. package/renderer/ResourcePack.mjs +447 -0
  194. package/renderer/ResourcePackList.d.mts +32 -0
  195. package/renderer/ResourcePackList.d.ts +32 -0
  196. package/renderer/ResourcePackList.mjs +96 -0
  197. package/renderer/Routing.d.mts +66 -0
  198. package/renderer/Routing.d.ts +66 -0
  199. package/renderer/Routing.mjs +220 -0
  200. package/renderer/Schematic.d.mts +977 -0
  201. package/renderer/Schematic.d.ts +977 -0
  202. package/renderer/Schematic.mjs +3820 -0
  203. package/renderer/SchematicBuilder.d.mts +103 -0
  204. package/renderer/SchematicBuilder.d.ts +103 -0
  205. package/renderer/SchematicBuilder.mjs +401 -0
  206. package/renderer/SchematicRegions.d.mts +93 -0
  207. package/renderer/SchematicRegions.d.ts +93 -0
  208. package/renderer/SchematicRegions.mjs +411 -0
  209. package/renderer/SchematicSplitResult.d.mts +26 -0
  210. package/renderer/SchematicSplitResult.d.ts +26 -0
  211. package/renderer/SchematicSplitResult.mjs +84 -0
  212. package/renderer/Scripting.d.mts +40 -0
  213. package/renderer/Scripting.d.ts +40 -0
  214. package/renderer/Scripting.mjs +138 -0
  215. package/renderer/Sdf.d.mts +234 -0
  216. package/renderer/Sdf.d.ts +234 -0
  217. package/renderer/Sdf.mjs +1234 -0
  218. package/renderer/SdfAxis.d.mts +25 -0
  219. package/renderer/SdfAxis.d.ts +25 -0
  220. package/renderer/SdfAxis.mjs +75 -0
  221. package/renderer/SdfBounds.d.mts +19 -0
  222. package/renderer/SdfBounds.d.ts +19 -0
  223. package/renderer/SdfBounds.mjs +161 -0
  224. package/renderer/SdfCellMode.d.mts +26 -0
  225. package/renderer/SdfCellMode.d.ts +26 -0
  226. package/renderer/SdfCellMode.mjs +78 -0
  227. package/renderer/SdfNormal.d.mts +16 -0
  228. package/renderer/SdfNormal.d.ts +16 -0
  229. package/renderer/SdfNormal.mjs +122 -0
  230. package/renderer/Shape.d.mts +143 -0
  231. package/renderer/Shape.d.ts +143 -0
  232. package/renderer/Shape.mjs +458 -0
  233. package/renderer/SortStrategy.d.mts +86 -0
  234. package/renderer/SortStrategy.d.ts +86 -0
  235. package/renderer/SortStrategy.mjs +272 -0
  236. package/renderer/Store.d.mts +83 -0
  237. package/renderer/Store.d.ts +83 -0
  238. package/renderer/Store.mjs +369 -0
  239. package/renderer/StoreIo.d.mts +71 -0
  240. package/renderer/StoreIo.d.ts +71 -0
  241. package/renderer/StoreIo.mjs +292 -0
  242. package/renderer/TextureAtlas.d.mts +40 -0
  243. package/renderer/TextureAtlas.d.ts +40 -0
  244. package/renderer/TextureAtlas.mjs +122 -0
  245. package/renderer/TextureInfo.d.mts +34 -0
  246. package/renderer/TextureInfo.d.ts +34 -0
  247. package/renderer/TextureInfo.mjs +149 -0
  248. package/renderer/TickSettleMode.d.mts +34 -0
  249. package/renderer/TickSettleMode.d.ts +34 -0
  250. package/renderer/TickSettleMode.mjs +84 -0
  251. package/renderer/TickSimulation.d.mts +572 -0
  252. package/renderer/TickSimulation.d.ts +572 -0
  253. package/renderer/TickSimulation.mjs +1299 -0
  254. package/renderer/TypedCircuitExecutor.d.mts +101 -0
  255. package/renderer/TypedCircuitExecutor.d.ts +101 -0
  256. package/renderer/TypedCircuitExecutor.mjs +378 -0
  257. package/renderer/Value.d.mts +73 -0
  258. package/renderer/Value.d.ts +73 -0
  259. package/renderer/Value.mjs +275 -0
  260. package/renderer/VideoConfig.d.mts +15 -0
  261. package/renderer/VideoConfig.d.ts +15 -0
  262. package/renderer/VideoConfig.mjs +44 -0
  263. package/renderer/VoxelModel.d.mts +34 -0
  264. package/renderer/VoxelModel.d.ts +34 -0
  265. package/renderer/VoxelModel.mjs +113 -0
  266. package/renderer/Voxelizer.d.mts +80 -0
  267. package/renderer/Voxelizer.d.ts +80 -0
  268. package/renderer/Voxelizer.mjs +261 -0
  269. package/renderer/WorldChunkView.d.mts +75 -0
  270. package/renderer/WorldChunkView.d.ts +75 -0
  271. package/renderer/WorldChunkView.mjs +224 -0
  272. package/renderer/WorldGenerator.d.mts +75 -0
  273. package/renderer/WorldGenerator.d.ts +75 -0
  274. package/renderer/WorldGenerator.mjs +255 -0
  275. package/renderer/WorldSink.d.mts +50 -0
  276. package/renderer/WorldSink.d.ts +50 -0
  277. package/renderer/WorldSink.mjs +177 -0
  278. package/renderer/WorldStream.d.mts +45 -0
  279. package/renderer/WorldStream.d.ts +45 -0
  280. package/renderer/WorldStream.mjs +184 -0
  281. package/renderer/WsPartitionHints.d.mts +29 -0
  282. package/renderer/WsPartitionHints.d.ts +29 -0
  283. package/renderer/WsPartitionHints.mjs +102 -0
  284. package/renderer/WsProfile.d.mts +46 -0
  285. package/renderer/WsProfile.d.ts +46 -0
  286. package/renderer/WsProfile.mjs +152 -0
  287. package/renderer/WsRunResult.d.mts +83 -0
  288. package/renderer/WsRunResult.d.ts +83 -0
  289. package/renderer/WsRunResult.mjs +326 -0
  290. package/renderer/WsSegmentJob.d.mts +28 -0
  291. package/renderer/WsSegmentJob.d.ts +28 -0
  292. package/renderer/WsSegmentJob.mjs +81 -0
  293. package/renderer/diplomat-runtime.d.mts +15 -0
  294. package/renderer/diplomat-runtime.d.ts +15 -0
  295. package/renderer/diplomat-runtime.mjs +779 -0
  296. package/renderer/diplomat-wasm.mjs +52 -0
  297. package/renderer/diplomat.config.mjs +5 -0
  298. package/renderer/index.d.mts +193 -0
  299. package/renderer/index.d.ts +193 -0
  300. package/renderer/index.mjs +196 -0
  301. package/renderer/nucleation.wasm +0 -0
  302. package/renderer/veneer/design.d.ts +167 -0
  303. package/renderer/veneer/design.mjs +480 -0
@@ -0,0 +1,50 @@
1
+ // generated by diplomat-tool
2
+ import type { NucleationError } from "./NucleationError.mjs"
3
+ import type { WorldChunkView } from "./WorldChunkView.mjs"
4
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
5
+
6
+
7
+
8
+ /**
9
+ * A world writer. `finish` is consuming (PORTING rule 11): the inner sink is
10
+ * held in an `Option` and taken on `finish`; every method afterwards returns
11
+ * `AlreadyConsumed`. Dropping the handle without `finish` abandons the sink.
12
+ */
13
+ export class WorldSink {
14
+ /** @internal */
15
+ get ffiValue(): pointer;
16
+ /** @internal */
17
+ constructor();
18
+
19
+
20
+ /**
21
+ * Create a new world sink that writes fresh chunk data to `dir`.
22
+ * `options_json` is a serialized `WorldExportOptions` (empty string =
23
+ * defaults).
24
+ */
25
+ static create(dir: string, optionsJson: string): WorldSink;
26
+
27
+ /**
28
+ * Open an existing world directory for patching via `put_chunk`.
29
+ */
30
+ static openExisting(dir: string): WorldSink;
31
+
32
+ /**
33
+ * Write (append) a chunk view into the sink. The view is not consumed.
34
+ */
35
+ writeChunk(view: WorldChunkView): void;
36
+
37
+ /**
38
+ * Overwrite the chunk at (`view.cx`, `view.cz`) of the sink's world with
39
+ * the supplied view's block data. Only valid on sinks opened with
40
+ * `open_existing`; errors with `Io` on a create-mode sink. The view is
41
+ * not consumed.
42
+ */
43
+ putChunk(view: WorldChunkView): void;
44
+
45
+ /**
46
+ * Finalise and flush all pending writes. Consuming (PORTING rule 11):
47
+ * afterwards every method on this sink returns `AlreadyConsumed`.
48
+ */
49
+ finish(): void;
50
+ }
@@ -0,0 +1,177 @@
1
+ // generated by diplomat-tool
2
+ import { NucleationError } from "./NucleationError.mjs"
3
+ import { WorldChunkView } from "./WorldChunkView.mjs"
4
+ import wasm from "./diplomat-wasm.mjs";
5
+ import * as diplomatRuntime from "./diplomat-runtime.mjs";
6
+
7
+ const WorldSink_box_destroy_registry = new FinalizationRegistry((ptr) => {
8
+ wasm.WorldSink_destroy(ptr);
9
+ });
10
+
11
+ /**
12
+ * A world writer. `finish` is consuming (PORTING rule 11): the inner sink is
13
+ * held in an `Option` and taken on `finish`; every method afterwards returns
14
+ * `AlreadyConsumed`. Dropping the handle without `finish` abandons the sink.
15
+ */
16
+ export class WorldSink {
17
+ // Internal ptr reference:
18
+ #ptr = null;
19
+
20
+ // Lifetimes are only to keep dependencies alive.
21
+ // Since JS won't garbage collect until there are no incoming edges.
22
+ #selfEdge = [];
23
+
24
+ #internalConstructor(symbol, ptr, selfEdge) {
25
+ if (symbol !== diplomatRuntime.internalConstructor) {
26
+ console.error("WorldSink is an Opaque type. You cannot call its constructor.");
27
+ return;
28
+ }
29
+ this.#ptr = ptr;
30
+ this.#selfEdge = selfEdge;
31
+
32
+ // Are we being borrowed? If not, we can register.
33
+ if (this.#selfEdge.length === 0) {
34
+ WorldSink_box_destroy_registry.register(this, this.#ptr);
35
+ }
36
+
37
+ return this;
38
+ }
39
+ /** @internal */
40
+ get ffiValue() {
41
+ return this.#ptr;
42
+ }
43
+
44
+
45
+ /**
46
+ * Create a new world sink that writes fresh chunk data to `dir`.
47
+ * `options_json` is a serialized `WorldExportOptions` (empty string =
48
+ * defaults).
49
+ */
50
+ static create(dir, optionsJson) {
51
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
52
+
53
+ const dirSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, dir)));
54
+ const optionsJsonSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, optionsJson)));
55
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
56
+
57
+
58
+ const result = wasm.WorldSink_create(diplomatReceive.buffer, dirSlice.ptr, optionsJsonSlice.ptr);
59
+
60
+ try {
61
+ if (!diplomatReceive.resultFlag) {
62
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
63
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
64
+ }
65
+ return new WorldSink(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
66
+ }
67
+
68
+ finally {
69
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
70
+ functionCleanupArena.free();
71
+
72
+ diplomatReceive.free();
73
+ }
74
+ }
75
+
76
+ /**
77
+ * Open an existing world directory for patching via `put_chunk`.
78
+ */
79
+ static openExisting(dir) {
80
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
81
+
82
+ const dirSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, dir)));
83
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
84
+
85
+
86
+ const result = wasm.WorldSink_open_existing(diplomatReceive.buffer, dirSlice.ptr);
87
+
88
+ try {
89
+ if (!diplomatReceive.resultFlag) {
90
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
91
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
92
+ }
93
+ return new WorldSink(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
94
+ }
95
+
96
+ finally {
97
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
98
+ functionCleanupArena.free();
99
+
100
+ diplomatReceive.free();
101
+ }
102
+ }
103
+
104
+ /**
105
+ * Write (append) a chunk view into the sink. The view is not consumed.
106
+ */
107
+ writeChunk(view) {
108
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
109
+
110
+
111
+ const result = wasm.WorldSink_write_chunk(diplomatReceive.buffer, this.ffiValue, view.ffiValue);
112
+
113
+ try {
114
+ if (!diplomatReceive.resultFlag) {
115
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
116
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
117
+ }
118
+ }
119
+
120
+ finally {
121
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
122
+ diplomatReceive.free();
123
+ }
124
+ }
125
+
126
+ /**
127
+ * Overwrite the chunk at (`view.cx`, `view.cz`) of the sink's world with
128
+ * the supplied view's block data. Only valid on sinks opened with
129
+ * `open_existing`; errors with `Io` on a create-mode sink. The view is
130
+ * not consumed.
131
+ */
132
+ putChunk(view) {
133
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
134
+
135
+
136
+ const result = wasm.WorldSink_put_chunk(diplomatReceive.buffer, this.ffiValue, view.ffiValue);
137
+
138
+ try {
139
+ if (!diplomatReceive.resultFlag) {
140
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
141
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
142
+ }
143
+ }
144
+
145
+ finally {
146
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
147
+ diplomatReceive.free();
148
+ }
149
+ }
150
+
151
+ /**
152
+ * Finalise and flush all pending writes. Consuming (PORTING rule 11):
153
+ * afterwards every method on this sink returns `AlreadyConsumed`.
154
+ */
155
+ finish() {
156
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
157
+
158
+
159
+ const result = wasm.WorldSink_finish(diplomatReceive.buffer, this.ffiValue);
160
+
161
+ try {
162
+ if (!diplomatReceive.resultFlag) {
163
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
164
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
165
+ }
166
+ }
167
+
168
+ finally {
169
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
170
+ diplomatReceive.free();
171
+ }
172
+ }
173
+
174
+ constructor(symbol, ptr, selfEdge) {
175
+ return this.#internalConstructor(...arguments)
176
+ }
177
+ }
@@ -0,0 +1,45 @@
1
+ // generated by diplomat-tool
2
+ import type { NucleationError } from "./NucleationError.mjs"
3
+ import type { WorldChunkView } from "./WorldChunkView.mjs"
4
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
5
+
6
+
7
+
8
+ /**
9
+ * A streaming iterator over the chunks of a world.
10
+ */
11
+ export class WorldStream {
12
+ /** @internal */
13
+ get ffiValue(): pointer;
14
+ /** @internal */
15
+ constructor();
16
+
17
+
18
+ /**
19
+ * Open a streaming iterator over a world directory.
20
+ */
21
+ static openDir(path: string): WorldStream;
22
+
23
+ /**
24
+ * Open a streaming iterator over a world directory, bounded to the given
25
+ * block-coordinate box `[min_x..max_x, min_y..max_y, min_z..max_z]`.
26
+ */
27
+ static openDirBounded(path: string, minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): WorldStream;
28
+
29
+ /**
30
+ * Open a streaming iterator from a zip archive in memory.
31
+ */
32
+ static fromZip(data: Array<number>): WorldStream;
33
+
34
+ /**
35
+ * Open a bounded streaming iterator from a zip archive in memory.
36
+ */
37
+ static fromZipBounded(data: Array<number>, minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): WorldStream;
38
+
39
+ /**
40
+ * Advance the iterator and return the next chunk view. Errors with
41
+ * `NotFound` at end-of-stream (the old ABI returned NULL). Corrupt
42
+ * chunks are silently skipped, matching the old ABI.
43
+ */
44
+ next(): WorldChunkView;
45
+ }
@@ -0,0 +1,45 @@
1
+ // generated by diplomat-tool
2
+ import type { NucleationError } from "./NucleationError.mjs"
3
+ import type { WorldChunkView } from "./WorldChunkView.mjs"
4
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
5
+
6
+
7
+
8
+ /**
9
+ * A streaming iterator over the chunks of a world.
10
+ */
11
+ export class WorldStream {
12
+ /** @internal */
13
+ get ffiValue(): pointer;
14
+ /** @internal */
15
+ constructor();
16
+
17
+
18
+ /**
19
+ * Open a streaming iterator over a world directory.
20
+ */
21
+ static openDir(path: string): WorldStream;
22
+
23
+ /**
24
+ * Open a streaming iterator over a world directory, bounded to the given
25
+ * block-coordinate box `[min_x..max_x, min_y..max_y, min_z..max_z]`.
26
+ */
27
+ static openDirBounded(path: string, minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): WorldStream;
28
+
29
+ /**
30
+ * Open a streaming iterator from a zip archive in memory.
31
+ */
32
+ static fromZip(data: Array<number>): WorldStream;
33
+
34
+ /**
35
+ * Open a bounded streaming iterator from a zip archive in memory.
36
+ */
37
+ static fromZipBounded(data: Array<number>, minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): WorldStream;
38
+
39
+ /**
40
+ * Advance the iterator and return the next chunk view. Errors with
41
+ * `NotFound` at end-of-stream (the old ABI returned NULL). Corrupt
42
+ * chunks are silently skipped, matching the old ABI.
43
+ */
44
+ next(): WorldChunkView;
45
+ }
@@ -0,0 +1,184 @@
1
+ // generated by diplomat-tool
2
+ import { NucleationError } from "./NucleationError.mjs"
3
+ import { WorldChunkView } from "./WorldChunkView.mjs"
4
+ import wasm from "./diplomat-wasm.mjs";
5
+ import * as diplomatRuntime from "./diplomat-runtime.mjs";
6
+
7
+ const WorldStream_box_destroy_registry = new FinalizationRegistry((ptr) => {
8
+ wasm.WorldStream_destroy(ptr);
9
+ });
10
+
11
+ /**
12
+ * A streaming iterator over the chunks of a world.
13
+ */
14
+ export class WorldStream {
15
+ // Internal ptr reference:
16
+ #ptr = null;
17
+
18
+ // Lifetimes are only to keep dependencies alive.
19
+ // Since JS won't garbage collect until there are no incoming edges.
20
+ #selfEdge = [];
21
+
22
+ #internalConstructor(symbol, ptr, selfEdge) {
23
+ if (symbol !== diplomatRuntime.internalConstructor) {
24
+ console.error("WorldStream is an Opaque type. You cannot call its constructor.");
25
+ return;
26
+ }
27
+ this.#ptr = ptr;
28
+ this.#selfEdge = selfEdge;
29
+
30
+ // Are we being borrowed? If not, we can register.
31
+ if (this.#selfEdge.length === 0) {
32
+ WorldStream_box_destroy_registry.register(this, this.#ptr);
33
+ }
34
+
35
+ return this;
36
+ }
37
+ /** @internal */
38
+ get ffiValue() {
39
+ return this.#ptr;
40
+ }
41
+
42
+
43
+ /**
44
+ * Open a streaming iterator over a world directory.
45
+ */
46
+ static openDir(path) {
47
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
48
+
49
+ const pathSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, path)));
50
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
51
+
52
+
53
+ const result = wasm.WorldStream_open_dir(diplomatReceive.buffer, pathSlice.ptr);
54
+
55
+ try {
56
+ if (!diplomatReceive.resultFlag) {
57
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
58
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
59
+ }
60
+ return new WorldStream(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
61
+ }
62
+
63
+ finally {
64
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
65
+ functionCleanupArena.free();
66
+
67
+ diplomatReceive.free();
68
+ }
69
+ }
70
+
71
+ /**
72
+ * Open a streaming iterator over a world directory, bounded to the given
73
+ * block-coordinate box `[min_x..max_x, min_y..max_y, min_z..max_z]`.
74
+ */
75
+ static openDirBounded(path, minX, minY, minZ, maxX, maxY, maxZ) {
76
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
77
+
78
+ const pathSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, path)));
79
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
80
+
81
+
82
+ const result = wasm.WorldStream_open_dir_bounded(diplomatReceive.buffer, pathSlice.ptr, minX, minY, minZ, maxX, maxY, maxZ);
83
+
84
+ try {
85
+ if (!diplomatReceive.resultFlag) {
86
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
87
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
88
+ }
89
+ return new WorldStream(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
90
+ }
91
+
92
+ finally {
93
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
94
+ functionCleanupArena.free();
95
+
96
+ diplomatReceive.free();
97
+ }
98
+ }
99
+
100
+ /**
101
+ * Open a streaming iterator from a zip archive in memory.
102
+ */
103
+ static fromZip(data) {
104
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
105
+
106
+ const dataSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.slice(wasm, data, "u8")));
107
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
108
+
109
+
110
+ const result = wasm.WorldStream_from_zip(diplomatReceive.buffer, dataSlice.ptr);
111
+
112
+ try {
113
+ if (!diplomatReceive.resultFlag) {
114
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
115
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
116
+ }
117
+ return new WorldStream(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
118
+ }
119
+
120
+ finally {
121
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
122
+ functionCleanupArena.free();
123
+
124
+ diplomatReceive.free();
125
+ }
126
+ }
127
+
128
+ /**
129
+ * Open a bounded streaming iterator from a zip archive in memory.
130
+ */
131
+ static fromZipBounded(data, minX, minY, minZ, maxX, maxY, maxZ) {
132
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
133
+
134
+ const dataSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.slice(wasm, data, "u8")));
135
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
136
+
137
+
138
+ const result = wasm.WorldStream_from_zip_bounded(diplomatReceive.buffer, dataSlice.ptr, minX, minY, minZ, maxX, maxY, maxZ);
139
+
140
+ try {
141
+ if (!diplomatReceive.resultFlag) {
142
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
143
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
144
+ }
145
+ return new WorldStream(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
146
+ }
147
+
148
+ finally {
149
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
150
+ functionCleanupArena.free();
151
+
152
+ diplomatReceive.free();
153
+ }
154
+ }
155
+
156
+ /**
157
+ * Advance the iterator and return the next chunk view. Errors with
158
+ * `NotFound` at end-of-stream (the old ABI returned NULL). Corrupt
159
+ * chunks are silently skipped, matching the old ABI.
160
+ */
161
+ next() {
162
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
163
+
164
+
165
+ const result = wasm.WorldStream_next(diplomatReceive.buffer, this.ffiValue);
166
+
167
+ try {
168
+ if (!diplomatReceive.resultFlag) {
169
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
170
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
171
+ }
172
+ return new WorldChunkView(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
173
+ }
174
+
175
+ finally {
176
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
177
+ diplomatReceive.free();
178
+ }
179
+ }
180
+
181
+ constructor(symbol, ptr, selfEdge) {
182
+ return this.#internalConstructor(...arguments)
183
+ }
184
+ }
@@ -0,0 +1,29 @@
1
+ // generated by diplomat-tool
2
+ import type { NucleationError } from "./NucleationError.mjs"
3
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
4
+
5
+
6
+
7
+ /**
8
+ * Caller-supplied partition hints (full-column boxes a cluster may never
9
+ * span under {@link PartitionPolicy::HardCut}). Order does not matter:
10
+ * {@link PartitionIndex::new}(crate::world_segment::partition::PartitionIndex)
11
+ * sorts hints by full content at construction time.
12
+ */
13
+ export class WsPartitionHints {
14
+ /** @internal */
15
+ get ffiValue(): pointer;
16
+ /** @internal */
17
+ constructor();
18
+
19
+
20
+ static create(): WsPartitionHints;
21
+
22
+ /**
23
+ * Add a full-column hint (`y_range: None`) covering inclusive
24
+ * `x0..=x1, z0..=z1`.
25
+ */
26
+ add(id: string, x0: number, x1: number, z0: number, z1: number): void;
27
+
28
+ len(): number;
29
+ }
@@ -0,0 +1,29 @@
1
+ // generated by diplomat-tool
2
+ import type { NucleationError } from "./NucleationError.mjs"
3
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
4
+
5
+
6
+
7
+ /**
8
+ * Caller-supplied partition hints (full-column boxes a cluster may never
9
+ * span under {@link PartitionPolicy::HardCut}). Order does not matter:
10
+ * {@link PartitionIndex::new}(crate::world_segment::partition::PartitionIndex)
11
+ * sorts hints by full content at construction time.
12
+ */
13
+ export class WsPartitionHints {
14
+ /** @internal */
15
+ get ffiValue(): pointer;
16
+ /** @internal */
17
+ constructor();
18
+
19
+
20
+ static create(): WsPartitionHints;
21
+
22
+ /**
23
+ * Add a full-column hint (`y_range: None`) covering inclusive
24
+ * `x0..=x1, z0..=z1`.
25
+ */
26
+ add(id: string, x0: number, x1: number, z0: number, z1: number): void;
27
+
28
+ len(): number;
29
+ }
@@ -0,0 +1,102 @@
1
+ // generated by diplomat-tool
2
+ import { NucleationError } from "./NucleationError.mjs"
3
+ import wasm from "./diplomat-wasm.mjs";
4
+ import * as diplomatRuntime from "./diplomat-runtime.mjs";
5
+
6
+ const WsPartitionHints_box_destroy_registry = new FinalizationRegistry((ptr) => {
7
+ wasm.WsPartitionHints_destroy(ptr);
8
+ });
9
+
10
+ /**
11
+ * Caller-supplied partition hints (full-column boxes a cluster may never
12
+ * span under {@link PartitionPolicy::HardCut}). Order does not matter:
13
+ * {@link PartitionIndex::new}(crate::world_segment::partition::PartitionIndex)
14
+ * sorts hints by full content at construction time.
15
+ */
16
+ export class WsPartitionHints {
17
+ // Internal ptr reference:
18
+ #ptr = null;
19
+
20
+ // Lifetimes are only to keep dependencies alive.
21
+ // Since JS won't garbage collect until there are no incoming edges.
22
+ #selfEdge = [];
23
+
24
+ #internalConstructor(symbol, ptr, selfEdge) {
25
+ if (symbol !== diplomatRuntime.internalConstructor) {
26
+ console.error("WsPartitionHints is an Opaque type. You cannot call its constructor.");
27
+ return;
28
+ }
29
+ this.#ptr = ptr;
30
+ this.#selfEdge = selfEdge;
31
+
32
+ // Are we being borrowed? If not, we can register.
33
+ if (this.#selfEdge.length === 0) {
34
+ WsPartitionHints_box_destroy_registry.register(this, this.#ptr);
35
+ }
36
+
37
+ return this;
38
+ }
39
+ /** @internal */
40
+ get ffiValue() {
41
+ return this.#ptr;
42
+ }
43
+
44
+
45
+ static create() {
46
+
47
+ const result = wasm.WsPartitionHints_create();
48
+
49
+ try {
50
+ return new WsPartitionHints(diplomatRuntime.internalConstructor, result, []);
51
+ }
52
+
53
+ finally {
54
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
55
+ }
56
+ }
57
+
58
+ /**
59
+ * Add a full-column hint (`y_range: None`) covering inclusive
60
+ * `x0..=x1, z0..=z1`.
61
+ */
62
+ add(id, x0, x1, z0, z1) {
63
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
64
+
65
+ const idSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, id)));
66
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
67
+
68
+
69
+ const result = wasm.WsPartitionHints_add(diplomatReceive.buffer, this.ffiValue, idSlice.ptr, x0, x1, z0, z1);
70
+
71
+ try {
72
+ if (!diplomatReceive.resultFlag) {
73
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
74
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
75
+ }
76
+ }
77
+
78
+ finally {
79
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
80
+ functionCleanupArena.free();
81
+
82
+ diplomatReceive.free();
83
+ }
84
+ }
85
+
86
+ len() {
87
+
88
+ const result = wasm.WsPartitionHints_len(this.ffiValue);
89
+
90
+ try {
91
+ return result;
92
+ }
93
+
94
+ finally {
95
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
96
+ }
97
+ }
98
+
99
+ constructor(symbol, ptr, selfEdge) {
100
+ return this.#internalConstructor(...arguments)
101
+ }
102
+ }