summaryrefslogtreecommitdiff
path: root/scripts/content_tools/skel_tool.py
diff options
context:
space:
mode:
authorBrad Kittenbrink <brad@lindenlab.com>2022-11-28 14:33:27 -0800
committerBrad Kittenbrink <brad@lindenlab.com>2022-11-28 14:33:27 -0800
commit0b188ac04ecdb1d620a427eacbf5fc089e0accc8 (patch)
tree76f6afe9424d79bab8d30060d49aec3166d96ec8 /scripts/content_tools/skel_tool.py
parente9cd2b320ea2ecaab88e4904f7c81746ea617fea (diff)
parentc8f08f232a28f4e08b4acf525f0d316a101a0e27 (diff)
Merge remote-tracking branch 'origin/main' into DRTVWR-528
Diffstat (limited to 'scripts/content_tools/skel_tool.py')
-rw-r--r--scripts/content_tools/skel_tool.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/scripts/content_tools/skel_tool.py b/scripts/content_tools/skel_tool.py
index 449ecd6a6c..696e4e2923 100644
--- a/scripts/content_tools/skel_tool.py
+++ b/scripts/content_tools/skel_tool.py
@@ -72,6 +72,22 @@ def check_symmetry(name, field, vec1, vec2):
if vec1[2] != vec2[2]:
print(name,field,"z match fail")
+def enforce_alias_rules(tree, element, fix=False):
+ if element.tag != "bone":
+ return
+ alias_lis = []
+ aliases = element.get("aliases")
+ if aliases:
+ alias_lis = aliases.split(" ")
+ name = element.get("name")
+ if name:
+ std_alias = "avatar_" + name
+ if not std_alias in alias_lis:
+ print "missing expected alias",name,std_alias
+ for alias in alias_lis:
+ if alias.startswith("avatar_") and alias != std_alias:
+ print "invalid avatar_ alias",name,alias
+
def enforce_symmetry(tree, element, field, fix=False):
name = element.get("name")
if not name:
@@ -209,6 +225,7 @@ def validate_skel_tree(tree, ogtree, reftree, fix=False):
unfixable += 1
fix_name(element)
+ enforce_alias_rules(tree, element, fix)
enforce_precision_rules(element)
for field in ["pos","pivot"]:
enforce_symmetry(tree, element, field, fix)