mirror of
https://github.com/Relintai/regression-test-project.git
synced 2024-12-23 13:57:21 +01:00
[4.0] Sync with 3.2 (#39)
This commit is contained in:
parent
86e0a6c326
commit
3cde738314
3
.gitignore
vendored
3
.gitignore
vendored
@ -8,6 +8,7 @@ logs/
|
||||
TEMP/
|
||||
#export_presets.cfg
|
||||
logs/
|
||||
.godot/
|
||||
.import/
|
||||
#.godot/
|
||||
.godot/imported/
|
||||
.godot/editor
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,660 +0,0 @@
|
||||
[gd_scene load_steps=37 format=2]
|
||||
|
||||
[ext_resource path="res://icon.png" type="Texture2D" id=50]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" 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="BoxMesh" id=3]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id=4]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id=5]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" 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="StandardMaterial3D" id=9]
|
||||
roughness_texture = SubResource( 8 )
|
||||
roughness_texture_channel = 1
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id=10]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id=11]
|
||||
vertex_color_use_as_albedo = true
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id=12]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id=13]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id=14]
|
||||
blend_mode = 1
|
||||
cull_mode = 1
|
||||
diffuse_mode = 1
|
||||
specular_mode = 1
|
||||
|
||||
[sub_resource type="BoxMesh" 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="StandardMaterial3D" id=17]
|
||||
|
||||
[sub_resource type="BoxMesh" id=18]
|
||||
|
||||
[sub_resource type="MultiMesh" id=19]
|
||||
transform_format = 1
|
||||
instance_count = 3
|
||||
mesh = SubResource( 18 )
|
||||
buffer = PackedFloat32Array( 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 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="BoxMesh" id=21]
|
||||
|
||||
[sub_resource type="BakedLightmapData" id=22]
|
||||
user_data = [ ]
|
||||
probe_data = {
|
||||
"bounds": AABB( 0, 0, 0, 0, 0, 0 ),
|
||||
"bsp": PackedInt32Array( ),
|
||||
"interior": false,
|
||||
"points": PackedVector3Array( ),
|
||||
"sh": PackedColorArray( ),
|
||||
"tetrahedra": PackedInt32Array( )
|
||||
}
|
||||
|
||||
[sub_resource type="BoxShape3D" id=23]
|
||||
margin = 0.5
|
||||
|
||||
[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="ConcavePolygonShape3D" 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]
|
||||
polygons = [ ]
|
||||
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": PackedVector3Array( 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": PackedFloat32Array( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 )
|
||||
}
|
||||
|
||||
[sub_resource type="BoxShape3D" id=33]
|
||||
margin = 1.21
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id=34]
|
||||
|
||||
[sub_resource type="BoxMesh" id=35]
|
||||
|
||||
[node name="3DALL" type="Node3D"]
|
||||
script = null
|
||||
|
||||
[node name="ARVROrigin" type="XROrigin3D" parent="."]
|
||||
world_scale = 1.01
|
||||
script = null
|
||||
|
||||
[node name="ARVRAnchor" type="XRAnchor3D" parent="ARVROrigin"]
|
||||
anchor_id = 32
|
||||
script = null
|
||||
|
||||
[node name="ARVRCamera_NOTHING" type="XRCamera3D" parent="ARVROrigin"]
|
||||
h_offset = 0.159
|
||||
v_offset = -0.909
|
||||
doppler_tracking = 1
|
||||
projection = 1
|
||||
size = 91.71
|
||||
near = 2235.15
|
||||
far = 1.1
|
||||
script = null
|
||||
|
||||
[node name="ARVRController" type="XRController3D" parent="ARVROrigin"]
|
||||
controller_id = 3
|
||||
script = null
|
||||
|
||||
[node name="Camera" type="Camera3D" 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
|
||||
script = null
|
||||
|
||||
[node name="ClippedCamera" type="ClippedCamera3D" parent="."]
|
||||
h_offset = 0.038
|
||||
v_offset = -0.146
|
||||
fov = 64.8
|
||||
size = 15954.2
|
||||
near = 0.45
|
||||
margin = 23.09
|
||||
script = null
|
||||
|
||||
[node name="InterpolatedCamera" type="Node" parent="."]
|
||||
script = null
|
||||
|
||||
[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 )
|
||||
frame = 2
|
||||
playing = true
|
||||
script = null
|
||||
|
||||
[node name="Sprite3D" type="Sprite3D" parent="."]
|
||||
flip_h = true
|
||||
flip_v = true
|
||||
texture = ExtResource( 50 )
|
||||
hframes = 13
|
||||
frame = 2
|
||||
script = null
|
||||
|
||||
[node name="CPUParticles" type="CPUParticles3D" 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
|
||||
script = null
|
||||
|
||||
[node name="CSGBox" type="CSGBox3D" parent="."]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 25.6943 )
|
||||
operation = 1
|
||||
invert_faces = true
|
||||
material = SubResource( 4 )
|
||||
script = null
|
||||
|
||||
[node name="CSGCylinder" type="CSGCylinder3D" 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 )
|
||||
script = null
|
||||
|
||||
[node name="CSGMesh" type="CSGMesh3D" 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 )
|
||||
script = null
|
||||
|
||||
[node name="CSGPolygon" type="CSGPolygon3D" parent="."]
|
||||
polygon = PackedVector2Array( 1.3, 0.59, 1, 0.06, 1, -6.56, 0, 0, 0, 0, 0, 0 )
|
||||
depth = 1.123
|
||||
material = SubResource( 10 )
|
||||
script = null
|
||||
|
||||
[node name="CSGSphere" type="CSGSphere3D" parent="."]
|
||||
invert_faces = true
|
||||
radius = 19.668
|
||||
radial_segments = 4
|
||||
rings = 3
|
||||
smooth_faces = false
|
||||
material = SubResource( 11 )
|
||||
script = null
|
||||
|
||||
[node name="CSGTorus" type="CSGTorus3D" 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 )
|
||||
script = null
|
||||
|
||||
[node name="CSGCombiner_NOTHING" type="CSGCombiner3D" parent="."]
|
||||
operation = 1
|
||||
script = null
|
||||
|
||||
[node name="CSGBox" type="CSGBox3D" parent="CSGCombiner_NOTHING"]
|
||||
invert_faces = true
|
||||
material = SubResource( 4 )
|
||||
script = null
|
||||
|
||||
[node name="CSGBox2" type="CSGBox3D" parent="CSGCombiner_NOTHING"]
|
||||
invert_faces = true
|
||||
material = SubResource( 4 )
|
||||
script = null
|
||||
|
||||
[node name="ImmediateGeometry" type="ImmediateGeometry3D" parent="."]
|
||||
material_override = SubResource( 13 )
|
||||
extra_cull_margin = 0.08
|
||||
gi_mode = 1
|
||||
script = null
|
||||
|
||||
[node name="MeshInstance" type="MeshInstance3D" parent="."]
|
||||
mesh = SubResource( 15 )
|
||||
skin = SubResource( 16 )
|
||||
material/0 = SubResource( 17 )
|
||||
script = null
|
||||
|
||||
[node name="MultiMeshInstance" type="MultiMeshInstance3D" parent="."]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 18.9485, 0 )
|
||||
multimesh = SubResource( 19 )
|
||||
script = null
|
||||
|
||||
[node name="Particles" type="GPUParticles3D" 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 )
|
||||
script = null
|
||||
|
||||
[node name="BakedLightmap" type="BakedLightmap" parent="."]
|
||||
light_data = SubResource( 22 )
|
||||
script = null
|
||||
|
||||
[node name="DirectionalLight" type="DirectionalLight3D" 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
|
||||
script = null
|
||||
|
||||
[node name="SpotLight" type="SpotLight3D" 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
|
||||
script = null
|
||||
|
||||
[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 )
|
||||
script = null
|
||||
|
||||
[node name="ReflectionProbe" type="ReflectionProbe" parent="."]
|
||||
intensity = 0.51
|
||||
max_distance = 1.7
|
||||
extents = Vector3( 1, 1.583, 1 )
|
||||
box_projection = true
|
||||
script = null
|
||||
|
||||
[node name="RootMotionView" type="RootMotionView" parent="."]
|
||||
script = null
|
||||
|
||||
[node name="Area" type="Area3D" parent="."]
|
||||
gravity = 22.39
|
||||
linear_damp = 0.126
|
||||
monitoring = false
|
||||
script = null
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape3D" parent="Area"]
|
||||
shape = SubResource( 23 )
|
||||
script = null
|
||||
|
||||
[node name="KinematicBody" type="KinematicBody3D" parent="."]
|
||||
collision/safe_margin = 0.033
|
||||
script = null
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape3D" parent="KinematicBody"]
|
||||
shape = SubResource( 23 )
|
||||
script = null
|
||||
|
||||
[node name="PhysicalBone" type="PhysicalBone3D" parent="."]
|
||||
mass = 1.21
|
||||
script = null
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape3D" parent="PhysicalBone"]
|
||||
shape = SubResource( 23 )
|
||||
script = null
|
||||
|
||||
[node name="RigidBody" type="RigidBody3D" parent="."]
|
||||
mass = 1.19
|
||||
physics_material_override = SubResource( 24 )
|
||||
gravity_scale = 1.12
|
||||
axis_lock_linear_x = true
|
||||
script = null
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape3D" parent="RigidBody"]
|
||||
shape = SubResource( 23 )
|
||||
script = null
|
||||
|
||||
[node name="VehicleBody" type="VehicleBody3D" parent="."]
|
||||
physics_material_override = SubResource( 25 )
|
||||
engine_force = 16.41
|
||||
brake = 0.46
|
||||
steering = 0.17
|
||||
script = null
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape3D" parent="VehicleBody"]
|
||||
shape = SubResource( 23 )
|
||||
script = null
|
||||
|
||||
[node name="VehicleWheel4" type="VehicleWheel3D" parent="VehicleBody"]
|
||||
engine_force = 5.60519e-45
|
||||
brake = 0.46
|
||||
script = null
|
||||
|
||||
[node name="StaticBody" type="StaticBody3D" parent="."]
|
||||
physics_material_override = SubResource( 26 )
|
||||
constant_linear_velocity = Vector3( 0.049, 0, 0 )
|
||||
script = null
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape3D" parent="StaticBody"]
|
||||
shape = SubResource( 23 )
|
||||
script = null
|
||||
|
||||
[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
|
||||
script = null
|
||||
|
||||
[node name="BoneAttachment" type="BoneAttachment3D" parent="."]
|
||||
script = null
|
||||
|
||||
[node name="CollisionPolygon" type="CollisionPolygon3D" parent="."]
|
||||
polygon = PackedVector2Array( 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 )
|
||||
script = null
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape3D" parent="."]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -26.583 )
|
||||
shape = SubResource( 28 )
|
||||
script = null
|
||||
|
||||
[node name="GridMap" type="GridMap" parent="."]
|
||||
mesh_library = SubResource( 30 )
|
||||
cell_size = Vector3( 2, 1.14, 3.08 )
|
||||
data = {
|
||||
"cells": PackedInt32Array( 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 )
|
||||
}
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_editor_clip_": 0
|
||||
}
|
||||
|
||||
[node name="Listener" type="Listener3D" parent="."]
|
||||
current = true
|
||||
script = null
|
||||
|
||||
[node name="Navigation" type="Node" parent="."]
|
||||
script = null
|
||||
|
||||
[node name="NavigationMeshInstance" type="NavigationRegion3D" parent="Navigation"]
|
||||
navmesh = SubResource( 31 )
|
||||
script = null
|
||||
|
||||
[node name="NavigationMeshInstance" type="NavigationRegion3D" parent="."]
|
||||
navmesh = SubResource( 31 )
|
||||
script = null
|
||||
|
||||
[node name="Path" type="Path3D" parent="."]
|
||||
curve = SubResource( 32 )
|
||||
script = null
|
||||
|
||||
[node name="PathFollow" type="PathFollow3D" parent="Path"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.21835, 8.31693, -11.5007 )
|
||||
script = null
|
||||
|
||||
[node name="PathFollow" type="PathFollow3D" parent="."]
|
||||
offset = 2.09
|
||||
h_offset = 0.101
|
||||
script = null
|
||||
|
||||
[node name="Position3D_NOTHING" type="Position3D" parent="."]
|
||||
script = null
|
||||
|
||||
[node name="Camera_DEFAULT_CAMERA" type="Camera3D" parent="."]
|
||||
current = true
|
||||
script = null
|
||||
|
||||
[node name="ProximityGroup" type="ProximityGroup3D" parent="."]
|
||||
dispatch_mode = 1
|
||||
script = null
|
||||
|
||||
[node name="RayCast" type="RayCast3D" parent="."]
|
||||
script = null
|
||||
|
||||
[node name="RemoteTransform" type="RemoteTransform3D" parent="."]
|
||||
remote_path = NodePath("../Camera")
|
||||
script = null
|
||||
|
||||
[node name="Skeleton" type="Skeleton3D" parent="."]
|
||||
script = null
|
||||
|
||||
[node name="PhysicalBone" type="PhysicalBone3D" parent="Skeleton"]
|
||||
script = null
|
||||
|
||||
[node name="BoneAttachment" type="BoneAttachment3D" 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 )
|
||||
script = null
|
||||
|
||||
[node name="CollisionShape4" type="CollisionShape3D" parent="Skeleton/PhysicalBone"]
|
||||
shape = SubResource( 33 )
|
||||
script = null
|
||||
|
||||
[node name="PhysicalBone 3" type="PhysicalBone3D" parent="Skeleton"]
|
||||
mass = 0.958163
|
||||
friction = 0.62
|
||||
bounce = 0.3
|
||||
gravity_scale = 0.6
|
||||
script = null
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape3D" parent="Skeleton/PhysicalBone 3"]
|
||||
shape = SubResource( 33 )
|
||||
script = null
|
||||
|
||||
[node name="SpringArm" type="SpringArm3D" parent="."]
|
||||
shape = SubResource( 34 )
|
||||
script = null
|
||||
|
||||
[node name="VehicleWheel" type="VehicleWheel3D" parent="."]
|
||||
engine_force = 0.49
|
||||
brake = 0.74
|
||||
steering = -0.63
|
||||
script = null
|
||||
|
||||
[node name="VisibilityNotifier" type="VisibilityNotifier3D" parent="."]
|
||||
aabb = AABB( -1, -0.982, -1, 2, 2.078, 2 )
|
||||
script = null
|
||||
|
||||
[node name="VisibilityEnabler" type="VisibilityEnabler3D" parent="."]
|
||||
script = null
|
||||
|
||||
[node name="Generic6DOFJoint" type="Generic6DOFJoint3D" 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
|
||||
script = null
|
||||
|
||||
[node name="HingeJoint" type="HingeJoint3D" 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
|
||||
script = null
|
||||
|
||||
[node name="SliderJoint" type="SliderJoint3D" 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
|
||||
script = null
|
||||
|
||||
[node name="PinJoint" type="PinJoint3D" parent="."]
|
||||
nodes/node_a = NodePath("../KinematicBody")
|
||||
nodes/node_b = NodePath("../StaticBody")
|
||||
params/bias = 0.99
|
||||
params/damping = 7.3
|
||||
params/impulse_clamp = 7.2
|
||||
script = null
|
||||
|
||||
[node name="ConeTwistJoint" type="ConeTwistJoint3D" 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
|
||||
script = null
|
||||
|
||||
[node name="OmniLight" type="OmniLight3D" 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
|
||||
script = null
|
||||
|
||||
[node name="SoftBody" type="SoftBody3D" parent="."]
|
||||
mesh = SubResource( 35 )
|
||||
material/0 = null
|
||||
pinned_points = [ ]
|
||||
script = 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,447 +0,0 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://icon.png" type="Texture2D" id=1]
|
||||
|
||||
[sub_resource type="Theme" id=1]
|
||||
|
||||
[node name="ControlALL" type="GridContainer"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
columns = 9
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Popup" type="Popup" parent="."]
|
||||
theme = SubResource( 1 )
|
||||
script = null
|
||||
|
||||
[node name="WindowDialog" type="Node" parent="."]
|
||||
script = null
|
||||
|
||||
[node name="AcceptDialog" type="AcceptDialog" parent="."]
|
||||
position = Vector2i( 0, 64 )
|
||||
dialog_text = "fqwfqwfqwf"
|
||||
dialog_hide_on_ok = false
|
||||
dialog_autowrap = true
|
||||
script = null
|
||||
|
||||
[node name="ConfirmationDialog" type="ConfirmationDialog" parent="."]
|
||||
position = Vector2i( 0, 64 )
|
||||
dialog_text = "fas"
|
||||
dialog_hide_on_ok = false
|
||||
dialog_autowrap = true
|
||||
script = null
|
||||
|
||||
[node name="FileDialog" type="FileDialog" parent="."]
|
||||
position = Vector2i( 0, 64 )
|
||||
size = Vector2i( 371, 122 )
|
||||
dialog_text = "sffasfasf"
|
||||
dialog_hide_on_ok = true
|
||||
dialog_autowrap = true
|
||||
mode_overrides_title = false
|
||||
access = 1
|
||||
filters = PackedStringArray( "", "as", "", "fasf", "", "s", "", "asfasfa", "sf", "", "" )
|
||||
show_hidden_files = true
|
||||
current_dir = "user://"
|
||||
current_file = "asf"
|
||||
current_path = "user://asf"
|
||||
script = null
|
||||
|
||||
[node name="PopupDialog_NOTHING" type="Node" parent="."]
|
||||
script = null
|
||||
|
||||
[node name="PopupMenu" type="PopupMenu" parent="."]
|
||||
items = [ ]
|
||||
hide_on_item_selection = false
|
||||
hide_on_checkable_item_selection = false
|
||||
hide_on_state_item_selection = true
|
||||
submenu_popup_delay = 5.32352e+07
|
||||
script = null
|
||||
|
||||
[node name="PopupPanel_NOTHING" type="PopupPanel" parent="."]
|
||||
script = null
|
||||
|
||||
[node name="Button" type="Button" parent="."]
|
||||
offset_right = 58.0
|
||||
offset_bottom = 40.0
|
||||
text = "asfasf"
|
||||
flat = true
|
||||
clip_text = true
|
||||
align = 0
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="CheckBox_NOTHING" type="CheckBox" parent="."]
|
||||
offset_left = 62.0
|
||||
offset_right = 370.0
|
||||
offset_bottom = 40.0
|
||||
text = "safasf"
|
||||
flat = true
|
||||
clip_text = true
|
||||
align = 2
|
||||
script = null
|
||||
|
||||
[node name="CheckButton_NOTHING" type="CheckButton" parent="."]
|
||||
offset_left = 374.0
|
||||
offset_right = 454.0
|
||||
offset_bottom = 40.0
|
||||
text = "asfq"
|
||||
flat = true
|
||||
clip_text = true
|
||||
align = 1
|
||||
script = null
|
||||
|
||||
[node name="ColorPickerButton" type="ColorPickerButton" parent="."]
|
||||
offset_left = 458.0
|
||||
offset_right = 532.0
|
||||
offset_bottom = 40.0
|
||||
text = "asfasf"
|
||||
flat = true
|
||||
clip_text = true
|
||||
align = 2
|
||||
color = Color( 0.639216, 0.576471, 0.576471, 1 )
|
||||
edit_alpha = false
|
||||
script = null
|
||||
|
||||
[node name="MenuButton" type="MenuButton" parent="."]
|
||||
offset_left = 536.0
|
||||
offset_right = 580.0
|
||||
offset_bottom = 40.0
|
||||
icon = ExtResource( 1 )
|
||||
items = [ ]
|
||||
switch_on_hover = true
|
||||
script = null
|
||||
|
||||
[node name="OptionButton" type="OptionButton" parent="."]
|
||||
offset_left = 584.0
|
||||
offset_right = 645.0
|
||||
offset_bottom = 40.0
|
||||
icon = ExtResource( 1 )
|
||||
items = [ ]
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="ToolButton_NOTHING" type="Button" parent="."]
|
||||
offset_left = 649.0
|
||||
offset_right = 695.0
|
||||
offset_bottom = 40.0
|
||||
text = "asfasf"
|
||||
icon = ExtResource( 1 )
|
||||
clip_text = true
|
||||
align = 2
|
||||
script = null
|
||||
|
||||
[node name="LinkButton" type="LinkButton" parent="."]
|
||||
offset_left = 699.0
|
||||
offset_right = 751.0
|
||||
offset_bottom = 40.0
|
||||
text = "asfqfqwf"
|
||||
underline = 2
|
||||
structured_text_bidi_override_options = [ ]
|
||||
script = null
|
||||
|
||||
[node name="TextureButton" type="TextureButton" parent="."]
|
||||
offset_left = 755.0
|
||||
offset_right = 767.0
|
||||
offset_bottom = 40.0
|
||||
expand = true
|
||||
stretch_mode = 5
|
||||
script = null
|
||||
|
||||
[node name="Container" type="Container" parent="."]
|
||||
offset_top = 44.0
|
||||
offset_right = 58.0
|
||||
offset_bottom = 454.0
|
||||
script = null
|
||||
|
||||
[node name="Control" type="Control" parent="Container"]
|
||||
script = null
|
||||
|
||||
[node name="Control2" type="Control" parent="Container"]
|
||||
script = null
|
||||
|
||||
[node name="ColorPicker" type="ColorPicker" parent="."]
|
||||
offset_left = 62.0
|
||||
offset_top = 44.0
|
||||
offset_right = 370.0
|
||||
offset_bottom = 454.0
|
||||
alignment = 1
|
||||
edit_alpha = false
|
||||
raw_mode = true
|
||||
deferred_mode = true
|
||||
presets_enabled = false
|
||||
presets_visible = false
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="HBoxContainer_NOTHING" type="HBoxContainer" parent="."]
|
||||
offset_left = 374.0
|
||||
offset_top = 44.0
|
||||
offset_right = 454.0
|
||||
offset_bottom = 454.0
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="VBoxContainer_NOTHING" type="VBoxContainer" parent="."]
|
||||
offset_left = 458.0
|
||||
offset_top = 44.0
|
||||
offset_right = 532.0
|
||||
offset_bottom = 454.0
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="CenterContainer" type="CenterContainer" parent="."]
|
||||
offset_left = 536.0
|
||||
offset_top = 44.0
|
||||
offset_right = 580.0
|
||||
offset_bottom = 454.0
|
||||
use_top_left = true
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="."]
|
||||
offset_left = 584.0
|
||||
offset_top = 44.0
|
||||
offset_right = 645.0
|
||||
offset_bottom = 454.0
|
||||
script = null
|
||||
|
||||
[node name="GraphNode" type="GraphNode" parent="."]
|
||||
offset_left = 649.0
|
||||
offset_top = 44.0
|
||||
offset_right = 695.0
|
||||
offset_bottom = 454.0
|
||||
script = null
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="."]
|
||||
offset_left = 699.0
|
||||
offset_top = 44.0
|
||||
offset_right = 751.0
|
||||
offset_bottom = 454.0
|
||||
script = null
|
||||
|
||||
[node name="HSplitContainer_NOTHING" type="HSplitContainer" parent="."]
|
||||
offset_left = 755.0
|
||||
offset_top = 44.0
|
||||
offset_right = 767.0
|
||||
offset_bottom = 454.0
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="VSplitContainer_NOTHING" type="VSplitContainer" parent="."]
|
||||
offset_top = 458.0
|
||||
offset_right = 58.0
|
||||
offset_bottom = 490.0
|
||||
script = null
|
||||
|
||||
[node name="MarginContainer_NOTHING" type="MarginContainer" parent="."]
|
||||
offset_left = 62.0
|
||||
offset_top = 458.0
|
||||
offset_right = 370.0
|
||||
offset_bottom = 490.0
|
||||
script = null
|
||||
|
||||
[node name="PanelContainer_NOTHING" type="PanelContainer" parent="."]
|
||||
offset_left = 374.0
|
||||
offset_top = 458.0
|
||||
offset_right = 454.0
|
||||
offset_bottom = 490.0
|
||||
script = null
|
||||
|
||||
[node name="TabContainer" type="TabContainer" parent="."]
|
||||
offset_left = 458.0
|
||||
offset_top = 458.0
|
||||
offset_right = 532.0
|
||||
offset_bottom = 490.0
|
||||
script = null
|
||||
|
||||
[node name="ViewportContainer" type="SubViewportContainer" parent="."]
|
||||
offset_left = 536.0
|
||||
offset_top = 458.0
|
||||
offset_right = 580.0
|
||||
offset_bottom = 490.0
|
||||
script = null
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
offset_left = 584.0
|
||||
offset_top = 458.0
|
||||
offset_right = 645.0
|
||||
offset_bottom = 490.0
|
||||
script = null
|
||||
|
||||
[node name="GraphEdit" type="GraphEdit" parent="."]
|
||||
offset_left = 649.0
|
||||
offset_top = 458.0
|
||||
offset_right = 695.0
|
||||
offset_bottom = 490.0
|
||||
script = null
|
||||
|
||||
[node name="HScrollBar_NOTHING" type="HScrollBar" parent="."]
|
||||
offset_left = 699.0
|
||||
offset_top = 458.0
|
||||
offset_right = 751.0
|
||||
offset_bottom = 470.0
|
||||
script = null
|
||||
|
||||
[node name="VScrollBar_NOTHING" type="VScrollBar" parent="."]
|
||||
offset_left = 755.0
|
||||
offset_top = 458.0
|
||||
offset_right = 767.0
|
||||
offset_bottom = 490.0
|
||||
script = null
|
||||
|
||||
[node name="HSlider_NOTHING" type="HSlider" parent="."]
|
||||
offset_top = 494.0
|
||||
offset_right = 58.0
|
||||
offset_bottom = 510.0
|
||||
script = null
|
||||
|
||||
[node name="VSlider_NOTHING" type="VSlider" parent="."]
|
||||
offset_left = 62.0
|
||||
offset_top = 494.0
|
||||
offset_right = 78.0
|
||||
offset_bottom = 518.0
|
||||
script = null
|
||||
|
||||
[node name="ProgressBar" type="ProgressBar" parent="."]
|
||||
offset_left = 374.0
|
||||
offset_top = 494.0
|
||||
offset_right = 454.0
|
||||
offset_bottom = 508.0
|
||||
script = null
|
||||
|
||||
[node name="SpinBox" type="SpinBox" parent="."]
|
||||
offset_left = 458.0
|
||||
offset_top = 494.0
|
||||
offset_right = 532.0
|
||||
offset_bottom = 518.0
|
||||
script = null
|
||||
|
||||
[node name="TextureProgress" type="TextureProgressBar" parent="."]
|
||||
offset_left = 536.0
|
||||
offset_top = 494.0
|
||||
offset_right = 580.0
|
||||
offset_bottom = 518.0
|
||||
script = null
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="."]
|
||||
offset_left = 584.0
|
||||
offset_top = 494.0
|
||||
offset_right = 645.0
|
||||
offset_bottom = 518.0
|
||||
script = null
|
||||
|
||||
[node name="VSeparator" type="VSeparator" parent="."]
|
||||
offset_left = 649.0
|
||||
offset_top = 494.0
|
||||
offset_right = 695.0
|
||||
offset_bottom = 518.0
|
||||
script = null
|
||||
|
||||
[node name="ItemList" type="ItemList" parent="."]
|
||||
offset_left = 699.0
|
||||
offset_top = 494.0
|
||||
offset_right = 751.0
|
||||
offset_bottom = 518.0
|
||||
items = [ ]
|
||||
script = null
|
||||
|
||||
[node name="Label" type="Label" parent="."]
|
||||
offset_left = 755.0
|
||||
offset_top = 499.0
|
||||
offset_right = 767.0
|
||||
offset_bottom = 513.0
|
||||
structured_text_bidi_override_options = [ ]
|
||||
script = null
|
||||
|
||||
[node name="LineEdit" type="LineEdit" parent="."]
|
||||
offset_top = 522.0
|
||||
offset_right = 58.0
|
||||
offset_bottom = 546.0
|
||||
structured_text_bidi_override_options = [ ]
|
||||
caret_blink = true
|
||||
script = null
|
||||
|
||||
[node name="NinePatchRect" type="NinePatchRect" parent="."]
|
||||
offset_left = 62.0
|
||||
offset_top = 522.0
|
||||
offset_right = 370.0
|
||||
offset_bottom = 546.0
|
||||
script = null
|
||||
|
||||
[node name="Panel_NOTHING" type="Panel" parent="."]
|
||||
offset_left = 374.0
|
||||
offset_top = 522.0
|
||||
offset_right = 454.0
|
||||
offset_bottom = 546.0
|
||||
script = null
|
||||
|
||||
[node name="ReferenceRect" type="ReferenceRect" parent="."]
|
||||
offset_left = 458.0
|
||||
offset_top = 522.0
|
||||
offset_right = 532.0
|
||||
offset_bottom = 546.0
|
||||
script = null
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="."]
|
||||
offset_left = 536.0
|
||||
offset_top = 522.0
|
||||
offset_right = 580.0
|
||||
offset_bottom = 546.0
|
||||
custom_effects = [ ]
|
||||
structured_text_bidi_override_options = [ ]
|
||||
script = null
|
||||
|
||||
[node name="Tabs" type="Tabs" parent="."]
|
||||
offset_left = 584.0
|
||||
offset_top = 522.0
|
||||
offset_right = 645.0
|
||||
offset_bottom = 546.0
|
||||
script = null
|
||||
|
||||
[node name="TextEdit" type="TextEdit" parent="."]
|
||||
offset_left = 649.0
|
||||
offset_top = 522.0
|
||||
offset_right = 695.0
|
||||
offset_bottom = 546.0
|
||||
structured_text_bidi_override_options = [ ]
|
||||
script = null
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="."]
|
||||
offset_left = 699.0
|
||||
offset_top = 522.0
|
||||
offset_right = 751.0
|
||||
offset_bottom = 546.0
|
||||
script = null
|
||||
|
||||
[node name="Tree" type="Tree" parent="."]
|
||||
offset_left = 755.0
|
||||
offset_top = 522.0
|
||||
offset_right = 767.0
|
||||
offset_bottom = 546.0
|
||||
script = null
|
||||
|
||||
[node name="VideoPlayer" type="VideoPlayer" parent="."]
|
||||
offset_top = 550.0
|
||||
offset_right = 58.0
|
||||
offset_bottom = 550.0
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
@ -1,95 +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": PackedFloat32Array( 1.4, 4.6, 8.1 ),
|
||||
"transitions": PackedFloat32Array( 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"]
|
||||
script = null
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
root_node = NodePath("../AudioStreamPlayer")
|
||||
"anims/New Anim" = SubResource( 1 )
|
||||
blend_times = [ ]
|
||||
script = null
|
||||
|
||||
[node name="AnimationTree" type="AnimationTree" parent="."]
|
||||
tree_root = SubResource( 2 )
|
||||
anim_player = NodePath("../AnimationPlayer")
|
||||
parameters/blend_position = 0
|
||||
script = null
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = SubResource( 3 )
|
||||
volume_db = 0.066
|
||||
pitch_scale = 2.48
|
||||
script = null
|
||||
|
||||
[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
|
||||
script = null
|
||||
|
||||
[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 )
|
||||
script = null
|
||||
|
||||
[node name="HTTPRequest" type="HTTPRequest" parent="."]
|
||||
use_threads = true
|
||||
script = null
|
||||
|
||||
[node name="ResourcePreloader" type="ResourcePreloader" parent="."]
|
||||
resources = [ PackedStringArray( ), [ ] ]
|
||||
script = null
|
||||
|
||||
[node name="SkeletonIK" type="SkeletonIK3D" 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")
|
||||
script = null
|
||||
|
||||
[node name="Timer" type="Timer" parent="."]
|
||||
script = null
|
||||
|
||||
[node name="Tween" type="Tween" parent="."]
|
||||
repeat = true
|
||||
playback/repeat = true
|
||||
script = null
|
||||
|
||||
[node name="Viewport" type="SubViewport" parent="."]
|
||||
script = null
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource( 4 )
|
||||
script = null
|
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 )]
|
||||
|
@ -14,46 +14,40 @@ var time_for_each_step : int = -1
|
||||
|
||||
# Each scene runs alone
|
||||
const alone_steps : Array = [
|
||||
"res://Nodes/Nodes.tscn",
|
||||
"res://ReparentingDeleting/ReparentingDeleting.tscn",
|
||||
"res://Physics/2D/Physics2D.tscn",
|
||||
"res://Physics/3D/Physics3D.tscn",
|
||||
"res://Rendering/Lights2D/Lights2D.tscn",
|
||||
"res://Rendering/Lights3D/Lights3D.tscn",
|
||||
"res://Nodes/Nodes.tscn",
|
||||
"res://ReparentingDeleting/ReparentingDeleting.tscn",
|
||||
"res://Text/Text.tscn",
|
||||
"res://AutomaticBugs/FunctionExecutor.tscn", # Only Needs to be executed once, but this is workaround a little
|
||||
]
|
||||
|
||||
# All scenes run in one step
|
||||
# This should be put regression scripts which needs to run only once
|
||||
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 _ready():
|
||||
func _init():
|
||||
start_time = OS.get_ticks_msec()
|
||||
|
||||
var time_set : bool = false
|
||||
# In case when user doesn't provide time
|
||||
time_for_each_step = time_to_show / (alone_steps.size())
|
||||
|
||||
for argument in OS.get_cmdline_args():
|
||||
if argument.is_valid_float(): # Ignore all non numeric arguments
|
||||
time_set = true
|
||||
time_to_show = int(argument.to_float() * 1000)
|
||||
time_for_each_step = time_to_show / (alone_steps.size())
|
||||
print("Time set to: " + str(time_to_show / 1000.0) + " seconds with "+ str(alone_steps.size()) + " steps, each step will take " + str(time_for_each_step / 1000.0) + " seconds.")
|
||||
break # We only need to take first argument
|
||||
|
||||
# In case when user doesn't provide time
|
||||
if !time_set:
|
||||
time_for_each_step = time_to_show / (alone_steps.size())
|
||||
print("Default time - " + str(time_to_show / 1000.0) + " seconds with "+ str(alone_steps.size()) + " steps, each step will take " + str(time_for_each_step / 1000.0) + " seconds.")
|
||||
|
||||
|
||||
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,5 +1,10 @@
|
||||
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",
|
||||
@ -7,8 +12,7 @@ var properties_exceptions : Array = [
|
||||
"",
|
||||
]
|
||||
var function_exceptions : Array = [
|
||||
"play",
|
||||
#GODOT 4.0
|
||||
#GODOT 4.0
|
||||
"create_from_image",
|
||||
"set_point_position",
|
||||
"connect", # OTHER THINGS
|
||||
@ -34,15 +38,20 @@ var function_exceptions : Array = [
|
||||
"_activate",
|
||||
"add_node", #GH 46012
|
||||
|
||||
|
||||
|
||||
"_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
|
||||
"set_config_file", # GH 45997
|
||||
"_gui_input", # GH 45998
|
||||
"_unhandled_key_input", # GH 45998
|
||||
"navpoly_add", #GH 43288
|
||||
"_thread_done", #GH 46000
|
||||
"generate", #GH 46001
|
||||
"_proximity_group_broadcast", #GH 46002
|
||||
@ -50,13 +59,9 @@ var function_exceptions : Array = [
|
||||
"create_from", #GH 46004
|
||||
"create_from_blend_shape", #GH 46004
|
||||
"append_from", #GH 46004
|
||||
"get_column_width", #GH 46005
|
||||
"_unhandled_input", # TODO
|
||||
"_input", # TODO
|
||||
"_set_tile_data", #GH 46015
|
||||
"_edit_set_state", #GH 46017
|
||||
"_edit_set_position", #GH 46018
|
||||
"_edit_set_rect", #GH 46018
|
||||
"get", #GH 46019
|
||||
"instance_has", #GH 46020
|
||||
"get_var", #GH 46096
|
||||
@ -64,10 +69,7 @@ var function_exceptions : Array = [
|
||||
"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
|
||||
"get_latin_keyboard_variant", #GH TODO Memory Leak
|
||||
"set_editor_hint", #GH 46252
|
||||
@ -76,17 +78,14 @@ var function_exceptions : Array = [
|
||||
"_range_click_timeout",
|
||||
"draw", #GH 46648
|
||||
"get_indexed", #GH 46019
|
||||
"set_RGB_img", #GH 46724
|
||||
"_set_RGB_img", #GH 46724
|
||||
"_set_YCbCr_img", #GH 46724
|
||||
"set_YCbCr_img", #GH 46724
|
||||
"set_YCbCr_imgs", #GH 46724
|
||||
"_set_YCbCr_imgs", #GH 46724
|
||||
"_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
|
||||
@ -102,6 +101,7 @@ var function_exceptions : Array = [
|
||||
"_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",
|
||||
@ -190,7 +190,14 @@ var function_exceptions : Array = [
|
||||
"raise",
|
||||
"add_child",
|
||||
"add_child_below_node",
|
||||
"add_sibling",
|
||||
]
|
||||
var exported : Array = [
|
||||
"get_bind_bone",
|
||||
"get_bind_name",
|
||||
"get_bind_pose",
|
||||
]
|
||||
|
||||
# List of slow functions, which may frooze project(not simple executing each function alone)
|
||||
var slow_functions : Array = [
|
||||
"interpolate_baked",
|
||||
@ -249,9 +256,19 @@ 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
|
||||
"_OS", # This may sometimes crash compositor, but it should be tested manually sometimes
|
||||
"GDScript", # Broke script
|
||||
|
||||
|
||||
# Godot 4.0 Leaks, crashes etc.
|
||||
# This classes have problems with static/non static methods
|
||||
"PhysicsDirectSpaceState",
|
||||
"PhysicsDirectSpaceState2D",
|
||||
"PhysicsDirectBodyState",
|
||||
"PhysicsDirectBodyState2D",
|
||||
"BulletPhysicsDirectSpaceState",
|
||||
"InputDefault",
|
||||
"IP_Unix",
|
||||
"JNISingleton",
|
||||
|
||||
# Godot 4.0 Leaks, crashes etc.
|
||||
"World3D",
|
||||
"GPUParticlesCollisionHeightField", #4.0 Crash
|
||||
"NavigationAgent2D",
|
||||
@ -259,18 +276,51 @@ var disabled_classes : Array = [
|
||||
"Image",
|
||||
"GIProbe",
|
||||
|
||||
|
||||
# Just don't use these because they are not normal things
|
||||
"_Thread",
|
||||
"_Semaphore",
|
||||
"_Mutex",
|
||||
|
||||
"Image",
|
||||
|
||||
"PhysicalSkyMaterial", # Slow
|
||||
"ProceduralSkyMaterial", # Slow
|
||||
"PanoramaSkyMaterial", # Slow
|
||||
]
|
||||
|
||||
# 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.get("flags") == method_data.get("flags") | METHOD_FLAG_VIRTUAL:
|
||||
return false
|
||||
|
||||
for arg in method_data.get("args"):
|
||||
var name_of_class : String = arg.get("class_name")
|
||||
if name_of_class.is_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.get("type")
|
||||
if t == TYPE_CALLABLE:
|
||||
return false
|
||||
elif !(t == TYPE_NIL|| t == TYPE_MAX|| 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_INT32_ARRAY|| t == TYPE_INT64_ARRAY|| t == TYPE_NODE_PATH|| t == TYPE_OBJECT|| t == TYPE_PLANE|| t == TYPE_QUAT|| t == TYPE_RAW_ARRAY|| t == TYPE_FLOAT|| t == TYPE_FLOAT32_ARRAY|| t == TYPE_FLOAT64_ARRAY|| t == TYPE_RECT2|| t == TYPE_RECT2I|| t == TYPE_RID|| t == TYPE_STRING|| t == TYPE_STRING_NAME|| t == TYPE_STRING_ARRAY|| t == TYPE_TRANSFORM|| t == TYPE_TRANSFORM2D|| t == TYPE_VECTOR2|| t == TYPE_VECTOR2I|| t == TYPE_VECTOR2_ARRAY|| t == TYPE_VECTOR3|| t == TYPE_VECTOR3I|| 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(must_be_instantable : bool = true) -> Array:
|
||||
var full_class_list : Array = Array(ClassDB.get_class_list())
|
||||
@ -284,16 +334,18 @@ func get_list_of_available_classes(must_be_instantable : bool = true) -> Array:
|
||||
continue
|
||||
|
||||
# if rr < 550:
|
||||
# continue
|
||||
|
||||
# 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 name_of_class.find("Editor") != -1 || name_of_class == "GLTFMesh": # TODO not sure about it, GLTFMesh is Editor node
|
||||
if name_of_class.find("Editor") != -1: # TODO not sure about it
|
||||
continue
|
||||
|
||||
# Enable This for RegressionTestProject, to get visual info about what is going on the screen, because without it different nodes can broke view
|
||||
if !ClassDB.is_parent_class(name_of_class, "Node") && !ClassDB.is_parent_class(name_of_class, "Reference"):
|
||||
continue
|
||||
|
||||
if !must_be_instantable || ClassDB.can_instance(name_of_class):
|
||||
classes.push_back(name_of_class)
|
||||
|
@ -1,21 +1,29 @@
|
||||
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():
|
||||
# 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)
|
||||
@ -32,126 +40,37 @@ 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:
|
||||
# Function is virtual, so we just skip it
|
||||
if method_data.get("flags") == method_data.get("flags") | METHOD_FLAG_VIRTUAL:
|
||||
if !BasicData.check_if_is_allowed(method_data):
|
||||
continue
|
||||
|
||||
if debug_print:
|
||||
print(name_of_class + "." + method_data.get("name"))
|
||||
|
||||
var arguments: Array = return_for_all(method_data)
|
||||
var arguments: Array = ParseArgumentType.parse_and_return_objects(method_data, debug_print)
|
||||
object.callv(method_data.get("name"), arguments)
|
||||
|
||||
for argument in arguments:
|
||||
if argument is Object:
|
||||
assert(argument != null)
|
||||
if argument is Node:
|
||||
argument.queue_free()
|
||||
elif argument is Object && !(argument is Reference):
|
||||
argument.free()
|
||||
if argument is Node:
|
||||
argument.queue_free()
|
||||
elif argument is Object && !(argument is Reference):
|
||||
argument.free()
|
||||
|
||||
if use_always_new_object:
|
||||
if object is Object:
|
||||
assert(object != null)
|
||||
if object is Node:
|
||||
object.queue_free()
|
||||
elif object is Object && !(object is Reference):
|
||||
object.free()
|
||||
assert(object != null, "Object must be instantable")
|
||||
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)
|
||||
|
||||
if object is Node: # Just prevent memory leak
|
||||
if object is Node:
|
||||
object.queue_free()
|
||||
elif object is Object && !(object is Reference):
|
||||
object.free()
|
||||
|
||||
|
||||
func return_for_all(method_data: Dictionary) -> Array:
|
||||
var arguments_array: Array = []
|
||||
|
||||
ValueCreator.number = 100
|
||||
ValueCreator.random = false
|
||||
ValueCreator.should_be_always_valid = false
|
||||
|
||||
for argument in method_data.get("args"):
|
||||
var type = argument.get("type")
|
||||
if type == TYPE_NIL: # Looks that this means VARIANT not null
|
||||
arguments_array.push_back(false) # TODO Add some randomization
|
||||
# assert(false)
|
||||
elif type == TYPE_MAX:
|
||||
assert(false)
|
||||
elif type == TYPE_AABB:
|
||||
arguments_array.push_back(ValueCreator.get_aabb())
|
||||
elif type == TYPE_ARRAY:
|
||||
arguments_array.push_back(ValueCreator.get_array())
|
||||
elif type == TYPE_BASIS:
|
||||
arguments_array.push_back(ValueCreator.get_basis())
|
||||
elif type == TYPE_BOOL:
|
||||
arguments_array.push_back(ValueCreator.get_bool())
|
||||
elif type == TYPE_COLOR:
|
||||
arguments_array.push_back(ValueCreator.get_color())
|
||||
elif type == TYPE_COLOR_ARRAY:
|
||||
arguments_array.push_back(PackedColorArray([]))
|
||||
elif type == TYPE_DICTIONARY:
|
||||
arguments_array.push_back(ValueCreator.get_dictionary())
|
||||
elif type == TYPE_INT:
|
||||
arguments_array.push_back(ValueCreator.get_int())
|
||||
elif type == TYPE_INT32_ARRAY:
|
||||
arguments_array.push_back(PackedInt32Array([]))
|
||||
elif type == TYPE_INT64_ARRAY:
|
||||
arguments_array.push_back(PackedInt64Array([]))
|
||||
elif type == TYPE_NODE_PATH:
|
||||
arguments_array.push_back(ValueCreator.get_nodepath())
|
||||
elif type == TYPE_OBJECT:
|
||||
arguments_array.push_back(ValueCreator.get_object(argument.get("class_name")))
|
||||
elif type == TYPE_PLANE:
|
||||
arguments_array.push_back(ValueCreator.get_plane())
|
||||
elif type == TYPE_QUAT:
|
||||
arguments_array.push_back(ValueCreator.get_quat())
|
||||
elif type == TYPE_RAW_ARRAY:
|
||||
arguments_array.push_back(PackedByteArray([]))
|
||||
elif type == TYPE_FLOAT:
|
||||
arguments_array.push_back(ValueCreator.get_float())
|
||||
elif type == TYPE_FLOAT32_ARRAY:
|
||||
arguments_array.push_back(PackedFloat32Array([]))
|
||||
elif type == TYPE_FLOAT64_ARRAY:
|
||||
arguments_array.push_back(PackedFloat64Array([]))
|
||||
elif type == TYPE_RECT2:
|
||||
arguments_array.push_back(ValueCreator.get_rect2())
|
||||
elif type == TYPE_RECT2I:
|
||||
arguments_array.push_back(ValueCreator.get_rect2i())
|
||||
elif type == TYPE_RID:
|
||||
arguments_array.push_back(RID())
|
||||
elif type == TYPE_STRING:
|
||||
arguments_array.push_back(ValueCreator.get_string())
|
||||
elif type == TYPE_STRING_NAME:
|
||||
arguments_array.push_back(StringName(ValueCreator.get_string()))
|
||||
elif type == TYPE_STRING_ARRAY:
|
||||
arguments_array.push_back(PackedStringArray([]))
|
||||
elif type == TYPE_TRANSFORM:
|
||||
arguments_array.push_back(ValueCreator.get_transform())
|
||||
elif type == TYPE_TRANSFORM2D:
|
||||
arguments_array.push_back(ValueCreator.get_transform2D())
|
||||
elif type == TYPE_VECTOR2:
|
||||
arguments_array.push_back(ValueCreator.get_vector2())
|
||||
elif type == TYPE_VECTOR2I:
|
||||
arguments_array.push_back(ValueCreator.get_vector2i())
|
||||
elif type == TYPE_VECTOR2_ARRAY:
|
||||
arguments_array.push_back(PackedVector2Array([]))
|
||||
elif type == TYPE_VECTOR3:
|
||||
arguments_array.push_back(ValueCreator.get_vector3())
|
||||
elif type == TYPE_VECTOR3I:
|
||||
arguments_array.push_back(ValueCreator.get_vector3i())
|
||||
elif type == TYPE_VECTOR3_ARRAY:
|
||||
arguments_array.push_back(PackedVector3Array([]))
|
||||
elif type== TYPE_CALLABLE:
|
||||
arguments_array.push_back(Callable(BoxMesh.new(),"Rar"))
|
||||
else:
|
||||
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 )
|
||||
|
236
AutomaticBugs/ParseArgumentType.gd
Normal file
236
AutomaticBugs/ParseArgumentType.gd
Normal file
@ -0,0 +1,236 @@
|
||||
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:
|
||||
var typ = argument.get("type")
|
||||
counter += 1
|
||||
var sa: SingleArgument = SingleArgument.new()
|
||||
sa.name = "variable" + str(counter)
|
||||
if typ == TYPE_NIL: # Looks that this means VARIANT not null
|
||||
sa.type = "Variant"
|
||||
sa.value = "false"
|
||||
elif typ ==TYPE_AABB:
|
||||
sa.type = "AABB"
|
||||
sa.value = ValueCreator.get_aabb_string()
|
||||
elif typ ==TYPE_ARRAY:
|
||||
sa.type = "Array"
|
||||
sa.value = "[]"
|
||||
elif typ ==TYPE_BASIS:
|
||||
sa.type = "Basis"
|
||||
sa.value = ValueCreator.get_basis_string()
|
||||
elif typ ==TYPE_BOOL:
|
||||
sa.type = "bool"
|
||||
sa.value = ValueCreator.get_bool_string().to_lower()
|
||||
elif typ ==TYPE_COLOR:
|
||||
sa.type = "Color"
|
||||
sa.value = ValueCreator.get_color_string()
|
||||
elif typ ==TYPE_COLOR_ARRAY:
|
||||
sa.type = "PackedColorArray"
|
||||
sa.value = "PackedColorArray([])"
|
||||
elif typ ==TYPE_DICTIONARY:
|
||||
sa.type = "Dictionary"
|
||||
sa.value = "{}" # TODO Why not all use ValueCreator?
|
||||
elif typ ==TYPE_INT:
|
||||
sa.type = "int"
|
||||
sa.value = ValueCreator.get_int_string()
|
||||
elif typ ==TYPE_INT32_ARRAY:
|
||||
sa.type = "PackedInt32Array"
|
||||
sa.value = "PackedInt32Array([])"
|
||||
elif typ ==TYPE_INT64_ARRAY:
|
||||
sa.type = "PackedInt64Array"
|
||||
sa.value = "PackedInt64Array([])"
|
||||
elif typ ==TYPE_NODE_PATH:
|
||||
sa.type = "NodePath"
|
||||
sa.value = "NodePath(\".\")"
|
||||
elif typ ==TYPE_OBJECT:
|
||||
sa.type = ValueCreator.get_object_string(argument.get("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
|
||||
elif typ ==TYPE_PLANE:
|
||||
sa.type = "Plane"
|
||||
sa.value = ValueCreator.get_plane_string()
|
||||
elif typ ==TYPE_QUAT:
|
||||
sa.type = "Quat"
|
||||
sa.value = ValueCreator.get_quat_string()
|
||||
elif typ ==TYPE_RAW_ARRAY:
|
||||
sa.type = "PackedByteArray"
|
||||
sa.value = "PackedByteArray([])"
|
||||
elif typ ==TYPE_FLOAT:
|
||||
sa.type = "float"
|
||||
sa.value = ValueCreator.get_float_string()
|
||||
elif typ ==TYPE_FLOAT32_ARRAY:
|
||||
sa.type = "PackedFloat32Array"
|
||||
sa.value = "PackedFloat32Array([])"
|
||||
elif typ ==TYPE_FLOAT64_ARRAY:
|
||||
sa.type = "PackedFloat64Array"
|
||||
sa.value = "PackedFloat64Array([])"
|
||||
elif typ ==TYPE_RECT2:
|
||||
sa.type = "Rect2"
|
||||
sa.value = ValueCreator.get_rect2_string()
|
||||
elif typ ==TYPE_RID:
|
||||
sa.type = "RID"
|
||||
sa.value = "RID()"
|
||||
elif typ ==TYPE_STRING:
|
||||
sa.type = "String"
|
||||
sa.value = ValueCreator.get_string_string()
|
||||
elif typ ==TYPE_STRING_NAME:
|
||||
sa.type = "StringName"
|
||||
sa.value = StringName(ValueCreator.get_string_string())
|
||||
elif typ ==TYPE_STRING_ARRAY:
|
||||
sa.type = "PackedStringArray"
|
||||
sa.value = "PackedStringArray([])"
|
||||
elif typ ==TYPE_TRANSFORM:
|
||||
sa.type = "Transform"
|
||||
sa.value = ValueCreator.get_transform_string()
|
||||
elif typ ==TYPE_TRANSFORM2D:
|
||||
sa.type = "Transform2D"
|
||||
sa.value = ValueCreator.get_transform2D_string()
|
||||
elif typ ==TYPE_VECTOR2:
|
||||
sa.type = "Vector2"
|
||||
sa.value = ValueCreator.get_vector2_string()
|
||||
elif typ ==TYPE_VECTOR2_ARRAY:
|
||||
sa.type = "PackedVector2Array"
|
||||
sa.value = "PackedVector2Array([])"
|
||||
elif typ ==TYPE_VECTOR2I:
|
||||
sa.type = "Vector2i"
|
||||
sa.value = ValueCreator.get_vector2i_string()
|
||||
elif typ ==TYPE_VECTOR3:
|
||||
sa.type = "Vector3"
|
||||
sa.value = ValueCreator.get_vector3_string()
|
||||
elif typ ==TYPE_VECTOR3_ARRAY:
|
||||
sa.type = "PackedVector3Array"
|
||||
sa.value = "PackedVector3Array([])"
|
||||
elif typ ==TYPE_VECTOR3I:
|
||||
sa.type = "Vector3i"
|
||||
sa.value = ValueCreator.get_vector3i_string()
|
||||
elif typ ==TYPE_RECT2I:
|
||||
sa.type = "Rect2i"
|
||||
sa.value = ValueCreator.get_rect2i_string()
|
||||
elif typ ==TYPE_CALLABLE:
|
||||
sa.type= "Callable"
|
||||
sa.value = """Callable(BoxMesh.new(),StringName("a"))"""
|
||||
else:
|
||||
print("Missing " + str(argument) )
|
||||
assert(false) # Missed some types, add it
|
||||
|
||||
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.get("args"):
|
||||
var type = argument.get("type")
|
||||
if type == TYPE_NIL: # Looks that this means VARIANT not null
|
||||
arguments_array.push_back(false) # TODO Add some randomization
|
||||
# assert(false)
|
||||
elif type == TYPE_MAX:
|
||||
assert(false)
|
||||
elif type == TYPE_AABB:
|
||||
arguments_array.push_back(ValueCreator.get_aabb())
|
||||
elif type == TYPE_ARRAY:
|
||||
arguments_array.push_back(ValueCreator.get_array())
|
||||
elif type == TYPE_BASIS:
|
||||
arguments_array.push_back(ValueCreator.get_basis())
|
||||
elif type == TYPE_BOOL:
|
||||
arguments_array.push_back(ValueCreator.get_bool())
|
||||
elif type == TYPE_COLOR:
|
||||
arguments_array.push_back(ValueCreator.get_color())
|
||||
elif type == TYPE_COLOR_ARRAY:
|
||||
arguments_array.push_back(PackedColorArray([]))
|
||||
elif type == TYPE_DICTIONARY:
|
||||
arguments_array.push_back(ValueCreator.get_dictionary())
|
||||
elif type == TYPE_INT:
|
||||
arguments_array.push_back(ValueCreator.get_int())
|
||||
elif type == TYPE_INT32_ARRAY:
|
||||
arguments_array.push_back(PackedInt32Array([]))
|
||||
elif type == TYPE_INT64_ARRAY:
|
||||
arguments_array.push_back(PackedInt64Array([]))
|
||||
elif type == TYPE_NODE_PATH:
|
||||
arguments_array.push_back(ValueCreator.get_nodepath())
|
||||
elif type == TYPE_OBJECT:
|
||||
arguments_array.push_back(ValueCreator.get_object(argument.get("class_name")))
|
||||
elif type == TYPE_PLANE:
|
||||
arguments_array.push_back(ValueCreator.get_plane())
|
||||
elif type == TYPE_QUAT:
|
||||
arguments_array.push_back(ValueCreator.get_quat())
|
||||
elif type == TYPE_RAW_ARRAY:
|
||||
arguments_array.push_back(PackedByteArray([]))
|
||||
elif type == TYPE_FLOAT:
|
||||
arguments_array.push_back(ValueCreator.get_float())
|
||||
elif type == TYPE_FLOAT32_ARRAY:
|
||||
arguments_array.push_back(PackedFloat32Array([]))
|
||||
elif type == TYPE_FLOAT64_ARRAY:
|
||||
arguments_array.push_back(PackedFloat64Array([]))
|
||||
elif type == TYPE_RECT2:
|
||||
arguments_array.push_back(ValueCreator.get_rect2())
|
||||
elif type == TYPE_RECT2I:
|
||||
arguments_array.push_back(ValueCreator.get_rect2i())
|
||||
elif type == TYPE_RID:
|
||||
arguments_array.push_back(RID())
|
||||
elif type == TYPE_STRING:
|
||||
arguments_array.push_back(ValueCreator.get_string())
|
||||
elif type == TYPE_STRING_NAME:
|
||||
arguments_array.push_back(StringName(ValueCreator.get_string()))
|
||||
elif type == TYPE_STRING_ARRAY:
|
||||
arguments_array.push_back(PackedStringArray([]))
|
||||
elif type == TYPE_TRANSFORM:
|
||||
arguments_array.push_back(ValueCreator.get_transform())
|
||||
elif type == TYPE_TRANSFORM2D:
|
||||
arguments_array.push_back(ValueCreator.get_transform2D())
|
||||
elif type == TYPE_VECTOR2:
|
||||
arguments_array.push_back(ValueCreator.get_vector2())
|
||||
elif type == TYPE_VECTOR2I:
|
||||
arguments_array.push_back(ValueCreator.get_vector2i())
|
||||
elif type == TYPE_VECTOR2_ARRAY:
|
||||
arguments_array.push_back(PackedVector2Array([]))
|
||||
elif type == TYPE_VECTOR3:
|
||||
arguments_array.push_back(ValueCreator.get_vector3())
|
||||
elif type == TYPE_VECTOR3I:
|
||||
arguments_array.push_back(ValueCreator.get_vector3i())
|
||||
elif type == TYPE_VECTOR3_ARRAY:
|
||||
arguments_array.push_back(PackedVector3Array([]))
|
||||
elif type== TYPE_CALLABLE:
|
||||
arguments_array.push_back(Callable(BoxMesh.new(),"Rar"))
|
||||
else:
|
||||
assert(false) # Missed some types, add it
|
||||
|
||||
if debug_print:
|
||||
print("Parameters " + str(arguments_array))
|
||||
return arguments_array
|
@ -1,5 +1,6 @@
|
||||
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
|
||||
@ -219,9 +220,9 @@ func get_Packed_color_array() -> PackedColorArray:
|
||||
|
||||
|
||||
func get_object(object_name: String) -> Object:
|
||||
assert(ClassDB.class_exists(object_name))
|
||||
if object_name == "PhysicsDirectSpaceState" || object_name == "Physics2DDirectSpaceState":
|
||||
return BoxMesh.new()
|
||||
assert(ClassDB.class_exists(object_name), "Class doesn't exists.")
|
||||
if object_name == "PhysicsDirectSpaceState3D" || object_name == "PhysicsDirectSpaceState2D" :
|
||||
return BoxShape3D.new()
|
||||
|
||||
var a = 0
|
||||
if random:
|
||||
@ -242,14 +243,14 @@ func get_object(object_name: String) -> 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)
|
||||
assert(to_use_classes.size() > 0, "Cannot find proper instantable child for ")
|
||||
|
||||
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 ")
|
||||
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)
|
||||
@ -257,7 +258,7 @@ func get_object(object_name: String) -> Object:
|
||||
while true:
|
||||
a += 1
|
||||
if a > 50:
|
||||
assert(false)
|
||||
assert(false, "Cannot find proper instantable child for ")
|
||||
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):
|
||||
return ClassDB.instance(choosen_class)
|
||||
@ -266,14 +267,14 @@ func get_object(object_name: String) -> 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)
|
||||
assert(to_use_classes.size() > 0, "Cannot find proper instantable child for ")
|
||||
|
||||
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 ")
|
||||
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)
|
||||
@ -283,14 +284,14 @@ func get_object(object_name: String) -> Object:
|
||||
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 ") # 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 ")
|
||||
|
||||
assert(false)
|
||||
return BoxMesh.new()
|
||||
assert(false, "Cannot find proper instantable child for ")
|
||||
return BoxShape3D.new()
|
||||
|
||||
|
||||
# TODO Update this with upper implementation
|
||||
@ -312,14 +313,14 @@ func get_object_string(object_name: String) -> String:
|
||||
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)
|
||||
assert(to_use_classes.size() > 0, "Cannot find proper instantable child for ")
|
||||
|
||||
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 ")
|
||||
var choosen_class: String = to_use_classes[randi() % to_use_classes.size()]
|
||||
if ClassDB.can_instance(choosen_class):
|
||||
return choosen_class
|
||||
@ -327,7 +328,7 @@ 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 ")
|
||||
var choosen_class: String = classes[randi() % classes.size()]
|
||||
if !ClassDB.is_parent_class(choosen_class, object_name):
|
||||
return choosen_class
|
||||
@ -336,14 +337,14 @@ func get_object_string(object_name: String) -> String:
|
||||
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)
|
||||
assert(to_use_classes.size() > 0, "Cannot find proper instantable child for ")
|
||||
|
||||
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 ")
|
||||
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
|
||||
@ -353,11 +354,11 @@ func get_object_string(object_name: String) -> String:
|
||||
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 ") # 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 ")
|
||||
|
||||
assert(false)
|
||||
assert(false, "Cannot find proper instantable child for ")
|
||||
return "BoxMesh"
|
||||
|
@ -48,7 +48,7 @@ func _process(delta: float) -> void:
|
||||
if time_to_delete < 0:
|
||||
time_to_delete += TIME_TO_DELETE
|
||||
|
||||
# for i in get_children():
|
||||
# i.queue_free()
|
||||
#
|
||||
# _populate()
|
||||
for i in get_children():
|
||||
i.queue_free()
|
||||
|
||||
_populate()
|
||||
|
@ -1,22 +1,19 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://icon.png" type="Texture2D" id=1]
|
||||
[ext_resource path="res://icon.png" type="Texture" id=1]
|
||||
[ext_resource path="res://Physics/2D/Area2D.gd" type="Script" id=2]
|
||||
|
||||
[node name="Area2D" type="Area2D"]
|
||||
script = ExtResource( 2 )
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
|
||||
polygon = PackedVector2Array( 4.018, -13.1782, -15.9057, 3.23778, 1.63277, 17.5492, 19.3115, 2.39594 )
|
||||
script = null
|
||||
polygon = PoolVector2Array( 4.018, -13.1782, -15.9057, 3.23778, 1.63277, 17.5492, 19.3115, 2.39594 )
|
||||
|
||||
[node name="CollisionPolygon2D2" type="CollisionPolygon2D" parent="."]
|
||||
polygon = PackedVector2Array( -4.58427, -16.8342, -20.5974, -4.94143, -8.23639, 16.784, 20.4187, 13.5065 )
|
||||
script = null
|
||||
polygon = PoolVector2Array( -4.58427, -16.8342, -20.5974, -4.94143, -8.23639, 16.784, 20.4187, 13.5065 )
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="."]
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
texture = ExtResource( 1 )
|
||||
script = null
|
||||
|
||||
[connection signal="area_entered" from="." to="." method="_on_Area2D_area_entered"]
|
||||
[connection signal="body_entered" from="." to="." method="_on_Area2D_body_entered"]
|
||||
|
@ -60,14 +60,14 @@ func _process(delta: float) -> void:
|
||||
var random_node = find_node("Special Node " + str(randi() % number_of_nodes),true,false)
|
||||
parent_of_node.remove_child(choosen_node)
|
||||
|
||||
# if randi() % 10 == 0: # 10% chance to remove node with children
|
||||
# var names_to_remove : Array = find_all_special_children_names(choosen_node)
|
||||
# for name_to_remove in names_to_remove:
|
||||
# var node : Node = ClassDB.instance(collected_nodes[randi() % collected_nodes.size()])
|
||||
# node.set_name(name_to_remove)
|
||||
# add_child(node)
|
||||
# choosen_node.queue_free()
|
||||
# continue
|
||||
if randi() % 6 == 0: # 16% chance to remove node with children
|
||||
var names_to_remove : Array = find_all_special_children_names(choosen_node)
|
||||
for name_to_remove in names_to_remove:
|
||||
var node : Node = ClassDB.instance(collected_nodes[randi() % collected_nodes.size()])
|
||||
node.set_name(name_to_remove)
|
||||
add_child(node)
|
||||
choosen_node.queue_free()
|
||||
continue
|
||||
|
||||
|
||||
if choosen_node.find_node(random_node.get_name(),true,false) != null: # Cannot set as node parent one of its child
|
||||
|
@ -1,18 +0,0 @@
|
||||
extends Label
|
||||
|
||||
const TIME : float = 0.1
|
||||
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.1
|
||||
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
|
||||
"
|
@ -29,8 +29,6 @@ if (
|
||||
print("FATAL ERROR: Godot has been crashed.")
|
||||
sys.exit(1)
|
||||
|
||||
sys.exit(0)
|
||||
|
||||
# Finding memory leaks in Godot is quite difficult, because we need to take into
|
||||
# account leaks also in external libraries. They are usually provided without
|
||||
# debugging symbols, so the leak report from it usually has only 2/3 lines,
|
||||
|
@ -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