Remove text and non-script scenes and update fuzzer (#38)

This commit is contained in:
Rafał Mikrut 2021-04-04 12:50:40 +02:00 committed by GitHub
parent 9b0947fc80
commit 9714e049ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 579 additions and 1951 deletions

File diff suppressed because one or more lines are too long

View File

@ -1,607 +0,0 @@
[gd_scene load_steps=37 format=2]
[ext_resource path="res://icon.png" type="Texture" id=50]
[sub_resource type="SpatialMaterial" id=1]
[sub_resource type="SpriteFrames" id=2]
animations = [ {
"frames": [ ExtResource( 50 ), ExtResource( 50 ), ExtResource( 50 ) ],
"loop": true,
"name": "default",
"speed": 5.0
} ]
[sub_resource type="CubeMesh" id=3]
[sub_resource type="SpatialMaterial" id=4]
[sub_resource type="SpatialMaterial" id=5]
[sub_resource type="SpatialMaterial" id=6]
[sub_resource type="CapsuleMesh" id=7]
material = SubResource( 6 )
radius = 1.272
mid_height = 0.001
radial_segments = 4
rings = 2
[sub_resource type="CameraTexture" id=8]
camera_feed_id = 1
which_feed = 1
[sub_resource type="SpatialMaterial" id=9]
roughness_texture = SubResource( 8 )
roughness_texture_channel = 1
[sub_resource type="SpatialMaterial" id=10]
[sub_resource type="SpatialMaterial" id=11]
vertex_color_use_as_albedo = true
[sub_resource type="SpatialMaterial" id=12]
[sub_resource type="SpatialMaterial" id=13]
[sub_resource type="SpatialMaterial" id=14]
params_diffuse_mode = 1
params_specular_mode = 1
params_blend_mode = 1
params_cull_mode = 1
params_depth_draw_mode = 1
[sub_resource type="CubeMesh" id=15]
material = SubResource( 14 )
size = Vector3( 2.25, 1.56, 2.49 )
[sub_resource type="Skin" id=16]
bind_count = 10
bind/0/name = ""
bind/0/bone = -1
bind/0/pose = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
bind/1/name = ""
bind/1/bone = -1
bind/1/pose = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
bind/2/name = ""
bind/2/bone = -1
bind/2/pose = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
bind/3/name = ""
bind/3/bone = -1
bind/3/pose = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
bind/4/name = ""
bind/4/bone = -1
bind/4/pose = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
bind/5/name = ""
bind/5/bone = -1
bind/5/pose = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
bind/6/name = ""
bind/6/bone = -1
bind/6/pose = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
bind/7/name = ""
bind/7/bone = -1
bind/7/pose = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
bind/8/name = ""
bind/8/bone = -1
bind/8/pose = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
bind/9/name = ""
bind/9/bone = -1
bind/9/pose = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
[sub_resource type="SpatialMaterial" id=17]
[sub_resource type="CubeMesh" id=18]
[sub_resource type="MultiMesh" id=19]
color_format = 2
transform_format = 1
custom_data_format = 2
instance_count = 3
visible_instance_count = 121212
mesh = SubResource( 18 )
transform_array = PoolVector3Array( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
color_array = PoolColorArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 )
custom_data_array = PoolColorArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 )
[sub_resource type="ParticlesMaterial" id=20]
render_priority = 127
emission_shape = 2
emission_box_extents = Vector3( 1, 1, 1 )
radial_accel = 6.0
radial_accel_random = 1.0
tangential_accel = 3.1
tangential_accel_random = 1.0
[sub_resource type="CubeMesh" id=21]
[sub_resource type="BakedLightmapData" id=22]
energy = 5.7
[sub_resource type="BoxShape" id=23]
margin = 0.5
extents = Vector3( 1, 26.5038, 3.22286 )
[sub_resource type="PhysicsMaterial" id=24]
[sub_resource type="PhysicsMaterial" id=25]
[sub_resource type="PhysicsMaterial" id=26]
friction = 0.53
[sub_resource type="AudioStreamGenerator" id=27]
[sub_resource type="ConcavePolygonShape" id=28]
margin = 0.067
[sub_resource type="CapsuleMesh" id=29]
[sub_resource type="MeshLibrary" id=30]
item/0/name = ""
item/0/mesh = SubResource( 29 )
item/0/mesh_transform = null
item/0/shapes = [ ]
item/0/navmesh_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
[sub_resource type="NavigationMesh" id=31]
sample_partition_type/sample_partition_type = 2
geometry/parsed_geometry_type = 1
geometry/collision_mask = 2147483647
cell/size = 0.5
cell/height = 5.1
agent/height = 4.2
agent/radius = 5.8
agent/max_climb = 6.2
agent/max_slope = 0.0
region/min_size = 15.6
region/merge_size = 24.8
edge/max_length = 17.4
edge/max_error = 0.1
polygon/verts_per_poly = 9.0
detail/sample_distance = 0.0
detail/sample_max_error = 6.7
filter/low_hanging_obstacles = true
filter/ledge_spans = true
filter/filter_walkable_low_height_spans = true
[sub_resource type="Curve3D" id=32]
bake_interval = 10.0
_data = {
"points": PoolVector3Array( 0, 0, 0, 0, 0, 0, -4.21835, 8.31693, -11.5007, 0, 0, 0, 0, 0, 0, -18.4839, 0.381447, -2.2567, 0, 0, 0, 0, 0, 0, -9.25256, -1.66295, 1.34504, 0, 0, 0, 0, 0, 0, 14.3498, 1.51124, -0.660617, 0, 0, 0, 0, 0, 0, 16.5666, 7.48303, -8.42252, 0, 0, 0, 0, 0, 0, 5.21951, 11.8408, -15.3123, 0, 0, 0, 0, 0, 0, -6.34309, 13.0513, -18.0214, 0, 0, 0, 0, 0, 0, -22.2367, 9.90402, -15.3228, 0, 0, 0, 0, 0, 0, -5.97389, 1.40365, -2.43845, 0, 0, 0, 0, 0, 0, 1.22511, 4.12054, -5.38451, 0, 0, 0, 0, 0, 0, -4.21835, 8.31693, -11.5007 ),
"tilts": PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 )
}
[sub_resource type="BoxShape" id=33]
margin = 1.21
extents = Vector3( 1, 1.77, 1.71 )
[sub_resource type="CapsuleShape" id=34]
[sub_resource type="CubeMesh" id=35]
[node name="3DALL" type="Spatial"]
[node name="ARVROrigin" type="ARVROrigin" parent="."]
world_scale = 1.01
[node name="ARVRAnchor" type="ARVRAnchor" parent="ARVROrigin"]
anchor_id = 32
[node name="ARVRCamera_NOTHING" type="ARVRCamera" parent="ARVROrigin"]
h_offset = 0.159
v_offset = -0.909
doppler_tracking = 1
projection = 1
size = 91.71
near = 2235.15
far = 1.1
[node name="ARVRController" type="ARVRController" parent="ARVROrigin"]
controller_id = 3
[node name="Camera" type="Camera" parent="."]
h_offset = 0.032
v_offset = 0.03
doppler_tracking = 1
projection = 1
fov = 75.7
size = 1.23
near = 0.42
far = 356.3
[node name="ClippedCamera" type="ClippedCamera" parent="."]
h_offset = 0.038
v_offset = -0.146
fov = 64.8
size = 15954.2
near = 0.45
margin = 23.09
[node name="InterpolatedCamera" type="InterpolatedCamera" parent="."]
size = 16384.0
target = NodePath("../ARVROrigin/ARVRController")
speed = 1.06
[node name="AnimatedSprite3D" type="AnimatedSprite3D" parent="."]
material_override = SubResource( 1 )
offset = Vector2( 0.026, 0 )
flip_h = true
flip_v = true
modulate = Color( 0.454902, 0.25098, 0.25098, 1 )
opacity = 0.74
pixel_size = 0.0526
billboard = 1
shaded = true
frames = SubResource( 2 )
playing = true
[node name="Sprite3D" type="Sprite3D" parent="."]
flip_h = true
flip_v = true
texture = ExtResource( 50 )
hframes = 13
frame = 2
[node name="CPUParticles" type="CPUParticles" parent="."]
emitting = false
amount = 5
lifetime = 1.83
speed_scale = 2.68
explosiveness = 0.24
randomness = 0.87
lifetime_randomness = 0.75
mesh = SubResource( 3 )
emission_shape = 1
emission_sphere_radius = 1.0
[node name="CSGBox" type="CSGBox" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 25.6943 )
operation = 1
invert_faces = true
width = 44.173
height = 19.604
depth = 5.12757
material = SubResource( 4 )
[node name="CSGCylinder" type="CSGCylinder" parent="."]
transform = Transform( 1, 0, 0, 0, 0.745602, 0, 0, 0, 1, 0, -21.0098, 0 )
invert_faces = true
radius = 123.75
height = 45.8309
sides = 3
cone = true
material = SubResource( 5 )
[node name="CSGMesh" type="CSGMesh" parent="."]
transform = Transform( 1, 0, 0, 0, 3.78, 0, 0, 0, 7.64, 5.27772, 5.196, 0 )
invert_faces = true
mesh = SubResource( 7 )
material = SubResource( 9 )
[node name="CSGPolygon" type="CSGPolygon" parent="."]
polygon = PoolVector2Array( 1.3, 0.59, 1, 0.06, 1, -6.56, 0, 0, 0, 0, 0, 0 )
depth = 1.123
material = SubResource( 10 )
[node name="CSGSphere" type="CSGSphere" parent="."]
invert_faces = true
radius = 19.668
radial_segments = 4
rings = 3
smooth_faces = false
material = SubResource( 11 )
[node name="CSGTorus" type="CSGTorus" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.71423, -3.42086 )
invert_faces = true
inner_radius = 0.001
outer_radius = 19.109
sides = 4
ring_sides = 5
material = SubResource( 12 )
[node name="CSGCombiner_NOTHING" type="CSGCombiner" parent="."]
operation = 1
[node name="CSGBox" type="CSGBox" parent="CSGCombiner_NOTHING"]
invert_faces = true
width = 44.173
height = 19.604
material = SubResource( 4 )
[node name="CSGBox2" type="CSGBox" parent="CSGCombiner_NOTHING"]
invert_faces = true
width = 44.173
height = 19.604
material = SubResource( 4 )
[node name="ImmediateGeometry" type="ImmediateGeometry" parent="."]
material_override = SubResource( 13 )
extra_cull_margin = 0.08
use_in_baked_light = true
[node name="MeshInstance" type="MeshInstance" parent="."]
mesh = SubResource( 15 )
skin = SubResource( 16 )
material/0 = SubResource( 17 )
[node name="MultiMeshInstance" type="MultiMeshInstance" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 18.9485, 0 )
multimesh = SubResource( 19 )
[node name="Particles" type="Particles" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -27.0754 )
emitting = false
amount = 4
lifetime = 1.42
preprocess = 0.5
speed_scale = 1.3
explosiveness = 0.41
randomness = 0.34
fract_delta = false
local_coords = false
process_material = SubResource( 20 )
draw_pass_1 = SubResource( 21 )
[node name="BakedLightmap" type="BakedLightmap" parent="."]
bake_cell_size = 1.94
bake_quality = 0
bake_mode = 1
bake_propagation = 0.0
bake_energy = 1.58
image_path = "res://file.jpg"
light_data = SubResource( 22 )
[node name="DirectionalLight" type="DirectionalLight" parent="."]
transform = Transform( 1, 0, 0, 0, 0.639291, -0.768965, 0, 0.768965, 0.639291, 0, 21.5838, 0 )
light_energy = 7.54
shadow_enabled = true
[node name="SpotLight" type="SpotLight" parent="."]
transform = Transform( 1, 0, 0, 0, -0.171431, -0.985196, 0, 0.985196, -0.171431, 0, 0, -16.2155 )
light_energy = 4.05
light_negative = true
shadow_enabled = true
shadow_bias = 0.4
[node name="GIProbe" type="GIProbe" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.945391, 1.15135, 1.78806 )
extents = Vector3( 10, 10, 22.3077 )
energy = 1.89
propagation = 1.0
bias = 1.58
normal_bias = 0.061
interior = true
compress = true
[node name="ReflectionProbe" type="ReflectionProbe" parent="."]
intensity = 0.51
max_distance = 1.7
extents = Vector3( 1, 1.583, 1 )
box_projection = true
[node name="RootMotionView" type="RootMotionView" parent="."]
[node name="Area" type="Area" parent="."]
gravity = 22.39
linear_damp = 0.126
monitoring = false
[node name="CollisionShape" type="CollisionShape" parent="Area"]
shape = SubResource( 23 )
[node name="KinematicBody" type="KinematicBody" parent="."]
collision/safe_margin = 0.033
[node name="CollisionShape" type="CollisionShape" parent="KinematicBody"]
shape = SubResource( 23 )
[node name="PhysicalBone" type="PhysicalBone" parent="."]
mass = 1.21
weight = 11.858
[node name="CollisionShape" type="CollisionShape" parent="PhysicalBone"]
shape = SubResource( 23 )
[node name="RigidBody" type="RigidBody" parent="."]
mass = 1.19
physics_material_override = SubResource( 24 )
gravity_scale = 1.12
axis_lock_linear_x = true
[node name="CollisionShape" type="CollisionShape" parent="RigidBody"]
shape = SubResource( 23 )
[node name="VehicleBody" type="VehicleBody" parent="."]
physics_material_override = SubResource( 25 )
engine_force = 16.41
brake = 0.46
steering = 0.17
[node name="CollisionShape" type="CollisionShape" parent="VehicleBody"]
shape = SubResource( 23 )
[node name="VehicleWheel4" type="VehicleWheel" parent="VehicleBody"]
engine_force = 5.60519e-45
brake = 0.46
[node name="StaticBody" type="StaticBody" parent="."]
physics_material_override = SubResource( 26 )
constant_linear_velocity = Vector3( 0.049, 0, 0 )
[node name="CollisionShape" type="CollisionShape" parent="StaticBody"]
shape = SubResource( 23 )
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."]
stream = SubResource( 27 )
attenuation_model = 1
unit_db = 0.031
unit_size = 5.5
max_db = 2.953
pitch_scale = 1.42
[node name="BoneAttachment" type="BoneAttachment" parent="."]
[node name="CollisionPolygon" type="CollisionPolygon" parent="."]
polygon = PoolVector2Array( 66.9045, 31.0067, 286.784, -62.3473, 22.8219, -35.2817, -25.9028, -19.5722, -43.33, 5.94586, -43.7357, 15.5874, -36.475, 6.06905, -45.3994, 19.6661 )
[node name="CollisionShape" type="CollisionShape" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -26.583 )
shape = SubResource( 28 )
[node name="GridMap" type="GridMap" parent="."]
mesh_library = SubResource( 30 )
cell_size = Vector3( 2, 1.14, 3.08 )
data = {
"cells": PoolIntArray( 23, 1, 0, 25, 1, 0, 26, 1, 0, 18, 2, 0, 65523, 5, 0, 65524, 5, 0, 65530, 65515, 0, 65520, 65520, 0, 65519, 65521, 0, 65520, 65521, 0, 65519, 65522, 0, 65518, 65523, 0, 65523, 65524, 0, 65526, 65528, 0, 65513, 65533, 0 )
}
__meta__ = {
"_editor_clip_": 0
}
[node name="Listener" type="Listener" parent="."]
current = true
[node name="Navigation" type="Navigation" parent="."]
up_vector = Vector3( 0, 1.318, 0 )
[node name="NavigationMeshInstance" type="NavigationMeshInstance" parent="Navigation"]
navmesh = SubResource( 31 )
[node name="NavigationMeshInstance" type="NavigationMeshInstance" parent="."]
navmesh = SubResource( 31 )
[node name="Path" type="Path" parent="."]
curve = SubResource( 32 )
[node name="PathFollow" type="PathFollow" parent="Path"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.21835, 8.31693, -11.5007 )
[node name="PathFollow" type="PathFollow" parent="."]
offset = 2.09
h_offset = 0.101
[node name="Position3D_NOTHING" type="Position3D" parent="."]
[node name="Camera_DEFAULT_CAMERA" type="Camera" parent="."]
current = true
[node name="ProximityGroup" type="ProximityGroup" parent="."]
dispatch_mode = 1
[node name="RayCast" type="RayCast" parent="."]
enabled = true
[node name="RemoteTransform" type="RemoteTransform" parent="."]
remote_path = NodePath("../Camera")
[node name="Skeleton" type="Skeleton" parent="."]
[node name="PhysicalBone" type="PhysicalBone" parent="Skeleton"]
[node name="BoneAttachment" type="BoneAttachment" parent="Skeleton/PhysicalBone"]
transform = Transform( 1, -1.78814e-07, -1.78814e-07, -9.68575e-08, 1, -5.96046e-08, 0, 0, 1, 0, 0, 0 )
[node name="CollisionShape4" type="CollisionShape" parent="Skeleton/PhysicalBone"]
shape = SubResource( 33 )
[node name="PhysicalBone 3" type="PhysicalBone" parent="Skeleton"]
mass = 0.958163
weight = 9.39
friction = 0.62
bounce = 0.3
gravity_scale = 0.6
[node name="CollisionShape" type="CollisionShape" parent="Skeleton/PhysicalBone 3"]
shape = SubResource( 33 )
[node name="SpringArm" type="SpringArm" parent="."]
shape = SubResource( 34 )
[node name="VehicleWheel" type="VehicleWheel" parent="."]
engine_force = 0.49
brake = 0.74
steering = -0.63
[node name="VisibilityNotifier" type="VisibilityNotifier" parent="."]
aabb = AABB( -1, -0.982, -1, 2, 2.078, 2 )
[node name="VisibilityEnabler" type="VisibilityEnabler" parent="."]
[node name="Generic6DOFJoint" type="Generic6DOFJoint" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.63619, -0.392871, 2.48948 )
nodes/node_a = NodePath("../StaticBody")
nodes/node_b = NodePath("../PhysicalBone")
solver/priority = 5
collision/exclude_nodes = false
linear_limit_x/lower_distance = 0.261
angular_motor_z/enabled = true
angular_motor_z/target_velocity = 0.11
angular_motor_z/force_limit = 300.5
angular_spring_z/enabled = true
angular_spring_z/stiffness = 0.5
angular_spring_z/damping = 0.64
angular_spring_z/equilibrium_point = -0.9
[node name="HingeJoint" type="HingeJoint" parent="."]
nodes/node_a = NodePath("../StaticBody")
nodes/node_b = NodePath("../PhysicalBone")
params/bias = 0.99
angular_limit/enable = true
angular_limit/upper = 162.0
angular_limit/lower = -131.0
angular_limit/bias = 0.67
angular_limit/softness = 0.01
angular_limit/relaxation = 3.6
motor/enable = true
motor/target_velocity = -1.3
motor/max_impulse = 30.2
[node name="SliderJoint" type="SliderJoint" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.17785, 0.25203, 4.6063 )
nodes/node_a = NodePath("../VehicleBody")
nodes/node_b = NodePath("../StaticBody")
linear_limit/upper_distance = 1.19
linear_limit/lower_distance = -705.69
linear_limit/softness = 1.07
linear_limit/restitution = 1.12
linear_limit/damping = 1.18
linear_motion/softness = 1.14
linear_motion/restitution = 0.97
linear_motion/damping = 0.54
linear_ortho/softness = 1.4
linear_ortho/restitution = 1.19
linear_ortho/damping = 1.28
angular_limit/upper_angle = -28.8
angular_limit/lower_angle = 38.8
angular_motion/softness = 2.18
angular_motion/restitution = 1.77
angular_motion/damping = 4.88
[node name="PinJoint" type="PinJoint" parent="."]
nodes/node_a = NodePath("../KinematicBody")
nodes/node_b = NodePath("../StaticBody")
params/bias = 0.99
params/damping = 7.3
params/impulse_clamp = 7.2
[node name="ConeTwistJoint" type="ConeTwistJoint" parent="."]
nodes/node_a = NodePath("../PhysicalBone")
nodes/node_b = NodePath("../RigidBody")
solver/priority = 8
twist_span = 9500.4
bias = 0.46
softness = 0.95
relaxation = 0.83
[node name="OmniLight" type="OmniLight" parent="."]
light_energy = 1.61
light_indirect_energy = 1.35
light_specular = 0.68
omni_range = 118.9
omni_attenuation = 1.51572
omni_shadow_mode = 0
omni_shadow_detail = 0
[node name="SoftBody" type="SoftBody" parent="."]
mesh = SubResource( 35 )
material/0 = null

View File

@ -1,16 +0,0 @@
[gd_scene load_steps=5 format=2]
[ext_resource path="res://AIO/AllNodes/OtherALL.tscn" type="PackedScene" id=1]
[ext_resource path="res://AIO/AllNodes/2DALL.tscn" type="PackedScene" id=2]
[ext_resource path="res://AIO/AllNodes/ControlALL.tscn" type="PackedScene" id=4]
[ext_resource path="res://AIO/AllNodes/3DALL.tscn" type="PackedScene" id=5]
[node name="ALL" type="Node"]
[node name="2DALL" parent="." instance=ExtResource( 2 )]
[node name="3DALL" parent="." instance=ExtResource( 5 )]
[node name="ControlALL" parent="." instance=ExtResource( 4 )]
[node name="OtherALL" parent="." instance=ExtResource( 1 )]

View File

@ -1,457 +0,0 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://icon.png" type="Texture" id=1]
[sub_resource type="Theme" id=1]
[node name="ControlALL" type="GridContainer"]
anchor_right = 1.0
anchor_bottom = 1.0
columns = 9
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Popup" type="Popup" parent="."]
visible = true
modulate = Color( 0.607843, 0.4, 0.4, 1 )
self_modulate = Color( 0.835294, 0.717647, 0.717647, 1 )
show_behind_parent = true
light_mask = 16387
margin_left = 308.0
margin_right = 308.0
margin_bottom = 130.0
grow_horizontal = 0
grow_vertical = 2
hint_tooltip = "dfadfasf"
focus_neighbour_left = NodePath("../Button_ALL")
focus_neighbour_top = NodePath("../ToolButton")
focus_neighbour_right = NodePath("../LinkButton")
focus_neighbour_bottom = NodePath("../Container")
focus_next = NodePath("../TextureButton")
focus_previous = NodePath("../CheckBox")
focus_mode = 2
mouse_filter = 1
mouse_default_cursor_shape = 4
size_flags_horizontal = 14
size_flags_vertical = 15
size_flags_stretch_ratio = 121.49
theme = SubResource( 1 )
popup_exclusive = true
[node name="WindowDialog" type="WindowDialog" parent="."]
visible = true
margin_left = 312.0
margin_right = 395.0
margin_bottom = 130.0
popup_exclusive = true
window_title = "wfaas"
resizable = true
[node name="AcceptDialog" type="AcceptDialog" parent="."]
visible = true
margin_left = 399.0
margin_right = 479.0
margin_bottom = 130.0
window_title = "asfas"
resizable = true
dialog_text = "fqwfqwfqwf"
dialog_hide_on_ok = false
dialog_autowrap = true
[node name="ConfirmationDialog" type="ConfirmationDialog" parent="."]
visible = true
margin_left = 483.0
margin_right = 689.0
margin_bottom = 130.0
rect_min_size = Vector2( 138, 48.3 )
window_title = "Please Confirm...asfasfas"
resizable = true
dialog_text = "fas"
dialog_hide_on_ok = false
dialog_autowrap = true
[node name="FileDialog" type="FileDialog" parent="."]
visible = true
margin_left = 693.0
margin_right = 909.0
margin_bottom = 130.0
rect_min_size = Vector2( 138, 48.3 )
window_title = "Open File(s)"
dialog_text = "sffasfasf"
dialog_hide_on_ok = true
dialog_autowrap = true
mode_overrides_title = false
mode = 1
access = 1
filters = PoolStringArray( "", "as", "", "fasf", "", "s", "", "asfasfa", "sf", "", "" )
show_hidden_files = true
current_dir = "user://"
current_file = "asf"
current_path = "user://asf"
[node name="PopupDialog_NOTHING" type="PopupDialog" parent="."]
visible = true
margin_left = 913.0
margin_right = 960.0
margin_bottom = 130.0
popup_exclusive = true
[node name="PopupMenu" type="PopupMenu" parent="."]
visible = true
margin_left = 964.0
margin_right = 1016.0
margin_bottom = 130.0
hide_on_item_selection = false
hide_on_checkable_item_selection = false
hide_on_state_item_selection = true
submenu_popup_delay = 5.32352e+07
allow_search = true
[node name="PopupPanel_NOTHING" type="PopupPanel" parent="."]
visible = true
margin_left = 1020.0
margin_right = 1032.0
margin_bottom = 130.0
popup_exclusive = true
[node name="Button" type="Button" parent="."]
margin_left = 1036.0
margin_right = 1094.0
margin_bottom = 130.0
text = "asfasf"
flat = true
clip_text = true
align = 0
__meta__ = {
"_edit_use_anchors_": false
}
[node name="CheckBox_NOTHING" type="CheckBox" parent="."]
margin_top = 134.0
margin_right = 308.0
margin_bottom = 174.0
text = "safasf"
flat = true
clip_text = true
align = 2
[node name="CheckButton_NOTHING" type="CheckButton" parent="."]
margin_left = 312.0
margin_top = 134.0
margin_right = 395.0
margin_bottom = 174.0
text = "asfq"
flat = true
clip_text = true
align = 1
[node name="ColorPickerButton" type="ColorPickerButton" parent="."]
margin_left = 399.0
margin_top = 134.0
margin_right = 479.0
margin_bottom = 174.0
text = "asfasf"
flat = true
clip_text = true
align = 2
color = Color( 0.639216, 0.576471, 0.576471, 1 )
edit_alpha = false
[node name="MenuButton" type="MenuButton" parent="."]
margin_left = 483.0
margin_top = 134.0
margin_right = 689.0
margin_bottom = 174.0
icon = ExtResource( 1 )
switch_on_hover = true
[node name="OptionButton" type="OptionButton" parent="."]
margin_left = 693.0
margin_top = 134.0
margin_right = 909.0
margin_bottom = 174.0
icon = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="ToolButton_NOTHING" type="ToolButton" parent="."]
margin_left = 913.0
margin_top = 134.0
margin_right = 960.0
margin_bottom = 174.0
text = "asfasf"
icon = ExtResource( 1 )
flat = false
clip_text = true
align = 2
[node name="LinkButton" type="LinkButton" parent="."]
margin_left = 964.0
margin_top = 134.0
margin_right = 1016.0
margin_bottom = 174.0
text = "asfqfqwf"
underline = 2
[node name="TextureButton" type="TextureButton" parent="."]
margin_left = 1020.0
margin_top = 134.0
margin_right = 1032.0
margin_bottom = 174.0
expand = true
stretch_mode = 5
[node name="Container" type="Container" parent="."]
margin_left = 1036.0
margin_top = 134.0
margin_right = 1094.0
margin_bottom = 174.0
[node name="Control" type="Control" parent="Container"]
margin_right = 40.0
margin_bottom = 40.0
[node name="Control2" type="Control" parent="Container"]
margin_right = 40.0
margin_bottom = 40.0
[node name="ColorPicker" type="ColorPicker" parent="."]
margin_top = 178.0
margin_right = 308.0
margin_bottom = 590.0
alignment = 1
edit_alpha = false
raw_mode = true
deferred_mode = true
presets_enabled = false
presets_visible = false
__meta__ = {
"_edit_use_anchors_": false
}
[node name="HBoxContainer_NOTHING" type="HBoxContainer" parent="."]
margin_left = 312.0
margin_top = 178.0
margin_right = 395.0
margin_bottom = 590.0
__meta__ = {
"_edit_use_anchors_": false
}
[node name="VBoxContainer_NOTHING" type="VBoxContainer" parent="."]
margin_left = 399.0
margin_top = 178.0
margin_right = 479.0
margin_bottom = 590.0
__meta__ = {
"_edit_use_anchors_": false
}
[node name="CenterContainer" type="CenterContainer" parent="."]
margin_left = 483.0
margin_top = 178.0
margin_right = 689.0
margin_bottom = 590.0
use_top_left = true
__meta__ = {
"_edit_use_anchors_": false
}
[node name="ScrollContainer" type="ScrollContainer" parent="."]
margin_left = 693.0
margin_top = 178.0
margin_right = 909.0
margin_bottom = 590.0
[node name="GraphNode" type="GraphNode" parent="."]
margin_left = 913.0
margin_top = 178.0
margin_right = 960.0
margin_bottom = 590.0
[node name="GridContainer" type="GridContainer" parent="."]
margin_left = 964.0
margin_top = 178.0
margin_right = 1016.0
margin_bottom = 590.0
[node name="HSplitContainer_NOTHING" type="HSplitContainer" parent="."]
margin_left = 1020.0
margin_top = 178.0
margin_right = 1032.0
margin_bottom = 590.0
__meta__ = {
"_edit_use_anchors_": false
}
[node name="VSplitContainer_NOTHING" type="VSplitContainer" parent="."]
margin_left = 1036.0
margin_top = 178.0
margin_right = 1094.0
margin_bottom = 590.0
[node name="MarginContainer_NOTHING" type="MarginContainer" parent="."]
margin_top = 594.0
margin_right = 308.0
margin_bottom = 630.0
[node name="PanelContainer_NOTHING" type="PanelContainer" parent="."]
margin_left = 312.0
margin_top = 594.0
margin_right = 395.0
margin_bottom = 630.0
[node name="TabContainer" type="TabContainer" parent="."]
margin_left = 399.0
margin_top = 594.0
margin_right = 479.0
margin_bottom = 630.0
[node name="ViewportContainer" type="ViewportContainer" parent="."]
margin_left = 483.0
margin_top = 594.0
margin_right = 689.0
margin_bottom = 630.0
[node name="ColorRect" type="ColorRect" parent="."]
margin_left = 693.0
margin_top = 594.0
margin_right = 909.0
margin_bottom = 630.0
[node name="GraphEdit" type="GraphEdit" parent="."]
margin_left = 913.0
margin_top = 594.0
margin_right = 960.0
margin_bottom = 630.0
scroll_offset = Vector2( -47, 0 )
[node name="HScrollBar_NOTHING" type="HScrollBar" parent="."]
margin_left = 964.0
margin_top = 594.0
margin_right = 1016.0
margin_bottom = 606.0
[node name="VScrollBar_NOTHING" type="VScrollBar" parent="."]
margin_left = 1020.0
margin_top = 594.0
margin_right = 1032.0
margin_bottom = 630.0
[node name="HSlider_NOTHING" type="HSlider" parent="."]
margin_left = 1036.0
margin_top = 594.0
margin_right = 1094.0
margin_bottom = 610.0
[node name="VSlider_NOTHING" type="VSlider" parent="."]
margin_top = 634.0
margin_right = 16.0
margin_bottom = 658.0
[node name="ProgressBar" type="ProgressBar" parent="."]
margin_left = 312.0
margin_top = 634.0
margin_right = 395.0
margin_bottom = 648.0
[node name="SpinBox" type="SpinBox" parent="."]
margin_left = 399.0
margin_top = 634.0
margin_right = 479.0
margin_bottom = 658.0
[node name="TextureProgress" type="TextureProgress" parent="."]
margin_left = 483.0
margin_top = 634.0
margin_right = 689.0
margin_bottom = 658.0
[node name="HSeparator" type="HSeparator" parent="."]
margin_left = 693.0
margin_top = 634.0
margin_right = 909.0
margin_bottom = 658.0
[node name="VSeparator" type="VSeparator" parent="."]
margin_left = 913.0
margin_top = 634.0
margin_right = 960.0
margin_bottom = 658.0
[node name="ItemList" type="ItemList" parent="."]
margin_left = 964.0
margin_top = 634.0
margin_right = 1016.0
margin_bottom = 658.0
[node name="Label" type="Label" parent="."]
margin_left = 1020.0
margin_top = 639.0
margin_right = 1032.0
margin_bottom = 653.0
[node name="LineEdit" type="LineEdit" parent="."]
margin_left = 1036.0
margin_top = 634.0
margin_right = 1094.0
margin_bottom = 658.0
caret_blink = true
[node name="NinePatchRect" type="NinePatchRect" parent="."]
margin_top = 662.0
margin_right = 308.0
margin_bottom = 686.0
[node name="Panel_NOTHING" type="Panel" parent="."]
margin_left = 312.0
margin_top = 662.0
margin_right = 395.0
margin_bottom = 686.0
[node name="ReferenceRect" type="ReferenceRect" parent="."]
margin_left = 399.0
margin_top = 662.0
margin_right = 479.0
margin_bottom = 686.0
[node name="RichTextLabel" type="RichTextLabel" parent="."]
margin_left = 483.0
margin_top = 662.0
margin_right = 689.0
margin_bottom = 686.0
[node name="Tabs" type="Tabs" parent="."]
margin_left = 693.0
margin_top = 662.0
margin_right = 909.0
margin_bottom = 686.0
[node name="TextEdit" type="TextEdit" parent="."]
margin_left = 913.0
margin_top = 662.0
margin_right = 960.0
margin_bottom = 686.0
[node name="TextureRect" type="TextureRect" parent="."]
margin_left = 964.0
margin_top = 662.0
margin_right = 1016.0
margin_bottom = 686.0
[node name="Tree" type="Tree" parent="."]
margin_left = 1020.0
margin_top = 662.0
margin_right = 1032.0
margin_bottom = 686.0
[node name="VideoPlayer" type="VideoPlayer" parent="."]
margin_left = 1036.0
margin_top = 662.0
margin_right = 1094.0
margin_bottom = 686.0
__meta__ = {
"_edit_use_anchors_": false
}

View File

@ -1,80 +0,0 @@
[gd_scene load_steps=5 format=2]
[sub_resource type="Animation" id=1]
resource_name = "New Anim"
tracks/0/type = "method"
tracks/0/path = NodePath("../Tween")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 1.4, 4.6, 8.1 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"values": [ {
"args": [ ],
"method": "stop_all"
}, {
"args": [ ],
"method": "resume_all"
}, {
"args": [ ],
"method": "is_active"
} ]
}
[sub_resource type="AnimationNodeBlendSpace1D" id=2]
[sub_resource type="AudioStreamSample" id=3]
[sub_resource type="Environment" id=4]
[node name="OtherALL" type="Node"]
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
root_node = NodePath("../AudioStreamPlayer")
"anims/New Anim" = SubResource( 1 )
[node name="AnimationTree" type="AnimationTree" parent="."]
tree_root = SubResource( 2 )
anim_player = NodePath("../AnimationPlayer")
parameters/blend_position = 0
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = SubResource( 3 )
volume_db = 0.066
pitch_scale = 2.48
[node name="CanvasLayer" type="CanvasLayer" parent="."]
layer = 55
offset = Vector2( 0.019, 0 )
transform = Transform2D( 1, 0, 0, 1, 0.019, 0 )
follow_viewport_enable = true
[node name="ParallaxBackground" type="ParallaxBackground" parent="."]
scroll_offset = Vector2( 0.026, 0 )
scroll_base_offset = Vector2( 0.038, 0 )
scroll_base_scale = Vector2( 1, 1.045 )
[node name="HTTPRequest" type="HTTPRequest" parent="."]
use_threads = true
[node name="ResourcePreloader" type="ResourcePreloader" parent="."]
[node name="SkeletonIK" type="SkeletonIK" parent="."]
process_priority = 1
interpolation = 0.942
target = Transform( 2.49, 1.02, -0.07, 1.15, 1, -1.97, -0.7, -1.01, 2.42, -0.7, -0.59, -0.29 )
magnet = Vector3( 2.8, -3.69, -0.95 )
target_node = NodePath("../ResourcePreloader")
[node name="Timer" type="Timer" parent="."]
[node name="Tween" type="Tween" parent="."]
repeat = true
playback/repeat = true
[node name="Viewport" type="Viewport" parent="."]
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource( 4 )

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=10 format=2]
[gd_scene load_steps=8 format=2]
[ext_resource path="res://Nodes/Nodes.tscn" type="PackedScene" id=1]
[ext_resource path="res://AIO/Operators/Operators.tscn" type="PackedScene" id=5]
@ -6,8 +6,6 @@
[ext_resource path="res://Rendering/Lights3D/Lights3D.tscn" type="PackedScene" id=7]
[ext_resource path="res://Rendering/Lights2D/Lights2D.tscn" type="PackedScene" id=8]
[ext_resource path="res://Physics/3D/Physics3D.tscn" type="PackedScene" id=9]
[ext_resource path="res://Text/Text.tscn" type="PackedScene" id=10]
[ext_resource path="res://AIO/AllNodes/ALL.tscn" type="PackedScene" id=11]
[ext_resource path="res://ReparentingDeleting/ReparentingDeleting.tscn" type="PackedScene" id=12]
[node name="All" type="Node"]
@ -24,14 +22,10 @@
[node name="Lights3D" parent="Rendering" instance=ExtResource( 7 )]
[node name="Text" parent="." instance=ExtResource( 10 )]
[node name="ReparentingDeleting" parent="." instance=ExtResource( 12 )]
[node name="AIO" type="Node" parent="."]
[node name="ALL" parent="AIO" instance=ExtResource( 11 )]
[node name="Node2D" parent="AIO" instance=ExtResource( 5 )]
[node name="Operators" parent="AIO" instance=ExtResource( 5 )]
[node name="MainScenes" parent="." instance=ExtResource( 1 )]

View File

@ -20,7 +20,6 @@ const alone_steps : Array = [
"res://Rendering/Lights2D/Lights2D.tscn",
"res://Rendering/Lights3D/Lights3D.tscn",
"res://ReparentingDeleting/ReparentingDeleting.tscn",
"res://Text/Text.tscn",
]
# All scenes run in one step
@ -28,7 +27,6 @@ const alone_steps : Array = [
const all_in_one : Array = [
"res://AIO/Operators/Operators.tscn",
"res://AutomaticBugs/FunctionExecutor.tscn",
#"res://AIO/AllNodes/ALL.tscn", # Take too much time - opens ~ 20 seconds in CI inside xvfb-run
]
func _init():
@ -48,7 +46,8 @@ func _init():
func _process(delta: float) -> void:
var current_run_time : int = OS.get_ticks_msec() - start_time
while current_run_time > time_to_print_next_time: # This will allow to properly regulate time under heavy operations(e.g. Thread sanitizer)
# While loop instead if, will allow to properly flush results under heavy operations(e.g. Thread sanitizer)
while current_run_time > time_to_print_next_time:
print("Test is running now " + str(int(time_to_print_next_time / 1000)) + " seconds")
time_to_print_next_time += PRINT_TIME_EVERY_MILISECONDS

View File

@ -1,170 +1,175 @@
extends Node
var regression_test_project : bool = true # Set it to true in RegressionTestProject
# Contains info about disabled classes
# Also allows to get list of available classes
var properties_exceptions : Array = [
"user_data",
"config_file",
"",
"",
]
var function_exceptions : Array = [
# They exists without assigment like Class.method, because they may be a parent of other objects and children also should have disabled child.method, its children also etc. which is too much to do
"align",# GH 45976
"_screen_pick_pressed",# GH 45977
"debug_bake",# GH 45978
"bake", # GH 45978
"_editor_settings_changed",# GH 45979
"_mesh_changed",# GH 45980
"_submenu_timeout", # GH 45981
"set_data", # GH 45995 - probably this will cause a lot of different errors in other classes
"_set_user_data", # GH 45996
"set_config_file", # GH 45997
"_gui_input", # GH 45998
"_unhandled_key_input", # GH 45998
"navpoly_add", #GH 43288
"create_from_mesh", #GH 45999
"_thread_done", #GH 46000
"generate", #GH 46001
"_proximity_group_broadcast", #GH 46002
"_direct_state_changed", #GH 46003
"create_from", #GH 46004
"create_from_blend_shape", #GH 46004
"append_from", #GH 46004
"get_column_width", #GH 46005
"_unhandled_input", # TODO
"_input", # TODO
"lightmap_unwrap", #GH 46007 - memory leak
"_input_type_changed", #GH 46011
"add_node", #GH 46012
"play", #GH 46013
"connect_nodes_forced", #GH 46014
"_set_tile_data", #GH 46015
"add_image", #GH 46016
"_edit_set_state", #GH 46017
"_edit_set_position", #GH 46018
"_edit_set_rect", #GH 46018
"get", #GH 46019
"instance_has", #GH 46020
"_update_shader", #GH 46062
"generate_tangents", #GH 46059
"get_var", #GH 46096
"force_drag", #GH 46114
"set_script", #GH 46120
"getvar", #GH 46019
"get_available_chars", #GH 46118
"set_primary_interface", #GH 46180
"add_feed", #GH 46181
"open_midi_inputs", #GH 46183
"get_unix_time_from_datetime", #GH 46188
"set_icon", #GH 46189
"set_window_size", #GH 46187
"get_screen_size", #GH 46186
"get_screen_position", #GH 46185
"set_current_screen", #GH 46184
"build_capsule_planes", #GH
"build_cylinder_planes", #GH
"get_latin_keyboard_variant", #GH TODO Memory Leak
"add_feed", #GH
"poll", #GH - HTTP CLIENT
"make_atlas", #GH
"set_editor_hint", #GH
"", #GH
"_set_user_data",
"get_packet", # TODO
"create_from_mesh",
# They exists without assigment like Class.method, because they may be a parent of other objects and children also should have disabled child.method, its children also etc. which is too much to do
"connect_to_signal", # GH 47572
"set_config_file", # GH 45997
"class_get_property", # GH 47573
"class_set_property", # GH 47573
"_editor_settings_changed",# GH 45979
"_submenu_timeout", # GH 45981
"_gui_input", # GH 45998
"_unhandled_key_input", # GH 45998
"_thread_done", #GH 46000
"generate", #GH 46001
"_proximity_group_broadcast", #GH 46002
"_direct_state_changed", #GH 46003
"create_from", #GH 46004
"create_from_blend_shape", #GH 46004
"append_from", #GH 46004
"_unhandled_input", # TODO
"_input", # TODO
"_set_tile_data", #GH 46015
"get", #GH 46019
"instance_has", #GH 46020
"get_var", #GH 46096
"force_drag", #GH 46114
"set_script", #GH 46120
"getvar", #GH 46019
"get_available_chars", #GH 46118
"open_midi_inputs", #GH 46183
"set_icon", #GH 46189
"get_latin_keyboard_variant", #GH TODO Memory Leak
"set_editor_hint", #GH 46252
"get_item_at_position", #TODO hard to find
"set_probe_data", #GH 46570
"_range_click_timeout",
"draw", #GH 46648
"get_indexed", #GH 46019
"_vp_input", # TODO
"_vp_unhandled_input", # TODO
"remove_joy_mapping", #GH 46754
"add_joy_mapping", #GH 46754
"add_vertex", #GH 47066
"create_client", # TODO, strange memory leak
"create_shape_owner", #47135
"shape_owner_get_owner", #47135
"collide", #GH 46137
"collide_and_get_contacts", #GH 46137
"collide_with_motion", #GH 46137
"collide_with_motion_and_get_contacts", #GH 46137
"collide", #GH 46137
"collide_and_get_contacts", #GH 46137
"collide_with_motion", #GH 46137
"collide_with_motion_and_get_contacts", #GH 46137
# TODO Check this later
"propagate_notification",
"notification",
# TODO Check this later
"propagate_notification",
"notification",
# TODO Adds big spam when i>100 - look for possiblity to
"add_sphere",
# Spam when i~1000 - change to specific
"update_bitmask_region",
# TODO Adds big spam when i>100 - look for possiblity to
"add_sphere",
"_update_inputs", # Cause big spam with add_input
# Spam when i~1000 - change to specific
"update_bitmask_region",
"set_enabled_inputs",
# Slow Function
"_update_sky",
# Slow Function
"_update_sky",
# Undo/Redo function which doesn't provide enough information about types of objects, probably due vararg(variable size argument)
"add_do_method",
"add_undo_method",
# Undo/Redo function which doesn't provide enough information about types of objects, probably due vararg(variable size argument)
"add_do_method",
"add_undo_method",
# Do not save files and create files and folders
"pck_start",
"save",
"save_png",
"save_to_wav",
"save_to_file",
"make_dir",
"make_dir_recursive",
"save_encrypted",
"save_encrypted_pass",
"dump_resources_to_file",
"dump_memory_to_file",
# This also allow to save files
"open",
"open_encrypted",
"open_encrypted_with_pass",
"open_compressed",
# Do not save files and create files and folders
"pck_start",
"save",
"save_png",
"save_to_wav",
"save_to_file",
"make_dir",
"make_dir_recursive",
"save_encrypted",
"save_encrypted_pass",
"save_exr",
"dump_resources_to_file",
"dump_memory_to_file",
# This also allow to save files
"open",
"open_encrypted",
"open_encrypted_with_pass",
"open_compressed",
# Do not warp mouse
"warp_mouse",
"warp_mouse_position",
# Do not warp mouse
"warp_mouse",
"warp_mouse_position",
# OS
"kill",
"shell_open",
"execute",
"delay_usec",
"delay_msec",
"alert", # Stupid alert window opens
# OS
"kill",
"shell_open",
"execute",
"delay_usec",
"delay_msec",
"alert", # Stupid alert window opens
# Godot Freeze
"wait_to_finish",
"accept_stream",
"connect_to_stream",
"discover",
"wait",
# Godot Freeze
"wait_to_finish",
"accept_stream",
"connect_to_stream",
"discover",
"wait",
"debug_bake",
"bake",
"_create", # TODO Check
"_create", # TODO Check
"set_gizmo", # Stupid function, needs as parameter an object which can't be instanced # TODO, create issue to hide it
"set_gizmo", # Stupid function, needs as parameter an object which can't be instanced # TODO, create issue to hide it
# Spams Output
"print_tree",
"print_stray_nodes",
"print_tree_pretty",
"print_all_textures_by_size",
"print_all_resources",
"print_resources_in_use",
# Spams Output
"print_tree",
"print_stray_nodes",
"print_tree_pretty",
"print_all_textures_by_size",
"print_all_resources",
"print_resources_in_use",
# Do not call other functions
"_call_function",
"call",
"call_deferred",
"callv",
# Looks like a bug in FuncRef, probably but not needed, because it call other functions
"call_func",
# Too dangerous, because add, mix and remove randomly nodes and objects
"replace_by",
"create_instance",
"set_owner",
"set_root_node",
"instance",
"init_ref",
"reference",
"unreference",
"new",
"duplicate",
"queue_free",
"free",
"remove_and_skip",
"remove_child",
"move_child",
"raise",
"add_child",
"add_child_below_node",
# Do not call other functions
"_call_function",
"call",
"call_deferred",
"callv",
# Looks like a bug in FuncRef, probably but not needed, because it call other functions
"call_func",
# Too dangerous, because add, mix and remove randomly nodes and objects
"replace_by",
"create_instance",
"set_owner",
"set_root_node",
"instance",
"init_ref",
"reference",
"unreference",
"new",
"duplicate",
"queue_free",
"free",
"remove_and_skip",
"remove_child",
"move_child",
"raise",
"add_child",
"add_child_below_node",
]
var exported : Array = [
"get_bind_bone",
"get_bind_name",
"get_bind_pose",
]
# List of slow functions, which may frooze project
# List of slow functions, which may frooze project(not simple executing each function alone)
var slow_functions : Array = [
"interpolate_baked",
"get_baked_length",
@ -217,15 +222,68 @@ var invalid_signals : Array = [
"data_channel_received",
"",
]
# Used only in ValueCreator
var disabled_classes : Array = [
"ProjectSettings", # Don't mess with project settings, because they can broke entire your workflow
"EditorSettings", # Also don't mess with editor settings
"SceneTree", # Broke camera visibility
"_OS", # This may sometimes crash compositor, but it should be tested manually sometimes
"GDScript", # Broke script
# This classes have problems with static/non static methods
"PhysicsDirectSpaceState",
"Physics2DDirectSpaceState",
"PhysicsDirectBodyState",
"Physics2DDirectBodyState",
"BulletPhysicsDirectSpaceState",
"InputDefault",
"IP_Unix",
"JNISingleton",
# Just don't use these because they are not normal things
"_Thread",
"_Semaphore",
"_Mutex",
]
# GH 47358
func _init():
function_exceptions.append_array(exported)
# Checks if function can be executed
# Looks at its arguments an
func check_if_is_allowed(method_data : Dictionary) -> bool:
# Function is virtual, so we just skip it
if method_data["flags"] == method_data["flags"] | METHOD_FLAG_VIRTUAL:
return false
for arg in method_data["args"]:
var name_of_class : String = arg["class_name"]
if name_of_class.empty():
continue
if name_of_class in disabled_classes:
return false
if name_of_class.find("Server") != -1 && ClassDB.class_exists(name_of_class) && !ClassDB.is_parent_class(name_of_class,"Reference"):
return false
if name_of_class.find("Editor") != -1: # TODO not sure about it
return false
#This is only for RegressionTestProject, because it needs for now clear visual info what is going on screen, but some nodes broke view
if regression_test_project:
if !ClassDB.is_parent_class(name_of_class, "Node") && !ClassDB.is_parent_class(name_of_class, "Reference"):
return false
# In case of adding new type, this prevents from crashing due not recognizing this type
var t : int = arg["type"]
if !(t == TYPE_NIL || t == TYPE_AABB || t == TYPE_ARRAY || t == TYPE_BASIS || t == TYPE_BOOL || t == TYPE_COLOR || t == TYPE_COLOR_ARRAY || t == TYPE_DICTIONARY || t == TYPE_INT || t == TYPE_INT_ARRAY || t == TYPE_NODE_PATH || t == TYPE_OBJECT || t == TYPE_PLANE || t == TYPE_QUAT || t == TYPE_RAW_ARRAY || t == TYPE_REAL || t == TYPE_REAL_ARRAY || t == TYPE_RECT2 || t == TYPE_RID || t == TYPE_STRING || t == TYPE_TRANSFORM || t == TYPE_TRANSFORM2D || t == TYPE_VECTOR2 || t == TYPE_VECTOR2_ARRAY || t == TYPE_VECTOR3 || t == TYPE_VECTOR3_ARRAY):
print("----------------------------------------------------------- TODO - MISSING TYPE, ADD SUPPORT IT")
return false
return true
# Return all available classes to instance and test
func get_list_of_available_classes() -> Array:
func get_list_of_available_classes(must_be_instantable : bool = true) -> Array:
var full_class_list : Array = Array(ClassDB.get_class_list())
var classes : Array = []
full_class_list.sort()
@ -236,13 +294,21 @@ func get_list_of_available_classes() -> Array:
if name_of_class in disabled_classes:
continue
if name_of_class.find("Server") != -1:
# if rr < 550:
# continue
#This is only for RegressionTestProject, because it needs for now clear visual info what is going on screen, but some nodes broke view
if regression_test_project:
if !ClassDB.is_parent_class(name_of_class, "Node") && !ClassDB.is_parent_class(name_of_class, "Reference"):
continue
if name_of_class.find("Server") != -1 && !ClassDB.is_parent_class(name_of_class,"Reference"):
continue
if !ClassDB.is_parent_class(name_of_class, "Node") && !ClassDB.is_parent_class(name_of_class, "Reference"):
if name_of_class.find("Editor") != -1: # TODO not sure about it
continue
if ClassDB.can_instance(name_of_class):
if !must_be_instantable || ClassDB.can_instance(name_of_class):
classes.push_back(name_of_class)
c+= 1

View File

@ -1,27 +1,33 @@
extends Node
# Execute every object function
var debug_print: bool = true
var add_to_tree: bool = true # Adds nodes to tree
var add_to_tree: bool = false # Adds nodes to tree, freeze godot when removing a lot of nodes
var use_parent_methods: bool = false # Allows Node2D use Node methods etc. - it is a little slow option which rarely shows
var use_always_new_object: bool = true # Don't allow to "remeber" other function effects
var exiting: bool = true
func _ready() -> void:
tests_all_functions()
if BasicData.regression_test_project:
tests_all_functions()
func _process(_delta: float) -> void:
if !BasicData.regression_test_project:
tests_all_functions()
if exiting:
get_tree().quit()
# Test all functions
func tests_all_functions() -> void:
for name_of_class in BasicData.get_list_of_available_classes():
if name_of_class == "_OS": # Do not change size of window
continue
# Instance object to be able to execute on it specific functions and later delete to prevent memory leak if it is a Node
var object: Object = ClassDB.instance(name_of_class)
assert(object != null) # This should be checked before when collectiong functions
if add_to_tree:
if object is Node:
add_child(object)
var method_list: Array = ClassDB.class_get_method_list(name_of_class, ! use_parent_methods)
var method_list: Array = ClassDB.class_get_method_list(name_of_class, !use_parent_methods)
## Exception
for exception in BasicData.function_exceptions:
@ -34,107 +40,38 @@ func tests_all_functions() -> void:
method_list.remove(index)
if debug_print:
print("############### CLASS ############### - " + name_of_class)
print("#################### " + name_of_class +" ####################")
for _i in range(1):
for method_data in method_list:
if !BasicData.check_if_is_allowed(method_data):
continue
for method_data in method_list:
# Function is virtual, so we just skip it
if method_data["flags"] == method_data["flags"] | METHOD_FLAG_VIRTUAL:
continue
if debug_print:
print(name_of_class + "." + method_data["name"])
if debug_print:
print(name_of_class + "." + method_data["name"])
var arguments: Array = ParseArgumentType.parse_and_return_objects(method_data, debug_print)
object.callv(method_data["name"], arguments)
var arguments: Array = return_for_all(method_data)
object.callv(method_data["name"], arguments)
for argument in arguments:
if argument != null:
if argument is Node:
argument.queue_free()
elif argument is Object && !(argument is Reference):
argument.free()
for argument in arguments:
assert(argument != null)
if argument is Node:
argument.queue_free()
elif argument is Object && ! (argument is Reference):
argument.free()
if use_always_new_object:
assert(object != null, "Object must be instantable")
if object is Node:
object.queue_free()
elif object is Object && !(object is Reference):
object.free()
if use_always_new_object:
assert(object != null)
if object is Node:
object.queue_free()
elif object is Object && ! (object is Reference):
object.free()
object = ClassDB.instance(name_of_class)
if add_to_tree:
if object is Node:
add_child(object)
object = ClassDB.instance(name_of_class)
if object is Node: # Just prevent memory leak
if object is Node:
object.queue_free()
elif object is Object && ! (object is Reference):
elif object is Object && !(object is Reference):
object.free()
func return_for_all(method_data: Dictionary) -> Array:
var arguments_array: Array = []
ValueCreator.number = 10
ValueCreator.random = false
ValueCreator.should_be_always_valid = false
for argument in method_data["args"]:
match argument.type:
TYPE_NIL: # Looks that this means VARIANT not null
arguments_array.push_back(false) # TODO randomize this
TYPE_AABB:
arguments_array.push_back(ValueCreator.get_aabb())
TYPE_ARRAY:
arguments_array.push_back(ValueCreator.get_array())
TYPE_BASIS:
arguments_array.push_back(ValueCreator.get_basis())
TYPE_BOOL:
arguments_array.push_back(ValueCreator.get_bool())
TYPE_COLOR:
arguments_array.push_back(ValueCreator.get_color())
TYPE_COLOR_ARRAY:
arguments_array.push_back(ValueCreator.get_pool_color_array())
TYPE_DICTIONARY:
arguments_array.push_back(ValueCreator.get_dictionary())
TYPE_INT:
arguments_array.push_back(ValueCreator.get_int())
TYPE_INT_ARRAY:
arguments_array.push_back(ValueCreator.get_pool_int_array())
TYPE_NODE_PATH:
arguments_array.push_back(ValueCreator.get_nodepath())
TYPE_OBJECT:
arguments_array.push_back(ValueCreator.get_object(argument["class_name"]))
TYPE_PLANE:
arguments_array.push_back(ValueCreator.get_plane())
TYPE_QUAT:
arguments_array.push_back(ValueCreator.get_quat())
TYPE_RAW_ARRAY:
arguments_array.push_back(ValueCreator.get_pool_byte_array())
TYPE_REAL:
arguments_array.push_back(ValueCreator.get_float())
TYPE_REAL_ARRAY:
arguments_array.push_back(ValueCreator.get_pool_real_array())
TYPE_RECT2:
arguments_array.push_back(ValueCreator.get_rect2())
TYPE_RID:
arguments_array.push_back(RID())
TYPE_STRING:
arguments_array.push_back(ValueCreator.get_string())
TYPE_STRING_ARRAY:
arguments_array.push_back(ValueCreator.get_pool_string_array())
TYPE_TRANSFORM:
arguments_array.push_back(ValueCreator.get_transform())
TYPE_TRANSFORM2D:
arguments_array.push_back(ValueCreator.get_transform2D())
TYPE_VECTOR2:
arguments_array.push_back(ValueCreator.get_vector2())
TYPE_VECTOR2_ARRAY:
arguments_array.push_back(ValueCreator.get_pool_vector2_array())
TYPE_VECTOR3:
arguments_array.push_back(ValueCreator.get_vector3())
TYPE_VECTOR3_ARRAY:
arguments_array.push_back(ValueCreator.get_pool_vector3_array())
_:
assert(false) # Missed some types, add it
if debug_print:
print("Parameters " + str(arguments_array))
return arguments_array

View File

@ -2,5 +2,5 @@
[ext_resource path="res://AutomaticBugs/FunctionExecutor.gd" type="Script" id=1]
[node name="FunctionExecutor" type="Node2D"]
[node name="FunctionExecutor" type="Node"]
script = ExtResource( 1 )

View File

@ -0,0 +1,217 @@
extends Node
# Parse arguments and return needed info/objects etc.
class SingleArgument:
var name: String # E.G. var roman, can be empty, so temp variable isn't created(nodes and objects must be created with temp_variable due to memory leaks)
var type: String # np. Vector2 or Object
var value: String # np. randi() % 100 or
var is_object: bool = false # Check if this is object e.g. Node not Vector2
var is_only_object: bool = false # Only needs to freed with .free()
var is_only_reference: bool = false # Don't needs to be removed manually
var is_only_node: bool = false # Needs to be removed with .queue_free()
func create_gdscript_arguments(arguments: Array) -> Array:
var argument_array: Array = []
ValueCreator.number = 10
ValueCreator.random = true
ValueCreator.should_be_always_valid = true # DO NOT CHANGE, BECAUSE NON VALID VALUES WILL SHOW GDSCRIPT ERRORS!
var counter = 0
for argument in arguments:
counter += 1
var sa: SingleArgument = SingleArgument.new()
sa.name = "variable" + str(counter)
match argument["type"]:
TYPE_NIL: # Looks that this means VARIANT not null
sa.type = "Variant"
sa.value = "false"
TYPE_AABB:
sa.type = "AABB"
sa.value = ValueCreator.get_aabb_string()
TYPE_ARRAY:
sa.type = "Array"
sa.value = "[]"
TYPE_BASIS:
sa.type = "Basis"
sa.value = ValueCreator.get_basis_string()
TYPE_BOOL:
sa.type = "bool"
sa.value = ValueCreator.get_bool_string().to_lower()
TYPE_COLOR:
sa.type = "Color"
sa.value = ValueCreator.get_color_string()
TYPE_COLOR_ARRAY:
sa.type = "PoolColorArray"
sa.value = "PoolColorArray([])"
TYPE_DICTIONARY:
sa.type = "Dictionary"
sa.value = "{}" # TODO Why not all use ValueCreator?
TYPE_INT:
sa.type = "int"
sa.value = ValueCreator.get_int_string()
TYPE_INT_ARRAY:
sa.type = "PoolIntArray"
sa.value = "PoolIntArray([])"
TYPE_NODE_PATH:
sa.type = "NodePath"
sa.value = "NodePath(\".\")"
TYPE_OBJECT:
sa.type = ValueCreator.get_object_string(argument["class_name"])
sa.value = sa.type + ".new()"
sa.is_object = true
if ClassDB.is_parent_class(sa.type, "Node"):
sa.is_only_node = true
elif ClassDB.is_parent_class(sa.type, "Reference"):
sa.is_only_reference = true
else:
sa.is_only_object = true
TYPE_PLANE:
sa.type = "Plane"
sa.value = ValueCreator.get_plane_string()
TYPE_QUAT:
sa.type = "Quat"
sa.value = ValueCreator.get_quat_string()
TYPE_RAW_ARRAY:
sa.type = "PoolByteArray"
sa.value = "PoolByteArray([])"
TYPE_REAL:
sa.type = "float"
sa.value = ValueCreator.get_float_string()
TYPE_REAL_ARRAY:
sa.type = "PoolRealArray"
sa.value = "PoolRealArray([])"
TYPE_RECT2:
sa.type = "Rect2"
sa.value = ValueCreator.get_rect2_string()
TYPE_RID:
sa.type = "RID"
sa.value = "RID()"
TYPE_STRING:
sa.type = "String"
sa.value = ValueCreator.get_string_string()
TYPE_STRING_ARRAY:
sa.type = "PoolStringArray"
sa.value = "PoolStringArray([])"
TYPE_TRANSFORM:
sa.type = "Transform"
sa.value = ValueCreator.get_transform_string()
TYPE_TRANSFORM2D:
sa.type = "Transform2D"
sa.value = ValueCreator.get_transform2D_string()
TYPE_VECTOR2:
sa.type = "Vector2"
sa.value = ValueCreator.get_vector2_string()
TYPE_VECTOR2_ARRAY:
sa.type = "PoolVector2Array"
sa.value = "PoolVector2Array([])"
TYPE_VECTOR3:
sa.type = "Vector3"
sa.value = ValueCreator.get_vector3_string()
TYPE_VECTOR3_ARRAY:
sa.type = "PoolVector3Array"
sa.value = "PoolVector3Array([])"
_:
assert(false, "Missing type, needs to be added to project")
argument_array.append(sa)
return argument_array
func parse_and_return_objects(method_data: Dictionary, debug_print: bool = false) -> Array:
var arguments_array: Array = []
if BasicData.regression_test_project:
ValueCreator.number = 100
ValueCreator.random = false # Results in RegressionTestProject must be always reproducible
else:
ValueCreator.number = 1000
ValueCreator.random = true
ValueCreator.should_be_always_valid = false
for argument in method_data["args"]:
match argument.type:
TYPE_NIL: # Looks that this means VARIANT not null
if ValueCreator.random == false:
arguments_array.push_back(false)
else:
if randi() % 3:
arguments_array.push_back(ValueCreator.get_array())
elif randi() % 3:
arguments_array.push_back(ValueCreator.get_object("Object"))
elif randi() % 3:
arguments_array.push_back(ValueCreator.get_dictionary())
elif randi() % 3:
arguments_array.push_back(ValueCreator.get_string())
elif randi() % 3:
arguments_array.push_back(ValueCreator.get_int())
else:
arguments_array.push_back(ValueCreator.get_basis())
TYPE_AABB:
arguments_array.push_back(ValueCreator.get_aabb())
TYPE_ARRAY:
arguments_array.push_back(ValueCreator.get_array())
TYPE_BASIS:
arguments_array.push_back(ValueCreator.get_basis())
TYPE_BOOL:
arguments_array.push_back(ValueCreator.get_bool())
TYPE_COLOR:
arguments_array.push_back(ValueCreator.get_color())
TYPE_COLOR_ARRAY:
arguments_array.push_back(ValueCreator.get_pool_color_array())
TYPE_DICTIONARY:
arguments_array.push_back(ValueCreator.get_dictionary())
TYPE_INT:
arguments_array.push_back(ValueCreator.get_int())
TYPE_INT_ARRAY:
arguments_array.push_back(ValueCreator.get_pool_int_array())
TYPE_NODE_PATH:
arguments_array.push_back(ValueCreator.get_nodepath())
TYPE_OBJECT:
if ValueCreator.random && randi() % 2:
arguments_array.push_back(null)
else:
var obj: Object = ValueCreator.get_object(argument["class_name"])
arguments_array.push_back(obj)
assert(obj != null, "Failed to create an object of type " + argument["class_name"])
TYPE_PLANE:
arguments_array.push_back(ValueCreator.get_plane())
TYPE_QUAT:
arguments_array.push_back(ValueCreator.get_quat())
TYPE_RAW_ARRAY:
arguments_array.push_back(ValueCreator.get_pool_byte_array())
TYPE_REAL:
arguments_array.push_back(ValueCreator.get_float())
TYPE_REAL_ARRAY:
arguments_array.push_back(ValueCreator.get_pool_real_array())
TYPE_RECT2:
arguments_array.push_back(ValueCreator.get_rect2())
TYPE_RID:
arguments_array.push_back(RID())
TYPE_STRING:
arguments_array.push_back(ValueCreator.get_string())
TYPE_STRING_ARRAY:
arguments_array.push_back(ValueCreator.get_pool_string_array())
TYPE_TRANSFORM:
arguments_array.push_back(ValueCreator.get_transform())
TYPE_TRANSFORM2D:
arguments_array.push_back(ValueCreator.get_transform2D())
TYPE_VECTOR2:
arguments_array.push_back(ValueCreator.get_vector2())
TYPE_VECTOR2_ARRAY:
arguments_array.push_back(ValueCreator.get_pool_vector2_array())
TYPE_VECTOR3:
arguments_array.push_back(ValueCreator.get_vector3())
TYPE_VECTOR3_ARRAY:
arguments_array.push_back(ValueCreator.get_pool_vector3_array())
_:
assert(false, "Missing type, needs to be added to project")
if debug_print:
print("Parameters " + str(arguments_array))
return arguments_array

View File

@ -1,8 +1,10 @@
extends Node
# Creates random or not objects, variables etc.
var number: float = 0.0
var random: bool = false
var should_be_always_valid: bool = true # Generate only valid values e.g. to Node generate Node2D instead
var should_be_always_valid: bool = true # Generate only valid values e.g. to Node generate Node2D instead
var max_array_size: int = 15
@ -62,26 +64,44 @@ func get_bool_string() -> String:
func get_vector2() -> Vector2:
if random:
if randi() % 2:
return Vector2(get_float(), get_float()).normalized()
return Vector2(get_float(), get_float())
func get_vector2_string() -> String:
if random:
if randi() % 2:
return "Vector2(" + get_float_string() + ", " + get_float_string() + ").normalized()"
return "Vector2(" + get_float_string() + ", " + get_float_string() + ")"
func get_vector2_string_csharp() -> String:
if random:
if randi() % 2:
return "new Vector2(" + get_float_string() + ", " + get_float_string() + ").Normalized()"
return "new Vector2(" + get_float_string() + ", " + get_float_string() + ")"
func get_vector3() -> Vector3:
if random:
if randi() % 2:
return Vector3(get_float(), get_float(), get_float()).normalized()
return Vector3(get_float(), get_float(), get_float())
func get_vector3_string() -> String:
if random:
if randi() % 2:
return "Vector3(" + get_float_string() + ", " + get_float_string() + ", " + get_float_string() + ").normalized()"
return "Vector3(" + get_float_string() + ", " + get_float_string() + ", " + get_float_string() + ")"
func get_vector3_string_csharp() -> String:
if random:
if randi() % 2:
return "new Vector3(" + get_float_string() + ", " + get_float_string() + ", " + get_float_string() + ").Normalized()"
return "new Vector3(" + get_float_string() + ", " + get_float_string() + ", " + get_float_string() + ")"
@ -216,17 +236,24 @@ func get_nodepath_string_csharp() -> String:
func get_array() -> Array:
var array: Array = []
for _i in range(int(min(max_array_size, number))):
array.append([])
if random && randi() % 2:
array.append(randi() % 100)
else:
array.append([])
return Array([])
# TODO
func get_dictionary() -> Dictionary:
if random:
if randi() % 2:
return Dictionary({"roman": 22, 22: 25, BoxShape.new(): BoxShape.new()})
return Dictionary({})
func get_pool_string_array() -> PoolStringArray:
var array: Array = []
if random && randi() % 2:
return PoolStringArray(array)
for _i in range(int(min(max_array_size, number))):
array.append(get_string())
return PoolStringArray(array)
@ -234,6 +261,8 @@ func get_pool_string_array() -> PoolStringArray:
func get_pool_int_array() -> PoolIntArray:
var array: Array = []
if random && randi() % 2:
return PoolIntArray(array)
for _i in range(int(min(max_array_size, number))):
array.append(get_int())
return PoolIntArray(array)
@ -241,6 +270,8 @@ func get_pool_int_array() -> PoolIntArray:
func get_pool_byte_array() -> PoolByteArray:
var array: Array = []
if random && randi() % 2:
return PoolByteArray(array)
for _i in range(int(min(max_array_size, number))):
array.append(get_int())
return PoolByteArray(array)
@ -248,6 +279,8 @@ func get_pool_byte_array() -> PoolByteArray:
func get_pool_real_array() -> PoolRealArray:
var array: Array = []
if random && randi() % 2:
return PoolRealArray(array)
for _i in range(int(min(max_array_size, number))):
array.append(get_float())
return PoolRealArray(array)
@ -255,6 +288,8 @@ func get_pool_real_array() -> PoolRealArray:
func get_pool_vector2_array() -> PoolVector2Array:
var array: Array = []
if random && randi() % 2:
return PoolVector2Array(array)
for _i in range(int(min(max_array_size, number))):
array.append(get_vector2())
return PoolVector2Array(array)
@ -262,6 +297,8 @@ func get_pool_vector2_array() -> PoolVector2Array:
func get_pool_vector3_array() -> PoolVector3Array:
var array: Array = []
if random && randi() % 2:
return PoolVector3Array(array)
for _i in range(int(min(max_array_size, number))):
array.append(get_vector3())
return PoolVector3Array(array)
@ -269,13 +306,17 @@ func get_pool_vector3_array() -> PoolVector3Array:
func get_pool_color_array() -> PoolColorArray:
var array: Array = []
if random && randi() % 2:
return PoolColorArray(array)
for _i in range(int(min(max_array_size, number))):
array.append(get_color())
return PoolColorArray(array)
func get_object(object_name: String) -> Object:
assert(ClassDB.class_exists(object_name))
assert(ClassDB.class_exists(object_name), "Class " + object_name + " doesn't exists.")
if object_name == "PhysicsDirectSpaceState" || object_name == "Physics2DDirectSpaceState":
return BoxShape.new()
var a = 0
if random:
@ -287,7 +328,7 @@ func get_object(object_name: String) -> Object:
if (
ClassDB.can_instance(choosen_class)
&& (ClassDB.is_parent_class(choosen_class, "Node") || ClassDB.is_parent_class(choosen_class, "Reference"))
&& ! (choosen_class in BasicData.disabled_classes)
&& !(choosen_class in BasicData.disabled_classes)
):
return ClassDB.instance(choosen_class)
@ -295,40 +336,55 @@ func get_object(object_name: String) -> Object:
if should_be_always_valid:
var to_use_classes = ClassDB.get_inheriters_from_class(object_name)
to_use_classes.append(object_name)
if ! ClassDB.can_instance(object_name) && object_name in BasicData.disabled_classes:
assert(to_use_classes.size() > 0)
if !ClassDB.can_instance(object_name) && object_name in BasicData.disabled_classes:
assert(to_use_classes.size() > 0, "Cannot find proper instantable child for " + object_name)
while true:
a += 1
if a > 50:
# Object doesn't have children which can be instanced
# This shouldn't happens, but sadly happen with e.g. SpatialGizmo
assert(false)
assert(false, "Cannot find proper instantable child for " + object_name)
var choosen_class: String = to_use_classes[randi() % to_use_classes.size()]
if ClassDB.can_instance(choosen_class) && ! (choosen_class in BasicData.disabled_classes):
if ClassDB.can_instance(choosen_class) && !(choosen_class in BasicData.disabled_classes):
return ClassDB.instance(choosen_class)
else:
while true:
a += 1
if a > 50:
assert(false)
assert(false, "Cannot find proper instantable child for " + object_name)
var choosen_class: String = classes[randi() % classes.size()]
if ClassDB.can_instance(choosen_class) && ! ClassDB.is_parent_class(choosen_class, object_name) && ! (choosen_class in BasicData.disabled_classes):
if ClassDB.can_instance(choosen_class) && !ClassDB.is_parent_class(choosen_class, object_name) && !(choosen_class in BasicData.disabled_classes):
return ClassDB.instance(choosen_class)
assert(false) # Other argument types are not supported
# Non Node/Resource object
var to_use_classes = ClassDB.get_inheriters_from_class(object_name)
to_use_classes.append(object_name)
if !ClassDB.can_instance(object_name) && object_name in BasicData.disabled_classes:
assert(to_use_classes.size() > 0, "Cannot find proper instantable child for " + object_name)
while true:
a += 1
if a > 50:
# Object doesn't have children which can be instanced
# This shouldn't happens, but sadly happen with e.g. SpatialGizmo
assert(false, "Cannot find proper instantable child for " + object_name)
var choosen_class: String = to_use_classes[randi() % to_use_classes.size()]
if ClassDB.can_instance(choosen_class) && !(choosen_class in BasicData.disabled_classes):
return ClassDB.instance(choosen_class)
else:
if ClassDB.can_instance(object_name): # E.g. Texture is not instantable or shouldn't be, but LargeTexture is
return ClassDB.instance(object_name)
else: # Found child of non instantable object
var list_of_class = ClassDB.get_inheriters_from_class(object_name)
assert(list_of_class.size() > 0) # Number of inherited class of non instantable class must be greater than 0, otherwise this function would be useless
assert(list_of_class.size() > 0, "Cannot find proper instantable child for " + object_name) # Number of inherited class of non instantable class must be greater than 0, otherwise this function would be useless
for i in list_of_class:
if ClassDB.can_instance(i) && (ClassDB.is_parent_class(i, "Node") || ClassDB.is_parent_class(i, "Reference")):
return ClassDB.instance(i)
assert(false)
assert(false, "Cannot find proper instantable child for " + object_name)
assert(false)
assert(false, "Cannot find proper instantable child for " + object_name)
return BoxShape.new()
@ -350,15 +406,15 @@ func get_object_string(object_name: String) -> String:
if should_be_always_valid:
var to_use_classes = ClassDB.get_inheriters_from_class(object_name)
to_use_classes.append(object_name)
if ! ClassDB.can_instance(object_name):
assert(to_use_classes.size() > 0)
if !ClassDB.can_instance(object_name):
assert(to_use_classes.size() > 0, "Cannot find proper instantable child for " + object_name)
while true:
a += 1
if a > 30:
# Object doesn't have children which can be instanced
# This shouldn't happens, but sadly happen with e.g. SpatialGizmo
assert(false)
assert(false, "Cannot find proper instantable child for " + object_name)
var choosen_class: String = to_use_classes[randi() % to_use_classes.size()]
if ClassDB.can_instance(choosen_class):
return choosen_class
@ -366,23 +422,37 @@ func get_object_string(object_name: String) -> String:
while true:
a += 1
if a > 30:
assert(false)
assert(false, "Cannot find proper instantable child for " + object_name)
var choosen_class: String = classes[randi() % classes.size()]
if ! ClassDB.is_parent_class(choosen_class, object_name):
if !ClassDB.is_parent_class(choosen_class, object_name):
return choosen_class
assert(false) # Other argument types are not supported
# Non Node/Resource object
var to_use_classes = ClassDB.get_inheriters_from_class(object_name)
to_use_classes.append(object_name)
if !ClassDB.can_instance(object_name) && object_name in BasicData.disabled_classes:
assert(to_use_classes.size() > 0, "Cannot find proper instantable child for " + object_name)
while true:
a += 1
if a > 50:
# Object doesn't have children which can be instanced
# This shouldn't happens, but sadly happen with e.g. SpatialGizmo
assert(false, "Cannot find proper instantable child for " + object_name)
var choosen_class: String = to_use_classes[randi() % to_use_classes.size()]
if ClassDB.can_instance(choosen_class) && !(choosen_class in BasicData.disabled_classes):
return choosen_class
else:
if ClassDB.can_instance(object_name): # E.g. Texture is not instantable or shouldn't be, but LargeTexture is
return object_name
else: # Found child of non instantable object
var list_of_class = ClassDB.get_inheriters_from_class(object_name)
assert(list_of_class.size() > 0) # Number of inherited class of non instantable class must be greater than 0, otherwise this function would be useless
assert(list_of_class.size() > 0, "Cannot find proper instantable child for " + object_name) # Number of inherited class of non instantable class must be greater than 0, otherwise this function would be useless
for i in list_of_class:
if ClassDB.can_instance(i) && (ClassDB.is_parent_class(i, "Node") || ClassDB.is_parent_class(i, "Reference")):
return i
assert(false)
assert(false, "Cannot find proper instantable child for " + object_name)
assert(false)
assert(false, "Cannot find proper instantable child for " + object_name)
return "BoxMesh"

View File

@ -1,18 +0,0 @@
extends Label
const TIME : float = 0.3
var time_to_stop : float = TIME
var current_type : int = 0
func _process(delta: float) -> void:
time_to_stop -= delta
if time_to_stop < 0:
time_to_stop = TIME
current_type += 1
current_type %= 2
if current_type == 0:
set_text("ŚWIERSZCZ NAD GŻEGŻÓŁKĄ W ŻÓŁCI")
else:
text += "AQWAMARYNA"

View File

@ -1,12 +0,0 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://Text/Label.gd" type="Script" id=1]
[node name="Label" type="Label"]
margin_right = 83.0
margin_bottom = 14.0
text = "Stomatologia"
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}

View File

@ -1,18 +0,0 @@
extends RichTextLabel
const TIME : float = 0.3
var time_to_stop : float = TIME
var current_type : int = 0
func _process(delta: float) -> void:
time_to_stop -= delta
if time_to_stop < 0:
time_to_stop = TIME
current_type += 1
current_type %= 2
if current_type == 0:
set_text("ŚWIERSZCZ NAD GŻEGŻÓŁKĄ W ŻÓŁCI, Świeci nad Źrebięciem w ciągu szeleszczącej burzy")
else:
text += "AQWAMARYNA JEST ZROBIONA Z KROMKI PO MAŚLE I NAD REDUNDANCJĄ TRZEBA ZROBIĆ DWIE ABY SIĘ NIE POŚLIZGNĄĆ"

View File

@ -1,15 +0,0 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://Text/RichTextLabel.gd" type="Script" id=1]
[node name="RichTextLabel" type="RichTextLabel"]
anchor_right = 1.0
anchor_bottom = 1.0
size_flags_horizontal = 3
size_flags_vertical = 3
bbcode_text = "Szyszka"
text = "Szyszka"
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}

View File

@ -1,27 +0,0 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://Text/RichTextLabel.tscn" type="PackedScene" id=1]
[ext_resource path="res://Text/Label.tscn" type="PackedScene" id=2]
[node name="Text" type="GridContainer"]
anchor_right = 1.0
anchor_bottom = 1.0
columns = 5
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Label" parent="." instance=ExtResource( 2 )]
margin_top = 293.0
margin_bottom = 307.0
[node name="RichTextLabel" parent="." instance=ExtResource( 1 )]
anchor_right = 0.0
anchor_bottom = 0.0
margin_left = 87.0
margin_right = 321.0
margin_bottom = 600.0
bbcode_text = "Roman
"
text = "Roman
"

View File

@ -28,6 +28,7 @@ config/icon="res://icon.png"
Autoload="*res://Autoload/Autoload.gd"
ValueCreator="*res://AutomaticBugs/ValueCreator.gd"
BasicData="*res://AutomaticBugs/BasicData.gd"
ParseArgumentType="*res://AutomaticBugs/ParseArgumentType.gd"
[debug]