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,271 @@
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 RenderConfig_box_destroy_registry = new FinalizationRegistry((ptr) => {
7
+ wasm.RenderConfig_destroy(ptr);
8
+ });
9
+
10
+ /**
11
+ * Camera / output configuration for rendering.
12
+ */
13
+ export class RenderConfig {
14
+ // Internal ptr reference:
15
+ #ptr = null;
16
+
17
+ // Lifetimes are only to keep dependencies alive.
18
+ // Since JS won't garbage collect until there are no incoming edges.
19
+ #selfEdge = [];
20
+
21
+ #internalConstructor(symbol, ptr, selfEdge) {
22
+ if (symbol !== diplomatRuntime.internalConstructor) {
23
+ console.error("RenderConfig is an Opaque type. You cannot call its constructor.");
24
+ return;
25
+ }
26
+ this.#ptr = ptr;
27
+ this.#selfEdge = selfEdge;
28
+
29
+ // Are we being borrowed? If not, we can register.
30
+ if (this.#selfEdge.length === 0) {
31
+ RenderConfig_box_destroy_registry.register(this, this.#ptr);
32
+ }
33
+
34
+ return this;
35
+ }
36
+ /** @internal */
37
+ get ffiValue() {
38
+ return this.#ptr;
39
+ }
40
+
41
+
42
+ /**
43
+ * Create a config with the given output size in pixels. Camera starts
44
+ * at the defaults: yaw 45°, pitch 30°, zoom 1.0, fov 45°, perspective
45
+ * projection, default sky background.
46
+ */
47
+ static create(width, height) {
48
+
49
+ const result = wasm.RenderConfig_create(width, height);
50
+
51
+ try {
52
+ return new RenderConfig(diplomatRuntime.internalConstructor, result, []);
53
+ }
54
+
55
+ finally {
56
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
57
+ }
58
+ }
59
+
60
+ /**
61
+ * Set the camera yaw (horizontal orbit angle) in degrees. Default: 45.
62
+ */
63
+ setYaw(yaw) {
64
+ wasm.RenderConfig_set_yaw(this.ffiValue, yaw);
65
+
66
+ try {}
67
+
68
+ finally {
69
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
70
+ }
71
+ }
72
+
73
+ /**
74
+ * Set the camera pitch (downward tilt) in degrees. Default: 30.
75
+ */
76
+ setPitch(pitch) {
77
+ wasm.RenderConfig_set_pitch(this.ffiValue, pitch);
78
+
79
+ try {}
80
+
81
+ finally {
82
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
83
+ }
84
+ }
85
+
86
+ /**
87
+ * Set the zoom factor applied to the auto-fitted framing
88
+ * (1.0 = frame the whole model; 2.0 = twice as close; 0.5 = twice
89
+ * as far). Default: 1.0.
90
+ */
91
+ setZoom(zoom) {
92
+ wasm.RenderConfig_set_zoom(this.ffiValue, zoom);
93
+
94
+ try {}
95
+
96
+ finally {
97
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
98
+ }
99
+ }
100
+
101
+ /**
102
+ * Fit the camera to the model's bounding sphere instead of its
103
+ * yaw-dependent silhouette. The sphere is rotation invariant, so
104
+ * orbiting cameras (turntables) keep a constant distance instead
105
+ * of pulsing as the silhouette changes. Frames slightly looser
106
+ * than the default fit. Default: false.
107
+ */
108
+ setSphereFit(sphereFit) {
109
+ wasm.RenderConfig_set_sphere_fit(this.ffiValue, sphereFit);
110
+
111
+ try {}
112
+
113
+ finally {
114
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
115
+ }
116
+ }
117
+
118
+ /**
119
+ * Set the vertical field of view in degrees (perspective projection
120
+ * only). Default: 45.
121
+ */
122
+ setFov(fov) {
123
+ wasm.RenderConfig_set_fov(this.ffiValue, fov);
124
+
125
+ try {}
126
+
127
+ finally {
128
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
129
+ }
130
+ }
131
+
132
+ /**
133
+ * Set the world-space directional light and its non-negative intensity.
134
+ */
135
+ setDirectionalLight(x, y, z, intensity) {
136
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
137
+
138
+
139
+ const result = wasm.RenderConfig_set_directional_light(diplomatReceive.buffer, this.ffiValue, x, y, z, intensity);
140
+
141
+ try {
142
+ if (!diplomatReceive.resultFlag) {
143
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
144
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
145
+ }
146
+ }
147
+
148
+ finally {
149
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
150
+ diplomatReceive.free();
151
+ }
152
+ }
153
+
154
+ /**
155
+ * Set the unlit floor for non-HDRI rendering, in `0..=1`.
156
+ */
157
+ setAmbientLight(ambient) {
158
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
159
+
160
+
161
+ const result = wasm.RenderConfig_set_ambient_light(diplomatReceive.buffer, this.ffiValue, ambient);
162
+
163
+ try {
164
+ if (!diplomatReceive.resultFlag) {
165
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
166
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
167
+ }
168
+ }
169
+
170
+ finally {
171
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
172
+ diplomatReceive.free();
173
+ }
174
+ }
175
+
176
+ /**
177
+ * Set a solid RGBA clear color (linear 0.0–1.0). Alpha < 1.0 yields a
178
+ * transparent PNG. Ignored when HDRI is enabled.
179
+ */
180
+ setBackground(r, g, b, a) {
181
+ wasm.RenderConfig_set_background(this.ffiValue, r, g, b, a);
182
+
183
+ try {}
184
+
185
+ finally {
186
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
187
+ }
188
+ }
189
+
190
+ /**
191
+ * Clear the custom background — revert to default sky / HDRI.
192
+ */
193
+ clearBackground() {
194
+ wasm.RenderConfig_clear_background(this.ffiValue);
195
+
196
+ try {}
197
+
198
+ finally {
199
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
200
+ }
201
+ }
202
+
203
+ /**
204
+ * Configure a one-block world grid. Models are centred on integer
205
+ * schematic coordinates, so grid lines are placed on half-integer
206
+ * block boundaries automatically.
207
+ */
208
+ setGrid(halfExtent, spacing, planeY, showAxes, red, green, blue, alpha) {
209
+ wasm.RenderConfig_set_grid(this.ffiValue, halfExtent, spacing, planeY, showAxes, red, green, blue, alpha);
210
+
211
+ try {}
212
+
213
+ finally {
214
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
215
+ }
216
+ }
217
+
218
+ /**
219
+ * Configure a compact grid fitted to half-integer block boundaries.
220
+ */
221
+ setFittedGrid(margin, spacing, planeY, showAxes, red, green, blue, alpha) {
222
+ wasm.RenderConfig_set_fitted_grid(this.ffiValue, margin, spacing, planeY, showAxes, red, green, blue, alpha);
223
+
224
+ try {}
225
+
226
+ finally {
227
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
228
+ }
229
+ }
230
+
231
+ clearGrid() {
232
+ wasm.RenderConfig_clear_grid(this.ffiValue);
233
+
234
+ try {}
235
+
236
+ finally {
237
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
238
+ }
239
+ }
240
+
241
+ /**
242
+ * Enable (`true`) or disable orthographic projection.
243
+ */
244
+ setOrthographic(orthographic) {
245
+ wasm.RenderConfig_set_orthographic(this.ffiValue, orthographic);
246
+
247
+ try {}
248
+
249
+ finally {
250
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
251
+ }
252
+ }
253
+
254
+ /**
255
+ * Configure a true isometric view: orthographic at yaw 45° /
256
+ * pitch ≈35.264° (preserves the current width/height).
257
+ */
258
+ setIsometric() {
259
+ wasm.RenderConfig_set_isometric(this.ffiValue);
260
+
261
+ try {}
262
+
263
+ finally {
264
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
265
+ }
266
+ }
267
+
268
+ constructor(symbol, ptr, selfEdge) {
269
+ return this.#internalConstructor(...arguments)
270
+ }
271
+ }
@@ -0,0 +1,51 @@
1
+ // generated by diplomat-tool
2
+ import type { NucleationError } from "./NucleationError.mjs"
3
+ import type { RenderConfig } from "./RenderConfig.mjs"
4
+ import type { ResourcePack } from "./ResourcePack.mjs"
5
+ import type { Schematic } from "./Schematic.mjs"
6
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
7
+
8
+
9
+
10
+ /**
11
+ * Namespace type for the render entry points (PORTING rule 12).
12
+ */
13
+ export class Renderer {
14
+ /** @internal */
15
+ get ffiValue(): pointer;
16
+ /** @internal */
17
+ constructor();
18
+
19
+
20
+ /**
21
+ * Render a schematic to raw RGBA pixel bytes, written as base64
22
+ * (PORTING rule 6). `pack_zip` is a resource-pack zip in memory.
23
+ */
24
+ static renderPixelsB64(schematic: Schematic, packZip: Array<number>, config: RenderConfig): string;
25
+
26
+ /**
27
+ * Render a schematic to PNG bytes, written as base64 (PORTING rule 6).
28
+ * `pack_zip` is a resource-pack zip in memory.
29
+ */
30
+ static renderPngB64(schematic: Schematic, packZip: Array<number>, config: RenderConfig): string;
31
+
32
+ /**
33
+ * Render a schematic to a PNG file at `path`.
34
+ */
35
+ static renderToFile(schematic: Schematic, packZip: Array<number>, config: RenderConfig, path: string): void;
36
+
37
+ /**
38
+ * Render with an already parsed resource pack, avoiding repeated ZIP parsing.
39
+ */
40
+ static renderToFileWithPack(schematic: Schematic, pack: ResourcePack, config: RenderConfig, path: string): void;
41
+
42
+ /**
43
+ * Render raw RGBA pixels with an already parsed resource pack.
44
+ */
45
+ static renderPixelsB64WithPack(schematic: Schematic, pack: ResourcePack, config: RenderConfig): string;
46
+
47
+ /**
48
+ * Render PNG bytes with an already parsed resource pack.
49
+ */
50
+ static renderPngB64WithPack(schematic: Schematic, pack: ResourcePack, config: RenderConfig): string;
51
+ }
@@ -0,0 +1,51 @@
1
+ // generated by diplomat-tool
2
+ import type { NucleationError } from "./NucleationError.mjs"
3
+ import type { RenderConfig } from "./RenderConfig.mjs"
4
+ import type { ResourcePack } from "./ResourcePack.mjs"
5
+ import type { Schematic } from "./Schematic.mjs"
6
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
7
+
8
+
9
+
10
+ /**
11
+ * Namespace type for the render entry points (PORTING rule 12).
12
+ */
13
+ export class Renderer {
14
+ /** @internal */
15
+ get ffiValue(): pointer;
16
+ /** @internal */
17
+ constructor();
18
+
19
+
20
+ /**
21
+ * Render a schematic to raw RGBA pixel bytes, written as base64
22
+ * (PORTING rule 6). `pack_zip` is a resource-pack zip in memory.
23
+ */
24
+ static renderPixelsB64(schematic: Schematic, packZip: Array<number>, config: RenderConfig): string;
25
+
26
+ /**
27
+ * Render a schematic to PNG bytes, written as base64 (PORTING rule 6).
28
+ * `pack_zip` is a resource-pack zip in memory.
29
+ */
30
+ static renderPngB64(schematic: Schematic, packZip: Array<number>, config: RenderConfig): string;
31
+
32
+ /**
33
+ * Render a schematic to a PNG file at `path`.
34
+ */
35
+ static renderToFile(schematic: Schematic, packZip: Array<number>, config: RenderConfig, path: string): void;
36
+
37
+ /**
38
+ * Render with an already parsed resource pack, avoiding repeated ZIP parsing.
39
+ */
40
+ static renderToFileWithPack(schematic: Schematic, pack: ResourcePack, config: RenderConfig, path: string): void;
41
+
42
+ /**
43
+ * Render raw RGBA pixels with an already parsed resource pack.
44
+ */
45
+ static renderPixelsB64WithPack(schematic: Schematic, pack: ResourcePack, config: RenderConfig): string;
46
+
47
+ /**
48
+ * Render PNG bytes with an already parsed resource pack.
49
+ */
50
+ static renderPngB64WithPack(schematic: Schematic, pack: ResourcePack, config: RenderConfig): string;
51
+ }
@@ -0,0 +1,219 @@
1
+ // generated by diplomat-tool
2
+ import { NucleationError } from "./NucleationError.mjs"
3
+ import { RenderConfig } from "./RenderConfig.mjs"
4
+ import { ResourcePack } from "./ResourcePack.mjs"
5
+ import { Schematic } from "./Schematic.mjs"
6
+ import wasm from "./diplomat-wasm.mjs";
7
+ import * as diplomatRuntime from "./diplomat-runtime.mjs";
8
+
9
+ const Renderer_box_destroy_registry = new FinalizationRegistry((ptr) => {
10
+ wasm.Renderer_destroy(ptr);
11
+ });
12
+
13
+ /**
14
+ * Namespace type for the render entry points (PORTING rule 12).
15
+ */
16
+ export class Renderer {
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("Renderer 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
+ Renderer_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
+ * Render a schematic to raw RGBA pixel bytes, written as base64
47
+ * (PORTING rule 6). `pack_zip` is a resource-pack zip in memory.
48
+ */
49
+ static renderPixelsB64(schematic, packZip, config) {
50
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
51
+
52
+ const packZipSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.slice(wasm, packZip, "u8")));
53
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
54
+
55
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
56
+
57
+
58
+ const result = wasm.Renderer_render_pixels_b64(diplomatReceive.buffer, schematic.ffiValue, packZipSlice.ptr, config.ffiValue, write.buffer);
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 write.readString8();
66
+ }
67
+
68
+ finally {
69
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
70
+ functionCleanupArena.free();
71
+
72
+ diplomatReceive.free();
73
+ write.free();
74
+ }
75
+ }
76
+
77
+ /**
78
+ * Render a schematic to PNG bytes, written as base64 (PORTING rule 6).
79
+ * `pack_zip` is a resource-pack zip in memory.
80
+ */
81
+ static renderPngB64(schematic, packZip, config) {
82
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
83
+
84
+ const packZipSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.slice(wasm, packZip, "u8")));
85
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
86
+
87
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
88
+
89
+
90
+ const result = wasm.Renderer_render_png_b64(diplomatReceive.buffer, schematic.ffiValue, packZipSlice.ptr, config.ffiValue, write.buffer);
91
+
92
+ try {
93
+ if (!diplomatReceive.resultFlag) {
94
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
95
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
96
+ }
97
+ return write.readString8();
98
+ }
99
+
100
+ finally {
101
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
102
+ functionCleanupArena.free();
103
+
104
+ diplomatReceive.free();
105
+ write.free();
106
+ }
107
+ }
108
+
109
+ /**
110
+ * Render a schematic to a PNG file at `path`.
111
+ */
112
+ static renderToFile(schematic, packZip, config, path) {
113
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
114
+
115
+ const packZipSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.slice(wasm, packZip, "u8")));
116
+ const pathSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, path)));
117
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
118
+
119
+
120
+ const result = wasm.Renderer_render_to_file(diplomatReceive.buffer, schematic.ffiValue, packZipSlice.ptr, config.ffiValue, pathSlice.ptr);
121
+
122
+ try {
123
+ if (!diplomatReceive.resultFlag) {
124
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
125
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
126
+ }
127
+ }
128
+
129
+ finally {
130
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
131
+ functionCleanupArena.free();
132
+
133
+ diplomatReceive.free();
134
+ }
135
+ }
136
+
137
+ /**
138
+ * Render with an already parsed resource pack, avoiding repeated ZIP parsing.
139
+ */
140
+ static renderToFileWithPack(schematic, pack, config, path) {
141
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
142
+
143
+ const pathSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, path)));
144
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
145
+
146
+
147
+ const result = wasm.Renderer_render_to_file_with_pack(diplomatReceive.buffer, schematic.ffiValue, pack.ffiValue, config.ffiValue, pathSlice.ptr);
148
+
149
+ try {
150
+ if (!diplomatReceive.resultFlag) {
151
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
152
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
153
+ }
154
+ }
155
+
156
+ finally {
157
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
158
+ functionCleanupArena.free();
159
+
160
+ diplomatReceive.free();
161
+ }
162
+ }
163
+
164
+ /**
165
+ * Render raw RGBA pixels with an already parsed resource pack.
166
+ */
167
+ static renderPixelsB64WithPack(schematic, pack, config) {
168
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
169
+
170
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
171
+
172
+
173
+ const result = wasm.Renderer_render_pixels_b64_with_pack(diplomatReceive.buffer, schematic.ffiValue, pack.ffiValue, config.ffiValue, write.buffer);
174
+
175
+ try {
176
+ if (!diplomatReceive.resultFlag) {
177
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
178
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
179
+ }
180
+ return write.readString8();
181
+ }
182
+
183
+ finally {
184
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
185
+ diplomatReceive.free();
186
+ write.free();
187
+ }
188
+ }
189
+
190
+ /**
191
+ * Render PNG bytes with an already parsed resource pack.
192
+ */
193
+ static renderPngB64WithPack(schematic, pack, config) {
194
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
195
+
196
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
197
+
198
+
199
+ const result = wasm.Renderer_render_png_b64_with_pack(diplomatReceive.buffer, schematic.ffiValue, pack.ffiValue, config.ffiValue, write.buffer);
200
+
201
+ try {
202
+ if (!diplomatReceive.resultFlag) {
203
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
204
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
205
+ }
206
+ return write.readString8();
207
+ }
208
+
209
+ finally {
210
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
211
+ diplomatReceive.free();
212
+ write.free();
213
+ }
214
+ }
215
+
216
+ constructor(symbol, ptr, selfEdge) {
217
+ return this.#internalConstructor(...arguments)
218
+ }
219
+ }
@@ -0,0 +1,105 @@
1
+ // generated by diplomat-tool
2
+ import type { NucleationError } from "./NucleationError.mjs"
3
+ import type { ResourcePackList } from "./ResourcePackList.mjs"
4
+ import type { TextureInfo } from "./TextureInfo.mjs"
5
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
6
+
7
+
8
+
9
+ /**
10
+ * A loaded (possibly merged) Minecraft resource pack.
11
+ * Wraps {@link crate::meshing::ResourcePackSource}.
12
+ */
13
+ export class ResourcePack {
14
+ /** @internal */
15
+ get ffiValue(): pointer;
16
+ /** @internal */
17
+ constructor();
18
+
19
+
20
+ /**
21
+ * Load a resource pack from an in-memory ZIP buffer.
22
+ */
23
+ static fromBytes(data: Array<number>): ResourcePack;
24
+
25
+ /**
26
+ * Load and merge multiple resource packs, lowest priority first.
27
+ */
28
+ static fromList(list: ResourcePackList): ResourcePack;
29
+
30
+ /**
31
+ * Number of blockstate definitions in the pack.
32
+ */
33
+ blockstateCount(): number;
34
+
35
+ /**
36
+ * Number of model definitions in the pack.
37
+ */
38
+ modelCount(): number;
39
+
40
+ /**
41
+ * Number of textures in the pack.
42
+ */
43
+ textureCount(): number;
44
+
45
+ /**
46
+ * Namespaces present in the pack, as a JSON array string.
47
+ */
48
+ namespacesJson(): string;
49
+
50
+ /**
51
+ * All blockstate identifiers, as a JSON array string.
52
+ */
53
+ listBlockstatesJson(): string;
54
+
55
+ /**
56
+ * All model identifiers, as a JSON array string.
57
+ */
58
+ listModelsJson(): string;
59
+
60
+ /**
61
+ * All texture identifiers, as a JSON array string.
62
+ */
63
+ listTexturesJson(): string;
64
+
65
+ /**
66
+ * The blockstate definition JSON for `name`; `NotFound` if absent.
67
+ */
68
+ getBlockstateJson(name: string): string;
69
+
70
+ /**
71
+ * The model definition JSON for `name`; `NotFound` if absent.
72
+ */
73
+ getModelJson(name: string): string;
74
+
75
+ /**
76
+ * Texture metadata (size, animation flag, frame count).
77
+ */
78
+ getTextureInfo(name: string): TextureInfo;
79
+
80
+ /**
81
+ * Raw RGBA pixels of a texture, base64-encoded.
82
+ */
83
+ getTexturePixelsB64(name: string): string;
84
+
85
+ /**
86
+ * Add (or override) a blockstate definition from a JSON string.
87
+ */
88
+ addBlockstateJson(name: string, json: string): void;
89
+
90
+ /**
91
+ * Add (or override) a model definition from a JSON string.
92
+ */
93
+ addModelJson(name: string, json: string): void;
94
+
95
+ /**
96
+ * Add a raw RGBA texture (`pixels` length must be `width * height * 4`).
97
+ */
98
+ addTexture(name: string, width: number, height: number, pixels: Array<number>): void;
99
+
100
+ /**
101
+ * Register a MeshExporter with the FormatManager so `save_as("mesh", ...)`
102
+ * works. (Old ABI: `schematic_register_mesh_exporter`.)
103
+ */
104
+ registerMeshExporter(): void;
105
+ }