diff options
| author | mat <27899617+mat-1@users.noreply.github.com> | 2022-06-20 06:22:16 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-20 06:22:16 +0000 |
| commit | a1484f66290517b6c36f2e82c92613f23d2c4935 (patch) | |
| tree | f0a590ef6deac0c23c932773354fc4f75903953a /codegen/lib/extract.py | |
| parent | e2553bbaf2a550f4941b924e703a922345a1389f (diff) | |
| parent | 405a00c0d1908a4b3fbd8e6684c77dfb178ac55d (diff) | |
| download | azalea-drasl-a1484f66290517b6c36f2e82c92613f23d2c4935.tar.xz | |
Merge branch 'main' into 1.19.1
Diffstat (limited to 'codegen/lib/extract.py')
| -rw-r--r-- | codegen/lib/extract.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/codegen/lib/extract.py b/codegen/lib/extract.py new file mode 100644 index 00000000..40263779 --- /dev/null +++ b/codegen/lib/extract.py @@ -0,0 +1,44 @@ +# Extracting data from the Minecraft jars + +from lib.download import get_server_jar, get_burger, get_client_jar +from lib.utils import get_dir_location +import json +import os + + +def generate_data_from_server_jar(version_id: str): + if os.path.exists(get_dir_location(f'downloads/generated-{version_id}')): + return + + get_server_jar(version_id) + os.system( + f'cd {get_dir_location(f"downloads")} && java -DbundlerMainClass=net.minecraft.data.Main -jar {get_dir_location(f"downloads/server-{version_id}.jar")} --all --output \"{get_dir_location(f"downloads/generated-{version_id}")}\"' + ) + + +def get_block_states_report(version_id: str): + generate_data_from_server_jar(version_id) + with open(get_dir_location(f'downloads/generated-{version_id}/reports/blocks.json'), 'r') as f: + return json.load(f) + + +def get_block_states_burger(version_id: str): + burger_data = get_burger_data_for_version(version_id) + return burger_data[0]['blocks']['block'] + + +def get_ordered_blocks_burger(version_id: str): + burger_data = get_burger_data_for_version(version_id) + return burger_data[0]['blocks']['ordered_blocks'] + + +def get_burger_data_for_version(version_id: str): + if not os.path.exists(get_dir_location(f'downloads/burger-{version_id}.json')): + get_burger() + get_client_jar(version_id) + + os.system( + f'cd {get_dir_location("downloads/Burger")} && python munch.py ../client-{version_id}.jar --output ../burger-{version_id}.json' + ) + with open(get_dir_location(f'downloads/burger-{version_id}.json'), 'r') as f: + return json.load(f) |
