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,159 @@
|
|
|
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 LayoutFunction_box_destroy_registry = new FinalizationRegistry((ptr) => {
|
|
7
|
+
wasm.LayoutFunction_destroy(ptr);
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Maps logical bits to physical positions (PORTING rule 10).
|
|
12
|
+
*/
|
|
13
|
+
export class LayoutFunction {
|
|
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("LayoutFunction 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
|
+
LayoutFunction_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
|
+
* One bit per position: signal strength 0 = false, 15 = true.
|
|
44
|
+
* The most common layout for traditional redstone circuits.
|
|
45
|
+
*/
|
|
46
|
+
static oneToOne() {
|
|
47
|
+
|
|
48
|
+
const result = wasm.LayoutFunction_one_to_one();
|
|
49
|
+
|
|
50
|
+
try {
|
|
51
|
+
return new LayoutFunction(diplomatRuntime.internalConstructor, result, []);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
finally {
|
|
55
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Four bits per position, packed as a hex nibble (0-15) with the
|
|
61
|
+
* lowest bit first; uses `ceil(bits / 4)` positions (4x denser than
|
|
62
|
+
* one-to-one).
|
|
63
|
+
*/
|
|
64
|
+
static packed4() {
|
|
65
|
+
|
|
66
|
+
const result = wasm.LayoutFunction_packed4();
|
|
67
|
+
|
|
68
|
+
try {
|
|
69
|
+
return new LayoutFunction(diplomatRuntime.internalConstructor, result, []);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
finally {
|
|
73
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Custom bit-to-position mapping.
|
|
79
|
+
*/
|
|
80
|
+
static custom(mapping) {
|
|
81
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
82
|
+
|
|
83
|
+
const mappingSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.slice(wasm, mapping, "u32")));
|
|
84
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
const result = wasm.LayoutFunction_custom(diplomatReceive.buffer, mappingSlice.ptr);
|
|
88
|
+
|
|
89
|
+
try {
|
|
90
|
+
if (!diplomatReceive.resultFlag) {
|
|
91
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
92
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
93
|
+
}
|
|
94
|
+
return new LayoutFunction(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
finally {
|
|
98
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
99
|
+
functionCleanupArena.free();
|
|
100
|
+
|
|
101
|
+
diplomatReceive.free();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* 2D matrix layout, elements laid out row by row; element bits are
|
|
107
|
+
* packed 4 per position (nibbles).
|
|
108
|
+
*/
|
|
109
|
+
static rowMajor(rows, cols, bitsPerElement) {
|
|
110
|
+
|
|
111
|
+
const result = wasm.LayoutFunction_row_major(rows, cols, bitsPerElement);
|
|
112
|
+
|
|
113
|
+
try {
|
|
114
|
+
return new LayoutFunction(diplomatRuntime.internalConstructor, result, []);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
finally {
|
|
118
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* 2D matrix layout, elements laid out column by column; element bits
|
|
124
|
+
* are packed 4 per position (nibbles).
|
|
125
|
+
*/
|
|
126
|
+
static columnMajor(rows, cols, bitsPerElement) {
|
|
127
|
+
|
|
128
|
+
const result = wasm.LayoutFunction_column_major(rows, cols, bitsPerElement);
|
|
129
|
+
|
|
130
|
+
try {
|
|
131
|
+
return new LayoutFunction(diplomatRuntime.internalConstructor, result, []);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
finally {
|
|
135
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Screen layout: pixels laid out row by row, left to right; pixel
|
|
141
|
+
* bits are packed 4 per position (nibbles).
|
|
142
|
+
*/
|
|
143
|
+
static scanline(width, height, bitsPerPixel) {
|
|
144
|
+
|
|
145
|
+
const result = wasm.LayoutFunction_scanline(width, height, bitsPerPixel);
|
|
146
|
+
|
|
147
|
+
try {
|
|
148
|
+
return new LayoutFunction(diplomatRuntime.internalConstructor, result, []);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
finally {
|
|
152
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
constructor(symbol, ptr, selfEdge) {
|
|
157
|
+
return this.#internalConstructor(...arguments)
|
|
158
|
+
}
|
|
159
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
3
|
+
import type { RedstoneGraph } from "./RedstoneGraph.mjs"
|
|
4
|
+
import type { Schematic } from "./Schematic.mjs"
|
|
5
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A running MCHPRS redstone simulation. Wraps {@link crate::simulation::MchprsWorld}.
|
|
11
|
+
*/
|
|
12
|
+
export class MchprsWorld {
|
|
13
|
+
/** @internal */
|
|
14
|
+
get ffiValue(): pointer;
|
|
15
|
+
/** @internal */
|
|
16
|
+
constructor();
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Create a simulation world from a schematic with default options.
|
|
21
|
+
*/
|
|
22
|
+
static create(schematic: Schematic): MchprsWorld;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Create a simulation world with explicit options.
|
|
26
|
+
*/
|
|
27
|
+
static createWithOptions(schematic: Schematic, optimize: boolean, ioOnly: boolean): MchprsWorld;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Create a simulation world with custom IO positions
|
|
31
|
+
* (`custom_io_positions` is flat `[x,y,z, x,y,z, ...]`).
|
|
32
|
+
*/
|
|
33
|
+
static createWithCustomIo(schematic: Schematic, optimize: boolean, ioOnly: boolean, customIoPositions: Array<number>): MchprsWorld;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* One-shot convenience (old ABI: `schematic_simulate_use_block`):
|
|
37
|
+
* build a world from `schematic`, fire an `on_use_block` event per
|
|
38
|
+
* triple in `events_xyz`, run `ticks` ticks, and return the simulated
|
|
39
|
+
* schematic. Unlike the old ABI (which mutated in place), this returns
|
|
40
|
+
* a new `Schematic`.
|
|
41
|
+
*/
|
|
42
|
+
static simulateUseBlock(schematic: Schematic, ticks: number, eventsXyz: Array<number>): Schematic;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Advance the simulation by `ticks` ticks.
|
|
46
|
+
*/
|
|
47
|
+
tick(ticks: number): void;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Flush pending changes from the compiler to the world.
|
|
51
|
+
*/
|
|
52
|
+
flush(): void;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Set the power state of a lever.
|
|
56
|
+
*/
|
|
57
|
+
setLeverPower(x: number, y: number, z: number, powered: boolean): void;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Get the power state of a lever.
|
|
61
|
+
*/
|
|
62
|
+
getLeverPower(x: number, y: number, z: number): boolean;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Whether a redstone lamp is lit at the given position.
|
|
66
|
+
*/
|
|
67
|
+
isLit(x: number, y: number, z: number): boolean;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Set the signal strength (0-15) at a custom IO position.
|
|
71
|
+
*/
|
|
72
|
+
setSignalStrength(x: number, y: number, z: number, strength: number): void;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Get the signal strength (0-15) at a position.
|
|
76
|
+
*/
|
|
77
|
+
getSignalStrength(x: number, y: number, z: number): number;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Simulate a right-click on a block (typically a lever).
|
|
81
|
+
*/
|
|
82
|
+
onUseBlock(x: number, y: number, z: number): void;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Sync the simulation state back to the internal schematic.
|
|
86
|
+
*/
|
|
87
|
+
syncToSchematic(): void;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* A clone of the world's schematic.
|
|
91
|
+
*/
|
|
92
|
+
getSchematic(): Schematic;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* The redstone power level (0-15) at a position.
|
|
96
|
+
*/
|
|
97
|
+
getRedstonePower(x: number, y: number, z: number): number;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Check for custom IO changes since the last check. Call before
|
|
101
|
+
* `poll_custom_io_changes_json`.
|
|
102
|
+
*/
|
|
103
|
+
checkCustomIoChanges(): void;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Queued custom IO changes as a JSON array
|
|
107
|
+
* (`[{"x":..,"y":..,"z":..,"old_power":..,"new_power":..}, ...]`),
|
|
108
|
+
* clearing the queue.
|
|
109
|
+
*/
|
|
110
|
+
pollCustomIoChangesJson(): string;
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Queued custom IO changes as JSON without clearing the queue.
|
|
114
|
+
*/
|
|
115
|
+
peekCustomIoChangesJson(): string;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Clear all queued custom IO changes.
|
|
119
|
+
*/
|
|
120
|
+
clearCustomIoChanges(): void;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Extract the compiled (post-optimization) redstone logic graph.
|
|
124
|
+
*/
|
|
125
|
+
exportGraph(): RedstoneGraph;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Extract the structural (pre-fold, as-built) redstone logic graph.
|
|
129
|
+
*/
|
|
130
|
+
exportGraphStructural(): RedstoneGraph;
|
|
131
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
3
|
+
import type { RedstoneGraph } from "./RedstoneGraph.mjs"
|
|
4
|
+
import type { Schematic } from "./Schematic.mjs"
|
|
5
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A running MCHPRS redstone simulation. Wraps {@link crate::simulation::MchprsWorld}.
|
|
11
|
+
*/
|
|
12
|
+
export class MchprsWorld {
|
|
13
|
+
/** @internal */
|
|
14
|
+
get ffiValue(): pointer;
|
|
15
|
+
/** @internal */
|
|
16
|
+
constructor();
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Create a simulation world from a schematic with default options.
|
|
21
|
+
*/
|
|
22
|
+
static create(schematic: Schematic): MchprsWorld;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Create a simulation world with explicit options.
|
|
26
|
+
*/
|
|
27
|
+
static createWithOptions(schematic: Schematic, optimize: boolean, ioOnly: boolean): MchprsWorld;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Create a simulation world with custom IO positions
|
|
31
|
+
* (`custom_io_positions` is flat `[x,y,z, x,y,z, ...]`).
|
|
32
|
+
*/
|
|
33
|
+
static createWithCustomIo(schematic: Schematic, optimize: boolean, ioOnly: boolean, customIoPositions: Array<number>): MchprsWorld;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* One-shot convenience (old ABI: `schematic_simulate_use_block`):
|
|
37
|
+
* build a world from `schematic`, fire an `on_use_block` event per
|
|
38
|
+
* triple in `events_xyz`, run `ticks` ticks, and return the simulated
|
|
39
|
+
* schematic. Unlike the old ABI (which mutated in place), this returns
|
|
40
|
+
* a new `Schematic`.
|
|
41
|
+
*/
|
|
42
|
+
static simulateUseBlock(schematic: Schematic, ticks: number, eventsXyz: Array<number>): Schematic;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Advance the simulation by `ticks` ticks.
|
|
46
|
+
*/
|
|
47
|
+
tick(ticks: number): void;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Flush pending changes from the compiler to the world.
|
|
51
|
+
*/
|
|
52
|
+
flush(): void;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Set the power state of a lever.
|
|
56
|
+
*/
|
|
57
|
+
setLeverPower(x: number, y: number, z: number, powered: boolean): void;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Get the power state of a lever.
|
|
61
|
+
*/
|
|
62
|
+
getLeverPower(x: number, y: number, z: number): boolean;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Whether a redstone lamp is lit at the given position.
|
|
66
|
+
*/
|
|
67
|
+
isLit(x: number, y: number, z: number): boolean;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Set the signal strength (0-15) at a custom IO position.
|
|
71
|
+
*/
|
|
72
|
+
setSignalStrength(x: number, y: number, z: number, strength: number): void;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Get the signal strength (0-15) at a position.
|
|
76
|
+
*/
|
|
77
|
+
getSignalStrength(x: number, y: number, z: number): number;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Simulate a right-click on a block (typically a lever).
|
|
81
|
+
*/
|
|
82
|
+
onUseBlock(x: number, y: number, z: number): void;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Sync the simulation state back to the internal schematic.
|
|
86
|
+
*/
|
|
87
|
+
syncToSchematic(): void;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* A clone of the world's schematic.
|
|
91
|
+
*/
|
|
92
|
+
getSchematic(): Schematic;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* The redstone power level (0-15) at a position.
|
|
96
|
+
*/
|
|
97
|
+
getRedstonePower(x: number, y: number, z: number): number;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Check for custom IO changes since the last check. Call before
|
|
101
|
+
* `poll_custom_io_changes_json`.
|
|
102
|
+
*/
|
|
103
|
+
checkCustomIoChanges(): void;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Queued custom IO changes as a JSON array
|
|
107
|
+
* (`[{"x":..,"y":..,"z":..,"old_power":..,"new_power":..}, ...]`),
|
|
108
|
+
* clearing the queue.
|
|
109
|
+
*/
|
|
110
|
+
pollCustomIoChangesJson(): string;
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Queued custom IO changes as JSON without clearing the queue.
|
|
114
|
+
*/
|
|
115
|
+
peekCustomIoChangesJson(): string;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Clear all queued custom IO changes.
|
|
119
|
+
*/
|
|
120
|
+
clearCustomIoChanges(): void;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Extract the compiled (post-optimization) redstone logic graph.
|
|
124
|
+
*/
|
|
125
|
+
exportGraph(): RedstoneGraph;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Extract the structural (pre-fold, as-built) redstone logic graph.
|
|
129
|
+
*/
|
|
130
|
+
exportGraphStructural(): RedstoneGraph;
|
|
131
|
+
}
|