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,134 @@
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 BlockState_box_destroy_registry = new FinalizationRegistry((ptr) => {
7
+ wasm.BlockState_destroy(ptr);
8
+ });
9
+
10
+ /**
11
+ * A block state: a block name plus its properties. Port of the old
12
+ * `BlockStateWrapper` / `blockstate_*` fns.
13
+ */
14
+ export class BlockState {
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("BlockState 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
+ BlockState_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 a block state with the given name and no properties.
45
+ */
46
+ static create(name) {
47
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
48
+
49
+ const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, name)));
50
+
51
+ const result = wasm.BlockState_create(nameSlice.ptr);
52
+
53
+ try {
54
+ return new BlockState(diplomatRuntime.internalConstructor, result, []);
55
+ }
56
+
57
+ finally {
58
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
59
+ functionCleanupArena.free();
60
+
61
+ }
62
+ }
63
+
64
+ /**
65
+ * A copy of this block state with `key=value` set; the original is
66
+ * unchanged.
67
+ */
68
+ withProperty(key, value) {
69
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
70
+
71
+ const keySlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, key)));
72
+ const valueSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, value)));
73
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
74
+
75
+
76
+ const result = wasm.BlockState_with_property(diplomatReceive.buffer, this.ffiValue, keySlice.ptr, valueSlice.ptr);
77
+
78
+ try {
79
+ if (!diplomatReceive.resultFlag) {
80
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
81
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
82
+ }
83
+ return new BlockState(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
84
+ }
85
+
86
+ finally {
87
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
88
+ functionCleanupArena.free();
89
+
90
+ diplomatReceive.free();
91
+ }
92
+ }
93
+
94
+ /**
95
+ * The block name (e.g. `minecraft:stone`).
96
+ */
97
+ name() {
98
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
99
+
100
+ wasm.BlockState_name(this.ffiValue, write.buffer);
101
+
102
+ try {
103
+ return write.readString8();
104
+ }
105
+
106
+ finally {
107
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
108
+ write.free();
109
+ }
110
+ }
111
+
112
+ /**
113
+ * The properties as a JSON object of string→string (the old
114
+ * `CPropertyArray`).
115
+ */
116
+ propertiesJson() {
117
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
118
+
119
+ wasm.BlockState_properties_json(this.ffiValue, write.buffer);
120
+
121
+ try {
122
+ return write.readString8();
123
+ }
124
+
125
+ finally {
126
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
127
+ write.free();
128
+ }
129
+ }
130
+
131
+ constructor(symbol, ptr, selfEdge) {
132
+ return this.#internalConstructor(...arguments)
133
+ }
134
+ }
@@ -0,0 +1,91 @@
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
+ * Namespace for read-only queries over the built-in block table
9
+ * (Java 26.2 blocks + official semantics extracted from the vanilla
10
+ * jars: definition kinds, base-block links, block tags, model
11
+ * geometry). All list results are JSON array strings sorted by id;
12
+ * block/tag/kind arguments accept both `minecraft:`-prefixed and
13
+ * short forms (`minecraft:oak_stairs` / `oak_stairs`).
14
+ */
15
+ export class Blocks {
16
+ /** @internal */
17
+ get ffiValue(): pointer;
18
+ /** @internal */
19
+ constructor();
20
+
21
+
22
+ /**
23
+ * Full facts for one block as a JSON object:
24
+ * `{id, kind, base_block, tags: [...], full_cube, transparent,
25
+ * color: [r, g, b] | null, properties: {name: [values...]},
26
+ * default_state: {name: value}}`. `kind` is the official
27
+ * definition kind (`minecraft:stair`, plain full blocks are
28
+ * `minecraft:block`); `base_block` is the block this one is a
29
+ * shape variant of (or `null`); `color` is the texture-derived
30
+ * average RGB. Errors with `NotFound` for unknown ids.
31
+ */
32
+ static getJson(id: string): string;
33
+
34
+ /**
35
+ * All known block ids as a sorted JSON array string.
36
+ */
37
+ static idsJson(): string;
38
+
39
+ /**
40
+ * Ids of every block carrying the vanilla block tag, as a sorted
41
+ * Blocks whose measured texture color is within `max_distance`
42
+ * (Oklab; ~0.05 = same color family, ~0.15 = generous) of the given
43
+ * RGB, as a JSON array of `{"id", "color": [r,g,b], "distance"}`
44
+ * sorted nearest-first. Blocks without color data never match.
45
+ */
46
+ static byColorJson(r: number, g: number, b: number, maxDistance: number): string;
47
+
48
+ /**
49
+ * JSON array string (`[]` for unknown tags). Accepts
50
+ * `minecraft:wool` and short `wool` forms, including nested paths
51
+ * like `mineable/pickaxe`.
52
+ */
53
+ static byTagJson(tag: string): string;
54
+
55
+ /**
56
+ * Ids of every block of the given official definition kind
57
+ * (`minecraft:stair`, `minecraft:slab`, `minecraft:door`, ...), as
58
+ * a sorted JSON array string (`[]` for unknown kinds).
59
+ */
60
+ static byKindJson(kind: string): string;
61
+
62
+ /**
63
+ * The base block followed by all its shape variants — blocks whose
64
+ * `base_block` is `base_id` (stairs, slabs, walls, fences of the
65
+ * base) — as a JSON array string. The base itself is always first;
66
+ * variants follow sorted by id. Errors with `NotFound` for unknown
67
+ * base ids.
68
+ */
69
+ static variantsOfJson(baseId: string): string;
70
+
71
+ /**
72
+ * All known vanilla block tag names as a sorted JSON array string
73
+ * (`minecraft:`-prefixed, e.g. `minecraft:wool`).
74
+ */
75
+ static tagsJson(): string;
76
+
77
+ /**
78
+ * Every property-value combination of the block as a JSON array of
79
+ * `{prop: value}` objects (a single `{}` entry for property-less
80
+ * blocks). Errors with `NotFound` for unknown ids and with
81
+ * `InvalidArgument` if the combination count exceeds 4096 (guard
82
+ * against pathological output; the current data tops out at 1350
83
+ * for `minecraft:note_block`).
84
+ */
85
+ static statesJson(id: string): string;
86
+
87
+ /**
88
+ * Total number of blocks in the table.
89
+ */
90
+ static count(): number;
91
+ }
@@ -0,0 +1,91 @@
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
+ * Namespace for read-only queries over the built-in block table
9
+ * (Java 26.2 blocks + official semantics extracted from the vanilla
10
+ * jars: definition kinds, base-block links, block tags, model
11
+ * geometry). All list results are JSON array strings sorted by id;
12
+ * block/tag/kind arguments accept both `minecraft:`-prefixed and
13
+ * short forms (`minecraft:oak_stairs` / `oak_stairs`).
14
+ */
15
+ export class Blocks {
16
+ /** @internal */
17
+ get ffiValue(): pointer;
18
+ /** @internal */
19
+ constructor();
20
+
21
+
22
+ /**
23
+ * Full facts for one block as a JSON object:
24
+ * `{id, kind, base_block, tags: [...], full_cube, transparent,
25
+ * color: [r, g, b] | null, properties: {name: [values...]},
26
+ * default_state: {name: value}}`. `kind` is the official
27
+ * definition kind (`minecraft:stair`, plain full blocks are
28
+ * `minecraft:block`); `base_block` is the block this one is a
29
+ * shape variant of (or `null`); `color` is the texture-derived
30
+ * average RGB. Errors with `NotFound` for unknown ids.
31
+ */
32
+ static getJson(id: string): string;
33
+
34
+ /**
35
+ * All known block ids as a sorted JSON array string.
36
+ */
37
+ static idsJson(): string;
38
+
39
+ /**
40
+ * Ids of every block carrying the vanilla block tag, as a sorted
41
+ * Blocks whose measured texture color is within `max_distance`
42
+ * (Oklab; ~0.05 = same color family, ~0.15 = generous) of the given
43
+ * RGB, as a JSON array of `{"id", "color": [r,g,b], "distance"}`
44
+ * sorted nearest-first. Blocks without color data never match.
45
+ */
46
+ static byColorJson(r: number, g: number, b: number, maxDistance: number): string;
47
+
48
+ /**
49
+ * JSON array string (`[]` for unknown tags). Accepts
50
+ * `minecraft:wool` and short `wool` forms, including nested paths
51
+ * like `mineable/pickaxe`.
52
+ */
53
+ static byTagJson(tag: string): string;
54
+
55
+ /**
56
+ * Ids of every block of the given official definition kind
57
+ * (`minecraft:stair`, `minecraft:slab`, `minecraft:door`, ...), as
58
+ * a sorted JSON array string (`[]` for unknown kinds).
59
+ */
60
+ static byKindJson(kind: string): string;
61
+
62
+ /**
63
+ * The base block followed by all its shape variants — blocks whose
64
+ * `base_block` is `base_id` (stairs, slabs, walls, fences of the
65
+ * base) — as a JSON array string. The base itself is always first;
66
+ * variants follow sorted by id. Errors with `NotFound` for unknown
67
+ * base ids.
68
+ */
69
+ static variantsOfJson(baseId: string): string;
70
+
71
+ /**
72
+ * All known vanilla block tag names as a sorted JSON array string
73
+ * (`minecraft:`-prefixed, e.g. `minecraft:wool`).
74
+ */
75
+ static tagsJson(): string;
76
+
77
+ /**
78
+ * Every property-value combination of the block as a JSON array of
79
+ * `{prop: value}` objects (a single `{}` entry for property-less
80
+ * blocks). Errors with `NotFound` for unknown ids and with
81
+ * `InvalidArgument` if the combination count exceeds 4096 (guard
82
+ * against pathological output; the current data tops out at 1350
83
+ * for `minecraft:note_block`).
84
+ */
85
+ static statesJson(id: string): string;
86
+
87
+ /**
88
+ * Total number of blocks in the table.
89
+ */
90
+ static count(): number;
91
+ }
@@ -0,0 +1,308 @@
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 Blocks_box_destroy_registry = new FinalizationRegistry((ptr) => {
7
+ wasm.Blocks_destroy(ptr);
8
+ });
9
+
10
+ /**
11
+ * Namespace for read-only queries over the built-in block table
12
+ * (Java 26.2 blocks + official semantics extracted from the vanilla
13
+ * jars: definition kinds, base-block links, block tags, model
14
+ * geometry). All list results are JSON array strings sorted by id;
15
+ * block/tag/kind arguments accept both `minecraft:`-prefixed and
16
+ * short forms (`minecraft:oak_stairs` / `oak_stairs`).
17
+ */
18
+ export class Blocks {
19
+ // Internal ptr reference:
20
+ #ptr = null;
21
+
22
+ // Lifetimes are only to keep dependencies alive.
23
+ // Since JS won't garbage collect until there are no incoming edges.
24
+ #selfEdge = [];
25
+
26
+ #internalConstructor(symbol, ptr, selfEdge) {
27
+ if (symbol !== diplomatRuntime.internalConstructor) {
28
+ console.error("Blocks is an Opaque type. You cannot call its constructor.");
29
+ return;
30
+ }
31
+ this.#ptr = ptr;
32
+ this.#selfEdge = selfEdge;
33
+
34
+ // Are we being borrowed? If not, we can register.
35
+ if (this.#selfEdge.length === 0) {
36
+ Blocks_box_destroy_registry.register(this, this.#ptr);
37
+ }
38
+
39
+ return this;
40
+ }
41
+ /** @internal */
42
+ get ffiValue() {
43
+ return this.#ptr;
44
+ }
45
+
46
+
47
+ /**
48
+ * Full facts for one block as a JSON object:
49
+ * `{id, kind, base_block, tags: [...], full_cube, transparent,
50
+ * color: [r, g, b] | null, properties: {name: [values...]},
51
+ * default_state: {name: value}}`. `kind` is the official
52
+ * definition kind (`minecraft:stair`, plain full blocks are
53
+ * `minecraft:block`); `base_block` is the block this one is a
54
+ * shape variant of (or `null`); `color` is the texture-derived
55
+ * average RGB. Errors with `NotFound` for unknown ids.
56
+ */
57
+ static getJson(id) {
58
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
59
+
60
+ const idSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, id)));
61
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
62
+
63
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
64
+
65
+
66
+ const result = wasm.Blocks_get_json(diplomatReceive.buffer, idSlice.ptr, write.buffer);
67
+
68
+ try {
69
+ if (!diplomatReceive.resultFlag) {
70
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
71
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
72
+ }
73
+ return write.readString8();
74
+ }
75
+
76
+ finally {
77
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
78
+ functionCleanupArena.free();
79
+
80
+ diplomatReceive.free();
81
+ write.free();
82
+ }
83
+ }
84
+
85
+ /**
86
+ * All known block ids as a sorted JSON array string.
87
+ */
88
+ static idsJson() {
89
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
90
+
91
+ wasm.Blocks_ids_json(write.buffer);
92
+
93
+ try {
94
+ return write.readString8();
95
+ }
96
+
97
+ finally {
98
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
99
+ write.free();
100
+ }
101
+ }
102
+
103
+ /**
104
+ * Ids of every block carrying the vanilla block tag, as a sorted
105
+ * Blocks whose measured texture color is within `max_distance`
106
+ * (Oklab; ~0.05 = same color family, ~0.15 = generous) of the given
107
+ * RGB, as a JSON array of `{"id", "color": [r,g,b], "distance"}`
108
+ * sorted nearest-first. Blocks without color data never match.
109
+ */
110
+ static byColorJson(r, g, b, maxDistance) {
111
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
112
+
113
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
114
+
115
+
116
+ const result = wasm.Blocks_by_color_json(diplomatReceive.buffer, r, g, b, maxDistance, write.buffer);
117
+
118
+ try {
119
+ if (!diplomatReceive.resultFlag) {
120
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
121
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
122
+ }
123
+ return write.readString8();
124
+ }
125
+
126
+ finally {
127
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
128
+ diplomatReceive.free();
129
+ write.free();
130
+ }
131
+ }
132
+
133
+ /**
134
+ * JSON array string (`[]` for unknown tags). Accepts
135
+ * `minecraft:wool` and short `wool` forms, including nested paths
136
+ * like `mineable/pickaxe`.
137
+ */
138
+ static byTagJson(tag) {
139
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
140
+
141
+ const tagSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, tag)));
142
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
143
+
144
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
145
+
146
+
147
+ const result = wasm.Blocks_by_tag_json(diplomatReceive.buffer, tagSlice.ptr, write.buffer);
148
+
149
+ try {
150
+ if (!diplomatReceive.resultFlag) {
151
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
152
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
153
+ }
154
+ return write.readString8();
155
+ }
156
+
157
+ finally {
158
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
159
+ functionCleanupArena.free();
160
+
161
+ diplomatReceive.free();
162
+ write.free();
163
+ }
164
+ }
165
+
166
+ /**
167
+ * Ids of every block of the given official definition kind
168
+ * (`minecraft:stair`, `minecraft:slab`, `minecraft:door`, ...), as
169
+ * a sorted JSON array string (`[]` for unknown kinds).
170
+ */
171
+ static byKindJson(kind) {
172
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
173
+
174
+ const kindSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, kind)));
175
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
176
+
177
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
178
+
179
+
180
+ const result = wasm.Blocks_by_kind_json(diplomatReceive.buffer, kindSlice.ptr, write.buffer);
181
+
182
+ try {
183
+ if (!diplomatReceive.resultFlag) {
184
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
185
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
186
+ }
187
+ return write.readString8();
188
+ }
189
+
190
+ finally {
191
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
192
+ functionCleanupArena.free();
193
+
194
+ diplomatReceive.free();
195
+ write.free();
196
+ }
197
+ }
198
+
199
+ /**
200
+ * The base block followed by all its shape variants — blocks whose
201
+ * `base_block` is `base_id` (stairs, slabs, walls, fences of the
202
+ * base) — as a JSON array string. The base itself is always first;
203
+ * variants follow sorted by id. Errors with `NotFound` for unknown
204
+ * base ids.
205
+ */
206
+ static variantsOfJson(baseId) {
207
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
208
+
209
+ const baseIdSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, baseId)));
210
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
211
+
212
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
213
+
214
+
215
+ const result = wasm.Blocks_variants_of_json(diplomatReceive.buffer, baseIdSlice.ptr, write.buffer);
216
+
217
+ try {
218
+ if (!diplomatReceive.resultFlag) {
219
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
220
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
221
+ }
222
+ return write.readString8();
223
+ }
224
+
225
+ finally {
226
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
227
+ functionCleanupArena.free();
228
+
229
+ diplomatReceive.free();
230
+ write.free();
231
+ }
232
+ }
233
+
234
+ /**
235
+ * All known vanilla block tag names as a sorted JSON array string
236
+ * (`minecraft:`-prefixed, e.g. `minecraft:wool`).
237
+ */
238
+ static tagsJson() {
239
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
240
+
241
+ wasm.Blocks_tags_json(write.buffer);
242
+
243
+ try {
244
+ return write.readString8();
245
+ }
246
+
247
+ finally {
248
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
249
+ write.free();
250
+ }
251
+ }
252
+
253
+ /**
254
+ * Every property-value combination of the block as a JSON array of
255
+ * `{prop: value}` objects (a single `{}` entry for property-less
256
+ * blocks). Errors with `NotFound` for unknown ids and with
257
+ * `InvalidArgument` if the combination count exceeds 4096 (guard
258
+ * against pathological output; the current data tops out at 1350
259
+ * for `minecraft:note_block`).
260
+ */
261
+ static statesJson(id) {
262
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
263
+
264
+ const idSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, id)));
265
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
266
+
267
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
268
+
269
+
270
+ const result = wasm.Blocks_states_json(diplomatReceive.buffer, idSlice.ptr, write.buffer);
271
+
272
+ try {
273
+ if (!diplomatReceive.resultFlag) {
274
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
275
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
276
+ }
277
+ return write.readString8();
278
+ }
279
+
280
+ finally {
281
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
282
+ functionCleanupArena.free();
283
+
284
+ diplomatReceive.free();
285
+ write.free();
286
+ }
287
+ }
288
+
289
+ /**
290
+ * Total number of blocks in the table.
291
+ */
292
+ static count() {
293
+
294
+ const result = wasm.Blocks_count();
295
+
296
+ try {
297
+ return result;
298
+ }
299
+
300
+ finally {
301
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
302
+ }
303
+ }
304
+
305
+ constructor(symbol, ptr, selfEdge) {
306
+ return this.#internalConstructor(...arguments)
307
+ }
308
+ }