nucleation 0.1.140__tar.gz → 0.1.142__tar.gz
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.
- {nucleation-0.1.140 → nucleation-0.1.142}/Cargo.lock +28 -3
- {nucleation-0.1.140 → nucleation-0.1.142}/Cargo.toml +2 -2
- {nucleation-0.1.140 → nucleation-0.1.142}/PKG-INFO +1 -1
- {nucleation-0.1.140 → nucleation-0.1.142}/pyproject.toml +1 -1
- nucleation-0.1.142/release-artifacts/libnucleation-macos-arm64.dylib +0 -0
- nucleation-0.1.142/release-artifacts/libnucleation-macos-x64.dylib +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/release-artifacts/libnucleation.rlib +0 -0
- nucleation-0.1.142/release-artifacts/nucleation_bg.wasm +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/release-artifacts/package.json +1 -1
- nucleation-0.1.142/simple_cube.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/formats/litematic.rs +3 -3
- {nucleation-0.1.140 → nucleation-0.1.142}/src/formats/mcstructure.rs +127 -44
- {nucleation-0.1.140 → nucleation-0.1.142}/src/formats/schematic.rs +1 -1
- {nucleation-0.1.140 → nucleation-0.1.142}/src/region.rs +4 -4
- {nucleation-0.1.140 → nucleation-0.1.142}/src/universal_schematic.rs +178 -0
- nucleation-0.1.142/test_schematic.schem +0 -0
- nucleation-0.1.142/tests/bedrock_conversion_tests.rs +118 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/integration_tests.rs +3 -4
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/mcstructure_tests.rs +3 -2
- nucleation-0.1.142/tests/samples/auto_register.mcstructure +0 -0
- nucleation-0.1.142/tests/samples/auto_register.schem +0 -0
- nucleation-0.1.142/tests/samples/flip-flop.mcstructure +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/test_region_expansion_bugs.rs +1 -1
- nucleation-0.1.140/release-artifacts/libnucleation-macos-arm64.dylib +0 -0
- nucleation-0.1.140/release-artifacts/libnucleation-macos-x64.dylib +0 -0
- nucleation-0.1.140/release-artifacts/nucleation_bg.wasm +0 -0
- nucleation-0.1.140/simple_cube.litematic +0 -0
- nucleation-0.1.140/test_schematic.schem +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/.DS_Store +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/.cargo/config.toml +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/.github/workflows/ci.yml +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/.gitignore +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/.idea/.gitignore +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/.idea/minecraft_schematic_utils.iml +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/.idea/misc.xml +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/.idea/modules.xml +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/.idea/vcs.xml +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/4bit_adder.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/Dockerfile +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/LICENSE +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/README.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/WARP.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/benches/performance_test.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/benches/schematic_bench.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/build-ffi.sh +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/build-wasm.sh +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/docs/README.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/docs/building/README.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/docs/insign-io-integration.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/docs/javascript/README.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/docs/python/README.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/docs/rust/README.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/docs/shared/guide/circuit-api.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/docs/shared/guide/definition-region.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/docs/shared/guide/schematic-builder.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/docs/shared/guide/typed-executor.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/docs/shared/unicode-palette.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/bracket_notation.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/build_adder.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/build_test_adder.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/building_benchmark.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/check_adder_dims.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/connect4_battle_setup.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/create_simple_litematic.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/custom_io_signals.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/ffi.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/generate_gradient_samples.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/generate_nice_gradients.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/generate_solid_color_tests.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/inspect_blockpedia.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/python.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/python_benchmark.py +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/python_simulation.py +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/rust.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/rust_fluent_api.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/test_asymmetric_cubes.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/test_checkerboard.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/test_unicode_circuit.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/universal_schematic_overhead.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/examples/wasm.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/helf_adder.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/insign.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/nucleation-stubs.php +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/nucleation.pyi +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/output/.DS_Store +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/output/full_adder.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/pre-push.sh +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/py.typed +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/release-artifacts/LICENSE +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/release-artifacts/README.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/release-artifacts/libnucleation.d +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/release-artifacts/nucleation-cdn-loader.js +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/release-artifacts/nucleation-original.js +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/release-artifacts/nucleation.d.ts +16 -16
- {nucleation-0.1.140 → nucleation-0.1.142}/release-artifacts/nucleation.js +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/release-artifacts/nucleation_bg.wasm.d.ts +16 -16
- {nucleation-0.1.140 → nucleation-0.1.142}/schematic_builder/generated/d_latch.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/schematic_builder/generated/xor.schem +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/schematic_builder/templates/comparator_subtract_bug1.txt +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/schematic_builder/templates/comparator_subtract_bug2.txt +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/schematic_builder/templates/comparator_subtract_simple.txt +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/schematic_builder/templates/comparator_subtract_with_signs.txt +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/schematic_builder/templates/d_latch.txt +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/schematic_builder/templates/failing_case.txt +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/schematic_builder/templates/full_adder.txt +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/schematic_builder/templates/xor.txt +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/scripts/update-stubs.sh +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/bin/schematic-builder.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/block_entity/generic.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/block_entity/mod.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/block_position.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/block_state.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/bounding_box.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/building/brushes.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/building/enums.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/building/mod.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/building/shapes.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/chunk.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/definition_region.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/entity.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/ffi.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/formats/manager.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/formats/mod.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/formats/sponge_schematic_v3.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/insign.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/item/mod.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/item/stack.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/lib.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/metadata.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/nbt/mod.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/php.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/print_utils.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/python/building.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/python/circuit_builder.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/python/definition_region.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/python/mod.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/python/schematic.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/python/schematic_builder.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/python/simulation.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/python/typed_executor.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/schematic_builder/palettes.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/schematic_builder.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/simulation/circuit_builder.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/simulation/mchprs_world.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/simulation/mod.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/simulation/tests.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/simulation/truth_table.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/simulation/typed_executor/executor.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/simulation/typed_executor/insign_io.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/simulation/typed_executor/integration_tests.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/simulation/typed_executor/io_layout_builder.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/simulation/typed_executor/io_mapping.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/simulation/typed_executor/io_type.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/simulation/typed_executor/layout_function.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/simulation/typed_executor/mod.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/simulation/typed_executor/sort_strategy.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/simulation/typed_executor/tests.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/simulation/typed_executor/value.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/transforms.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/utils/block_string.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/utils/container_spec.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/utils/enhanced_nbt_parser.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/utils/mod.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/wasm/building.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/wasm/circuit_builder.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/wasm/definition_region.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/wasm/mod.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/wasm/palettes.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/wasm/schematic.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/wasm/schematic_builder.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/wasm/simulation.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/src/wasm/typed_executor.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/test-wasm.sh +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/test_adder.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/test_circuit.txt +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/test_cli_output.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/test_count_format.schem +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/test_enhanced.schem +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/test_fixed.schem +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/.DS_Store +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/barrel_nbt_test.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/building_tests.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/connect4_test.js +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/debug_flip.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/definition_regions_test.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/executor_config_test.js +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/mchprs_state_test.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/nbt_parsing_test.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/node_fluent_api_test.mjs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/node_simple_circuit_test.js +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/node_simple_circuit_test.mjs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/node_wasm_test.js +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/package.json +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/php-stubs-test.php +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/property_transformation_demo.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/python_simple_circuit_test.py +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/python_test.py +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/registry_tests.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/reproduce_bug.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/rust_fluent_api_test.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/16-bit_divider.mcstructure +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/1x1.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/3x2x3.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/3x3.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/4x2x4.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/4x4x4+1.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/8-bit_alu.mcstructure +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/Evaluator.schem +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/all_items.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/and.schem +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/brewer.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/c4_ai_last_played.schem +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/c4_ai_left_most.schem +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/cutecounter.schem +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/door_plot.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/file.litematic.l +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/gol.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/large_schematic.schem +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/linear_plotter.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/litematic-rose-farm.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/new_chest_test.schem +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/quarry.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/sample.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/sample.schem +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/spinny.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/ss-sorter.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/storage_thingy.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/test_coordinate_thingy.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/test_cube.schem +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/trencher.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/samples/wool_palette.litematic +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/simple_wasm_test.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/test_barrel_hopper_simulation.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/test_chunk_bounds_bug.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/test_comparator_diagonal_bug.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/test_comparator_subtract_bug.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/test_comparator_subtract_executor.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/test_custom_io_adjacent_bug.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/test_custom_io_no_power_bug.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/test_intermediate_wire_sync.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/test_long_wire.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/test_nibble_signal_strength.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/test_repeater_chain_sync.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/test_repeater_custom_io_bug.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/test_simulation_with_tight_bounds.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/test_two_inputs_exact_topology.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/test_two_inputs_no_output_bug.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/test_typed_executor_sync_output_bug.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/transformation_tests.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/wasm_node_tests.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/tests/wasm_tests.rs +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/bun.lockb +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/index.html +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/index.js +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/minecraft_schematic_utils.js +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/minecraft_schematic_utils_bg.wasm +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/LICENSE +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/README.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/assert/strict.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/assert.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/async_hooks.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/buffer.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/child_process.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/cluster.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/console.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/constants.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/crypto.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/dgram.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/diagnostics_channel.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/dns/promises.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/dns.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/dom-events.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/domain.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/events.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/fs/promises.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/fs.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/globals.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/globals.global.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/http.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/http2.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/https.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/index.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/inspector.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/module.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/net.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/os.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/package.json +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/path.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/perf_hooks.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/process.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/punycode.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/querystring.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/readline/promises.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/readline.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/repl.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/sea.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/stream/consumers.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/stream/promises.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/stream/web.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/stream.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/string_decoder.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/test.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/timers/promises.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/timers.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/tls.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/trace_events.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/tty.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/url.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/util.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/v8.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/vm.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/wasi.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/worker_threads.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/node/zlib.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/LICENSE +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/README.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/index.d.mts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/index.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/LICENSE +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/README.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/assert/strict.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/assert.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/async_hooks.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/buffer.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/child_process.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/cluster.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/console.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/constants.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/crypto.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/dgram.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/diagnostics_channel.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/dns/promises.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/dns.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/dom-events.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/domain.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/events.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/fs/promises.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/fs.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/globals.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/globals.global.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/http.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/http2.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/https.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/index.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/inspector.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/module.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/net.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/LICENSE +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/README.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/agent.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/api.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/balanced-pool.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/cache.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/client.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/connector.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/content-type.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/cookies.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/diagnostics-channel.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/dispatcher.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/errors.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/eventsource.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/fetch.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/file.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/filereader.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/formdata.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/global-dispatcher.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/global-origin.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/handlers.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/header.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/index.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/interceptors.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/mock-agent.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/mock-client.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/mock-errors.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/mock-interceptor.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/mock-pool.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/package.json +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/patch.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/pool-stats.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/pool.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/proxy-agent.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/readable.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/retry-agent.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/retry-handler.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/util.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/webidl.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/websocket.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/os.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/package.json +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/path.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/perf_hooks.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/process.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/punycode.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/querystring.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/readline/promises.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/readline.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/repl.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/sea.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/sqlite.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/stream/consumers.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/stream/promises.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/stream/web.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/stream.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/string_decoder.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/test.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/timers/promises.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/timers.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/tls.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/trace_events.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/tty.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/url.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/util.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/v8.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/vm.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/wasi.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/worker_threads.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/node_modules/@types/node/zlib.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/@types/ws/package.json +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/bun-types/README.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/bun-types/bun.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/bun-types/deprecated.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/bun-types/fetch.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/bun-types/ffi.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/bun-types/globals.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/bun-types/html-rewriter.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/bun-types/index.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/bun-types/jsc.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/bun-types/overrides.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/bun-types/package.json +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/bun-types/sqlite.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/bun-types/test.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/bun-types/wasm.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/README.md +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/agent.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/api.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/balanced-pool.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/cache.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/client.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/connector.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/content-type.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/cookies.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/diagnostics-channel.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/dispatcher.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/errors.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/fetch.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/file.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/filereader.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/formdata.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/global-dispatcher.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/global-origin.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/handlers.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/header.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/index.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/interceptors.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/mock-agent.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/mock-client.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/mock-errors.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/mock-interceptor.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/mock-pool.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/package.json +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/patch.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/pool-stats.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/pool.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/proxy-agent.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/readable.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/webidl.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/node_modules/undici-types/websocket.d.ts +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/nucleation-web.js +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/nucleation-web_bg.wasm +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/nucleation.js +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/nucleation_bg.js +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/nucleation_bg.wasm +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/package.json +0 -0
- {nucleation-0.1.140 → nucleation-0.1.142}/wasm-test/server.js +0 -0
|
@@ -234,12 +234,14 @@ dependencies = [
|
|
|
234
234
|
|
|
235
235
|
[[package]]
|
|
236
236
|
name = "blockpedia"
|
|
237
|
-
version = "0.1.
|
|
237
|
+
version = "0.1.8"
|
|
238
238
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
239
|
-
checksum = "
|
|
239
|
+
checksum = "616422e09c183aa4dca9b226ac5a12766df2bb69f7a570ea3a9785e3a8d35ba1"
|
|
240
240
|
dependencies = [
|
|
241
241
|
"anyhow",
|
|
242
242
|
"console_error_panic_hook",
|
|
243
|
+
"fastnbt",
|
|
244
|
+
"flate2",
|
|
243
245
|
"image",
|
|
244
246
|
"js-sys",
|
|
245
247
|
"palette",
|
|
@@ -247,6 +249,7 @@ dependencies = [
|
|
|
247
249
|
"phf_codegen",
|
|
248
250
|
"serde",
|
|
249
251
|
"serde-wasm-bindgen 0.6.5",
|
|
252
|
+
"serde_bytes",
|
|
250
253
|
"serde_json",
|
|
251
254
|
"thiserror 1.0.69",
|
|
252
255
|
"tokio",
|
|
@@ -953,6 +956,18 @@ version = "1.0.0"
|
|
|
953
956
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
954
957
|
checksum = "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1"
|
|
955
958
|
|
|
959
|
+
[[package]]
|
|
960
|
+
name = "fastnbt"
|
|
961
|
+
version = "2.6.0"
|
|
962
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
963
|
+
checksum = "29e3bb1f9ba8b6dbb35d89b415216041c2cad0c3e0b329db85ef5d4fc9e80cd6"
|
|
964
|
+
dependencies = [
|
|
965
|
+
"byteorder",
|
|
966
|
+
"cesu8",
|
|
967
|
+
"serde",
|
|
968
|
+
"serde_bytes",
|
|
969
|
+
]
|
|
970
|
+
|
|
956
971
|
[[package]]
|
|
957
972
|
name = "fastrand"
|
|
958
973
|
version = "2.3.0"
|
|
@@ -1845,7 +1860,7 @@ dependencies = [
|
|
|
1845
1860
|
|
|
1846
1861
|
[[package]]
|
|
1847
1862
|
name = "nucleation"
|
|
1848
|
-
version = "0.1.
|
|
1863
|
+
version = "0.1.142"
|
|
1849
1864
|
dependencies = [
|
|
1850
1865
|
"base64",
|
|
1851
1866
|
"blockpedia",
|
|
@@ -2757,6 +2772,16 @@ dependencies = [
|
|
|
2757
2772
|
"wasm-bindgen",
|
|
2758
2773
|
]
|
|
2759
2774
|
|
|
2775
|
+
[[package]]
|
|
2776
|
+
name = "serde_bytes"
|
|
2777
|
+
version = "0.11.19"
|
|
2778
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2779
|
+
checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8"
|
|
2780
|
+
dependencies = [
|
|
2781
|
+
"serde",
|
|
2782
|
+
"serde_core",
|
|
2783
|
+
]
|
|
2784
|
+
|
|
2760
2785
|
[[package]]
|
|
2761
2786
|
name = "serde_core"
|
|
2762
2787
|
version = "1.0.228"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "nucleation"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.142"
|
|
4
4
|
edition = "2021"
|
|
5
5
|
description = "A high-performance Minecraft schematic parser and utility library"
|
|
6
6
|
authors = ["Nano nano@schem.at"]
|
|
@@ -44,7 +44,7 @@ flate2 = "1.1.2"
|
|
|
44
44
|
log = "0.4.22"
|
|
45
45
|
console = "0.15.8"
|
|
46
46
|
insign = "0.1.1"
|
|
47
|
-
blockpedia = { version = "0.1.
|
|
47
|
+
blockpedia = { version = "0.1.8", default-features = false, features = ["wasm"] }
|
|
48
48
|
|
|
49
49
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
50
50
|
hematite-nbt = "*"
|
|
@@ -4,7 +4,7 @@ build-backend = "maturin"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "nucleation"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.142"
|
|
8
8
|
description = "A high-performance Minecraft schematic parser and utility library"
|
|
9
9
|
authors = [{ name = "Nano", email = "nano@schem.at" }]
|
|
10
10
|
license = { text = "AGPL-3.0-only" }
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -446,7 +446,7 @@ mod tests {
|
|
|
446
446
|
let mut region = Region::new("TestRegion".to_string(), (0, 0, 0), (2, 2, 2));
|
|
447
447
|
|
|
448
448
|
let stone = BlockState::new("minecraft:stone".to_string());
|
|
449
|
-
let
|
|
449
|
+
let _air = BlockState::new("minecraft:air".to_string());
|
|
450
450
|
|
|
451
451
|
region.set_block(0, 0, 0, &stone.clone());
|
|
452
452
|
region.set_block(1, 1, 1, &stone.clone());
|
|
@@ -577,7 +577,7 @@ mod tests {
|
|
|
577
577
|
.expect("Failed to write to file");
|
|
578
578
|
|
|
579
579
|
// Read the .litematic file back
|
|
580
|
-
let
|
|
580
|
+
let _loaded_litematic_data =
|
|
581
581
|
std::fs::read("simple_cube.litematic").expect("Failed to read file");
|
|
582
582
|
|
|
583
583
|
// Clean up the generated file
|
|
@@ -592,7 +592,7 @@ mod tests {
|
|
|
592
592
|
let mut region = Region::new("TestRegion".to_string(), (0, 0, 0), (2, 2, 2));
|
|
593
593
|
|
|
594
594
|
let stone = BlockState::new("minecraft:stone".to_string());
|
|
595
|
-
let
|
|
595
|
+
let _air = BlockState::new("minecraft:air".to_string());
|
|
596
596
|
|
|
597
597
|
region.set_block(0, 0, 0, &stone.clone());
|
|
598
598
|
region.set_block(1, 1, 1, &stone.clone());
|
|
@@ -7,6 +7,7 @@ use crate::region::Region;
|
|
|
7
7
|
use crate::universal_schematic::UniversalSchematic;
|
|
8
8
|
use crate::BlockState;
|
|
9
9
|
use blockpedia;
|
|
10
|
+
use blockpedia::block_entity::{BlockEntityTranslator, NbtValue as BpNbtValue};
|
|
10
11
|
use std::collections::HashMap;
|
|
11
12
|
use std::io::Cursor;
|
|
12
13
|
|
|
@@ -120,10 +121,12 @@ pub fn from_mcstructure(data: &[u8]) -> Result<UniversalSchematic, Box<dyn std::
|
|
|
120
121
|
for (key, val) in states.iter() {
|
|
121
122
|
let val_str = match val {
|
|
122
123
|
NbtValue::Byte(b) => {
|
|
123
|
-
if *b
|
|
124
|
+
if *b == 1 {
|
|
124
125
|
"true".to_string()
|
|
125
|
-
} else {
|
|
126
|
+
} else if *b == 0 {
|
|
126
127
|
"false".to_string()
|
|
128
|
+
} else {
|
|
129
|
+
b.to_string()
|
|
127
130
|
}
|
|
128
131
|
}
|
|
129
132
|
NbtValue::Int(i) => i.to_string(),
|
|
@@ -150,55 +153,73 @@ pub fn from_mcstructure(data: &[u8]) -> Result<UniversalSchematic, Box<dyn std::
|
|
|
150
153
|
}
|
|
151
154
|
}
|
|
152
155
|
|
|
153
|
-
//
|
|
156
|
+
// Construct Region
|
|
157
|
+
let mut region = Region::new("Main".to_string(), (0, 0, 0), (width, height, length));
|
|
158
|
+
|
|
159
|
+
// Parse Block Indices (Multi-layer support)
|
|
154
160
|
let block_indices_list = match structure.get("block_indices") {
|
|
155
161
|
Some(NbtValue::List(l)) => l,
|
|
156
162
|
_ => return Err("Missing block_indices".into()),
|
|
157
163
|
};
|
|
158
|
-
let mut indices_iter = block_indices_list.iter();
|
|
159
|
-
let primary_layer = indices_iter.next().ok_or("Missing primary layer")?;
|
|
160
|
-
|
|
161
|
-
let indices: Vec<i32> = match primary_layer {
|
|
162
|
-
NbtValue::List(list) => list
|
|
163
|
-
.iter()
|
|
164
|
-
.filter_map(|t| {
|
|
165
|
-
if let NbtValue::Int(i) = t {
|
|
166
|
-
Some(*i)
|
|
167
|
-
} else {
|
|
168
|
-
None
|
|
169
|
-
}
|
|
170
|
-
})
|
|
171
|
-
.collect(),
|
|
172
|
-
_ => return Err("Primary layer is not a list".into()),
|
|
173
|
-
};
|
|
174
|
-
|
|
175
|
-
// Construct Region
|
|
176
|
-
let mut region = Region::new("Main".to_string(), (0, 0, 0), (width, height, length));
|
|
177
|
-
|
|
178
|
-
// Set blocks
|
|
179
|
-
// Indices are ZYX order: X outer, Y middle, Z inner
|
|
180
|
-
// index = SZ*SY*X + SZ*Y + Z
|
|
181
|
-
|
|
182
|
-
for (i, &palette_idx) in indices.iter().enumerate() {
|
|
183
|
-
if palette_idx < 0 {
|
|
184
|
-
continue;
|
|
185
|
-
} // -1 is void/air-skip
|
|
186
|
-
|
|
187
|
-
let i = i as i32;
|
|
188
|
-
let sz = length;
|
|
189
|
-
let sy = height;
|
|
190
164
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
165
|
+
for layer in block_indices_list {
|
|
166
|
+
let indices: Vec<i32> = match layer {
|
|
167
|
+
NbtValue::List(list) => list
|
|
168
|
+
.iter()
|
|
169
|
+
.filter_map(|t| {
|
|
170
|
+
if let NbtValue::Int(i) = t {
|
|
171
|
+
Some(*i)
|
|
172
|
+
} else {
|
|
173
|
+
None
|
|
174
|
+
}
|
|
175
|
+
})
|
|
176
|
+
.collect(),
|
|
177
|
+
_ => continue,
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
// Set blocks
|
|
181
|
+
// Indices are ZYX order: X outer, Y middle, Z inner
|
|
182
|
+
// index = SZ*SY*X + SZ*Y + Z
|
|
183
|
+
for (i, &palette_idx) in indices.iter().enumerate() {
|
|
184
|
+
if palette_idx < 0 {
|
|
185
|
+
continue;
|
|
186
|
+
} // -1 is void/air-skip
|
|
187
|
+
|
|
188
|
+
let i = i as i32;
|
|
189
|
+
let sz = length;
|
|
190
|
+
let sy = height;
|
|
191
|
+
|
|
192
|
+
if sz == 0 || sy == 0 {
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
194
195
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
196
|
+
let x = i / sz / sy;
|
|
197
|
+
let y = (i / sz) % sy;
|
|
198
|
+
let z = i % sz;
|
|
199
|
+
|
|
200
|
+
if palette_idx < palette.len() as i32 {
|
|
201
|
+
let block = palette[palette_idx as usize].clone();
|
|
202
|
+
|
|
203
|
+
// Simple merge logic:
|
|
204
|
+
// If the block is water/lava and we already have a block here,
|
|
205
|
+
// try to set waterlogged=true instead of overwriting.
|
|
206
|
+
if (block.name == "minecraft:water" || block.name == "minecraft:flowing_water")
|
|
207
|
+
&& region.get_block(x, y, z).is_some()
|
|
208
|
+
{
|
|
209
|
+
if let Some(existing_block) = region.get_block(x, y, z) {
|
|
210
|
+
if existing_block.name != "minecraft:air" {
|
|
211
|
+
let mut updated_block = existing_block.clone();
|
|
212
|
+
updated_block
|
|
213
|
+
.properties
|
|
214
|
+
.insert("waterlogged".to_string(), "true".to_string());
|
|
215
|
+
region.set_block(x, y, z, &updated_block);
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
198
220
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
region.set_block(x, y, z, &block);
|
|
221
|
+
region.set_block(x, y, z, &block);
|
|
222
|
+
}
|
|
202
223
|
}
|
|
203
224
|
}
|
|
204
225
|
|
|
@@ -226,6 +247,18 @@ pub fn from_mcstructure(data: &[u8]) -> Result<UniversalSchematic, Box<dyn std::
|
|
|
226
247
|
be_nbt.insert("y".to_string(), NbtValue::Int(y));
|
|
227
248
|
be_nbt.insert("z".to_string(), NbtValue::Int(z));
|
|
228
249
|
|
|
250
|
+
// Translate NBT using Blockpedia
|
|
251
|
+
let bp_nbt = to_bp_nbt(&NbtValue::Compound(be_nbt.clone()));
|
|
252
|
+
if let BpNbtValue::Compound(bp_map) = bp_nbt {
|
|
253
|
+
let translated_bp_map =
|
|
254
|
+
BlockEntityTranslator::translate_bedrock_to_java(&bp_map);
|
|
255
|
+
if let NbtValue::Compound(translated_map) =
|
|
256
|
+
from_bp_nbt(&BpNbtValue::Compound(translated_bp_map))
|
|
257
|
+
{
|
|
258
|
+
be_nbt = translated_map;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
229
262
|
// Extract ID and Pos for BlockEntity constructor
|
|
230
263
|
let id = be_nbt
|
|
231
264
|
.get("id")
|
|
@@ -268,6 +301,10 @@ pub fn from_mcstructure(data: &[u8]) -> Result<UniversalSchematic, Box<dyn std::
|
|
|
268
301
|
|
|
269
302
|
let mut schematic = UniversalSchematic::new("Unnamed".to_string());
|
|
270
303
|
schematic.add_region(region);
|
|
304
|
+
|
|
305
|
+
// Post-fix redstone connectivity
|
|
306
|
+
schematic.fix_redstone_connectivity();
|
|
307
|
+
|
|
271
308
|
Ok(schematic)
|
|
272
309
|
}
|
|
273
310
|
|
|
@@ -433,3 +470,49 @@ pub fn to_mcstructure(
|
|
|
433
470
|
|
|
434
471
|
Ok(cursor.into_inner())
|
|
435
472
|
}
|
|
473
|
+
|
|
474
|
+
fn to_bp_nbt(val: &NbtValue) -> BpNbtValue {
|
|
475
|
+
match val {
|
|
476
|
+
NbtValue::Byte(v) => BpNbtValue::Byte(*v),
|
|
477
|
+
NbtValue::Short(v) => BpNbtValue::Short(*v),
|
|
478
|
+
NbtValue::Int(v) => BpNbtValue::Int(*v),
|
|
479
|
+
NbtValue::Long(v) => BpNbtValue::Long(*v),
|
|
480
|
+
NbtValue::Float(v) => BpNbtValue::Float(*v),
|
|
481
|
+
NbtValue::Double(v) => BpNbtValue::Double(*v),
|
|
482
|
+
NbtValue::String(v) => BpNbtValue::String(v.clone()),
|
|
483
|
+
NbtValue::ByteArray(v) => BpNbtValue::ByteArray(v.clone()),
|
|
484
|
+
NbtValue::IntArray(v) => BpNbtValue::IntArray(v.clone()),
|
|
485
|
+
NbtValue::LongArray(v) => BpNbtValue::LongArray(v.clone()),
|
|
486
|
+
NbtValue::List(v) => BpNbtValue::List(v.iter().map(to_bp_nbt).collect()),
|
|
487
|
+
NbtValue::Compound(v) => {
|
|
488
|
+
let mut map = HashMap::new();
|
|
489
|
+
for (k, val) in v.iter() {
|
|
490
|
+
map.insert(k.clone(), to_bp_nbt(val));
|
|
491
|
+
}
|
|
492
|
+
BpNbtValue::Compound(map)
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
fn from_bp_nbt(val: &BpNbtValue) -> NbtValue {
|
|
498
|
+
match val {
|
|
499
|
+
BpNbtValue::Byte(v) => NbtValue::Byte(*v),
|
|
500
|
+
BpNbtValue::Short(v) => NbtValue::Short(*v),
|
|
501
|
+
BpNbtValue::Int(v) => NbtValue::Int(*v),
|
|
502
|
+
BpNbtValue::Long(v) => NbtValue::Long(*v),
|
|
503
|
+
BpNbtValue::Float(v) => NbtValue::Float(*v),
|
|
504
|
+
BpNbtValue::Double(v) => NbtValue::Double(*v),
|
|
505
|
+
BpNbtValue::String(v) => NbtValue::String(v.clone()),
|
|
506
|
+
BpNbtValue::ByteArray(v) => NbtValue::ByteArray(v.clone()),
|
|
507
|
+
BpNbtValue::IntArray(v) => NbtValue::IntArray(v.clone()),
|
|
508
|
+
BpNbtValue::LongArray(v) => NbtValue::LongArray(v.clone()),
|
|
509
|
+
BpNbtValue::List(v) => NbtValue::List(v.iter().map(from_bp_nbt).collect()),
|
|
510
|
+
BpNbtValue::Compound(v) => {
|
|
511
|
+
let mut map = NbtMap::new();
|
|
512
|
+
for (k, val) in v {
|
|
513
|
+
map.insert(k.clone(), from_bp_nbt(val));
|
|
514
|
+
}
|
|
515
|
+
NbtValue::Compound(map)
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
}
|
|
@@ -896,7 +896,7 @@ mod tests {
|
|
|
896
896
|
let schem_data =
|
|
897
897
|
fs::read(schem_path).expect(format!("Failed to read {}", input_path_str).as_str());
|
|
898
898
|
|
|
899
|
-
let
|
|
899
|
+
let schematic = from_schematic(&schem_data).expect("Failed to parse schematic");
|
|
900
900
|
assert_eq!(schematic.metadata.name, Some("Unnamed".to_string()));
|
|
901
901
|
}
|
|
902
902
|
|
|
@@ -1282,7 +1282,7 @@ mod tests {
|
|
|
1282
1282
|
for i in 1..=16 {
|
|
1283
1283
|
palette.push(BlockState::new(format!("minecraft:wool{}", i)));
|
|
1284
1284
|
}
|
|
1285
|
-
let
|
|
1285
|
+
let region = Region {
|
|
1286
1286
|
name: "Test".to_string(),
|
|
1287
1287
|
position: (0, 0, 0),
|
|
1288
1288
|
size: (16, 1, 1),
|
|
@@ -1715,7 +1715,7 @@ mod tests {
|
|
|
1715
1715
|
fn test_coords_to_index() {
|
|
1716
1716
|
let mut region = Region::new("Test".to_string(), (0, 0, 0), (2, 2, 2));
|
|
1717
1717
|
|
|
1718
|
-
let
|
|
1718
|
+
let volume1 = region.volume();
|
|
1719
1719
|
for i in 0..8 {
|
|
1720
1720
|
let coords = region.index_to_coords(i);
|
|
1721
1721
|
let index = region.coords_to_index(coords.0, coords.1, coords.2);
|
|
@@ -1725,7 +1725,7 @@ mod tests {
|
|
|
1725
1725
|
|
|
1726
1726
|
let region2 = Region::new("Test".to_string(), (0, 0, 0), (-2, -2, -2));
|
|
1727
1727
|
|
|
1728
|
-
let
|
|
1728
|
+
let volume2 = region2.volume();
|
|
1729
1729
|
for i in 0..8 {
|
|
1730
1730
|
let coords = region2.index_to_coords(i);
|
|
1731
1731
|
let index = region2.coords_to_index(coords.0, coords.1, coords.2);
|
|
@@ -1735,7 +1735,7 @@ mod tests {
|
|
|
1735
1735
|
|
|
1736
1736
|
region.merge(®ion2);
|
|
1737
1737
|
|
|
1738
|
-
let
|
|
1738
|
+
let volume3 = region.volume();
|
|
1739
1739
|
for i in 0..27 {
|
|
1740
1740
|
let coords = region.index_to_coords(i);
|
|
1741
1741
|
let index = region.coords_to_index(coords.0, coords.1, coords.2);
|
|
@@ -567,6 +567,150 @@ impl UniversalSchematic {
|
|
|
567
567
|
}
|
|
568
568
|
}
|
|
569
569
|
|
|
570
|
+
pub fn fix_redstone_connectivity(&mut self) {
|
|
571
|
+
let regions: Vec<String> = self.get_all_regions().keys().cloned().collect();
|
|
572
|
+
for region_name in regions {
|
|
573
|
+
self.fix_redstone_connectivity_for_region(®ion_name);
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
pub fn fix_redstone_connectivity_for_region(&mut self, region_name: &str) {
|
|
578
|
+
let (min, max) = {
|
|
579
|
+
let region = match self.get_region(region_name) {
|
|
580
|
+
Some(r) => r,
|
|
581
|
+
None => return,
|
|
582
|
+
};
|
|
583
|
+
let (width, height, length) = region.size;
|
|
584
|
+
let (pos_x, pos_y, pos_z) = region.position;
|
|
585
|
+
(
|
|
586
|
+
(pos_x, pos_y, pos_z),
|
|
587
|
+
(pos_x + width, pos_y + height, pos_z + length),
|
|
588
|
+
)
|
|
589
|
+
};
|
|
590
|
+
|
|
591
|
+
for y in min.1..max.1 {
|
|
592
|
+
for x in min.0..max.0 {
|
|
593
|
+
for z in min.2..max.2 {
|
|
594
|
+
let block = match self.get_block_from_region(region_name, x, y, z) {
|
|
595
|
+
Some(b) if b.name == "minecraft:redstone_wire" => b.clone(),
|
|
596
|
+
_ => continue,
|
|
597
|
+
};
|
|
598
|
+
|
|
599
|
+
let mut new_block = block.clone();
|
|
600
|
+
let directions = [
|
|
601
|
+
("north", 0, -1),
|
|
602
|
+
("south", 0, 1),
|
|
603
|
+
("east", 1, 0),
|
|
604
|
+
("west", -1, 0),
|
|
605
|
+
];
|
|
606
|
+
|
|
607
|
+
let mut connection_states = Vec::new();
|
|
608
|
+
let mut connected_count = 0;
|
|
609
|
+
|
|
610
|
+
for (dir, dx, dz) in directions {
|
|
611
|
+
let side_val = if self.should_connect_redstone(region_name, x, y, z, dx, dz)
|
|
612
|
+
{
|
|
613
|
+
"side"
|
|
614
|
+
} else if self.should_connect_redstone_up(region_name, x, y, z, dx, dz) {
|
|
615
|
+
"up"
|
|
616
|
+
} else {
|
|
617
|
+
"none"
|
|
618
|
+
};
|
|
619
|
+
|
|
620
|
+
if side_val != "none" {
|
|
621
|
+
connected_count += 1;
|
|
622
|
+
}
|
|
623
|
+
connection_states.push((dir, side_val.to_string()));
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
// Fix single connection issue: if only 1 connected, opposite becomes side
|
|
627
|
+
if connected_count == 1 {
|
|
628
|
+
// Find the connected one
|
|
629
|
+
if let Some(idx) =
|
|
630
|
+
connection_states.iter().position(|(_, val)| val != "none")
|
|
631
|
+
{
|
|
632
|
+
// 0=north, 1=south, 2=east, 3=west
|
|
633
|
+
// Opposites: 0<->1, 2<->3
|
|
634
|
+
let opposite_idx = match idx {
|
|
635
|
+
0 => 1,
|
|
636
|
+
1 => 0,
|
|
637
|
+
2 => 3,
|
|
638
|
+
3 => 2,
|
|
639
|
+
_ => unreachable!(),
|
|
640
|
+
};
|
|
641
|
+
|
|
642
|
+
// Force opposite to be "side"
|
|
643
|
+
connection_states[opposite_idx].1 = "side".to_string();
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
for (dir, val) in connection_states {
|
|
648
|
+
new_block.properties.insert(dir.to_string(), val);
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
self.set_block_in_region(region_name, x, y, z, &new_block);
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
fn should_connect_redstone(
|
|
658
|
+
&self,
|
|
659
|
+
region_name: &str,
|
|
660
|
+
x: i32,
|
|
661
|
+
y: i32,
|
|
662
|
+
z: i32,
|
|
663
|
+
dx: i32,
|
|
664
|
+
dz: i32,
|
|
665
|
+
) -> bool {
|
|
666
|
+
// Same level
|
|
667
|
+
if let Some(neighbor) = self.get_block_from_region(region_name, x + dx, y, z + dz) {
|
|
668
|
+
if is_redstone_connectable(neighbor) {
|
|
669
|
+
return true;
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
// One level down
|
|
673
|
+
if let Some(neighbor_down) = self.get_block_from_region(region_name, x + dx, y - 1, z + dz)
|
|
674
|
+
{
|
|
675
|
+
if neighbor_down.name == "minecraft:redstone_wire" {
|
|
676
|
+
// Only if the block above neighbor_down is air or non-opaque
|
|
677
|
+
if let Some(above_neighbor_down) =
|
|
678
|
+
self.get_block_from_region(region_name, x + dx, y, z + dz)
|
|
679
|
+
{
|
|
680
|
+
if !is_opaque(above_neighbor_down) {
|
|
681
|
+
return true;
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
false
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
fn should_connect_redstone_up(
|
|
690
|
+
&self,
|
|
691
|
+
region_name: &str,
|
|
692
|
+
x: i32,
|
|
693
|
+
y: i32,
|
|
694
|
+
z: i32,
|
|
695
|
+
dx: i32,
|
|
696
|
+
dz: i32,
|
|
697
|
+
) -> bool {
|
|
698
|
+
// One level up
|
|
699
|
+
// Only if the block above the current wire is not opaque
|
|
700
|
+
if let Some(above_current) = self.get_block_from_region(region_name, x, y + 1, z) {
|
|
701
|
+
if is_opaque(above_current) {
|
|
702
|
+
return false;
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
if let Some(neighbor_up) = self.get_block_from_region(region_name, x + dx, y + 1, z + dz) {
|
|
707
|
+
if neighbor_up.name == "minecraft:redstone_wire" {
|
|
708
|
+
return true;
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
false
|
|
712
|
+
}
|
|
713
|
+
|
|
570
714
|
pub fn get_merged_region(&self) -> Region {
|
|
571
715
|
let mut merged_region = self.default_region.clone();
|
|
572
716
|
|
|
@@ -1958,6 +2102,40 @@ impl UniversalSchematic {
|
|
|
1958
2102
|
}
|
|
1959
2103
|
}
|
|
1960
2104
|
|
|
2105
|
+
pub fn is_redstone_connectable(block: &BlockState) -> bool {
|
|
2106
|
+
let name = block.name.as_str();
|
|
2107
|
+
name == "minecraft:redstone_wire"
|
|
2108
|
+
|| name == "minecraft:repeater"
|
|
2109
|
+
|| name == "minecraft:comparator"
|
|
2110
|
+
|| name == "minecraft:observer"
|
|
2111
|
+
|| name == "minecraft:target"
|
|
2112
|
+
}
|
|
2113
|
+
|
|
2114
|
+
pub fn is_opaque(block: &BlockState) -> bool {
|
|
2115
|
+
let name = block.name.as_str();
|
|
2116
|
+
// Simplified opaque check - most common non-opaque blocks
|
|
2117
|
+
!(name == "minecraft:air"
|
|
2118
|
+
|| name == "minecraft:cave_air"
|
|
2119
|
+
|| name == "minecraft:void_air"
|
|
2120
|
+
|| name.contains("glass")
|
|
2121
|
+
|| name.contains("slab")
|
|
2122
|
+
|| name.contains("stairs")
|
|
2123
|
+
|| name.contains("fence")
|
|
2124
|
+
|| name.contains("wall")
|
|
2125
|
+
|| name.contains("iron_bars")
|
|
2126
|
+
|| name.contains("door")
|
|
2127
|
+
|| name.contains("trapdoor")
|
|
2128
|
+
|| name.contains("torch")
|
|
2129
|
+
|| name.contains("button")
|
|
2130
|
+
|| name.contains("pressure_plate")
|
|
2131
|
+
|| name.contains("sign")
|
|
2132
|
+
|| name == "minecraft:redstone_wire"
|
|
2133
|
+
|| name == "minecraft:repeater"
|
|
2134
|
+
|| name == "minecraft:comparator"
|
|
2135
|
+
|| name == "minecraft:lever"
|
|
2136
|
+
|| name == "minecraft:hopper")
|
|
2137
|
+
}
|
|
2138
|
+
|
|
1961
2139
|
#[cfg(test)]
|
|
1962
2140
|
mod tests {
|
|
1963
2141
|
use super::*;
|
|
Binary file
|