nucleation 0.10.21 → 0.10.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BlockPos.mjs +1 -0
- package/Dimensions.mjs +1 -0
- package/FieldRange.mjs +1 -0
- package/ItemScale.mjs +1 -0
- package/MeshBounds.mjs +1 -0
- package/MeshProgress.mjs +1 -0
- package/README.md +12 -0
- package/RegionBounds.mjs +1 -0
- package/Schematic.d.mts +32 -0
- package/Schematic.d.ts +32 -0
- package/Schematic.mjs +100 -0
- package/SdfBounds.mjs +1 -0
- package/SdfNormal.mjs +1 -0
- package/TextureInfo.mjs +1 -0
- package/diplomat-runtime.mjs +19 -14
- 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
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { Brush } from "./Brush.mjs"
|
|
3
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
4
|
+
import type { Schematic } from "./Schematic.mjs"
|
|
5
|
+
import type { Shape } from "./Shape.mjs"
|
|
6
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Namespace for the fill operations that combine a schematic, a shape and a
|
|
12
|
+
* brush (the old `buildingtool_*` free functions).
|
|
13
|
+
*/
|
|
14
|
+
export class BuildingTool {
|
|
15
|
+
/** @internal */
|
|
16
|
+
get ffiValue(): pointer;
|
|
17
|
+
/** @internal */
|
|
18
|
+
constructor();
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Fill `shape` into `schematic` using `brush`.
|
|
23
|
+
*/
|
|
24
|
+
static fill(schematic: Schematic, shape: Shape, brush: Brush): void;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Fill `count` copies of `shape`, each offset by `offset * i`.
|
|
28
|
+
*/
|
|
29
|
+
static rstack(schematic: Schematic, shape: Shape, brush: Brush, count: number, offsetX: number, offsetY: number, offsetZ: number): void;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Masked fill that preserves everything already placed: `brush` is
|
|
33
|
+
* only written where `schematic` currently has air (or nothing at
|
|
34
|
+
* all), so existing structures inside `shape` survive untouched.
|
|
35
|
+
*/
|
|
36
|
+
static fillOnlyAir(schematic: Schematic, shape: Shape, brush: Brush): void;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Masked fill that only overwrites the listed blocks: `targets_json`
|
|
40
|
+
* is a JSON array of block ids (e.g. `["minecraft:stone"]`, state
|
|
41
|
+
* properties ignored) and every cell of `shape` whose current block
|
|
42
|
+
* id is in the list is replaced by `brush` — everything else,
|
|
43
|
+
* including air, is left alone.
|
|
44
|
+
*/
|
|
45
|
+
static fillReplacing(schematic: Schematic, shape: Shape, brush: Brush, targetsJson: string): void;
|
|
46
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { Brush } from "./Brush.mjs"
|
|
3
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
4
|
+
import type { Schematic } from "./Schematic.mjs"
|
|
5
|
+
import type { Shape } from "./Shape.mjs"
|
|
6
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Namespace for the fill operations that combine a schematic, a shape and a
|
|
12
|
+
* brush (the old `buildingtool_*` free functions).
|
|
13
|
+
*/
|
|
14
|
+
export class BuildingTool {
|
|
15
|
+
/** @internal */
|
|
16
|
+
get ffiValue(): pointer;
|
|
17
|
+
/** @internal */
|
|
18
|
+
constructor();
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Fill `shape` into `schematic` using `brush`.
|
|
23
|
+
*/
|
|
24
|
+
static fill(schematic: Schematic, shape: Shape, brush: Brush): void;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Fill `count` copies of `shape`, each offset by `offset * i`.
|
|
28
|
+
*/
|
|
29
|
+
static rstack(schematic: Schematic, shape: Shape, brush: Brush, count: number, offsetX: number, offsetY: number, offsetZ: number): void;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Masked fill that preserves everything already placed: `brush` is
|
|
33
|
+
* only written where `schematic` currently has air (or nothing at
|
|
34
|
+
* all), so existing structures inside `shape` survive untouched.
|
|
35
|
+
*/
|
|
36
|
+
static fillOnlyAir(schematic: Schematic, shape: Shape, brush: Brush): void;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Masked fill that only overwrites the listed blocks: `targets_json`
|
|
40
|
+
* is a JSON array of block ids (e.g. `["minecraft:stone"]`, state
|
|
41
|
+
* properties ignored) and every cell of `shape` whose current block
|
|
42
|
+
* id is in the list is replaced by `brush` — everything else,
|
|
43
|
+
* including air, is left alone.
|
|
44
|
+
*/
|
|
45
|
+
static fillReplacing(schematic: Schematic, shape: Shape, brush: Brush, targetsJson: string): void;
|
|
46
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import { Brush } from "./Brush.mjs"
|
|
3
|
+
import { NucleationError } from "./NucleationError.mjs"
|
|
4
|
+
import { Schematic } from "./Schematic.mjs"
|
|
5
|
+
import { Shape } from "./Shape.mjs"
|
|
6
|
+
import wasm from "./diplomat-wasm.mjs";
|
|
7
|
+
import * as diplomatRuntime from "./diplomat-runtime.mjs";
|
|
8
|
+
|
|
9
|
+
const BuildingTool_box_destroy_registry = new FinalizationRegistry((ptr) => {
|
|
10
|
+
wasm.BuildingTool_destroy(ptr);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Namespace for the fill operations that combine a schematic, a shape and a
|
|
15
|
+
* brush (the old `buildingtool_*` free functions).
|
|
16
|
+
*/
|
|
17
|
+
export class BuildingTool {
|
|
18
|
+
// Internal ptr reference:
|
|
19
|
+
#ptr = null;
|
|
20
|
+
|
|
21
|
+
// Lifetimes are only to keep dependencies alive.
|
|
22
|
+
// Since JS won't garbage collect until there are no incoming edges.
|
|
23
|
+
#selfEdge = [];
|
|
24
|
+
|
|
25
|
+
#internalConstructor(symbol, ptr, selfEdge) {
|
|
26
|
+
if (symbol !== diplomatRuntime.internalConstructor) {
|
|
27
|
+
console.error("BuildingTool is an Opaque type. You cannot call its constructor.");
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
this.#ptr = ptr;
|
|
31
|
+
this.#selfEdge = selfEdge;
|
|
32
|
+
|
|
33
|
+
// Are we being borrowed? If not, we can register.
|
|
34
|
+
if (this.#selfEdge.length === 0) {
|
|
35
|
+
BuildingTool_box_destroy_registry.register(this, this.#ptr);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return this;
|
|
39
|
+
}
|
|
40
|
+
/** @internal */
|
|
41
|
+
get ffiValue() {
|
|
42
|
+
return this.#ptr;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Fill `shape` into `schematic` using `brush`.
|
|
48
|
+
*/
|
|
49
|
+
static fill(schematic, shape, brush) {
|
|
50
|
+
wasm.BuildingTool_fill(schematic.ffiValue, shape.ffiValue, brush.ffiValue);
|
|
51
|
+
|
|
52
|
+
try {}
|
|
53
|
+
|
|
54
|
+
finally {
|
|
55
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Fill `count` copies of `shape`, each offset by `offset * i`.
|
|
61
|
+
*/
|
|
62
|
+
static rstack(schematic, shape, brush, count, offsetX, offsetY, offsetZ) {
|
|
63
|
+
wasm.BuildingTool_rstack(schematic.ffiValue, shape.ffiValue, brush.ffiValue, count, offsetX, offsetY, offsetZ);
|
|
64
|
+
|
|
65
|
+
try {}
|
|
66
|
+
|
|
67
|
+
finally {
|
|
68
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Masked fill that preserves everything already placed: `brush` is
|
|
74
|
+
* only written where `schematic` currently has air (or nothing at
|
|
75
|
+
* all), so existing structures inside `shape` survive untouched.
|
|
76
|
+
*/
|
|
77
|
+
static fillOnlyAir(schematic, shape, brush) {
|
|
78
|
+
wasm.BuildingTool_fill_only_air(schematic.ffiValue, shape.ffiValue, brush.ffiValue);
|
|
79
|
+
|
|
80
|
+
try {}
|
|
81
|
+
|
|
82
|
+
finally {
|
|
83
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Masked fill that only overwrites the listed blocks: `targets_json`
|
|
89
|
+
* is a JSON array of block ids (e.g. `["minecraft:stone"]`, state
|
|
90
|
+
* properties ignored) and every cell of `shape` whose current block
|
|
91
|
+
* id is in the list is replaced by `brush` — everything else,
|
|
92
|
+
* including air, is left alone.
|
|
93
|
+
*/
|
|
94
|
+
static fillReplacing(schematic, shape, brush, targetsJson) {
|
|
95
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
96
|
+
|
|
97
|
+
const targetsJsonSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, targetsJson)));
|
|
98
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
const result = wasm.BuildingTool_fill_replacing(diplomatReceive.buffer, schematic.ffiValue, shape.ffiValue, brush.ffiValue, targetsJsonSlice.ptr);
|
|
102
|
+
|
|
103
|
+
try {
|
|
104
|
+
if (!diplomatReceive.resultFlag) {
|
|
105
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
106
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
finally {
|
|
111
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
112
|
+
functionCleanupArena.free();
|
|
113
|
+
|
|
114
|
+
diplomatReceive.free();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
constructor(symbol, ptr, selfEdge) {
|
|
119
|
+
return this.#internalConstructor(...arguments)
|
|
120
|
+
}
|
|
121
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
3
|
+
import type { Schematic } from "./Schematic.mjs"
|
|
4
|
+
import type { Value } from "./Value.mjs"
|
|
5
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A typed executor bound to a self-describing cell: the schematic's
|
|
11
|
+
* EMBEDDED contract (autodetected, Insign fallback) supplies the port
|
|
12
|
+
* names, types and positions; the vanilla-accurate mc-tick engine
|
|
13
|
+
* supplies the physics. Wraps
|
|
14
|
+
* {@link crate::simulation::typed_executor::BackendCircuitExecutor}.
|
|
15
|
+
*/
|
|
16
|
+
export class CellExecutor {
|
|
17
|
+
/** @internal */
|
|
18
|
+
get ffiValue(): pointer;
|
|
19
|
+
/** @internal */
|
|
20
|
+
constructor();
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Bind the schematic's embedded cell contract to the mc-tick
|
|
25
|
+
* engine (needs the `mc-tick` feature, else errors). Cells deploy
|
|
26
|
+
* BAKED: the backend trusts saved block states; an unbaked build
|
|
27
|
+
* sits inert until the first input flip.
|
|
28
|
+
*/
|
|
29
|
+
static forSchematic(schematic: Schematic): CellExecutor;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Set an input port by name and typed value.
|
|
33
|
+
*/
|
|
34
|
+
setInput(name: string, value: Value): void;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Run until quiescent within `budget` ticks; true when settled.
|
|
38
|
+
*/
|
|
39
|
+
settle(budget: number): boolean;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Read an output port by name.
|
|
43
|
+
*/
|
|
44
|
+
readOutput(name: string): Value;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Rebuild the engine from the original schematic (all inputs back
|
|
48
|
+
* to their saved states).
|
|
49
|
+
*/
|
|
50
|
+
reset(): void;
|
|
51
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
3
|
+
import type { Schematic } from "./Schematic.mjs"
|
|
4
|
+
import type { Value } from "./Value.mjs"
|
|
5
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A typed executor bound to a self-describing cell: the schematic's
|
|
11
|
+
* EMBEDDED contract (autodetected, Insign fallback) supplies the port
|
|
12
|
+
* names, types and positions; the vanilla-accurate mc-tick engine
|
|
13
|
+
* supplies the physics. Wraps
|
|
14
|
+
* {@link crate::simulation::typed_executor::BackendCircuitExecutor}.
|
|
15
|
+
*/
|
|
16
|
+
export class CellExecutor {
|
|
17
|
+
/** @internal */
|
|
18
|
+
get ffiValue(): pointer;
|
|
19
|
+
/** @internal */
|
|
20
|
+
constructor();
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Bind the schematic's embedded cell contract to the mc-tick
|
|
25
|
+
* engine (needs the `mc-tick` feature, else errors). Cells deploy
|
|
26
|
+
* BAKED: the backend trusts saved block states; an unbaked build
|
|
27
|
+
* sits inert until the first input flip.
|
|
28
|
+
*/
|
|
29
|
+
static forSchematic(schematic: Schematic): CellExecutor;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Set an input port by name and typed value.
|
|
33
|
+
*/
|
|
34
|
+
setInput(name: string, value: Value): void;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Run until quiescent within `budget` ticks; true when settled.
|
|
38
|
+
*/
|
|
39
|
+
settle(budget: number): boolean;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Read an output port by name.
|
|
43
|
+
*/
|
|
44
|
+
readOutput(name: string): Value;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Rebuild the engine from the original schematic (all inputs back
|
|
48
|
+
* to their saved states).
|
|
49
|
+
*/
|
|
50
|
+
reset(): void;
|
|
51
|
+
}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import { NucleationError } from "./NucleationError.mjs"
|
|
3
|
+
import { Schematic } from "./Schematic.mjs"
|
|
4
|
+
import { Value } from "./Value.mjs"
|
|
5
|
+
import wasm from "./diplomat-wasm.mjs";
|
|
6
|
+
import * as diplomatRuntime from "./diplomat-runtime.mjs";
|
|
7
|
+
|
|
8
|
+
const CellExecutor_box_destroy_registry = new FinalizationRegistry((ptr) => {
|
|
9
|
+
wasm.CellExecutor_destroy(ptr);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* A typed executor bound to a self-describing cell: the schematic's
|
|
14
|
+
* EMBEDDED contract (autodetected, Insign fallback) supplies the port
|
|
15
|
+
* names, types and positions; the vanilla-accurate mc-tick engine
|
|
16
|
+
* supplies the physics. Wraps
|
|
17
|
+
* {@link crate::simulation::typed_executor::BackendCircuitExecutor}.
|
|
18
|
+
*/
|
|
19
|
+
export class CellExecutor {
|
|
20
|
+
// Internal ptr reference:
|
|
21
|
+
#ptr = null;
|
|
22
|
+
|
|
23
|
+
// Lifetimes are only to keep dependencies alive.
|
|
24
|
+
// Since JS won't garbage collect until there are no incoming edges.
|
|
25
|
+
#selfEdge = [];
|
|
26
|
+
|
|
27
|
+
#internalConstructor(symbol, ptr, selfEdge) {
|
|
28
|
+
if (symbol !== diplomatRuntime.internalConstructor) {
|
|
29
|
+
console.error("CellExecutor is an Opaque type. You cannot call its constructor.");
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this.#ptr = ptr;
|
|
33
|
+
this.#selfEdge = selfEdge;
|
|
34
|
+
|
|
35
|
+
// Are we being borrowed? If not, we can register.
|
|
36
|
+
if (this.#selfEdge.length === 0) {
|
|
37
|
+
CellExecutor_box_destroy_registry.register(this, this.#ptr);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/** @internal */
|
|
43
|
+
get ffiValue() {
|
|
44
|
+
return this.#ptr;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Bind the schematic's embedded cell contract to the mc-tick
|
|
50
|
+
* engine (needs the `mc-tick` feature, else errors). Cells deploy
|
|
51
|
+
* BAKED: the backend trusts saved block states; an unbaked build
|
|
52
|
+
* sits inert until the first input flip.
|
|
53
|
+
*/
|
|
54
|
+
static forSchematic(schematic) {
|
|
55
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
const result = wasm.CellExecutor_for_schematic(diplomatReceive.buffer, schematic.ffiValue);
|
|
59
|
+
|
|
60
|
+
try {
|
|
61
|
+
if (!diplomatReceive.resultFlag) {
|
|
62
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
63
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
64
|
+
}
|
|
65
|
+
return new CellExecutor(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
finally {
|
|
69
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
70
|
+
diplomatReceive.free();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Set an input port by name and typed value.
|
|
76
|
+
*/
|
|
77
|
+
setInput(name, value) {
|
|
78
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
79
|
+
|
|
80
|
+
const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, name)));
|
|
81
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
const result = wasm.CellExecutor_set_input(diplomatReceive.buffer, this.ffiValue, nameSlice.ptr, value.ffiValue);
|
|
85
|
+
|
|
86
|
+
try {
|
|
87
|
+
if (!diplomatReceive.resultFlag) {
|
|
88
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
89
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
finally {
|
|
94
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
95
|
+
functionCleanupArena.free();
|
|
96
|
+
|
|
97
|
+
diplomatReceive.free();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Run until quiescent within `budget` ticks; true when settled.
|
|
103
|
+
*/
|
|
104
|
+
settle(budget) {
|
|
105
|
+
|
|
106
|
+
const result = wasm.CellExecutor_settle(this.ffiValue, budget);
|
|
107
|
+
|
|
108
|
+
try {
|
|
109
|
+
return result === 1;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
finally {
|
|
113
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Read an output port by name.
|
|
119
|
+
*/
|
|
120
|
+
readOutput(name) {
|
|
121
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
122
|
+
|
|
123
|
+
const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, name)));
|
|
124
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
const result = wasm.CellExecutor_read_output(diplomatReceive.buffer, this.ffiValue, nameSlice.ptr);
|
|
128
|
+
|
|
129
|
+
try {
|
|
130
|
+
if (!diplomatReceive.resultFlag) {
|
|
131
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
132
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
133
|
+
}
|
|
134
|
+
return new Value(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
finally {
|
|
138
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
139
|
+
functionCleanupArena.free();
|
|
140
|
+
|
|
141
|
+
diplomatReceive.free();
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Rebuild the engine from the original schematic (all inputs back
|
|
147
|
+
* to their saved states).
|
|
148
|
+
*/
|
|
149
|
+
reset() {
|
|
150
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
const result = wasm.CellExecutor_reset(diplomatReceive.buffer, this.ffiValue);
|
|
154
|
+
|
|
155
|
+
try {
|
|
156
|
+
if (!diplomatReceive.resultFlag) {
|
|
157
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
158
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
finally {
|
|
163
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
164
|
+
diplomatReceive.free();
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
constructor(symbol, ptr, selfEdge) {
|
|
169
|
+
return this.#internalConstructor(...arguments)
|
|
170
|
+
}
|
|
171
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
+
* Immutable hashed-cell variation shared by coordinated SDF source layers.
|
|
9
|
+
*/
|
|
10
|
+
export class CellularSdfConfig {
|
|
11
|
+
/** @internal */
|
|
12
|
+
get ffiValue(): pointer;
|
|
13
|
+
/** @internal */
|
|
14
|
+
constructor();
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Validates every field up front, so a config that constructs here is
|
|
19
|
+
* never rejected for its own values by a later `cellular_sdf` call.
|
|
20
|
+
*/
|
|
21
|
+
static create(cellSizeX: number, cellSizeZ: number, seed: bigint, maxJitterX: number, maxJitterZ: number, maxYawDegrees: number, minScale: number, maxScale: number, minYOffset: number, maxYOffset: number, presenceNumerator: number, presenceDenominator: number, featureSalt: bigint): CellularSdfConfig;
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
+
* Immutable hashed-cell variation shared by coordinated SDF source layers.
|
|
9
|
+
*/
|
|
10
|
+
export class CellularSdfConfig {
|
|
11
|
+
/** @internal */
|
|
12
|
+
get ffiValue(): pointer;
|
|
13
|
+
/** @internal */
|
|
14
|
+
constructor();
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Validates every field up front, so a config that constructs here is
|
|
19
|
+
* never rejected for its own values by a later `cellular_sdf` call.
|
|
20
|
+
*/
|
|
21
|
+
static create(cellSizeX: number, cellSizeZ: number, seed: bigint, maxJitterX: number, maxJitterZ: number, maxYawDegrees: number, minScale: number, maxScale: number, minYOffset: number, maxYOffset: number, presenceNumerator: number, presenceDenominator: number, featureSalt: bigint): CellularSdfConfig;
|
|
22
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
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 CellularSdfConfig_box_destroy_registry = new FinalizationRegistry((ptr) => {
|
|
7
|
+
wasm.CellularSdfConfig_destroy(ptr);
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Immutable hashed-cell variation shared by coordinated SDF source layers.
|
|
12
|
+
*/
|
|
13
|
+
export class CellularSdfConfig {
|
|
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("CellularSdfConfig 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
|
+
CellularSdfConfig_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
|
+
/**
|
|
43
|
+
* Validates every field up front, so a config that constructs here is
|
|
44
|
+
* never rejected for its own values by a later `cellular_sdf` call.
|
|
45
|
+
*/
|
|
46
|
+
static create(cellSizeX, cellSizeZ, seed, maxJitterX, maxJitterZ, maxYawDegrees, minScale, maxScale, minYOffset, maxYOffset, presenceNumerator, presenceDenominator, featureSalt) {
|
|
47
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
const result = wasm.CellularSdfConfig_create(diplomatReceive.buffer, cellSizeX, cellSizeZ, seed, maxJitterX, maxJitterZ, maxYawDegrees, minScale, maxScale, minYOffset, maxYOffset, presenceNumerator, presenceDenominator, featureSalt);
|
|
51
|
+
|
|
52
|
+
try {
|
|
53
|
+
if (!diplomatReceive.resultFlag) {
|
|
54
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
55
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
56
|
+
}
|
|
57
|
+
return new CellularSdfConfig(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
finally {
|
|
61
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
62
|
+
diplomatReceive.free();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
constructor(symbol, ptr, selfEdge) {
|
|
67
|
+
return this.#internalConstructor(...arguments)
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { BlockPos } from "./BlockPos.mjs"
|
|
3
|
+
import type { MeshConfig } from "./MeshConfig.mjs"
|
|
4
|
+
import type { MeshResult } from "./MeshResult.mjs"
|
|
5
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
6
|
+
import type { ResourcePack } from "./ResourcePack.mjs"
|
|
7
|
+
import type { Schematic } from "./Schematic.mjs"
|
|
8
|
+
import type { TextureAtlas } from "./TextureAtlas.mjs"
|
|
9
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Per-chunk mesh results. Wraps {@link crate::meshing::ChunkMeshResult}.
|
|
15
|
+
*/
|
|
16
|
+
export class ChunkMeshResult {
|
|
17
|
+
/** @internal */
|
|
18
|
+
get ffiValue(): pointer;
|
|
19
|
+
/** @internal */
|
|
20
|
+
constructor();
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Mesh with the default chunk size (old ABI: `schematic_mesh_by_chunk`).
|
|
25
|
+
*/
|
|
26
|
+
static create(schematic: Schematic, pack: ResourcePack, config: MeshConfig): ChunkMeshResult;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Mesh with an explicit chunk size (old ABI: `schematic_mesh_by_chunk_size`).
|
|
30
|
+
*/
|
|
31
|
+
static createWithSize(schematic: Schematic, pack: ResourcePack, config: MeshConfig, chunkSize: number): ChunkMeshResult;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Mesh chunks against a pre-built shared atlas, synchronously
|
|
35
|
+
* (old ABI: `schematic_mesh_chunks_with_atlas`). For progress
|
|
36
|
+
* reporting use {@link MeshJob::start} instead.
|
|
37
|
+
*/
|
|
38
|
+
static createWithAtlas(schematic: Schematic, pack: ResourcePack, config: MeshConfig, chunkSize: number, atlas: TextureAtlas): ChunkMeshResult;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Number of chunk meshes.
|
|
42
|
+
*/
|
|
43
|
+
chunkCount(): number;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Coordinate of the `index`-th chunk (old ABI:
|
|
47
|
+
* `chunkmeshresult_chunk_coordinates` returned all of them flat).
|
|
48
|
+
*/
|
|
49
|
+
chunkCoordinateAt(index: number): BlockPos;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* The mesh for one chunk coordinate (cloned).
|
|
53
|
+
*/
|
|
54
|
+
getMesh(cx: number, cy: number, cz: number): MeshResult;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Total vertex count across all chunk meshes.
|
|
58
|
+
*/
|
|
59
|
+
totalVertexCount(): number;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Total triangle count across all chunk meshes.
|
|
63
|
+
*/
|
|
64
|
+
totalTriangleCount(): number;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* All chunk meshes serialized in the NUCM cache format, base64-encoded.
|
|
68
|
+
*/
|
|
69
|
+
nucmDataB64(): string;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* NUCM v2 with a shared atlas, base64-encoded.
|
|
73
|
+
*/
|
|
74
|
+
nucmDataWithAtlasB64(atlas: TextureAtlas): string;
|
|
75
|
+
}
|