From 1a5ba7ff3d0da904f46764ca3e93502a8ada1198 Mon Sep 17 00:00:00 2001 From: Alwinfy <20421383+Alwinfy@users.noreply.github.com> Date: Sat, 18 Feb 2023 21:21:12 -0500 Subject: [PATCH] Update the pattern fetching code, it's badly out of date --- doc/collate_data.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/doc/collate_data.py b/doc/collate_data.py index 2a54f12f..e29f9574 100755 --- a/doc/collate_data.py +++ b/doc/collate_data.py @@ -67,6 +67,7 @@ types = { keys = { "use": "Right Click", "sneak": "Left Shift", + "jump": "Space", } bind1 = (lambda: None).__get__(0).__class__ @@ -192,18 +193,27 @@ def do_format(root_data, obj, *names): def identity(x): return x -pattern_pat = re.compile(r'HexPattern\.fromAngles\("([qweasd]+)", HexDir\.(\w+)\),\s*modLoc\("([^"]+)"\)([^;]*true\);)?') -pattern_stubs = [(None, "at/petrak/hexcasting/interop/pehkui/PehkuiInterop.java"), (None, "at/petrak/hexcasting/common/casting/RegisterPatterns.java"), ("Fabric", "at/petrak/hexcasting/fabric/interop/gravity/GravityApiInterop.java")] +pattern_pat = re.compile(r'make\(\s*"([a-zA-Z0-9_\/]+)",\s*(?:new )?ActionRegistryEntry\(\s*HexPattern\.fromAngles\(\s*"([aqwed]+)",\s*HexDir.(\w+)\),') +pattern_stubs = [(None, "at/petrak/hexcasting/common/lib/hex/HexActions.java"), ("Fabric", "at/petrak/hexcasting/fabric/FabricHexInitializer.kt")] +great_world_stubs = [("Fabric", "data/hexcasting/tags/action/per_world_pattern.json")] def fetch_patterns(root_data): registry = {} + great_names = set() + for loader, stub in great_world_stubs: + filename = f"{root_data['resource_dir'].replace('/main/', '/generated/')}/{stub}" + if loader: filename = filename.replace("Common", loader) + tag = slurp(filename) + for val in tag["values"]: + great_names.add(val.replace("hexcasting:", "")) for loader, stub in pattern_stubs: filename = f"{root_data['resource_dir']}/../java/{stub}" if loader: filename = filename.replace("Common", loader) with open(filename, "r") as fh: pattern_data = fh.read() for mobj in re.finditer(pattern_pat, pattern_data): - string, start_angle, name, is_per_world = mobj.groups() - registry[root_data["modid"] + ":" + name] = (string, start_angle, bool(is_per_world)) + name, string, start_angle = mobj.groups() + registry[root_data["modid"] + ":" + name] = (string, start_angle, name in great_names) + print(registry) return registry def resolve_pattern(root_data, page):