diff options
| author | mat <git@matdoes.dev> | 2025-05-31 08:56:17 +0500 |
|---|---|---|
| committer | mat <git@matdoes.dev> | 2025-05-30 19:22:09 -0845 |
| commit | f27c87b291a920376e006a470efb353dee46ed17 (patch) | |
| tree | f1720081b856c5b7b96ab8111e6de4233f884e75 /codegen/lib/code/item_components.py | |
| parent | e37524899eef8a0034faee35cef4bbf1ba779a7d (diff) | |
| download | azalea-drasl-f27c87b291a920376e006a470efb353dee46ed17.tar.xz | |
more formatting fixes
Diffstat (limited to 'codegen/lib/code/item_components.py')
| -rw-r--r-- | codegen/lib/code/item_components.py | 126 |
1 files changed, 65 insertions, 61 deletions
diff --git a/codegen/lib/code/item_components.py b/codegen/lib/code/item_components.py index 3d4bf6a6..ce5d6d82 100644 --- a/codegen/lib/code/item_components.py +++ b/codegen/lib/code/item_components.py @@ -1,15 +1,10 @@ -import lib.code.inventory -import lib.code.registry -import lib.code.version -import lib.code.packet import lib.code.utils -import lib.code.tags -import lib.download import lib.extract import lib.utils -ITEM_COMPONENTS_DIR = 'azalea-inventory/src/components.rs' +ITEM_COMPONENTS_DIR = "azalea-inventory/src/components.rs" + def generate(version_id: str): expected_variants = get_expected_variants(version_id) @@ -25,61 +20,65 @@ def generate(version_id: str): if variant not in expected_variants: removed_variants.append(variant) - print('New variants:') + print("New variants:") for variant in new_variants: - print('-', variant) + print("-", variant) print() - print('Removed variants:') + print("Removed variants:") for variant in removed_variants: - print('-', variant) + print("-", variant) print() for variant in removed_variants: - print(f'Removing {variant}...') + print(f"Removing {variant}...") remove_variant(variant) for variant in new_variants: - print(f'Adding {variant}...') + print(f"Adding {variant}...") add_variant(variant) lib.code.utils.fmt() - print('Done!') + print("Done!") + def get_expected_variants(version_id: str): expected_variants = [] registries = lib.extract.get_registries_report(version_id) - registry = registries['minecraft:data_component_type'] + registry = registries["minecraft:data_component_type"] registry_entries = sorted( - registry['entries'].items(), key=lambda x: x[1]['protocol_id']) + registry["entries"].items(), key=lambda x: x[1]["protocol_id"] + ) for variant_name, _variant in registry_entries: - variant_struct_name = lib.utils.to_camel_case(variant_name.split(':')[-1]) + variant_struct_name = lib.utils.to_camel_case(variant_name.split(":")[-1]) expected_variants.append(variant_struct_name) return expected_variants + def get_actual_variants(): actual_variants = [] - with open(ITEM_COMPONENTS_DIR, 'r') as f: - code = f.read().split('\n') + with open(ITEM_COMPONENTS_DIR, "r") as f: + code = f.read().split("\n") in_match = False for line in code: if in_match: - if line == ' })': + if line == " })": break - variant_line_prefix = ' DataComponentKind::' + variant_line_prefix = " DataComponentKind::" if line.startswith(variant_line_prefix): - variant = line[len(variant_line_prefix):].split(' ', 1)[0] + variant = line[len(variant_line_prefix) :].split(" ", 1)[0] actual_variants.append(variant) - elif line == ' Ok(match kind {': + elif line == " Ok(match kind {": in_match = True return actual_variants + def remove_variant(variant: str): - with open(ITEM_COMPONENTS_DIR, 'r') as f: - code = f.read().split('\n') + with open(ITEM_COMPONENTS_DIR, "r") as f: + code = f.read().split("\n") first_line_with_variant = None line_after_variant = None @@ -87,78 +86,83 @@ def remove_variant(variant: str): in_match = False for i, line in enumerate(list(code)): if in_match: - if line == ' })': + if line == " })": line_after_variant = i break - variant_line_prefix = ' DataComponentKind::' + variant_line_prefix = " DataComponentKind::" if line.startswith(variant_line_prefix): if first_line_with_variant is not None: line_after_variant = i break - variant_name = line[len(variant_line_prefix):].split(' ', 1)[0] + variant_name = line[len(variant_line_prefix) :].split(" ", 1)[0] if variant_name == variant: first_line_with_variant = i - elif line == ' Ok(match kind {': + elif line == " Ok(match kind {": in_match = True - + if first_line_with_variant is None: - raise ValueError(f'Variant {variant} not found') + raise ValueError(f"Variant {variant} not found") if line_after_variant is None: - raise ValueError(f'Couldn\'t find end of variant {variant}') + raise ValueError(f"Couldn't find end of variant {variant}") code = code[:first_line_with_variant] + code[line_after_variant:] # now remove the struct - line_before_struct = None # this is the #[derive] line - line_after_struct = None # impl DataComponent for ... {\n...\n} + line_before_struct = None # this is the #[derive] line + line_after_struct = None # impl DataComponent for ... {\n...\n} for i, line in enumerate(list(code)): - if line == f'pub struct {variant} {{' or line == f'pub struct {variant};': + if line == f"pub struct {variant} {{" or line == f"pub struct {variant};": line_before_struct = i - 1 - elif line == f'impl DataComponent for {variant} {{': + elif line == f"impl DataComponent for {variant} {{": line_after_struct = i + 3 break if line_before_struct is None: - raise ValueError(f'Couldn\'t find struct {variant}') + raise ValueError(f"Couldn't find struct {variant}") if line_after_struct is None: - raise ValueError(f'Couldn\'t find impl DataComponent for {variant}') - + raise ValueError(f"Couldn't find impl DataComponent for {variant}") + code = code[:line_before_struct] + code[line_after_struct:] - with open(ITEM_COMPONENTS_DIR, 'w') as f: - f.write('\n'.join(code)) + with open(ITEM_COMPONENTS_DIR, "w") as f: + f.write("\n".join(code)) + def add_variant(variant: str): - with open(ITEM_COMPONENTS_DIR, 'r') as f: - code = f.read().split('\n') + with open(ITEM_COMPONENTS_DIR, "r") as f: + code = f.read().split("\n") in_match = False last_line_in_match = None for i, line in enumerate(list(code)): if in_match: - if line == ' })': + if line == " })": last_line_in_match = i break - elif line == ' Ok(match kind {': + elif line == " Ok(match kind {": in_match = True if last_line_in_match is None: - raise ValueError('Couldn\'t find end of match') - - code = code[:last_line_in_match] + [ - f' DataComponentKind::{variant} => Box::new({variant}::azalea_read(buf)?),', - ] + code[last_line_in_match:] + raise ValueError("Couldn't find end of match") + + code = ( + code[:last_line_in_match] + + [ + f" DataComponentKind::{variant} => Box::new({variant}::azalea_read(buf)?),", + ] + + code[last_line_in_match:] + ) # now insert the struct - code.append('') - code.append('#[derive(Clone, PartialEq, AzBuf)]') - code.append(f'pub struct {variant} {{') - code.append(' pub todo: todo!(), // see DataComponents.java') - code.append('}') - code.append(f'impl DataComponent for {variant} {{') - code.append(f' const KIND: DataComponentKind = DataComponentKind::{variant};') - code.append('}') - - with open(ITEM_COMPONENTS_DIR, 'w') as f: - f.write('\n'.join(code)) + code.append("") + code.append("#[derive(Clone, PartialEq, AzBuf)]") + code.append(f"pub struct {variant} {{") + code.append(" pub todo: todo!(), // see DataComponents.java") + code.append("}") + code.append(f"impl DataComponent for {variant} {{") + code.append(f" const KIND: DataComponentKind = DataComponentKind::{variant};") + code.append("}") + + with open(ITEM_COMPONENTS_DIR, "w") as f: + f.write("\n".join(code)) lib.code.utils.fmt() |
