Check classes in Godot4 (#62)

This commit is contained in:
Rafał Mikrut 2021-09-18 21:01:07 +02:00 committed by GitHub
parent fd1d2c5c57
commit c390e349fe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 0 deletions

View File

@ -16,6 +16,7 @@ var os
# Each scene runs alone
const alone_steps : Array = [
"res://CreatingAllThings/CreatingAllThings.tscn",
"res://Nodes/Nodes.tscn",
# "res://ReparentingDeleting/ReparentingDeleting.tscn", # Really slow in 4.0
"res://AutomaticBugs/FunctionExecutor.tscn", # Only Needs to be executed once, but this is workaround a little

View File

@ -0,0 +1,30 @@
extends Node2D
var available_classes : Array = []
var exeptions : Array = ["SceneTree", "EditorSettings", "ProjectSettings", "InputEventShortcut", "InputMap"]
func _ready():
var cl : Array = Array(ClassDB.get_class_list())
cl.sort()
for name_of_class in cl:
if !ClassDB.can_instantiate(name_of_class):
continue
if name_of_class in exeptions:
continue
if name_of_class.to_lower().find("server") != -1:
continue
print("########### " + name_of_class)
print("GDSCRIPT CODE: var thing = ClassDB.instantiate(\"" + name_of_class + "\")")
print("GDSCRIPT CODE: str(" + name_of_class + ")")
var thing = ClassDB.instantiate(name_of_class)
str(thing)
if thing is Node:
print("GDSCRIPT CODE: thing.queue_free()")
thing.queue_free()
elif thing is Object && !(thing is RefCounted):
print("GDSCRIPT CODE: thing.free()")
thing.free()

View File

@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://bj2rcig1emwek"]
[ext_resource type="Script" path="res://CreatingAllThings/CreatingAllThings.gd" id="1_vqkfm"]
[node name="CreatingAllThings" type="Node2D"]
script = ExtResource( "1_vqkfm" )