From f9c25665c203d6377ace62f1e95381d037d8fd9e Mon Sep 17 00:00:00 2001 From: mat <27899617+mat-1@users.noreply.github.com> Date: Fri, 12 Dec 2025 00:56:02 -0600 Subject: 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 --- codegen/lib/extract.py | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'codegen/lib/extract.py') 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 -- cgit v1.2.3