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
package/BlockPos.mjs
CHANGED
|
@@ -108,6 +108,7 @@ export class BlockPos {
|
|
|
108
108
|
// This method does not attempt to handle any dependencies between lifetimes, the caller
|
|
109
109
|
// should handle this when constructing edge arrays.
|
|
110
110
|
static _fromFFI(internalConstructor, ptr) {
|
|
111
|
+
ptr >>>= 0; // unsigned wasm32 address; field values retain their signedness.
|
|
111
112
|
if (internalConstructor !== diplomatRuntime.internalConstructor) {
|
|
112
113
|
throw new Error("BlockPos._fromFFI is not meant to be called externally. Please use the default constructor.");
|
|
113
114
|
}
|
package/Dimensions.mjs
CHANGED
|
@@ -108,6 +108,7 @@ export class Dimensions {
|
|
|
108
108
|
// This method does not attempt to handle any dependencies between lifetimes, the caller
|
|
109
109
|
// should handle this when constructing edge arrays.
|
|
110
110
|
static _fromFFI(internalConstructor, ptr) {
|
|
111
|
+
ptr >>>= 0; // unsigned wasm32 address; field values retain their signedness.
|
|
111
112
|
if (internalConstructor !== diplomatRuntime.internalConstructor) {
|
|
112
113
|
throw new Error("Dimensions._fromFFI is not meant to be called externally. Please use the default constructor.");
|
|
113
114
|
}
|
package/FieldRange.mjs
CHANGED
|
@@ -89,6 +89,7 @@ export class FieldRange {
|
|
|
89
89
|
// This method does not attempt to handle any dependencies between lifetimes, the caller
|
|
90
90
|
// should handle this when constructing edge arrays.
|
|
91
91
|
static _fromFFI(internalConstructor, ptr) {
|
|
92
|
+
ptr >>>= 0; // unsigned wasm32 address; field values retain their signedness.
|
|
92
93
|
if (internalConstructor !== diplomatRuntime.internalConstructor) {
|
|
93
94
|
throw new Error("FieldRange._fromFFI is not meant to be called externally. Please use the default constructor.");
|
|
94
95
|
}
|
package/ItemScale.mjs
CHANGED
|
@@ -111,6 +111,7 @@ export class ItemScale {
|
|
|
111
111
|
// This method does not attempt to handle any dependencies between lifetimes, the caller
|
|
112
112
|
// should handle this when constructing edge arrays.
|
|
113
113
|
static _fromFFI(internalConstructor, ptr) {
|
|
114
|
+
ptr >>>= 0; // unsigned wasm32 address; field values retain their signedness.
|
|
114
115
|
if (internalConstructor !== diplomatRuntime.internalConstructor) {
|
|
115
116
|
throw new Error("ItemScale._fromFFI is not meant to be called externally. Please use the default constructor.");
|
|
116
117
|
}
|
package/MeshBounds.mjs
CHANGED
|
@@ -153,6 +153,7 @@ export class MeshBounds {
|
|
|
153
153
|
// This method does not attempt to handle any dependencies between lifetimes, the caller
|
|
154
154
|
// should handle this when constructing edge arrays.
|
|
155
155
|
static _fromFFI(internalConstructor, ptr) {
|
|
156
|
+
ptr >>>= 0; // unsigned wasm32 address; field values retain their signedness.
|
|
156
157
|
if (internalConstructor !== diplomatRuntime.internalConstructor) {
|
|
157
158
|
throw new Error("MeshBounds._fromFFI is not meant to be called externally. Please use the default constructor.");
|
|
158
159
|
}
|
package/MeshProgress.mjs
CHANGED
|
@@ -112,6 +112,7 @@ export class MeshProgress {
|
|
|
112
112
|
// This method does not attempt to handle any dependencies between lifetimes, the caller
|
|
113
113
|
// should handle this when constructing edge arrays.
|
|
114
114
|
static _fromFFI(internalConstructor, ptr) {
|
|
115
|
+
ptr >>>= 0; // unsigned wasm32 address; field values retain their signedness.
|
|
115
116
|
if (internalConstructor !== diplomatRuntime.internalConstructor) {
|
|
116
117
|
throw new Error("MeshProgress._fromFFI is not meant to be called externally. Please use the default constructor.");
|
|
117
118
|
}
|
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/RegionBounds.mjs
CHANGED
|
@@ -154,6 +154,7 @@ export class RegionBounds {
|
|
|
154
154
|
// This method does not attempt to handle any dependencies between lifetimes, the caller
|
|
155
155
|
// should handle this when constructing edge arrays.
|
|
156
156
|
static _fromFFI(internalConstructor, ptr) {
|
|
157
|
+
ptr >>>= 0; // unsigned wasm32 address; field values retain their signedness.
|
|
157
158
|
if (internalConstructor !== diplomatRuntime.internalConstructor) {
|
|
158
159
|
throw new Error("RegionBounds._fromFFI is not meant to be called externally. Please use the default constructor.");
|
|
159
160
|
}
|
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.
|
|
@@ -492,6 +499,31 @@ export class Schematic {
|
|
|
492
499
|
*/
|
|
493
500
|
getChunkBlocksJson(offsetX: number, offsetY: number, offsetZ: number, width: number, height: number, length: number): string;
|
|
494
501
|
|
|
502
|
+
/**
|
|
503
|
+
* Non-air blocks inside a bounded box, retaining block-state properties.
|
|
504
|
+
* Visits only intersecting region cells, not the whole schematic. Bounds
|
|
505
|
+
* and arithmetic are checked; queries may scan at most 1,048,576 cells
|
|
506
|
+
* (including region overlaps) and emit at most 32 MiB of JSON. Renderers
|
|
507
|
+
* should request 16³ sections. Coordinates may be negative.
|
|
508
|
+
*/
|
|
509
|
+
getChunkNonAirBlocksJson(offsetX: number, offsetY: number, offsetZ: number, width: number, height: number, length: number): string;
|
|
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
|
+
|
|
495
527
|
/**
|
|
496
528
|
* Split the schematic into chunks (default bottom-up strategy). Writes a
|
|
497
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.
|
|
@@ -492,6 +499,31 @@ export class Schematic {
|
|
|
492
499
|
*/
|
|
493
500
|
getChunkBlocksJson(offsetX: number, offsetY: number, offsetZ: number, width: number, height: number, length: number): string;
|
|
494
501
|
|
|
502
|
+
/**
|
|
503
|
+
* Non-air blocks inside a bounded box, retaining block-state properties.
|
|
504
|
+
* Visits only intersecting region cells, not the whole schematic. Bounds
|
|
505
|
+
* and arithmetic are checked; queries may scan at most 1,048,576 cells
|
|
506
|
+
* (including region overlaps) and emit at most 32 MiB of JSON. Renderers
|
|
507
|
+
* should request 16³ sections. Coordinates may be negative.
|
|
508
|
+
*/
|
|
509
|
+
getChunkNonAirBlocksJson(offsetX: number, offsetY: number, offsetZ: number, width: number, height: number, length: number): string;
|
|
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
|
+
|
|
495
527
|
/**
|
|
496
528
|
* Split the schematic into chunks (default bottom-up strategy). Writes a
|
|
497
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.
|
|
@@ -1929,6 +1944,91 @@ export class Schematic {
|
|
|
1929
1944
|
}
|
|
1930
1945
|
}
|
|
1931
1946
|
|
|
1947
|
+
/**
|
|
1948
|
+
* Non-air blocks inside a bounded box, retaining block-state properties.
|
|
1949
|
+
* Visits only intersecting region cells, not the whole schematic. Bounds
|
|
1950
|
+
* and arithmetic are checked; queries may scan at most 1,048,576 cells
|
|
1951
|
+
* (including region overlaps) and emit at most 32 MiB of JSON. Renderers
|
|
1952
|
+
* should request 16³ sections. Coordinates may be negative.
|
|
1953
|
+
*/
|
|
1954
|
+
getChunkNonAirBlocksJson(offsetX, offsetY, offsetZ, width, height, length) {
|
|
1955
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
1956
|
+
|
|
1957
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
1958
|
+
|
|
1959
|
+
|
|
1960
|
+
const result = wasm.Schematic_get_chunk_non_air_blocks_json(diplomatReceive.buffer, this.ffiValue, offsetX, offsetY, offsetZ, width, height, length, write.buffer);
|
|
1961
|
+
|
|
1962
|
+
try {
|
|
1963
|
+
if (!diplomatReceive.resultFlag) {
|
|
1964
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
1965
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
1966
|
+
}
|
|
1967
|
+
return write.readString8();
|
|
1968
|
+
}
|
|
1969
|
+
|
|
1970
|
+
finally {
|
|
1971
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
1972
|
+
diplomatReceive.free();
|
|
1973
|
+
write.free();
|
|
1974
|
+
}
|
|
1975
|
+
}
|
|
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
|
+
|
|
1932
2032
|
/**
|
|
1933
2033
|
* Split the schematic into chunks (default bottom-up strategy). Writes a
|
|
1934
2034
|
* JSON array of `{"chunk_x", "chunk_y", "chunk_z", "blocks": [...]}` where
|
package/SdfBounds.mjs
CHANGED
|
@@ -133,6 +133,7 @@ export class SdfBounds {
|
|
|
133
133
|
// This method does not attempt to handle any dependencies between lifetimes, the caller
|
|
134
134
|
// should handle this when constructing edge arrays.
|
|
135
135
|
static _fromFFI(internalConstructor, ptr) {
|
|
136
|
+
ptr >>>= 0; // unsigned wasm32 address; field values retain their signedness.
|
|
136
137
|
if (internalConstructor !== diplomatRuntime.internalConstructor) {
|
|
137
138
|
throw new Error("SdfBounds._fromFFI is not meant to be called externally. Please use the default constructor.");
|
|
138
139
|
}
|
package/SdfNormal.mjs
CHANGED
|
@@ -100,6 +100,7 @@ export class SdfNormal {
|
|
|
100
100
|
// This method does not attempt to handle any dependencies between lifetimes, the caller
|
|
101
101
|
// should handle this when constructing edge arrays.
|
|
102
102
|
static _fromFFI(internalConstructor, ptr) {
|
|
103
|
+
ptr >>>= 0; // unsigned wasm32 address; field values retain their signedness.
|
|
103
104
|
if (internalConstructor !== diplomatRuntime.internalConstructor) {
|
|
104
105
|
throw new Error("SdfNormal._fromFFI is not meant to be called externally. Please use the default constructor.");
|
|
105
106
|
}
|
package/TextureInfo.mjs
CHANGED
|
@@ -125,6 +125,7 @@ export class TextureInfo {
|
|
|
125
125
|
// This method does not attempt to handle any dependencies between lifetimes, the caller
|
|
126
126
|
// should handle this when constructing edge arrays.
|
|
127
127
|
static _fromFFI(internalConstructor, ptr) {
|
|
128
|
+
ptr >>>= 0; // unsigned wasm32 address; field values retain their signedness.
|
|
128
129
|
if (internalConstructor !== diplomatRuntime.internalConstructor) {
|
|
129
130
|
throw new Error("TextureInfo._fromFFI is not meant to be called externally. Please use the default constructor.");
|
|
130
131
|
}
|
package/diplomat-runtime.mjs
CHANGED
|
@@ -8,11 +8,13 @@ export const internalConstructor = Symbol("constructor");
|
|
|
8
8
|
export const exposeConstructor = Symbol("exposeConstructor");
|
|
9
9
|
|
|
10
10
|
export function readString8(wasm, ptr, len) {
|
|
11
|
+
ptr >>>= 0; // wasm32 addresses are unsigned, including above 2 GiB.
|
|
11
12
|
const buf = new Uint8Array(wasm.memory.buffer, ptr, len);
|
|
12
13
|
return (new TextDecoder("utf-8")).decode(buf)
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
export function readString16(wasm, ptr, len) {
|
|
17
|
+
ptr >>>= 0; // wasm32 addresses are unsigned, including above 2 GiB.
|
|
16
18
|
const buf = new Uint16Array(wasm.memory.buffer, ptr, len);
|
|
17
19
|
return String.fromCharCode.apply(null, buf)
|
|
18
20
|
}
|
|
@@ -48,6 +50,7 @@ export function withDiplomatWrite(wasm, callback) {
|
|
|
48
50
|
* @returns {number} The underlying pointer.
|
|
49
51
|
*/
|
|
50
52
|
export function ptrRead(wasm, ptr) {
|
|
53
|
+
ptr >>>= 0; // wasm32 addresses are unsigned, including above 2 GiB.
|
|
51
54
|
return (new Uint32Array(wasm.memory.buffer, ptr, 1))[0];
|
|
52
55
|
}
|
|
53
56
|
|
|
@@ -55,6 +58,7 @@ export function ptrRead(wasm, ptr) {
|
|
|
55
58
|
* Get the flag of a result type.
|
|
56
59
|
*/
|
|
57
60
|
export function resultFlag(wasm, ptr, offset) {
|
|
61
|
+
ptr >>>= 0; // wasm32 addresses are unsigned, including above 2 GiB.
|
|
58
62
|
return (new Uint8Array(wasm.memory.buffer, ptr + offset, 1))[0];
|
|
59
63
|
}
|
|
60
64
|
|
|
@@ -62,6 +66,7 @@ export function resultFlag(wasm, ptr, offset) {
|
|
|
62
66
|
* Get the discriminant of a Rust enum.
|
|
63
67
|
*/
|
|
64
68
|
export function enumDiscriminant(wasm, ptr) {
|
|
69
|
+
ptr >>>= 0; // wasm32 addresses are unsigned, including above 2 GiB.
|
|
65
70
|
return (new Int32Array(wasm.memory.buffer, ptr, 1))[0]
|
|
66
71
|
}
|
|
67
72
|
|
|
@@ -83,7 +88,7 @@ export function maybePaddingFields(needsPaddingFields, paddingCount) {
|
|
|
83
88
|
* (which is a `TypedArray` variant like `Uint8Array` or `Int16Array`)
|
|
84
89
|
*/
|
|
85
90
|
export function writeToArrayBuffer(arrayBuffer, offset, value, typedArrayKind) {
|
|
86
|
-
let buffer = new typedArrayKind(arrayBuffer, offset);
|
|
91
|
+
let buffer = new typedArrayKind(arrayBuffer, offset < 0 ? offset >>> 0 : offset);
|
|
87
92
|
buffer[0] = value;
|
|
88
93
|
}
|
|
89
94
|
|
|
@@ -223,7 +228,7 @@ export class DiplomatBuf {
|
|
|
223
228
|
}
|
|
224
229
|
}
|
|
225
230
|
|
|
226
|
-
const ptr = wasm.diplomat_alloc(utf8Length, 1);
|
|
231
|
+
const ptr = wasm.diplomat_alloc(utf8Length, 1) >>> 0;
|
|
227
232
|
|
|
228
233
|
const result = (new TextEncoder()).encodeInto(string, new Uint8Array(wasm.memory.buffer, ptr, utf8Length));
|
|
229
234
|
console.assert(string.length === result.read && utf8Length === result.written, "UTF-8 write error");
|
|
@@ -233,7 +238,7 @@ export class DiplomatBuf {
|
|
|
233
238
|
|
|
234
239
|
static str16 = (wasm, string) => {
|
|
235
240
|
const byteLength = string.length * 2;
|
|
236
|
-
const ptr = wasm.diplomat_alloc(byteLength, 2);
|
|
241
|
+
const ptr = wasm.diplomat_alloc(byteLength, 2) >>> 0;
|
|
237
242
|
|
|
238
243
|
const destination = new Uint16Array(wasm.memory.buffer, ptr, string.length);
|
|
239
244
|
for (let i = 0; i < string.length; i++) {
|
|
@@ -244,7 +249,7 @@ export class DiplomatBuf {
|
|
|
244
249
|
}
|
|
245
250
|
|
|
246
251
|
static sliceWrapper = (wasm, buf) => {
|
|
247
|
-
const ptr = wasm.diplomat_alloc(8, 4);
|
|
252
|
+
const ptr = wasm.diplomat_alloc(8, 4) >>> 0;
|
|
248
253
|
let dst = new Uint32Array(wasm.memory.buffer, ptr, 2);
|
|
249
254
|
|
|
250
255
|
dst[0] = buf.ptr;
|
|
@@ -262,7 +267,7 @@ export class DiplomatBuf {
|
|
|
262
267
|
4;
|
|
263
268
|
|
|
264
269
|
const byteLength = list.length * elementSize;
|
|
265
|
-
const ptr = wasm.diplomat_alloc(byteLength, elementSize);
|
|
270
|
+
const ptr = wasm.diplomat_alloc(byteLength, elementSize) >>> 0;
|
|
266
271
|
|
|
267
272
|
/**
|
|
268
273
|
* Create an array view of the buffer. This gives us the `set` method which correctly handles untyped values
|
|
@@ -288,15 +293,15 @@ export class DiplomatBuf {
|
|
|
288
293
|
|
|
289
294
|
const byteLength = strings.length * 4 * 2;
|
|
290
295
|
|
|
291
|
-
const ptr = wasm.diplomat_alloc(byteLength, 4);
|
|
296
|
+
const ptr = wasm.diplomat_alloc(byteLength, 4) >>> 0;
|
|
292
297
|
|
|
293
|
-
const destination = new Uint32Array(wasm.memory.buffer, ptr, byteLength);
|
|
294
298
|
|
|
295
299
|
const stringsAlloc = [];
|
|
296
300
|
|
|
297
301
|
for (let i = 0; i < strings.length; i++) {
|
|
298
302
|
stringsAlloc.push(encodeStr(wasm, strings[i]));
|
|
299
303
|
|
|
304
|
+
const destination = new Uint32Array(wasm.memory.buffer, ptr, strings.length * 2);
|
|
300
305
|
destination[2 * i] = stringsAlloc[i].ptr;
|
|
301
306
|
destination[(2 * i) + 1] = stringsAlloc[i].size;
|
|
302
307
|
}
|
|
@@ -310,7 +315,7 @@ export class DiplomatBuf {
|
|
|
310
315
|
}
|
|
311
316
|
|
|
312
317
|
static struct = (wasm, size, align) => {
|
|
313
|
-
const ptr = wasm.diplomat_alloc(size, align);
|
|
318
|
+
const ptr = wasm.diplomat_alloc(size, align) >>> 0;
|
|
314
319
|
|
|
315
320
|
return new DiplomatBuf(ptr, size, () => {
|
|
316
321
|
wasm.diplomat_free(ptr, size, align);
|
|
@@ -325,7 +330,7 @@ export class DiplomatBuf {
|
|
|
325
330
|
free;
|
|
326
331
|
|
|
327
332
|
constructor(ptr, size, free) {
|
|
328
|
-
this.ptr = ptr;
|
|
333
|
+
this.ptr = ptr >>> 0;
|
|
329
334
|
this.size = size;
|
|
330
335
|
this.free = free;
|
|
331
336
|
this.leak = () => { };
|
|
@@ -357,7 +362,7 @@ export class DiplomatWriteBuf {
|
|
|
357
362
|
|
|
358
363
|
constructor(wasm) {
|
|
359
364
|
this.#wasm = wasm;
|
|
360
|
-
this.#buffer = this.#wasm.diplomat_buffer_write_create(0);
|
|
365
|
+
this.#buffer = this.#wasm.diplomat_buffer_write_create(0) >>> 0;
|
|
361
366
|
|
|
362
367
|
this.leak = () => { };
|
|
363
368
|
}
|
|
@@ -409,7 +414,7 @@ export class DiplomatSlice {
|
|
|
409
414
|
constructor(wasm, buffer, bufferType, lifetimeEdges) {
|
|
410
415
|
this.#wasm = wasm;
|
|
411
416
|
|
|
412
|
-
const [ptr, size] = new Uint32Array(this.#wasm.memory.buffer, buffer, 2);
|
|
417
|
+
const [ptr, size] = new Uint32Array(this.#wasm.memory.buffer, buffer >>> 0, 2);
|
|
413
418
|
|
|
414
419
|
this.#buffer = new bufferType(this.#wasm.memory.buffer, ptr, size);
|
|
415
420
|
this.#bufferType = bufferType;
|
|
@@ -432,7 +437,7 @@ export class DiplomatSlice {
|
|
|
432
437
|
|
|
433
438
|
export class DiplomatSlicePrimitive extends DiplomatSlice {
|
|
434
439
|
constructor(wasm, buffer, sliceType, lifetimeEdges) {
|
|
435
|
-
const [ptr, size] = new Uint32Array(wasm.memory.buffer, buffer, 2);
|
|
440
|
+
const [ptr, size] = new Uint32Array(wasm.memory.buffer, buffer >>> 0, 2);
|
|
436
441
|
|
|
437
442
|
let arrayType;
|
|
438
443
|
switch (sliceType) {
|
|
@@ -552,7 +557,7 @@ export class DiplomatReceiveBuf {
|
|
|
552
557
|
|
|
553
558
|
this.#hasResult = hasResult;
|
|
554
559
|
|
|
555
|
-
this.#buffer = this.#wasm.diplomat_alloc(this.#size, this.#align);
|
|
560
|
+
this.#buffer = this.#wasm.diplomat_alloc(this.#size, this.#align) >>> 0;
|
|
556
561
|
|
|
557
562
|
this.leak = () => { };
|
|
558
563
|
}
|
|
@@ -736,7 +741,7 @@ export class FunctionParamAllocator {
|
|
|
736
741
|
|
|
737
742
|
this.#capacity = capacity;
|
|
738
743
|
// FunctionParamAllocator is global, so this will be freed when the webpage closes:
|
|
739
|
-
this.#ptr = wasm.diplomat_alloc(this.#capacity, 1);
|
|
744
|
+
this.#ptr = wasm.diplomat_alloc(this.#capacity, 1) >>> 0;
|
|
740
745
|
}
|
|
741
746
|
|
|
742
747
|
/**
|
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
|
+
}
|