nucleation 0.10.21 → 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 (314) hide show
  1. package/BlockPos.mjs +1 -0
  2. package/Dimensions.mjs +1 -0
  3. package/FieldRange.mjs +1 -0
  4. package/ItemScale.mjs +1 -0
  5. package/MeshBounds.mjs +1 -0
  6. package/MeshProgress.mjs +1 -0
  7. package/README.md +12 -0
  8. package/RegionBounds.mjs +1 -0
  9. package/Schematic.d.mts +32 -0
  10. package/Schematic.d.ts +32 -0
  11. package/Schematic.mjs +100 -0
  12. package/SdfBounds.mjs +1 -0
  13. package/SdfNormal.mjs +1 -0
  14. package/TextureInfo.mjs +1 -0
  15. package/diplomat-runtime.mjs +19 -14
  16. package/nucleation.wasm +0 -0
  17. package/package.json +7 -2
  18. package/renderer/AnimationEffect.d.mts +44 -0
  19. package/renderer/AnimationEffect.d.ts +44 -0
  20. package/renderer/AnimationEffect.mjs +204 -0
  21. package/renderer/Autostack.d.mts +43 -0
  22. package/renderer/Autostack.d.ts +43 -0
  23. package/renderer/Autostack.mjs +134 -0
  24. package/renderer/BlockPos.d.mts +28 -0
  25. package/renderer/BlockPos.d.ts +28 -0
  26. package/renderer/BlockPos.mjs +130 -0
  27. package/renderer/BlockState.d.mts +39 -0
  28. package/renderer/BlockState.d.ts +39 -0
  29. package/renderer/BlockState.mjs +134 -0
  30. package/renderer/Blocks.d.mts +91 -0
  31. package/renderer/Blocks.d.ts +91 -0
  32. package/renderer/Blocks.mjs +308 -0
  33. package/renderer/Brush.d.mts +99 -0
  34. package/renderer/Brush.d.ts +99 -0
  35. package/renderer/Brush.mjs +335 -0
  36. package/renderer/BuildAnimation.d.mts +179 -0
  37. package/renderer/BuildAnimation.d.ts +179 -0
  38. package/renderer/BuildAnimation.mjs +1148 -0
  39. package/renderer/BuildingTool.d.mts +46 -0
  40. package/renderer/BuildingTool.d.ts +46 -0
  41. package/renderer/BuildingTool.mjs +121 -0
  42. package/renderer/CellExecutor.d.mts +51 -0
  43. package/renderer/CellExecutor.d.ts +51 -0
  44. package/renderer/CellExecutor.mjs +171 -0
  45. package/renderer/CellularSdfConfig.d.mts +22 -0
  46. package/renderer/CellularSdfConfig.d.ts +22 -0
  47. package/renderer/CellularSdfConfig.mjs +69 -0
  48. package/renderer/ChunkMeshResult.d.mts +75 -0
  49. package/renderer/ChunkMeshResult.d.ts +75 -0
  50. package/renderer/ChunkMeshResult.mjs +253 -0
  51. package/renderer/CircuitBuilder.d.mts +118 -0
  52. package/renderer/CircuitBuilder.d.ts +118 -0
  53. package/renderer/CircuitBuilder.mjs +516 -0
  54. package/renderer/Curve3D.d.mts +27 -0
  55. package/renderer/Curve3D.d.ts +27 -0
  56. package/renderer/Curve3D.mjs +101 -0
  57. package/renderer/DefinitionRegion.d.mts +274 -0
  58. package/renderer/DefinitionRegion.d.ts +274 -0
  59. package/renderer/DefinitionRegion.mjs +973 -0
  60. package/renderer/Design.d.mts +348 -0
  61. package/renderer/Design.d.ts +348 -0
  62. package/renderer/Design.mjs +1334 -0
  63. package/renderer/Diff.d.mts +88 -0
  64. package/renderer/Diff.d.ts +88 -0
  65. package/renderer/Diff.mjs +316 -0
  66. package/renderer/Dimensions.d.mts +28 -0
  67. package/renderer/Dimensions.d.ts +28 -0
  68. package/renderer/Dimensions.mjs +130 -0
  69. package/renderer/DistanceField.d.mts +39 -0
  70. package/renderer/DistanceField.d.ts +39 -0
  71. package/renderer/DistanceField.mjs +114 -0
  72. package/renderer/ExecutionMode.d.mts +42 -0
  73. package/renderer/ExecutionMode.d.ts +42 -0
  74. package/renderer/ExecutionMode.mjs +127 -0
  75. package/renderer/Field3.d.mts +40 -0
  76. package/renderer/Field3.d.ts +40 -0
  77. package/renderer/Field3.mjs +160 -0
  78. package/renderer/FieldProgram.d.mts +40 -0
  79. package/renderer/FieldProgram.d.ts +40 -0
  80. package/renderer/FieldProgram.mjs +167 -0
  81. package/renderer/FieldProgramBinaryOp.d.mts +42 -0
  82. package/renderer/FieldProgramBinaryOp.d.ts +42 -0
  83. package/renderer/FieldProgramBinaryOp.mjs +118 -0
  84. package/renderer/FieldProgramBuilder.d.mts +104 -0
  85. package/renderer/FieldProgramBuilder.d.ts +104 -0
  86. package/renderer/FieldProgramBuilder.mjs +486 -0
  87. package/renderer/FieldProgramDistanceKind.d.mts +26 -0
  88. package/renderer/FieldProgramDistanceKind.d.ts +26 -0
  89. package/renderer/FieldProgramDistanceKind.mjs +78 -0
  90. package/renderer/FieldProgramUnaryOp.d.mts +34 -0
  91. package/renderer/FieldProgramUnaryOp.d.ts +34 -0
  92. package/renderer/FieldProgramUnaryOp.mjs +102 -0
  93. package/renderer/FieldProgramValueType.d.mts +25 -0
  94. package/renderer/FieldProgramValueType.d.ts +25 -0
  95. package/renderer/FieldProgramValueType.mjs +75 -0
  96. package/renderer/FieldRange.d.mts +15 -0
  97. package/renderer/FieldRange.d.ts +15 -0
  98. package/renderer/FieldRange.mjs +109 -0
  99. package/renderer/Fingerprint.d.mts +44 -0
  100. package/renderer/Fingerprint.d.ts +44 -0
  101. package/renderer/Fingerprint.mjs +197 -0
  102. package/renderer/GeneratedChunk.d.mts +35 -0
  103. package/renderer/GeneratedChunk.d.ts +35 -0
  104. package/renderer/GeneratedChunk.mjs +178 -0
  105. package/renderer/GeneratedChunkCoverage.d.mts +25 -0
  106. package/renderer/GeneratedChunkCoverage.d.ts +25 -0
  107. package/renderer/GeneratedChunkCoverage.mjs +75 -0
  108. package/renderer/GeneratedChunkOverlayMode.d.mts +24 -0
  109. package/renderer/GeneratedChunkOverlayMode.d.ts +24 -0
  110. package/renderer/GeneratedChunkOverlayMode.mjs +72 -0
  111. package/renderer/GeneratedWorldStream.d.mts +28 -0
  112. package/renderer/GeneratedWorldStream.d.ts +28 -0
  113. package/renderer/GeneratedWorldStream.mjs +86 -0
  114. package/renderer/Geo.d.mts +41 -0
  115. package/renderer/Geo.d.ts +41 -0
  116. package/renderer/Geo.mjs +121 -0
  117. package/renderer/Hdl.d.mts +56 -0
  118. package/renderer/Hdl.d.ts +56 -0
  119. package/renderer/Hdl.mjs +163 -0
  120. package/renderer/InterpolationSpace.d.mts +25 -0
  121. package/renderer/InterpolationSpace.d.ts +25 -0
  122. package/renderer/InterpolationSpace.mjs +73 -0
  123. package/renderer/IoLayout.d.mts +26 -0
  124. package/renderer/IoLayout.d.ts +26 -0
  125. package/renderer/IoLayout.mjs +81 -0
  126. package/renderer/IoLayoutBuilder.d.mts +73 -0
  127. package/renderer/IoLayoutBuilder.d.ts +73 -0
  128. package/renderer/IoLayoutBuilder.mjs +315 -0
  129. package/renderer/IoType.d.mts +41 -0
  130. package/renderer/IoType.d.ts +41 -0
  131. package/renderer/IoType.mjs +125 -0
  132. package/renderer/ItemModelConfig.d.mts +65 -0
  133. package/renderer/ItemModelConfig.d.ts +65 -0
  134. package/renderer/ItemModelConfig.mjs +223 -0
  135. package/renderer/ItemModelPackBuilder.d.mts +32 -0
  136. package/renderer/ItemModelPackBuilder.d.ts +32 -0
  137. package/renderer/ItemModelPackBuilder.mjs +104 -0
  138. package/renderer/ItemModelResult.d.mts +72 -0
  139. package/renderer/ItemModelResult.d.ts +72 -0
  140. package/renderer/ItemModelResult.mjs +268 -0
  141. package/renderer/ItemScale.d.mts +31 -0
  142. package/renderer/ItemScale.d.ts +31 -0
  143. package/renderer/ItemScale.mjs +133 -0
  144. package/renderer/LayoutFunction.d.mts +52 -0
  145. package/renderer/LayoutFunction.d.ts +52 -0
  146. package/renderer/LayoutFunction.mjs +159 -0
  147. package/renderer/MchprsWorld.d.mts +131 -0
  148. package/renderer/MchprsWorld.d.ts +131 -0
  149. package/renderer/MchprsWorld.mjs +423 -0
  150. package/renderer/MeshBounds.d.mts +40 -0
  151. package/renderer/MeshBounds.d.ts +40 -0
  152. package/renderer/MeshBounds.mjs +181 -0
  153. package/renderer/MeshConfig.d.mts +101 -0
  154. package/renderer/MeshConfig.d.ts +101 -0
  155. package/renderer/MeshConfig.mjs +306 -0
  156. package/renderer/MeshJob.d.mts +44 -0
  157. package/renderer/MeshJob.d.ts +44 -0
  158. package/renderer/MeshJob.mjs +116 -0
  159. package/renderer/MeshPhase.d.mts +38 -0
  160. package/renderer/MeshPhase.d.ts +38 -0
  161. package/renderer/MeshPhase.mjs +90 -0
  162. package/renderer/MeshProgress.d.mts +32 -0
  163. package/renderer/MeshProgress.d.ts +32 -0
  164. package/renderer/MeshProgress.mjs +134 -0
  165. package/renderer/MeshResult.d.mts +76 -0
  166. package/renderer/MeshResult.d.ts +76 -0
  167. package/renderer/MeshResult.mjs +269 -0
  168. package/renderer/MultiMeshResult.d.mts +50 -0
  169. package/renderer/MultiMeshResult.d.ts +50 -0
  170. package/renderer/MultiMeshResult.mjs +166 -0
  171. package/renderer/Nbt.d.mts +50 -0
  172. package/renderer/Nbt.d.ts +50 -0
  173. package/renderer/Nbt.mjs +161 -0
  174. package/renderer/NucleationError.d.mts +53 -0
  175. package/renderer/NucleationError.d.ts +53 -0
  176. package/renderer/NucleationError.mjs +136 -0
  177. package/renderer/OutputCondition.d.mts +45 -0
  178. package/renderer/OutputCondition.d.ts +45 -0
  179. package/renderer/OutputCondition.mjs +129 -0
  180. package/renderer/Palette.d.mts +157 -0
  181. package/renderer/Palette.d.ts +157 -0
  182. package/renderer/Palette.mjs +487 -0
  183. package/renderer/PaletteBuilder.d.mts +119 -0
  184. package/renderer/PaletteBuilder.d.ts +119 -0
  185. package/renderer/PaletteBuilder.mjs +457 -0
  186. package/renderer/README.md +67 -0
  187. package/renderer/RawMeshExport.d.mts +74 -0
  188. package/renderer/RawMeshExport.d.ts +74 -0
  189. package/renderer/RawMeshExport.mjs +243 -0
  190. package/renderer/RedstoneGraph.d.mts +58 -0
  191. package/renderer/RedstoneGraph.d.ts +58 -0
  192. package/renderer/RedstoneGraph.mjs +242 -0
  193. package/renderer/RegionBounds.d.mts +41 -0
  194. package/renderer/RegionBounds.d.ts +41 -0
  195. package/renderer/RegionBounds.mjs +182 -0
  196. package/renderer/RenderConfig.d.mts +101 -0
  197. package/renderer/RenderConfig.d.ts +101 -0
  198. package/renderer/RenderConfig.mjs +271 -0
  199. package/renderer/Renderer.d.mts +51 -0
  200. package/renderer/Renderer.d.ts +51 -0
  201. package/renderer/Renderer.mjs +219 -0
  202. package/renderer/ResourcePack.d.mts +105 -0
  203. package/renderer/ResourcePack.d.ts +105 -0
  204. package/renderer/ResourcePack.mjs +447 -0
  205. package/renderer/ResourcePackList.d.mts +32 -0
  206. package/renderer/ResourcePackList.d.ts +32 -0
  207. package/renderer/ResourcePackList.mjs +96 -0
  208. package/renderer/Routing.d.mts +66 -0
  209. package/renderer/Routing.d.ts +66 -0
  210. package/renderer/Routing.mjs +220 -0
  211. package/renderer/Schematic.d.mts +977 -0
  212. package/renderer/Schematic.d.ts +977 -0
  213. package/renderer/Schematic.mjs +3820 -0
  214. package/renderer/SchematicBuilder.d.mts +103 -0
  215. package/renderer/SchematicBuilder.d.ts +103 -0
  216. package/renderer/SchematicBuilder.mjs +401 -0
  217. package/renderer/SchematicRegions.d.mts +93 -0
  218. package/renderer/SchematicRegions.d.ts +93 -0
  219. package/renderer/SchematicRegions.mjs +411 -0
  220. package/renderer/SchematicSplitResult.d.mts +26 -0
  221. package/renderer/SchematicSplitResult.d.ts +26 -0
  222. package/renderer/SchematicSplitResult.mjs +84 -0
  223. package/renderer/Scripting.d.mts +40 -0
  224. package/renderer/Scripting.d.ts +40 -0
  225. package/renderer/Scripting.mjs +138 -0
  226. package/renderer/Sdf.d.mts +234 -0
  227. package/renderer/Sdf.d.ts +234 -0
  228. package/renderer/Sdf.mjs +1234 -0
  229. package/renderer/SdfAxis.d.mts +25 -0
  230. package/renderer/SdfAxis.d.ts +25 -0
  231. package/renderer/SdfAxis.mjs +75 -0
  232. package/renderer/SdfBounds.d.mts +19 -0
  233. package/renderer/SdfBounds.d.ts +19 -0
  234. package/renderer/SdfBounds.mjs +161 -0
  235. package/renderer/SdfCellMode.d.mts +26 -0
  236. package/renderer/SdfCellMode.d.ts +26 -0
  237. package/renderer/SdfCellMode.mjs +78 -0
  238. package/renderer/SdfNormal.d.mts +16 -0
  239. package/renderer/SdfNormal.d.ts +16 -0
  240. package/renderer/SdfNormal.mjs +122 -0
  241. package/renderer/Shape.d.mts +143 -0
  242. package/renderer/Shape.d.ts +143 -0
  243. package/renderer/Shape.mjs +458 -0
  244. package/renderer/SortStrategy.d.mts +86 -0
  245. package/renderer/SortStrategy.d.ts +86 -0
  246. package/renderer/SortStrategy.mjs +272 -0
  247. package/renderer/Store.d.mts +83 -0
  248. package/renderer/Store.d.ts +83 -0
  249. package/renderer/Store.mjs +369 -0
  250. package/renderer/StoreIo.d.mts +71 -0
  251. package/renderer/StoreIo.d.ts +71 -0
  252. package/renderer/StoreIo.mjs +292 -0
  253. package/renderer/TextureAtlas.d.mts +40 -0
  254. package/renderer/TextureAtlas.d.ts +40 -0
  255. package/renderer/TextureAtlas.mjs +122 -0
  256. package/renderer/TextureInfo.d.mts +34 -0
  257. package/renderer/TextureInfo.d.ts +34 -0
  258. package/renderer/TextureInfo.mjs +149 -0
  259. package/renderer/TickSettleMode.d.mts +34 -0
  260. package/renderer/TickSettleMode.d.ts +34 -0
  261. package/renderer/TickSettleMode.mjs +84 -0
  262. package/renderer/TickSimulation.d.mts +572 -0
  263. package/renderer/TickSimulation.d.ts +572 -0
  264. package/renderer/TickSimulation.mjs +1299 -0
  265. package/renderer/TypedCircuitExecutor.d.mts +101 -0
  266. package/renderer/TypedCircuitExecutor.d.ts +101 -0
  267. package/renderer/TypedCircuitExecutor.mjs +378 -0
  268. package/renderer/Value.d.mts +73 -0
  269. package/renderer/Value.d.ts +73 -0
  270. package/renderer/Value.mjs +275 -0
  271. package/renderer/VideoConfig.d.mts +15 -0
  272. package/renderer/VideoConfig.d.ts +15 -0
  273. package/renderer/VideoConfig.mjs +44 -0
  274. package/renderer/VoxelModel.d.mts +34 -0
  275. package/renderer/VoxelModel.d.ts +34 -0
  276. package/renderer/VoxelModel.mjs +113 -0
  277. package/renderer/Voxelizer.d.mts +80 -0
  278. package/renderer/Voxelizer.d.ts +80 -0
  279. package/renderer/Voxelizer.mjs +261 -0
  280. package/renderer/WorldChunkView.d.mts +75 -0
  281. package/renderer/WorldChunkView.d.ts +75 -0
  282. package/renderer/WorldChunkView.mjs +224 -0
  283. package/renderer/WorldGenerator.d.mts +75 -0
  284. package/renderer/WorldGenerator.d.ts +75 -0
  285. package/renderer/WorldGenerator.mjs +255 -0
  286. package/renderer/WorldSink.d.mts +50 -0
  287. package/renderer/WorldSink.d.ts +50 -0
  288. package/renderer/WorldSink.mjs +177 -0
  289. package/renderer/WorldStream.d.mts +45 -0
  290. package/renderer/WorldStream.d.ts +45 -0
  291. package/renderer/WorldStream.mjs +184 -0
  292. package/renderer/WsPartitionHints.d.mts +29 -0
  293. package/renderer/WsPartitionHints.d.ts +29 -0
  294. package/renderer/WsPartitionHints.mjs +102 -0
  295. package/renderer/WsProfile.d.mts +46 -0
  296. package/renderer/WsProfile.d.ts +46 -0
  297. package/renderer/WsProfile.mjs +152 -0
  298. package/renderer/WsRunResult.d.mts +83 -0
  299. package/renderer/WsRunResult.d.ts +83 -0
  300. package/renderer/WsRunResult.mjs +326 -0
  301. package/renderer/WsSegmentJob.d.mts +28 -0
  302. package/renderer/WsSegmentJob.d.ts +28 -0
  303. package/renderer/WsSegmentJob.mjs +81 -0
  304. package/renderer/diplomat-runtime.d.mts +15 -0
  305. package/renderer/diplomat-runtime.d.ts +15 -0
  306. package/renderer/diplomat-runtime.mjs +779 -0
  307. package/renderer/diplomat-wasm.mjs +52 -0
  308. package/renderer/diplomat.config.mjs +5 -0
  309. package/renderer/index.d.mts +193 -0
  310. package/renderer/index.d.ts +193 -0
  311. package/renderer/index.mjs +196 -0
  312. package/renderer/nucleation.wasm +0 -0
  313. package/renderer/veneer/design.d.ts +167 -0
  314. package/renderer/veneer/design.mjs +480 -0
@@ -0,0 +1,74 @@
1
+ // generated by diplomat-tool
2
+ import type { MeshConfig } from "./MeshConfig.mjs"
3
+ import type { NucleationError } from "./NucleationError.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
+ * Raw vertex streams for custom rendering. Wraps {@link crate::meshing::RawMeshExport}.
12
+ */
13
+ export class RawMeshExport {
14
+ /** @internal */
15
+ get ffiValue(): pointer;
16
+ /** @internal */
17
+ constructor();
18
+
19
+
20
+ /**
21
+ * Export raw mesh data (old ABI: `schematic_to_raw_mesh`).
22
+ */
23
+ static create(schematic: Schematic, pack: ResourcePack, config: MeshConfig): RawMeshExport;
24
+
25
+ /**
26
+ * Number of vertices in the exported mesh.
27
+ */
28
+ vertexCount(): number;
29
+
30
+ /**
31
+ * Number of triangles in the exported mesh.
32
+ */
33
+ triangleCount(): number;
34
+
35
+ /**
36
+ * Flat `[x,y,z,...]` positions as little-endian `f32` bytes, base64-encoded.
37
+ */
38
+ positionsB64(): string;
39
+
40
+ /**
41
+ * Flat normals as little-endian `f32` bytes, base64-encoded.
42
+ */
43
+ normalsB64(): string;
44
+
45
+ /**
46
+ * Flat UVs as little-endian `f32` bytes, base64-encoded.
47
+ */
48
+ uvsB64(): string;
49
+
50
+ /**
51
+ * Flat vertex colors as little-endian `f32` bytes, base64-encoded.
52
+ */
53
+ colorsB64(): string;
54
+
55
+ /**
56
+ * Triangle indices as little-endian `u32` bytes, base64-encoded.
57
+ */
58
+ indicesB64(): string;
59
+
60
+ /**
61
+ * Raw RGBA texture pixels, base64-encoded.
62
+ */
63
+ textureRgbaB64(): string;
64
+
65
+ /**
66
+ * Width of the baked texture in pixels.
67
+ */
68
+ textureWidth(): number;
69
+
70
+ /**
71
+ * Height of the baked texture in pixels.
72
+ */
73
+ textureHeight(): number;
74
+ }
@@ -0,0 +1,74 @@
1
+ // generated by diplomat-tool
2
+ import type { MeshConfig } from "./MeshConfig.mjs"
3
+ import type { NucleationError } from "./NucleationError.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
+ * Raw vertex streams for custom rendering. Wraps {@link crate::meshing::RawMeshExport}.
12
+ */
13
+ export class RawMeshExport {
14
+ /** @internal */
15
+ get ffiValue(): pointer;
16
+ /** @internal */
17
+ constructor();
18
+
19
+
20
+ /**
21
+ * Export raw mesh data (old ABI: `schematic_to_raw_mesh`).
22
+ */
23
+ static create(schematic: Schematic, pack: ResourcePack, config: MeshConfig): RawMeshExport;
24
+
25
+ /**
26
+ * Number of vertices in the exported mesh.
27
+ */
28
+ vertexCount(): number;
29
+
30
+ /**
31
+ * Number of triangles in the exported mesh.
32
+ */
33
+ triangleCount(): number;
34
+
35
+ /**
36
+ * Flat `[x,y,z,...]` positions as little-endian `f32` bytes, base64-encoded.
37
+ */
38
+ positionsB64(): string;
39
+
40
+ /**
41
+ * Flat normals as little-endian `f32` bytes, base64-encoded.
42
+ */
43
+ normalsB64(): string;
44
+
45
+ /**
46
+ * Flat UVs as little-endian `f32` bytes, base64-encoded.
47
+ */
48
+ uvsB64(): string;
49
+
50
+ /**
51
+ * Flat vertex colors as little-endian `f32` bytes, base64-encoded.
52
+ */
53
+ colorsB64(): string;
54
+
55
+ /**
56
+ * Triangle indices as little-endian `u32` bytes, base64-encoded.
57
+ */
58
+ indicesB64(): string;
59
+
60
+ /**
61
+ * Raw RGBA texture pixels, base64-encoded.
62
+ */
63
+ textureRgbaB64(): string;
64
+
65
+ /**
66
+ * Width of the baked texture in pixels.
67
+ */
68
+ textureWidth(): number;
69
+
70
+ /**
71
+ * Height of the baked texture in pixels.
72
+ */
73
+ textureHeight(): number;
74
+ }
@@ -0,0 +1,243 @@
1
+ // generated by diplomat-tool
2
+ import { MeshConfig } from "./MeshConfig.mjs"
3
+ import { NucleationError } from "./NucleationError.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 RawMeshExport_box_destroy_registry = new FinalizationRegistry((ptr) => {
10
+ wasm.RawMeshExport_destroy(ptr);
11
+ });
12
+
13
+ /**
14
+ * Raw vertex streams for custom rendering. Wraps {@link crate::meshing::RawMeshExport}.
15
+ */
16
+ export class RawMeshExport {
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("RawMeshExport 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
+ RawMeshExport_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
+ * Export raw mesh data (old ABI: `schematic_to_raw_mesh`).
47
+ */
48
+ static create(schematic, pack, config) {
49
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
50
+
51
+
52
+ const result = wasm.RawMeshExport_create(diplomatReceive.buffer, schematic.ffiValue, pack.ffiValue, config.ffiValue);
53
+
54
+ try {
55
+ if (!diplomatReceive.resultFlag) {
56
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
57
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
58
+ }
59
+ return new RawMeshExport(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
60
+ }
61
+
62
+ finally {
63
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
64
+ diplomatReceive.free();
65
+ }
66
+ }
67
+
68
+ /**
69
+ * Number of vertices in the exported mesh.
70
+ */
71
+ vertexCount() {
72
+
73
+ const result = wasm.RawMeshExport_vertex_count(this.ffiValue);
74
+
75
+ try {
76
+ return result;
77
+ }
78
+
79
+ finally {
80
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
81
+ }
82
+ }
83
+
84
+ /**
85
+ * Number of triangles in the exported mesh.
86
+ */
87
+ triangleCount() {
88
+
89
+ const result = wasm.RawMeshExport_triangle_count(this.ffiValue);
90
+
91
+ try {
92
+ return result;
93
+ }
94
+
95
+ finally {
96
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
97
+ }
98
+ }
99
+
100
+ /**
101
+ * Flat `[x,y,z,...]` positions as little-endian `f32` bytes, base64-encoded.
102
+ */
103
+ positionsB64() {
104
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
105
+
106
+ wasm.RawMeshExport_positions_b64(this.ffiValue, write.buffer);
107
+
108
+ try {
109
+ return write.readString8();
110
+ }
111
+
112
+ finally {
113
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
114
+ write.free();
115
+ }
116
+ }
117
+
118
+ /**
119
+ * Flat normals as little-endian `f32` bytes, base64-encoded.
120
+ */
121
+ normalsB64() {
122
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
123
+
124
+ wasm.RawMeshExport_normals_b64(this.ffiValue, write.buffer);
125
+
126
+ try {
127
+ return write.readString8();
128
+ }
129
+
130
+ finally {
131
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
132
+ write.free();
133
+ }
134
+ }
135
+
136
+ /**
137
+ * Flat UVs as little-endian `f32` bytes, base64-encoded.
138
+ */
139
+ uvsB64() {
140
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
141
+
142
+ wasm.RawMeshExport_uvs_b64(this.ffiValue, write.buffer);
143
+
144
+ try {
145
+ return write.readString8();
146
+ }
147
+
148
+ finally {
149
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
150
+ write.free();
151
+ }
152
+ }
153
+
154
+ /**
155
+ * Flat vertex colors as little-endian `f32` bytes, base64-encoded.
156
+ */
157
+ colorsB64() {
158
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
159
+
160
+ wasm.RawMeshExport_colors_b64(this.ffiValue, write.buffer);
161
+
162
+ try {
163
+ return write.readString8();
164
+ }
165
+
166
+ finally {
167
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
168
+ write.free();
169
+ }
170
+ }
171
+
172
+ /**
173
+ * Triangle indices as little-endian `u32` bytes, base64-encoded.
174
+ */
175
+ indicesB64() {
176
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
177
+
178
+ wasm.RawMeshExport_indices_b64(this.ffiValue, write.buffer);
179
+
180
+ try {
181
+ return write.readString8();
182
+ }
183
+
184
+ finally {
185
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
186
+ write.free();
187
+ }
188
+ }
189
+
190
+ /**
191
+ * Raw RGBA texture pixels, base64-encoded.
192
+ */
193
+ textureRgbaB64() {
194
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
195
+
196
+ wasm.RawMeshExport_texture_rgba_b64(this.ffiValue, write.buffer);
197
+
198
+ try {
199
+ return write.readString8();
200
+ }
201
+
202
+ finally {
203
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
204
+ write.free();
205
+ }
206
+ }
207
+
208
+ /**
209
+ * Width of the baked texture in pixels.
210
+ */
211
+ textureWidth() {
212
+
213
+ const result = wasm.RawMeshExport_texture_width(this.ffiValue);
214
+
215
+ try {
216
+ return result;
217
+ }
218
+
219
+ finally {
220
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
221
+ }
222
+ }
223
+
224
+ /**
225
+ * Height of the baked texture in pixels.
226
+ */
227
+ textureHeight() {
228
+
229
+ const result = wasm.RawMeshExport_texture_height(this.ffiValue);
230
+
231
+ try {
232
+ return result;
233
+ }
234
+
235
+ finally {
236
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
237
+ }
238
+ }
239
+
240
+ constructor(symbol, ptr, selfEdge) {
241
+ return this.#internalConstructor(...arguments)
242
+ }
243
+ }
@@ -0,0 +1,58 @@
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
+ * An extracted redstone logic graph. Wraps
9
+ * {@link crate::simulation::graph::RedstoneGraph}.
10
+ */
11
+ export class RedstoneGraph {
12
+ /** @internal */
13
+ get ffiValue(): pointer;
14
+ /** @internal */
15
+ constructor();
16
+
17
+
18
+ /**
19
+ * Number of nodes in the graph.
20
+ */
21
+ nodeCount(): number;
22
+
23
+ /**
24
+ * Total number of directed edges in the graph.
25
+ */
26
+ edgeCount(): number;
27
+
28
+ /**
29
+ * The nodes as a JSON array string.
30
+ */
31
+ nodesJson(): string;
32
+
33
+ /**
34
+ * The directed edges as a JSON array string.
35
+ */
36
+ edgesJson(): string;
37
+
38
+ /**
39
+ * Computed graph features as a JSON object string.
40
+ */
41
+ featuresJson(): string;
42
+
43
+ /**
44
+ * Fingerprint (hex string) for `preset` ("structural" | "functional" |
45
+ * "exact"; empty defaults to "structural").
46
+ */
47
+ fingerprint(preset: string): string;
48
+
49
+ /**
50
+ * Serialize the whole graph to JSON.
51
+ */
52
+ toJson(): string;
53
+
54
+ /**
55
+ * Deserialize a graph from a JSON string.
56
+ */
57
+ static fromJson(json: string): RedstoneGraph;
58
+ }
@@ -0,0 +1,58 @@
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
+ * An extracted redstone logic graph. Wraps
9
+ * {@link crate::simulation::graph::RedstoneGraph}.
10
+ */
11
+ export class RedstoneGraph {
12
+ /** @internal */
13
+ get ffiValue(): pointer;
14
+ /** @internal */
15
+ constructor();
16
+
17
+
18
+ /**
19
+ * Number of nodes in the graph.
20
+ */
21
+ nodeCount(): number;
22
+
23
+ /**
24
+ * Total number of directed edges in the graph.
25
+ */
26
+ edgeCount(): number;
27
+
28
+ /**
29
+ * The nodes as a JSON array string.
30
+ */
31
+ nodesJson(): string;
32
+
33
+ /**
34
+ * The directed edges as a JSON array string.
35
+ */
36
+ edgesJson(): string;
37
+
38
+ /**
39
+ * Computed graph features as a JSON object string.
40
+ */
41
+ featuresJson(): string;
42
+
43
+ /**
44
+ * Fingerprint (hex string) for `preset` ("structural" | "functional" |
45
+ * "exact"; empty defaults to "structural").
46
+ */
47
+ fingerprint(preset: string): string;
48
+
49
+ /**
50
+ * Serialize the whole graph to JSON.
51
+ */
52
+ toJson(): string;
53
+
54
+ /**
55
+ * Deserialize a graph from a JSON string.
56
+ */
57
+ static fromJson(json: string): RedstoneGraph;
58
+ }