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,274 @@
1
+ // generated by diplomat-tool
2
+ import type { BlockPos } from "./BlockPos.mjs"
3
+ import type { Dimensions } from "./Dimensions.mjs"
4
+ import type { NucleationError } from "./NucleationError.mjs"
5
+ import type { RegionBounds } from "./RegionBounds.mjs"
6
+ import type { Schematic } from "./Schematic.mjs"
7
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
8
+
9
+
10
+
11
+ /**
12
+ * A named sub-volume of a schematic: a union of boxes plus a metadata map.
13
+ */
14
+ export class DefinitionRegion {
15
+ /** @internal */
16
+ get ffiValue(): pointer;
17
+ /** @internal */
18
+ constructor();
19
+
20
+
21
+ /**
22
+ * Create a new empty region (no boxes, no metadata).
23
+ */
24
+ static create(): DefinitionRegion;
25
+
26
+ /**
27
+ * A region consisting of a single inclusive box. Min/max are swapped
28
+ * per axis if given out of order.
29
+ */
30
+ static fromBounds(minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): DefinitionRegion;
31
+
32
+ /**
33
+ * Build a region from single-block positions crossing as flat `[i32]`
34
+ * chunked in threes (PORTING rule 7). Errors with `InvalidArgument` if
35
+ * the length is not a multiple of 3.
36
+ */
37
+ static fromPositions(positions: Array<number>): DefinitionRegion;
38
+
39
+ /**
40
+ * Build a region from bounding boxes crossing as flat `[i32]` chunked in
41
+ * sixes (`min_x, min_y, min_z, max_x, max_y, max_z` per box). Errors
42
+ * with `InvalidArgument` if the length is not a multiple of 6.
43
+ */
44
+ static fromBoundingBoxes(boxes: Array<number>): DefinitionRegion;
45
+
46
+ /**
47
+ * Add an inclusive box to the region. Min/max are swapped per axis if
48
+ * given out of order.
49
+ */
50
+ addBounds(minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): void;
51
+
52
+ /**
53
+ * Add a single block position (a 1x1x1 box) to the region.
54
+ */
55
+ addPoint(x: number, y: number, z: number): void;
56
+
57
+ /**
58
+ * Set a metadata entry (insert or overwrite the key).
59
+ */
60
+ setMetadata(key: string, value: string): void;
61
+
62
+ /**
63
+ * Errors with `NotFound` when the key is absent.
64
+ */
65
+ getMetadata(key: string): string;
66
+
67
+ /**
68
+ * The full metadata map, written as a JSON object string (the old ABI
69
+ * returned an array of `"key=value"` strings).
70
+ */
71
+ allMetadataJson(): string;
72
+
73
+ /**
74
+ * The metadata keys, written as a JSON array string.
75
+ */
76
+ metadataKeysJson(): string;
77
+
78
+ /**
79
+ * Store a filter expression in the region's metadata under the `filter`
80
+ * key.
81
+ */
82
+ addFilter(filter: string): void;
83
+
84
+ /**
85
+ * `true` if the region contains no boxes.
86
+ */
87
+ isEmpty(): boolean;
88
+
89
+ /**
90
+ * The total volume in blocks, summed box by box: positions covered by
91
+ * several overlapping boxes are counted once per box.
92
+ */
93
+ volume(): bigint;
94
+
95
+ /**
96
+ * Whether the position lies inside any of the region's boxes.
97
+ */
98
+ contains(x: number, y: number, z: number): boolean;
99
+
100
+ /**
101
+ * Translate every box by (`dx`, `dy`, `dz`) in place.
102
+ */
103
+ shift(dx: number, dy: number, dz: number): void;
104
+
105
+ /**
106
+ * Grow every box in place by (`x`, `y`, `z`) outward on both sides of
107
+ * each axis. Negative values contract; boxes that shrink away are
108
+ * removed.
109
+ */
110
+ expand(x: number, y: number, z: number): void;
111
+
112
+ /**
113
+ * Shrink every box in place by `amount` on all sides (the inverse of
114
+ * a uniform `expand`); boxes that shrink away are removed.
115
+ */
116
+ contract(amount: number): void;
117
+
118
+ /**
119
+ * A new region: the intersection of `self` and `other`.
120
+ */
121
+ intersected(other: DefinitionRegion): DefinitionRegion;
122
+
123
+ /**
124
+ * A new region: the union of `self` and `other`.
125
+ */
126
+ unionWith(other: DefinitionRegion): DefinitionRegion;
127
+
128
+ /**
129
+ * A new region: `self` minus `other`.
130
+ */
131
+ subtracted(other: DefinitionRegion): DefinitionRegion;
132
+
133
+ /**
134
+ * Merge `other`'s boxes and metadata into `self`.
135
+ */
136
+ merge(other: DefinitionRegion): void;
137
+
138
+ /**
139
+ * Union `other`'s boxes into `self` in place.
140
+ */
141
+ unionInto(other: DefinitionRegion): void;
142
+
143
+ /**
144
+ * The overall bounding box. Errors with `NotFound` when the region is
145
+ * empty.
146
+ */
147
+ bounds(): RegionBounds;
148
+
149
+ /**
150
+ * The (width, height, length) of the overall bounding box; all zeros
151
+ * when the region is empty.
152
+ */
153
+ dimensions(): Dimensions;
154
+
155
+ /**
156
+ * The center block position. Errors with `NotFound` when the region is
157
+ * empty.
158
+ */
159
+ center(): BlockPos;
160
+
161
+ /**
162
+ * The exact (fractional) center, written as a JSON `[x, y, z]` array of
163
+ * floats. Errors with `NotFound` when the region is empty.
164
+ */
165
+ centerF32Json(): string;
166
+
167
+ /**
168
+ * Every contained position, written as a flat JSON array of ints
169
+ * (`[x0, y0, z0, x1, y1, z1, …]`), deduplicated, in box order.
170
+ */
171
+ positionsJson(): string;
172
+
173
+ /**
174
+ * Every contained position in sorted (y, z, x) order, written as a flat
175
+ * JSON array of ints.
176
+ */
177
+ positionsSortedJson(): string;
178
+
179
+ /**
180
+ * The number of boxes making up this region.
181
+ */
182
+ boxCount(): number;
183
+
184
+ /**
185
+ * The box at `index`. Errors with `NotFound` when out of range.
186
+ */
187
+ getBox(index: number): RegionBounds;
188
+
189
+ /**
190
+ * Every box, written as a flat JSON array of ints (six ints per box:
191
+ * `min_x, min_y, min_z, max_x, max_y, max_z`).
192
+ */
193
+ boxesJson(): string;
194
+
195
+ /**
196
+ * Whether all positions form a single face-connected (6-connectivity)
197
+ * component. `true` for empty and single-block regions.
198
+ */
199
+ isContiguous(): boolean;
200
+
201
+ /**
202
+ * The number of face-connected (6-connectivity) components; 0 when
203
+ * the region is empty.
204
+ */
205
+ connectedComponents(): number;
206
+
207
+ /**
208
+ * Merge overlapping/adjacent boxes into a minimal representation.
209
+ */
210
+ simplify(): void;
211
+
212
+ /**
213
+ * A new region containing only the positions where `schematic` has a
214
+ * block named `block_name`.
215
+ */
216
+ filterByBlock(schematic: Schematic, blockName: string): DefinitionRegion;
217
+
218
+ /**
219
+ * A new region containing only the positions where the block in
220
+ * `schematic` matches every property in `properties_json` (a JSON
221
+ * object of property name → value strings).
222
+ */
223
+ filterByProperties(schematic: Schematic, propertiesJson: string): DefinitionRegion;
224
+
225
+ /**
226
+ * Remove every position where `schematic` has a block named
227
+ * `block_name` (in place).
228
+ */
229
+ excludeBlock(schematic: Schematic, blockName: string): void;
230
+
231
+ /**
232
+ * Whether any of the region's boxes intersects the given inclusive
233
+ * box (useful for frustum culling).
234
+ */
235
+ intersectsBounds(minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): boolean;
236
+
237
+ /**
238
+ * A new region shifted by (`dx`, `dy`, `dz`).
239
+ */
240
+ shifted(dx: number, dy: number, dz: number): DefinitionRegion;
241
+
242
+ /**
243
+ * A new region expanded by (`x`, `y`, `z`) on each axis.
244
+ */
245
+ expanded(x: number, y: number, z: number): DefinitionRegion;
246
+
247
+ /**
248
+ * A new region contracted by `amount` on every axis.
249
+ */
250
+ contracted(amount: number): DefinitionRegion;
251
+
252
+ /**
253
+ * A deep copy of this region.
254
+ */
255
+ copy(): DefinitionRegion;
256
+
257
+ /**
258
+ * Store a display color (`0xRRGGBB`) in the region's metadata.
259
+ */
260
+ setColor(color: number): void;
261
+
262
+ /**
263
+ * The blocks of `schematic` inside this region, written as a JSON array
264
+ * of `{"x", "y", "z", "name", "properties"}` objects (the old ABI
265
+ * returned a `CBlockArray`).
266
+ */
267
+ blocksJson(schematic: Schematic): string;
268
+
269
+ /**
270
+ * Write this region into `schematic`'s definition-region map under
271
+ * `name` (insert or overwrite).
272
+ */
273
+ sync(schematic: Schematic, name: string): void;
274
+ }
@@ -0,0 +1,274 @@
1
+ // generated by diplomat-tool
2
+ import type { BlockPos } from "./BlockPos.mjs"
3
+ import type { Dimensions } from "./Dimensions.mjs"
4
+ import type { NucleationError } from "./NucleationError.mjs"
5
+ import type { RegionBounds } from "./RegionBounds.mjs"
6
+ import type { Schematic } from "./Schematic.mjs"
7
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
8
+
9
+
10
+
11
+ /**
12
+ * A named sub-volume of a schematic: a union of boxes plus a metadata map.
13
+ */
14
+ export class DefinitionRegion {
15
+ /** @internal */
16
+ get ffiValue(): pointer;
17
+ /** @internal */
18
+ constructor();
19
+
20
+
21
+ /**
22
+ * Create a new empty region (no boxes, no metadata).
23
+ */
24
+ static create(): DefinitionRegion;
25
+
26
+ /**
27
+ * A region consisting of a single inclusive box. Min/max are swapped
28
+ * per axis if given out of order.
29
+ */
30
+ static fromBounds(minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): DefinitionRegion;
31
+
32
+ /**
33
+ * Build a region from single-block positions crossing as flat `[i32]`
34
+ * chunked in threes (PORTING rule 7). Errors with `InvalidArgument` if
35
+ * the length is not a multiple of 3.
36
+ */
37
+ static fromPositions(positions: Array<number>): DefinitionRegion;
38
+
39
+ /**
40
+ * Build a region from bounding boxes crossing as flat `[i32]` chunked in
41
+ * sixes (`min_x, min_y, min_z, max_x, max_y, max_z` per box). Errors
42
+ * with `InvalidArgument` if the length is not a multiple of 6.
43
+ */
44
+ static fromBoundingBoxes(boxes: Array<number>): DefinitionRegion;
45
+
46
+ /**
47
+ * Add an inclusive box to the region. Min/max are swapped per axis if
48
+ * given out of order.
49
+ */
50
+ addBounds(minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): void;
51
+
52
+ /**
53
+ * Add a single block position (a 1x1x1 box) to the region.
54
+ */
55
+ addPoint(x: number, y: number, z: number): void;
56
+
57
+ /**
58
+ * Set a metadata entry (insert or overwrite the key).
59
+ */
60
+ setMetadata(key: string, value: string): void;
61
+
62
+ /**
63
+ * Errors with `NotFound` when the key is absent.
64
+ */
65
+ getMetadata(key: string): string;
66
+
67
+ /**
68
+ * The full metadata map, written as a JSON object string (the old ABI
69
+ * returned an array of `"key=value"` strings).
70
+ */
71
+ allMetadataJson(): string;
72
+
73
+ /**
74
+ * The metadata keys, written as a JSON array string.
75
+ */
76
+ metadataKeysJson(): string;
77
+
78
+ /**
79
+ * Store a filter expression in the region's metadata under the `filter`
80
+ * key.
81
+ */
82
+ addFilter(filter: string): void;
83
+
84
+ /**
85
+ * `true` if the region contains no boxes.
86
+ */
87
+ isEmpty(): boolean;
88
+
89
+ /**
90
+ * The total volume in blocks, summed box by box: positions covered by
91
+ * several overlapping boxes are counted once per box.
92
+ */
93
+ volume(): bigint;
94
+
95
+ /**
96
+ * Whether the position lies inside any of the region's boxes.
97
+ */
98
+ contains(x: number, y: number, z: number): boolean;
99
+
100
+ /**
101
+ * Translate every box by (`dx`, `dy`, `dz`) in place.
102
+ */
103
+ shift(dx: number, dy: number, dz: number): void;
104
+
105
+ /**
106
+ * Grow every box in place by (`x`, `y`, `z`) outward on both sides of
107
+ * each axis. Negative values contract; boxes that shrink away are
108
+ * removed.
109
+ */
110
+ expand(x: number, y: number, z: number): void;
111
+
112
+ /**
113
+ * Shrink every box in place by `amount` on all sides (the inverse of
114
+ * a uniform `expand`); boxes that shrink away are removed.
115
+ */
116
+ contract(amount: number): void;
117
+
118
+ /**
119
+ * A new region: the intersection of `self` and `other`.
120
+ */
121
+ intersected(other: DefinitionRegion): DefinitionRegion;
122
+
123
+ /**
124
+ * A new region: the union of `self` and `other`.
125
+ */
126
+ unionWith(other: DefinitionRegion): DefinitionRegion;
127
+
128
+ /**
129
+ * A new region: `self` minus `other`.
130
+ */
131
+ subtracted(other: DefinitionRegion): DefinitionRegion;
132
+
133
+ /**
134
+ * Merge `other`'s boxes and metadata into `self`.
135
+ */
136
+ merge(other: DefinitionRegion): void;
137
+
138
+ /**
139
+ * Union `other`'s boxes into `self` in place.
140
+ */
141
+ unionInto(other: DefinitionRegion): void;
142
+
143
+ /**
144
+ * The overall bounding box. Errors with `NotFound` when the region is
145
+ * empty.
146
+ */
147
+ bounds(): RegionBounds;
148
+
149
+ /**
150
+ * The (width, height, length) of the overall bounding box; all zeros
151
+ * when the region is empty.
152
+ */
153
+ dimensions(): Dimensions;
154
+
155
+ /**
156
+ * The center block position. Errors with `NotFound` when the region is
157
+ * empty.
158
+ */
159
+ center(): BlockPos;
160
+
161
+ /**
162
+ * The exact (fractional) center, written as a JSON `[x, y, z]` array of
163
+ * floats. Errors with `NotFound` when the region is empty.
164
+ */
165
+ centerF32Json(): string;
166
+
167
+ /**
168
+ * Every contained position, written as a flat JSON array of ints
169
+ * (`[x0, y0, z0, x1, y1, z1, …]`), deduplicated, in box order.
170
+ */
171
+ positionsJson(): string;
172
+
173
+ /**
174
+ * Every contained position in sorted (y, z, x) order, written as a flat
175
+ * JSON array of ints.
176
+ */
177
+ positionsSortedJson(): string;
178
+
179
+ /**
180
+ * The number of boxes making up this region.
181
+ */
182
+ boxCount(): number;
183
+
184
+ /**
185
+ * The box at `index`. Errors with `NotFound` when out of range.
186
+ */
187
+ getBox(index: number): RegionBounds;
188
+
189
+ /**
190
+ * Every box, written as a flat JSON array of ints (six ints per box:
191
+ * `min_x, min_y, min_z, max_x, max_y, max_z`).
192
+ */
193
+ boxesJson(): string;
194
+
195
+ /**
196
+ * Whether all positions form a single face-connected (6-connectivity)
197
+ * component. `true` for empty and single-block regions.
198
+ */
199
+ isContiguous(): boolean;
200
+
201
+ /**
202
+ * The number of face-connected (6-connectivity) components; 0 when
203
+ * the region is empty.
204
+ */
205
+ connectedComponents(): number;
206
+
207
+ /**
208
+ * Merge overlapping/adjacent boxes into a minimal representation.
209
+ */
210
+ simplify(): void;
211
+
212
+ /**
213
+ * A new region containing only the positions where `schematic` has a
214
+ * block named `block_name`.
215
+ */
216
+ filterByBlock(schematic: Schematic, blockName: string): DefinitionRegion;
217
+
218
+ /**
219
+ * A new region containing only the positions where the block in
220
+ * `schematic` matches every property in `properties_json` (a JSON
221
+ * object of property name → value strings).
222
+ */
223
+ filterByProperties(schematic: Schematic, propertiesJson: string): DefinitionRegion;
224
+
225
+ /**
226
+ * Remove every position where `schematic` has a block named
227
+ * `block_name` (in place).
228
+ */
229
+ excludeBlock(schematic: Schematic, blockName: string): void;
230
+
231
+ /**
232
+ * Whether any of the region's boxes intersects the given inclusive
233
+ * box (useful for frustum culling).
234
+ */
235
+ intersectsBounds(minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): boolean;
236
+
237
+ /**
238
+ * A new region shifted by (`dx`, `dy`, `dz`).
239
+ */
240
+ shifted(dx: number, dy: number, dz: number): DefinitionRegion;
241
+
242
+ /**
243
+ * A new region expanded by (`x`, `y`, `z`) on each axis.
244
+ */
245
+ expanded(x: number, y: number, z: number): DefinitionRegion;
246
+
247
+ /**
248
+ * A new region contracted by `amount` on every axis.
249
+ */
250
+ contracted(amount: number): DefinitionRegion;
251
+
252
+ /**
253
+ * A deep copy of this region.
254
+ */
255
+ copy(): DefinitionRegion;
256
+
257
+ /**
258
+ * Store a display color (`0xRRGGBB`) in the region's metadata.
259
+ */
260
+ setColor(color: number): void;
261
+
262
+ /**
263
+ * The blocks of `schematic` inside this region, written as a JSON array
264
+ * of `{"x", "y", "z", "name", "properties"}` objects (the old ABI
265
+ * returned a `CBlockArray`).
266
+ */
267
+ blocksJson(schematic: Schematic): string;
268
+
269
+ /**
270
+ * Write this region into `schematic`'s definition-region map under
271
+ * `name` (insert or overwrite).
272
+ */
273
+ sync(schematic: Schematic, name: string): void;
274
+ }