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,65 @@
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
+ * Item model generation configuration. Wraps {@link crate::meshing::ItemModelConfig}.
9
+ */
10
+ export class ItemModelConfig {
11
+ /** @internal */
12
+ get ffiValue(): pointer;
13
+ /** @internal */
14
+ constructor();
15
+
16
+
17
+ /**
18
+ * Create a config for a model named `model_name` (used in resource-pack
19
+ * file paths). Other options start at their defaults: namespace
20
+ * "nucleation", centered, 16px texture resolution, item "paper",
21
+ * custom model data "1", auto scale.
22
+ */
23
+ static create(modelName: string): ItemModelConfig;
24
+
25
+ /**
26
+ * Set the resource-pack namespace (default: "nucleation").
27
+ */
28
+ setNamespace(namespace: string): void;
29
+
30
+ /**
31
+ * Center the schematic within the model bounds (default: true).
32
+ */
33
+ setCenter(center: boolean): void;
34
+
35
+ /**
36
+ * Set the texture resolution in pixels per block face (default: 16).
37
+ */
38
+ setTextureResolution(resolution: number): void;
39
+
40
+ /**
41
+ * Set the Minecraft item the model binds to (default: "paper").
42
+ */
43
+ setItem(item: string): void;
44
+
45
+ /**
46
+ * Set the custom-model-data string used to select this model in game
47
+ * (default: "1").
48
+ */
49
+ setCustomModelData(cmd: string): void;
50
+
51
+ /**
52
+ * Uniform scale.
53
+ */
54
+ setScale(scale: number): void;
55
+
56
+ /**
57
+ * Per-axis scale.
58
+ */
59
+ setScaleXyz(sx: number, sy: number, sz: number): void;
60
+
61
+ /**
62
+ * Auto-fit scale.
63
+ */
64
+ setScaleAuto(): void;
65
+ }
@@ -0,0 +1,65 @@
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
+ * Item model generation configuration. Wraps {@link crate::meshing::ItemModelConfig}.
9
+ */
10
+ export class ItemModelConfig {
11
+ /** @internal */
12
+ get ffiValue(): pointer;
13
+ /** @internal */
14
+ constructor();
15
+
16
+
17
+ /**
18
+ * Create a config for a model named `model_name` (used in resource-pack
19
+ * file paths). Other options start at their defaults: namespace
20
+ * "nucleation", centered, 16px texture resolution, item "paper",
21
+ * custom model data "1", auto scale.
22
+ */
23
+ static create(modelName: string): ItemModelConfig;
24
+
25
+ /**
26
+ * Set the resource-pack namespace (default: "nucleation").
27
+ */
28
+ setNamespace(namespace: string): void;
29
+
30
+ /**
31
+ * Center the schematic within the model bounds (default: true).
32
+ */
33
+ setCenter(center: boolean): void;
34
+
35
+ /**
36
+ * Set the texture resolution in pixels per block face (default: 16).
37
+ */
38
+ setTextureResolution(resolution: number): void;
39
+
40
+ /**
41
+ * Set the Minecraft item the model binds to (default: "paper").
42
+ */
43
+ setItem(item: string): void;
44
+
45
+ /**
46
+ * Set the custom-model-data string used to select this model in game
47
+ * (default: "1").
48
+ */
49
+ setCustomModelData(cmd: string): void;
50
+
51
+ /**
52
+ * Uniform scale.
53
+ */
54
+ setScale(scale: number): void;
55
+
56
+ /**
57
+ * Per-axis scale.
58
+ */
59
+ setScaleXyz(sx: number, sy: number, sz: number): void;
60
+
61
+ /**
62
+ * Auto-fit scale.
63
+ */
64
+ setScaleAuto(): void;
65
+ }
@@ -0,0 +1,223 @@
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 ItemModelConfig_box_destroy_registry = new FinalizationRegistry((ptr) => {
7
+ wasm.ItemModelConfig_destroy(ptr);
8
+ });
9
+
10
+ /**
11
+ * Item model generation configuration. Wraps {@link crate::meshing::ItemModelConfig}.
12
+ */
13
+ export class ItemModelConfig {
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("ItemModelConfig 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
+ ItemModelConfig_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 for a model named `model_name` (used in resource-pack
44
+ * file paths). Other options start at their defaults: namespace
45
+ * "nucleation", centered, 16px texture resolution, item "paper",
46
+ * custom model data "1", auto scale.
47
+ */
48
+ static create(modelName) {
49
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
50
+
51
+ const modelNameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, modelName)));
52
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
53
+
54
+
55
+ const result = wasm.ItemModelConfig_create(diplomatReceive.buffer, modelNameSlice.ptr);
56
+
57
+ try {
58
+ if (!diplomatReceive.resultFlag) {
59
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
60
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
61
+ }
62
+ return new ItemModelConfig(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
63
+ }
64
+
65
+ finally {
66
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
67
+ functionCleanupArena.free();
68
+
69
+ diplomatReceive.free();
70
+ }
71
+ }
72
+
73
+ /**
74
+ * Set the resource-pack namespace (default: "nucleation").
75
+ */
76
+ setNamespace(namespace) {
77
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
78
+
79
+ const namespaceSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, namespace)));
80
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
81
+
82
+
83
+ const result = wasm.ItemModelConfig_set_namespace(diplomatReceive.buffer, this.ffiValue, namespaceSlice.ptr);
84
+
85
+ try {
86
+ if (!diplomatReceive.resultFlag) {
87
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
88
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
89
+ }
90
+ }
91
+
92
+ finally {
93
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
94
+ functionCleanupArena.free();
95
+
96
+ diplomatReceive.free();
97
+ }
98
+ }
99
+
100
+ /**
101
+ * Center the schematic within the model bounds (default: true).
102
+ */
103
+ setCenter(center) {
104
+ wasm.ItemModelConfig_set_center(this.ffiValue, center);
105
+
106
+ try {}
107
+
108
+ finally {
109
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
110
+ }
111
+ }
112
+
113
+ /**
114
+ * Set the texture resolution in pixels per block face (default: 16).
115
+ */
116
+ setTextureResolution(resolution) {
117
+ wasm.ItemModelConfig_set_texture_resolution(this.ffiValue, resolution);
118
+
119
+ try {}
120
+
121
+ finally {
122
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
123
+ }
124
+ }
125
+
126
+ /**
127
+ * Set the Minecraft item the model binds to (default: "paper").
128
+ */
129
+ setItem(item) {
130
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
131
+
132
+ const itemSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, item)));
133
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
134
+
135
+
136
+ const result = wasm.ItemModelConfig_set_item(diplomatReceive.buffer, this.ffiValue, itemSlice.ptr);
137
+
138
+ try {
139
+ if (!diplomatReceive.resultFlag) {
140
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
141
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
142
+ }
143
+ }
144
+
145
+ finally {
146
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
147
+ functionCleanupArena.free();
148
+
149
+ diplomatReceive.free();
150
+ }
151
+ }
152
+
153
+ /**
154
+ * Set the custom-model-data string used to select this model in game
155
+ * (default: "1").
156
+ */
157
+ setCustomModelData(cmd) {
158
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
159
+
160
+ const cmdSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, cmd)));
161
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
162
+
163
+
164
+ const result = wasm.ItemModelConfig_set_custom_model_data(diplomatReceive.buffer, this.ffiValue, cmdSlice.ptr);
165
+
166
+ try {
167
+ if (!diplomatReceive.resultFlag) {
168
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
169
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
170
+ }
171
+ }
172
+
173
+ finally {
174
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
175
+ functionCleanupArena.free();
176
+
177
+ diplomatReceive.free();
178
+ }
179
+ }
180
+
181
+ /**
182
+ * Uniform scale.
183
+ */
184
+ setScale(scale) {
185
+ wasm.ItemModelConfig_set_scale(this.ffiValue, scale);
186
+
187
+ try {}
188
+
189
+ finally {
190
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
191
+ }
192
+ }
193
+
194
+ /**
195
+ * Per-axis scale.
196
+ */
197
+ setScaleXyz(sx, sy, sz) {
198
+ wasm.ItemModelConfig_set_scale_xyz(this.ffiValue, sx, sy, sz);
199
+
200
+ try {}
201
+
202
+ finally {
203
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
204
+ }
205
+ }
206
+
207
+ /**
208
+ * Auto-fit scale.
209
+ */
210
+ setScaleAuto() {
211
+ wasm.ItemModelConfig_set_scale_auto(this.ffiValue);
212
+
213
+ try {}
214
+
215
+ finally {
216
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
217
+ }
218
+ }
219
+
220
+ constructor(symbol, ptr, selfEdge) {
221
+ return this.#internalConstructor(...arguments)
222
+ }
223
+ }
@@ -0,0 +1,32 @@
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
+ * Accumulates {@link ItemModelResult}s to build a combined resource pack ZIP
9
+ * (old ABI: `itemmodel_build_resource_pack` took an array of pointers).
10
+ */
11
+ export class ItemModelPackBuilder {
12
+ /** @internal */
13
+ get ffiValue(): pointer;
14
+ /** @internal */
15
+ constructor();
16
+
17
+
18
+ /**
19
+ * Create an empty pack builder.
20
+ */
21
+ static create(): ItemModelPackBuilder;
22
+
23
+ /**
24
+ * Number of results added so far.
25
+ */
26
+ len(): number;
27
+
28
+ /**
29
+ * Build a resource pack ZIP from every added result, base64-encoded.
30
+ */
31
+ buildZipB64(): string;
32
+ }
@@ -0,0 +1,32 @@
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
+ * Accumulates {@link ItemModelResult}s to build a combined resource pack ZIP
9
+ * (old ABI: `itemmodel_build_resource_pack` took an array of pointers).
10
+ */
11
+ export class ItemModelPackBuilder {
12
+ /** @internal */
13
+ get ffiValue(): pointer;
14
+ /** @internal */
15
+ constructor();
16
+
17
+
18
+ /**
19
+ * Create an empty pack builder.
20
+ */
21
+ static create(): ItemModelPackBuilder;
22
+
23
+ /**
24
+ * Number of results added so far.
25
+ */
26
+ len(): number;
27
+
28
+ /**
29
+ * Build a resource pack ZIP from every added result, base64-encoded.
30
+ */
31
+ buildZipB64(): string;
32
+ }
@@ -0,0 +1,104 @@
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 ItemModelPackBuilder_box_destroy_registry = new FinalizationRegistry((ptr) => {
7
+ wasm.ItemModelPackBuilder_destroy(ptr);
8
+ });
9
+
10
+ /**
11
+ * Accumulates {@link ItemModelResult}s to build a combined resource pack ZIP
12
+ * (old ABI: `itemmodel_build_resource_pack` took an array of pointers).
13
+ */
14
+ export class ItemModelPackBuilder {
15
+ // Internal ptr reference:
16
+ #ptr = null;
17
+
18
+ // Lifetimes are only to keep dependencies alive.
19
+ // Since JS won't garbage collect until there are no incoming edges.
20
+ #selfEdge = [];
21
+
22
+ #internalConstructor(symbol, ptr, selfEdge) {
23
+ if (symbol !== diplomatRuntime.internalConstructor) {
24
+ console.error("ItemModelPackBuilder is an Opaque type. You cannot call its constructor.");
25
+ return;
26
+ }
27
+ this.#ptr = ptr;
28
+ this.#selfEdge = selfEdge;
29
+
30
+ // Are we being borrowed? If not, we can register.
31
+ if (this.#selfEdge.length === 0) {
32
+ ItemModelPackBuilder_box_destroy_registry.register(this, this.#ptr);
33
+ }
34
+
35
+ return this;
36
+ }
37
+ /** @internal */
38
+ get ffiValue() {
39
+ return this.#ptr;
40
+ }
41
+
42
+
43
+ /**
44
+ * Create an empty pack builder.
45
+ */
46
+ static create() {
47
+
48
+ const result = wasm.ItemModelPackBuilder_create();
49
+
50
+ try {
51
+ return new ItemModelPackBuilder(diplomatRuntime.internalConstructor, result, []);
52
+ }
53
+
54
+ finally {
55
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
56
+ }
57
+ }
58
+
59
+ /**
60
+ * Number of results added so far.
61
+ */
62
+ len() {
63
+
64
+ const result = wasm.ItemModelPackBuilder_len(this.ffiValue);
65
+
66
+ try {
67
+ return result;
68
+ }
69
+
70
+ finally {
71
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
72
+ }
73
+ }
74
+
75
+ /**
76
+ * Build a resource pack ZIP from every added result, base64-encoded.
77
+ */
78
+ buildZipB64() {
79
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
80
+
81
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
82
+
83
+
84
+ const result = wasm.ItemModelPackBuilder_build_zip_b64(diplomatReceive.buffer, this.ffiValue, write.buffer);
85
+
86
+ try {
87
+ if (!diplomatReceive.resultFlag) {
88
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
89
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
90
+ }
91
+ return write.readString8();
92
+ }
93
+
94
+ finally {
95
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
96
+ diplomatReceive.free();
97
+ write.free();
98
+ }
99
+ }
100
+
101
+ constructor(symbol, ptr, selfEdge) {
102
+ return this.#internalConstructor(...arguments)
103
+ }
104
+ }
@@ -0,0 +1,72 @@
1
+ // generated by diplomat-tool
2
+ import type { Dimensions } from "./Dimensions.mjs"
3
+ import type { ItemModelConfig } from "./ItemModelConfig.mjs"
4
+ import type { ItemModelPackBuilder } from "./ItemModelPackBuilder.mjs"
5
+ import type { ItemScale } from "./ItemScale.mjs"
6
+ import type { NucleationError } from "./NucleationError.mjs"
7
+ import type { ResourcePack } from "./ResourcePack.mjs"
8
+ import type { Schematic } from "./Schematic.mjs"
9
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
10
+
11
+
12
+
13
+ /**
14
+ * A generated item model. Wraps {@link crate::meshing::ItemModelResult}.
15
+ *
16
+ * Holds `Option<...>` because {@link ItemModelResult::add_to_pack} moves the
17
+ * inner value into an {@link ItemModelPackBuilder} (PORTING rule 11); accessors
18
+ * return `AlreadyConsumed` afterwards.
19
+ */
20
+ export class ItemModelResult {
21
+ /** @internal */
22
+ get ffiValue(): pointer;
23
+ /** @internal */
24
+ constructor();
25
+
26
+
27
+ /**
28
+ * Generate an item model from a schematic (old ABI: `schematic_to_item_model`).
29
+ */
30
+ static create(schematic: Schematic, pack: ResourcePack, config: ItemModelConfig): ItemModelResult;
31
+
32
+ /**
33
+ * The Minecraft item model JSON.
34
+ */
35
+ modelJson(): string;
36
+
37
+ /**
38
+ * Number of elements (cuboids) in the generated model.
39
+ */
40
+ elementCount(): number;
41
+
42
+ /**
43
+ * Number of textures the generated model uses.
44
+ */
45
+ textureCount(): number;
46
+
47
+ /**
48
+ * Number of textured planes in the generated model.
49
+ */
50
+ planeCount(): number;
51
+
52
+ /**
53
+ * Source schematic dimensions in blocks.
54
+ */
55
+ dimensions(): Dimensions;
56
+
57
+ /**
58
+ * The applied model scale (old ABI: `itemmodel_result_scale`).
59
+ */
60
+ scale(): ItemScale;
61
+
62
+ /**
63
+ * A single-model resource pack ZIP, base64-encoded.
64
+ */
65
+ toResourcePackZipB64(): string;
66
+
67
+ /**
68
+ * Move this result into a pack builder. Consumes the result: further
69
+ * accessor calls return `AlreadyConsumed`.
70
+ */
71
+ addToPack(builder: ItemModelPackBuilder): void;
72
+ }
@@ -0,0 +1,72 @@
1
+ // generated by diplomat-tool
2
+ import type { Dimensions } from "./Dimensions.mjs"
3
+ import type { ItemModelConfig } from "./ItemModelConfig.mjs"
4
+ import type { ItemModelPackBuilder } from "./ItemModelPackBuilder.mjs"
5
+ import type { ItemScale } from "./ItemScale.mjs"
6
+ import type { NucleationError } from "./NucleationError.mjs"
7
+ import type { ResourcePack } from "./ResourcePack.mjs"
8
+ import type { Schematic } from "./Schematic.mjs"
9
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
10
+
11
+
12
+
13
+ /**
14
+ * A generated item model. Wraps {@link crate::meshing::ItemModelResult}.
15
+ *
16
+ * Holds `Option<...>` because {@link ItemModelResult::add_to_pack} moves the
17
+ * inner value into an {@link ItemModelPackBuilder} (PORTING rule 11); accessors
18
+ * return `AlreadyConsumed` afterwards.
19
+ */
20
+ export class ItemModelResult {
21
+ /** @internal */
22
+ get ffiValue(): pointer;
23
+ /** @internal */
24
+ constructor();
25
+
26
+
27
+ /**
28
+ * Generate an item model from a schematic (old ABI: `schematic_to_item_model`).
29
+ */
30
+ static create(schematic: Schematic, pack: ResourcePack, config: ItemModelConfig): ItemModelResult;
31
+
32
+ /**
33
+ * The Minecraft item model JSON.
34
+ */
35
+ modelJson(): string;
36
+
37
+ /**
38
+ * Number of elements (cuboids) in the generated model.
39
+ */
40
+ elementCount(): number;
41
+
42
+ /**
43
+ * Number of textures the generated model uses.
44
+ */
45
+ textureCount(): number;
46
+
47
+ /**
48
+ * Number of textured planes in the generated model.
49
+ */
50
+ planeCount(): number;
51
+
52
+ /**
53
+ * Source schematic dimensions in blocks.
54
+ */
55
+ dimensions(): Dimensions;
56
+
57
+ /**
58
+ * The applied model scale (old ABI: `itemmodel_result_scale`).
59
+ */
60
+ scale(): ItemScale;
61
+
62
+ /**
63
+ * A single-model resource pack ZIP, base64-encoded.
64
+ */
65
+ toResourcePackZipB64(): string;
66
+
67
+ /**
68
+ * Move this result into a pack builder. Consumes the result: further
69
+ * accessor calls return `AlreadyConsumed`.
70
+ */
71
+ addToPack(builder: ItemModelPackBuilder): void;
72
+ }