aboutsummaryrefslogtreecommitdiff
path: root/codegen/lib/code/item_components.py
diff options
context:
space:
mode:
authormat <git@matdoes.dev>2025-05-31 08:56:17 +0500
committermat <git@matdoes.dev>2025-05-30 19:22:09 -0845
commitf27c87b291a920376e006a470efb353dee46ed17 (patch)
treef1720081b856c5b7b96ab8111e6de4233f884e75 /codegen/lib/code/item_components.py
parente37524899eef8a0034faee35cef4bbf1ba779a7d (diff)
downloadazalea-drasl-f27c87b291a920376e006a470efb353dee46ed17.tar.xz
more formatting fixes
Diffstat (limited to 'codegen/lib/code/item_components.py')
-rw-r--r--codegen/lib/code/item_components.py126
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()