nucleation 0.1.169 → 0.1.170

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.
@@ -128,6 +128,14 @@ function getFloat32ArrayMemory0() {
128
128
  return cachedFloat32ArrayMemory0;
129
129
  }
130
130
 
131
+ let cachedFloat64ArrayMemory0 = null;
132
+ function getFloat64ArrayMemory0() {
133
+ if (cachedFloat64ArrayMemory0 === null || cachedFloat64ArrayMemory0.byteLength === 0) {
134
+ cachedFloat64ArrayMemory0 = new Float64Array(wasm.memory.buffer);
135
+ }
136
+ return cachedFloat64ArrayMemory0;
137
+ }
138
+
131
139
  let cachedInt32ArrayMemory0 = null;
132
140
  function getInt32ArrayMemory0() {
133
141
  if (cachedInt32ArrayMemory0 === null || cachedInt32ArrayMemory0.byteLength === 0) {
@@ -184,6 +192,13 @@ function passArray8ToWasm0(arg, malloc) {
184
192
  return ptr;
185
193
  }
186
194
 
195
+ function passArrayF64ToWasm0(arg, malloc) {
196
+ const ptr = malloc(arg.length * 8, 8) >>> 0;
197
+ getFloat64ArrayMemory0().set(arg, ptr / 8);
198
+ WASM_VECTOR_LEN = arg.length;
199
+ return ptr;
200
+ }
201
+
187
202
  function passArrayJsValueToWasm0(array, malloc) {
188
203
  const ptr = malloc(array.length * 4, 4) >>> 0;
189
204
  for (let i = 0; i < array.length; i++) {
@@ -520,7 +535,7 @@ export class BlockStateWrapper {
520
535
  if (Symbol.dispose) BlockStateWrapper.prototype[Symbol.dispose] = BlockStateWrapper.prototype.free;
521
536
 
522
537
  /**
523
- * A wrapper for any brush (Solid, Gradient, Shaded, etc.)
538
+ * A wrapper for any brush (Solid, Gradient, Shaded, CurveGradient, etc.)
524
539
  */
525
540
  export class BrushWrapper {
526
541
  static __wrap(ptr) {
@@ -540,11 +555,28 @@ export class BrushWrapper {
540
555
  const ptr = this.__destroy_into_raw();
541
556
  wasm.__wbg_brushwrapper_free(ptr, 0);
542
557
  }
558
+ /**
559
+ * Create a curve gradient brush that interpolates colors along parametric shapes.
560
+ * stops_flat: Flat array [pos1, r1, g1, b1, pos2, r2, g2, b2, ...]
561
+ * Space: 0 = RGB, 1 = Oklab
562
+ * @param {Float64Array} stops_flat
563
+ * @param {number | null} [space]
564
+ * @param {string[] | null} [palette_filter]
565
+ * @returns {BrushWrapper}
566
+ */
567
+ static curveGradient(stops_flat, space, palette_filter) {
568
+ const ptr0 = passArrayF64ToWasm0(stops_flat, wasm.__wbindgen_malloc);
569
+ const len0 = WASM_VECTOR_LEN;
570
+ var ptr1 = isLikeNone(palette_filter) ? 0 : passArrayJsValueToWasm0(palette_filter, wasm.__wbindgen_malloc);
571
+ var len1 = WASM_VECTOR_LEN;
572
+ const ret = wasm.brushwrapper_curveGradient(ptr0, len0, isLikeNone(space) ? 0xFFFFFF : space, ptr1, len1);
573
+ if (ret[2]) {
574
+ throw takeFromExternrefTable0(ret[1]);
575
+ }
576
+ return BrushWrapper.__wrap(ret[0]);
577
+ }
543
578
  /**
544
579
  * Create a point cloud gradient brush using Inverse Distance Weighting (IDW)
545
- * positions: Flat array [x1, y1, z1, x2, y2, z2, ...]
546
- * colors: Flat array [r1, g1, b1, r2, g2, b2, ...]
547
- * falloff: Power parameter (default 2.0 if None)
548
580
  * @param {Int32Array} positions
549
581
  * @param {Uint8Array} colors
550
582
  * @param {number | null} [falloff]
@@ -625,7 +657,6 @@ export class BrushWrapper {
625
657
  }
626
658
  /**
627
659
  * Create a color brush (matches closest block to RGB color)
628
- * Palette: optional list of block IDs to restrict matching to.
629
660
  * @param {number} r
630
661
  * @param {number} g
631
662
  * @param {number} b
@@ -654,7 +685,6 @@ export class BrushWrapper {
654
685
  }
655
686
  /**
656
687
  * Create a shaded brush (Lambertian shading)
657
- * light_dir: [x, y, z] vector
658
688
  * @param {number} r
659
689
  * @param {number} g
660
690
  * @param {number} b
@@ -5068,7 +5098,7 @@ export class SchematicWrapper {
5068
5098
  if (Symbol.dispose) SchematicWrapper.prototype[Symbol.dispose] = SchematicWrapper.prototype.free;
5069
5099
 
5070
5100
  /**
5071
- * A wrapper for any shape (Sphere, Cuboid, etc.)
5101
+ * A wrapper for any shape (Sphere, Cuboid, Line, etc.)
5072
5102
  */
5073
5103
  export class ShapeWrapper {
5074
5104
  static __wrap(ptr) {
@@ -5088,6 +5118,156 @@ export class ShapeWrapper {
5088
5118
  const ptr = this.__destroy_into_raw();
5089
5119
  wasm.__wbg_shapewrapper_free(ptr, 0);
5090
5120
  }
5121
+ /**
5122
+ * Create a Difference of two shapes (a AND NOT b)
5123
+ * @param {ShapeWrapper} a
5124
+ * @param {ShapeWrapper} b
5125
+ * @returns {ShapeWrapper}
5126
+ */
5127
+ static difference(a, b) {
5128
+ _assertClass(a, ShapeWrapper);
5129
+ _assertClass(b, ShapeWrapper);
5130
+ const ret = wasm.shapewrapper_difference(a.__wbg_ptr, b.__wbg_ptr);
5131
+ return ShapeWrapper.__wrap(ret);
5132
+ }
5133
+ /**
5134
+ * Create an Intersection of two shapes (a AND b)
5135
+ * @param {ShapeWrapper} a
5136
+ * @param {ShapeWrapper} b
5137
+ * @returns {ShapeWrapper}
5138
+ */
5139
+ static intersection(a, b) {
5140
+ _assertClass(a, ShapeWrapper);
5141
+ _assertClass(b, ShapeWrapper);
5142
+ const ret = wasm.shapewrapper_intersection(a.__wbg_ptr, b.__wbg_ptr);
5143
+ return ShapeWrapper.__wrap(ret);
5144
+ }
5145
+ /**
5146
+ * Create a Union of two shapes (a OR b)
5147
+ * @param {ShapeWrapper} a
5148
+ * @param {ShapeWrapper} b
5149
+ * @returns {ShapeWrapper}
5150
+ */
5151
+ static union(a, b) {
5152
+ _assertClass(a, ShapeWrapper);
5153
+ _assertClass(b, ShapeWrapper);
5154
+ const ret = wasm.shapewrapper_union(a.__wbg_ptr, b.__wbg_ptr);
5155
+ return ShapeWrapper.__wrap(ret);
5156
+ }
5157
+ /**
5158
+ * Create a Cylinder between two points
5159
+ * @param {number} x1
5160
+ * @param {number} y1
5161
+ * @param {number} z1
5162
+ * @param {number} x2
5163
+ * @param {number} y2
5164
+ * @param {number} z2
5165
+ * @param {number} radius
5166
+ * @returns {ShapeWrapper}
5167
+ */
5168
+ static cylinderBetween(x1, y1, z1, x2, y2, z2, radius) {
5169
+ const ret = wasm.shapewrapper_cylinderBetween(x1, y1, z1, x2, y2, z2, radius);
5170
+ return ShapeWrapper.__wrap(ret);
5171
+ }
5172
+ /**
5173
+ * Create a Cone shape
5174
+ * @param {number} ax
5175
+ * @param {number} ay
5176
+ * @param {number} az
5177
+ * @param {number} dx
5178
+ * @param {number} dy
5179
+ * @param {number} dz
5180
+ * @param {number} radius
5181
+ * @param {number} height
5182
+ * @returns {ShapeWrapper}
5183
+ */
5184
+ static cone(ax, ay, az, dx, dy, dz, radius, height) {
5185
+ const ret = wasm.shapewrapper_cone(ax, ay, az, dx, dy, dz, radius, height);
5186
+ return ShapeWrapper.__wrap(ret);
5187
+ }
5188
+ /**
5189
+ * Create a Disk shape (flat cylinder)
5190
+ * @param {number} cx
5191
+ * @param {number} cy
5192
+ * @param {number} cz
5193
+ * @param {number} radius
5194
+ * @param {number} nx
5195
+ * @param {number} ny
5196
+ * @param {number} nz
5197
+ * @param {number | null} [thickness]
5198
+ * @returns {ShapeWrapper}
5199
+ */
5200
+ static disk(cx, cy, cz, radius, nx, ny, nz, thickness) {
5201
+ const ret = wasm.shapewrapper_disk(cx, cy, cz, radius, nx, ny, nz, !isLikeNone(thickness), isLikeNone(thickness) ? 0 : thickness);
5202
+ return ShapeWrapper.__wrap(ret);
5203
+ }
5204
+ /**
5205
+ * Create a 3D Line with thickness
5206
+ * @param {number} x1
5207
+ * @param {number} y1
5208
+ * @param {number} z1
5209
+ * @param {number} x2
5210
+ * @param {number} y2
5211
+ * @param {number} z2
5212
+ * @param {number | null} [thickness]
5213
+ * @returns {ShapeWrapper}
5214
+ */
5215
+ static line(x1, y1, z1, x2, y2, z2, thickness) {
5216
+ const ret = wasm.shapewrapper_line(x1, y1, z1, x2, y2, z2, !isLikeNone(thickness), isLikeNone(thickness) ? 0 : thickness);
5217
+ return ShapeWrapper.__wrap(ret);
5218
+ }
5219
+ /**
5220
+ * Create a bounded Plane shape
5221
+ * @param {number} ox
5222
+ * @param {number} oy
5223
+ * @param {number} oz
5224
+ * @param {number} ux
5225
+ * @param {number} uy
5226
+ * @param {number} uz
5227
+ * @param {number} vx
5228
+ * @param {number} vy
5229
+ * @param {number} vz
5230
+ * @param {number} u_ext
5231
+ * @param {number} v_ext
5232
+ * @param {number | null} [thickness]
5233
+ * @returns {ShapeWrapper}
5234
+ */
5235
+ static plane(ox, oy, oz, ux, uy, uz, vx, vy, vz, u_ext, v_ext, thickness) {
5236
+ const ret = wasm.shapewrapper_plane(ox, oy, oz, ux, uy, uz, vx, vy, vz, u_ext, v_ext, !isLikeNone(thickness), isLikeNone(thickness) ? 0 : thickness);
5237
+ return ShapeWrapper.__wrap(ret);
5238
+ }
5239
+ /**
5240
+ * Create a Torus shape
5241
+ * @param {number} cx
5242
+ * @param {number} cy
5243
+ * @param {number} cz
5244
+ * @param {number} major_r
5245
+ * @param {number} minor_r
5246
+ * @param {number} ax
5247
+ * @param {number} ay
5248
+ * @param {number} az
5249
+ * @returns {ShapeWrapper}
5250
+ */
5251
+ static torus(cx, cy, cz, major_r, minor_r, ax, ay, az) {
5252
+ const ret = wasm.shapewrapper_torus(cx, cy, cz, major_r, minor_r, ax, ay, az);
5253
+ return ShapeWrapper.__wrap(ret);
5254
+ }
5255
+ /**
5256
+ * Create a Bezier curve with thickness
5257
+ * @param {Float64Array} control_points_flat
5258
+ * @param {number | null} [thickness]
5259
+ * @param {number | null} [resolution]
5260
+ * @returns {ShapeWrapper}
5261
+ */
5262
+ static bezier(control_points_flat, thickness, resolution) {
5263
+ const ptr0 = passArrayF64ToWasm0(control_points_flat, wasm.__wbindgen_malloc);
5264
+ const len0 = WASM_VECTOR_LEN;
5265
+ const ret = wasm.shapewrapper_bezier(ptr0, len0, !isLikeNone(thickness), isLikeNone(thickness) ? 0 : thickness, isLikeNone(resolution) ? 0x100000001 : (resolution) >>> 0);
5266
+ if (ret[2]) {
5267
+ throw takeFromExternrefTable0(ret[1]);
5268
+ }
5269
+ return ShapeWrapper.__wrap(ret[0]);
5270
+ }
5091
5271
  /**
5092
5272
  * Create a new Cuboid shape
5093
5273
  * @param {number} min_x
@@ -5102,6 +5282,17 @@ export class ShapeWrapper {
5102
5282
  const ret = wasm.shapewrapper_cuboid(min_x, min_y, min_z, max_x, max_y, max_z);
5103
5283
  return ShapeWrapper.__wrap(ret);
5104
5284
  }
5285
+ /**
5286
+ * Create a Hollow version of any shape
5287
+ * @param {ShapeWrapper} shape
5288
+ * @param {number | null} [thickness]
5289
+ * @returns {ShapeWrapper}
5290
+ */
5291
+ static hollow(shape, thickness) {
5292
+ _assertClass(shape, ShapeWrapper);
5293
+ const ret = wasm.shapewrapper_hollow(shape.__wbg_ptr, isLikeNone(thickness) ? 0x100000001 : (thickness) >>> 0);
5294
+ return ShapeWrapper.__wrap(ret);
5295
+ }
5105
5296
  /**
5106
5297
  * Create a new Sphere shape
5107
5298
  * @param {number} cx
@@ -5114,6 +5305,71 @@ export class ShapeWrapper {
5114
5305
  const ret = wasm.shapewrapper_sphere(cx, cy, cz, radius);
5115
5306
  return ShapeWrapper.__wrap(ret);
5116
5307
  }
5308
+ /**
5309
+ * Create a Pyramid shape
5310
+ * @param {number} bx
5311
+ * @param {number} by
5312
+ * @param {number} bz
5313
+ * @param {number} half_w
5314
+ * @param {number} half_d
5315
+ * @param {number} height
5316
+ * @param {number} ax
5317
+ * @param {number} ay
5318
+ * @param {number} az
5319
+ * @returns {ShapeWrapper}
5320
+ */
5321
+ static pyramid(bx, by, bz, half_w, half_d, height, ax, ay, az) {
5322
+ const ret = wasm.shapewrapper_pyramid(bx, by, bz, half_w, half_d, height, ax, ay, az);
5323
+ return ShapeWrapper.__wrap(ret);
5324
+ }
5325
+ /**
5326
+ * Create a Cylinder with arbitrary axis
5327
+ * @param {number} bx
5328
+ * @param {number} by
5329
+ * @param {number} bz
5330
+ * @param {number} ax
5331
+ * @param {number} ay
5332
+ * @param {number} az
5333
+ * @param {number} radius
5334
+ * @param {number} height
5335
+ * @returns {ShapeWrapper}
5336
+ */
5337
+ static cylinder(bx, by, bz, ax, ay, az, radius, height) {
5338
+ const ret = wasm.shapewrapper_cylinder(bx, by, bz, ax, ay, az, radius, height);
5339
+ return ShapeWrapper.__wrap(ret);
5340
+ }
5341
+ /**
5342
+ * Create a filled Triangle shape
5343
+ * @param {number} ax
5344
+ * @param {number} ay
5345
+ * @param {number} az
5346
+ * @param {number} bx
5347
+ * @param {number} by
5348
+ * @param {number} bz
5349
+ * @param {number} cx
5350
+ * @param {number} cy
5351
+ * @param {number} cz
5352
+ * @param {number | null} [thickness]
5353
+ * @returns {ShapeWrapper}
5354
+ */
5355
+ static triangle(ax, ay, az, bx, by, bz, cx, cy, cz, thickness) {
5356
+ const ret = wasm.shapewrapper_triangle(ax, ay, az, bx, by, bz, cx, cy, cz, !isLikeNone(thickness), isLikeNone(thickness) ? 0 : thickness);
5357
+ return ShapeWrapper.__wrap(ret);
5358
+ }
5359
+ /**
5360
+ * Create an Ellipsoid shape
5361
+ * @param {number} cx
5362
+ * @param {number} cy
5363
+ * @param {number} cz
5364
+ * @param {number} rx
5365
+ * @param {number} ry
5366
+ * @param {number} rz
5367
+ * @returns {ShapeWrapper}
5368
+ */
5369
+ static ellipsoid(cx, cy, cz, rx, ry, rz) {
5370
+ const ret = wasm.shapewrapper_ellipsoid(cx, cy, cz, rx, ry, rz);
5371
+ return ShapeWrapper.__wrap(ret);
5372
+ }
5117
5373
  }
5118
5374
  if (Symbol.dispose) ShapeWrapper.prototype[Symbol.dispose] = ShapeWrapper.prototype.free;
5119
5375
 
@@ -5806,6 +6062,22 @@ export class WasmBuildingTool {
5806
6062
  _assertClass(brush, BrushWrapper);
5807
6063
  wasm.wasmbuildingtool_fill(schematic.__wbg_ptr, shape.__wbg_ptr, brush.__wbg_ptr);
5808
6064
  }
6065
+ /**
6066
+ * Repeat a shape+brush fill at regular offset intervals
6067
+ * @param {SchematicWrapper} schematic
6068
+ * @param {ShapeWrapper} shape
6069
+ * @param {BrushWrapper} brush
6070
+ * @param {number} count
6071
+ * @param {number} offset_x
6072
+ * @param {number} offset_y
6073
+ * @param {number} offset_z
6074
+ */
6075
+ static rstack(schematic, shape, brush, count, offset_x, offset_y, offset_z) {
6076
+ _assertClass(schematic, SchematicWrapper);
6077
+ _assertClass(shape, ShapeWrapper);
6078
+ _assertClass(brush, BrushWrapper);
6079
+ wasm.wasmbuildingtool_rstack(schematic.__wbg_ptr, shape.__wbg_ptr, brush.__wbg_ptr, count, offset_x, offset_y, offset_z);
6080
+ }
5809
6081
  }
5810
6082
  if (Symbol.dispose) WasmBuildingTool.prototype[Symbol.dispose] = WasmBuildingTool.prototype.free;
5811
6083
 
@@ -6199,6 +6471,7 @@ function __wbg_finalize_init(instance, module) {
6199
6471
  __wbg_init.__wbindgen_wasm_module = module;
6200
6472
  cachedDataViewMemory0 = null;
6201
6473
  cachedFloat32ArrayMemory0 = null;
6474
+ cachedFloat64ArrayMemory0 = null;
6202
6475
  cachedInt32ArrayMemory0 = null;
6203
6476
  cachedUint32ArrayMemory0 = null;
6204
6477
  cachedUint8ArrayMemory0 = null;
package/nucleation.d.ts CHANGED
@@ -23,11 +23,14 @@ export class BrushWrapper {
23
23
  private constructor();
24
24
  free(): void;
25
25
  [Symbol.dispose](): void;
26
+ /**
27
+ * Create a curve gradient brush that interpolates colors along parametric shapes.
28
+ * stops_flat: Flat array [pos1, r1, g1, b1, pos2, r2, g2, b2, ...]
29
+ * Space: 0 = RGB, 1 = Oklab
30
+ */
31
+ static curveGradient(stops_flat: Float64Array, space?: number | null, palette_filter?: string[] | null): BrushWrapper;
26
32
  /**
27
33
  * Create a point cloud gradient brush using Inverse Distance Weighting (IDW)
28
- * positions: Flat array [x1, y1, z1, x2, y2, z2, ...]
29
- * colors: Flat array [r1, g1, b1, r2, g2, b2, ...]
30
- * falloff: Power parameter (default 2.0 if None)
31
34
  */
32
35
  static point_gradient(positions: Int32Array, colors: Uint8Array, falloff?: number | null, space?: number | null, palette_filter?: string[] | null): BrushWrapper;
33
36
  /**
@@ -41,7 +44,6 @@ export class BrushWrapper {
41
44
  static bilinear_gradient(ox: number, oy: number, oz: number, ux: number, uy: number, uz: number, vx: number, vy: number, vz: number, r00: number, g00: number, b00: number, r10: number, g10: number, b10: number, r01: number, g01: number, b01: number, r11: number, g11: number, b11: number, space?: number | null, palette_filter?: string[] | null): BrushWrapper;
42
45
  /**
43
46
  * Create a color brush (matches closest block to RGB color)
44
- * Palette: optional list of block IDs to restrict matching to.
45
47
  */
46
48
  static color(r: number, g: number, b: number, palette_filter?: string[] | null): BrushWrapper;
47
49
  /**
@@ -50,7 +52,6 @@ export class BrushWrapper {
50
52
  static solid(block_state: string): BrushWrapper;
51
53
  /**
52
54
  * Create a shaded brush (Lambertian shading)
53
- * light_dir: [x, y, z] vector
54
55
  */
55
56
  static shaded(r: number, g: number, b: number, lx: number, ly: number, lz: number, palette_filter?: string[] | null): BrushWrapper;
56
57
  }
@@ -1392,14 +1393,74 @@ export class ShapeWrapper {
1392
1393
  private constructor();
1393
1394
  free(): void;
1394
1395
  [Symbol.dispose](): void;
1396
+ /**
1397
+ * Create a Difference of two shapes (a AND NOT b)
1398
+ */
1399
+ static difference(a: ShapeWrapper, b: ShapeWrapper): ShapeWrapper;
1400
+ /**
1401
+ * Create an Intersection of two shapes (a AND b)
1402
+ */
1403
+ static intersection(a: ShapeWrapper, b: ShapeWrapper): ShapeWrapper;
1404
+ /**
1405
+ * Create a Union of two shapes (a OR b)
1406
+ */
1407
+ static union(a: ShapeWrapper, b: ShapeWrapper): ShapeWrapper;
1408
+ /**
1409
+ * Create a Cylinder between two points
1410
+ */
1411
+ static cylinderBetween(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, radius: number): ShapeWrapper;
1412
+ /**
1413
+ * Create a Cone shape
1414
+ */
1415
+ static cone(ax: number, ay: number, az: number, dx: number, dy: number, dz: number, radius: number, height: number): ShapeWrapper;
1416
+ /**
1417
+ * Create a Disk shape (flat cylinder)
1418
+ */
1419
+ static disk(cx: number, cy: number, cz: number, radius: number, nx: number, ny: number, nz: number, thickness?: number | null): ShapeWrapper;
1420
+ /**
1421
+ * Create a 3D Line with thickness
1422
+ */
1423
+ static line(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, thickness?: number | null): ShapeWrapper;
1424
+ /**
1425
+ * Create a bounded Plane shape
1426
+ */
1427
+ static plane(ox: number, oy: number, oz: number, ux: number, uy: number, uz: number, vx: number, vy: number, vz: number, u_ext: number, v_ext: number, thickness?: number | null): ShapeWrapper;
1428
+ /**
1429
+ * Create a Torus shape
1430
+ */
1431
+ static torus(cx: number, cy: number, cz: number, major_r: number, minor_r: number, ax: number, ay: number, az: number): ShapeWrapper;
1432
+ /**
1433
+ * Create a Bezier curve with thickness
1434
+ */
1435
+ static bezier(control_points_flat: Float64Array, thickness?: number | null, resolution?: number | null): ShapeWrapper;
1395
1436
  /**
1396
1437
  * Create a new Cuboid shape
1397
1438
  */
1398
1439
  static cuboid(min_x: number, min_y: number, min_z: number, max_x: number, max_y: number, max_z: number): ShapeWrapper;
1440
+ /**
1441
+ * Create a Hollow version of any shape
1442
+ */
1443
+ static hollow(shape: ShapeWrapper, thickness?: number | null): ShapeWrapper;
1399
1444
  /**
1400
1445
  * Create a new Sphere shape
1401
1446
  */
1402
1447
  static sphere(cx: number, cy: number, cz: number, radius: number): ShapeWrapper;
1448
+ /**
1449
+ * Create a Pyramid shape
1450
+ */
1451
+ static pyramid(bx: number, by: number, bz: number, half_w: number, half_d: number, height: number, ax: number, ay: number, az: number): ShapeWrapper;
1452
+ /**
1453
+ * Create a Cylinder with arbitrary axis
1454
+ */
1455
+ static cylinder(bx: number, by: number, bz: number, ax: number, ay: number, az: number, radius: number, height: number): ShapeWrapper;
1456
+ /**
1457
+ * Create a filled Triangle shape
1458
+ */
1459
+ static triangle(ax: number, ay: number, az: number, bx: number, by: number, bz: number, cx: number, cy: number, cz: number, thickness?: number | null): ShapeWrapper;
1460
+ /**
1461
+ * Create an Ellipsoid shape
1462
+ */
1463
+ static ellipsoid(cx: number, cy: number, cz: number, rx: number, ry: number, rz: number): ShapeWrapper;
1403
1464
  }
1404
1465
 
1405
1466
  export class SimulationOptionsWrapper {
@@ -1654,6 +1715,10 @@ export class WasmBuildingTool {
1654
1715
  * Apply a brush to a shape on the given schematic
1655
1716
  */
1656
1717
  static fill(schematic: SchematicWrapper, shape: ShapeWrapper, brush: BrushWrapper): void;
1718
+ /**
1719
+ * Repeat a shape+brush fill at regular offset intervals
1720
+ */
1721
+ static rstack(schematic: SchematicWrapper, shape: ShapeWrapper, brush: BrushWrapper, count: number, offset_x: number, offset_y: number, offset_z: number): void;
1657
1722
  }
1658
1723
 
1659
1724
  export function debug_json_schematic(schematic: SchematicWrapper): string;
@@ -1699,6 +1764,7 @@ export interface InitOutput {
1699
1764
  readonly __wbg_outputconditionwrapper_free: (a: number, b: number) => void;
1700
1765
  readonly __wbg_rawmeshexportwrapper_free: (a: number, b: number) => void;
1701
1766
  readonly __wbg_resourcepackwrapper_free: (a: number, b: number) => void;
1767
+ readonly __wbg_schematicbuilderwrapper_free: (a: number, b: number) => void;
1702
1768
  readonly __wbg_simulationoptionswrapper_free: (a: number, b: number) => void;
1703
1769
  readonly __wbg_sortstrategywrapper_free: (a: number, b: number) => void;
1704
1770
  readonly __wbg_statemodeconstants_free: (a: number, b: number) => void;
@@ -1910,6 +1976,12 @@ export interface InitOutput {
1910
1976
  readonly resourcepackwrapper_namespaces: (a: number) => any;
1911
1977
  readonly resourcepackwrapper_new: (a: number, b: number) => [number, number, number];
1912
1978
  readonly resourcepackwrapper_textureCount: (a: number) => number;
1979
+ readonly schematicbuilderwrapper_build: (a: number) => [number, number, number];
1980
+ readonly schematicbuilderwrapper_fromTemplate: (a: number, b: number) => [number, number, number];
1981
+ readonly schematicbuilderwrapper_layers: (a: number, b: any) => [number, number, number];
1982
+ readonly schematicbuilderwrapper_map: (a: number, b: number, c: number, d: number) => number;
1983
+ readonly schematicbuilderwrapper_name: (a: number, b: number, c: number) => number;
1984
+ readonly schematicbuilderwrapper_new: () => number;
1913
1985
  readonly schematicwrapper_buildGlobalAtlas: (a: number, b: number, c: number) => [number, number, number];
1914
1986
  readonly schematicwrapper_chunkMeshIterator: (a: number, b: number, c: number, d: number) => number;
1915
1987
  readonly schematicwrapper_chunkMeshIteratorWithAtlas: (a: number, b: number, c: number, d: number, e: number) => number;
@@ -1977,18 +2049,10 @@ export interface InitOutput {
1977
2049
  readonly multimeshresultwrapper_meshCount: (a: number) => number;
1978
2050
  readonly textureatlaswrapper_height: (a: number) => number;
1979
2051
  readonly textureatlaswrapper_width: (a: number) => number;
1980
- readonly __wbg_blockposition_free: (a: number, b: number) => void;
1981
2052
  readonly __wbg_blockstatewrapper_free: (a: number, b: number) => void;
1982
- readonly __wbg_get_blockposition_x: (a: number) => number;
1983
- readonly __wbg_get_blockposition_y: (a: number) => number;
1984
- readonly __wbg_get_blockposition_z: (a: number) => number;
1985
2053
  readonly __wbg_lazychunkiterator_free: (a: number, b: number) => void;
1986
- readonly __wbg_schematicbuilderwrapper_free: (a: number, b: number) => void;
2054
+ readonly __wbg_palettemanager_free: (a: number, b: number) => void;
1987
2055
  readonly __wbg_schematicwrapper_free: (a: number, b: number) => void;
1988
- readonly __wbg_set_blockposition_x: (a: number, b: number) => void;
1989
- readonly __wbg_set_blockposition_y: (a: number, b: number) => void;
1990
- readonly __wbg_set_blockposition_z: (a: number, b: number) => void;
1991
- readonly blockposition_new: (a: number, b: number, c: number) => number;
1992
2056
  readonly blockstatewrapper_name: (a: number) => [number, number];
1993
2057
  readonly blockstatewrapper_new: (a: number, b: number) => number;
1994
2058
  readonly blockstatewrapper_properties: (a: number) => any;
@@ -2001,12 +2065,10 @@ export interface InitOutput {
2001
2065
  readonly lazychunkiterator_reset: (a: number) => void;
2002
2066
  readonly lazychunkiterator_skip_to: (a: number, b: number) => void;
2003
2067
  readonly lazychunkiterator_total_chunks: (a: number) => number;
2004
- readonly schematicbuilderwrapper_build: (a: number) => [number, number, number];
2005
- readonly schematicbuilderwrapper_fromTemplate: (a: number, b: number) => [number, number, number];
2006
- readonly schematicbuilderwrapper_layers: (a: number, b: any) => [number, number, number];
2007
- readonly schematicbuilderwrapper_map: (a: number, b: number, c: number, d: number) => number;
2008
- readonly schematicbuilderwrapper_name: (a: number, b: number, c: number) => number;
2009
- readonly schematicbuilderwrapper_new: () => number;
2068
+ readonly palettemanager_getConcreteBlocks: () => [number, number];
2069
+ readonly palettemanager_getPaletteByKeywords: (a: number, b: number) => [number, number];
2070
+ readonly palettemanager_getTerracottaBlocks: () => [number, number];
2071
+ readonly palettemanager_getWoolBlocks: () => [number, number];
2010
2072
  readonly schematicwrapper_addDefinitionRegion: (a: number, b: number, c: number, d: number) => void;
2011
2073
  readonly schematicwrapper_add_entity: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
2012
2074
  readonly schematicwrapper_blocks: (a: number) => any;
@@ -2126,22 +2188,42 @@ export interface InitOutput {
2126
2188
  readonly start: () => void;
2127
2189
  readonly schematicwrapper_updateRegion: (a: number, b: number, c: number, d: number) => void;
2128
2190
  readonly __wbg_brushwrapper_free: (a: number, b: number) => void;
2129
- readonly __wbg_palettemanager_free: (a: number, b: number) => void;
2130
2191
  readonly __wbg_shapewrapper_free: (a: number, b: number) => void;
2131
2192
  readonly __wbg_wasmbuildingtool_free: (a: number, b: number) => void;
2132
2193
  readonly brushwrapper_bilinear_gradient: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number) => number;
2133
2194
  readonly brushwrapper_color: (a: number, b: number, c: number, d: number, e: number) => number;
2195
+ readonly brushwrapper_curveGradient: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
2134
2196
  readonly brushwrapper_linear_gradient: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => number;
2135
2197
  readonly brushwrapper_point_gradient: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
2136
2198
  readonly brushwrapper_shaded: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
2137
2199
  readonly brushwrapper_solid: (a: number, b: number) => [number, number, number];
2138
- readonly palettemanager_getConcreteBlocks: () => [number, number];
2139
- readonly palettemanager_getPaletteByKeywords: (a: number, b: number) => [number, number];
2140
- readonly palettemanager_getTerracottaBlocks: () => [number, number];
2141
- readonly palettemanager_getWoolBlocks: () => [number, number];
2200
+ readonly shapewrapper_bezier: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
2201
+ readonly shapewrapper_cone: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
2142
2202
  readonly shapewrapper_cuboid: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
2203
+ readonly shapewrapper_cylinder: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
2204
+ readonly shapewrapper_cylinderBetween: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
2205
+ readonly shapewrapper_difference: (a: number, b: number) => number;
2206
+ readonly shapewrapper_disk: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
2207
+ readonly shapewrapper_ellipsoid: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
2208
+ readonly shapewrapper_hollow: (a: number, b: number) => number;
2209
+ readonly shapewrapper_intersection: (a: number, b: number) => number;
2210
+ readonly shapewrapper_line: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
2211
+ readonly shapewrapper_plane: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number) => number;
2212
+ readonly shapewrapper_pyramid: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
2143
2213
  readonly shapewrapper_sphere: (a: number, b: number, c: number, d: number) => number;
2214
+ readonly shapewrapper_torus: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
2215
+ readonly shapewrapper_triangle: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => number;
2216
+ readonly shapewrapper_union: (a: number, b: number) => number;
2144
2217
  readonly wasmbuildingtool_fill: (a: number, b: number, c: number) => void;
2218
+ readonly wasmbuildingtool_rstack: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
2219
+ readonly __wbg_blockposition_free: (a: number, b: number) => void;
2220
+ readonly __wbg_get_blockposition_x: (a: number) => number;
2221
+ readonly __wbg_get_blockposition_y: (a: number) => number;
2222
+ readonly __wbg_get_blockposition_z: (a: number) => number;
2223
+ readonly __wbg_set_blockposition_x: (a: number, b: number) => void;
2224
+ readonly __wbg_set_blockposition_y: (a: number, b: number) => void;
2225
+ readonly __wbg_set_blockposition_z: (a: number, b: number) => void;
2226
+ readonly blockposition_new: (a: number, b: number, c: number) => number;
2145
2227
  readonly generate_gradient_between_blocks: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => any;
2146
2228
  readonly generate_gradient_between_colors: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => any;
2147
2229
  readonly get_all_colored_blocks: () => any;
Binary file
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "Nano nano@schem.at"
6
6
  ],
7
7
  "description": "A high-performance Minecraft schematic parser and utility library",
8
- "version": "0.1.169",
8
+ "version": "0.1.170",
9
9
  "license": "AGPL-3.0-only",
10
10
  "repository": {
11
11
  "type": "git",