nucleation 0.1.140__tar.gz → 0.1.141__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.
Files changed (471) hide show
  1. {nucleation-0.1.140 → nucleation-0.1.141}/Cargo.lock +3 -3
  2. {nucleation-0.1.140 → nucleation-0.1.141}/Cargo.toml +2 -2
  3. {nucleation-0.1.140 → nucleation-0.1.141}/PKG-INFO +1 -1
  4. {nucleation-0.1.140 → nucleation-0.1.141}/pyproject.toml +1 -1
  5. nucleation-0.1.141/release-artifacts/libnucleation-macos-arm64.dylib +0 -0
  6. nucleation-0.1.141/release-artifacts/libnucleation-macos-x64.dylib +0 -0
  7. {nucleation-0.1.140 → nucleation-0.1.141}/release-artifacts/libnucleation.rlib +0 -0
  8. {nucleation-0.1.140 → nucleation-0.1.141}/release-artifacts/nucleation_bg.wasm +0 -0
  9. {nucleation-0.1.140 → nucleation-0.1.141}/release-artifacts/package.json +1 -1
  10. nucleation-0.1.141/simple_cube.litematic +0 -0
  11. {nucleation-0.1.140 → nucleation-0.1.141}/src/formats/litematic.rs +3 -3
  12. {nucleation-0.1.140 → nucleation-0.1.141}/src/formats/mcstructure.rs +68 -44
  13. {nucleation-0.1.140 → nucleation-0.1.141}/src/formats/schematic.rs +1 -1
  14. {nucleation-0.1.140 → nucleation-0.1.141}/src/region.rs +4 -4
  15. {nucleation-0.1.140 → nucleation-0.1.141}/src/universal_schematic.rs +147 -0
  16. nucleation-0.1.141/test_schematic.schem +0 -0
  17. {nucleation-0.1.140 → nucleation-0.1.141}/tests/integration_tests.rs +3 -4
  18. nucleation-0.1.141/tests/samples/flip-flop.mcstructure +0 -0
  19. {nucleation-0.1.140 → nucleation-0.1.141}/tests/test_region_expansion_bugs.rs +1 -1
  20. nucleation-0.1.140/release-artifacts/libnucleation-macos-arm64.dylib +0 -0
  21. nucleation-0.1.140/release-artifacts/libnucleation-macos-x64.dylib +0 -0
  22. nucleation-0.1.140/simple_cube.litematic +0 -0
  23. nucleation-0.1.140/test_schematic.schem +0 -0
  24. {nucleation-0.1.140 → nucleation-0.1.141}/.DS_Store +0 -0
  25. {nucleation-0.1.140 → nucleation-0.1.141}/.cargo/config.toml +0 -0
  26. {nucleation-0.1.140 → nucleation-0.1.141}/.github/workflows/ci.yml +0 -0
  27. {nucleation-0.1.140 → nucleation-0.1.141}/.gitignore +0 -0
  28. {nucleation-0.1.140 → nucleation-0.1.141}/.idea/.gitignore +0 -0
  29. {nucleation-0.1.140 → nucleation-0.1.141}/.idea/minecraft_schematic_utils.iml +0 -0
  30. {nucleation-0.1.140 → nucleation-0.1.141}/.idea/misc.xml +0 -0
  31. {nucleation-0.1.140 → nucleation-0.1.141}/.idea/modules.xml +0 -0
  32. {nucleation-0.1.140 → nucleation-0.1.141}/.idea/vcs.xml +0 -0
  33. {nucleation-0.1.140 → nucleation-0.1.141}/4bit_adder.litematic +0 -0
  34. {nucleation-0.1.140 → nucleation-0.1.141}/Dockerfile +0 -0
  35. {nucleation-0.1.140 → nucleation-0.1.141}/LICENSE +0 -0
  36. {nucleation-0.1.140 → nucleation-0.1.141}/README.md +0 -0
  37. {nucleation-0.1.140 → nucleation-0.1.141}/WARP.md +0 -0
  38. {nucleation-0.1.140 → nucleation-0.1.141}/benches/performance_test.rs +0 -0
  39. {nucleation-0.1.140 → nucleation-0.1.141}/benches/schematic_bench.rs +0 -0
  40. {nucleation-0.1.140 → nucleation-0.1.141}/build-ffi.sh +0 -0
  41. {nucleation-0.1.140 → nucleation-0.1.141}/build-wasm.sh +0 -0
  42. {nucleation-0.1.140 → nucleation-0.1.141}/docs/README.md +0 -0
  43. {nucleation-0.1.140 → nucleation-0.1.141}/docs/building/README.md +0 -0
  44. {nucleation-0.1.140 → nucleation-0.1.141}/docs/insign-io-integration.md +0 -0
  45. {nucleation-0.1.140 → nucleation-0.1.141}/docs/javascript/README.md +0 -0
  46. {nucleation-0.1.140 → nucleation-0.1.141}/docs/python/README.md +0 -0
  47. {nucleation-0.1.140 → nucleation-0.1.141}/docs/rust/README.md +0 -0
  48. {nucleation-0.1.140 → nucleation-0.1.141}/docs/shared/guide/circuit-api.md +0 -0
  49. {nucleation-0.1.140 → nucleation-0.1.141}/docs/shared/guide/definition-region.md +0 -0
  50. {nucleation-0.1.140 → nucleation-0.1.141}/docs/shared/guide/schematic-builder.md +0 -0
  51. {nucleation-0.1.140 → nucleation-0.1.141}/docs/shared/guide/typed-executor.md +0 -0
  52. {nucleation-0.1.140 → nucleation-0.1.141}/docs/shared/unicode-palette.md +0 -0
  53. {nucleation-0.1.140 → nucleation-0.1.141}/examples/bracket_notation.rs +0 -0
  54. {nucleation-0.1.140 → nucleation-0.1.141}/examples/build_adder.rs +0 -0
  55. {nucleation-0.1.140 → nucleation-0.1.141}/examples/build_test_adder.rs +0 -0
  56. {nucleation-0.1.140 → nucleation-0.1.141}/examples/building_benchmark.rs +0 -0
  57. {nucleation-0.1.140 → nucleation-0.1.141}/examples/check_adder_dims.rs +0 -0
  58. {nucleation-0.1.140 → nucleation-0.1.141}/examples/connect4_battle_setup.rs +0 -0
  59. {nucleation-0.1.140 → nucleation-0.1.141}/examples/create_simple_litematic.rs +0 -0
  60. {nucleation-0.1.140 → nucleation-0.1.141}/examples/custom_io_signals.rs +0 -0
  61. {nucleation-0.1.140 → nucleation-0.1.141}/examples/ffi.md +0 -0
  62. {nucleation-0.1.140 → nucleation-0.1.141}/examples/generate_gradient_samples.rs +0 -0
  63. {nucleation-0.1.140 → nucleation-0.1.141}/examples/generate_nice_gradients.rs +0 -0
  64. {nucleation-0.1.140 → nucleation-0.1.141}/examples/generate_solid_color_tests.rs +0 -0
  65. {nucleation-0.1.140 → nucleation-0.1.141}/examples/inspect_blockpedia.rs +0 -0
  66. {nucleation-0.1.140 → nucleation-0.1.141}/examples/python.md +0 -0
  67. {nucleation-0.1.140 → nucleation-0.1.141}/examples/python_benchmark.py +0 -0
  68. {nucleation-0.1.140 → nucleation-0.1.141}/examples/python_simulation.py +0 -0
  69. {nucleation-0.1.140 → nucleation-0.1.141}/examples/rust.md +0 -0
  70. {nucleation-0.1.140 → nucleation-0.1.141}/examples/rust_fluent_api.rs +0 -0
  71. {nucleation-0.1.140 → nucleation-0.1.141}/examples/test_asymmetric_cubes.rs +0 -0
  72. {nucleation-0.1.140 → nucleation-0.1.141}/examples/test_checkerboard.rs +0 -0
  73. {nucleation-0.1.140 → nucleation-0.1.141}/examples/test_unicode_circuit.rs +0 -0
  74. {nucleation-0.1.140 → nucleation-0.1.141}/examples/universal_schematic_overhead.rs +0 -0
  75. {nucleation-0.1.140 → nucleation-0.1.141}/examples/wasm.md +0 -0
  76. {nucleation-0.1.140 → nucleation-0.1.141}/helf_adder.litematic +0 -0
  77. {nucleation-0.1.140 → nucleation-0.1.141}/insign.d.ts +0 -0
  78. {nucleation-0.1.140 → nucleation-0.1.141}/nucleation-stubs.php +0 -0
  79. {nucleation-0.1.140 → nucleation-0.1.141}/nucleation.pyi +0 -0
  80. {nucleation-0.1.140 → nucleation-0.1.141}/output/.DS_Store +0 -0
  81. {nucleation-0.1.140 → nucleation-0.1.141}/output/full_adder.litematic +0 -0
  82. {nucleation-0.1.140 → nucleation-0.1.141}/pre-push.sh +0 -0
  83. {nucleation-0.1.140 → nucleation-0.1.141}/py.typed +0 -0
  84. {nucleation-0.1.140 → nucleation-0.1.141}/release-artifacts/LICENSE +0 -0
  85. {nucleation-0.1.140 → nucleation-0.1.141}/release-artifacts/README.md +0 -0
  86. {nucleation-0.1.140 → nucleation-0.1.141}/release-artifacts/libnucleation.d +0 -0
  87. {nucleation-0.1.140 → nucleation-0.1.141}/release-artifacts/nucleation-cdn-loader.js +0 -0
  88. {nucleation-0.1.140 → nucleation-0.1.141}/release-artifacts/nucleation-original.js +0 -0
  89. {nucleation-0.1.140 → nucleation-0.1.141}/release-artifacts/nucleation.d.ts +19 -19
  90. {nucleation-0.1.140 → nucleation-0.1.141}/release-artifacts/nucleation.js +0 -0
  91. {nucleation-0.1.140 → nucleation-0.1.141}/release-artifacts/nucleation_bg.wasm.d.ts +19 -19
  92. {nucleation-0.1.140 → nucleation-0.1.141}/schematic_builder/generated/d_latch.litematic +0 -0
  93. {nucleation-0.1.140 → nucleation-0.1.141}/schematic_builder/generated/xor.schem +0 -0
  94. {nucleation-0.1.140 → nucleation-0.1.141}/schematic_builder/templates/comparator_subtract_bug1.txt +0 -0
  95. {nucleation-0.1.140 → nucleation-0.1.141}/schematic_builder/templates/comparator_subtract_bug2.txt +0 -0
  96. {nucleation-0.1.140 → nucleation-0.1.141}/schematic_builder/templates/comparator_subtract_simple.txt +0 -0
  97. {nucleation-0.1.140 → nucleation-0.1.141}/schematic_builder/templates/comparator_subtract_with_signs.txt +0 -0
  98. {nucleation-0.1.140 → nucleation-0.1.141}/schematic_builder/templates/d_latch.txt +0 -0
  99. {nucleation-0.1.140 → nucleation-0.1.141}/schematic_builder/templates/failing_case.txt +0 -0
  100. {nucleation-0.1.140 → nucleation-0.1.141}/schematic_builder/templates/full_adder.txt +0 -0
  101. {nucleation-0.1.140 → nucleation-0.1.141}/schematic_builder/templates/xor.txt +0 -0
  102. {nucleation-0.1.140 → nucleation-0.1.141}/scripts/update-stubs.sh +0 -0
  103. {nucleation-0.1.140 → nucleation-0.1.141}/src/bin/schematic-builder.rs +0 -0
  104. {nucleation-0.1.140 → nucleation-0.1.141}/src/block_entity/generic.rs +0 -0
  105. {nucleation-0.1.140 → nucleation-0.1.141}/src/block_entity/mod.rs +0 -0
  106. {nucleation-0.1.140 → nucleation-0.1.141}/src/block_position.rs +0 -0
  107. {nucleation-0.1.140 → nucleation-0.1.141}/src/block_state.rs +0 -0
  108. {nucleation-0.1.140 → nucleation-0.1.141}/src/bounding_box.rs +0 -0
  109. {nucleation-0.1.140 → nucleation-0.1.141}/src/building/brushes.rs +0 -0
  110. {nucleation-0.1.140 → nucleation-0.1.141}/src/building/enums.rs +0 -0
  111. {nucleation-0.1.140 → nucleation-0.1.141}/src/building/mod.rs +0 -0
  112. {nucleation-0.1.140 → nucleation-0.1.141}/src/building/shapes.rs +0 -0
  113. {nucleation-0.1.140 → nucleation-0.1.141}/src/chunk.rs +0 -0
  114. {nucleation-0.1.140 → nucleation-0.1.141}/src/definition_region.rs +0 -0
  115. {nucleation-0.1.140 → nucleation-0.1.141}/src/entity.rs +0 -0
  116. {nucleation-0.1.140 → nucleation-0.1.141}/src/ffi.rs +0 -0
  117. {nucleation-0.1.140 → nucleation-0.1.141}/src/formats/manager.rs +0 -0
  118. {nucleation-0.1.140 → nucleation-0.1.141}/src/formats/mod.rs +0 -0
  119. {nucleation-0.1.140 → nucleation-0.1.141}/src/formats/sponge_schematic_v3.md +0 -0
  120. {nucleation-0.1.140 → nucleation-0.1.141}/src/insign.rs +0 -0
  121. {nucleation-0.1.140 → nucleation-0.1.141}/src/item/mod.rs +0 -0
  122. {nucleation-0.1.140 → nucleation-0.1.141}/src/item/stack.rs +0 -0
  123. {nucleation-0.1.140 → nucleation-0.1.141}/src/lib.rs +0 -0
  124. {nucleation-0.1.140 → nucleation-0.1.141}/src/metadata.rs +0 -0
  125. {nucleation-0.1.140 → nucleation-0.1.141}/src/nbt/mod.rs +0 -0
  126. {nucleation-0.1.140 → nucleation-0.1.141}/src/php.rs +0 -0
  127. {nucleation-0.1.140 → nucleation-0.1.141}/src/print_utils.rs +0 -0
  128. {nucleation-0.1.140 → nucleation-0.1.141}/src/python/building.rs +0 -0
  129. {nucleation-0.1.140 → nucleation-0.1.141}/src/python/circuit_builder.rs +0 -0
  130. {nucleation-0.1.140 → nucleation-0.1.141}/src/python/definition_region.rs +0 -0
  131. {nucleation-0.1.140 → nucleation-0.1.141}/src/python/mod.rs +0 -0
  132. {nucleation-0.1.140 → nucleation-0.1.141}/src/python/schematic.rs +0 -0
  133. {nucleation-0.1.140 → nucleation-0.1.141}/src/python/schematic_builder.rs +0 -0
  134. {nucleation-0.1.140 → nucleation-0.1.141}/src/python/simulation.rs +0 -0
  135. {nucleation-0.1.140 → nucleation-0.1.141}/src/python/typed_executor.rs +0 -0
  136. {nucleation-0.1.140 → nucleation-0.1.141}/src/schematic_builder/palettes.rs +0 -0
  137. {nucleation-0.1.140 → nucleation-0.1.141}/src/schematic_builder.rs +0 -0
  138. {nucleation-0.1.140 → nucleation-0.1.141}/src/simulation/circuit_builder.rs +0 -0
  139. {nucleation-0.1.140 → nucleation-0.1.141}/src/simulation/mchprs_world.rs +0 -0
  140. {nucleation-0.1.140 → nucleation-0.1.141}/src/simulation/mod.rs +0 -0
  141. {nucleation-0.1.140 → nucleation-0.1.141}/src/simulation/tests.rs +0 -0
  142. {nucleation-0.1.140 → nucleation-0.1.141}/src/simulation/truth_table.rs +0 -0
  143. {nucleation-0.1.140 → nucleation-0.1.141}/src/simulation/typed_executor/executor.rs +0 -0
  144. {nucleation-0.1.140 → nucleation-0.1.141}/src/simulation/typed_executor/insign_io.rs +0 -0
  145. {nucleation-0.1.140 → nucleation-0.1.141}/src/simulation/typed_executor/integration_tests.rs +0 -0
  146. {nucleation-0.1.140 → nucleation-0.1.141}/src/simulation/typed_executor/io_layout_builder.rs +0 -0
  147. {nucleation-0.1.140 → nucleation-0.1.141}/src/simulation/typed_executor/io_mapping.rs +0 -0
  148. {nucleation-0.1.140 → nucleation-0.1.141}/src/simulation/typed_executor/io_type.rs +0 -0
  149. {nucleation-0.1.140 → nucleation-0.1.141}/src/simulation/typed_executor/layout_function.rs +0 -0
  150. {nucleation-0.1.140 → nucleation-0.1.141}/src/simulation/typed_executor/mod.rs +0 -0
  151. {nucleation-0.1.140 → nucleation-0.1.141}/src/simulation/typed_executor/sort_strategy.rs +0 -0
  152. {nucleation-0.1.140 → nucleation-0.1.141}/src/simulation/typed_executor/tests.rs +0 -0
  153. {nucleation-0.1.140 → nucleation-0.1.141}/src/simulation/typed_executor/value.rs +0 -0
  154. {nucleation-0.1.140 → nucleation-0.1.141}/src/transforms.rs +0 -0
  155. {nucleation-0.1.140 → nucleation-0.1.141}/src/utils/block_string.rs +0 -0
  156. {nucleation-0.1.140 → nucleation-0.1.141}/src/utils/container_spec.rs +0 -0
  157. {nucleation-0.1.140 → nucleation-0.1.141}/src/utils/enhanced_nbt_parser.rs +0 -0
  158. {nucleation-0.1.140 → nucleation-0.1.141}/src/utils/mod.rs +0 -0
  159. {nucleation-0.1.140 → nucleation-0.1.141}/src/wasm/building.rs +0 -0
  160. {nucleation-0.1.140 → nucleation-0.1.141}/src/wasm/circuit_builder.rs +0 -0
  161. {nucleation-0.1.140 → nucleation-0.1.141}/src/wasm/definition_region.rs +0 -0
  162. {nucleation-0.1.140 → nucleation-0.1.141}/src/wasm/mod.rs +0 -0
  163. {nucleation-0.1.140 → nucleation-0.1.141}/src/wasm/palettes.rs +0 -0
  164. {nucleation-0.1.140 → nucleation-0.1.141}/src/wasm/schematic.rs +0 -0
  165. {nucleation-0.1.140 → nucleation-0.1.141}/src/wasm/schematic_builder.rs +0 -0
  166. {nucleation-0.1.140 → nucleation-0.1.141}/src/wasm/simulation.rs +0 -0
  167. {nucleation-0.1.140 → nucleation-0.1.141}/src/wasm/typed_executor.rs +0 -0
  168. {nucleation-0.1.140 → nucleation-0.1.141}/test-wasm.sh +0 -0
  169. {nucleation-0.1.140 → nucleation-0.1.141}/test_adder.litematic +0 -0
  170. {nucleation-0.1.140 → nucleation-0.1.141}/test_circuit.txt +0 -0
  171. {nucleation-0.1.140 → nucleation-0.1.141}/test_cli_output.litematic +0 -0
  172. {nucleation-0.1.140 → nucleation-0.1.141}/test_count_format.schem +0 -0
  173. {nucleation-0.1.140 → nucleation-0.1.141}/test_enhanced.schem +0 -0
  174. {nucleation-0.1.140 → nucleation-0.1.141}/test_fixed.schem +0 -0
  175. {nucleation-0.1.140 → nucleation-0.1.141}/tests/.DS_Store +0 -0
  176. {nucleation-0.1.140 → nucleation-0.1.141}/tests/barrel_nbt_test.rs +0 -0
  177. {nucleation-0.1.140 → nucleation-0.1.141}/tests/building_tests.rs +0 -0
  178. {nucleation-0.1.140 → nucleation-0.1.141}/tests/connect4_test.js +0 -0
  179. {nucleation-0.1.140 → nucleation-0.1.141}/tests/debug_flip.rs +0 -0
  180. {nucleation-0.1.140 → nucleation-0.1.141}/tests/definition_regions_test.rs +0 -0
  181. {nucleation-0.1.140 → nucleation-0.1.141}/tests/executor_config_test.js +0 -0
  182. {nucleation-0.1.140 → nucleation-0.1.141}/tests/mchprs_state_test.rs +0 -0
  183. {nucleation-0.1.140 → nucleation-0.1.141}/tests/mcstructure_tests.rs +0 -0
  184. {nucleation-0.1.140 → nucleation-0.1.141}/tests/nbt_parsing_test.rs +0 -0
  185. {nucleation-0.1.140 → nucleation-0.1.141}/tests/node_fluent_api_test.mjs +0 -0
  186. {nucleation-0.1.140 → nucleation-0.1.141}/tests/node_simple_circuit_test.js +0 -0
  187. {nucleation-0.1.140 → nucleation-0.1.141}/tests/node_simple_circuit_test.mjs +0 -0
  188. {nucleation-0.1.140 → nucleation-0.1.141}/tests/node_wasm_test.js +0 -0
  189. {nucleation-0.1.140 → nucleation-0.1.141}/tests/package.json +0 -0
  190. {nucleation-0.1.140 → nucleation-0.1.141}/tests/php-stubs-test.php +0 -0
  191. {nucleation-0.1.140 → nucleation-0.1.141}/tests/property_transformation_demo.rs +0 -0
  192. {nucleation-0.1.140 → nucleation-0.1.141}/tests/python_simple_circuit_test.py +0 -0
  193. {nucleation-0.1.140 → nucleation-0.1.141}/tests/python_test.py +0 -0
  194. {nucleation-0.1.140 → nucleation-0.1.141}/tests/registry_tests.rs +0 -0
  195. {nucleation-0.1.140 → nucleation-0.1.141}/tests/reproduce_bug.rs +0 -0
  196. {nucleation-0.1.140 → nucleation-0.1.141}/tests/rust_fluent_api_test.rs +0 -0
  197. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/16-bit_divider.mcstructure +0 -0
  198. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/1x1.litematic +0 -0
  199. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/3x2x3.litematic +0 -0
  200. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/3x3.litematic +0 -0
  201. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/4x2x4.litematic +0 -0
  202. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/4x4x4+1.litematic +0 -0
  203. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/8-bit_alu.mcstructure +0 -0
  204. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/Evaluator.schem +0 -0
  205. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/all_items.litematic +0 -0
  206. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/and.schem +0 -0
  207. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/brewer.litematic +0 -0
  208. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/c4_ai_last_played.schem +0 -0
  209. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/c4_ai_left_most.schem +0 -0
  210. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/cutecounter.schem +0 -0
  211. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/door_plot.litematic +0 -0
  212. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/file.litematic.l +0 -0
  213. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/gol.litematic +0 -0
  214. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/large_schematic.schem +0 -0
  215. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/linear_plotter.litematic +0 -0
  216. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/litematic-rose-farm.litematic +0 -0
  217. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/new_chest_test.schem +0 -0
  218. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/quarry.litematic +0 -0
  219. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/sample.litematic +0 -0
  220. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/sample.schem +0 -0
  221. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/spinny.litematic +0 -0
  222. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/ss-sorter.litematic +0 -0
  223. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/storage_thingy.litematic +0 -0
  224. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/test_coordinate_thingy.litematic +0 -0
  225. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/test_cube.schem +0 -0
  226. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/trencher.litematic +0 -0
  227. {nucleation-0.1.140 → nucleation-0.1.141}/tests/samples/wool_palette.litematic +0 -0
  228. {nucleation-0.1.140 → nucleation-0.1.141}/tests/simple_wasm_test.rs +0 -0
  229. {nucleation-0.1.140 → nucleation-0.1.141}/tests/test_barrel_hopper_simulation.rs +0 -0
  230. {nucleation-0.1.140 → nucleation-0.1.141}/tests/test_chunk_bounds_bug.rs +0 -0
  231. {nucleation-0.1.140 → nucleation-0.1.141}/tests/test_comparator_diagonal_bug.rs +0 -0
  232. {nucleation-0.1.140 → nucleation-0.1.141}/tests/test_comparator_subtract_bug.rs +0 -0
  233. {nucleation-0.1.140 → nucleation-0.1.141}/tests/test_comparator_subtract_executor.rs +0 -0
  234. {nucleation-0.1.140 → nucleation-0.1.141}/tests/test_custom_io_adjacent_bug.rs +0 -0
  235. {nucleation-0.1.140 → nucleation-0.1.141}/tests/test_custom_io_no_power_bug.rs +0 -0
  236. {nucleation-0.1.140 → nucleation-0.1.141}/tests/test_intermediate_wire_sync.rs +0 -0
  237. {nucleation-0.1.140 → nucleation-0.1.141}/tests/test_long_wire.rs +0 -0
  238. {nucleation-0.1.140 → nucleation-0.1.141}/tests/test_nibble_signal_strength.rs +0 -0
  239. {nucleation-0.1.140 → nucleation-0.1.141}/tests/test_repeater_chain_sync.rs +0 -0
  240. {nucleation-0.1.140 → nucleation-0.1.141}/tests/test_repeater_custom_io_bug.rs +0 -0
  241. {nucleation-0.1.140 → nucleation-0.1.141}/tests/test_simulation_with_tight_bounds.rs +0 -0
  242. {nucleation-0.1.140 → nucleation-0.1.141}/tests/test_two_inputs_exact_topology.rs +0 -0
  243. {nucleation-0.1.140 → nucleation-0.1.141}/tests/test_two_inputs_no_output_bug.rs +0 -0
  244. {nucleation-0.1.140 → nucleation-0.1.141}/tests/test_typed_executor_sync_output_bug.rs +0 -0
  245. {nucleation-0.1.140 → nucleation-0.1.141}/tests/transformation_tests.rs +0 -0
  246. {nucleation-0.1.140 → nucleation-0.1.141}/tests/wasm_node_tests.rs +0 -0
  247. {nucleation-0.1.140 → nucleation-0.1.141}/tests/wasm_tests.rs +0 -0
  248. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/bun.lockb +0 -0
  249. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/index.html +0 -0
  250. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/index.js +0 -0
  251. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/minecraft_schematic_utils.js +0 -0
  252. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/minecraft_schematic_utils_bg.wasm +0 -0
  253. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/LICENSE +0 -0
  254. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/README.md +0 -0
  255. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/assert/strict.d.ts +0 -0
  256. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/assert.d.ts +0 -0
  257. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/async_hooks.d.ts +0 -0
  258. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/buffer.d.ts +0 -0
  259. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/child_process.d.ts +0 -0
  260. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/cluster.d.ts +0 -0
  261. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/console.d.ts +0 -0
  262. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/constants.d.ts +0 -0
  263. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/crypto.d.ts +0 -0
  264. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/dgram.d.ts +0 -0
  265. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/diagnostics_channel.d.ts +0 -0
  266. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/dns/promises.d.ts +0 -0
  267. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/dns.d.ts +0 -0
  268. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/dom-events.d.ts +0 -0
  269. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/domain.d.ts +0 -0
  270. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/events.d.ts +0 -0
  271. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/fs/promises.d.ts +0 -0
  272. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/fs.d.ts +0 -0
  273. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/globals.d.ts +0 -0
  274. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/globals.global.d.ts +0 -0
  275. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/http.d.ts +0 -0
  276. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/http2.d.ts +0 -0
  277. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/https.d.ts +0 -0
  278. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/index.d.ts +0 -0
  279. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/inspector.d.ts +0 -0
  280. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/module.d.ts +0 -0
  281. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/net.d.ts +0 -0
  282. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/os.d.ts +0 -0
  283. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/package.json +0 -0
  284. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/path.d.ts +0 -0
  285. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/perf_hooks.d.ts +0 -0
  286. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/process.d.ts +0 -0
  287. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/punycode.d.ts +0 -0
  288. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/querystring.d.ts +0 -0
  289. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/readline/promises.d.ts +0 -0
  290. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/readline.d.ts +0 -0
  291. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/repl.d.ts +0 -0
  292. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/sea.d.ts +0 -0
  293. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/stream/consumers.d.ts +0 -0
  294. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/stream/promises.d.ts +0 -0
  295. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/stream/web.d.ts +0 -0
  296. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/stream.d.ts +0 -0
  297. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/string_decoder.d.ts +0 -0
  298. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/test.d.ts +0 -0
  299. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/timers/promises.d.ts +0 -0
  300. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/timers.d.ts +0 -0
  301. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/tls.d.ts +0 -0
  302. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/trace_events.d.ts +0 -0
  303. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/tty.d.ts +0 -0
  304. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/url.d.ts +0 -0
  305. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/util.d.ts +0 -0
  306. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/v8.d.ts +0 -0
  307. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/vm.d.ts +0 -0
  308. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/wasi.d.ts +0 -0
  309. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/worker_threads.d.ts +0 -0
  310. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/node/zlib.d.ts +0 -0
  311. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/LICENSE +0 -0
  312. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/README.md +0 -0
  313. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/index.d.mts +0 -0
  314. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/index.d.ts +0 -0
  315. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/LICENSE +0 -0
  316. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/README.md +0 -0
  317. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/assert/strict.d.ts +0 -0
  318. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/assert.d.ts +0 -0
  319. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/async_hooks.d.ts +0 -0
  320. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/buffer.d.ts +0 -0
  321. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/child_process.d.ts +0 -0
  322. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/cluster.d.ts +0 -0
  323. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/console.d.ts +0 -0
  324. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/constants.d.ts +0 -0
  325. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/crypto.d.ts +0 -0
  326. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/dgram.d.ts +0 -0
  327. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/diagnostics_channel.d.ts +0 -0
  328. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/dns/promises.d.ts +0 -0
  329. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/dns.d.ts +0 -0
  330. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/dom-events.d.ts +0 -0
  331. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/domain.d.ts +0 -0
  332. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/events.d.ts +0 -0
  333. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/fs/promises.d.ts +0 -0
  334. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/fs.d.ts +0 -0
  335. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/globals.d.ts +0 -0
  336. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/globals.global.d.ts +0 -0
  337. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/http.d.ts +0 -0
  338. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/http2.d.ts +0 -0
  339. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/https.d.ts +0 -0
  340. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/index.d.ts +0 -0
  341. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/inspector.d.ts +0 -0
  342. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/module.d.ts +0 -0
  343. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/net.d.ts +0 -0
  344. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/LICENSE +0 -0
  345. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/README.md +0 -0
  346. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/agent.d.ts +0 -0
  347. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/api.d.ts +0 -0
  348. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/balanced-pool.d.ts +0 -0
  349. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/cache.d.ts +0 -0
  350. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/client.d.ts +0 -0
  351. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/connector.d.ts +0 -0
  352. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/content-type.d.ts +0 -0
  353. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/cookies.d.ts +0 -0
  354. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/diagnostics-channel.d.ts +0 -0
  355. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/dispatcher.d.ts +0 -0
  356. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -0
  357. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/errors.d.ts +0 -0
  358. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/eventsource.d.ts +0 -0
  359. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/fetch.d.ts +0 -0
  360. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/file.d.ts +0 -0
  361. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/filereader.d.ts +0 -0
  362. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/formdata.d.ts +0 -0
  363. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/global-dispatcher.d.ts +0 -0
  364. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/global-origin.d.ts +0 -0
  365. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/handlers.d.ts +0 -0
  366. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/header.d.ts +0 -0
  367. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/index.d.ts +0 -0
  368. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/interceptors.d.ts +0 -0
  369. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/mock-agent.d.ts +0 -0
  370. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/mock-client.d.ts +0 -0
  371. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/mock-errors.d.ts +0 -0
  372. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/mock-interceptor.d.ts +0 -0
  373. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/mock-pool.d.ts +0 -0
  374. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/package.json +0 -0
  375. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/patch.d.ts +0 -0
  376. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/pool-stats.d.ts +0 -0
  377. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/pool.d.ts +0 -0
  378. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/proxy-agent.d.ts +0 -0
  379. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/readable.d.ts +0 -0
  380. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/retry-agent.d.ts +0 -0
  381. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/retry-handler.d.ts +0 -0
  382. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/util.d.ts +0 -0
  383. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/webidl.d.ts +0 -0
  384. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/websocket.d.ts +0 -0
  385. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/os.d.ts +0 -0
  386. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/package.json +0 -0
  387. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/path.d.ts +0 -0
  388. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/perf_hooks.d.ts +0 -0
  389. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/process.d.ts +0 -0
  390. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/punycode.d.ts +0 -0
  391. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/querystring.d.ts +0 -0
  392. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/readline/promises.d.ts +0 -0
  393. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/readline.d.ts +0 -0
  394. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/repl.d.ts +0 -0
  395. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/sea.d.ts +0 -0
  396. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/sqlite.d.ts +0 -0
  397. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/stream/consumers.d.ts +0 -0
  398. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/stream/promises.d.ts +0 -0
  399. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/stream/web.d.ts +0 -0
  400. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/stream.d.ts +0 -0
  401. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/string_decoder.d.ts +0 -0
  402. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/test.d.ts +0 -0
  403. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/timers/promises.d.ts +0 -0
  404. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/timers.d.ts +0 -0
  405. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/tls.d.ts +0 -0
  406. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/trace_events.d.ts +0 -0
  407. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/tty.d.ts +0 -0
  408. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/url.d.ts +0 -0
  409. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/util.d.ts +0 -0
  410. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/v8.d.ts +0 -0
  411. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/vm.d.ts +0 -0
  412. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/wasi.d.ts +0 -0
  413. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/worker_threads.d.ts +0 -0
  414. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/node_modules/@types/node/zlib.d.ts +0 -0
  415. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/@types/ws/package.json +0 -0
  416. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/bun-types/README.md +0 -0
  417. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/bun-types/bun.d.ts +0 -0
  418. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/bun-types/deprecated.d.ts +0 -0
  419. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/bun-types/fetch.d.ts +0 -0
  420. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/bun-types/ffi.d.ts +0 -0
  421. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/bun-types/globals.d.ts +0 -0
  422. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/bun-types/html-rewriter.d.ts +0 -0
  423. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/bun-types/index.d.ts +0 -0
  424. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/bun-types/jsc.d.ts +0 -0
  425. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/bun-types/overrides.d.ts +0 -0
  426. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/bun-types/package.json +0 -0
  427. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/bun-types/sqlite.d.ts +0 -0
  428. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/bun-types/test.d.ts +0 -0
  429. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/bun-types/wasm.d.ts +0 -0
  430. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/README.md +0 -0
  431. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/agent.d.ts +0 -0
  432. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/api.d.ts +0 -0
  433. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/balanced-pool.d.ts +0 -0
  434. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/cache.d.ts +0 -0
  435. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/client.d.ts +0 -0
  436. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/connector.d.ts +0 -0
  437. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/content-type.d.ts +0 -0
  438. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/cookies.d.ts +0 -0
  439. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/diagnostics-channel.d.ts +0 -0
  440. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/dispatcher.d.ts +0 -0
  441. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/errors.d.ts +0 -0
  442. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/fetch.d.ts +0 -0
  443. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/file.d.ts +0 -0
  444. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/filereader.d.ts +0 -0
  445. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/formdata.d.ts +0 -0
  446. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/global-dispatcher.d.ts +0 -0
  447. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/global-origin.d.ts +0 -0
  448. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/handlers.d.ts +0 -0
  449. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/header.d.ts +0 -0
  450. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/index.d.ts +0 -0
  451. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/interceptors.d.ts +0 -0
  452. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/mock-agent.d.ts +0 -0
  453. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/mock-client.d.ts +0 -0
  454. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/mock-errors.d.ts +0 -0
  455. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/mock-interceptor.d.ts +0 -0
  456. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/mock-pool.d.ts +0 -0
  457. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/package.json +0 -0
  458. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/patch.d.ts +0 -0
  459. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/pool-stats.d.ts +0 -0
  460. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/pool.d.ts +0 -0
  461. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/proxy-agent.d.ts +0 -0
  462. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/readable.d.ts +0 -0
  463. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/webidl.d.ts +0 -0
  464. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/node_modules/undici-types/websocket.d.ts +0 -0
  465. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/nucleation-web.js +0 -0
  466. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/nucleation-web_bg.wasm +0 -0
  467. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/nucleation.js +0 -0
  468. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/nucleation_bg.js +0 -0
  469. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/nucleation_bg.wasm +0 -0
  470. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/package.json +0 -0
  471. {nucleation-0.1.140 → nucleation-0.1.141}/wasm-test/server.js +0 -0
@@ -234,9 +234,9 @@ dependencies = [
234
234
 
235
235
  [[package]]
236
236
  name = "blockpedia"
237
- version = "0.1.6"
237
+ version = "0.1.7"
238
238
  source = "registry+https://github.com/rust-lang/crates.io-index"
239
- checksum = "9df0036f61590846453a0ed67c3df0b9f57ccb1184b8d91a1995a2e2cc9eaf74"
239
+ checksum = "9fd332d4a740078986617b2989e8d285b8e7b5e113b86732dbfd0fe168a0f878"
240
240
  dependencies = [
241
241
  "anyhow",
242
242
  "console_error_panic_hook",
@@ -1845,7 +1845,7 @@ dependencies = [
1845
1845
 
1846
1846
  [[package]]
1847
1847
  name = "nucleation"
1848
- version = "0.1.140"
1848
+ version = "0.1.141"
1849
1849
  dependencies = [
1850
1850
  "base64",
1851
1851
  "blockpedia",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "nucleation"
3
- version = "0.1.140"
3
+ version = "0.1.141"
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.6", default-features = false, features = ["wasm"] }
47
+ blockpedia = { version = "0.1.7", default-features = false, features = ["wasm"] }
48
48
 
49
49
  tracing-subscriber = { version = "0.3", features = ["env-filter"] }
50
50
  hematite-nbt = "*"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nucleation
3
- Version: 0.1.140
3
+ Version: 0.1.141
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: License :: OSI Approved :: GNU Affero General Public License v3
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "nucleation"
7
- version = "0.1.140"
7
+ version = "0.1.141"
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" }
@@ -5,7 +5,7 @@
5
5
  "Nano nano@schem.at"
6
6
  ],
7
7
  "description": "A high-performance Minecraft schematic parser and utility library",
8
- "version": "0.1.140",
8
+ "version": "0.1.141",
9
9
  "license": "AGPL-3.0-only",
10
10
  "repository": {
11
11
  "type": "git",
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 air = BlockState::new("minecraft:air".to_string());
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 loaded_litematic_data =
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 air = BlockState::new("minecraft:air".to_string());
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());
@@ -120,10 +120,12 @@ pub fn from_mcstructure(data: &[u8]) -> Result<UniversalSchematic, Box<dyn std::
120
120
  for (key, val) in states.iter() {
121
121
  let val_str = match val {
122
122
  NbtValue::Byte(b) => {
123
- if *b != 0 {
123
+ if *b == 1 {
124
124
  "true".to_string()
125
- } else {
125
+ } else if *b == 0 {
126
126
  "false".to_string()
127
+ } else {
128
+ b.to_string()
127
129
  }
128
130
  }
129
131
  NbtValue::Int(i) => i.to_string(),
@@ -150,55 +152,73 @@ pub fn from_mcstructure(data: &[u8]) -> Result<UniversalSchematic, Box<dyn std::
150
152
  }
151
153
  }
152
154
 
153
- // Parse Block Indices
155
+ // Construct Region
156
+ let mut region = Region::new("Main".to_string(), (0, 0, 0), (width, height, length));
157
+
158
+ // Parse Block Indices (Multi-layer support)
154
159
  let block_indices_list = match structure.get("block_indices") {
155
160
  Some(NbtValue::List(l)) => l,
156
161
  _ => return Err("Missing block_indices".into()),
157
162
  };
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
163
 
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
-
191
- if sz == 0 || sy == 0 {
192
- continue;
193
- }
164
+ for layer in block_indices_list {
165
+ let indices: Vec<i32> = match layer {
166
+ NbtValue::List(list) => list
167
+ .iter()
168
+ .filter_map(|t| {
169
+ if let NbtValue::Int(i) = t {
170
+ Some(*i)
171
+ } else {
172
+ None
173
+ }
174
+ })
175
+ .collect(),
176
+ _ => continue,
177
+ };
178
+
179
+ // Set blocks
180
+ // Indices are ZYX order: X outer, Y middle, Z inner
181
+ // index = SZ*SY*X + SZ*Y + Z
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
+
191
+ if sz == 0 || sy == 0 {
192
+ continue;
193
+ }
194
194
 
195
- let x = i / sz / sy;
196
- let y = (i / sz) % sy;
197
- let z = i % sz;
195
+ let x = i / sz / sy;
196
+ let y = (i / sz) % sy;
197
+ let z = i % sz;
198
+
199
+ if palette_idx < palette.len() as i32 {
200
+ let block = palette[palette_idx as usize].clone();
201
+
202
+ // Simple merge logic:
203
+ // If the block is water/lava and we already have a block here,
204
+ // try to set waterlogged=true instead of overwriting.
205
+ if (block.name == "minecraft:water" || block.name == "minecraft:flowing_water")
206
+ && region.get_block(x, y, z).is_some()
207
+ {
208
+ if let Some(existing_block) = region.get_block(x, y, z) {
209
+ if existing_block.name != "minecraft:air" {
210
+ let mut updated_block = existing_block.clone();
211
+ updated_block
212
+ .properties
213
+ .insert("waterlogged".to_string(), "true".to_string());
214
+ region.set_block(x, y, z, &updated_block);
215
+ continue;
216
+ }
217
+ }
218
+ }
198
219
 
199
- if palette_idx < palette.len() as i32 {
200
- let block = palette[palette_idx as usize].clone();
201
- region.set_block(x, y, z, &block);
220
+ region.set_block(x, y, z, &block);
221
+ }
202
222
  }
203
223
  }
204
224
 
@@ -268,6 +288,10 @@ pub fn from_mcstructure(data: &[u8]) -> Result<UniversalSchematic, Box<dyn std::
268
288
 
269
289
  let mut schematic = UniversalSchematic::new("Unnamed".to_string());
270
290
  schematic.add_region(region);
291
+
292
+ // Post-fix redstone connectivity
293
+ schematic.fix_redstone_connectivity();
294
+
271
295
  Ok(schematic)
272
296
  }
273
297
 
@@ -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 mut schematic = from_schematic(&schem_data).expect("Failed to parse schematic");
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 mut region = Region {
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 mut volume1 = region.volume();
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 mut volume2 = region2.volume();
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(&region2);
1737
1737
 
1738
- let mut volume3 = region.volume();
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,119 @@ 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(&region_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
+ for (dir, dx, dz) in directions {
608
+ let side_val = if self.should_connect_redstone(region_name, x, y, z, dx, dz)
609
+ {
610
+ "side"
611
+ } else if self.should_connect_redstone_up(region_name, x, y, z, dx, dz) {
612
+ "up"
613
+ } else {
614
+ "none"
615
+ };
616
+ new_block
617
+ .properties
618
+ .insert(dir.to_string(), side_val.to_string());
619
+ }
620
+ self.set_block_in_region(region_name, x, y, z, &new_block);
621
+ }
622
+ }
623
+ }
624
+ }
625
+
626
+ fn should_connect_redstone(
627
+ &self,
628
+ region_name: &str,
629
+ x: i32,
630
+ y: i32,
631
+ z: i32,
632
+ dx: i32,
633
+ dz: i32,
634
+ ) -> bool {
635
+ // Same level
636
+ if let Some(neighbor) = self.get_block_from_region(region_name, x + dx, y, z + dz) {
637
+ if is_redstone_connectable(neighbor) {
638
+ return true;
639
+ }
640
+ }
641
+ // One level down
642
+ if let Some(neighbor_down) = self.get_block_from_region(region_name, x + dx, y - 1, z + dz)
643
+ {
644
+ if neighbor_down.name == "minecraft:redstone_wire" {
645
+ // Only if the block above neighbor_down is air or non-opaque
646
+ if let Some(above_neighbor_down) =
647
+ self.get_block_from_region(region_name, x + dx, y, z + dz)
648
+ {
649
+ if !is_opaque(above_neighbor_down) {
650
+ return true;
651
+ }
652
+ }
653
+ }
654
+ }
655
+ false
656
+ }
657
+
658
+ fn should_connect_redstone_up(
659
+ &self,
660
+ region_name: &str,
661
+ x: i32,
662
+ y: i32,
663
+ z: i32,
664
+ dx: i32,
665
+ dz: i32,
666
+ ) -> bool {
667
+ // One level up
668
+ // Only if the block above the current wire is not opaque
669
+ if let Some(above_current) = self.get_block_from_region(region_name, x, y + 1, z) {
670
+ if is_opaque(above_current) {
671
+ return false;
672
+ }
673
+ }
674
+
675
+ if let Some(neighbor_up) = self.get_block_from_region(region_name, x + dx, y + 1, z + dz) {
676
+ if neighbor_up.name == "minecraft:redstone_wire" {
677
+ return true;
678
+ }
679
+ }
680
+ false
681
+ }
682
+
570
683
  pub fn get_merged_region(&self) -> Region {
571
684
  let mut merged_region = self.default_region.clone();
572
685
 
@@ -1958,6 +2071,40 @@ impl UniversalSchematic {
1958
2071
  }
1959
2072
  }
1960
2073
 
2074
+ pub fn is_redstone_connectable(block: &BlockState) -> bool {
2075
+ let name = block.name.as_str();
2076
+ name == "minecraft:redstone_wire"
2077
+ || name == "minecraft:repeater"
2078
+ || name == "minecraft:comparator"
2079
+ || name == "minecraft:observer"
2080
+ || name == "minecraft:target"
2081
+ }
2082
+
2083
+ pub fn is_opaque(block: &BlockState) -> bool {
2084
+ let name = block.name.as_str();
2085
+ // Simplified opaque check - most common non-opaque blocks
2086
+ !(name == "minecraft:air"
2087
+ || name == "minecraft:cave_air"
2088
+ || name == "minecraft:void_air"
2089
+ || name.contains("glass")
2090
+ || name.contains("slab")
2091
+ || name.contains("stairs")
2092
+ || name.contains("fence")
2093
+ || name.contains("wall")
2094
+ || name.contains("iron_bars")
2095
+ || name.contains("door")
2096
+ || name.contains("trapdoor")
2097
+ || name.contains("torch")
2098
+ || name.contains("button")
2099
+ || name.contains("pressure_plate")
2100
+ || name.contains("sign")
2101
+ || name == "minecraft:redstone_wire"
2102
+ || name == "minecraft:repeater"
2103
+ || name == "minecraft:comparator"
2104
+ || name == "minecraft:lever"
2105
+ || name == "minecraft:hopper")
2106
+ }
2107
+
1961
2108
  #[cfg(test)]
1962
2109
  mod tests {
1963
2110
  use super::*;
Binary file
@@ -15,8 +15,7 @@ fn litematic_to_schem_conversion(name: &str) {
15
15
  fs::read(litematic_path).expect(format!("Failed to read {}", input_path_str).as_str());
16
16
 
17
17
  // Parse the .litematic data into a UniversalSchematic
18
- let mut schematic =
19
- litematic::from_litematic(&litematic_data).expect("Failed to parse litematic");
18
+ let schematic = litematic::from_litematic(&litematic_data).expect("Failed to parse litematic");
20
19
 
21
20
  // let region_blocks = schematic.get_region_from_index(0).unwrap().blocks.clone();
22
21
 
@@ -73,7 +72,7 @@ fn litematic_to_schem_conversion(name: &str) {
73
72
  println!("Successfully converted sample.litematic to .schem format and verified the contents.");
74
73
  }
75
74
 
76
- fn schema_to_litematic_conversion(name: &str) {
75
+ fn _schema_to_litematic_conversion(name: &str) {
77
76
  // Path to the sample .schem file
78
77
  let input_path_str = format!("tests/samples/{}.schem", name);
79
78
  let schem_path = Path::new(&input_path_str);
@@ -130,7 +129,7 @@ fn test_cube_schematic() {
130
129
  }
131
130
 
132
131
  // #[test]
133
- fn time_load_large_schematic() {
132
+ fn _time_load_large_schematic() {
134
133
  let input_path_str = format!("tests/samples/large_schematic.schem");
135
134
  let schem_path = Path::new(&input_path_str);
136
135
  let schem_data =
@@ -1,7 +1,7 @@
1
1
  use nucleation::block_entity::BlockEntity;
2
2
  use nucleation::schematic;
3
3
  use nucleation::{BlockState, Region, UniversalSchematic};
4
- use std::fs;
4
+ // use std::fs;
5
5
 
6
6
  #[test]
7
7
  fn test_basic_dimension_expansion_bug() {
Binary file
Binary file
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes