mirror of
https://github.com/tiennm99/circular-dependency-checker.git
synced 2026-06-06 22:12:17 +00:00
956 lines
35 KiB
Python
956 lines
35 KiB
Python
import os
|
|
import re
|
|
import networkx as nx
|
|
|
|
|
|
def build_class_graph(directory):
|
|
"""Builds a directed acyclic graph of class dependencies."""
|
|
# Create a graph to store the dependencies
|
|
graph = nx.DiGraph()
|
|
|
|
# Find all .gd files in the directory
|
|
for root, dirs, files in os.walk(directory):
|
|
for file in files:
|
|
if not file.endswith(".gd"):
|
|
continue
|
|
|
|
file_path = os.path.join(root, file)
|
|
# Find the class name in the file
|
|
with open(file_path, "r", encoding='utf8') as f:
|
|
contents = f.read()
|
|
match = re.search(r"^class_name\s+(\w+)", contents, re.MULTILINE)
|
|
if not match:
|
|
continue
|
|
|
|
class_name = match.group(1)
|
|
graph.add_node(class_name)
|
|
|
|
# Find the dependencies of the class
|
|
for dep_match in re.finditer(
|
|
r"^\s*extends\s+(\w+)", contents, re.MULTILINE
|
|
):
|
|
dep_name = dep_match.group(1)
|
|
if is_ignored_types(dep_name) or dep_name == class_name:
|
|
continue
|
|
print(dep_name)
|
|
graph.add_edge(class_name, dep_name)
|
|
|
|
for dep_match in re.finditer(
|
|
r"^.*:\s*(\w+).*\n", contents, re.MULTILINE
|
|
):
|
|
dep_name = dep_match.group(1)
|
|
if is_ignored_types(dep_name) or dep_name == class_name:
|
|
continue
|
|
print(dep_name)
|
|
graph.add_edge(class_name, dep_name)
|
|
|
|
for dep_match in re.finditer(
|
|
r"^.*->\s*(\w+).*\n", contents, re.MULTILINE
|
|
):
|
|
dep_name = dep_match.group(1)
|
|
if is_ignored_types(dep_name) or dep_name == class_name:
|
|
continue
|
|
print(dep_name)
|
|
graph.add_edge(class_name, dep_name)
|
|
|
|
for dep_match in re.finditer(
|
|
r"^.*Array\[(\w+)].*\n", contents, re.MULTILINE
|
|
):
|
|
dep_name = dep_match.group(1)
|
|
if is_ignored_types(dep_name) or dep_name == class_name:
|
|
continue
|
|
print(dep_name)
|
|
graph.add_edge(class_name, dep_name)
|
|
return graph
|
|
|
|
|
|
def find_circular_dependencies(directory):
|
|
"""Finds circular dependencies between classes in the directory."""
|
|
graph = build_class_graph(directory)
|
|
|
|
for cycle in nx.simple_cycles(graph):
|
|
print(cycle)
|
|
|
|
|
|
# From https://docs.godotengine.org/en/stable/classes/index.html
|
|
def is_ignored_types(t):
|
|
return t in ["@GDScript",
|
|
"@GlobalScope",
|
|
"Node",
|
|
"AcceptDialog",
|
|
"AnimatableBody2D",
|
|
"AnimatableBody3D",
|
|
"AnimatedSprite2D",
|
|
"AnimatedSprite3D",
|
|
"AnimationPlayer",
|
|
"AnimationTree",
|
|
"Area2D",
|
|
"Area3D",
|
|
"AspectRatioContainer",
|
|
"AudioListener2D",
|
|
"AudioListener3D",
|
|
"AudioStreamPlayer",
|
|
"AudioStreamPlayer2D",
|
|
"AudioStreamPlayer3D",
|
|
"BackBufferCopy",
|
|
"BaseButton",
|
|
"Bone2D",
|
|
"BoneAttachment3D",
|
|
"BoxContainer",
|
|
"Button",
|
|
"Camera2D",
|
|
"Camera3D",
|
|
"CanvasGroup",
|
|
"CanvasItem",
|
|
"CanvasLayer",
|
|
"CanvasModulate",
|
|
"CenterContainer",
|
|
"CharacterBody2D",
|
|
"CharacterBody3D",
|
|
"CheckBox",
|
|
"CheckButton",
|
|
"CodeEdit",
|
|
"CollisionObject2D",
|
|
"CollisionObject3D",
|
|
"CollisionPolygon2D",
|
|
"CollisionPolygon3D",
|
|
"CollisionShape2D",
|
|
"CollisionShape3D",
|
|
"ColorPicker",
|
|
"ColorPickerButton",
|
|
"ColorRect",
|
|
"ConeTwistJoint3D",
|
|
"ConfirmationDialog",
|
|
"Container",
|
|
"Control",
|
|
"CPUParticles2D",
|
|
"CPUParticles3D",
|
|
"CSGBox3D",
|
|
"CSGCombiner3D",
|
|
"CSGCylinder3D",
|
|
"CSGMesh3D",
|
|
"CSGPolygon3D",
|
|
"CSGPrimitive3D",
|
|
"CSGShape3D",
|
|
"CSGSphere3D",
|
|
"CSGTorus3D",
|
|
"DampedSpringJoint2D",
|
|
"Decal",
|
|
"DirectionalLight2D",
|
|
"DirectionalLight3D",
|
|
"EditorCommandPalette",
|
|
"EditorFileDialog",
|
|
"EditorFileSystem",
|
|
"EditorInspector",
|
|
"EditorInterface",
|
|
"EditorPlugin",
|
|
"EditorProperty",
|
|
"EditorResourcePicker",
|
|
"EditorResourcePreview",
|
|
"EditorScriptPicker",
|
|
"EditorSpinSlider",
|
|
"FileDialog",
|
|
"FileSystemDock",
|
|
"FlowContainer",
|
|
"FogVolume",
|
|
"Generic6DOFJoint3D",
|
|
"GeometryInstance3D",
|
|
"GPUParticles2D",
|
|
"GPUParticles3D",
|
|
"GPUParticlesAttractor3D",
|
|
"GPUParticlesAttractorBox3D",
|
|
"GPUParticlesAttractorSphere3D",
|
|
"GPUParticlesAttractorVectorField3D",
|
|
"GPUParticlesCollision3D",
|
|
"GPUParticlesCollisionBox3D",
|
|
"GPUParticlesCollisionHeightField3D",
|
|
"GPUParticlesCollisionSDF3D",
|
|
"GPUParticlesCollisionSphere3D",
|
|
"GraphEdit",
|
|
"GraphNode",
|
|
"GridContainer",
|
|
"GridMap",
|
|
"GrooveJoint2D",
|
|
"HBoxContainer",
|
|
"HFlowContainer",
|
|
"HingeJoint3D",
|
|
"HScrollBar",
|
|
"HSeparator",
|
|
"HSlider",
|
|
"HSplitContainer",
|
|
"HTTPRequest",
|
|
"ImporterMeshInstance3D",
|
|
"InstancePlaceholder",
|
|
"ItemList",
|
|
"Joint2D",
|
|
"Joint3D",
|
|
"Label",
|
|
"Label3D",
|
|
"Light2D",
|
|
"Light3D",
|
|
"LightmapGI",
|
|
"LightmapProbe",
|
|
"LightOccluder2D",
|
|
"Line2D",
|
|
"LineEdit",
|
|
"LinkButton",
|
|
"MarginContainer",
|
|
"Marker2D",
|
|
"Marker3D",
|
|
"MenuBar",
|
|
"MenuButton",
|
|
"MeshInstance2D",
|
|
"MeshInstance3D",
|
|
"MissingNode",
|
|
"MultiMeshInstance2D",
|
|
"MultiMeshInstance3D",
|
|
"MultiplayerSpawner",
|
|
"MultiplayerSynchronizer",
|
|
"NavigationAgent2D",
|
|
"NavigationAgent3D",
|
|
"NavigationLink2D",
|
|
"NavigationLink3D",
|
|
"NavigationObstacle2D",
|
|
"NavigationObstacle3D",
|
|
"NavigationRegion2D",
|
|
"NavigationRegion3D",
|
|
"NinePatchRect",
|
|
"Node2D",
|
|
"Node3D",
|
|
"OccluderInstance3D",
|
|
"OmniLight3D",
|
|
"OpenXRHand",
|
|
"OptionButton",
|
|
"Panel",
|
|
"PanelContainer",
|
|
"ParallaxBackground",
|
|
"ParallaxLayer",
|
|
"Path2D",
|
|
"Path3D",
|
|
"PathFollow2D",
|
|
"PathFollow3D",
|
|
"PhysicalBone2D",
|
|
"PhysicalBone3D",
|
|
"PhysicsBody2D",
|
|
"PhysicsBody3D",
|
|
"PinJoint2D",
|
|
"PinJoint3D",
|
|
"PointLight2D",
|
|
"Polygon2D",
|
|
"Popup",
|
|
"PopupMenu",
|
|
"PopupPanel",
|
|
"ProgressBar",
|
|
"Range",
|
|
"RayCast2D",
|
|
"RayCast3D",
|
|
"ReferenceRect",
|
|
"ReflectionProbe",
|
|
"RemoteTransform2D",
|
|
"RemoteTransform3D",
|
|
"ResourcePreloader",
|
|
"RichTextLabel",
|
|
"RigidBody2D",
|
|
"RigidBody3D",
|
|
"RootMotionView",
|
|
"ScriptCreateDialog",
|
|
"ScriptEditor",
|
|
"ScriptEditorBase",
|
|
"ScrollBar",
|
|
"ScrollContainer",
|
|
"Separator",
|
|
"ShaderGlobalsOverride",
|
|
"ShapeCast2D",
|
|
"ShapeCast3D",
|
|
"Skeleton2D",
|
|
"Skeleton3D",
|
|
"SkeletonIK3D",
|
|
"Slider",
|
|
"SliderJoint3D",
|
|
"SoftBody3D",
|
|
"SpinBox",
|
|
"SplitContainer",
|
|
"SpotLight3D",
|
|
"SpringArm3D",
|
|
"Sprite2D",
|
|
"Sprite3D",
|
|
"SpriteBase3D",
|
|
"StaticBody2D",
|
|
"StaticBody3D",
|
|
"SubViewport",
|
|
"SubViewportContainer",
|
|
"TabBar",
|
|
"TabContainer",
|
|
"TextEdit",
|
|
"TextureButton",
|
|
"TextureProgressBar",
|
|
"TextureRect",
|
|
"TileMap",
|
|
"Timer",
|
|
"TouchScreenButton",
|
|
"Tree",
|
|
"VBoxContainer",
|
|
"VehicleBody3D",
|
|
"VehicleWheel3D",
|
|
"VFlowContainer",
|
|
"VideoStreamPlayer",
|
|
"Viewport",
|
|
"VisibleOnScreenEnabler2D",
|
|
"VisibleOnScreenEnabler3D",
|
|
"VisibleOnScreenNotifier2D",
|
|
"VisibleOnScreenNotifier3D",
|
|
"VisualInstance3D",
|
|
"VoxelGI",
|
|
"VScrollBar",
|
|
"VSeparator",
|
|
"VSlider",
|
|
"VSplitContainer",
|
|
"Window",
|
|
"WorldEnvironment",
|
|
"XRAnchor3D",
|
|
"XRCamera3D",
|
|
"XRController3D",
|
|
"XRNode3D",
|
|
"XROrigin3D",
|
|
"Resource",
|
|
"AnimatedTexture",
|
|
"Animation",
|
|
"AnimationLibrary",
|
|
"AnimationNode",
|
|
"AnimationNodeAdd2",
|
|
"AnimationNodeAdd3",
|
|
"AnimationNodeAnimation",
|
|
"AnimationNodeBlend2",
|
|
"AnimationNodeBlend3",
|
|
"AnimationNodeBlendSpace1D",
|
|
"AnimationNodeBlendSpace2D",
|
|
"AnimationNodeBlendTree",
|
|
"AnimationNodeOneShot",
|
|
"AnimationNodeOutput",
|
|
"AnimationNodeStateMachine",
|
|
"AnimationNodeStateMachinePlayback",
|
|
"AnimationNodeStateMachineTransition",
|
|
"AnimationNodeSync",
|
|
"AnimationNodeTimeScale",
|
|
"AnimationNodeTimeSeek",
|
|
"AnimationNodeTransition",
|
|
"AnimationRootNode",
|
|
"ArrayMesh",
|
|
"ArrayOccluder3D",
|
|
"AtlasTexture",
|
|
"AudioBusLayout",
|
|
"AudioEffect",
|
|
"AudioEffectAmplify",
|
|
"AudioEffectBandLimitFilter",
|
|
"AudioEffectBandPassFilter",
|
|
"AudioEffectCapture",
|
|
"AudioEffectChorus",
|
|
"AudioEffectCompressor",
|
|
"AudioEffectDelay",
|
|
"AudioEffectDistortion",
|
|
"AudioEffectEQ",
|
|
"AudioEffectEQ10",
|
|
"AudioEffectEQ21",
|
|
"AudioEffectEQ6",
|
|
"AudioEffectFilter",
|
|
"AudioEffectHighPassFilter",
|
|
"AudioEffectHighShelfFilter",
|
|
"AudioEffectLimiter",
|
|
"AudioEffectLowPassFilter",
|
|
"AudioEffectLowShelfFilter",
|
|
"AudioEffectNotchFilter",
|
|
"AudioEffectPanner",
|
|
"AudioEffectPhaser",
|
|
"AudioEffectPitchShift",
|
|
"AudioEffectRecord",
|
|
"AudioEffectReverb",
|
|
"AudioEffectSpectrumAnalyzer",
|
|
"AudioEffectStereoEnhance",
|
|
"AudioStream",
|
|
"AudioStreamGenerator",
|
|
"AudioStreamMicrophone",
|
|
"AudioStreamMP3",
|
|
"AudioStreamOggVorbis",
|
|
"AudioStreamPolyphonic",
|
|
"AudioStreamRandomizer",
|
|
"AudioStreamWAV",
|
|
"BaseMaterial3D",
|
|
"BitMap",
|
|
"BoneMap",
|
|
"BoxMesh",
|
|
"BoxOccluder3D",
|
|
"BoxShape3D",
|
|
"ButtonGroup",
|
|
"CameraAttributes",
|
|
"CameraAttributesPhysical",
|
|
"CameraAttributesPractical",
|
|
"CameraTexture",
|
|
"CanvasItemMaterial",
|
|
"CanvasTexture",
|
|
"CapsuleMesh",
|
|
"CapsuleShape2D",
|
|
"CapsuleShape3D",
|
|
"CircleShape2D",
|
|
"CodeHighlighter",
|
|
"CompressedCubemap",
|
|
"CompressedCubemapArray",
|
|
"CompressedTexture2D",
|
|
"CompressedTexture2DArray",
|
|
"CompressedTexture3D",
|
|
"CompressedTextureLayered",
|
|
"ConcavePolygonShape2D",
|
|
"ConcavePolygonShape3D",
|
|
"ConvexPolygonShape2D",
|
|
"ConvexPolygonShape3D",
|
|
"CryptoKey",
|
|
"CSharpScript",
|
|
"Cubemap",
|
|
"CubemapArray",
|
|
"Curve",
|
|
"Curve2D",
|
|
"Curve3D",
|
|
"CurveTexture",
|
|
"CurveXYZTexture",
|
|
"CylinderMesh",
|
|
"CylinderShape3D",
|
|
"EditorNode3DGizmoPlugin",
|
|
"EditorSettings",
|
|
"EditorSyntaxHighlighter",
|
|
"Environment",
|
|
"FastNoiseLite",
|
|
"FogMaterial",
|
|
"Font",
|
|
"FontFile",
|
|
"FontVariation",
|
|
"GDExtension",
|
|
"GDScript",
|
|
"GLTFAccessor",
|
|
"GLTFAnimation",
|
|
"GLTFBufferView",
|
|
"GLTFCamera",
|
|
"GLTFDocument",
|
|
"GLTFDocumentExtension",
|
|
"GLTFDocumentExtensionConvertImporterMesh",
|
|
"GLTFLight",
|
|
"GLTFMesh",
|
|
"GLTFNode",
|
|
"GLTFSkeleton",
|
|
"GLTFSkin",
|
|
"GLTFSpecGloss",
|
|
"GLTFState",
|
|
"GLTFTexture",
|
|
"GLTFTextureSampler",
|
|
"Gradient",
|
|
"GradientTexture1D",
|
|
"GradientTexture2D",
|
|
"HeightMapShape3D",
|
|
"Image",
|
|
"ImageTexture",
|
|
"ImageTexture3D",
|
|
"ImageTextureLayered",
|
|
"ImmediateMesh",
|
|
"ImporterMesh",
|
|
"InputEvent",
|
|
"InputEventAction",
|
|
"InputEventFromWindow",
|
|
"InputEventGesture",
|
|
"InputEventJoypadButton",
|
|
"InputEventJoypadMotion",
|
|
"InputEventKey",
|
|
"InputEventMagnifyGesture",
|
|
"InputEventMIDI",
|
|
"InputEventMouse",
|
|
"InputEventMouseButton",
|
|
"InputEventMouseMotion",
|
|
"InputEventPanGesture",
|
|
"InputEventScreenDrag",
|
|
"InputEventScreenTouch",
|
|
"InputEventShortcut",
|
|
"InputEventWithModifiers",
|
|
"JSON",
|
|
"LabelSettings",
|
|
"LightmapGIData",
|
|
"Material",
|
|
"Mesh",
|
|
"MeshLibrary",
|
|
"MeshTexture",
|
|
"MissingResource",
|
|
"MultiMesh",
|
|
"NavigationMesh",
|
|
"NavigationPolygon",
|
|
"Noise",
|
|
"NoiseTexture2D",
|
|
"Occluder3D",
|
|
"OccluderPolygon2D",
|
|
"OggPacketSequence",
|
|
"OpenXRAction",
|
|
"OpenXRActionMap",
|
|
"OpenXRActionSet",
|
|
"OpenXRInteractionProfile",
|
|
"OpenXRIPBinding",
|
|
"OptimizedTranslation",
|
|
"ORMMaterial3D",
|
|
"PackedDataContainer",
|
|
"PackedScene",
|
|
"PanoramaSkyMaterial",
|
|
"ParticleProcessMaterial",
|
|
"PhysicalSkyMaterial",
|
|
"PhysicsMaterial",
|
|
"PlaceholderCubemap",
|
|
"PlaceholderCubemapArray",
|
|
"PlaceholderMaterial",
|
|
"PlaceholderMesh",
|
|
"PlaceholderTexture2D",
|
|
"PlaceholderTexture2DArray",
|
|
"PlaceholderTexture3D",
|
|
"PlaceholderTextureLayered",
|
|
"PlaneMesh",
|
|
"PointMesh",
|
|
"PolygonOccluder3D",
|
|
"PolygonPathFinder",
|
|
"PortableCompressedTexture2D",
|
|
"PrimitiveMesh",
|
|
"PrismMesh",
|
|
"ProceduralSkyMaterial",
|
|
"QuadMesh",
|
|
"QuadOccluder3D",
|
|
"RDShaderFile",
|
|
"RDShaderSPIRV",
|
|
"RectangleShape2D",
|
|
"RibbonTrailMesh",
|
|
"RichTextEffect",
|
|
"SceneReplicationConfig",
|
|
"Script",
|
|
"ScriptExtension",
|
|
"SegmentShape2D",
|
|
"SeparationRayShape2D",
|
|
"SeparationRayShape3D",
|
|
"Shader",
|
|
"ShaderInclude",
|
|
"ShaderMaterial",
|
|
"Shape2D",
|
|
"Shape3D",
|
|
"Shortcut",
|
|
"SkeletonModification2D",
|
|
"SkeletonModification2DCCDIK",
|
|
"SkeletonModification2DFABRIK",
|
|
"SkeletonModification2DJiggle",
|
|
"SkeletonModification2DLookAt",
|
|
"SkeletonModification2DPhysicalBones",
|
|
"SkeletonModification2DStackHolder",
|
|
"SkeletonModification2DTwoBoneIK",
|
|
"SkeletonModificationStack2D",
|
|
"SkeletonProfile",
|
|
"SkeletonProfileHumanoid",
|
|
"Skin",
|
|
"Sky",
|
|
"SphereMesh",
|
|
"SphereOccluder3D",
|
|
"SphereShape3D",
|
|
"SpriteFrames",
|
|
"StandardMaterial3D",
|
|
"StyleBox",
|
|
"StyleBoxEmpty",
|
|
"StyleBoxFlat",
|
|
"StyleBoxLine",
|
|
"StyleBoxTexture",
|
|
"SyntaxHighlighter",
|
|
"SystemFont",
|
|
"TextMesh",
|
|
"Texture",
|
|
"Texture2D",
|
|
"Texture2DArray",
|
|
"Texture3D",
|
|
"TextureLayered",
|
|
"Theme",
|
|
"TileMapPattern",
|
|
"TileSet",
|
|
"TileSetAtlasSource",
|
|
"TileSetScenesCollectionSource",
|
|
"TileSetSource",
|
|
"TorusMesh",
|
|
"Translation",
|
|
"TubeTrailMesh",
|
|
"VideoStream",
|
|
"VideoStreamPlayback",
|
|
"VideoStreamTheora",
|
|
"ViewportTexture",
|
|
"VisualShader",
|
|
"VisualShaderNode",
|
|
"VisualShaderNodeBillboard",
|
|
"VisualShaderNodeBooleanConstant",
|
|
"VisualShaderNodeBooleanParameter",
|
|
"VisualShaderNodeClamp",
|
|
"VisualShaderNodeColorConstant",
|
|
"VisualShaderNodeColorFunc",
|
|
"VisualShaderNodeColorOp",
|
|
"VisualShaderNodeColorParameter",
|
|
"VisualShaderNodeComment",
|
|
"VisualShaderNodeCompare",
|
|
"VisualShaderNodeConstant",
|
|
"VisualShaderNodeCubemap",
|
|
"VisualShaderNodeCubemapParameter",
|
|
"VisualShaderNodeCurveTexture",
|
|
"VisualShaderNodeCurveXYZTexture",
|
|
"VisualShaderNodeCustom",
|
|
"VisualShaderNodeDerivativeFunc",
|
|
"VisualShaderNodeDeterminant",
|
|
"VisualShaderNodeDistanceFade",
|
|
"VisualShaderNodeDotProduct",
|
|
"VisualShaderNodeExpression",
|
|
"VisualShaderNodeFaceForward",
|
|
"VisualShaderNodeFloatConstant",
|
|
"VisualShaderNodeFloatFunc",
|
|
"VisualShaderNodeFloatOp",
|
|
"VisualShaderNodeFloatParameter",
|
|
"VisualShaderNodeFresnel",
|
|
"VisualShaderNodeGlobalExpression",
|
|
"VisualShaderNodeGroupBase",
|
|
"VisualShaderNodeIf",
|
|
"VisualShaderNodeInput",
|
|
"VisualShaderNodeIntConstant",
|
|
"VisualShaderNodeIntFunc",
|
|
"VisualShaderNodeIntOp",
|
|
"VisualShaderNodeIntParameter",
|
|
"VisualShaderNodeIs",
|
|
"VisualShaderNodeLinearSceneDepth",
|
|
"VisualShaderNodeMix",
|
|
"VisualShaderNodeMultiplyAdd",
|
|
"VisualShaderNodeOuterProduct",
|
|
"VisualShaderNodeOutput",
|
|
"VisualShaderNodeParameter",
|
|
"VisualShaderNodeParameterRef",
|
|
"VisualShaderNodeParticleAccelerator",
|
|
"VisualShaderNodeParticleBoxEmitter",
|
|
"VisualShaderNodeParticleConeVelocity",
|
|
"VisualShaderNodeParticleEmit",
|
|
"VisualShaderNodeParticleEmitter",
|
|
"VisualShaderNodeParticleMeshEmitter",
|
|
"VisualShaderNodeParticleMultiplyByAxisAngle",
|
|
"VisualShaderNodeParticleOutput",
|
|
"VisualShaderNodeParticleRandomness",
|
|
"VisualShaderNodeParticleRingEmitter",
|
|
"VisualShaderNodeParticleSphereEmitter",
|
|
"VisualShaderNodeProximityFade",
|
|
"VisualShaderNodeRandomRange",
|
|
"VisualShaderNodeRemap",
|
|
"VisualShaderNodeResizableBase",
|
|
"VisualShaderNodeSample3D",
|
|
"VisualShaderNodeScreenUVToSDF",
|
|
"VisualShaderNodeSDFRaymarch",
|
|
"VisualShaderNodeSDFToScreenUV",
|
|
"VisualShaderNodeSmoothStep",
|
|
"VisualShaderNodeStep",
|
|
"VisualShaderNodeSwitch",
|
|
"VisualShaderNodeTexture",
|
|
"VisualShaderNodeTexture2DArray",
|
|
"VisualShaderNodeTexture2DArrayParameter",
|
|
"VisualShaderNodeTexture2DParameter",
|
|
"VisualShaderNodeTexture3D",
|
|
"VisualShaderNodeTexture3DParameter",
|
|
"VisualShaderNodeTextureParameter",
|
|
"VisualShaderNodeTextureParameterTriplanar",
|
|
"VisualShaderNodeTextureSDF",
|
|
"VisualShaderNodeTextureSDFNormal",
|
|
"VisualShaderNodeTransformCompose",
|
|
"VisualShaderNodeTransformConstant",
|
|
"VisualShaderNodeTransformDecompose",
|
|
"VisualShaderNodeTransformFunc",
|
|
"VisualShaderNodeTransformOp",
|
|
"VisualShaderNodeTransformParameter",
|
|
"VisualShaderNodeTransformVecMult",
|
|
"VisualShaderNodeUIntConstant",
|
|
"VisualShaderNodeUIntFunc",
|
|
"VisualShaderNodeUIntOp",
|
|
"VisualShaderNodeUIntParameter",
|
|
"VisualShaderNodeUVFunc",
|
|
"VisualShaderNodeUVPolarCoord",
|
|
"VisualShaderNodeVarying",
|
|
"VisualShaderNodeVaryingGetter",
|
|
"VisualShaderNodeVaryingSetter",
|
|
"VisualShaderNodeVec2Constant",
|
|
"VisualShaderNodeVec2Parameter",
|
|
"VisualShaderNodeVec3Constant",
|
|
"VisualShaderNodeVec3Parameter",
|
|
"VisualShaderNodeVec4Constant",
|
|
"VisualShaderNodeVec4Parameter",
|
|
"VisualShaderNodeVectorBase",
|
|
"VisualShaderNodeVectorCompose",
|
|
"VisualShaderNodeVectorDecompose",
|
|
"VisualShaderNodeVectorDistance",
|
|
"VisualShaderNodeVectorFunc",
|
|
"VisualShaderNodeVectorLen",
|
|
"VisualShaderNodeVectorOp",
|
|
"VisualShaderNodeVectorRefract",
|
|
"VoxelGIData",
|
|
"World2D",
|
|
"World3D",
|
|
"WorldBoundaryShape2D",
|
|
"WorldBoundaryShape3D",
|
|
"X509Certificate",
|
|
"Object",
|
|
"AESContext",
|
|
"AnimationTrackEditPlugin",
|
|
"AStar2D",
|
|
"AStar3D",
|
|
"AStarGrid2D",
|
|
"AudioEffectInstance",
|
|
"AudioEffectSpectrumAnalyzerInstance",
|
|
"AudioServer",
|
|
"AudioStreamGeneratorPlayback",
|
|
"AudioStreamPlayback",
|
|
"AudioStreamPlaybackOggVorbis",
|
|
"AudioStreamPlaybackPolyphonic",
|
|
"AudioStreamPlaybackResampled",
|
|
"CallbackTweener",
|
|
"CameraFeed",
|
|
"CameraServer",
|
|
"CharFXTransform",
|
|
"ClassDB",
|
|
"ConfigFile",
|
|
"Crypto",
|
|
"DirAccess",
|
|
"DisplayServer",
|
|
"DTLSServer",
|
|
"EditorDebuggerPlugin",
|
|
"EditorDebuggerSession",
|
|
"EditorExportPlatform",
|
|
"EditorExportPlugin",
|
|
"EditorFeatureProfile",
|
|
"EditorFileSystemDirectory",
|
|
"EditorFileSystemImportFormatSupportQuery",
|
|
"EditorImportPlugin",
|
|
"EditorInspectorPlugin",
|
|
"EditorNode3DGizmo",
|
|
"EditorPaths",
|
|
"EditorResourceConversionPlugin",
|
|
"EditorResourcePreviewGenerator",
|
|
"EditorSceneFormatImporter",
|
|
"EditorSceneFormatImporterBlend",
|
|
"EditorSceneFormatImporterFBX",
|
|
"EditorSceneFormatImporterGLTF",
|
|
"EditorScenePostImport",
|
|
"EditorScenePostImportPlugin",
|
|
"EditorScript",
|
|
"EditorSelection",
|
|
"EditorTranslationParserPlugin",
|
|
"EditorUndoRedoManager",
|
|
"EditorVCSInterface",
|
|
"EncodedObjectAsID",
|
|
"ENetConnection",
|
|
"ENetMultiplayerPeer",
|
|
"ENetPacketPeer",
|
|
"Engine",
|
|
"EngineDebugger",
|
|
"EngineProfiler",
|
|
"Expression",
|
|
"FileAccess",
|
|
"GDExtensionManager",
|
|
"Geometry2D",
|
|
"Geometry3D",
|
|
"GodotSharp",
|
|
"HashingContext",
|
|
"HMACContext",
|
|
"HTTPClient",
|
|
"ImageFormatLoader",
|
|
"ImageFormatLoaderExtension",
|
|
"Input",
|
|
"InputMap",
|
|
"IntervalTweener",
|
|
"IP",
|
|
"JavaClass",
|
|
"JavaClassWrapper",
|
|
"JavaScriptBridge",
|
|
"JavaScriptObject",
|
|
"JNISingleton",
|
|
"JSONRPC",
|
|
"KinematicCollision2D",
|
|
"KinematicCollision3D",
|
|
"Lightmapper",
|
|
"LightmapperRD",
|
|
"MainLoop",
|
|
"Marshalls",
|
|
"MeshDataTool",
|
|
"MethodTweener",
|
|
"MobileVRInterface",
|
|
"MovieWriter",
|
|
"MultiplayerAPI",
|
|
"MultiplayerAPIExtension",
|
|
"MultiplayerPeer",
|
|
"MultiplayerPeerExtension",
|
|
"Mutex",
|
|
"NavigationMeshGenerator",
|
|
"NavigationPathQueryParameters2D",
|
|
"NavigationPathQueryParameters3D",
|
|
"NavigationPathQueryResult2D",
|
|
"NavigationPathQueryResult3D",
|
|
"NavigationServer2D",
|
|
"NavigationServer3D",
|
|
"Node",
|
|
"Node3DGizmo",
|
|
"OfflineMultiplayerPeer",
|
|
"OggPacketSequencePlayback",
|
|
"OpenXRInterface",
|
|
"OS",
|
|
"PackedDataContainerRef",
|
|
"PacketPeer",
|
|
"PacketPeerDTLS",
|
|
"PacketPeerExtension",
|
|
"PacketPeerStream",
|
|
"PacketPeerUDP",
|
|
"PCKPacker",
|
|
"Performance",
|
|
"PhysicsDirectBodyState2D",
|
|
"PhysicsDirectBodyState2DExtension",
|
|
"PhysicsDirectBodyState3D",
|
|
"PhysicsDirectBodyState3DExtension",
|
|
"PhysicsDirectSpaceState2D",
|
|
"PhysicsDirectSpaceState2DExtension",
|
|
"PhysicsDirectSpaceState3D",
|
|
"PhysicsDirectSpaceState3DExtension",
|
|
"PhysicsPointQueryParameters2D",
|
|
"PhysicsPointQueryParameters3D",
|
|
"PhysicsRayQueryParameters2D",
|
|
"PhysicsRayQueryParameters3D",
|
|
"PhysicsServer2D",
|
|
"PhysicsServer2DExtension",
|
|
"PhysicsServer2DManager",
|
|
"PhysicsServer3D",
|
|
"PhysicsServer3DExtension",
|
|
"PhysicsServer3DManager",
|
|
"PhysicsServer3DRenderingServerHandler",
|
|
"PhysicsShapeQueryParameters2D",
|
|
"PhysicsShapeQueryParameters3D",
|
|
"PhysicsTestMotionParameters2D",
|
|
"PhysicsTestMotionParameters3D",
|
|
"PhysicsTestMotionResult2D",
|
|
"PhysicsTestMotionResult3D",
|
|
"ProjectSettings",
|
|
"PropertyTweener",
|
|
"RandomNumberGenerator",
|
|
"RDAttachmentFormat",
|
|
"RDFramebufferPass",
|
|
"RDPipelineColorBlendState",
|
|
"RDPipelineColorBlendStateAttachment",
|
|
"RDPipelineDepthStencilState",
|
|
"RDPipelineMultisampleState",
|
|
"RDPipelineRasterizationState",
|
|
"RDPipelineSpecializationConstant",
|
|
"RDSamplerState",
|
|
"RDShaderSource",
|
|
"RDTextureFormat",
|
|
"RDTextureView",
|
|
"RDUniform",
|
|
"RDVertexAttribute",
|
|
"RefCounted",
|
|
"RegEx",
|
|
"RegExMatch",
|
|
"RenderingDevice",
|
|
"RenderingServer",
|
|
"Resource",
|
|
"ResourceFormatLoader",
|
|
"ResourceFormatSaver",
|
|
"ResourceImporter",
|
|
"ResourceLoader",
|
|
"ResourceSaver",
|
|
"ResourceUID",
|
|
"SceneMultiplayer",
|
|
"SceneState",
|
|
"SceneTree",
|
|
"SceneTreeTimer",
|
|
"ScriptLanguage",
|
|
"ScriptLanguageExtension",
|
|
"Semaphore",
|
|
"SkinReference",
|
|
"StreamPeer",
|
|
"StreamPeerBuffer",
|
|
"StreamPeerExtension",
|
|
"StreamPeerGZIP",
|
|
"StreamPeerTCP",
|
|
"StreamPeerTLS",
|
|
"SurfaceTool",
|
|
"TCPServer",
|
|
"TextLine",
|
|
"TextParagraph",
|
|
"TextServer",
|
|
"TextServerAdvanced",
|
|
"TextServerDummy",
|
|
"TextServerExtension",
|
|
"TextServerFallback",
|
|
"TextServerManager",
|
|
"ThemeDB",
|
|
"Thread",
|
|
"TileData",
|
|
"Time",
|
|
"TLSOptions",
|
|
"TranslationServer",
|
|
"TreeItem",
|
|
"TriangleMesh",
|
|
"Tween",
|
|
"Tweener",
|
|
"UDPServer",
|
|
"UndoRedo",
|
|
"UPNP",
|
|
"UPNPDevice",
|
|
"WeakRef",
|
|
"WebRTCDataChannel",
|
|
"WebRTCDataChannelExtension",
|
|
"WebRTCMultiplayerPeer",
|
|
"WebRTCPeerConnection",
|
|
"WebRTCPeerConnectionExtension",
|
|
"WebSocketMultiplayerPeer",
|
|
"WebSocketPeer",
|
|
"WebXRInterface",
|
|
"WorkerThreadPool",
|
|
"XMLParser",
|
|
"XRInterface",
|
|
"XRInterfaceExtension",
|
|
"XRPose",
|
|
"XRPositionalTracker",
|
|
"XRServer",
|
|
"ZIPPacker",
|
|
"ZIPReader",
|
|
"AABB",
|
|
"Array",
|
|
"Basis",
|
|
"bool",
|
|
"Callable",
|
|
"Color",
|
|
"Dictionary",
|
|
"float",
|
|
"int",
|
|
"NodePath",
|
|
"Object",
|
|
"PackedByteArray",
|
|
"PackedColorArray",
|
|
"PackedFloat32Array",
|
|
"PackedFloat64Array",
|
|
"PackedInt32Array",
|
|
"PackedInt64Array",
|
|
"PackedStringArray",
|
|
"PackedVector2Array",
|
|
"PackedVector3Array",
|
|
"Plane",
|
|
"Projection",
|
|
"Quaternion",
|
|
"Rect2",
|
|
"Rect2i",
|
|
"RID",
|
|
"Signal",
|
|
"String",
|
|
"StringName",
|
|
"Transform2D",
|
|
"Transform3D",
|
|
"Variant",
|
|
"Vector2",
|
|
"Vector2i",
|
|
"Vector3",
|
|
"Vector3i",
|
|
"Vector4",
|
|
"Vector4i"
|
|
]
|
|
|
|
|
|
# Example usage
|
|
find_circular_dependencies("C:\\Workspace\\TL2\\gd_client\\scripts")
|