mirror of
https://github.com/Relintai/regression-test-project.git
synced 2024-11-12 10:25:30 +01:00
Remove text and non-script scenes and update fuzzer (#38)
This commit is contained in:
parent
9b0947fc80
commit
9714e049ae
File diff suppressed because one or more lines are too long
@ -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
|
@ -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 )]
|
@ -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
|
||||
}
|
@ -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 )
|
10
All.tscn
10
All.tscn
@ -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 )]
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 )
|
||||
|
217
AutomaticBugs/ParseArgumentType.gd
Normal file
217
AutomaticBugs/ParseArgumentType.gd
Normal 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
|
@ -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"
|
||||
|
@ -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"
|
@ -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
|
||||
}
|
@ -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ĄĆ"
|
@ -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
|
||||
}
|
@ -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
|
||||
"
|
@ -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]
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user