Changeset View
Changeset View
Standalone View
Standalone View
bin/Blueprints/CraftPackageObject.py
Show First 20 Lines • Show All 64 Lines • ▼ Show 20 Line(s) | 50 | if os.path.exists(ini): | |||
---|---|---|---|---|---|
65 | 65 | | |||
66 | compiler = set(CraftCore.settings._parseList(general.get("compiler", ""))) | 66 | compiler = set(CraftCore.settings._parseList(general.get("compiler", ""))) | ||
67 | 67 | | |||
68 | if compiler: | 68 | if compiler: | ||
69 | self.compiler = CraftCore.compiler.Compiler.NoCompiler | 69 | self.compiler = CraftCore.compiler.Compiler.NoCompiler | ||
70 | for c in compiler: | 70 | for c in compiler: | ||
71 | self.compiler |= CraftCore.compiler.Compiler.fromString(c) | 71 | self.compiler |= CraftCore.compiler.Compiler.fromString(c) | ||
72 | self.pathOverride = general.get("pathOverride", None) | 72 | self.pathOverride = general.get("pathOverride", None) | ||
73 | self.forceOverride = general.get("forceOverride", False) | ||||
73 | 74 | | |||
74 | @property | 75 | @property | ||
75 | def isActive(self) -> bool: | 76 | def isActive(self) -> bool: | ||
76 | if not CraftCore.compiler.platform & self.platforms: | 77 | if not CraftCore.compiler.platform & self.platforms: | ||
77 | CraftCore.log.debug(f"{self.localPath}, is not supported on {CraftCore.compiler.platform!r}, supported platforms {self.platforms!r}") | 78 | CraftCore.log.debug(f"{self.localPath}, is not supported on {CraftCore.compiler.platform!r}, supported platforms {self.platforms!r}") | ||
78 | return False | 79 | return False | ||
79 | if not CraftCore.compiler.compiler & self.compiler: | 80 | if not CraftCore.compiler.compiler & self.compiler: | ||
80 | CraftCore.log.debug(f"{self.localPath}, is not supported on {CraftCore.compiler._compiler!r}, supported compiler {self.compiler!r}") | 81 | CraftCore.log.debug(f"{self.localPath}, is not supported on {CraftCore.compiler._compiler!r}, supported compiler {self.compiler!r}") | ||
▲ Show 20 Lines • Show All 177 Lines • ▼ Show 20 Line(s) | 258 | else: | |||
258 | if child.categoryInfo.pathOverride: | 259 | if child.categoryInfo.pathOverride: | ||
259 | # override path | 260 | # override path | ||
260 | existingNode = CraftPackageObject.get(child.categoryInfo.pathOverride) | 261 | existingNode = CraftPackageObject.get(child.categoryInfo.pathOverride) | ||
261 | if not existingNode: | 262 | if not existingNode: | ||
262 | raise BlueprintNotFoundException(child.categoryInfo.pathOverride) | 263 | raise BlueprintNotFoundException(child.categoryInfo.pathOverride) | ||
263 | for nodeName, node in child.children.items(): | 264 | for nodeName, node in child.children.items(): | ||
264 | # reparent the packages | 265 | # reparent the packages | ||
265 | if nodeName in existingNode.children: | 266 | if nodeName in existingNode.children: | ||
266 | if not node.categoryInfo.isActive: | 267 | if not node.categoryInfo.isActive and not node.categoryInfo.forceOverride: | ||
267 | # don't reparent as we would override the actual package | 268 | # don't reparent as we would override the actual package | ||
268 | continue | 269 | continue | ||
269 | else: | 270 | else: | ||
270 | old = existingNode.children[nodeName] | 271 | old = existingNode.children.pop(nodeName) | ||
271 | CraftCore.log.debug(f"Overriding {old.path}({old.filePath}) with {node.path}") | 272 | CraftCore.log.debug(f"Overriding {old.path}({old.filePath}) with {node.path}") | ||
272 | node.parent = existingNode | 273 | node.parent = existingNode | ||
273 | child.parent.children[nodeName] = node | 274 | child.parent.children[nodeName] = node | ||
274 | CraftPackageObject.__regiserNodes(child) | 275 | CraftPackageObject.__regiserNodes(child) | ||
275 | 276 | | |||
276 | @staticmethod | 277 | @staticmethod | ||
277 | def root(): | 278 | def root(): | ||
278 | if not CraftPackageObject.__rootPackage: | 279 | if not CraftPackageObject.__rootPackage: | ||
▲ Show 20 Lines • Show All 116 Lines • Show Last 20 Lines |