From 3e7bdc148e3bff4ef9e7b3d3b42547b19182fc2e Mon Sep 17 00:00:00 2001 From: Freagarach Date: Fri, 13 Jan 2023 10:29:51 +0000 Subject: [PATCH] Update checkrefs.py after 9bb9ff8b16. Reported by: @Langbart Differential revision: https://code.wildfiregames.com/D4880 Tested by: @Langbart Fixes #6682 This was SVN commit r27436. --- source/tools/entity/checkrefs.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/source/tools/entity/checkrefs.py b/source/tools/entity/checkrefs.py index bc3f6007a3..744b20cf62 100644 --- a/source/tools/entity/checkrefs.py +++ b/source/tools/entity/checkrefs.py @@ -303,9 +303,22 @@ class CheckRefs: cmp_identity = entity.find('Identity') if cmp_identity is not None: - techTag = cmp_identity.find('RequiredTechnology') - if techTag is not None: - self.deps.append((str(fp), f'simulation/data/technologies/{techTag.text}.json')) + reqTag = cmp_identity.find('Requirements') + if reqTag is not None: + def parse_requirements(req, recursionDepth = 1): + techTag = req.find('Techs') + if techTag is not None: + self.deps.append((str(fp), f'simulation/data/technologies/{techTag.text}.json')) + + if recursionDepth > 0: + recursionDepth -= 1 + allReqTag = req.find('All') + if allReqTag is not None: + parse_requirements(allReqTag, recursionDepth) + anyReqTag = req.find('Any') + if anyReqTag is not None: + parse_requirements(anyReqTag, recursionDepth) + parse_requirements(reqTag) cmp_researcher = entity.find('Researcher') if cmp_researcher is not None: