diff options
| author | mat <27899617+mat-1@users.noreply.github.com> | 2025-12-12 00:56:02 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-12 00:56:02 -0600 |
| commit | f9c25665c203d6377ace62f1e95381d037d8fd9e (patch) | |
| tree | 8b4131d20fe661d3cc1175ec27f801fe61df41ea /codegen/lib/extract.py | |
| parent | 82ad975242292d5875780b4398b62637674bf50a (diff) | |
| download | azalea-drasl-f9c25665c203d6377ace62f1e95381d037d8fd9e.tar.xz | |
Refactor azalea-registry (#294)
* move registries in azalea-registry into separate modules
* rename Item and Block to ItemKind and BlockKind
* remove 'extra' registries from azalea-registry
* hide deprecated items from docs
* use DamageKindKey instead of Identifier when parsing registries
* store tag entries as a Vec instead of a HashSet
* sort tag values by protocol id
* update changelog
Diffstat (limited to 'codegen/lib/extract.py')
| -rw-r--r-- | codegen/lib/extract.py | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/codegen/lib/extract.py b/codegen/lib/extract.py index b575b697..b07e17ba 100644 --- a/codegen/lib/extract.py +++ b/codegen/lib/extract.py @@ -34,7 +34,7 @@ def get_block_states_report(version_id: str): return get_report(version_id, "blocks") -def get_registries_report(version_id: str): +def get_builtin_registries_report(version_id: str): return get_report(version_id, "registries") @@ -73,6 +73,33 @@ def get_registry_tags(version_id: str, name: str): return tags +# note that these are different from "builtin" registries +def get_data_registries(version_id: str): + generate_data_from_server_jar(version_id) + data_registries_dir = get_dir_location( + f"__cache__/generated-{version_id}/data/minecraft" + ) + registries = {} + + def add_entries_in_dir(parent_dir, registry_name): + entries = [] + for variant_dir in os.listdir(os.path.join(parent_dir, registry_name)): + if not variant_dir.endswith(".json"): + continue + entries.append(variant_dir[:-5]) + if len(entries) > 0: + registries[registry_name] = entries + + for registry_name in os.listdir(data_registries_dir): + add_entries_in_dir(data_registries_dir, registry_name) + for registry_name in os.listdir(os.path.join(data_registries_dir, "worldgen")): + if registry_name != "biome": + continue + add_entries_in_dir(data_registries_dir, os.path.join("worldgen", registry_name)) + + return registries + + python_command = None |
