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.
- package/README.md +12 -0
- package/Schematic.d.mts +23 -0
- package/Schematic.d.ts +23 -0
- package/Schematic.mjs +70 -0
- package/nucleation.wasm +0 -0
- package/package.json +7 -2
- package/renderer/AnimationEffect.d.mts +44 -0
- package/renderer/AnimationEffect.d.ts +44 -0
- package/renderer/AnimationEffect.mjs +204 -0
- package/renderer/Autostack.d.mts +43 -0
- package/renderer/Autostack.d.ts +43 -0
- package/renderer/Autostack.mjs +134 -0
- package/renderer/BlockPos.d.mts +28 -0
- package/renderer/BlockPos.d.ts +28 -0
- package/renderer/BlockPos.mjs +130 -0
- package/renderer/BlockState.d.mts +39 -0
- package/renderer/BlockState.d.ts +39 -0
- package/renderer/BlockState.mjs +134 -0
- package/renderer/Blocks.d.mts +91 -0
- package/renderer/Blocks.d.ts +91 -0
- package/renderer/Blocks.mjs +308 -0
- package/renderer/Brush.d.mts +99 -0
- package/renderer/Brush.d.ts +99 -0
- package/renderer/Brush.mjs +335 -0
- package/renderer/BuildAnimation.d.mts +179 -0
- package/renderer/BuildAnimation.d.ts +179 -0
- package/renderer/BuildAnimation.mjs +1148 -0
- package/renderer/BuildingTool.d.mts +46 -0
- package/renderer/BuildingTool.d.ts +46 -0
- package/renderer/BuildingTool.mjs +121 -0
- package/renderer/CellExecutor.d.mts +51 -0
- package/renderer/CellExecutor.d.ts +51 -0
- package/renderer/CellExecutor.mjs +171 -0
- package/renderer/CellularSdfConfig.d.mts +22 -0
- package/renderer/CellularSdfConfig.d.ts +22 -0
- package/renderer/CellularSdfConfig.mjs +69 -0
- package/renderer/ChunkMeshResult.d.mts +75 -0
- package/renderer/ChunkMeshResult.d.ts +75 -0
- package/renderer/ChunkMeshResult.mjs +253 -0
- package/renderer/CircuitBuilder.d.mts +118 -0
- package/renderer/CircuitBuilder.d.ts +118 -0
- package/renderer/CircuitBuilder.mjs +516 -0
- package/renderer/Curve3D.d.mts +27 -0
- package/renderer/Curve3D.d.ts +27 -0
- package/renderer/Curve3D.mjs +101 -0
- package/renderer/DefinitionRegion.d.mts +274 -0
- package/renderer/DefinitionRegion.d.ts +274 -0
- package/renderer/DefinitionRegion.mjs +973 -0
- package/renderer/Design.d.mts +348 -0
- package/renderer/Design.d.ts +348 -0
- package/renderer/Design.mjs +1334 -0
- package/renderer/Diff.d.mts +88 -0
- package/renderer/Diff.d.ts +88 -0
- package/renderer/Diff.mjs +316 -0
- package/renderer/Dimensions.d.mts +28 -0
- package/renderer/Dimensions.d.ts +28 -0
- package/renderer/Dimensions.mjs +130 -0
- package/renderer/DistanceField.d.mts +39 -0
- package/renderer/DistanceField.d.ts +39 -0
- package/renderer/DistanceField.mjs +114 -0
- package/renderer/ExecutionMode.d.mts +42 -0
- package/renderer/ExecutionMode.d.ts +42 -0
- package/renderer/ExecutionMode.mjs +127 -0
- package/renderer/Field3.d.mts +40 -0
- package/renderer/Field3.d.ts +40 -0
- package/renderer/Field3.mjs +160 -0
- package/renderer/FieldProgram.d.mts +40 -0
- package/renderer/FieldProgram.d.ts +40 -0
- package/renderer/FieldProgram.mjs +167 -0
- package/renderer/FieldProgramBinaryOp.d.mts +42 -0
- package/renderer/FieldProgramBinaryOp.d.ts +42 -0
- package/renderer/FieldProgramBinaryOp.mjs +118 -0
- package/renderer/FieldProgramBuilder.d.mts +104 -0
- package/renderer/FieldProgramBuilder.d.ts +104 -0
- package/renderer/FieldProgramBuilder.mjs +486 -0
- package/renderer/FieldProgramDistanceKind.d.mts +26 -0
- package/renderer/FieldProgramDistanceKind.d.ts +26 -0
- package/renderer/FieldProgramDistanceKind.mjs +78 -0
- package/renderer/FieldProgramUnaryOp.d.mts +34 -0
- package/renderer/FieldProgramUnaryOp.d.ts +34 -0
- package/renderer/FieldProgramUnaryOp.mjs +102 -0
- package/renderer/FieldProgramValueType.d.mts +25 -0
- package/renderer/FieldProgramValueType.d.ts +25 -0
- package/renderer/FieldProgramValueType.mjs +75 -0
- package/renderer/FieldRange.d.mts +15 -0
- package/renderer/FieldRange.d.ts +15 -0
- package/renderer/FieldRange.mjs +109 -0
- package/renderer/Fingerprint.d.mts +44 -0
- package/renderer/Fingerprint.d.ts +44 -0
- package/renderer/Fingerprint.mjs +197 -0
- package/renderer/GeneratedChunk.d.mts +35 -0
- package/renderer/GeneratedChunk.d.ts +35 -0
- package/renderer/GeneratedChunk.mjs +178 -0
- package/renderer/GeneratedChunkCoverage.d.mts +25 -0
- package/renderer/GeneratedChunkCoverage.d.ts +25 -0
- package/renderer/GeneratedChunkCoverage.mjs +75 -0
- package/renderer/GeneratedChunkOverlayMode.d.mts +24 -0
- package/renderer/GeneratedChunkOverlayMode.d.ts +24 -0
- package/renderer/GeneratedChunkOverlayMode.mjs +72 -0
- package/renderer/GeneratedWorldStream.d.mts +28 -0
- package/renderer/GeneratedWorldStream.d.ts +28 -0
- package/renderer/GeneratedWorldStream.mjs +86 -0
- package/renderer/Geo.d.mts +41 -0
- package/renderer/Geo.d.ts +41 -0
- package/renderer/Geo.mjs +121 -0
- package/renderer/Hdl.d.mts +56 -0
- package/renderer/Hdl.d.ts +56 -0
- package/renderer/Hdl.mjs +163 -0
- package/renderer/InterpolationSpace.d.mts +25 -0
- package/renderer/InterpolationSpace.d.ts +25 -0
- package/renderer/InterpolationSpace.mjs +73 -0
- package/renderer/IoLayout.d.mts +26 -0
- package/renderer/IoLayout.d.ts +26 -0
- package/renderer/IoLayout.mjs +81 -0
- package/renderer/IoLayoutBuilder.d.mts +73 -0
- package/renderer/IoLayoutBuilder.d.ts +73 -0
- package/renderer/IoLayoutBuilder.mjs +315 -0
- package/renderer/IoType.d.mts +41 -0
- package/renderer/IoType.d.ts +41 -0
- package/renderer/IoType.mjs +125 -0
- package/renderer/ItemModelConfig.d.mts +65 -0
- package/renderer/ItemModelConfig.d.ts +65 -0
- package/renderer/ItemModelConfig.mjs +223 -0
- package/renderer/ItemModelPackBuilder.d.mts +32 -0
- package/renderer/ItemModelPackBuilder.d.ts +32 -0
- package/renderer/ItemModelPackBuilder.mjs +104 -0
- package/renderer/ItemModelResult.d.mts +72 -0
- package/renderer/ItemModelResult.d.ts +72 -0
- package/renderer/ItemModelResult.mjs +268 -0
- package/renderer/ItemScale.d.mts +31 -0
- package/renderer/ItemScale.d.ts +31 -0
- package/renderer/ItemScale.mjs +133 -0
- package/renderer/LayoutFunction.d.mts +52 -0
- package/renderer/LayoutFunction.d.ts +52 -0
- package/renderer/LayoutFunction.mjs +159 -0
- package/renderer/MchprsWorld.d.mts +131 -0
- package/renderer/MchprsWorld.d.ts +131 -0
- package/renderer/MchprsWorld.mjs +423 -0
- package/renderer/MeshBounds.d.mts +40 -0
- package/renderer/MeshBounds.d.ts +40 -0
- package/renderer/MeshBounds.mjs +181 -0
- package/renderer/MeshConfig.d.mts +101 -0
- package/renderer/MeshConfig.d.ts +101 -0
- package/renderer/MeshConfig.mjs +306 -0
- package/renderer/MeshJob.d.mts +44 -0
- package/renderer/MeshJob.d.ts +44 -0
- package/renderer/MeshJob.mjs +116 -0
- package/renderer/MeshPhase.d.mts +38 -0
- package/renderer/MeshPhase.d.ts +38 -0
- package/renderer/MeshPhase.mjs +90 -0
- package/renderer/MeshProgress.d.mts +32 -0
- package/renderer/MeshProgress.d.ts +32 -0
- package/renderer/MeshProgress.mjs +134 -0
- package/renderer/MeshResult.d.mts +76 -0
- package/renderer/MeshResult.d.ts +76 -0
- package/renderer/MeshResult.mjs +269 -0
- package/renderer/MultiMeshResult.d.mts +50 -0
- package/renderer/MultiMeshResult.d.ts +50 -0
- package/renderer/MultiMeshResult.mjs +166 -0
- package/renderer/Nbt.d.mts +50 -0
- package/renderer/Nbt.d.ts +50 -0
- package/renderer/Nbt.mjs +161 -0
- package/renderer/NucleationError.d.mts +53 -0
- package/renderer/NucleationError.d.ts +53 -0
- package/renderer/NucleationError.mjs +136 -0
- package/renderer/OutputCondition.d.mts +45 -0
- package/renderer/OutputCondition.d.ts +45 -0
- package/renderer/OutputCondition.mjs +129 -0
- package/renderer/Palette.d.mts +157 -0
- package/renderer/Palette.d.ts +157 -0
- package/renderer/Palette.mjs +487 -0
- package/renderer/PaletteBuilder.d.mts +119 -0
- package/renderer/PaletteBuilder.d.ts +119 -0
- package/renderer/PaletteBuilder.mjs +457 -0
- package/renderer/README.md +67 -0
- package/renderer/RawMeshExport.d.mts +74 -0
- package/renderer/RawMeshExport.d.ts +74 -0
- package/renderer/RawMeshExport.mjs +243 -0
- package/renderer/RedstoneGraph.d.mts +58 -0
- package/renderer/RedstoneGraph.d.ts +58 -0
- package/renderer/RedstoneGraph.mjs +242 -0
- package/renderer/RegionBounds.d.mts +41 -0
- package/renderer/RegionBounds.d.ts +41 -0
- package/renderer/RegionBounds.mjs +182 -0
- package/renderer/RenderConfig.d.mts +101 -0
- package/renderer/RenderConfig.d.ts +101 -0
- package/renderer/RenderConfig.mjs +271 -0
- package/renderer/Renderer.d.mts +51 -0
- package/renderer/Renderer.d.ts +51 -0
- package/renderer/Renderer.mjs +219 -0
- package/renderer/ResourcePack.d.mts +105 -0
- package/renderer/ResourcePack.d.ts +105 -0
- package/renderer/ResourcePack.mjs +447 -0
- package/renderer/ResourcePackList.d.mts +32 -0
- package/renderer/ResourcePackList.d.ts +32 -0
- package/renderer/ResourcePackList.mjs +96 -0
- package/renderer/Routing.d.mts +66 -0
- package/renderer/Routing.d.ts +66 -0
- package/renderer/Routing.mjs +220 -0
- package/renderer/Schematic.d.mts +977 -0
- package/renderer/Schematic.d.ts +977 -0
- package/renderer/Schematic.mjs +3820 -0
- package/renderer/SchematicBuilder.d.mts +103 -0
- package/renderer/SchematicBuilder.d.ts +103 -0
- package/renderer/SchematicBuilder.mjs +401 -0
- package/renderer/SchematicRegions.d.mts +93 -0
- package/renderer/SchematicRegions.d.ts +93 -0
- package/renderer/SchematicRegions.mjs +411 -0
- package/renderer/SchematicSplitResult.d.mts +26 -0
- package/renderer/SchematicSplitResult.d.ts +26 -0
- package/renderer/SchematicSplitResult.mjs +84 -0
- package/renderer/Scripting.d.mts +40 -0
- package/renderer/Scripting.d.ts +40 -0
- package/renderer/Scripting.mjs +138 -0
- package/renderer/Sdf.d.mts +234 -0
- package/renderer/Sdf.d.ts +234 -0
- package/renderer/Sdf.mjs +1234 -0
- package/renderer/SdfAxis.d.mts +25 -0
- package/renderer/SdfAxis.d.ts +25 -0
- package/renderer/SdfAxis.mjs +75 -0
- package/renderer/SdfBounds.d.mts +19 -0
- package/renderer/SdfBounds.d.ts +19 -0
- package/renderer/SdfBounds.mjs +161 -0
- package/renderer/SdfCellMode.d.mts +26 -0
- package/renderer/SdfCellMode.d.ts +26 -0
- package/renderer/SdfCellMode.mjs +78 -0
- package/renderer/SdfNormal.d.mts +16 -0
- package/renderer/SdfNormal.d.ts +16 -0
- package/renderer/SdfNormal.mjs +122 -0
- package/renderer/Shape.d.mts +143 -0
- package/renderer/Shape.d.ts +143 -0
- package/renderer/Shape.mjs +458 -0
- package/renderer/SortStrategy.d.mts +86 -0
- package/renderer/SortStrategy.d.ts +86 -0
- package/renderer/SortStrategy.mjs +272 -0
- package/renderer/Store.d.mts +83 -0
- package/renderer/Store.d.ts +83 -0
- package/renderer/Store.mjs +369 -0
- package/renderer/StoreIo.d.mts +71 -0
- package/renderer/StoreIo.d.ts +71 -0
- package/renderer/StoreIo.mjs +292 -0
- package/renderer/TextureAtlas.d.mts +40 -0
- package/renderer/TextureAtlas.d.ts +40 -0
- package/renderer/TextureAtlas.mjs +122 -0
- package/renderer/TextureInfo.d.mts +34 -0
- package/renderer/TextureInfo.d.ts +34 -0
- package/renderer/TextureInfo.mjs +149 -0
- package/renderer/TickSettleMode.d.mts +34 -0
- package/renderer/TickSettleMode.d.ts +34 -0
- package/renderer/TickSettleMode.mjs +84 -0
- package/renderer/TickSimulation.d.mts +572 -0
- package/renderer/TickSimulation.d.ts +572 -0
- package/renderer/TickSimulation.mjs +1299 -0
- package/renderer/TypedCircuitExecutor.d.mts +101 -0
- package/renderer/TypedCircuitExecutor.d.ts +101 -0
- package/renderer/TypedCircuitExecutor.mjs +378 -0
- package/renderer/Value.d.mts +73 -0
- package/renderer/Value.d.ts +73 -0
- package/renderer/Value.mjs +275 -0
- package/renderer/VideoConfig.d.mts +15 -0
- package/renderer/VideoConfig.d.ts +15 -0
- package/renderer/VideoConfig.mjs +44 -0
- package/renderer/VoxelModel.d.mts +34 -0
- package/renderer/VoxelModel.d.ts +34 -0
- package/renderer/VoxelModel.mjs +113 -0
- package/renderer/Voxelizer.d.mts +80 -0
- package/renderer/Voxelizer.d.ts +80 -0
- package/renderer/Voxelizer.mjs +261 -0
- package/renderer/WorldChunkView.d.mts +75 -0
- package/renderer/WorldChunkView.d.ts +75 -0
- package/renderer/WorldChunkView.mjs +224 -0
- package/renderer/WorldGenerator.d.mts +75 -0
- package/renderer/WorldGenerator.d.ts +75 -0
- package/renderer/WorldGenerator.mjs +255 -0
- package/renderer/WorldSink.d.mts +50 -0
- package/renderer/WorldSink.d.ts +50 -0
- package/renderer/WorldSink.mjs +177 -0
- package/renderer/WorldStream.d.mts +45 -0
- package/renderer/WorldStream.d.ts +45 -0
- package/renderer/WorldStream.mjs +184 -0
- package/renderer/WsPartitionHints.d.mts +29 -0
- package/renderer/WsPartitionHints.d.ts +29 -0
- package/renderer/WsPartitionHints.mjs +102 -0
- package/renderer/WsProfile.d.mts +46 -0
- package/renderer/WsProfile.d.ts +46 -0
- package/renderer/WsProfile.mjs +152 -0
- package/renderer/WsRunResult.d.mts +83 -0
- package/renderer/WsRunResult.d.ts +83 -0
- package/renderer/WsRunResult.mjs +326 -0
- package/renderer/WsSegmentJob.d.mts +28 -0
- package/renderer/WsSegmentJob.d.ts +28 -0
- package/renderer/WsSegmentJob.mjs +81 -0
- package/renderer/diplomat-runtime.d.mts +15 -0
- package/renderer/diplomat-runtime.d.ts +15 -0
- package/renderer/diplomat-runtime.mjs +779 -0
- package/renderer/diplomat-wasm.mjs +52 -0
- package/renderer/diplomat.config.mjs +5 -0
- package/renderer/index.d.mts +193 -0
- package/renderer/index.d.ts +193 -0
- package/renderer/index.mjs +196 -0
- package/renderer/nucleation.wasm +0 -0
- package/renderer/veneer/design.d.ts +167 -0
- package/renderer/veneer/design.mjs +480 -0
package/README.md
CHANGED
|
@@ -53,3 +53,15 @@ embedded scripting are native-only.
|
|
|
53
53
|
## License
|
|
54
54
|
|
|
55
55
|
MIT
|
|
56
|
+
|
|
57
|
+
### Renderer-only WebAssembly
|
|
58
|
+
|
|
59
|
+
`import { Schematic } from "nucleation/renderer"` loads the bridge-only WASM build
|
|
60
|
+
for schematic viewing and editing. Simulation, meshing and voxelization remain
|
|
61
|
+
available from the main `nucleation` entry point. Each entry owns a separate WASM
|
|
62
|
+
instance; import only the entry needed by a worker.
|
|
63
|
+
|
|
64
|
+
Use `renderRegionsJson()` for region bounds and palettes, then
|
|
65
|
+
`regionBlockIndices(name, start, count)` for owned `Uint32Array` windows of at most
|
|
66
|
+
65,536 cells. Indices use x-fastest, then z, then y order. Call `clearContents()`
|
|
67
|
+
when done to release schematic storage immediately.
|
package/Schematic.d.mts
CHANGED
|
@@ -20,6 +20,13 @@ export class Schematic {
|
|
|
20
20
|
*/
|
|
21
21
|
static create(name: string): Schematic;
|
|
22
22
|
|
|
23
|
+
/**
|
|
24
|
+
* Release all block/entity storage immediately, keeping an empty valid
|
|
25
|
+
* schematic handle. JS consumers should call this when a parsed world or
|
|
26
|
+
* editing session is no longer needed instead of waiting for finalizers.
|
|
27
|
+
*/
|
|
28
|
+
clearContents(): void;
|
|
29
|
+
|
|
23
30
|
/**
|
|
24
31
|
* Return an independent deep copy. Subsequent block, region, entity,
|
|
25
32
|
* metadata, or transform changes do not affect the original.
|
|
@@ -501,6 +508,22 @@ export class Schematic {
|
|
|
501
508
|
*/
|
|
502
509
|
getChunkNonAirBlocksJson(offsetX: number, offsetY: number, offsetZ: number, width: number, height: number, length: number): string;
|
|
503
510
|
|
|
511
|
+
/**
|
|
512
|
+
* Storage metadata and full block states for palette-index streaming. Region order
|
|
513
|
+
* is default first, then sorted names (highest precedence first); indices are LOCAL to each region. Bounds
|
|
514
|
+
* describe allocated storage, never tight bounds. x is fastest, then z, then y.
|
|
515
|
+
* No block buffer is cloned or serialized here.
|
|
516
|
+
*/
|
|
517
|
+
renderRegionsJson(): string;
|
|
518
|
+
|
|
519
|
+
/**
|
|
520
|
+
* A bounded window of a region's dense palette indices (including air).
|
|
521
|
+
* At most 65,536 cells per call; no full-world scan, coordinate tuples, or
|
|
522
|
+
* intermediate Rust allocation. JS bindings copy the borrowed slice before
|
|
523
|
+
* returning, so callers may mutate the schematic or grow WASM memory safely.
|
|
524
|
+
*/
|
|
525
|
+
regionBlockIndices(regionName: string, start: number, count: number): Uint32Array;
|
|
526
|
+
|
|
504
527
|
/**
|
|
505
528
|
* Split the schematic into chunks (default bottom-up strategy). Writes a
|
|
506
529
|
* JSON array of `{"chunk_x", "chunk_y", "chunk_z", "blocks": [...]}` where
|
package/Schematic.d.ts
CHANGED
|
@@ -20,6 +20,13 @@ export class Schematic {
|
|
|
20
20
|
*/
|
|
21
21
|
static create(name: string): Schematic;
|
|
22
22
|
|
|
23
|
+
/**
|
|
24
|
+
* Release all block/entity storage immediately, keeping an empty valid
|
|
25
|
+
* schematic handle. JS consumers should call this when a parsed world or
|
|
26
|
+
* editing session is no longer needed instead of waiting for finalizers.
|
|
27
|
+
*/
|
|
28
|
+
clearContents(): void;
|
|
29
|
+
|
|
23
30
|
/**
|
|
24
31
|
* Return an independent deep copy. Subsequent block, region, entity,
|
|
25
32
|
* metadata, or transform changes do not affect the original.
|
|
@@ -501,6 +508,22 @@ export class Schematic {
|
|
|
501
508
|
*/
|
|
502
509
|
getChunkNonAirBlocksJson(offsetX: number, offsetY: number, offsetZ: number, width: number, height: number, length: number): string;
|
|
503
510
|
|
|
511
|
+
/**
|
|
512
|
+
* Storage metadata and full block states for palette-index streaming. Region order
|
|
513
|
+
* is default first, then sorted names (highest precedence first); indices are LOCAL to each region. Bounds
|
|
514
|
+
* describe allocated storage, never tight bounds. x is fastest, then z, then y.
|
|
515
|
+
* No block buffer is cloned or serialized here.
|
|
516
|
+
*/
|
|
517
|
+
renderRegionsJson(): string;
|
|
518
|
+
|
|
519
|
+
/**
|
|
520
|
+
* A bounded window of a region's dense palette indices (including air).
|
|
521
|
+
* At most 65,536 cells per call; no full-world scan, coordinate tuples, or
|
|
522
|
+
* intermediate Rust allocation. JS bindings copy the borrowed slice before
|
|
523
|
+
* returning, so callers may mutate the schematic or grow WASM memory safely.
|
|
524
|
+
*/
|
|
525
|
+
regionBlockIndices(regionName: string, start: number, count: number): Uint32Array;
|
|
526
|
+
|
|
504
527
|
/**
|
|
505
528
|
* Split the schematic into chunks (default bottom-up strategy). Writes a
|
|
506
529
|
* JSON array of `{"chunk_x", "chunk_y", "chunk_z", "blocks": [...]}` where
|
package/Schematic.mjs
CHANGED
|
@@ -61,6 +61,21 @@ export class Schematic {
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
+
/**
|
|
65
|
+
* Release all block/entity storage immediately, keeping an empty valid
|
|
66
|
+
* schematic handle. JS consumers should call this when a parsed world or
|
|
67
|
+
* editing session is no longer needed instead of waiting for finalizers.
|
|
68
|
+
*/
|
|
69
|
+
clearContents() {
|
|
70
|
+
wasm.Schematic_clear_contents(this.ffiValue);
|
|
71
|
+
|
|
72
|
+
try {}
|
|
73
|
+
|
|
74
|
+
finally {
|
|
75
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
64
79
|
/**
|
|
65
80
|
* Return an independent deep copy. Subsequent block, region, entity,
|
|
66
81
|
* metadata, or transform changes do not affect the original.
|
|
@@ -1959,6 +1974,61 @@ export class Schematic {
|
|
|
1959
1974
|
}
|
|
1960
1975
|
}
|
|
1961
1976
|
|
|
1977
|
+
/**
|
|
1978
|
+
* Storage metadata and full block states for palette-index streaming. Region order
|
|
1979
|
+
* is default first, then sorted names (highest precedence first); indices are LOCAL to each region. Bounds
|
|
1980
|
+
* describe allocated storage, never tight bounds. x is fastest, then z, then y.
|
|
1981
|
+
* No block buffer is cloned or serialized here.
|
|
1982
|
+
*/
|
|
1983
|
+
renderRegionsJson() {
|
|
1984
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
1985
|
+
|
|
1986
|
+
wasm.Schematic_render_regions_json(this.ffiValue, write.buffer);
|
|
1987
|
+
|
|
1988
|
+
try {
|
|
1989
|
+
return write.readString8();
|
|
1990
|
+
}
|
|
1991
|
+
|
|
1992
|
+
finally {
|
|
1993
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
1994
|
+
write.free();
|
|
1995
|
+
}
|
|
1996
|
+
}
|
|
1997
|
+
|
|
1998
|
+
/**
|
|
1999
|
+
* A bounded window of a region's dense palette indices (including air).
|
|
2000
|
+
* At most 65,536 cells per call; no full-world scan, coordinate tuples, or
|
|
2001
|
+
* intermediate Rust allocation. JS bindings copy the borrowed slice before
|
|
2002
|
+
* returning, so callers may mutate the schematic or grow WASM memory safely.
|
|
2003
|
+
*/
|
|
2004
|
+
regionBlockIndices(regionName, start, count) {
|
|
2005
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
2006
|
+
|
|
2007
|
+
const regionNameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, regionName)));
|
|
2008
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
|
|
2009
|
+
|
|
2010
|
+
// This lifetime edge depends on lifetimes 'a
|
|
2011
|
+
let aEdges = [this];
|
|
2012
|
+
|
|
2013
|
+
|
|
2014
|
+
const result = wasm.Schematic_region_block_indices(diplomatReceive.buffer, this.ffiValue, regionNameSlice.ptr, start, count);
|
|
2015
|
+
|
|
2016
|
+
try {
|
|
2017
|
+
if (!diplomatReceive.resultFlag) {
|
|
2018
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
2019
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
2020
|
+
}
|
|
2021
|
+
return new diplomatRuntime.DiplomatSlicePrimitive(wasm, diplomatReceive.buffer, "u32", aEdges).getValue().slice();
|
|
2022
|
+
}
|
|
2023
|
+
|
|
2024
|
+
finally {
|
|
2025
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
2026
|
+
functionCleanupArena.free();
|
|
2027
|
+
|
|
2028
|
+
diplomatReceive.free();
|
|
2029
|
+
}
|
|
2030
|
+
}
|
|
2031
|
+
|
|
1962
2032
|
/**
|
|
1963
2033
|
* Split the schematic into chunks (default bottom-up strategy). Writes a
|
|
1964
2034
|
* JSON array of `{"chunk_x", "chunk_y", "chunk_z", "blocks": [...]}` where
|
package/nucleation.wasm
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nucleation",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.23",
|
|
4
4
|
"description": "A high-performance Minecraft schematic parser and utility library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.mjs",
|
|
@@ -12,6 +12,10 @@
|
|
|
12
12
|
"./design": {
|
|
13
13
|
"types": "./veneer/design.d.ts",
|
|
14
14
|
"default": "./veneer/design.mjs"
|
|
15
|
+
},
|
|
16
|
+
"./renderer": {
|
|
17
|
+
"types": "./renderer/index.d.ts",
|
|
18
|
+
"default": "./renderer/index.mjs"
|
|
15
19
|
}
|
|
16
20
|
},
|
|
17
21
|
"files": [
|
|
@@ -20,7 +24,8 @@
|
|
|
20
24
|
"*.d.mts",
|
|
21
25
|
"veneer/",
|
|
22
26
|
"nucleation.wasm",
|
|
23
|
-
"diplomat.config.mjs"
|
|
27
|
+
"diplomat.config.mjs",
|
|
28
|
+
"renderer/"
|
|
24
29
|
],
|
|
25
30
|
"engines": {
|
|
26
31
|
"node": ">=18"
|
|
@@ -0,0 +1,44 @@
|
|
|
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
|
+
* A reusable set of property tracks, modelled after Anime.js object animations.
|
|
9
|
+
*/
|
|
10
|
+
export class AnimationEffect {
|
|
11
|
+
/** @internal */
|
|
12
|
+
get ffiValue(): pointer;
|
|
13
|
+
/** @internal */
|
|
14
|
+
constructor();
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
static create(durationMs: number): AnimationEffect;
|
|
18
|
+
|
|
19
|
+
static instant(): AnimationEffect;
|
|
20
|
+
|
|
21
|
+
static popIn(durationMs: number): AnimationEffect;
|
|
22
|
+
|
|
23
|
+
static dropIn(durationMs: number, height: number): AnimationEffect;
|
|
24
|
+
|
|
25
|
+
static dropAndPop(durationMs: number, height: number): AnimationEffect;
|
|
26
|
+
|
|
27
|
+
static spinIn(durationMs: number, turns: number): AnimationEffect;
|
|
28
|
+
|
|
29
|
+
static turntable(durationMs: number): AnimationEffect;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Add a two-key property tween. Property names follow Anime.js/Three.js:
|
|
33
|
+
* `x`, `y`, `z`, `rotateX`, `rotateY`, `rotateZ`, `scale`, `opacity`,
|
|
34
|
+
* `tintR/G/B/A`, and `emissiveR/G/B`.
|
|
35
|
+
*/
|
|
36
|
+
addTween(propertyName: string, start: number, end: number, easingName: string): void;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Add a normalised keyframe (`at` in `0..=1`) to a property track.
|
|
40
|
+
*/
|
|
41
|
+
addKeyframe(propertyName: string, at: number, value: number, easingName: string): void;
|
|
42
|
+
|
|
43
|
+
setRepeatForever(): void;
|
|
44
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
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
|
+
* A reusable set of property tracks, modelled after Anime.js object animations.
|
|
9
|
+
*/
|
|
10
|
+
export class AnimationEffect {
|
|
11
|
+
/** @internal */
|
|
12
|
+
get ffiValue(): pointer;
|
|
13
|
+
/** @internal */
|
|
14
|
+
constructor();
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
static create(durationMs: number): AnimationEffect;
|
|
18
|
+
|
|
19
|
+
static instant(): AnimationEffect;
|
|
20
|
+
|
|
21
|
+
static popIn(durationMs: number): AnimationEffect;
|
|
22
|
+
|
|
23
|
+
static dropIn(durationMs: number, height: number): AnimationEffect;
|
|
24
|
+
|
|
25
|
+
static dropAndPop(durationMs: number, height: number): AnimationEffect;
|
|
26
|
+
|
|
27
|
+
static spinIn(durationMs: number, turns: number): AnimationEffect;
|
|
28
|
+
|
|
29
|
+
static turntable(durationMs: number): AnimationEffect;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Add a two-key property tween. Property names follow Anime.js/Three.js:
|
|
33
|
+
* `x`, `y`, `z`, `rotateX`, `rotateY`, `rotateZ`, `scale`, `opacity`,
|
|
34
|
+
* `tintR/G/B/A`, and `emissiveR/G/B`.
|
|
35
|
+
*/
|
|
36
|
+
addTween(propertyName: string, start: number, end: number, easingName: string): void;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Add a normalised keyframe (`at` in `0..=1`) to a property track.
|
|
40
|
+
*/
|
|
41
|
+
addKeyframe(propertyName: string, at: number, value: number, easingName: string): void;
|
|
42
|
+
|
|
43
|
+
setRepeatForever(): void;
|
|
44
|
+
}
|
|
@@ -0,0 +1,204 @@
|
|
|
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 AnimationEffect_box_destroy_registry = new FinalizationRegistry((ptr) => {
|
|
7
|
+
wasm.AnimationEffect_destroy(ptr);
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* A reusable set of property tracks, modelled after Anime.js object animations.
|
|
12
|
+
*/
|
|
13
|
+
export class AnimationEffect {
|
|
14
|
+
// Internal ptr reference:
|
|
15
|
+
#ptr = null;
|
|
16
|
+
|
|
17
|
+
// Lifetimes are only to keep dependencies alive.
|
|
18
|
+
// Since JS won't garbage collect until there are no incoming edges.
|
|
19
|
+
#selfEdge = [];
|
|
20
|
+
|
|
21
|
+
#internalConstructor(symbol, ptr, selfEdge) {
|
|
22
|
+
if (symbol !== diplomatRuntime.internalConstructor) {
|
|
23
|
+
console.error("AnimationEffect is an Opaque type. You cannot call its constructor.");
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
this.#ptr = ptr;
|
|
27
|
+
this.#selfEdge = selfEdge;
|
|
28
|
+
|
|
29
|
+
// Are we being borrowed? If not, we can register.
|
|
30
|
+
if (this.#selfEdge.length === 0) {
|
|
31
|
+
AnimationEffect_box_destroy_registry.register(this, this.#ptr);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
/** @internal */
|
|
37
|
+
get ffiValue() {
|
|
38
|
+
return this.#ptr;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
static create(durationMs) {
|
|
43
|
+
|
|
44
|
+
const result = wasm.AnimationEffect_create(durationMs);
|
|
45
|
+
|
|
46
|
+
try {
|
|
47
|
+
return new AnimationEffect(diplomatRuntime.internalConstructor, result, []);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
finally {
|
|
51
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
static instant() {
|
|
56
|
+
|
|
57
|
+
const result = wasm.AnimationEffect_instant();
|
|
58
|
+
|
|
59
|
+
try {
|
|
60
|
+
return new AnimationEffect(diplomatRuntime.internalConstructor, result, []);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
finally {
|
|
64
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
static popIn(durationMs) {
|
|
69
|
+
|
|
70
|
+
const result = wasm.AnimationEffect_pop_in(durationMs);
|
|
71
|
+
|
|
72
|
+
try {
|
|
73
|
+
return new AnimationEffect(diplomatRuntime.internalConstructor, result, []);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
finally {
|
|
77
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
static dropIn(durationMs, height) {
|
|
82
|
+
|
|
83
|
+
const result = wasm.AnimationEffect_drop_in(durationMs, height);
|
|
84
|
+
|
|
85
|
+
try {
|
|
86
|
+
return new AnimationEffect(diplomatRuntime.internalConstructor, result, []);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
finally {
|
|
90
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
static dropAndPop(durationMs, height) {
|
|
95
|
+
|
|
96
|
+
const result = wasm.AnimationEffect_drop_and_pop(durationMs, height);
|
|
97
|
+
|
|
98
|
+
try {
|
|
99
|
+
return new AnimationEffect(diplomatRuntime.internalConstructor, result, []);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
finally {
|
|
103
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
static spinIn(durationMs, turns) {
|
|
108
|
+
|
|
109
|
+
const result = wasm.AnimationEffect_spin_in(durationMs, turns);
|
|
110
|
+
|
|
111
|
+
try {
|
|
112
|
+
return new AnimationEffect(diplomatRuntime.internalConstructor, result, []);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
finally {
|
|
116
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
static turntable(durationMs) {
|
|
121
|
+
|
|
122
|
+
const result = wasm.AnimationEffect_turntable(durationMs);
|
|
123
|
+
|
|
124
|
+
try {
|
|
125
|
+
return new AnimationEffect(diplomatRuntime.internalConstructor, result, []);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
finally {
|
|
129
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Add a two-key property tween. Property names follow Anime.js/Three.js:
|
|
135
|
+
* `x`, `y`, `z`, `rotateX`, `rotateY`, `rotateZ`, `scale`, `opacity`,
|
|
136
|
+
* `tintR/G/B/A`, and `emissiveR/G/B`.
|
|
137
|
+
*/
|
|
138
|
+
addTween(propertyName, start, end, easingName) {
|
|
139
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
140
|
+
|
|
141
|
+
const propertyNameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, propertyName)));
|
|
142
|
+
const easingNameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, easingName)));
|
|
143
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
const result = wasm.AnimationEffect_add_tween(diplomatReceive.buffer, this.ffiValue, propertyNameSlice.ptr, start, end, easingNameSlice.ptr);
|
|
147
|
+
|
|
148
|
+
try {
|
|
149
|
+
if (!diplomatReceive.resultFlag) {
|
|
150
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
151
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
finally {
|
|
156
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
157
|
+
functionCleanupArena.free();
|
|
158
|
+
|
|
159
|
+
diplomatReceive.free();
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Add a normalised keyframe (`at` in `0..=1`) to a property track.
|
|
165
|
+
*/
|
|
166
|
+
addKeyframe(propertyName, at, value, easingName) {
|
|
167
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
168
|
+
|
|
169
|
+
const propertyNameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, propertyName)));
|
|
170
|
+
const easingNameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, easingName)));
|
|
171
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
const result = wasm.AnimationEffect_add_keyframe(diplomatReceive.buffer, this.ffiValue, propertyNameSlice.ptr, at, value, easingNameSlice.ptr);
|
|
175
|
+
|
|
176
|
+
try {
|
|
177
|
+
if (!diplomatReceive.resultFlag) {
|
|
178
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
179
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
finally {
|
|
184
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
185
|
+
functionCleanupArena.free();
|
|
186
|
+
|
|
187
|
+
diplomatReceive.free();
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
setRepeatForever() {
|
|
192
|
+
wasm.AnimationEffect_set_repeat_forever(this.ffiValue);
|
|
193
|
+
|
|
194
|
+
try {}
|
|
195
|
+
|
|
196
|
+
finally {
|
|
197
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
constructor(symbol, ptr, selfEdge) {
|
|
202
|
+
return this.#internalConstructor(...arguments)
|
|
203
|
+
}
|
|
204
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
3
|
+
import type { Schematic } from "./Schematic.mjs"
|
|
4
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Free functions in the old ABI hung directly off `schematic_*`; here they get a
|
|
10
|
+
* namespacing opaque-less home via static methods on a zero-size type is not
|
|
11
|
+
* supported, so they live as static methods taking `&Schematic` explicitly.
|
|
12
|
+
*/
|
|
13
|
+
export class Autostack {
|
|
14
|
+
/** @internal */
|
|
15
|
+
get ffiValue(): pointer;
|
|
16
|
+
/** @internal */
|
|
17
|
+
constructor();
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Detect repeating structures (region coverage). Writes a JSON array string;
|
|
22
|
+
* each element has `mode`, `vectors`, `coverage`, `region_min`/`region_max`,
|
|
23
|
+
* `cell_min`/`cell_max`, `label`.
|
|
24
|
+
*/
|
|
25
|
+
static detectStructures(schematic: Schematic): string;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Graph-based detection: recovers diagonal lattice periods via the redstone
|
|
29
|
+
* logic graph. Writes `"[]"` for non-redstone builds. Requires the
|
|
30
|
+
* `simulation` feature; writes `"[]"` when compiled without it.
|
|
31
|
+
*/
|
|
32
|
+
static detectStructuresGraph(schematic: Schematic): string;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Resize a 1D / diagonal structure along its period vector.
|
|
36
|
+
*/
|
|
37
|
+
static resize1d(schematic: Schematic, vx: number, vy: number, vz: number, units: number): Schematic;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Resize a 2D structure to `n1`×`n2` cells along the two period vectors.
|
|
41
|
+
*/
|
|
42
|
+
static resize2d(schematic: Schematic, v1x: number, v1y: number, v1z: number, v2x: number, v2y: number, v2z: number, n1: number, n2: number): Schematic;
|
|
43
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
3
|
+
import type { Schematic } from "./Schematic.mjs"
|
|
4
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Free functions in the old ABI hung directly off `schematic_*`; here they get a
|
|
10
|
+
* namespacing opaque-less home via static methods on a zero-size type is not
|
|
11
|
+
* supported, so they live as static methods taking `&Schematic` explicitly.
|
|
12
|
+
*/
|
|
13
|
+
export class Autostack {
|
|
14
|
+
/** @internal */
|
|
15
|
+
get ffiValue(): pointer;
|
|
16
|
+
/** @internal */
|
|
17
|
+
constructor();
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Detect repeating structures (region coverage). Writes a JSON array string;
|
|
22
|
+
* each element has `mode`, `vectors`, `coverage`, `region_min`/`region_max`,
|
|
23
|
+
* `cell_min`/`cell_max`, `label`.
|
|
24
|
+
*/
|
|
25
|
+
static detectStructures(schematic: Schematic): string;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Graph-based detection: recovers diagonal lattice periods via the redstone
|
|
29
|
+
* logic graph. Writes `"[]"` for non-redstone builds. Requires the
|
|
30
|
+
* `simulation` feature; writes `"[]"` when compiled without it.
|
|
31
|
+
*/
|
|
32
|
+
static detectStructuresGraph(schematic: Schematic): string;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Resize a 1D / diagonal structure along its period vector.
|
|
36
|
+
*/
|
|
37
|
+
static resize1d(schematic: Schematic, vx: number, vy: number, vz: number, units: number): Schematic;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Resize a 2D structure to `n1`×`n2` cells along the two period vectors.
|
|
41
|
+
*/
|
|
42
|
+
static resize2d(schematic: Schematic, v1x: number, v1y: number, v1z: number, v2x: number, v2y: number, v2z: number, n1: number, n2: number): Schematic;
|
|
43
|
+
}
|