structura-core 0.1.0__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 (31) hide show
  1. structura_core-0.1.0/PKG-INFO +37 -0
  2. structura_core-0.1.0/README.md +24 -0
  3. structura_core-0.1.0/pyproject.toml +41 -0
  4. structura_core-0.1.0/setup.cfg +4 -0
  5. structura_core-0.1.0/src/structura_core/__init__.py +6 -0
  6. structura_core-0.1.0/src/structura_core/analyze.py +649 -0
  7. structura_core-0.1.0/src/structura_core/biome_tags.py +60 -0
  8. structura_core-0.1.0/src/structura_core/check_doors.py +78 -0
  9. structura_core-0.1.0/src/structura_core/check_leaks.py +60 -0
  10. structura_core-0.1.0/src/structura_core/chest_loot.py +99 -0
  11. structura_core-0.1.0/src/structura_core/convert_legacy.py +401 -0
  12. structura_core-0.1.0/src/structura_core/debug_interior_air.py +58 -0
  13. structura_core-0.1.0/src/structura_core/default_loot.py +83 -0
  14. structura_core-0.1.0/src/structura_core/dome_doors.py +141 -0
  15. structura_core-0.1.0/src/structura_core/envelope.py +364 -0
  16. structura_core-0.1.0/src/structura_core/export_schematic.py +86 -0
  17. structura_core-0.1.0/src/structura_core/house_pool.py +39 -0
  18. structura_core-0.1.0/src/structura_core/largest_component.py +130 -0
  19. structura_core-0.1.0/src/structura_core/loot_tables.py +39 -0
  20. structura_core-0.1.0/src/structura_core/nbt.py +206 -0
  21. structura_core-0.1.0/src/structura_core/processor_list.py +108 -0
  22. structura_core-0.1.0/src/structura_core/terrain_pod.py +625 -0
  23. structura_core-0.1.0/src/structura_core/version.py +5 -0
  24. structura_core-0.1.0/src/structura_core/voxel.py +18 -0
  25. structura_core-0.1.0/src/structura_core/worldgen.py +77 -0
  26. structura_core-0.1.0/src/structura_core.egg-info/PKG-INFO +37 -0
  27. structura_core-0.1.0/src/structura_core.egg-info/SOURCES.txt +29 -0
  28. structura_core-0.1.0/src/structura_core.egg-info/dependency_links.txt +1 -0
  29. structura_core-0.1.0/src/structura_core.egg-info/entry_points.txt +16 -0
  30. structura_core-0.1.0/src/structura_core.egg-info/requires.txt +6 -0
  31. structura_core-0.1.0/src/structura_core.egg-info/top_level.txt +1 -0
@@ -0,0 +1,37 @@
1
+ Metadata-Version: 2.4
2
+ Name: structura-core
3
+ Version: 0.1.0
4
+ Summary: Validated Minecraft Structure NBT, voxel geometry and worldgen tooling
5
+ Project-URL: Repository, https://github.com/kirimba1024/structura-core
6
+ Requires-Python: >=3.9
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: amulet-nbt<3,>=2.1
9
+ Requires-Dist: numpy<3,>=1.26
10
+ Requires-Dist: scipy<2,>=1.13
11
+ Provides-Extra: legacy
12
+ Requires-Dist: amulet-core<2,>=1.9; extra == "legacy"
13
+
14
+ # structura-core
15
+
16
+ Reusable Minecraft Java 1.21.1 structure-processing core. It owns:
17
+
18
+ - validated Java Structure NBT I/O;
19
+ - legacy schematic conversion and numeric analysis;
20
+ - NumPy/SciPy envelope, terrain-pod and foundation geometry;
21
+ - loot, template-pool and worldgen JSON generators.
22
+
23
+ The library targets Minecraft Java 1.21.1 by default. Version constants live
24
+ in `structura_core.version`; callers can still pass an explicit Amulet
25
+ translation target to the legacy converter.
26
+
27
+ ```bash
28
+ pip install -e '.[legacy]'
29
+ structura-analyze path/to/structure.nbt --json
30
+ ```
31
+
32
+ The `legacy` extra is only needed for `.schematic` conversion and Sponge
33
+ `.schem` export. Normal Structure NBT processing stays independent of
34
+ `amulet-core`.
35
+
36
+ Generated additions may replace explicit air, but never overwrite source
37
+ solid blocks. Every saved position is bounds-checked.
@@ -0,0 +1,24 @@
1
+ # structura-core
2
+
3
+ Reusable Minecraft Java 1.21.1 structure-processing core. It owns:
4
+
5
+ - validated Java Structure NBT I/O;
6
+ - legacy schematic conversion and numeric analysis;
7
+ - NumPy/SciPy envelope, terrain-pod and foundation geometry;
8
+ - loot, template-pool and worldgen JSON generators.
9
+
10
+ The library targets Minecraft Java 1.21.1 by default. Version constants live
11
+ in `structura_core.version`; callers can still pass an explicit Amulet
12
+ translation target to the legacy converter.
13
+
14
+ ```bash
15
+ pip install -e '.[legacy]'
16
+ structura-analyze path/to/structure.nbt --json
17
+ ```
18
+
19
+ The `legacy` extra is only needed for `.schematic` conversion and Sponge
20
+ `.schem` export. Normal Structure NBT processing stays independent of
21
+ `amulet-core`.
22
+
23
+ Generated additions may replace explicit air, but never overwrite source
24
+ solid blocks. Every saved position is bounds-checked.
@@ -0,0 +1,41 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "structura-core"
7
+ version = "0.1.0"
8
+ description = "Validated Minecraft Structure NBT, voxel geometry and worldgen tooling"
9
+ readme = "README.md"
10
+ requires-python = ">=3.9"
11
+ dependencies = [
12
+ "amulet-nbt>=2.1,<3",
13
+ "numpy>=1.26,<3",
14
+ "scipy>=1.13,<2",
15
+ ]
16
+
17
+ [project.optional-dependencies]
18
+ legacy = ["amulet-core>=1.9,<2"]
19
+
20
+ [project.scripts]
21
+ structura-analyze = "structura_core.analyze:main"
22
+ structura-convert-legacy = "structura_core.convert_legacy:main"
23
+ structura-envelope = "structura_core.envelope:main"
24
+ structura-terrain-pod = "structura_core.terrain_pod:main"
25
+ structura-add-chest-loot = "structura_core.chest_loot:main"
26
+ structura-add-default-loot = "structura_core.default_loot:main"
27
+ structura-build-loot-tables = "structura_core.loot_tables:main"
28
+ structura-build-biome-tags = "structura_core.biome_tags:main"
29
+ structura-build-processor-list = "structura_core.processor_list:main"
30
+ structura-build-worldgen = "structura_core.worldgen:main"
31
+ structura-add-dome-doors = "structura_core.dome_doors:main"
32
+ structura-export-schematic = "structura_core.export_schematic:main"
33
+ structura-check-doors = "structura_core.check_doors:main"
34
+ structura-check-leaks = "structura_core.check_leaks:main"
35
+ structura-debug-interior-air = "structura_core.debug_interior_air:main"
36
+
37
+ [tool.setuptools.packages.find]
38
+ where = ["src"]
39
+
40
+ [project.urls]
41
+ Repository = "https://github.com/kirimba1024/structura-core"
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,6 @@
1
+ """Reusable Minecraft structure processing primitives."""
2
+
3
+ from .nbt import AIR_NAMES, Structure, parse_state, save_structure, state_key
4
+
5
+ __all__ = ["AIR_NAMES", "Structure", "parse_state", "save_structure", "state_key"]
6
+ __version__ = "0.1.0"