diff options
Diffstat (limited to 'codegen')
| -rwxr-xr-x | codegen/genregistries.py | 6 | ||||
| -rwxr-xr-x | codegen/lib/extract.py | 34 | ||||
| -rwxr-xr-x | codegen/migrate.py | 4 |
3 files changed, 26 insertions, 18 deletions
diff --git a/codegen/genregistries.py b/codegen/genregistries.py index 01e84cb3..b867903b 100755 --- a/codegen/genregistries.py +++ b/codegen/genregistries.py @@ -15,9 +15,9 @@ def generate(version_id: str): lib.code.inventory.update_menus(registries['minecraft:menu']['entries']) - block_tags = lib.extract.get_registry_tags(version_id, 'blocks') - item_tags = lib.extract.get_registry_tags(version_id, 'items') - fluid_tags = lib.extract.get_registry_tags(version_id, 'fluids') + block_tags = lib.extract.get_registry_tags(version_id, 'block') + item_tags = lib.extract.get_registry_tags(version_id, 'item') + fluid_tags = lib.extract.get_registry_tags(version_id, 'fluid') lib.code.tags.generate_tags(block_tags, 'blocks', 'Block') lib.code.tags.generate_tags(item_tags, 'items', 'Item') diff --git a/codegen/lib/extract.py b/codegen/lib/extract.py index d3bd46d3..da69b753 100755 --- a/codegen/lib/extract.py +++ b/codegen/lib/extract.py @@ -1,8 +1,8 @@ # Extracting data from the Minecraft jars from typing import TYPE_CHECKING -from lib.download import get_server_jar, get_burger, get_client_jar, get_pixlyzer, get_yarn_data, get_fabric_api_versions, get_fabric_loader_versions -from lib.utils import get_dir_location +from lib.download import get_mappings_for_version, get_server_jar, get_burger, get_client_jar, get_pixlyzer, get_yarn_data, get_fabric_api_versions, get_fabric_loader_versions +from lib.utils import get_dir_location, to_camel_case, upper_first_letter from zipfile import ZipFile import subprocess import requests @@ -281,14 +281,22 @@ def get_en_us_lang(version_id: str): # this is very much not ideal. if TYPE_CHECKING: from codegen.lib.mappings import Mappings -def get_packet_list(burger_data, mappings: 'Mappings'): - packet_list = list(burger_data[0]['packets']['packet'].values()) - - current_packet_id = 0 - for packet in packet_list: - if packet['id'] == -1: - packet['id'] = current_packet_id - print(packet) - current_packet_id += 1 - - return packet_list +def get_packet_list(version_id: str): + if version_id != '1.21': + return [] + + generate_data_from_server_jar(version_id) + with open(get_dir_location(f'__cache__/generated-{version_id}/reports/packets.json'), 'r') as f: + packets_report = json.load(f) + packet_list = [] + for state, state_value in packets_report.items(): + for direction, direction_value in state_value.items(): + for packet_resourcelocation, packet_value in direction_value.items(): + assert packet_resourcelocation.startswith('minecraft:') + packet_resourcelocation = upper_first_letter(to_camel_case(packet_resourcelocation[len('minecraft:'):])) + packet_list.append({ + 'state': state, + 'direction': direction, + 'name': packet_resourcelocation, + 'id': packet_value['protocol_id'] + }) diff --git a/codegen/migrate.py b/codegen/migrate.py index 2be85643..b390ce40 100755 --- a/codegen/migrate.py +++ b/codegen/migrate.py @@ -31,8 +31,8 @@ new_version_id = sys.argv[1] new_mappings = lib.download.get_mappings_for_version(new_version_id) new_burger_data = lib.extract.get_burger_data_for_version(new_version_id) -old_packet_list = lib.extract.get_packet_list(old_burger_data, old_mappings) -new_packet_list = lib.extract.get_packet_list(new_burger_data, new_mappings) +old_packet_list = lib.extract.get_packet_list(old_version_id) +new_packet_list = lib.extract.get_packet_list(new_version_id) # old_packets: dict[PacketIdentifier, str] = {} |
