aboutsummaryrefslogtreecommitdiff
path: root/codegen/lib/extract.py
diff options
context:
space:
mode:
Diffstat (limited to 'codegen/lib/extract.py')
-rw-r--r--codegen/lib/extract.py29
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