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
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
3
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Namespace for read-only queries over the built-in block table
|
|
9
|
+
* (Java 26.2 blocks + official semantics extracted from the vanilla
|
|
10
|
+
* jars: definition kinds, base-block links, block tags, model
|
|
11
|
+
* geometry). All list results are JSON array strings sorted by id;
|
|
12
|
+
* block/tag/kind arguments accept both `minecraft:`-prefixed and
|
|
13
|
+
* short forms (`minecraft:oak_stairs` / `oak_stairs`).
|
|
14
|
+
*/
|
|
15
|
+
export class Blocks {
|
|
16
|
+
/** @internal */
|
|
17
|
+
get ffiValue(): pointer;
|
|
18
|
+
/** @internal */
|
|
19
|
+
constructor();
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Full facts for one block as a JSON object:
|
|
24
|
+
* `{id, kind, base_block, tags: [...], full_cube, transparent,
|
|
25
|
+
* color: [r, g, b] | null, properties: {name: [values...]},
|
|
26
|
+
* default_state: {name: value}}`. `kind` is the official
|
|
27
|
+
* definition kind (`minecraft:stair`, plain full blocks are
|
|
28
|
+
* `minecraft:block`); `base_block` is the block this one is a
|
|
29
|
+
* shape variant of (or `null`); `color` is the texture-derived
|
|
30
|
+
* average RGB. Errors with `NotFound` for unknown ids.
|
|
31
|
+
*/
|
|
32
|
+
static getJson(id: string): string;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* All known block ids as a sorted JSON array string.
|
|
36
|
+
*/
|
|
37
|
+
static idsJson(): string;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Ids of every block carrying the vanilla block tag, as a sorted
|
|
41
|
+
* Blocks whose measured texture color is within `max_distance`
|
|
42
|
+
* (Oklab; ~0.05 = same color family, ~0.15 = generous) of the given
|
|
43
|
+
* RGB, as a JSON array of `{"id", "color": [r,g,b], "distance"}`
|
|
44
|
+
* sorted nearest-first. Blocks without color data never match.
|
|
45
|
+
*/
|
|
46
|
+
static byColorJson(r: number, g: number, b: number, maxDistance: number): string;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* JSON array string (`[]` for unknown tags). Accepts
|
|
50
|
+
* `minecraft:wool` and short `wool` forms, including nested paths
|
|
51
|
+
* like `mineable/pickaxe`.
|
|
52
|
+
*/
|
|
53
|
+
static byTagJson(tag: string): string;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Ids of every block of the given official definition kind
|
|
57
|
+
* (`minecraft:stair`, `minecraft:slab`, `minecraft:door`, ...), as
|
|
58
|
+
* a sorted JSON array string (`[]` for unknown kinds).
|
|
59
|
+
*/
|
|
60
|
+
static byKindJson(kind: string): string;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* The base block followed by all its shape variants — blocks whose
|
|
64
|
+
* `base_block` is `base_id` (stairs, slabs, walls, fences of the
|
|
65
|
+
* base) — as a JSON array string. The base itself is always first;
|
|
66
|
+
* variants follow sorted by id. Errors with `NotFound` for unknown
|
|
67
|
+
* base ids.
|
|
68
|
+
*/
|
|
69
|
+
static variantsOfJson(baseId: string): string;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* All known vanilla block tag names as a sorted JSON array string
|
|
73
|
+
* (`minecraft:`-prefixed, e.g. `minecraft:wool`).
|
|
74
|
+
*/
|
|
75
|
+
static tagsJson(): string;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Every property-value combination of the block as a JSON array of
|
|
79
|
+
* `{prop: value}` objects (a single `{}` entry for property-less
|
|
80
|
+
* blocks). Errors with `NotFound` for unknown ids and with
|
|
81
|
+
* `InvalidArgument` if the combination count exceeds 4096 (guard
|
|
82
|
+
* against pathological output; the current data tops out at 1350
|
|
83
|
+
* for `minecraft:note_block`).
|
|
84
|
+
*/
|
|
85
|
+
static statesJson(id: string): string;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Total number of blocks in the table.
|
|
89
|
+
*/
|
|
90
|
+
static count(): number;
|
|
91
|
+
}
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import { NucleationError } from "./NucleationError.mjs"
|
|
3
|
+
import wasm from "./diplomat-wasm.mjs";
|
|
4
|
+
import * as diplomatRuntime from "./diplomat-runtime.mjs";
|
|
5
|
+
|
|
6
|
+
const Blocks_box_destroy_registry = new FinalizationRegistry((ptr) => {
|
|
7
|
+
wasm.Blocks_destroy(ptr);
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Namespace for read-only queries over the built-in block table
|
|
12
|
+
* (Java 26.2 blocks + official semantics extracted from the vanilla
|
|
13
|
+
* jars: definition kinds, base-block links, block tags, model
|
|
14
|
+
* geometry). All list results are JSON array strings sorted by id;
|
|
15
|
+
* block/tag/kind arguments accept both `minecraft:`-prefixed and
|
|
16
|
+
* short forms (`minecraft:oak_stairs` / `oak_stairs`).
|
|
17
|
+
*/
|
|
18
|
+
export class Blocks {
|
|
19
|
+
// Internal ptr reference:
|
|
20
|
+
#ptr = null;
|
|
21
|
+
|
|
22
|
+
// Lifetimes are only to keep dependencies alive.
|
|
23
|
+
// Since JS won't garbage collect until there are no incoming edges.
|
|
24
|
+
#selfEdge = [];
|
|
25
|
+
|
|
26
|
+
#internalConstructor(symbol, ptr, selfEdge) {
|
|
27
|
+
if (symbol !== diplomatRuntime.internalConstructor) {
|
|
28
|
+
console.error("Blocks is an Opaque type. You cannot call its constructor.");
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
this.#ptr = ptr;
|
|
32
|
+
this.#selfEdge = selfEdge;
|
|
33
|
+
|
|
34
|
+
// Are we being borrowed? If not, we can register.
|
|
35
|
+
if (this.#selfEdge.length === 0) {
|
|
36
|
+
Blocks_box_destroy_registry.register(this, this.#ptr);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
/** @internal */
|
|
42
|
+
get ffiValue() {
|
|
43
|
+
return this.#ptr;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Full facts for one block as a JSON object:
|
|
49
|
+
* `{id, kind, base_block, tags: [...], full_cube, transparent,
|
|
50
|
+
* color: [r, g, b] | null, properties: {name: [values...]},
|
|
51
|
+
* default_state: {name: value}}`. `kind` is the official
|
|
52
|
+
* definition kind (`minecraft:stair`, plain full blocks are
|
|
53
|
+
* `minecraft:block`); `base_block` is the block this one is a
|
|
54
|
+
* shape variant of (or `null`); `color` is the texture-derived
|
|
55
|
+
* average RGB. Errors with `NotFound` for unknown ids.
|
|
56
|
+
*/
|
|
57
|
+
static getJson(id) {
|
|
58
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
59
|
+
|
|
60
|
+
const idSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, id)));
|
|
61
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
62
|
+
|
|
63
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
const result = wasm.Blocks_get_json(diplomatReceive.buffer, idSlice.ptr, write.buffer);
|
|
67
|
+
|
|
68
|
+
try {
|
|
69
|
+
if (!diplomatReceive.resultFlag) {
|
|
70
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
71
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
72
|
+
}
|
|
73
|
+
return write.readString8();
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
finally {
|
|
77
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
78
|
+
functionCleanupArena.free();
|
|
79
|
+
|
|
80
|
+
diplomatReceive.free();
|
|
81
|
+
write.free();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* All known block ids as a sorted JSON array string.
|
|
87
|
+
*/
|
|
88
|
+
static idsJson() {
|
|
89
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
90
|
+
|
|
91
|
+
wasm.Blocks_ids_json(write.buffer);
|
|
92
|
+
|
|
93
|
+
try {
|
|
94
|
+
return write.readString8();
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
finally {
|
|
98
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
99
|
+
write.free();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Ids of every block carrying the vanilla block tag, as a sorted
|
|
105
|
+
* Blocks whose measured texture color is within `max_distance`
|
|
106
|
+
* (Oklab; ~0.05 = same color family, ~0.15 = generous) of the given
|
|
107
|
+
* RGB, as a JSON array of `{"id", "color": [r,g,b], "distance"}`
|
|
108
|
+
* sorted nearest-first. Blocks without color data never match.
|
|
109
|
+
*/
|
|
110
|
+
static byColorJson(r, g, b, maxDistance) {
|
|
111
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
112
|
+
|
|
113
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
const result = wasm.Blocks_by_color_json(diplomatReceive.buffer, r, g, b, maxDistance, write.buffer);
|
|
117
|
+
|
|
118
|
+
try {
|
|
119
|
+
if (!diplomatReceive.resultFlag) {
|
|
120
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
121
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
122
|
+
}
|
|
123
|
+
return write.readString8();
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
finally {
|
|
127
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
128
|
+
diplomatReceive.free();
|
|
129
|
+
write.free();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* JSON array string (`[]` for unknown tags). Accepts
|
|
135
|
+
* `minecraft:wool` and short `wool` forms, including nested paths
|
|
136
|
+
* like `mineable/pickaxe`.
|
|
137
|
+
*/
|
|
138
|
+
static byTagJson(tag) {
|
|
139
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
140
|
+
|
|
141
|
+
const tagSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, tag)));
|
|
142
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
143
|
+
|
|
144
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
const result = wasm.Blocks_by_tag_json(diplomatReceive.buffer, tagSlice.ptr, write.buffer);
|
|
148
|
+
|
|
149
|
+
try {
|
|
150
|
+
if (!diplomatReceive.resultFlag) {
|
|
151
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
152
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
153
|
+
}
|
|
154
|
+
return write.readString8();
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
finally {
|
|
158
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
159
|
+
functionCleanupArena.free();
|
|
160
|
+
|
|
161
|
+
diplomatReceive.free();
|
|
162
|
+
write.free();
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Ids of every block of the given official definition kind
|
|
168
|
+
* (`minecraft:stair`, `minecraft:slab`, `minecraft:door`, ...), as
|
|
169
|
+
* a sorted JSON array string (`[]` for unknown kinds).
|
|
170
|
+
*/
|
|
171
|
+
static byKindJson(kind) {
|
|
172
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
173
|
+
|
|
174
|
+
const kindSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, kind)));
|
|
175
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
176
|
+
|
|
177
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
const result = wasm.Blocks_by_kind_json(diplomatReceive.buffer, kindSlice.ptr, write.buffer);
|
|
181
|
+
|
|
182
|
+
try {
|
|
183
|
+
if (!diplomatReceive.resultFlag) {
|
|
184
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
185
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
186
|
+
}
|
|
187
|
+
return write.readString8();
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
finally {
|
|
191
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
192
|
+
functionCleanupArena.free();
|
|
193
|
+
|
|
194
|
+
diplomatReceive.free();
|
|
195
|
+
write.free();
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* The base block followed by all its shape variants — blocks whose
|
|
201
|
+
* `base_block` is `base_id` (stairs, slabs, walls, fences of the
|
|
202
|
+
* base) — as a JSON array string. The base itself is always first;
|
|
203
|
+
* variants follow sorted by id. Errors with `NotFound` for unknown
|
|
204
|
+
* base ids.
|
|
205
|
+
*/
|
|
206
|
+
static variantsOfJson(baseId) {
|
|
207
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
208
|
+
|
|
209
|
+
const baseIdSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, baseId)));
|
|
210
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
211
|
+
|
|
212
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
const result = wasm.Blocks_variants_of_json(diplomatReceive.buffer, baseIdSlice.ptr, write.buffer);
|
|
216
|
+
|
|
217
|
+
try {
|
|
218
|
+
if (!diplomatReceive.resultFlag) {
|
|
219
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
220
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
221
|
+
}
|
|
222
|
+
return write.readString8();
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
finally {
|
|
226
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
227
|
+
functionCleanupArena.free();
|
|
228
|
+
|
|
229
|
+
diplomatReceive.free();
|
|
230
|
+
write.free();
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* All known vanilla block tag names as a sorted JSON array string
|
|
236
|
+
* (`minecraft:`-prefixed, e.g. `minecraft:wool`).
|
|
237
|
+
*/
|
|
238
|
+
static tagsJson() {
|
|
239
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
240
|
+
|
|
241
|
+
wasm.Blocks_tags_json(write.buffer);
|
|
242
|
+
|
|
243
|
+
try {
|
|
244
|
+
return write.readString8();
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
finally {
|
|
248
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
249
|
+
write.free();
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* Every property-value combination of the block as a JSON array of
|
|
255
|
+
* `{prop: value}` objects (a single `{}` entry for property-less
|
|
256
|
+
* blocks). Errors with `NotFound` for unknown ids and with
|
|
257
|
+
* `InvalidArgument` if the combination count exceeds 4096 (guard
|
|
258
|
+
* against pathological output; the current data tops out at 1350
|
|
259
|
+
* for `minecraft:note_block`).
|
|
260
|
+
*/
|
|
261
|
+
static statesJson(id) {
|
|
262
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
263
|
+
|
|
264
|
+
const idSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, id)));
|
|
265
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
266
|
+
|
|
267
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
const result = wasm.Blocks_states_json(diplomatReceive.buffer, idSlice.ptr, write.buffer);
|
|
271
|
+
|
|
272
|
+
try {
|
|
273
|
+
if (!diplomatReceive.resultFlag) {
|
|
274
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
275
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
276
|
+
}
|
|
277
|
+
return write.readString8();
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
finally {
|
|
281
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
282
|
+
functionCleanupArena.free();
|
|
283
|
+
|
|
284
|
+
diplomatReceive.free();
|
|
285
|
+
write.free();
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Total number of blocks in the table.
|
|
291
|
+
*/
|
|
292
|
+
static count() {
|
|
293
|
+
|
|
294
|
+
const result = wasm.Blocks_count();
|
|
295
|
+
|
|
296
|
+
try {
|
|
297
|
+
return result;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
finally {
|
|
301
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
constructor(symbol, ptr, selfEdge) {
|
|
306
|
+
return this.#internalConstructor(...arguments)
|
|
307
|
+
}
|
|
308
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { Field3 } from "./Field3.mjs"
|
|
3
|
+
import type { InterpolationSpace } from "./InterpolationSpace.mjs"
|
|
4
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
5
|
+
import type { Palette } from "./Palette.mjs"
|
|
6
|
+
import type { Sdf } from "./Sdf.mjs"
|
|
7
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Decides which block goes at each point of a filled shape. Wraps `BrushEnum`.
|
|
13
|
+
*/
|
|
14
|
+
export class Brush {
|
|
15
|
+
/** @internal */
|
|
16
|
+
get ffiValue(): pointer;
|
|
17
|
+
/** @internal */
|
|
18
|
+
constructor();
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Every point becomes `block_name` (a block-state string).
|
|
23
|
+
*/
|
|
24
|
+
static solid(blockName: string): Brush;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Nearest-block-to-RGB-color brush.
|
|
28
|
+
*/
|
|
29
|
+
static color(r: number, g: number, b: number): Brush;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Linear color gradient between two anchored points.
|
|
33
|
+
*/
|
|
34
|
+
static linearGradient(x1: number, y1: number, z1: number, r1: number, g1: number, b1: number, x2: number, y2: number, z2: number, r2: number, g2: number, b2: number, space: InterpolationSpace): Brush;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Base color shaded by surface normal against light direction
|
|
38
|
+
* (`lx`, `ly`, `lz`).
|
|
39
|
+
*/
|
|
40
|
+
static shaded(r: number, g: number, b: number, lx: number, ly: number, lz: number): Brush;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Bilinear gradient over the patch `origin + s*u + t*v` with corner colors
|
|
44
|
+
* c00/c10/c01/c11.
|
|
45
|
+
*/
|
|
46
|
+
static bilinearGradient(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: InterpolationSpace): Brush;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Inverse-distance-weighted gradient between colored anchor points.
|
|
50
|
+
* `positions` is flat `[x0, y0, z0, x1, …]` and `colors` is flat
|
|
51
|
+
* `[r0, g0, b0, r1, …]`; both must describe the same non-zero number of
|
|
52
|
+
* points (`positions.len() == colors.len()`, a multiple of 3).
|
|
53
|
+
*/
|
|
54
|
+
static pointGradient(positions: Array<number>, colors: Array<number>, falloff: number, space: InterpolationSpace): Brush;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Spotlight-lit base color (`r`, `g`, `b`): Lambert shading toward a
|
|
58
|
+
* cone light at (`px`, `py`, `pz`) aimed along (`dx`, `dy`, `dz`).
|
|
59
|
+
* Full intensity inside 0.7 × `cone_angle_deg`, smoothstep falloff
|
|
60
|
+
* to zero at the cone edge; surfaces facing away or outside the cone
|
|
61
|
+
* drop to a 4% ambient floor.
|
|
62
|
+
*/
|
|
63
|
+
static spotlight(px: number, py: number, pz: number, dx: number, dy: number, dz: number, coneAngleDeg: number, r: number, g: number, b: number): Brush;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Use `palette` for this brush's color→block snapping instead of the
|
|
67
|
+
* default all-blocks palette. No-op for `solid` brushes, which place
|
|
68
|
+
* a fixed block state. Set it before filling; the palette is shared,
|
|
69
|
+
* not copied.
|
|
70
|
+
*/
|
|
71
|
+
setPalette(palette: Palette): void;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Gradient along a parametric curve: `stops` holds the curve parameters in
|
|
75
|
+
* `[0, 1]` and `colors` the matching flat RGB triples
|
|
76
|
+
* (`colors.len() == stops.len() * 3`, `stops` non-empty).
|
|
77
|
+
*/
|
|
78
|
+
static curveGradient(stops: Array<number>, colors: Array<number>, space: InterpolationSpace): Brush;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Compatibility path that colors voxels by evaluating an SDF graph as
|
|
82
|
+
* a scalar field. Prefer `field3` for new code.
|
|
83
|
+
* `stops` are in `[0, 1]`; `colors` are flat RGB triples. The sampled
|
|
84
|
+
* value is remapped from `[lo, hi]` before reading the gradient.
|
|
85
|
+
*/
|
|
86
|
+
static fieldSdf(field: Sdf, stops: Array<number>, colors: Array<number>, lo: number, hi: number, space: InterpolationSpace): Brush;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Color every voxel by evaluating a geometry-neutral scalar field at
|
|
90
|
+
* its center. The field is cloned into the brush, so both wrappers
|
|
91
|
+
* may be independently destroyed after construction.
|
|
92
|
+
*/
|
|
93
|
+
static field3(field: Field3, stops: Array<number>, colors: Array<number>, lo: number, hi: number, space: InterpolationSpace): Brush;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Legacy JSON-first field brush. Prefer `field3` for new code.
|
|
97
|
+
*/
|
|
98
|
+
static field(fieldJson: string, stops: Array<number>, colors: Array<number>, lo: number, hi: number, space: InterpolationSpace): Brush;
|
|
99
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { Field3 } from "./Field3.mjs"
|
|
3
|
+
import type { InterpolationSpace } from "./InterpolationSpace.mjs"
|
|
4
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
5
|
+
import type { Palette } from "./Palette.mjs"
|
|
6
|
+
import type { Sdf } from "./Sdf.mjs"
|
|
7
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Decides which block goes at each point of a filled shape. Wraps `BrushEnum`.
|
|
13
|
+
*/
|
|
14
|
+
export class Brush {
|
|
15
|
+
/** @internal */
|
|
16
|
+
get ffiValue(): pointer;
|
|
17
|
+
/** @internal */
|
|
18
|
+
constructor();
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Every point becomes `block_name` (a block-state string).
|
|
23
|
+
*/
|
|
24
|
+
static solid(blockName: string): Brush;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Nearest-block-to-RGB-color brush.
|
|
28
|
+
*/
|
|
29
|
+
static color(r: number, g: number, b: number): Brush;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Linear color gradient between two anchored points.
|
|
33
|
+
*/
|
|
34
|
+
static linearGradient(x1: number, y1: number, z1: number, r1: number, g1: number, b1: number, x2: number, y2: number, z2: number, r2: number, g2: number, b2: number, space: InterpolationSpace): Brush;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Base color shaded by surface normal against light direction
|
|
38
|
+
* (`lx`, `ly`, `lz`).
|
|
39
|
+
*/
|
|
40
|
+
static shaded(r: number, g: number, b: number, lx: number, ly: number, lz: number): Brush;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Bilinear gradient over the patch `origin + s*u + t*v` with corner colors
|
|
44
|
+
* c00/c10/c01/c11.
|
|
45
|
+
*/
|
|
46
|
+
static bilinearGradient(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: InterpolationSpace): Brush;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Inverse-distance-weighted gradient between colored anchor points.
|
|
50
|
+
* `positions` is flat `[x0, y0, z0, x1, …]` and `colors` is flat
|
|
51
|
+
* `[r0, g0, b0, r1, …]`; both must describe the same non-zero number of
|
|
52
|
+
* points (`positions.len() == colors.len()`, a multiple of 3).
|
|
53
|
+
*/
|
|
54
|
+
static pointGradient(positions: Array<number>, colors: Array<number>, falloff: number, space: InterpolationSpace): Brush;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Spotlight-lit base color (`r`, `g`, `b`): Lambert shading toward a
|
|
58
|
+
* cone light at (`px`, `py`, `pz`) aimed along (`dx`, `dy`, `dz`).
|
|
59
|
+
* Full intensity inside 0.7 × `cone_angle_deg`, smoothstep falloff
|
|
60
|
+
* to zero at the cone edge; surfaces facing away or outside the cone
|
|
61
|
+
* drop to a 4% ambient floor.
|
|
62
|
+
*/
|
|
63
|
+
static spotlight(px: number, py: number, pz: number, dx: number, dy: number, dz: number, coneAngleDeg: number, r: number, g: number, b: number): Brush;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Use `palette` for this brush's color→block snapping instead of the
|
|
67
|
+
* default all-blocks palette. No-op for `solid` brushes, which place
|
|
68
|
+
* a fixed block state. Set it before filling; the palette is shared,
|
|
69
|
+
* not copied.
|
|
70
|
+
*/
|
|
71
|
+
setPalette(palette: Palette): void;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Gradient along a parametric curve: `stops` holds the curve parameters in
|
|
75
|
+
* `[0, 1]` and `colors` the matching flat RGB triples
|
|
76
|
+
* (`colors.len() == stops.len() * 3`, `stops` non-empty).
|
|
77
|
+
*/
|
|
78
|
+
static curveGradient(stops: Array<number>, colors: Array<number>, space: InterpolationSpace): Brush;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Compatibility path that colors voxels by evaluating an SDF graph as
|
|
82
|
+
* a scalar field. Prefer `field3` for new code.
|
|
83
|
+
* `stops` are in `[0, 1]`; `colors` are flat RGB triples. The sampled
|
|
84
|
+
* value is remapped from `[lo, hi]` before reading the gradient.
|
|
85
|
+
*/
|
|
86
|
+
static fieldSdf(field: Sdf, stops: Array<number>, colors: Array<number>, lo: number, hi: number, space: InterpolationSpace): Brush;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Color every voxel by evaluating a geometry-neutral scalar field at
|
|
90
|
+
* its center. The field is cloned into the brush, so both wrappers
|
|
91
|
+
* may be independently destroyed after construction.
|
|
92
|
+
*/
|
|
93
|
+
static field3(field: Field3, stops: Array<number>, colors: Array<number>, lo: number, hi: number, space: InterpolationSpace): Brush;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Legacy JSON-first field brush. Prefer `field3` for new code.
|
|
97
|
+
*/
|
|
98
|
+
static field(fieldJson: string, stops: Array<number>, colors: Array<number>, lo: number, hi: number, space: InterpolationSpace): Brush;
|
|
99
|
+
}
|