nucleation 0.10.22 → 0.10.23

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,103 @@
1
+ // generated by diplomat-tool
2
+ import type { NucleationError } from "./NucleationError.mjs"
3
+ import type { Schematic } from "./Schematic.mjs"
4
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
5
+
6
+
7
+
8
+ /**
9
+ * Fluent builder for schematics from character-mapped text layers.
10
+ *
11
+ * `build` is consuming (PORTING rule 11): the inner builder is held in an
12
+ * `Option` and taken on `build`; every method afterwards returns
13
+ * `AlreadyConsumed`.
14
+ */
15
+ export class SchematicBuilder {
16
+ /** @internal */
17
+ get ffiValue(): pointer;
18
+ /** @internal */
19
+ constructor();
20
+
21
+
22
+ /**
23
+ * Create a new builder, pre-loaded with the standard Unicode palette
24
+ * (override any character via `map` or `palette`).
25
+ */
26
+ static create(): SchematicBuilder;
27
+
28
+ /**
29
+ * Parse a builder from the canonical template text format.
30
+ */
31
+ static fromTemplate(template: string): SchematicBuilder;
32
+
33
+ /**
34
+ * Set the schematic name.
35
+ */
36
+ name(name: string): void;
37
+
38
+ /**
39
+ * Map a palette character to a block string. `ch` must contain exactly
40
+ * one character (its first char is used).
41
+ */
42
+ map(ch: string, block: string): void;
43
+
44
+ /**
45
+ * Append layers. `layers_json` is a JSON array of arrays of row strings,
46
+ * e.g. `[["ab","cd"],["ef","gh"]]`.
47
+ */
48
+ layers(layersJson: string): void;
49
+
50
+ /**
51
+ * Append a single layer of rows. `rows_json` is a JSON array of strings,
52
+ * e.g. `["abc", "def"]`. Equivalent to a one-element layers array.
53
+ */
54
+ layer(rowsJson: string): void;
55
+
56
+ /**
57
+ * Bulk-register palette characters. `pairs_json` is a JSON array of
58
+ * `[char, block]` two-element arrays, e.g.
59
+ * `[["c", "minecraft:gray_concrete"], [" ", "minecraft:air"]]`.
60
+ */
61
+ palette(pairsJson: string): void;
62
+
63
+ /**
64
+ * Set the build offset applied to every placed block.
65
+ */
66
+ offset(x: number, y: number, z: number): void;
67
+
68
+ /**
69
+ * Register the standard Unicode palette (redstone wires, repeaters,
70
+ * comparators, torches, blocks, air...; the same set `create`
71
+ * pre-loads), overwriting any clashing character mappings.
72
+ */
73
+ useStandardPalette(): void;
74
+
75
+ /**
76
+ * Register the minimal palette (an essentials-only subset of the
77
+ * standard one), overwriting any clashing character mappings.
78
+ */
79
+ useMinimalPalette(): void;
80
+
81
+ /**
82
+ * Register the compact ASCII-only palette, overwriting any clashing
83
+ * character mappings.
84
+ */
85
+ useCompactPalette(): void;
86
+
87
+ /**
88
+ * Run pre-build validation without consuming the builder.
89
+ */
90
+ validate(): void;
91
+
92
+ /**
93
+ * Serialize the builder back into the canonical template format.
94
+ */
95
+ toTemplate(): string;
96
+
97
+ /**
98
+ * Build the schematic. Consuming: the builder cannot be reused afterwards
99
+ * (subsequent calls return `AlreadyConsumed`), including after a failed
100
+ * build.
101
+ */
102
+ build(): Schematic;
103
+ }
@@ -0,0 +1,103 @@
1
+ // generated by diplomat-tool
2
+ import type { NucleationError } from "./NucleationError.mjs"
3
+ import type { Schematic } from "./Schematic.mjs"
4
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
5
+
6
+
7
+
8
+ /**
9
+ * Fluent builder for schematics from character-mapped text layers.
10
+ *
11
+ * `build` is consuming (PORTING rule 11): the inner builder is held in an
12
+ * `Option` and taken on `build`; every method afterwards returns
13
+ * `AlreadyConsumed`.
14
+ */
15
+ export class SchematicBuilder {
16
+ /** @internal */
17
+ get ffiValue(): pointer;
18
+ /** @internal */
19
+ constructor();
20
+
21
+
22
+ /**
23
+ * Create a new builder, pre-loaded with the standard Unicode palette
24
+ * (override any character via `map` or `palette`).
25
+ */
26
+ static create(): SchematicBuilder;
27
+
28
+ /**
29
+ * Parse a builder from the canonical template text format.
30
+ */
31
+ static fromTemplate(template: string): SchematicBuilder;
32
+
33
+ /**
34
+ * Set the schematic name.
35
+ */
36
+ name(name: string): void;
37
+
38
+ /**
39
+ * Map a palette character to a block string. `ch` must contain exactly
40
+ * one character (its first char is used).
41
+ */
42
+ map(ch: string, block: string): void;
43
+
44
+ /**
45
+ * Append layers. `layers_json` is a JSON array of arrays of row strings,
46
+ * e.g. `[["ab","cd"],["ef","gh"]]`.
47
+ */
48
+ layers(layersJson: string): void;
49
+
50
+ /**
51
+ * Append a single layer of rows. `rows_json` is a JSON array of strings,
52
+ * e.g. `["abc", "def"]`. Equivalent to a one-element layers array.
53
+ */
54
+ layer(rowsJson: string): void;
55
+
56
+ /**
57
+ * Bulk-register palette characters. `pairs_json` is a JSON array of
58
+ * `[char, block]` two-element arrays, e.g.
59
+ * `[["c", "minecraft:gray_concrete"], [" ", "minecraft:air"]]`.
60
+ */
61
+ palette(pairsJson: string): void;
62
+
63
+ /**
64
+ * Set the build offset applied to every placed block.
65
+ */
66
+ offset(x: number, y: number, z: number): void;
67
+
68
+ /**
69
+ * Register the standard Unicode palette (redstone wires, repeaters,
70
+ * comparators, torches, blocks, air...; the same set `create`
71
+ * pre-loads), overwriting any clashing character mappings.
72
+ */
73
+ useStandardPalette(): void;
74
+
75
+ /**
76
+ * Register the minimal palette (an essentials-only subset of the
77
+ * standard one), overwriting any clashing character mappings.
78
+ */
79
+ useMinimalPalette(): void;
80
+
81
+ /**
82
+ * Register the compact ASCII-only palette, overwriting any clashing
83
+ * character mappings.
84
+ */
85
+ useCompactPalette(): void;
86
+
87
+ /**
88
+ * Run pre-build validation without consuming the builder.
89
+ */
90
+ validate(): void;
91
+
92
+ /**
93
+ * Serialize the builder back into the canonical template format.
94
+ */
95
+ toTemplate(): string;
96
+
97
+ /**
98
+ * Build the schematic. Consuming: the builder cannot be reused afterwards
99
+ * (subsequent calls return `AlreadyConsumed`), including after a failed
100
+ * build.
101
+ */
102
+ build(): Schematic;
103
+ }
@@ -0,0 +1,401 @@
1
+ // generated by diplomat-tool
2
+ import { NucleationError } from "./NucleationError.mjs"
3
+ import { Schematic } from "./Schematic.mjs"
4
+ import wasm from "./diplomat-wasm.mjs";
5
+ import * as diplomatRuntime from "./diplomat-runtime.mjs";
6
+
7
+ const SchematicBuilder_box_destroy_registry = new FinalizationRegistry((ptr) => {
8
+ wasm.SchematicBuilder_destroy(ptr);
9
+ });
10
+
11
+ /**
12
+ * Fluent builder for schematics from character-mapped text layers.
13
+ *
14
+ * `build` is consuming (PORTING rule 11): the inner builder is held in an
15
+ * `Option` and taken on `build`; every method afterwards returns
16
+ * `AlreadyConsumed`.
17
+ */
18
+ export class SchematicBuilder {
19
+ // Internal ptr reference:
20
+ #ptr = null;
21
+
22
+ // Lifetimes are only to keep dependencies alive.
23
+ // Since JS won't garbage collect until there are no incoming edges.
24
+ #selfEdge = [];
25
+
26
+ #internalConstructor(symbol, ptr, selfEdge) {
27
+ if (symbol !== diplomatRuntime.internalConstructor) {
28
+ console.error("SchematicBuilder is an Opaque type. You cannot call its constructor.");
29
+ return;
30
+ }
31
+ this.#ptr = ptr;
32
+ this.#selfEdge = selfEdge;
33
+
34
+ // Are we being borrowed? If not, we can register.
35
+ if (this.#selfEdge.length === 0) {
36
+ SchematicBuilder_box_destroy_registry.register(this, this.#ptr);
37
+ }
38
+
39
+ return this;
40
+ }
41
+ /** @internal */
42
+ get ffiValue() {
43
+ return this.#ptr;
44
+ }
45
+
46
+
47
+ /**
48
+ * Create a new builder, pre-loaded with the standard Unicode palette
49
+ * (override any character via `map` or `palette`).
50
+ */
51
+ static create() {
52
+
53
+ const result = wasm.SchematicBuilder_create();
54
+
55
+ try {
56
+ return new SchematicBuilder(diplomatRuntime.internalConstructor, result, []);
57
+ }
58
+
59
+ finally {
60
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
61
+ }
62
+ }
63
+
64
+ /**
65
+ * Parse a builder from the canonical template text format.
66
+ */
67
+ static fromTemplate(template) {
68
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
69
+
70
+ const templateSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, template)));
71
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
72
+
73
+
74
+ const result = wasm.SchematicBuilder_from_template(diplomatReceive.buffer, templateSlice.ptr);
75
+
76
+ try {
77
+ if (!diplomatReceive.resultFlag) {
78
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
79
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
80
+ }
81
+ return new SchematicBuilder(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
82
+ }
83
+
84
+ finally {
85
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
86
+ functionCleanupArena.free();
87
+
88
+ diplomatReceive.free();
89
+ }
90
+ }
91
+
92
+ /**
93
+ * Set the schematic name.
94
+ */
95
+ name(name) {
96
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
97
+
98
+ const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, name)));
99
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
100
+
101
+
102
+ const result = wasm.SchematicBuilder_name(diplomatReceive.buffer, this.ffiValue, nameSlice.ptr);
103
+
104
+ try {
105
+ if (!diplomatReceive.resultFlag) {
106
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
107
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
108
+ }
109
+ }
110
+
111
+ finally {
112
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
113
+ functionCleanupArena.free();
114
+
115
+ diplomatReceive.free();
116
+ }
117
+ }
118
+
119
+ /**
120
+ * Map a palette character to a block string. `ch` must contain exactly
121
+ * one character (its first char is used).
122
+ */
123
+ map(ch, block) {
124
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
125
+
126
+ const chSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, ch)));
127
+ const blockSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, block)));
128
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
129
+
130
+
131
+ const result = wasm.SchematicBuilder_map(diplomatReceive.buffer, this.ffiValue, chSlice.ptr, blockSlice.ptr);
132
+
133
+ try {
134
+ if (!diplomatReceive.resultFlag) {
135
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
136
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
137
+ }
138
+ }
139
+
140
+ finally {
141
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
142
+ functionCleanupArena.free();
143
+
144
+ diplomatReceive.free();
145
+ }
146
+ }
147
+
148
+ /**
149
+ * Append layers. `layers_json` is a JSON array of arrays of row strings,
150
+ * e.g. `[["ab","cd"],["ef","gh"]]`.
151
+ */
152
+ layers(layersJson) {
153
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
154
+
155
+ const layersJsonSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, layersJson)));
156
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
157
+
158
+
159
+ const result = wasm.SchematicBuilder_layers(diplomatReceive.buffer, this.ffiValue, layersJsonSlice.ptr);
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
+ functionCleanupArena.free();
171
+
172
+ diplomatReceive.free();
173
+ }
174
+ }
175
+
176
+ /**
177
+ * Append a single layer of rows. `rows_json` is a JSON array of strings,
178
+ * e.g. `["abc", "def"]`. Equivalent to a one-element layers array.
179
+ */
180
+ layer(rowsJson) {
181
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
182
+
183
+ const rowsJsonSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, rowsJson)));
184
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
185
+
186
+
187
+ const result = wasm.SchematicBuilder_layer(diplomatReceive.buffer, this.ffiValue, rowsJsonSlice.ptr);
188
+
189
+ try {
190
+ if (!diplomatReceive.resultFlag) {
191
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
192
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
193
+ }
194
+ }
195
+
196
+ finally {
197
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
198
+ functionCleanupArena.free();
199
+
200
+ diplomatReceive.free();
201
+ }
202
+ }
203
+
204
+ /**
205
+ * Bulk-register palette characters. `pairs_json` is a JSON array of
206
+ * `[char, block]` two-element arrays, e.g.
207
+ * `[["c", "minecraft:gray_concrete"], [" ", "minecraft:air"]]`.
208
+ */
209
+ palette(pairsJson) {
210
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
211
+
212
+ const pairsJsonSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, pairsJson)));
213
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
214
+
215
+
216
+ const result = wasm.SchematicBuilder_palette(diplomatReceive.buffer, this.ffiValue, pairsJsonSlice.ptr);
217
+
218
+ try {
219
+ if (!diplomatReceive.resultFlag) {
220
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
221
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
222
+ }
223
+ }
224
+
225
+ finally {
226
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
227
+ functionCleanupArena.free();
228
+
229
+ diplomatReceive.free();
230
+ }
231
+ }
232
+
233
+ /**
234
+ * Set the build offset applied to every placed block.
235
+ */
236
+ offset(x, y, z) {
237
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
238
+
239
+
240
+ const result = wasm.SchematicBuilder_offset(diplomatReceive.buffer, this.ffiValue, x, y, z);
241
+
242
+ try {
243
+ if (!diplomatReceive.resultFlag) {
244
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
245
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
246
+ }
247
+ }
248
+
249
+ finally {
250
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
251
+ diplomatReceive.free();
252
+ }
253
+ }
254
+
255
+ /**
256
+ * Register the standard Unicode palette (redstone wires, repeaters,
257
+ * comparators, torches, blocks, air...; the same set `create`
258
+ * pre-loads), overwriting any clashing character mappings.
259
+ */
260
+ useStandardPalette() {
261
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
262
+
263
+
264
+ const result = wasm.SchematicBuilder_use_standard_palette(diplomatReceive.buffer, this.ffiValue);
265
+
266
+ try {
267
+ if (!diplomatReceive.resultFlag) {
268
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
269
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
270
+ }
271
+ }
272
+
273
+ finally {
274
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
275
+ diplomatReceive.free();
276
+ }
277
+ }
278
+
279
+ /**
280
+ * Register the minimal palette (an essentials-only subset of the
281
+ * standard one), overwriting any clashing character mappings.
282
+ */
283
+ useMinimalPalette() {
284
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
285
+
286
+
287
+ const result = wasm.SchematicBuilder_use_minimal_palette(diplomatReceive.buffer, this.ffiValue);
288
+
289
+ try {
290
+ if (!diplomatReceive.resultFlag) {
291
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
292
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
293
+ }
294
+ }
295
+
296
+ finally {
297
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
298
+ diplomatReceive.free();
299
+ }
300
+ }
301
+
302
+ /**
303
+ * Register the compact ASCII-only palette, overwriting any clashing
304
+ * character mappings.
305
+ */
306
+ useCompactPalette() {
307
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
308
+
309
+
310
+ const result = wasm.SchematicBuilder_use_compact_palette(diplomatReceive.buffer, this.ffiValue);
311
+
312
+ try {
313
+ if (!diplomatReceive.resultFlag) {
314
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
315
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
316
+ }
317
+ }
318
+
319
+ finally {
320
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
321
+ diplomatReceive.free();
322
+ }
323
+ }
324
+
325
+ /**
326
+ * Run pre-build validation without consuming the builder.
327
+ */
328
+ validate() {
329
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
330
+
331
+
332
+ const result = wasm.SchematicBuilder_validate(diplomatReceive.buffer, this.ffiValue);
333
+
334
+ try {
335
+ if (!diplomatReceive.resultFlag) {
336
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
337
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
338
+ }
339
+ }
340
+
341
+ finally {
342
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
343
+ diplomatReceive.free();
344
+ }
345
+ }
346
+
347
+ /**
348
+ * Serialize the builder back into the canonical template format.
349
+ */
350
+ toTemplate() {
351
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
352
+
353
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
354
+
355
+
356
+ const result = wasm.SchematicBuilder_to_template(diplomatReceive.buffer, this.ffiValue, write.buffer);
357
+
358
+ try {
359
+ if (!diplomatReceive.resultFlag) {
360
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
361
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
362
+ }
363
+ return write.readString8();
364
+ }
365
+
366
+ finally {
367
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
368
+ diplomatReceive.free();
369
+ write.free();
370
+ }
371
+ }
372
+
373
+ /**
374
+ * Build the schematic. Consuming: the builder cannot be reused afterwards
375
+ * (subsequent calls return `AlreadyConsumed`), including after a failed
376
+ * build.
377
+ */
378
+ build() {
379
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
380
+
381
+
382
+ const result = wasm.SchematicBuilder_build(diplomatReceive.buffer, this.ffiValue);
383
+
384
+ try {
385
+ if (!diplomatReceive.resultFlag) {
386
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
387
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
388
+ }
389
+ return new Schematic(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
390
+ }
391
+
392
+ finally {
393
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
394
+ diplomatReceive.free();
395
+ }
396
+ }
397
+
398
+ constructor(symbol, ptr, selfEdge) {
399
+ return this.#internalConstructor(...arguments)
400
+ }
401
+ }
@@ -0,0 +1,93 @@
1
+ // generated by diplomat-tool
2
+ import type { DefinitionRegion } from "./DefinitionRegion.mjs"
3
+ import type { NucleationError } from "./NucleationError.mjs"
4
+ import type { Schematic } from "./Schematic.mjs"
5
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
6
+
7
+
8
+
9
+ /**
10
+ * Namespace type for the schematic-attached definition-region operations
11
+ * (PORTING rule 12; the `Schematic` opaque lives in another module, so
12
+ * these are statics taking it explicitly, like `Autostack`).
13
+ */
14
+ export class SchematicRegions {
15
+ /** @internal */
16
+ get ffiValue(): pointer;
17
+ /** @internal */
18
+ constructor();
19
+
20
+
21
+ /**
22
+ * Insert (or overwrite) `region` under `name`.
23
+ */
24
+ static add(schematic: Schematic, name: string, region: DefinitionRegion): void;
25
+
26
+ /**
27
+ * Overwrite the region stored under `name` (identical to `add` in the
28
+ * old ABI too; kept as a separate method for 1:1 coverage of
29
+ * `schematic_update_region`).
30
+ */
31
+ static update(schematic: Schematic, name: string, region: DefinitionRegion): void;
32
+
33
+ /**
34
+ * A copy of the region stored under `name`. Errors with `NotFound` when
35
+ * absent.
36
+ */
37
+ static get(schematic: Schematic, name: string): DefinitionRegion;
38
+
39
+ /**
40
+ * Remove the region stored under `name`. Errors with `NotFound` when
41
+ * absent.
42
+ */
43
+ static remove(schematic: Schematic, name: string): void;
44
+
45
+ /**
46
+ * The names of every definition region, written as a JSON array string.
47
+ */
48
+ static namesJson(schematic: Schematic): string;
49
+
50
+ /**
51
+ * Create an empty region under `name`.
52
+ */
53
+ static create(schematic: Schematic, name: string): void;
54
+
55
+ /**
56
+ * Create a single-point region under `name`.
57
+ */
58
+ static createFromPoint(schematic: Schematic, name: string, x: number, y: number, z: number): void;
59
+
60
+ /**
61
+ * Create a single-box region under `name`.
62
+ */
63
+ static createFromBounds(schematic: Schematic, name: string, minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): void;
64
+
65
+ /**
66
+ * Create a single-box region under `name` and return a copy of it.
67
+ */
68
+ static createRegion(schematic: Schematic, name: string, minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): DefinitionRegion;
69
+
70
+ /**
71
+ * Add a box to the region stored under `name`. Errors with `NotFound`
72
+ * when absent.
73
+ */
74
+ static addBoundsTo(schematic: Schematic, name: string, minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): void;
75
+
76
+ /**
77
+ * Add a point to the region stored under `name`. Errors with `NotFound`
78
+ * when absent.
79
+ */
80
+ static addPointTo(schematic: Schematic, name: string, x: number, y: number, z: number): void;
81
+
82
+ /**
83
+ * Set a metadata entry on the region stored under `name`. Errors with
84
+ * `NotFound` when absent.
85
+ */
86
+ static setMetadataOn(schematic: Schematic, name: string, key: string, value: string): void;
87
+
88
+ /**
89
+ * Shift the region stored under `name` by (`dx`, `dy`, `dz`). Errors
90
+ * with `NotFound` when absent.
91
+ */
92
+ static shiftRegion(schematic: Schematic, name: string, dx: number, dy: number, dz: number): void;
93
+ }