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,268 @@
1
+ // generated by diplomat-tool
2
+ import { Dimensions } from "./Dimensions.mjs"
3
+ import { ItemModelConfig } from "./ItemModelConfig.mjs"
4
+ import { ItemModelPackBuilder } from "./ItemModelPackBuilder.mjs"
5
+ import { ItemScale } from "./ItemScale.mjs"
6
+ import { NucleationError } from "./NucleationError.mjs"
7
+ import { ResourcePack } from "./ResourcePack.mjs"
8
+ import { Schematic } from "./Schematic.mjs"
9
+ import wasm from "./diplomat-wasm.mjs";
10
+ import * as diplomatRuntime from "./diplomat-runtime.mjs";
11
+
12
+ const ItemModelResult_box_destroy_registry = new FinalizationRegistry((ptr) => {
13
+ wasm.ItemModelResult_destroy(ptr);
14
+ });
15
+
16
+ /**
17
+ * A generated item model. Wraps {@link crate::meshing::ItemModelResult}.
18
+ *
19
+ * Holds `Option<...>` because {@link ItemModelResult::add_to_pack} moves the
20
+ * inner value into an {@link ItemModelPackBuilder} (PORTING rule 11); accessors
21
+ * return `AlreadyConsumed` afterwards.
22
+ */
23
+ export class ItemModelResult {
24
+ // Internal ptr reference:
25
+ #ptr = null;
26
+
27
+ // Lifetimes are only to keep dependencies alive.
28
+ // Since JS won't garbage collect until there are no incoming edges.
29
+ #selfEdge = [];
30
+
31
+ #internalConstructor(symbol, ptr, selfEdge) {
32
+ if (symbol !== diplomatRuntime.internalConstructor) {
33
+ console.error("ItemModelResult is an Opaque type. You cannot call its constructor.");
34
+ return;
35
+ }
36
+ this.#ptr = ptr;
37
+ this.#selfEdge = selfEdge;
38
+
39
+ // Are we being borrowed? If not, we can register.
40
+ if (this.#selfEdge.length === 0) {
41
+ ItemModelResult_box_destroy_registry.register(this, this.#ptr);
42
+ }
43
+
44
+ return this;
45
+ }
46
+ /** @internal */
47
+ get ffiValue() {
48
+ return this.#ptr;
49
+ }
50
+
51
+
52
+ /**
53
+ * Generate an item model from a schematic (old ABI: `schematic_to_item_model`).
54
+ */
55
+ static create(schematic, pack, config) {
56
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
57
+
58
+
59
+ const result = wasm.ItemModelResult_create(diplomatReceive.buffer, schematic.ffiValue, pack.ffiValue, config.ffiValue);
60
+
61
+ try {
62
+ if (!diplomatReceive.resultFlag) {
63
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
64
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
65
+ }
66
+ return new ItemModelResult(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
67
+ }
68
+
69
+ finally {
70
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
71
+ diplomatReceive.free();
72
+ }
73
+ }
74
+
75
+ /**
76
+ * The Minecraft item model JSON.
77
+ */
78
+ modelJson() {
79
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
80
+
81
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
82
+
83
+
84
+ const result = wasm.ItemModelResult_model_json(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
+ /**
102
+ * Number of elements (cuboids) in the generated model.
103
+ */
104
+ elementCount() {
105
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
106
+
107
+
108
+ const result = wasm.ItemModelResult_element_count(diplomatReceive.buffer, this.ffiValue);
109
+
110
+ try {
111
+ if (!diplomatReceive.resultFlag) {
112
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
113
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
114
+ }
115
+ return (new Uint32Array(wasm.memory.buffer, diplomatReceive.buffer, 1))[0];
116
+ }
117
+
118
+ finally {
119
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
120
+ diplomatReceive.free();
121
+ }
122
+ }
123
+
124
+ /**
125
+ * Number of textures the generated model uses.
126
+ */
127
+ textureCount() {
128
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
129
+
130
+
131
+ const result = wasm.ItemModelResult_texture_count(diplomatReceive.buffer, this.ffiValue);
132
+
133
+ try {
134
+ if (!diplomatReceive.resultFlag) {
135
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
136
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
137
+ }
138
+ return (new Uint32Array(wasm.memory.buffer, diplomatReceive.buffer, 1))[0];
139
+ }
140
+
141
+ finally {
142
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
143
+ diplomatReceive.free();
144
+ }
145
+ }
146
+
147
+ /**
148
+ * Number of textured planes in the generated model.
149
+ */
150
+ planeCount() {
151
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
152
+
153
+
154
+ const result = wasm.ItemModelResult_plane_count(diplomatReceive.buffer, this.ffiValue);
155
+
156
+ try {
157
+ if (!diplomatReceive.resultFlag) {
158
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
159
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
160
+ }
161
+ return (new Uint32Array(wasm.memory.buffer, diplomatReceive.buffer, 1))[0];
162
+ }
163
+
164
+ finally {
165
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
166
+ diplomatReceive.free();
167
+ }
168
+ }
169
+
170
+ /**
171
+ * Source schematic dimensions in blocks.
172
+ */
173
+ dimensions() {
174
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 13, 4, true);
175
+
176
+
177
+ const result = wasm.ItemModelResult_dimensions(diplomatReceive.buffer, this.ffiValue);
178
+
179
+ try {
180
+ if (!diplomatReceive.resultFlag) {
181
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
182
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
183
+ }
184
+ return Dimensions._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
185
+ }
186
+
187
+ finally {
188
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
189
+ diplomatReceive.free();
190
+ }
191
+ }
192
+
193
+ /**
194
+ * The applied model scale (old ABI: `itemmodel_result_scale`).
195
+ */
196
+ scale() {
197
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 13, 4, true);
198
+
199
+
200
+ const result = wasm.ItemModelResult_scale(diplomatReceive.buffer, this.ffiValue);
201
+
202
+ try {
203
+ if (!diplomatReceive.resultFlag) {
204
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
205
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
206
+ }
207
+ return ItemScale._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
208
+ }
209
+
210
+ finally {
211
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
212
+ diplomatReceive.free();
213
+ }
214
+ }
215
+
216
+ /**
217
+ * A single-model resource pack ZIP, base64-encoded.
218
+ */
219
+ toResourcePackZipB64() {
220
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
221
+
222
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
223
+
224
+
225
+ const result = wasm.ItemModelResult_to_resource_pack_zip_b64(diplomatReceive.buffer, this.ffiValue, write.buffer);
226
+
227
+ try {
228
+ if (!diplomatReceive.resultFlag) {
229
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
230
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
231
+ }
232
+ return write.readString8();
233
+ }
234
+
235
+ finally {
236
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
237
+ diplomatReceive.free();
238
+ write.free();
239
+ }
240
+ }
241
+
242
+ /**
243
+ * Move this result into a pack builder. Consumes the result: further
244
+ * accessor calls return `AlreadyConsumed`.
245
+ */
246
+ addToPack(builder) {
247
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
248
+
249
+
250
+ const result = wasm.ItemModelResult_add_to_pack(diplomatReceive.buffer, this.ffiValue, builder.ffiValue);
251
+
252
+ try {
253
+ if (!diplomatReceive.resultFlag) {
254
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
255
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
256
+ }
257
+ }
258
+
259
+ finally {
260
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
261
+ diplomatReceive.free();
262
+ }
263
+ }
264
+
265
+ constructor(symbol, ptr, selfEdge) {
266
+ return this.#internalConstructor(...arguments)
267
+ }
268
+ }
@@ -0,0 +1,31 @@
1
+ // generated by diplomat-tool
2
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
3
+
4
+ export type ItemScale_obj = {
5
+ x: number;
6
+ y: number;
7
+ z: number;
8
+ };
9
+
10
+
11
+
12
+ /**
13
+ * Non-uniform model scale factors.
14
+ */
15
+ export class ItemScale {
16
+ get x(): number;
17
+ set x(value: number);
18
+ get y(): number;
19
+ set y(value: number);
20
+ get z(): number;
21
+ set z(value: number);
22
+ /** @internal */
23
+ static fromFields(structObj : ItemScale_obj) : ItemScale;
24
+
25
+ /**
26
+ * Create `ItemScale` from an object that contains all of `ItemScale`s fields.
27
+ * Optional fields do not need to be included in the provided object.
28
+ */
29
+ constructor(structObj: ItemScale_obj);
30
+
31
+ }
@@ -0,0 +1,31 @@
1
+ // generated by diplomat-tool
2
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
3
+
4
+ export type ItemScale_obj = {
5
+ x: number;
6
+ y: number;
7
+ z: number;
8
+ };
9
+
10
+
11
+
12
+ /**
13
+ * Non-uniform model scale factors.
14
+ */
15
+ export class ItemScale {
16
+ get x(): number;
17
+ set x(value: number);
18
+ get y(): number;
19
+ set y(value: number);
20
+ get z(): number;
21
+ set z(value: number);
22
+ /** @internal */
23
+ static fromFields(structObj : ItemScale_obj) : ItemScale;
24
+
25
+ /**
26
+ * Create `ItemScale` from an object that contains all of `ItemScale`s fields.
27
+ * Optional fields do not need to be included in the provided object.
28
+ */
29
+ constructor(structObj: ItemScale_obj);
30
+
31
+ }
@@ -0,0 +1,133 @@
1
+ // generated by diplomat-tool
2
+ import wasm from "./diplomat-wasm.mjs";
3
+ import * as diplomatRuntime from "./diplomat-runtime.mjs";
4
+
5
+
6
+
7
+ /**
8
+ * Non-uniform model scale factors.
9
+ */
10
+ export class ItemScale {
11
+ #x;
12
+ get x() {
13
+ return this.#x;
14
+ }
15
+ set x(value){
16
+ this.#x = value;
17
+ }
18
+ #y;
19
+ get y() {
20
+ return this.#y;
21
+ }
22
+ set y(value){
23
+ this.#y = value;
24
+ }
25
+ #z;
26
+ get z() {
27
+ return this.#z;
28
+ }
29
+ set z(value){
30
+ this.#z = value;
31
+ }
32
+ /** @internal */
33
+ static fromFields(structObj) {
34
+ return new ItemScale(structObj);
35
+ }
36
+
37
+ #internalConstructor(structObj) {
38
+ if (typeof structObj !== "object") {
39
+ throw new Error("ItemScale's constructor takes an object of ItemScale's fields.");
40
+ }
41
+
42
+ if ("x" in structObj) {
43
+ this.#x = structObj.x;
44
+ } else {
45
+ throw new Error("Missing required field x.");
46
+ }
47
+
48
+ if ("y" in structObj) {
49
+ this.#y = structObj.y;
50
+ } else {
51
+ throw new Error("Missing required field y.");
52
+ }
53
+
54
+ if ("z" in structObj) {
55
+ this.#z = structObj.z;
56
+ } else {
57
+ throw new Error("Missing required field z.");
58
+ }
59
+
60
+ return this;
61
+ }
62
+
63
+ // Return this struct in FFI function friendly format.
64
+ // Returns an array that can be expanded with spread syntax (...)
65
+ _intoFFI(
66
+ dst,
67
+ functionCleanupArena,
68
+ appendArrayMap
69
+ ) {
70
+
71
+ this._writeToArrayBuffer(wasm.memory.buffer, dst, functionCleanupArena, appendArrayMap);
72
+
73
+ return dst;
74
+ }
75
+
76
+ static get _sizeBytes() {
77
+ return 12;
78
+ }
79
+
80
+ /// Currently unused, we may want to use later on though:
81
+ static get _sizeAlign() {
82
+ return 4;
83
+ }
84
+
85
+ static _fromSuppliedValue(internalConstructor, obj) {
86
+ if (internalConstructor !== diplomatRuntime.internalConstructor) {
87
+ throw new Error("_fromSuppliedValue cannot be called externally.");
88
+ }
89
+
90
+ if (obj instanceof ItemScale) {
91
+ return obj;
92
+ }
93
+
94
+ return ItemScale.fromFields(obj);
95
+ }
96
+
97
+ _writeToArrayBuffer(
98
+ arrayBuffer,
99
+ offset,
100
+ functionCleanupArena,
101
+ appendArrayMap
102
+ ) {
103
+ diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#x, Float32Array);
104
+ diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 4, this.#y, Float32Array);
105
+ diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 8, this.#z, Float32Array);
106
+ }
107
+
108
+ // This struct contains borrowed fields, so this takes in a list of
109
+ // "edges" corresponding to where each lifetime's data may have been borrowed from
110
+ // and passes it down to individual fields containing the borrow.
111
+ // This method does not attempt to handle any dependencies between lifetimes, the caller
112
+ // should handle this when constructing edge arrays.
113
+ static _fromFFI(internalConstructor, ptr) {
114
+ ptr >>>= 0; // unsigned wasm32 address; field values retain their signedness.
115
+ if (internalConstructor !== diplomatRuntime.internalConstructor) {
116
+ throw new Error("ItemScale._fromFFI is not meant to be called externally. Please use the default constructor.");
117
+ }
118
+ let structObj = {};
119
+ const xDeref = (new Float32Array(wasm.memory.buffer, ptr, 1))[0];
120
+ structObj.x = xDeref;
121
+ const yDeref = (new Float32Array(wasm.memory.buffer, ptr + 4, 1))[0];
122
+ structObj.y = yDeref;
123
+ const zDeref = (new Float32Array(wasm.memory.buffer, ptr + 8, 1))[0];
124
+ structObj.z = zDeref;
125
+
126
+ return new ItemScale(structObj);
127
+ }
128
+
129
+
130
+ constructor(structObj) {
131
+ return this.#internalConstructor(...arguments)
132
+ }
133
+ }
@@ -0,0 +1,52 @@
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
+ * Maps logical bits to physical positions (PORTING rule 10).
9
+ */
10
+ export class LayoutFunction {
11
+ /** @internal */
12
+ get ffiValue(): pointer;
13
+ /** @internal */
14
+ constructor();
15
+
16
+
17
+ /**
18
+ * One bit per position: signal strength 0 = false, 15 = true.
19
+ * The most common layout for traditional redstone circuits.
20
+ */
21
+ static oneToOne(): LayoutFunction;
22
+
23
+ /**
24
+ * Four bits per position, packed as a hex nibble (0-15) with the
25
+ * lowest bit first; uses `ceil(bits / 4)` positions (4x denser than
26
+ * one-to-one).
27
+ */
28
+ static packed4(): LayoutFunction;
29
+
30
+ /**
31
+ * Custom bit-to-position mapping.
32
+ */
33
+ static custom(mapping: Array<number>): LayoutFunction;
34
+
35
+ /**
36
+ * 2D matrix layout, elements laid out row by row; element bits are
37
+ * packed 4 per position (nibbles).
38
+ */
39
+ static rowMajor(rows: number, cols: number, bitsPerElement: number): LayoutFunction;
40
+
41
+ /**
42
+ * 2D matrix layout, elements laid out column by column; element bits
43
+ * are packed 4 per position (nibbles).
44
+ */
45
+ static columnMajor(rows: number, cols: number, bitsPerElement: number): LayoutFunction;
46
+
47
+ /**
48
+ * Screen layout: pixels laid out row by row, left to right; pixel
49
+ * bits are packed 4 per position (nibbles).
50
+ */
51
+ static scanline(width: number, height: number, bitsPerPixel: number): LayoutFunction;
52
+ }
@@ -0,0 +1,52 @@
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
+ * Maps logical bits to physical positions (PORTING rule 10).
9
+ */
10
+ export class LayoutFunction {
11
+ /** @internal */
12
+ get ffiValue(): pointer;
13
+ /** @internal */
14
+ constructor();
15
+
16
+
17
+ /**
18
+ * One bit per position: signal strength 0 = false, 15 = true.
19
+ * The most common layout for traditional redstone circuits.
20
+ */
21
+ static oneToOne(): LayoutFunction;
22
+
23
+ /**
24
+ * Four bits per position, packed as a hex nibble (0-15) with the
25
+ * lowest bit first; uses `ceil(bits / 4)` positions (4x denser than
26
+ * one-to-one).
27
+ */
28
+ static packed4(): LayoutFunction;
29
+
30
+ /**
31
+ * Custom bit-to-position mapping.
32
+ */
33
+ static custom(mapping: Array<number>): LayoutFunction;
34
+
35
+ /**
36
+ * 2D matrix layout, elements laid out row by row; element bits are
37
+ * packed 4 per position (nibbles).
38
+ */
39
+ static rowMajor(rows: number, cols: number, bitsPerElement: number): LayoutFunction;
40
+
41
+ /**
42
+ * 2D matrix layout, elements laid out column by column; element bits
43
+ * are packed 4 per position (nibbles).
44
+ */
45
+ static columnMajor(rows: number, cols: number, bitsPerElement: number): LayoutFunction;
46
+
47
+ /**
48
+ * Screen layout: pixels laid out row by row, left to right; pixel
49
+ * bits are packed 4 per position (nibbles).
50
+ */
51
+ static scanline(width: number, height: number, bitsPerPixel: number): LayoutFunction;
52
+ }