feat: playtest-build
This commit is contained in:
parent
3e8c8a08f2
commit
c8e9e2fb4d
BIN
bin/windows/libdirt_racer.windows.template_debug.x86_64.dll
Executable file
BIN
bin/windows/libdirt_racer.windows.template_debug.x86_64.dll
Executable file
Binary file not shown.
16
godot/GameObjects/beacon_powerup.tscn
Normal file
16
godot/GameObjects/beacon_powerup.tscn
Normal file
|
@ -0,0 +1,16 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://cr1ytl0o43ftv"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://clwonyj2wt778" path="res://Models/SM_Prop_SatDish_01.fbx" id="1_7ohe6"]
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_nx0bu"]
|
||||
radius = 43.991
|
||||
|
||||
[node name="BeaconPowerup" type="BeaconPowerup"]
|
||||
collision_layer = 0
|
||||
collision_mask = 8
|
||||
monitorable = false
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
shape = SubResource("SphereShape3D_nx0bu")
|
||||
|
||||
[node name="Root Scene" parent="." instance=ExtResource("1_7ohe6")]
|
|
@ -1,6 +1,7 @@
|
|||
[gd_scene load_steps=12 format=3 uid="uid://dkvgi7x2epurk"]
|
||||
[gd_scene load_steps=13 format=3 uid="uid://dkvgi7x2epurk"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bm2mavtmnbaw1" path="res://Models/CarParts/SM_Veh_Hatch_01.fbx" id="1_tymeg"]
|
||||
[ext_resource type="PackedScene" uid="uid://cr1ytl0o43ftv" path="res://GameObjects/beacon_powerup.tscn" id="1_uhbx0"]
|
||||
[ext_resource type="PackedScene" uid="uid://bfq7ipx01ag7p" path="res://Models/CarParts/SM_Veh_Hatch_01_Bonnet_01.fbx" id="2_l8ox5"]
|
||||
[ext_resource type="PackedScene" uid="uid://ci63le6giakt1" path="res://Models/CarParts/SM_Veh_Hatch_01_Front_Bumper_01.fbx" id="3_8ayy1"]
|
||||
[ext_resource type="PackedScene" uid="uid://buhilfnxfvnor" path="res://Models/CarParts/SM_Veh_Hatch_01_Light_Covers_01.fbx" id="4_ebbck"]
|
||||
|
@ -27,10 +28,15 @@ points = PackedVector3Array(-1, -0.6, -2.11, 1, -0.6, -2.11, -1, -0.6, 1.405, 1,
|
|||
radius = 0.48558
|
||||
|
||||
[node name="CarPlayer" type="CarPlayer"]
|
||||
turret_scene = ExtResource("1_uhbx0")
|
||||
beacon_scene = ExtResource("1_uhbx0")
|
||||
shield_scene = ExtResource("1_uhbx0")
|
||||
oversteer_curve = SubResource("Curve_dpk6q")
|
||||
oversteer_curve_x_scale = 40.0
|
||||
understeer_curve = SubResource("Curve_htvme")
|
||||
understeer_curve_x_scale = 40.0
|
||||
max_slide_speed = 10.0
|
||||
oversteer_speed_penalty = 10.0
|
||||
collision_layer = 7
|
||||
collision_mask = 3
|
||||
mass = 1000.0
|
||||
|
@ -73,3 +79,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.372761, 0)
|
|||
[node name="Root Scene4" parent="Mesh" instance=ExtResource("5_v2arc")]
|
||||
|
||||
[node name="Root Scene5" parent="Mesh" instance=ExtResource("6_xu64x")]
|
||||
|
||||
[node name="RoofSlot" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.31348, -0.510359)
|
86
godot/GameObjects/damage_area.tscn
Normal file
86
godot/GameObjects/damage_area.tscn
Normal file
|
@ -0,0 +1,86 @@
|
|||
[gd_scene load_steps=7 format=3 uid="uid://dxyimydfpu8jp"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_xagif"]
|
||||
resource_name = "explode"
|
||||
length = 0.4
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("CollisionShape3D:shape:radius")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.4),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.001, 10.0]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("MeshInstance3D:mesh:radius")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.4),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.5, 10.0]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("MeshInstance3D:mesh:height")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.4),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [1.0, 20.0]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_eacvo"]
|
||||
_data = {
|
||||
"explode": SubResource("Animation_xagif")
|
||||
}
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_0mto7"]
|
||||
script/source = "extends AnimationPlayer
|
||||
|
||||
func _ready():
|
||||
self.play(\"explode\")
|
||||
"
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_gym27"]
|
||||
radius = 0.001
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8dpai"]
|
||||
transparency = 1
|
||||
cull_mode = 2
|
||||
diffuse_mode = 2
|
||||
albedo_color = Color(0.964648, 0.965055, 1, 0.443137)
|
||||
emission_enabled = true
|
||||
emission = Color(1.15514e-06, 0.623002, 0.744944, 1)
|
||||
rim = 0.0
|
||||
|
||||
[sub_resource type="SphereMesh" id="SphereMesh_q40p2"]
|
||||
material = SubResource("StandardMaterial3D_8dpai")
|
||||
|
||||
[node name="DamageArea" type="DamageArea"]
|
||||
target_classes = [&"CarPlayer"]
|
||||
collision_layer = 0
|
||||
collision_mask = 4
|
||||
monitorable = false
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_eacvo")
|
||||
}
|
||||
script = SubResource("GDScript_0mto7")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
shape = SubResource("SphereShape3D_gym27")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
mesh = SubResource("SphereMesh_q40p2")
|
128
godot/GameObjects/drone.tscn
Normal file
128
godot/GameObjects/drone.tscn
Normal file
File diff suppressed because one or more lines are too long
57
godot/GameObjects/player_turret.tscn
Normal file
57
godot/GameObjects/player_turret.tscn
Normal file
|
@ -0,0 +1,57 @@
|
|||
[gd_scene load_steps=7 format=3 uid="uid://1eawpg0buvah"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://d0ir0dpghkikq" path="res://GameObjects/beam.tscn" id="1_xm6id"]
|
||||
[ext_resource type="PackedScene" uid="uid://v5p6ih28q6ro" path="res://Models/SM_Wep_Shotgun_Plasma_01.fbx" id="2_vsdye"]
|
||||
|
||||
[sub_resource type="CylinderMesh" id="CylinderMesh_1btvq"]
|
||||
top_radius = 0.055
|
||||
height = 0.39
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_rdc8b"]
|
||||
radius = 167.996
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_ag1t0"]
|
||||
size = Vector3(0.205, 1, 0.83)
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_036xw"]
|
||||
radius = 0.392821
|
||||
|
||||
[node name="Turret" type="Turret"]
|
||||
attack_classes = [&"EnemyTargetBody"]
|
||||
beam_scene = ExtResource("1_xm6id")
|
||||
collision_layer = 0
|
||||
collision_mask = 0
|
||||
freeze = true
|
||||
freeze_mode = 1
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0758235, 0)
|
||||
mesh = SubResource("CylinderMesh_1btvq")
|
||||
|
||||
[node name="AwarenessArea" type="Area3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -15.7959, 0)
|
||||
collision_layer = 0
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="AwarenessArea"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 13.9111, 0)
|
||||
shape = SubResource("SphereShape3D_rdc8b")
|
||||
|
||||
[node name="Gun" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.273896, 0)
|
||||
top_level = true
|
||||
|
||||
[node name="Root Scene" parent="Gun" instance=ExtResource("2_vsdye")]
|
||||
transform = Transform3D(1.30858, 0, 0, 0, 1.30858, 0, 0, 0, 1.30858, 0.00200939, -0.12911, -0.0137266)
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Gun"]
|
||||
transform = Transform3D(0.341319, 0, 0, 0, 0.282489, -0.191569, 0, 0.191569, 0.282489, 0.00200939, -0.0518904, 0.028925)
|
||||
mesh = SubResource("BoxMesh_ag1t0")
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Gun"]
|
||||
transform = Transform3D(0.341319, 0, 0, 0, -0.00356825, -0.3413, 0, 0.3413, -0.00356825, 0.00200939, -0.119031, -0.113755)
|
||||
mesh = SubResource("BoxMesh_ag1t0")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.331101, 0)
|
||||
shape = SubResource("SphereShape3D_036xw")
|
|
@ -1,9 +1,11 @@
|
|||
[gd_scene load_steps=6 format=3 uid="uid://brpccv2gy7pjs"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://brpccv2gy7pjs"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://d0ir0dpghkikq" path="res://beam.tscn" id="1_7e7bw"]
|
||||
[ext_resource type="PackedScene" uid="uid://d0ir0dpghkikq" path="res://GameObjects/beam.tscn" id="1_7e7bw"]
|
||||
[ext_resource type="PackedScene" uid="uid://v5p6ih28q6ro" path="res://Models/SM_Wep_Shotgun_Plasma_01.fbx" id="2_snu5d"]
|
||||
|
||||
[sub_resource type="PrismMesh" id="PrismMesh_xjis4"]
|
||||
size = Vector3(1, 3.135, 1)
|
||||
[sub_resource type="CylinderMesh" id="CylinderMesh_sewkr"]
|
||||
top_radius = 0.21
|
||||
height = 4.295
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_rxnqc"]
|
||||
size = Vector3(1, 3.18433, 1)
|
||||
|
@ -11,17 +13,20 @@ size = Vector3(1, 3.18433, 1)
|
|||
[sub_resource type="SphereShape3D" id="SphereShape3D_rdc8b"]
|
||||
radius = 167.996
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_axukv"]
|
||||
size = Vector3(0.5, 0.5, 1.735)
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_ag1t0"]
|
||||
size = Vector3(0.205, 1, 0.83)
|
||||
|
||||
[node name="Turret" type="Turret"]
|
||||
attack_classes = [&"CarPlayer"]
|
||||
beam_scene = ExtResource("1_7e7bw")
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 178.697, 6.0093, 28.3981)
|
||||
collision_layer = 11
|
||||
collision_mask = 11
|
||||
freeze = true
|
||||
freeze_mode = 1
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.44861, 0)
|
||||
mesh = SubResource("PrismMesh_xjis4")
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.47794, 0)
|
||||
mesh = SubResource("CylinderMesh_sewkr")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.45032, 0)
|
||||
|
@ -31,6 +36,7 @@ shape = SubResource("BoxShape3D_rxnqc")
|
|||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -15.7959, 0)
|
||||
collision_layer = 0
|
||||
collision_mask = 2
|
||||
monitorable = false
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="AwarenessArea"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 13.9111, 0)
|
||||
|
@ -39,7 +45,13 @@ shape = SubResource("SphereShape3D_rdc8b")
|
|||
[node name="Gun" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.79299, 0)
|
||||
|
||||
[node name="Root Scene" parent="Gun" instance=ExtResource("2_snu5d")]
|
||||
transform = Transform3D(3.8339, 0, 0, 0, 3.8339, 0, 0, 0, 3.8339, 0, -0.357125, 0)
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Gun"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.827639, -0.56126, 0, 0.56126, 0.827639, 0, -0.130876, 0.124961)
|
||||
mesh = SubResource("BoxMesh_ag1t0")
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Gun"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.277781)
|
||||
mesh = SubResource("BoxMesh_axukv")
|
||||
skeleton = NodePath("../..")
|
||||
transform = Transform3D(1, 0, 0, 0, -0.0104543, -0.999945, 0, 0.999945, -0.0104543, 0, -0.327579, -0.293065)
|
||||
mesh = SubResource("BoxMesh_ag1t0")
|
19
godot/GameObjects/weapon_pickup.tscn
Normal file
19
godot/GameObjects/weapon_pickup.tscn
Normal file
|
@ -0,0 +1,19 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://dcrccx2elnkcc"]
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_b476n"]
|
||||
radius = 1.76997
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_wkw7o"]
|
||||
|
||||
[node name="WeaponPickup" type="WeaponPickup"]
|
||||
collision_layer = 4
|
||||
collision_mask = 4
|
||||
monitorable = false
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.0604, 0)
|
||||
shape = SubResource("SphereShape3D_b476n")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.0604, 0)
|
||||
mesh = SubResource("BoxMesh_wkw7o")
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://05prvqpy0r6m"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://73cn4swq2gc7" path="res://game_ui.tscn" id="1_c4p6k"]
|
||||
[ext_resource type="PackedScene" uid="uid://e3dmisrrgqq7" path="res://testmap.tscn" id="2_qhspd"]
|
||||
[ext_resource type="PackedScene" uid="uid://73cn4swq2gc7" path="res://Levels/game_ui.tscn" id="1_c4p6k"]
|
||||
[ext_resource type="PackedScene" uid="uid://e3dmisrrgqq7" path="res://Levels/testmap.tscn" id="2_qhspd"]
|
||||
|
||||
[node name="Level3D" type="Level3D"]
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://73cn4swq2gc7"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://e3dmisrrgqq7" path="res://testmap.tscn" id="1_kul4y"]
|
||||
[ext_resource type="PackedScene" uid="uid://e3dmisrrgqq7" path="res://Levels/testmap.tscn" id="1_kul4y"]
|
||||
|
||||
[node name="Level3D" type="Level3D"]
|
||||
|
726
godot/Levels/testmap.tscn
Normal file
726
godot/Levels/testmap.tscn
Normal file
File diff suppressed because one or more lines are too long
BIN
godot/Models/PolygonSciFi_Road_01.png
(Stored with Git LFS)
Normal file
BIN
godot/Models/PolygonSciFi_Road_01.png
(Stored with Git LFS)
Normal file
Binary file not shown.
35
godot/Models/PolygonSciFi_Road_01.png.import
Normal file
35
godot/Models/PolygonSciFi_Road_01.png.import
Normal file
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c2hya1lg6w1n5"
|
||||
path.s3tc="res://.godot/imported/PolygonSciFi_Road_01.png-2a3130bcf3891008ccb28c99808e07f7.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Models/PolygonSciFi_Road_01.png"
|
||||
dest_files=["res://.godot/imported/PolygonSciFi_Road_01.png-2a3130bcf3891008ccb28c99808e07f7.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
BIN
godot/Models/PolygonSciFi_Road_Normal.png
(Stored with Git LFS)
Normal file
BIN
godot/Models/PolygonSciFi_Road_Normal.png
(Stored with Git LFS)
Normal file
Binary file not shown.
35
godot/Models/PolygonSciFi_Road_Normal.png.import
Normal file
35
godot/Models/PolygonSciFi_Road_Normal.png.import
Normal file
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://gbu53dus3ink"
|
||||
path.s3tc="res://.godot/imported/PolygonSciFi_Road_Normal.png-cc63a08bd1d50d94c1b22cf00aa9ed3c.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Models/PolygonSciFi_Road_Normal.png"
|
||||
dest_files=["res://.godot/imported/PolygonSciFi_Road_Normal.png-cc63a08bd1d50d94c1b22cf00aa9ed3c.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=1
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=1
|
||||
roughness/src_normal="res://Models/PolygonSciFi_Road_Normal.png"
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
BIN
godot/Models/SM_Prop_Drone_01.fbx
(Stored with Git LFS)
Normal file
BIN
godot/Models/SM_Prop_Drone_01.fbx
(Stored with Git LFS)
Normal file
Binary file not shown.
41
godot/Models/SM_Prop_Drone_01.fbx.import
Normal file
41
godot/Models/SM_Prop_Drone_01.fbx.import
Normal file
|
@ -0,0 +1,41 @@
|
|||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://bmd87fagna2u0"
|
||||
path="res://.godot/imported/SM_Prop_Drone_01.fbx-ca6e530339316369afce57e31e22a35a.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Models/SM_Prop_Drone_01.fbx"
|
||||
dest_files=["res://.godot/imported/SM_Prop_Drone_01.fbx-ca6e530339316369afce57e31e22a35a.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={
|
||||
"materials": {
|
||||
"lambert182": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/path": "res://Models/World/City/city.tres"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=1
|
||||
gltf/embedded_image_handling=1
|
BIN
godot/Models/SM_Prop_SatDish_01.fbx
(Stored with Git LFS)
Normal file
BIN
godot/Models/SM_Prop_SatDish_01.fbx
(Stored with Git LFS)
Normal file
Binary file not shown.
41
godot/Models/SM_Prop_SatDish_01.fbx.import
Normal file
41
godot/Models/SM_Prop_SatDish_01.fbx.import
Normal file
|
@ -0,0 +1,41 @@
|
|||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://clwonyj2wt778"
|
||||
path="res://.godot/imported/SM_Prop_SatDish_01.fbx-471e11a0f38ac1c7d67a20af96be351f.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Models/SM_Prop_SatDish_01.fbx"
|
||||
dest_files=["res://.godot/imported/SM_Prop_SatDish_01.fbx-471e11a0f38ac1c7d67a20af96be351f.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={
|
||||
"materials": {
|
||||
"lambert230": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/path": "res://Models/World/City/city.tres"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=1
|
||||
gltf/embedded_image_handling=1
|
BIN
godot/Models/SM_Wep_Shotgun_Plasma_01.fbx
(Stored with Git LFS)
Normal file
BIN
godot/Models/SM_Wep_Shotgun_Plasma_01.fbx
(Stored with Git LFS)
Normal file
Binary file not shown.
41
godot/Models/SM_Wep_Shotgun_Plasma_01.fbx.import
Normal file
41
godot/Models/SM_Wep_Shotgun_Plasma_01.fbx.import
Normal file
|
@ -0,0 +1,41 @@
|
|||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://v5p6ih28q6ro"
|
||||
path="res://.godot/imported/SM_Wep_Shotgun_Plasma_01.fbx-ba3b64de16a7afbd898c81fc9d235ef9.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Models/SM_Wep_Shotgun_Plasma_01.fbx"
|
||||
dest_files=["res://.godot/imported/SM_Wep_Shotgun_Plasma_01.fbx-ba3b64de16a7afbd898c81fc9d235ef9.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={
|
||||
"materials": {
|
||||
"lambert1": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/path": "res://Models/World/City/city.tres"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=1
|
||||
gltf/embedded_image_handling=1
|
BIN
godot/Models/World/Harbour/Container_Normal_01.png
(Stored with Git LFS)
Normal file
BIN
godot/Models/World/Harbour/Container_Normal_01.png
(Stored with Git LFS)
Normal file
Binary file not shown.
35
godot/Models/World/Harbour/Container_Normal_01.png.import
Normal file
35
godot/Models/World/Harbour/Container_Normal_01.png.import
Normal file
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dtv7tkkntu61t"
|
||||
path.s3tc="res://.godot/imported/Container_Normal_01.png-dabf886305f555d622564cfa67719741.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Models/World/Harbour/Container_Normal_01.png"
|
||||
dest_files=["res://.godot/imported/Container_Normal_01.png-dabf886305f555d622564cfa67719741.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=1
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=1
|
||||
roughness/src_normal="res://Models/World/Harbour/Container_Normal_01.png"
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
BIN
godot/Models/World/Harbour/Container_Texture_02.png
(Stored with Git LFS)
Normal file
BIN
godot/Models/World/Harbour/Container_Texture_02.png
(Stored with Git LFS)
Normal file
Binary file not shown.
35
godot/Models/World/Harbour/Container_Texture_02.png.import
Normal file
35
godot/Models/World/Harbour/Container_Texture_02.png.import
Normal file
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cgd1o2fe1ta5l"
|
||||
path.s3tc="res://.godot/imported/Container_Texture_02.png-f4cdceff2027806558f091a509b7ee62.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Models/World/Harbour/Container_Texture_02.png"
|
||||
dest_files=["res://.godot/imported/Container_Texture_02.png-f4cdceff2027806558f091a509b7ee62.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
BIN
godot/Models/World/Harbour/PolygonStreetRacer_Veh_Tex_25_Rust_Painted_White.png
(Stored with Git LFS)
Normal file
BIN
godot/Models/World/Harbour/PolygonStreetRacer_Veh_Tex_25_Rust_Painted_White.png
(Stored with Git LFS)
Normal file
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bkdd78bm5vkd5"
|
||||
path.s3tc="res://.godot/imported/PolygonStreetRacer_Veh_Tex_25_Rust_Painted_White.png-74d82f3e896180533c6d9f0b97aba6e0.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Models/World/Harbour/PolygonStreetRacer_Veh_Tex_25_Rust_Painted_White.png"
|
||||
dest_files=["res://.godot/imported/PolygonStreetRacer_Veh_Tex_25_Rust_Painted_White.png-74d82f3e896180533c6d9f0b97aba6e0.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
BIN
godot/Models/World/Harbour/SM_Prop_Container_01.fbx
(Stored with Git LFS)
Normal file
BIN
godot/Models/World/Harbour/SM_Prop_Container_01.fbx
(Stored with Git LFS)
Normal file
Binary file not shown.
41
godot/Models/World/Harbour/SM_Prop_Container_01.fbx.import
Normal file
41
godot/Models/World/Harbour/SM_Prop_Container_01.fbx.import
Normal file
|
@ -0,0 +1,41 @@
|
|||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://cxbj3kifhk2h1"
|
||||
path="res://.godot/imported/SM_Prop_Container_01.fbx-ec2ac5a6c0cb5f4673c8fedc60121599.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Models/World/Harbour/SM_Prop_Container_01.fbx"
|
||||
dest_files=["res://.godot/imported/SM_Prop_Container_01.fbx-ec2ac5a6c0cb5f4673c8fedc60121599.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=3.0
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={
|
||||
"materials": {
|
||||
"lambert152": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/path": "res://Models/World/Harbour/containers.tres"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=1
|
||||
gltf/embedded_image_handling=1
|
BIN
godot/Models/World/Harbour/SM_Prop_Container_02.fbx
(Stored with Git LFS)
Normal file
BIN
godot/Models/World/Harbour/SM_Prop_Container_02.fbx
(Stored with Git LFS)
Normal file
Binary file not shown.
34
godot/Models/World/Harbour/SM_Prop_Container_02.fbx.import
Normal file
34
godot/Models/World/Harbour/SM_Prop_Container_02.fbx.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://ga6xfetvtdpu"
|
||||
path="res://.godot/imported/SM_Prop_Container_02.fbx-8cf211240864d14e91e6d07e4024f095.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Models/World/Harbour/SM_Prop_Container_02.fbx"
|
||||
dest_files=["res://.godot/imported/SM_Prop_Container_02.fbx-8cf211240864d14e91e6d07e4024f095.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=1
|
||||
gltf/embedded_image_handling=1
|
BIN
godot/Models/World/Harbour/SM_Veh_ContainerCrane_01.fbx
(Stored with Git LFS)
Normal file
BIN
godot/Models/World/Harbour/SM_Veh_ContainerCrane_01.fbx
(Stored with Git LFS)
Normal file
Binary file not shown.
|
@ -0,0 +1,41 @@
|
|||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://dtjo6l5oma51w"
|
||||
path="res://.godot/imported/SM_Veh_ContainerCrane_01.fbx-0364c85def4b9919d28e1e789a707dbc.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Models/World/Harbour/SM_Veh_ContainerCrane_01.fbx"
|
||||
dest_files=["res://.godot/imported/SM_Veh_ContainerCrane_01.fbx-0364c85def4b9919d28e1e789a707dbc.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=3.0
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={
|
||||
"materials": {
|
||||
"lambert7": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/path": "res://Models/World/Harbour/crane.tres"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=1
|
||||
gltf/embedded_image_handling=1
|
9
godot/Models/World/Harbour/containers.tres
Normal file
9
godot/Models/World/Harbour/containers.tres
Normal file
|
@ -0,0 +1,9 @@
|
|||
[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://k8w3xmh1vhia"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://cgd1o2fe1ta5l" path="res://Models/World/Harbour/Container_Texture_02.png" id="1_oggmd"]
|
||||
[ext_resource type="Texture2D" uid="uid://dtv7tkkntu61t" path="res://Models/World/Harbour/Container_Normal_01.png" id="2_3m47g"]
|
||||
|
||||
[resource]
|
||||
albedo_texture = ExtResource("1_oggmd")
|
||||
normal_enabled = true
|
||||
normal_texture = ExtResource("2_3m47g")
|
6
godot/Models/World/Harbour/crane.tres
Normal file
6
godot/Models/World/Harbour/crane.tres
Normal file
|
@ -0,0 +1,6 @@
|
|||
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://45e28s7j77mx"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bkdd78bm5vkd5" path="res://Models/World/Harbour/PolygonStreetRacer_Veh_Tex_25_Rust_Painted_White.png" id="1_iwsst"]
|
||||
|
||||
[resource]
|
||||
albedo_texture = ExtResource("1_iwsst")
|
|
@ -1,6 +1,6 @@
|
|||
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://cfont63vhwa3y"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://b56x2elvi7npj" path="res://purple_grid.png" id="1_8vpt8"]
|
||||
[ext_resource type="Texture2D" uid="uid://b56x2elvi7npj" path="res://Models/purple_grid.png" id="1_8vpt8"]
|
||||
|
||||
[resource]
|
||||
albedo_texture = ExtResource("1_8vpt8")
|
|
@ -3,7 +3,7 @@
|
|||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b56x2elvi7npj"
|
||||
path.s3tc="res://.godot/imported/purple_grid.png-c21fba44bb781e02cf20cfac8b2146af.s3tc.ctex"
|
||||
path.s3tc="res://.godot/imported/purple_grid.png-ddc30508e9c4a30716ebf9b1586b65f5.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
|
@ -11,8 +11,8 @@ metadata={
|
|||
|
||||
[deps]
|
||||
|
||||
source_file="res://purple_grid.png"
|
||||
dest_files=["res://.godot/imported/purple_grid.png-c21fba44bb781e02cf20cfac8b2146af.s3tc.ctex"]
|
||||
source_file="res://Models/purple_grid.png"
|
||||
dest_files=["res://.godot/imported/purple_grid.png-ddc30508e9c4a30716ebf9b1586b65f5.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
|
@ -10,68 +10,50 @@ size = Vector2(38, 11.1516)
|
|||
|
||||
[node name="TreeClump1" type="Node3D"]
|
||||
|
||||
[node name="tree_20" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 2.94639, -0.417668, 2.70436)
|
||||
|
||||
[node name="tree_21" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 2.94639, -0.417668, 6.70436)
|
||||
|
||||
[node name="tree_22" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -0.503949, -0.417668, 2.71279)
|
||||
|
||||
[node name="tree_23" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -0.70691, -0.417668, -0.399292)
|
||||
|
||||
[node name="tree_24" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -4.70691, -0.417668, 2.60071)
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -1.17588, -0.417668, -1.63566)
|
||||
|
||||
[node name="tree_25" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -3.70691, -0.417668, 5.60071)
|
||||
|
||||
[node name="tree_26" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -8.7133, -0.417668, 1.87975)
|
||||
|
||||
[node name="tree_27" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -8.7133, -0.417668, -1.50295)
|
||||
|
||||
[node name="tree_28" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -12.5019, -0.417668, 3.84171)
|
||||
|
||||
[node name="tree_29" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -15.4787, -0.417668, 6.81847)
|
||||
|
||||
[node name="tree_30" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -16.1552, -0.417668, 2.35332)
|
||||
|
||||
[node name="tree_31" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -19.1996, -0.417668, -0.961721)
|
||||
|
||||
[node name="tree_32" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -15.7493, -0.417668, -1.36764)
|
||||
|
||||
[node name="tree_33" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -19.7493, -0.417668, 3.63236)
|
||||
|
||||
[node name="tree_34" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -22.7937, -0.417668, 2.41459)
|
||||
|
||||
[node name="tree_35" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -26.9206, -0.417668, 1.33213)
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -27.9571, -0.417668, 1.81583)
|
||||
|
||||
[node name="tree_36" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -26.3794, -0.417668, -1.84761)
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -27.7153, -0.417668, -2.00884)
|
||||
|
||||
[node name="tree_127" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -27.5847, -0.417668, 5.98593)
|
||||
|
||||
[node name="tree_37" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -23.8102, -0.417668, 5.75798)
|
||||
|
||||
[node name="tree_38" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 13.6717, -0.417668, 3.15878)
|
||||
|
||||
[node name="tree_39" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 17.7986, -0.417668, 1.12916)
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 18.8812, -0.417668, -1.5197)
|
||||
|
||||
[node name="tree_40" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 14.5512, -0.417668, -0.426874)
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 19.0197, -0.417668, 2.61355)
|
||||
|
||||
[node name="tree_43" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 16.2787, -0.417668, -1.64765)
|
||||
|
||||
[node name="tree_48" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 12.7931, -0.417668, -1.60159)
|
||||
|
||||
[node name="tree_41" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 17.1897, -0.417668, 5.79728)
|
||||
|
@ -82,11 +64,11 @@ transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661
|
|||
[node name="tree_8" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 11.2097, -0.417668, 6.7842)
|
||||
|
||||
[node name="tree_43" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.6554, -0.417668, 5.01132)
|
||||
|
||||
[node name="tree_44" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(0.477941, 0, 0.878392, 0, 1, 0, -0.878392, 0, 0.477941, -22.8314, -0.417668, -0.619483)
|
||||
transform = Transform3D(0.477941, 0, 0.878392, 0, 1, 0, -0.878392, 0, 0.477941, -22.5807, -0.417668, -1.74761)
|
||||
|
||||
[node name="tree_49" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(0.477941, 0, 0.878392, 0, 1, 0, -0.878392, 0, 0.477941, -24.8996, -0.417668, -2.02964)
|
||||
|
||||
[node name="tree_45" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(0.0278519, 0, -0.999612, 0, 1, 0, 0.999612, 0, 0.0278519, -14.4303, -0.417668, -0.952002)
|
||||
|
@ -97,33 +79,12 @@ transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661
|
|||
[node name="tree_47" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -11.5526, -0.417668, 6.69594)
|
||||
|
||||
[node name="tree_48" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -15.1382, -0.417668, 3.78682)
|
||||
|
||||
[node name="tree_49" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -17.2355, -0.417668, 0.133513)
|
||||
|
||||
[node name="tree_50" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -19.671, -0.417668, 0.404129)
|
||||
|
||||
[node name="tree_51" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -18.6562, -0.417668, 2.90732)
|
||||
|
||||
[node name="tree_52" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -20.3476, -0.417668, 5.81644)
|
||||
|
||||
[node name="tree_53" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -22.7831, -0.417668, 2.70436)
|
||||
|
||||
[node name="tree_54" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -22.7831, -0.417668, 6.70436)
|
||||
|
||||
[node name="tree_55" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -12.0578, -0.417668, 3.15878)
|
||||
|
||||
[node name="tree_56" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -7.9309, -0.417668, 1.12916)
|
||||
|
||||
[node name="tree_57" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -11.1783, -0.417668, -0.426874)
|
||||
|
||||
|
@ -137,10 +98,10 @@ transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661
|
|||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.3188, -0.417668, 5.01132)
|
||||
|
||||
[node name="tree_61" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(0.477941, 0, 0.878392, 0, 1, 0, -0.878392, 0, 0.477941, -3.85712, -0.417668, -0.619483)
|
||||
transform = Transform3D(0.477941, 0, 0.878392, 0, 1, 0, -0.878392, 0, 0.477941, -4.92296, -0.417668, -1.38689)
|
||||
|
||||
[node name="tree_62" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(0.0278519, 0, -0.999612, 0, 1, 0, 0.999612, 0, 0.0278519, 4.54393, -0.417668, -0.952002)
|
||||
transform = Transform3D(0.0278519, 0, -0.999612, 0, 1, 0, 0.999612, 0, 0.0278519, 5.96943, -0.417668, -0.952002)
|
||||
|
||||
[node name="tree_63" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 1.26549, -0.417668, 7.32876)
|
||||
|
@ -148,35 +109,17 @@ transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661
|
|||
[node name="tree_64" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 7.42163, -0.417668, 6.69594)
|
||||
|
||||
[node name="tree_65" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 3.83603, -0.417668, 3.78682)
|
||||
|
||||
[node name="tree_66" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 1.73873, -0.417668, 0.133513)
|
||||
|
||||
[node name="tree_67" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -0.696802, -0.417668, 0.404129)
|
||||
|
||||
[node name="tree_68" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 0.318008, -0.417668, 2.90732)
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 2.34794, -0.417668, -1.40129)
|
||||
|
||||
[node name="tree_69" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -1.37334, -0.417668, 5.81644)
|
||||
|
||||
[node name="tree_70" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -3.80888, -0.417668, 2.70436)
|
||||
|
||||
[node name="tree_71" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, -3.80888, -0.417668, 6.70436)
|
||||
|
||||
[node name="tree_72" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 6.91643, -0.417668, 3.15878)
|
||||
|
||||
[node name="tree_73" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 11.0433, -0.417668, 1.12916)
|
||||
|
||||
[node name="tree_74" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 7.79593, -0.417668, -0.426874)
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 9.22752, -0.417668, -0.895842)
|
||||
|
||||
[node name="tree_75" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 10.4344, -0.417668, 5.79728)
|
||||
|
@ -185,154 +128,100 @@ transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661
|
|||
transform = Transform3D(-0.729661, 0, 0.683809, 0, 1, 0, -0.683809, 0, -0.729661, 4.45443, -0.417668, 6.7842)
|
||||
|
||||
[node name="tree_77" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(0.833405, 0, 0, 0, 0.833405, 0, 0, 0, 0.833405, 15.9238, -4.86492, 4.68233)
|
||||
transform = Transform3D(0.833405, 0, 0, 0, 0.833405, 0, 0, 0, 0.833405, 15.9238, -3.56477, 4.68233)
|
||||
|
||||
[node name="tree_78" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(0.833405, 0, 0, 0, 0.833405, 0, 0, 0, 0.833405, -16.379, -4.86492, 5.82774)
|
||||
transform = Transform3D(0.833405, 0, 0, 0, 0.833405, 0, 0, 0, 0.833405, -16.379, -3.56477, 5.82774)
|
||||
|
||||
[node name="tree_79" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(0.833405, 0, 0, 0, 0.833405, 0, 0, 0, 0.833405, -12.0844, -4.86492, 0.459641)
|
||||
|
||||
[node name="tree_80" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(0.833405, 0, 0, 0, 0.833405, 0, 0, 0, 0.833405, -19.9901, -4.86492, -0.728979)
|
||||
|
||||
[node name="tree_81" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(0.398319, 0, 0.732057, 0, 0.833405, 0, -0.732057, 0, 0.398319, 1.60923, -4.86492, -0.0104105)
|
||||
|
||||
[node name="tree_82" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(0.0232119, 0, -0.833082, 0, 0.833405, 0, 0.833082, 0, 0.0232119, 8.61071, -4.86492, -0.287534)
|
||||
|
||||
[node name="tree_83" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(0.0232119, 0, -0.833082, 0, 0.833405, 0, 0.833082, 0, 0.0232119, -5.24823, -4.86492, -0.545279)
|
||||
transform = Transform3D(0.833405, 0, 0, 0, 0.833405, 0, 0, 0, 0.833405, -12.0844, -3.56477, 0.459641)
|
||||
|
||||
[node name="tree_84" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(0.0232119, 0, -0.833082, 0, 0.833405, 0, 0.833082, 0, 0.0232119, -8.02836, -4.86492, 4.61012)
|
||||
transform = Transform3D(0.0232119, 0, -0.833082, 0, 0.833405, 0, 0.833082, 0, 0.0232119, -8.02836, -3.56477, 4.61012)
|
||||
|
||||
[node name="tree_85" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(0.0232119, 0, -0.833082, 0, 0.833405, 0, 0.833082, 0, 0.0232119, -23.9007, -4.86492, 4.82934)
|
||||
transform = Transform3D(0.0232119, 0, -0.833082, 0, 0.833405, 0, 0.833082, 0, 0.0232119, -23.9007, -3.56477, 4.82934)
|
||||
|
||||
[node name="tree_86" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -0.746029, -4.86492, 5.8368)
|
||||
|
||||
[node name="tree_87" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 5.87844, -4.86492, 6.6137)
|
||||
|
||||
[node name="tree_88" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 11.009, -4.86492, 6.0863)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -0.746029, -3.56477, 5.8368)
|
||||
|
||||
[node name="tree_89" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 8.02075, -4.86492, 3.66183)
|
||||
|
||||
[node name="tree_90" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 6.27284, -4.86492, 0.61714)
|
||||
|
||||
[node name="tree_91" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 4.24306, -4.86492, 0.842673)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 7.87454, -3.56477, 3.07701)
|
||||
|
||||
[node name="tree_92" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 5.08881, -4.86492, 2.92885)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 5.08881, -3.56477, 2.92885)
|
||||
|
||||
[node name="tree_93" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 3.67923, -4.86492, 5.35332)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 3.67923, -3.56477, 5.35332)
|
||||
|
||||
[node name="tree_94" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 1.64944, -4.86492, 2.7597)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 1.64944, -3.56477, 2.7597)
|
||||
|
||||
[node name="tree_95" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 1.64944, -4.86492, 6.09332)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 1.64944, -3.56477, 6.09332)
|
||||
|
||||
[node name="tree_96" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -1.2261, -4.86492, 2.76672)
|
||||
|
||||
[node name="tree_97" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -1.39524, -4.86492, 0.173098)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -1.2261, -3.56477, 2.76672)
|
||||
|
||||
[node name="tree_98" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -4.72887, -4.86492, 2.67332)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -3.59578, -3.56477, 2.56366)
|
||||
|
||||
[node name="tree_99" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -3.89546, -4.86492, 5.17353)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -3.89546, -3.56477, 5.17353)
|
||||
|
||||
[node name="tree_100" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -8.06781, -4.86492, 2.07246)
|
||||
|
||||
[node name="tree_101" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -8.06781, -4.86492, -0.746697)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -6.67886, -3.56477, 1.8897)
|
||||
|
||||
[node name="tree_102" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -11.2253, -4.86492, 3.70757)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -9.47084, -3.56477, 2.79379)
|
||||
|
||||
[node name="tree_103" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -13.7061, -4.86492, 6.18842)
|
||||
|
||||
[node name="tree_104" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -14.2699, -4.86492, 2.46714)
|
||||
|
||||
[node name="tree_105" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -16.8072, -4.86492, -0.295634)
|
||||
|
||||
[node name="tree_106" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -13.9317, -4.86492, -0.633929)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -13.7061, -3.56477, 6.18842)
|
||||
|
||||
[node name="tree_107" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -17.2653, -4.86492, 3.5331)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -14.3046, -3.56477, 2.76552)
|
||||
|
||||
[node name="tree_108" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -19.8025, -4.86492, 2.5182)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -19.8025, -3.56477, 2.5182)
|
||||
|
||||
[node name="tree_109" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -23.2419, -4.86492, 1.61607)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -24.3384, -3.56477, 2.31055)
|
||||
|
||||
[node name="tree_110" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -22.7908, -4.86492, -1.03394)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -22.1088, -3.56477, 1.87193)
|
||||
|
||||
[node name="tree_111" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -20.6497, -4.86492, 5.3046)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -20.6497, -3.56477, 5.3046)
|
||||
|
||||
[node name="tree_112" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 10.588, -4.86492, 3.13841)
|
||||
|
||||
[node name="tree_113" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 14.0273, -4.86492, 1.44692)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 10.7863, -3.56477, 2.74045)
|
||||
|
||||
[node name="tree_114" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 11.3209, -4.86492, 0.150111)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 16.8034, -3.56477, 1.89508)
|
||||
|
||||
[node name="tree_115" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 13.5199, -4.86492, 5.33735)
|
||||
[node name="tree_113" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 13.6792, -3.56477, 1.69556)
|
||||
|
||||
[node name="tree_116" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -10.4429, -4.86492, 6.23948)
|
||||
|
||||
[node name="tree_117" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, 8.53612, -4.86492, 6.15986)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -10.4429, -3.56477, 6.23948)
|
||||
|
||||
[node name="tree_118" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(0.833405, 0, 0, 0, 0.833405, 0, 0, 0, 0.833405, -5.51934, -4.86492, 4.68233)
|
||||
|
||||
[node name="tree_119" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(0.398319, 0, 0.732057, 0, 0.833405, 0, -0.732057, 0, 0.398319, -19.8339, -4.86492, -0.0104105)
|
||||
|
||||
[node name="tree_120" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(0.0232119, 0, -0.833082, 0, 0.833405, 0, 0.833082, 0, 0.0232119, -12.8324, -4.86492, -0.287534)
|
||||
transform = Transform3D(0.833405, 0, 0, 0, 0.833405, 0, 0, 0, 0.833405, -5.51934, -3.56477, 4.68233)
|
||||
|
||||
[node name="tree_121" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -15.5647, -4.86492, 6.6137)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -15.5647, -3.56477, 6.6137)
|
||||
|
||||
[node name="tree_122" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -10.4341, -4.86492, 6.0863)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -10.4341, -3.56477, 6.0863)
|
||||
|
||||
[node name="tree_123" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -13.4224, -4.86492, 3.66183)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -11.9969, -3.56477, 2.9308)
|
||||
|
||||
[node name="tree_124" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -15.1703, -4.86492, 0.61714)
|
||||
|
||||
[node name="tree_125" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -17.2, -4.86492, 0.842673)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -15.1703, -3.56477, 0.61714)
|
||||
|
||||
[node name="tree_126" parent="." instance=ExtResource("1_x3voc")]
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -16.3543, -4.86492, 2.92885)
|
||||
transform = Transform3D(-0.608103, 0, 0.56989, 0, 0.833405, 0, -0.56989, 0, -0.608103, -17.1584, -3.56477, 2.56334)
|
||||
|
||||
[node name="StaticBody3D" type="StaticBody3D" parent="."]
|
||||
|
||||
|
@ -341,7 +230,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.42109, 3.13712, 1.84325)
|
|||
shape = SubResource("BoxShape3D_iye8r")
|
||||
|
||||
[node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D"]
|
||||
transform = Transform3D(0.833405, 0, 0, 0, 0.833405, 0, 0, 0, 0.833405, -4.49066, -1.90234, 2.04204)
|
||||
transform = Transform3D(0.833405, 0, 0, 0, 0.833405, 0, 0, 0, 0.833405, -4.49066, -0.602195, 2.04204)
|
||||
shape = SubResource("BoxShape3D_iye8r")
|
||||
|
||||
[node name="OccluderInstance3D" type="OccluderInstance3D" parent="."]
|
||||
|
|
49
godot/WorldObjects/Harbour/container_1.tscn
Normal file
49
godot/WorldObjects/Harbour/container_1.tscn
Normal file
|
@ -0,0 +1,49 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://dcljtjjyxymd"]
|
||||
|
||||
[ext_resource type="Material" uid="uid://k8w3xmh1vhia" path="res://Models/World/Harbour/containers.tres" id="1_fgu0h"]
|
||||
|
||||
[sub_resource type="ArrayMesh" id="ArrayMesh_3g704"]
|
||||
_surfaces = [{
|
||||
"aabb": AABB(-9.08555, 0, -3.645, 18.1711, 7.77001, 7.29),
|
||||
"format": 34896613377,
|
||||
"index_count": 60,
|
||||
"index_data": PackedByteArray(0, 0, 2, 0, 1, 0, 1, 0, 3, 0, 0, 0, 2, 0, 0, 0, 4, 0, 5, 0, 4, 0, 6, 0, 6, 0, 4, 0, 7, 0, 8, 0, 3, 0, 9, 0, 8, 0, 0, 0, 3, 0, 8, 0, 4, 0, 0, 0, 1, 0, 10, 0, 9, 0, 9, 0, 3, 0, 1, 0, 1, 0, 2, 0, 11, 0, 11, 0, 10, 0, 1, 0, 11, 0, 2, 0, 5, 0, 11, 0, 9, 0, 10, 0, 11, 0, 7, 0, 8, 0, 11, 0, 8, 0, 9, 0, 4, 0, 5, 0, 2, 0, 7, 0, 4, 0, 8, 0, 6, 0, 7, 0, 11, 0, 5, 0, 6, 0, 11, 0),
|
||||
"name": "lambert152",
|
||||
"primitive": 3,
|
||||
"uv_scale": Vector4(0, 0, 0, 0),
|
||||
"vertex_count": 12,
|
||||
"vertex_data": PackedByteArray(255, 127, 254, 255, 0, 0, 0, 0, 0, 0, 254, 255, 255, 255, 0, 0, 255, 127, 254, 255, 255, 255, 0, 0, 0, 0, 254, 255, 0, 0, 0, 0, 255, 255, 254, 255, 0, 0, 0, 0, 255, 255, 254, 255, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 255, 127, 0, 0, 255, 255, 0, 0)
|
||||
}]
|
||||
blend_shape_mode = 0
|
||||
|
||||
[sub_resource type="ArrayMesh" id="ArrayMesh_4ux16"]
|
||||
resource_name = "Root Scene_SM_Prop_Container_01"
|
||||
_surfaces = [{
|
||||
"aabb": AABB(-9.08555, 0, -3.645, 18.1711, 7.77001, 7.29),
|
||||
"attribute_data": PackedByteArray(121, 233, 160, 221, 110, 107, 110, 115, 121, 233, 110, 115, 110, 107, 160, 221, 110, 107, 160, 221, 186, 3, 87, 115, 186, 3, 137, 221, 93, 103, 87, 115, 93, 103, 137, 221, 195, 127, 21, 110, 240, 251, 21, 110, 240, 251, 226, 3, 195, 127, 226, 3, 150, 3, 226, 3, 93, 103, 87, 115, 186, 3, 137, 221, 93, 103, 137, 221, 186, 3, 87, 115, 150, 3, 226, 3, 195, 127, 21, 110, 195, 127, 226, 3, 150, 3, 21, 110, 240, 251, 226, 3, 121, 233, 160, 221, 110, 107, 160, 221, 110, 107, 110, 115, 121, 233, 110, 115, 110, 107, 110, 115, 110, 107, 110, 115, 150, 3, 21, 110, 110, 107, 160, 221, 240, 251, 21, 110),
|
||||
"format": 34896613399,
|
||||
"index_count": 60,
|
||||
"index_data": PackedByteArray(0, 0, 2, 0, 1, 0, 1, 0, 3, 0, 0, 0, 2, 0, 0, 0, 4, 0, 5, 0, 7, 0, 6, 0, 6, 0, 7, 0, 8, 0, 9, 0, 11, 0, 10, 0, 9, 0, 12, 0, 11, 0, 9, 0, 13, 0, 12, 0, 14, 0, 16, 0, 15, 0, 15, 0, 17, 0, 14, 0, 18, 0, 20, 0, 19, 0, 19, 0, 21, 0, 18, 0, 19, 0, 20, 0, 22, 0, 23, 0, 25, 0, 24, 0, 23, 0, 27, 0, 26, 0, 23, 0, 26, 0, 25, 0, 4, 0, 28, 0, 2, 0, 29, 0, 13, 0, 9, 0, 30, 0, 27, 0, 23, 0, 22, 0, 31, 0, 19, 0),
|
||||
"material": ExtResource("1_fgu0h"),
|
||||
"name": "lambert152",
|
||||
"primitive": 3,
|
||||
"uv_scale": Vector4(0, 0, 0, 0),
|
||||
"vertex_count": 32,
|
||||
"vertex_data": PackedByteArray(255, 127, 254, 255, 0, 0, 255, 255, 0, 0, 254, 255, 255, 255, 255, 63, 255, 127, 254, 255, 255, 255, 255, 255, 0, 0, 254, 255, 0, 0, 255, 63, 255, 255, 254, 255, 0, 0, 255, 255, 255, 255, 254, 255, 255, 255, 255, 191, 255, 255, 0, 0, 255, 255, 255, 191, 255, 255, 254, 255, 0, 0, 255, 191, 255, 255, 0, 0, 0, 0, 255, 191, 255, 127, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 254, 255, 0, 0, 255, 255, 255, 127, 254, 255, 0, 0, 255, 255, 255, 255, 254, 255, 0, 0, 255, 255, 0, 0, 254, 255, 255, 255, 255, 191, 0, 0, 0, 0, 0, 0, 255, 191, 0, 0, 0, 0, 255, 255, 255, 191, 0, 0, 254, 255, 0, 0, 255, 191, 0, 0, 254, 255, 255, 255, 0, 128, 255, 127, 0, 0, 255, 255, 0, 128, 255, 127, 254, 255, 255, 255, 0, 128, 0, 0, 0, 0, 255, 255, 0, 128, 255, 255, 254, 255, 255, 255, 0, 128, 255, 127, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 63, 0, 0, 0, 0, 0, 0, 255, 63, 255, 127, 0, 0, 0, 0, 255, 63, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 255, 255, 255, 255, 255, 255, 0, 0, 255, 255, 0, 128, 255, 127, 255, 191, 255, 255, 255, 127, 255, 127, 255, 191, 255, 255, 255, 127, 255, 127, 255, 191, 255, 127, 0, 0, 255, 127, 0, 0, 255, 127, 0, 0, 255, 127, 0, 0, 255, 127, 254, 255, 255, 127, 254, 255, 255, 127, 254, 255, 255, 127, 255, 255, 255, 127, 254, 255, 255, 127, 254, 255, 255, 127, 254, 255, 255, 127, 254, 255, 255, 127, 254, 255, 255, 127, 255, 255, 255, 127, 255, 255, 255, 127, 255, 255, 255, 127, 255, 255, 255, 127, 255, 255, 255, 127, 255, 63, 0, 0, 255, 127, 0, 0, 255, 127, 0, 0, 255, 127, 255, 127, 255, 63, 255, 127, 255, 191, 255, 127, 254, 255, 255, 127, 255, 63, 255, 127, 255, 255)
|
||||
}]
|
||||
blend_shape_mode = 0
|
||||
shadow_mesh = SubResource("ArrayMesh_3g704")
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_lqnrc"]
|
||||
size = Vector3(18.166, 7.769, 7.175)
|
||||
|
||||
[node name="Container1" type="StaticBody3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.2252, 9.53674e-07, 7.54063)
|
||||
|
||||
[node name="SM_Prop_Container_01" type="MeshInstance3D" parent="."]
|
||||
mesh = SubResource("ArrayMesh_4ux16")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00177002, 3.88474, 0)
|
||||
shape = SubResource("BoxShape3D_lqnrc")
|
1099
godot/WorldObjects/Harbour/crane.tscn
Normal file
1099
godot/WorldObjects/Harbour/crane.tscn
Normal file
File diff suppressed because one or more lines are too long
200
godot/WorldObjects/Harbour/warehouse.tscn
Normal file
200
godot/WorldObjects/Harbour/warehouse.tscn
Normal file
File diff suppressed because one or more lines are too long
72
godot/WorldObjects/exit_door.tscn
Normal file
72
godot/WorldObjects/exit_door.tscn
Normal file
|
@ -0,0 +1,72 @@
|
|||
[gd_scene load_steps=7 format=3 uid="uid://bylfs6dk8s7ea"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://boh0mf73cpyk3" path="res://WorldObjects/wall.tscn" id="1_uyih3"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_4n6h2"]
|
||||
resource_name = "RESET"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Wall2:position")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 69.6674, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_ak006"]
|
||||
resource_name = "open"
|
||||
length = 2.0
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Wall2:position")
|
||||
tracks/0/interp = 2
|
||||
tracks/0/loop_wrap = false
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 69.6674, 0), Vector3(0, -12.7737, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_o7nv8"]
|
||||
_data = {
|
||||
"RESET": SubResource("Animation_4n6h2"),
|
||||
"open": SubResource("Animation_ak006")
|
||||
}
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_oaqug"]
|
||||
size = Vector3(180.842, 95.54, 143.84)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_ve4sa"]
|
||||
size = Vector3(164.406, 151.328, 12.4365)
|
||||
|
||||
[node name="ExitDoor" type="ExitDoor"]
|
||||
transform = Transform3D(0.300345, 0, 0, 0, 0.300345, 0, 0, 0, 0.300345, 0, 0, 0)
|
||||
|
||||
[node name="Wall2" parent="." instance=ExtResource("1_uyih3")]
|
||||
transform = Transform3D(-1.23393, -1.07873e-07, 0, 1.07873e-07, -1.23393, 0, 0, 0, 1.23393, 0, 69.6674, 0)
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_o7nv8")
|
||||
}
|
||||
|
||||
[node name="ExitTrigger" type="ExitTrigger" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 30.6259, -81.7435)
|
||||
collision_layer = 0
|
||||
collision_mask = 4
|
||||
monitorable = false
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="ExitTrigger"]
|
||||
shape = SubResource("BoxShape3D_oaqug")
|
||||
|
||||
[node name="StaticBody3D" type="StaticBody3D" parent="."]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 149.79, -0.855263)
|
||||
shape = SubResource("BoxShape3D_ve4sa")
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://yrr5jjbpt60l"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://73cn4swq2gc7" path="res://game_ui.tscn" id="1_g28e3"]
|
||||
[ext_resource type="PackedScene" uid="uid://73cn4swq2gc7" path="res://Levels/game_ui.tscn" id="1_g28e3"]
|
||||
|
||||
[node name="GameRoot3D" type="GameRoot3D"]
|
||||
first_boot_level = ExtResource("1_g28e3")
|
||||
|
|
102
godot/export_presets.cfg
Normal file
102
godot/export_presets.cfg
Normal file
|
@ -0,0 +1,102 @@
|
|||
[preset.0]
|
||||
|
||||
name="Windows Desktop"
|
||||
platform="Windows Desktop"
|
||||
runnable=true
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="../../../../Downloads/Export/dirt-racer.exe"
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
|
||||
[preset.0.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
debug/export_console_wrapper=0
|
||||
binary_format/embed_pck=true
|
||||
texture_format/bptc=true
|
||||
texture_format/s3tc=true
|
||||
texture_format/etc=false
|
||||
texture_format/etc2=false
|
||||
binary_format/architecture="x86_64"
|
||||
codesign/enable=false
|
||||
codesign/timestamp=true
|
||||
codesign/timestamp_server_url=""
|
||||
codesign/digest_algorithm=1
|
||||
codesign/description=""
|
||||
codesign/custom_options=PackedStringArray()
|
||||
application/modify_resources=true
|
||||
application/icon=""
|
||||
application/console_wrapper_icon=""
|
||||
application/icon_interpolation=4
|
||||
application/file_version=""
|
||||
application/product_version=""
|
||||
application/company_name=""
|
||||
application/product_name=""
|
||||
application/file_description=""
|
||||
application/copyright=""
|
||||
application/trademarks=""
|
||||
application/export_angle=0
|
||||
ssh_remote_deploy/enabled=false
|
||||
ssh_remote_deploy/host="user@host_ip"
|
||||
ssh_remote_deploy/port="22"
|
||||
ssh_remote_deploy/extra_args_ssh=""
|
||||
ssh_remote_deploy/extra_args_scp=""
|
||||
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
|
||||
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
|
||||
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
|
||||
$settings = New-ScheduledTaskSettingsSet
|
||||
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
|
||||
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
|
||||
Start-ScheduledTask -TaskName godot_remote_debug
|
||||
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
|
||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
|
||||
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
|
||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
|
||||
Remove-Item -Recurse -Force '{temp_dir}'"
|
||||
|
||||
[preset.1]
|
||||
|
||||
name="Linux/X11"
|
||||
platform="Linux/X11"
|
||||
runnable=true
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="../../../../Downloads/Export/game.linux.x86_64"
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
|
||||
[preset.1.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
debug/export_console_wrapper=0
|
||||
binary_format/embed_pck=true
|
||||
texture_format/bptc=true
|
||||
texture_format/s3tc=true
|
||||
texture_format/etc=false
|
||||
texture_format/etc2=false
|
||||
binary_format/architecture="x86_64"
|
||||
ssh_remote_deploy/enabled=false
|
||||
ssh_remote_deploy/host="user@host_ip"
|
||||
ssh_remote_deploy/port="22"
|
||||
ssh_remote_deploy/extra_args_ssh=""
|
||||
ssh_remote_deploy/extra_args_scp=""
|
||||
ssh_remote_deploy/run_script="#!/usr/bin/env bash
|
||||
export DISPLAY=:0
|
||||
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
|
||||
\"{temp_dir}/{exe_name}\" {cmd_args}"
|
||||
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
|
||||
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
|
||||
rm -rf \"{temp_dir}\""
|
|
@ -43,6 +43,11 @@ brake={
|
|||
3d_physics/layer_1="Default"
|
||||
3d_physics/layer_2="Entities"
|
||||
3d_physics/layer_3="Player"
|
||||
3d_physics/layer_4="Turrets"
|
||||
|
||||
[navigation]
|
||||
|
||||
3d/default_cell_size=0.5
|
||||
|
||||
[rendering]
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[gd_resource type="RallyRushGameMode" load_steps=3 format=3 uid="uid://r8bx64rqumkl"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dkvgi7x2epurk" path="res://car_player.tscn" id="1_fnunr"]
|
||||
[ext_resource type="PackedScene" uid="uid://dkvgi7x2epurk" path="res://GameObjects/car_player.tscn" id="1_fnunr"]
|
||||
|
||||
[sub_resource type="GameState" id="GameState_bm1yf"]
|
||||
|
||||
|
|
|
@ -1,402 +0,0 @@
|
|||
[gd_scene load_steps=19 format=3 uid="uid://e3dmisrrgqq7"]
|
||||
|
||||
[ext_resource type="RallyRushGameMode" uid="uid://r8bx64rqumkl" path="res://rally_rush_game_mode.tres" id="1_p2wxn"]
|
||||
[ext_resource type="PackedScene" uid="uid://ceolgn0y2m6e4" path="res://key_pickup.tscn" id="3_j5pjd"]
|
||||
[ext_resource type="PackedScene" uid="uid://brpccv2gy7pjs" path="res://turret.tscn" id="4_u6a78"]
|
||||
[ext_resource type="PackedScene" uid="uid://boh0mf73cpyk3" path="res://WorldObjects/wall.tscn" id="5_k107i"]
|
||||
[ext_resource type="PackedScene" uid="uid://dw47vdyt678og" path="res://WorldObjects/City/building_tall.tscn" id="6_vguh7"]
|
||||
[ext_resource type="PackedScene" uid="uid://dro5j4614bj8d" path="res://WorldObjects/City/building_square.tscn" id="7_f7hv0"]
|
||||
[ext_resource type="PackedScene" uid="uid://d2ltua7nsbicf" path="res://WorldObjects/Forest/tree_1.tscn" id="8_afqnf"]
|
||||
[ext_resource type="PackedScene" uid="uid://bcy771u5xp5ks" path="res://WorldObjects/Forest/tree_clump_1.tscn" id="8_ttasg"]
|
||||
|
||||
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_whr25"]
|
||||
rough = true
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_n0p5i"]
|
||||
size = Vector3(429.847, 1, 453.185)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_nkk7c"]
|
||||
albedo_color = Color(0.182897, 0.208885, 0.233497, 1)
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_g4f08"]
|
||||
size = Vector2(500, 492.925)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1kmc5"]
|
||||
albedo_color = Color(0.172977, 0.228055, 0.0684017, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5vcqt"]
|
||||
albedo_color = Color(0.290196, 0.32549, 0.545098, 1)
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_2c53x"]
|
||||
size = Vector2(10000, 10000)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_4n6h2"]
|
||||
resource_name = "RESET"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Wall2:position")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(275.35, 0, -43.6241)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_ak006"]
|
||||
resource_name = "open"
|
||||
length = 2.0
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Wall2:position")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 2),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(275.35, 0, -43.6241), Vector3(275.35, 45.5758, -43.6241)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_o7nv8"]
|
||||
_data = {
|
||||
"RESET": SubResource("Animation_4n6h2"),
|
||||
"open": SubResource("Animation_ak006")
|
||||
}
|
||||
|
||||
[node name="TestMap2" type="Level3D"]
|
||||
game_mode_prototype = ExtResource("1_p2wxn")
|
||||
|
||||
[node name="Track" type="Node" parent="."]
|
||||
|
||||
[node name="StaticBody3D" type="StaticBody3D" parent="Track"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0)
|
||||
physics_material_override = SubResource("PhysicsMaterial_whr25")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Track/StaticBody3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 162.29, 0, 176.592)
|
||||
shape = SubResource("BoxShape3D_n0p5i")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Track/StaticBody3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 197.7, 0.499969, -58.6266)
|
||||
material_override = SubResource("StandardMaterial3D_nkk7c")
|
||||
mesh = SubResource("PlaneMesh_g4f08")
|
||||
skeleton = NodePath("../..")
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="Track/StaticBody3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 197.7, 0.499969, 434.526)
|
||||
material_override = SubResource("StandardMaterial3D_1kmc5")
|
||||
mesh = SubResource("PlaneMesh_g4f08")
|
||||
skeleton = NodePath("../..")
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Track/StaticBody3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -222.115, -23.9654, 162.32)
|
||||
material_override = SubResource("StandardMaterial3D_5vcqt")
|
||||
mesh = SubResource("PlaneMesh_2c53x")
|
||||
skeleton = NodePath("../..")
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="."]
|
||||
transform = Transform3D(-1, 8.41198e-08, -2.38035e-08, 0, 0.27228, 0.962218, 8.74228e-08, 0.962218, -0.27228, -0.0725344, 23.9486, -1.67003)
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.160191, 0.987086, 0, -0.987086, 0.160191, 0, 11.4689, 0)
|
||||
|
||||
[node name="SpawnPoint3D" type="SpawnPoint3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.28211, 0)
|
||||
|
||||
[node name="CanvasLayer" type="GameUI" parent="."]
|
||||
|
||||
[node name="DebugInfo" type="Label" parent="CanvasLayer"]
|
||||
offset_right = 293.0
|
||||
offset_bottom = 276.0
|
||||
|
||||
[node name="KeyPickup" parent="." instance=ExtResource("3_j5pjd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22.9755, -3.8147e-06, 65.2061)
|
||||
|
||||
[node name="KeyPickup2" parent="." instance=ExtResource("3_j5pjd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.28003, 0, 285.053)
|
||||
|
||||
[node name="KeyPickup3" parent="." instance=ExtResource("3_j5pjd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 322.429, 1.52588e-05, -14.5738)
|
||||
|
||||
[node name="Turret" parent="." instance=ExtResource("4_u6a78")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 178.697, 5.47171, 28.3981)
|
||||
|
||||
[node name="Wall" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 203.116, 0, -43.6241)
|
||||
|
||||
[node name="Wall15" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 404.191, 0, -43.6241)
|
||||
|
||||
[node name="Wall3" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 104.287, 0, -43.6241)
|
||||
|
||||
[node name="Wall4" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.89083, 0, -43.6241)
|
||||
|
||||
[node name="Wall5" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -51.2117, -60.1015, 98.4981)
|
||||
|
||||
[node name="Wall18" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -51.2117, -60.1015, 199.498)
|
||||
|
||||
[node name="Wall19" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -51.2117, -60.1015, 302.498)
|
||||
|
||||
[node name="Wall6" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -51.2117, -60.1015, -1.67426)
|
||||
|
||||
[node name="Wall24" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -51.2117, -60.1015, -100.982)
|
||||
|
||||
[node name="Wall7" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -49.7306, -7.62939e-06, 198.499)
|
||||
|
||||
[node name="Wall10" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -49.7306, -7.62939e-06, 298.596)
|
||||
|
||||
[node name="Wall20" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -54.7927, -7.62939e-06, 298.596)
|
||||
|
||||
[node name="Wall21" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -54.7927, -7.62939e-06, 198.499)
|
||||
|
||||
[node name="Wall23" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -47.9966, -7.62939e-06, -94.1335)
|
||||
|
||||
[node name="Wall8" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0.947126, -7.62939e-06, 350.162)
|
||||
|
||||
[node name="Wall9" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 101.947, -7.62939e-06, 350.162)
|
||||
|
||||
[node name="Wall11" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 204.088, -7.62939e-06, 350.863)
|
||||
|
||||
[node name="Wall12" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 304.088, -7.62939e-06, 350.537)
|
||||
|
||||
[node name="Wall22" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 407.427, -7.62939e-06, 350.537)
|
||||
|
||||
[node name="Wall13" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 380.929, -7.62939e-06, 100.621)
|
||||
|
||||
[node name="Wall16" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 380.929, -7.62939e-06, 203.315)
|
||||
|
||||
[node name="Wall17" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 380.929, -7.62939e-06, 304.64)
|
||||
|
||||
[node name="Wall14" parent="." instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 380.929, -7.62939e-06, 0.620964)
|
||||
|
||||
[node name="Building_Tall" parent="." instance=ExtResource("6_vguh7")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 283.525, 3.05176e-05, 17.3603)
|
||||
|
||||
[node name="Building_Tall2" parent="." instance=ExtResource("6_vguh7")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 249.782, 3.05176e-05, 17.3603)
|
||||
|
||||
[node name="Building_Square" parent="." instance=ExtResource("7_f7hv0")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 169.28, 1.09139e-11, 26.6662)
|
||||
|
||||
[node name="Building_Square2" parent="." instance=ExtResource("7_f7hv0")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 265.655, 1.52588e-05, 108.798)
|
||||
|
||||
[node name="Building_Square3" parent="." instance=ExtResource("7_f7hv0")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 173.342, 1.52588e-05, 108.798)
|
||||
|
||||
[node name="tree_1" parent="." instance=ExtResource("8_afqnf")]
|
||||
|
||||
[node name="ExitDoor" type="ExitDoor" parent="."]
|
||||
|
||||
[node name="Wall2" parent="ExitDoor" instance=ExtResource("5_k107i")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 275.35, 0, -43.6241)
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="ExitDoor"]
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_o7nv8")
|
||||
}
|
||||
|
||||
[node name="TreeClump1" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 64.4707, 0, 208.92)
|
||||
|
||||
[node name="TreeClump2" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 112.651, 0, 208.92)
|
||||
|
||||
[node name="TreeClump3" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(0.903851, 0, -0.427847, 0, 1, 0, 0.427847, 0, 0.903851, 160.67, 0, 221.783)
|
||||
|
||||
[node name="TreeClump4" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(0.746034, 0, 0.665908, 0, 1, 0, -0.665908, 0, 0.746034, 199.264, 0, 211.758)
|
||||
|
||||
[node name="TreeClump5" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.710628, 0, -0.703568, 0, 1, 0, 0.703568, 0, -0.710628, 210.358, 0, 235.16)
|
||||
|
||||
[node name="TreeClump6" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.949737, 0, 0.313048, 0, 1, 0, -0.313048, 0, -0.949737, 215.523, 0, 254.392)
|
||||
|
||||
[node name="TreeClump56" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.832564, 0, 0.553929, 0, 1, 0, -0.553929, 0, -0.832564, 237.905, 0, 258.735)
|
||||
|
||||
[node name="TreeClump7" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.997277, 0, -0.0737429, 0, 1, 0, 0.0737429, 0, -0.997277, 279.885, 0, 272.054)
|
||||
|
||||
[node name="TreeClump8" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(0.673928, 0, -0.738797, 0, 1, 0, 0.738797, 0, 0.673928, 319.458, 0, 279.407)
|
||||
|
||||
[node name="TreeClump9" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(0.988668, 0, 0.150122, 0, 1, 0, -0.150122, 0, 0.988668, 281.504, 0, 286.13)
|
||||
|
||||
[node name="TreeClump11" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(0.946261, 0, -0.323405, 0, 1, 0, 0.323405, 0, 0.946261, 241.148, 0, 282.439)
|
||||
|
||||
[node name="TreeClump12" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(0.875262, 0, -0.483649, 0, 1, 0, 0.483649, 0, 0.875262, 199.448, 0, 264.102)
|
||||
|
||||
[node name="TreeClump13" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(0.900205, 0, -0.435467, 0, 1, 0, 0.435467, 0, 0.900205, 159.558, 0, 243.642)
|
||||
|
||||
[node name="TreeClump14" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(0.999995, 0, 0.00312342, 0, 1, 0, -0.00312342, 0, 0.999995, 114.195, 0, 233.042)
|
||||
|
||||
[node name="TreeClump15" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(0.963738, 0, 0.266851, 0, 1, 0, -0.266851, 0, 0.963738, 65.9432, 0, 240.582)
|
||||
|
||||
[node name="TreeClump16" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.0477164, 0, 0.998861, 0, 1, 0, -0.998861, 0, -0.0477164, 14.3677, 0.176632, 214.065)
|
||||
|
||||
[node name="TreeClump17" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.14465, 0, 0.989483, 0, 1, 0, -0.989483, 0, -0.14465, 17.5073, 0, 265.281)
|
||||
|
||||
[node name="TreeClump18" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.14465, 0, 0.989483, 0, 1, 0, -0.989483, 0, -0.14465, 44.6038, 0, 274.313)
|
||||
|
||||
[node name="TreeClump19" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.677351, 0, 0.73566, 0, 1, 0, -0.73566, 0, -0.677351, 36.143, 0, 312.681)
|
||||
|
||||
[node name="TreeClump20" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.993343, 0, 0.115198, 0, 1, 0, -0.115198, 0, -0.993343, 72.7878, 0, 311.346)
|
||||
|
||||
[node name="TreeClump21" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.999999, 0, -0.00136105, 0, 1, 0, 0.00136105, 0, -0.999999, 63.9524, 0, 337.338)
|
||||
|
||||
[node name="TreeClump22" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.999999, 0, -0.00136105, 0, 1, 0, 0.00136105, 0, -0.999999, 114.483, 0, 340.258)
|
||||
|
||||
[node name="TreeClump23" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.999999, 0, -0.00136105, 0, 1, 0, 0.00136105, 0, -0.999999, 164.485, 0, 339.708)
|
||||
|
||||
[node name="TreeClump24" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.999999, 0, -0.00136105, 0, 1, 0, 0.00136105, 0, -0.999999, 215.772, -1.52588e-05, 340.161)
|
||||
|
||||
[node name="TreeClump25" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.999999, 0, -0.00136105, 0, 1, 0, 0.00136105, 0, -0.999999, 265.772, -1.52588e-05, 341.439)
|
||||
|
||||
[node name="TreeClump26" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.999999, 0, -0.00136105, 0, 1, 0, 0.00136105, 0, -0.999999, 319.326, -1.52588e-05, 341.495)
|
||||
|
||||
[node name="TreeClump27" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.989318, 0, -0.145772, 0, 1, 0, 0.145772, 0, -0.989318, 272.856, -1.52588e-05, 311.392)
|
||||
|
||||
[node name="TreeClump28" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.955582, 0, 0.294724, 0, 1, 0, -0.294724, 0, -0.955582, 228.159, -1.52588e-05, 303.891)
|
||||
|
||||
[node name="TreeClump29" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(0.0174346, 0, -0.999848, 0, 1, 0, 0.999848, 0, 0.0174346, 180.474, -0.00174713, 310.019)
|
||||
|
||||
[node name="TreeClump60" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(0.0174346, 0, -0.999848, 0, 1, 0, 0.999848, 0, 0.0174346, 180.108, -0.0387268, 356.465)
|
||||
|
||||
[node name="TreeClump30" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.9907, 0, 0.136062, 0, 1, 0, -0.136062, 0, -0.9907, 120.704, -0.00493622, 317.72)
|
||||
|
||||
[node name="TreeClump58" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(0.988202, 0, -0.153159, 0, 1, 0, 0.153159, 0, 0.988202, 136.064, 0.0132599, 294.864)
|
||||
|
||||
[node name="TreeClump59" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(0.988202, 0, -0.153159, 0, 1, 0, 0.153159, 0, 0.988202, 136.064, 0.00423431, 306.2)
|
||||
|
||||
[node name="TreeClump31" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.943968, 0, 0.330037, 0, 1, 0, -0.330037, 0, -0.943968, 130.61, 0.00730133, 286.561)
|
||||
|
||||
[node name="TreeClump32" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.999989, 0, -0.00472952, 0, 1, 0, 0.00472952, 0, -0.999989, 108.02, 0, 258.198)
|
||||
|
||||
[node name="TreeClump33" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(0.592125, 0, -0.805846, 0, 1, 0, 0.805846, 0, 0.592125, 75.6799, 0.00844574, 269.823)
|
||||
|
||||
[node name="TreeClump34" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.996624, 0, 0.0820958, 0, 1, 0, -0.0820958, 0, -0.996624, 90.9779, 0.0106506, 279.475)
|
||||
|
||||
[node name="TreeClump35" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.917401, 0, 0.397965, 0, 1, 0, -0.397965, 0, -0.917401, 185.761, 2.28882e-05, 287.792)
|
||||
|
||||
[node name="TreeClump57" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.858629, 0, 0.512597, 0, 1, 0, -0.512597, 0, -0.858629, 147.009, 2.28882e-05, 266.746)
|
||||
|
||||
[node name="TreeClump36" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.994956, 0, -0.10031, 0, 1, 0, 0.10031, 0, -0.994956, 259.065, 2.28882e-05, 218.801)
|
||||
|
||||
[node name="TreeClump37" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.998265, 0, -0.0588879, 0, 1, 0, 0.0588879, 0, -0.998265, 302.528, 2.28882e-05, 204.999)
|
||||
|
||||
[node name="TreeClump38" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.99663, 0, -0.0820252, 0, 1, 0, 0.0820252, 0, -0.99663, 258.198, 2.28882e-05, 208.103)
|
||||
|
||||
[node name="TreeClump55" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.245714, 0, -0.969342, 0, 1, 0, 0.969342, 0, -0.245714, 230.137, 2.28882e-05, 232.824)
|
||||
|
||||
[node name="TreeClump39" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.99663, 0, -0.0820252, 0, 1, 0, 0.0820252, 0, -0.99663, 348.441, 2.28882e-05, 202.556)
|
||||
|
||||
[node name="TreeClump40" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.99663, 0, -0.0820252, 0, 1, 0, 0.0820252, 0, -0.99663, 350.834, 2.28882e-05, 211.919)
|
||||
|
||||
[node name="TreeClump48" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.99663, 0, -0.0820252, 0, 1, 0, 0.0820252, 0, -0.99663, 304.9, 2.28882e-05, 214.758)
|
||||
|
||||
[node name="TreeClump49" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.994956, 0, -0.10031, 0, 1, 0, 0.10031, 0, -0.994956, 255.056, 2.28882e-05, 227.988)
|
||||
|
||||
[node name="TreeClump50" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.99663, 0, -0.0820252, 0, 1, 0, 0.0820252, 0, -0.99663, 346.825, 2.28882e-05, 221.106)
|
||||
|
||||
[node name="TreeClump51" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.99663, 0, -0.0820252, 0, 1, 0, 0.0820252, 0, -0.99663, 300.891, 2.28882e-05, 223.945)
|
||||
|
||||
[node name="TreeClump52" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.999946, 0, 0.0104195, 0, 1, 0, -0.0104195, 0, -0.999946, 247.251, 2.28882e-05, 245.272)
|
||||
|
||||
[node name="TreeClump53" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.999586, 0, 0.0287768, 0, 1, 0, -0.0287768, 0, -0.999586, 339.218, 2.28882e-05, 248.588)
|
||||
|
||||
[node name="TreeClump54" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.999586, 0, 0.0287768, 0, 1, 0, -0.0287768, 0, -0.999586, 293.252, 2.28882e-05, 246.327)
|
||||
|
||||
[node name="TreeClump41" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.99983, 0, -0.0184294, 0, 1, 0, 0.0184294, 0, -0.99983, 150.718, 2.28882e-05, 206.918)
|
||||
|
||||
[node name="TreeClump46" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.99983, 0, -0.0184294, 0, 1, 0, 0.0184294, 0, -0.99983, 191.808, 2.28882e-05, 204.079)
|
||||
|
||||
[node name="TreeClump47" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.99983, 0, -0.0184294, 0, 1, 0, 0.0184294, 0, -0.99983, 168.925, 2.28882e-05, 216.272)
|
||||
|
||||
[node name="TreeClump42" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.997851, 0, 0.0655253, 0, 1, 0, -0.0655253, 0, -0.997851, 100.926, 2.28882e-05, 204.707)
|
||||
|
||||
[node name="TreeClump43" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.999555, 0, -0.0298055, 0, 1, 0, 0.0298055, 0, -0.999555, 58.38, 2.28882e-05, 203.719)
|
||||
|
||||
[node name="TreeClump44" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.99663, 0, -0.0820252, 0, 1, 0, 0.0820252, 0, -0.99663, -2.82897, 3.8147e-05, 199.647)
|
||||
|
||||
[node name="TreeClump45" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(-0.99663, 0, -0.0820252, 0, 1, 0, 0.0820252, 0, -0.99663, -47.6028, 3.8147e-05, 199.647)
|
||||
|
||||
[node name="TreeClump10" parent="." instance=ExtResource("8_ttasg")]
|
||||
transform = Transform3D(0.930827, 0, 0.365462, 0, 1, 0, -0.365462, 0, 0.930827, 313.648, 0, 297.946)
|
27
src/beacon_powerup.cpp
Normal file
27
src/beacon_powerup.cpp
Normal file
|
@ -0,0 +1,27 @@
|
|||
#include "beacon_powerup.hpp"
|
||||
#include "godot_cpp/variant/utility_functions.hpp"
|
||||
#include "turret.hpp"
|
||||
#include "utils/godot_macros.h"
|
||||
|
||||
namespace godot {
|
||||
void BeaconPowerup::_bind_methods() {}
|
||||
|
||||
void BeaconPowerup::_enter_tree() { GDGAMEONLY();
|
||||
this->connect("body_entered", callable_mp(this, &BeaconPowerup::body_entered));
|
||||
}
|
||||
|
||||
void BeaconPowerup::_exit_tree() { GDGAMEONLY();
|
||||
for(Turret *turret : this->affected) {
|
||||
turret->set_invert_targets(false);
|
||||
}
|
||||
}
|
||||
|
||||
void BeaconPowerup::body_entered(Node3D *node) {
|
||||
UtilityFunctions::print(this->get_path(), " overlapped ", node->get_path());
|
||||
Turret *turret = Object::cast_to<Turret>(node);
|
||||
if(!turret) return;
|
||||
turret->set_invert_targets(true);
|
||||
this->affected.push_back(turret);
|
||||
UtilityFunctions::print(this->get_path(), " ", node->get_path(), " is a turret");
|
||||
}
|
||||
}
|
22
src/beacon_powerup.hpp
Normal file
22
src/beacon_powerup.hpp
Normal file
|
@ -0,0 +1,22 @@
|
|||
#ifndef BEACON_POWERUP_HPP
|
||||
#define BEACON_POWERUP_HPP
|
||||
|
||||
#include "godot_cpp/templates/vector.hpp"
|
||||
#include "turret.hpp"
|
||||
#include <godot_cpp/classes/area3d.hpp>
|
||||
|
||||
namespace godot {
|
||||
class BeaconPowerup : public Area3D {
|
||||
GDCLASS(BeaconPowerup, Area3D);
|
||||
static void _bind_methods();
|
||||
public:
|
||||
virtual void _enter_tree() override;
|
||||
virtual void _exit_tree() override;
|
||||
void body_entered(Node3D *node);
|
||||
|
||||
private:
|
||||
Vector<Turret*> affected{};
|
||||
};
|
||||
}
|
||||
|
||||
#endif // !BEACON_POWERUP_HPP
|
|
@ -25,8 +25,7 @@ void Beam::_process(double delta_time) { GDGAMEONLY();
|
|||
}
|
||||
|
||||
void Beam::body_entered(Node3D *node) {
|
||||
CarPlayer *player = Object::cast_to<CarPlayer>(node);
|
||||
if(player) player->damage();
|
||||
node->call("damage");
|
||||
}
|
||||
|
||||
void Beam::set_from_to(Vector3 from, Vector3 to) {
|
||||
|
|
|
@ -133,26 +133,6 @@ void CarPhysics::on_body_shape_exited(RID body_rid, Node *body, int body_shape_i
|
|||
this->grounded_objects.erase(body);
|
||||
}
|
||||
|
||||
Vector3 CarPhysics::local_to_world_velocity() const {
|
||||
Basis const basis = this->get_global_basis();
|
||||
Vector3 world_velocity{
|
||||
this->local_velocity.x * basis.get_column(0) +
|
||||
this->local_velocity.y * basis.get_column(1) +
|
||||
this->local_velocity.z * basis.get_column(2)
|
||||
};
|
||||
return world_velocity;
|
||||
}
|
||||
|
||||
Vector3 CarPhysics::world_to_local_velocity() const {
|
||||
Basis const basis = this->get_global_basis();
|
||||
Vector3 const velocity = this->get_linear_velocity();
|
||||
return Vector3{
|
||||
basis.get_column(0).dot(velocity),
|
||||
0.f,
|
||||
basis.get_column(2).dot(velocity)
|
||||
};
|
||||
}
|
||||
|
||||
float CarPhysics::evaluate_oversteer_curve(float speed) const {
|
||||
return this->current_steering != 0.f
|
||||
? this->oversteer_curve->sample(speed / this->oversteer_curve_x_scale)
|
||||
|
@ -185,6 +165,26 @@ float CarPhysics::get_current_acceleration() const {
|
|||
: (this->engine_brake_force * (1.f-Math::abs(this->current_oversteer * this->oversteer_brake_penalty)))));
|
||||
}
|
||||
|
||||
Vector3 CarPhysics::local_to_world_velocity() const {
|
||||
Basis const basis = this->get_global_basis();
|
||||
Vector3 world_velocity{
|
||||
this->local_velocity.x * basis.get_column(0) +
|
||||
this->local_velocity.y * basis.get_column(1) +
|
||||
this->local_velocity.z * basis.get_column(2)
|
||||
};
|
||||
return world_velocity;
|
||||
}
|
||||
|
||||
Vector3 CarPhysics::world_to_local_velocity() const {
|
||||
Basis const basis = this->get_global_basis();
|
||||
Vector3 const velocity = this->get_linear_velocity();
|
||||
return Vector3{
|
||||
basis.get_column(0).dot(velocity),
|
||||
0.f,
|
||||
basis.get_column(2).dot(velocity)
|
||||
};
|
||||
}
|
||||
|
||||
void CarPhysics::set_target_speed(float target) {
|
||||
this->target_speed = target;
|
||||
}
|
||||
|
|
|
@ -27,9 +27,6 @@ protected:
|
|||
void integrate_oversteer(PhysicsDirectBodyState3D *state);
|
||||
void on_body_shape_entered(RID body_rid, Node *node, int body_shape_index, int local_shape_index);
|
||||
void on_body_shape_exited(RID body_rid, Node *node, int body_shape_index, int local_shape_index);
|
||||
// convert the local_velocity to world coordinates
|
||||
Vector3 local_to_world_velocity() const;
|
||||
Vector3 world_to_local_velocity() const;
|
||||
// evaluate the oversteer curve with a speed, taking *_x_scale into account
|
||||
float evaluate_oversteer_curve(float speed) const;
|
||||
// evaluate the understeer curve with a speed, taking *_x_scale into account
|
||||
|
@ -40,6 +37,9 @@ protected:
|
|||
bool is_grounded() const;
|
||||
float get_current_acceleration() const;
|
||||
public:
|
||||
// convert the local_velocity to world coordinates
|
||||
Vector3 local_to_world_velocity() const;
|
||||
Vector3 world_to_local_velocity() const;
|
||||
void set_target_speed(float target);
|
||||
float get_target_speed() const;
|
||||
void set_current_steering(float steering);
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
#include "car_player.hpp"
|
||||
#include "godot_cpp/classes/global_constants.hpp"
|
||||
#include "godot_cpp/classes/time.hpp"
|
||||
#include "rally_rush_game_mode.hpp"
|
||||
#include "utils/game_root.hpp"
|
||||
#include "utils/godot_macros.h"
|
||||
#include "utils/player_input.hpp"
|
||||
#include <godot_cpp/variant/transform3d.hpp>
|
||||
#include <godot_cpp/classes/physics_direct_body_state3d.hpp>
|
||||
|
@ -8,6 +11,20 @@
|
|||
namespace godot {
|
||||
void CarPlayer::_bind_methods() {
|
||||
#define CLASSNAME CarPlayer
|
||||
GDFUNCTION(damage);
|
||||
GDPROPERTY_HINTED(turret_scene, Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "PackedScene");
|
||||
GDPROPERTY_HINTED(beacon_scene, Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "PackedScene");
|
||||
GDPROPERTY_HINTED(shield_scene, Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "PackedScene");
|
||||
}
|
||||
|
||||
void CarPlayer::_ready() { GDGAMEONLY();
|
||||
this->roof_slot = this->get_node<Node3D>("RoofSlot");
|
||||
}
|
||||
|
||||
void CarPlayer::_process(double delta_time) { GDGAMEONLY();
|
||||
if(this->roof_slot->get_child_count() > 0 && Time::get_singleton()->get_ticks_msec() * 0.001 > this->end_of_powerup) {
|
||||
this->destroy_all_powerups();
|
||||
}
|
||||
}
|
||||
|
||||
void CarPlayer::setup_player_input(PlayerInput *input) {
|
||||
|
@ -42,4 +59,46 @@ void CarPlayer::damage() {
|
|||
game_mode->notify_player_death();
|
||||
}
|
||||
}
|
||||
|
||||
void CarPlayer::destroy_all_powerups() {
|
||||
for(int i = 0; i < this->roof_slot->get_child_count(); ++i) {
|
||||
this->roof_slot->get_child(0)->queue_free();
|
||||
}
|
||||
}
|
||||
|
||||
void CarPlayer::activate_powerup(Ref<PackedScene> scene) {
|
||||
this->destroy_all_powerups();
|
||||
Node3D *powerup = Object::cast_to<Node3D>(scene->instantiate());
|
||||
this->roof_slot->add_child(powerup);
|
||||
powerup->set_global_transform(this->roof_slot->get_global_transform());
|
||||
this->end_of_powerup = Time::get_singleton()->get_ticks_msec() * 0.001 + this->powerup_duration;
|
||||
}
|
||||
|
||||
void CarPlayer::activate_turret() { this->activate_powerup(this->turret); }
|
||||
void CarPlayer::activate_beacon() { this->activate_powerup(this->beacon); }
|
||||
void CarPlayer::activate_shield() { this->activate_powerup(this->turret); }
|
||||
|
||||
void CarPlayer::set_turret_scene(Ref<PackedScene> scene) {
|
||||
this->turret = scene;
|
||||
}
|
||||
|
||||
Ref<PackedScene> CarPlayer::get_turret_scene() const {
|
||||
return this->turret;
|
||||
}
|
||||
|
||||
void CarPlayer::set_beacon_scene(Ref<PackedScene> scene) {
|
||||
this->beacon = scene;
|
||||
}
|
||||
|
||||
Ref<PackedScene> CarPlayer::get_beacon_scene() const {
|
||||
return this->beacon;
|
||||
}
|
||||
|
||||
void CarPlayer::set_shield_scene(Ref<PackedScene> scene) {
|
||||
this->shield = scene;
|
||||
}
|
||||
|
||||
Ref<PackedScene> CarPlayer::get_shield_scene() const {
|
||||
return this->shield;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#define CAR_PLAYER_HPP
|
||||
|
||||
#include "car_physics.hpp"
|
||||
#include "godot_cpp/classes/packed_scene.hpp"
|
||||
#include "utils/player.hpp"
|
||||
#include <godot_cpp/classes/input_event.hpp>
|
||||
#include <godot_cpp/classes/rigid_body3d.hpp>
|
||||
|
@ -13,6 +14,8 @@ class CarPlayer : public CarPhysics,
|
|||
GDCLASS(CarPlayer, CarPhysics);
|
||||
static void _bind_methods();
|
||||
public:
|
||||
virtual void _ready() override;
|
||||
virtual void _process(double delta_time) override;
|
||||
virtual void setup_player_input(PlayerInput *input) override;
|
||||
virtual void spawn_at_position(Transform3D const &transform) override;
|
||||
virtual Node *to_node() override;
|
||||
|
@ -22,12 +25,33 @@ public:
|
|||
void on_accelerate(Ref<InputEvent> event, float value);
|
||||
|
||||
void damage();
|
||||
|
||||
void destroy_all_powerups();
|
||||
void activate_powerup(Ref<PackedScene> scene);
|
||||
void activate_turret();
|
||||
void activate_beacon();
|
||||
void activate_shield();
|
||||
|
||||
void set_turret_scene(Ref<PackedScene> scene);
|
||||
Ref<PackedScene> get_turret_scene() const;
|
||||
void set_beacon_scene(Ref<PackedScene> scene);
|
||||
Ref<PackedScene> get_beacon_scene() const;
|
||||
void set_shield_scene(Ref<PackedScene> scene);
|
||||
Ref<PackedScene> get_shield_scene() const;
|
||||
private:
|
||||
int health{5};
|
||||
double end_of_powerup{0.0};
|
||||
|
||||
Node3D *roof_slot{nullptr};
|
||||
|
||||
Ref<PackedScene> turret;
|
||||
Ref<PackedScene> beacon;
|
||||
Ref<PackedScene> shield;
|
||||
|
||||
const float max_speed{40.f};
|
||||
const float max_speed_reverse{10.f};
|
||||
const float steering_factor{0.7f};
|
||||
const float powerup_duration{10.f};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
41
src/damage_area.cpp
Normal file
41
src/damage_area.cpp
Normal file
|
@ -0,0 +1,41 @@
|
|||
#include "damage_area.hpp"
|
||||
#include "godot_cpp/classes/global_constants.hpp"
|
||||
#include "utils/godot_macros.h"
|
||||
|
||||
namespace godot {
|
||||
void DamageArea::_bind_methods() {
|
||||
#define CLASSNAME DamageArea
|
||||
GDPROPERTY_HINTED(target_classes, Variant::ARRAY, PROPERTY_HINT_ARRAY_TYPE, "StringName");
|
||||
}
|
||||
|
||||
void DamageArea::_enter_tree() { GDGAMEONLY();
|
||||
this->connect("body_entered", callable_mp(this, &DamageArea::body_entered));
|
||||
this->anim = this->get_node<AnimationPlayer>("AnimationPlayer");
|
||||
}
|
||||
|
||||
void DamageArea::_process(double delta_time) {
|
||||
if(this->anim && this->anim->get_current_animation_position() >= this->anim->get_current_animation_length())
|
||||
this->queue_free();
|
||||
}
|
||||
|
||||
void DamageArea::body_entered(Node3D *node) {
|
||||
if(this->target_classes.has(node->get_class()))
|
||||
node->call("damage");
|
||||
}
|
||||
|
||||
void DamageArea::set_target_classes(Array array) {
|
||||
this->target_classes.clear();
|
||||
for(int i = 0; i < array.size(); ++i) {
|
||||
if(array[i].get_type() == Variant::STRING_NAME && !this->target_classes.has(array[i]))
|
||||
this->target_classes.push_back(array[i]);
|
||||
else this->target_classes.push_back("");
|
||||
}
|
||||
}
|
||||
|
||||
Array DamageArea::get_target_classes() const {
|
||||
Array a{};
|
||||
for(StringName const &name : this->target_classes)
|
||||
a.push_back(name);
|
||||
return a;
|
||||
}
|
||||
}
|
25
src/damage_area.hpp
Normal file
25
src/damage_area.hpp
Normal file
|
@ -0,0 +1,25 @@
|
|||
#ifndef DAMAGE_AREA_HPP
|
||||
#define DAMAGE_AREA_HPP
|
||||
|
||||
#include "godot_cpp/classes/animation_player.hpp"
|
||||
#include <godot_cpp/classes/area3d.hpp>
|
||||
#include <godot_cpp/templates/vector.hpp>
|
||||
|
||||
namespace godot {
|
||||
class DamageArea : public Area3D {
|
||||
GDCLASS(DamageArea, Area3D);
|
||||
static void _bind_methods();
|
||||
public:
|
||||
virtual void _enter_tree() override;
|
||||
virtual void _process(double delta_time) override;
|
||||
protected:
|
||||
void body_entered(Node3D *node);
|
||||
void set_target_classes(Array array);
|
||||
Array get_target_classes() const;
|
||||
private:
|
||||
Vector<StringName> target_classes{};
|
||||
AnimationPlayer *anim{nullptr};
|
||||
};
|
||||
}
|
||||
|
||||
#endif // !DAMAGE_AREA_HPP
|
82
src/drone.cpp
Normal file
82
src/drone.cpp
Normal file
|
@ -0,0 +1,82 @@
|
|||
#include "drone.hpp"
|
||||
#include "godot_cpp/classes/animation_player.hpp"
|
||||
#include "godot_cpp/classes/global_constants.hpp"
|
||||
#include "utils/game_root.hpp"
|
||||
#include "utils/godot_macros.h"
|
||||
#include <godot_cpp/classes/navigation_agent3d.hpp>
|
||||
|
||||
namespace godot {
|
||||
void Drone::_bind_methods() {
|
||||
#define CLASSNAME Drone
|
||||
GDPROPERTY_HINTED(explosion_scene, Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "PackedScene");
|
||||
}
|
||||
|
||||
void Drone::_ready() { GDGAMEONLY();
|
||||
this->agent = this->get_node<NavigationAgent3D>("NavigationAgent3D");
|
||||
this->anim = this->get_node<AnimationPlayer>("AnimationPlayer");
|
||||
this->player = Object::cast_to<CarPlayer>(GameRoot3D::get_singleton()->get_players()[0]->to_node());
|
||||
this->recalculate_navigation();
|
||||
}
|
||||
|
||||
void Drone::_process(double delta_time) { GDGAMEONLY();
|
||||
switch(this->state) {
|
||||
case DroneState::CHASE:
|
||||
this->process_chase(delta_time);
|
||||
break;
|
||||
case DroneState::FLEE:
|
||||
this->process_flee(delta_time);
|
||||
break;
|
||||
case DroneState::DROP:
|
||||
if(this->anim->get_current_animation_position() >= this->anim->get_current_animation_length())
|
||||
this->spawn_explosion();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Drone::process_chase(double delta_time) {
|
||||
this->process_navigate(delta_time);
|
||||
if(this->get_global_position().distance_to(this->agent->get_target_position()) < 2.f) {
|
||||
this->anim->play("drop");
|
||||
this->state = DroneState::DROP;
|
||||
}
|
||||
}
|
||||
|
||||
void Drone::process_flee(double delta_time) {
|
||||
this->process_navigate(delta_time);
|
||||
}
|
||||
|
||||
void Drone::process_navigate(double delta_time) {
|
||||
this->next_recalc--;
|
||||
if(this->next_recalc == 0) this->recalculate_navigation();
|
||||
Vector3 path_node{this->agent->get_next_path_position()};
|
||||
Vector3 forward = (path_node - this->get_global_position()).normalized();
|
||||
this->set_global_position(this->get_global_position() + forward * float(delta_time) * this->speed);
|
||||
Vector3 left = forward.cross({0.f, 1.f, 0.f});
|
||||
this->set_global_basis({left, left.cross(forward), forward});
|
||||
}
|
||||
|
||||
void Drone::recalculate_navigation() {
|
||||
this->next_recalc = this->recalc_frame_interval;
|
||||
Vector3 player_pos = this->player->get_global_position();
|
||||
Vector3 target = player_pos + (this->player->local_to_world_velocity() * lead_time);
|
||||
if(this->state == DroneState::CHASE)
|
||||
this->agent->set_target_position(target);
|
||||
else if(this->state == DroneState::FLEE)
|
||||
this->agent->set_target_position(target + (this->get_global_position() - target).normalized() * 100.f);
|
||||
}
|
||||
|
||||
void Drone::spawn_explosion() {
|
||||
this->set_process(false);
|
||||
Node3D *node = Object::cast_to<Node3D>(this->explosion_scene->instantiate());
|
||||
this->add_sibling(node);
|
||||
node->set_global_position(this->get_global_position());
|
||||
this->queue_free();
|
||||
}
|
||||
|
||||
void Drone::set_explosion_scene(Ref<PackedScene> scene) {
|
||||
this->explosion_scene = scene;
|
||||
}
|
||||
Ref<PackedScene> Drone::get_explosion_scene() const {
|
||||
return this->explosion_scene;
|
||||
}
|
||||
}
|
42
src/drone.hpp
Normal file
42
src/drone.hpp
Normal file
|
@ -0,0 +1,42 @@
|
|||
#ifndef DRONE_HPP
|
||||
#define DRONE_HPP
|
||||
|
||||
#include "car_player.hpp"
|
||||
#include "godot_cpp/classes/animation_player.hpp"
|
||||
#include "godot_cpp/classes/navigation_agent3d.hpp"
|
||||
#include "godot_cpp/classes/packed_scene.hpp"
|
||||
#include <godot_cpp/classes/node3d.hpp>
|
||||
|
||||
namespace godot {
|
||||
enum class DroneState {
|
||||
CHASE, DROP, FLEE
|
||||
};
|
||||
class Drone : public Node3D {
|
||||
GDCLASS(Drone, Node3D);
|
||||
static void _bind_methods();
|
||||
public:
|
||||
virtual void _ready() override;
|
||||
virtual void _process(double delta_time) override;
|
||||
void process_chase(double delta_time);
|
||||
void process_flee(double delta_time);
|
||||
void process_navigate(double delta_time);
|
||||
void recalculate_navigation();
|
||||
void spawn_explosion();
|
||||
|
||||
void set_explosion_scene(Ref<PackedScene> scene);
|
||||
Ref<PackedScene> get_explosion_scene() const;
|
||||
private:
|
||||
int recalc_frame_interval{10};
|
||||
int next_recalc{10};
|
||||
float speed{30.f};
|
||||
float lead_time{2.f};
|
||||
DroneState state{DroneState::CHASE};
|
||||
CarPlayer *player{nullptr};
|
||||
Ref<PackedScene> explosion_scene{};
|
||||
|
||||
NavigationAgent3D *agent{nullptr};
|
||||
AnimationPlayer *anim{nullptr};
|
||||
};
|
||||
}
|
||||
|
||||
#endif // !DRONE_HPP
|
18
src/drone_target.cpp
Normal file
18
src/drone_target.cpp
Normal file
|
@ -0,0 +1,18 @@
|
|||
#include "drone_target.hpp"
|
||||
#include "utils/godot_macros.h"
|
||||
|
||||
namespace godot {
|
||||
void EnemyTargetBody::_bind_methods() {
|
||||
#define CLASSNAME EnemyTargetBody
|
||||
GDFUNCTION(damage);
|
||||
}
|
||||
|
||||
void EnemyTargetBody::_enter_tree() {
|
||||
this->set_freeze_mode(FreezeMode::FREEZE_MODE_KINEMATIC);
|
||||
this->set_freeze_enabled(true);
|
||||
}
|
||||
|
||||
void EnemyTargetBody::damage() {
|
||||
this->get_owner()->queue_free();
|
||||
}
|
||||
}
|
16
src/drone_target.hpp
Normal file
16
src/drone_target.hpp
Normal file
|
@ -0,0 +1,16 @@
|
|||
#ifndef ENEMY_TARGET_BODY_HPP
|
||||
#define ENEMY_TARGET_BODY_HPP
|
||||
|
||||
#include <godot_cpp/classes/rigid_body3d.hpp>
|
||||
|
||||
namespace godot {
|
||||
class EnemyTargetBody : public RigidBody3D {
|
||||
GDCLASS(EnemyTargetBody, RigidBody3D);
|
||||
static void _bind_methods();
|
||||
public:
|
||||
virtual void _enter_tree() override;
|
||||
void damage();
|
||||
};
|
||||
}
|
||||
|
||||
#endif // !ENEMY_TARGET_BODY_HPP
|
|
@ -17,7 +17,7 @@ public:
|
|||
void set_drones(bool val);
|
||||
bool get_drones() const;
|
||||
private:
|
||||
bool keys{false};
|
||||
bool keys{true};
|
||||
bool cars{true};
|
||||
bool drones{true};
|
||||
};
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
#include "exit_trigger.hpp"
|
||||
#include "rally_rush_game_mode.hpp"
|
||||
#include "utils/game_root.hpp"
|
||||
#include "utils/godot_macros.h"
|
||||
|
||||
namespace godot {
|
||||
void ExitTrigger::_bind_methods() {
|
||||
#define CLASSNAME ExitTrigger
|
||||
}
|
||||
|
||||
void ExitTrigger::_enter_tree() {
|
||||
void ExitTrigger::_enter_tree() { GDGAMEONLY();
|
||||
this->connect("body_entered", callable_mp(this, &ExitTrigger::body_entered));
|
||||
}
|
||||
|
||||
|
|
|
@ -21,11 +21,13 @@ void RallyRushGameMode::notify_key_found() {
|
|||
this->emit_signal("all_keys_found");
|
||||
}
|
||||
|
||||
|
||||
#define GAME_END_SCENE "res://Levels/game_end_screen.tscn"
|
||||
void RallyRushGameMode::notify_player_death() {
|
||||
GameRoot3D::get_singleton()->replace_levels(ResourceLoader::get_singleton()->load("res://game_end_screen.tscn"));
|
||||
GameRoot3D::get_singleton()->replace_levels(ResourceLoader::get_singleton()->load(GAME_END_SCENE));
|
||||
}
|
||||
|
||||
void RallyRushGameMode::notify_player_escaped() {
|
||||
GameRoot3D::get_singleton()->replace_levels(ResourceLoader::get_singleton()->load("res://game_end_screen.tscn"));
|
||||
GameRoot3D::get_singleton()->replace_levels(ResourceLoader::get_singleton()->load(GAME_END_SCENE));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,14 +1,20 @@
|
|||
#include "register_types.h"
|
||||
#include "beacon_powerup.hpp"
|
||||
#include "beam.hpp"
|
||||
#include "car_physics.hpp"
|
||||
#include "car_player.hpp"
|
||||
#include "damage_area.hpp"
|
||||
#include "drone.hpp"
|
||||
#include "drone_target.hpp"
|
||||
#include "end_screen.hpp"
|
||||
#include "enemy_spawnpoint.hpp"
|
||||
#include "exit_door.hpp"
|
||||
#include "exit_trigger.hpp"
|
||||
#include "game_ui.hpp"
|
||||
#include "key_pickup.hpp"
|
||||
#include "menu_ui.hpp"
|
||||
#include "rally_rush_game_mode.hpp"
|
||||
#include "spawner.hpp"
|
||||
#include "turret.hpp"
|
||||
#include "utils/game_mode.hpp"
|
||||
#include "utils/game_root.hpp"
|
||||
|
@ -16,6 +22,7 @@
|
|||
#include "utils/level.hpp"
|
||||
#include "utils/player_input.hpp"
|
||||
#include "utils/spawn_point.hpp"
|
||||
#include "weapon_pickup.hpp"
|
||||
#include <gdextension_interface.h>
|
||||
#include <godot_cpp/core/class_db.hpp>
|
||||
#include <godot_cpp/core/defs.hpp>
|
||||
|
@ -46,6 +53,13 @@ void initialize_gdextension_types(ModuleInitializationLevel p_level)
|
|||
ClassDB::register_class<Beam>();
|
||||
ClassDB::register_class<ExitDoor>();
|
||||
ClassDB::register_class<ExitTrigger>();
|
||||
ClassDB::register_class<Spawner>();
|
||||
ClassDB::register_class<EnemySpawnpoint>();
|
||||
ClassDB::register_class<Drone>();
|
||||
ClassDB::register_class<DamageArea>();
|
||||
ClassDB::register_class<EnemyTargetBody>();
|
||||
ClassDB::register_class<WeaponPickup>();
|
||||
ClassDB::register_class<BeaconPowerup>();
|
||||
}
|
||||
|
||||
extern "C"
|
||||
|
|
|
@ -13,32 +13,35 @@ void Spawner::_bind_methods() {
|
|||
GDPROPERTY_HINTED(key_scene, Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "PackedScene");
|
||||
}
|
||||
|
||||
void Spawner::_ready() {
|
||||
void Spawner::_enter_tree() { GDGAMEONLY();
|
||||
this->game_mode = Object::cast_to<RallyRushGameMode>(GameRoot3D::get_singleton()->get_game_mode().ptr());
|
||||
this->spawn_key();
|
||||
this->spawn_key();
|
||||
this->spawn_key();
|
||||
Callable spawn_key_mp = callable_mp(this, &Spawner::spawn_key);
|
||||
spawn_key_mp.call_deferred();
|
||||
spawn_key_mp.call_deferred();
|
||||
spawn_key_mp.call_deferred();
|
||||
}
|
||||
|
||||
void Spawner::_process(double delta_time) {
|
||||
if(Time::get_singleton()->get_ticks_msec() * 0.001f > next) {
|
||||
void Spawner::_process(double delta_time) { GDGAMEONLY();
|
||||
double time = Time::get_singleton()->get_ticks_msec() * 0.001;
|
||||
if(time > next) {
|
||||
next = time + 5.f / (1 + this->game_mode->get_num_found_keys());
|
||||
if(num_cars < this->max_enemy_cars() && tick % 2 == 0) this->spawn_enemy_car();
|
||||
else if(num_drones < this->max_enemy_drones()) this->spawn_enemy_drone();
|
||||
}
|
||||
}
|
||||
|
||||
int Spawner::max_enemy_cars() {
|
||||
return this->game_mode->get_num_found_keys() * 3;
|
||||
return (this->game_mode->get_num_found_keys() + 1) * 3;
|
||||
}
|
||||
|
||||
int Spawner::max_enemy_drones() {
|
||||
return this->game_mode->get_num_found_keys() * 3;
|
||||
return (this->game_mode->get_num_found_keys() + 1) * 3;
|
||||
}
|
||||
|
||||
void Spawner::spawn_enemy_car() {
|
||||
int const child_count{this->get_child_count()};
|
||||
int iter_count{0};
|
||||
int child_index{int(this->rng.get_state()) % child_count};
|
||||
int child_index{int(this->rng.randi()) % child_count};
|
||||
while(iter_count++ < child_count) {
|
||||
EnemySpawnpoint *spawnpoint = Object::cast_to<EnemySpawnpoint>(this->get_child(child_index));
|
||||
child_index++;
|
||||
|
@ -46,7 +49,7 @@ void Spawner::spawn_enemy_car() {
|
|||
if(!spawnpoint->get_cars()) continue;
|
||||
if(spawnpoint->player_can_see()) continue;
|
||||
Node3D *node = Object::cast_to<Node3D>(this->car_scene->instantiate());
|
||||
this->get_parent()->add_child(node);
|
||||
this->add_sibling(node);
|
||||
node->set_global_transform(spawnpoint->get_global_transform());
|
||||
this->num_cars++;
|
||||
node->connect("tree_exited", callable_mp(this, &Spawner::decrement_cars));
|
||||
|
@ -57,7 +60,7 @@ void Spawner::spawn_enemy_car() {
|
|||
void Spawner::spawn_enemy_drone() {
|
||||
int const child_count{this->get_child_count()};
|
||||
int iter_count{0};
|
||||
int child_index{int(this->rng.get_state()) % child_count};
|
||||
int child_index{int(this->rng.randi()) % child_count};
|
||||
while(iter_count++ < child_count) {
|
||||
EnemySpawnpoint *spawnpoint = Object::cast_to<EnemySpawnpoint>(this->get_child(child_index));
|
||||
child_index++;
|
||||
|
@ -65,7 +68,7 @@ void Spawner::spawn_enemy_drone() {
|
|||
if(!spawnpoint->get_drones()) continue;
|
||||
if(spawnpoint->player_can_see()) continue;
|
||||
Node3D *node = Object::cast_to<Node3D>(this->drone_scene->instantiate());
|
||||
this->get_parent()->add_child(node);
|
||||
this->add_sibling(node);
|
||||
node->set_global_transform(spawnpoint->get_global_transform());
|
||||
this->num_drones++;
|
||||
node->connect("tree_exited", callable_mp(this, &Spawner::decrement_drones));
|
||||
|
@ -76,14 +79,14 @@ void Spawner::spawn_enemy_drone() {
|
|||
void Spawner::spawn_key() {
|
||||
int const child_count{this->get_child_count()};
|
||||
int iter_count{0};
|
||||
int child_index{int(this->rng.get_state()) % child_count};
|
||||
int child_index{int(this->rng.randi()) % child_count};
|
||||
while(iter_count++ < child_count) {
|
||||
EnemySpawnpoint *spawnpoint = Object::cast_to<EnemySpawnpoint>(this->get_child(child_index));
|
||||
child_index++;
|
||||
if(!spawnpoint) continue;
|
||||
if(!spawnpoint->get_keys()) continue;
|
||||
Node3D *node = Object::cast_to<Node3D>(this->key_scene->instantiate());
|
||||
this->get_parent()->add_child(node);
|
||||
this->add_sibling(node);
|
||||
node->set_global_transform(spawnpoint->get_global_transform());
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -14,12 +14,11 @@ class Spawner : public Node {
|
|||
GDCLASS(Spawner, Node);
|
||||
static void _bind_methods();
|
||||
public:
|
||||
virtual void _ready() override;
|
||||
virtual void _enter_tree() override;
|
||||
virtual void _process(double delta_time) override;
|
||||
|
||||
int max_enemy_cars();
|
||||
int max_enemy_drones();
|
||||
|
||||
protected:
|
||||
void spawn_enemy_car();
|
||||
void spawn_enemy_drone();
|
||||
|
|
|
@ -15,7 +15,10 @@ void Turret::_bind_methods() {
|
|||
GDPROPERTY_HINTED(beam_scene, Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "PackedScene");
|
||||
}
|
||||
|
||||
void Turret::_enter_tree() { GDGAMEONLY();
|
||||
void Turret::_enter_tree() {
|
||||
this->set_freeze_mode(FreezeMode::FREEZE_MODE_KINEMATIC);
|
||||
this->set_freeze_enabled(true);
|
||||
GDGAMEONLY();
|
||||
Area3D *awareness_area = this->get_node<Area3D>("AwarenessArea");
|
||||
awareness_area->connect("body_entered", callable_mp(this, &Turret::detect_node));
|
||||
awareness_area->connect("body_exited", callable_mp(this, &Turret::lose_node));
|
||||
|
@ -47,8 +50,12 @@ void Turret::awareness_changed() {
|
|||
|
||||
Node3D *Turret::select_target() {
|
||||
for(Node3D *node : this->awareness)
|
||||
if(this->attack_classes.has(node->get_class()) ^ this->invert_attack_classes)
|
||||
if(!this->invert_attack_classes && this->attack_classes.has(node->get_class()))
|
||||
return node;
|
||||
else if(this->invert_attack_classes && !this->attack_classes.has(node->get_class())) {
|
||||
UtilityFunctions::print("selecting inverted target");
|
||||
return node;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
@ -130,13 +137,22 @@ void Turret::beam_ended() {
|
|||
this->last_state_switch = Time::get_singleton()->get_ticks_msec() * 0.001f;
|
||||
}
|
||||
|
||||
void Turret::set_invert_targets(bool value) {
|
||||
this->invert_attack_classes = value;
|
||||
this->current_target = nullptr;
|
||||
this->awareness_changed();
|
||||
if(this->state != TurretState::FIRING)
|
||||
this->state = TurretState::WAITING;
|
||||
}
|
||||
|
||||
void Turret::set_attack_classes(Array array) {
|
||||
this->attack_classes.clear();
|
||||
for(int i = 0; i < array.size(); ++i)
|
||||
for(int i = 0; i < array.size(); ++i) {
|
||||
if(array[i].get_type() == Variant::STRING_NAME && !this->attack_classes.has(array[i]))
|
||||
this->attack_classes.push_back(array[i]);
|
||||
else
|
||||
this->attack_classes.push_back("");
|
||||
}
|
||||
}
|
||||
|
||||
Array Turret::get_attack_classes() const {
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include <godot_cpp/classes/area3d.hpp>
|
||||
#include <godot_cpp/classes/packed_scene.hpp>
|
||||
#include <godot_cpp/classes/static_body3d.hpp>
|
||||
#include <godot_cpp/classes/rigid_body3d.hpp>
|
||||
#include <godot_cpp/templates/hash_set.hpp>
|
||||
#include <godot_cpp/templates/vector.hpp>
|
||||
|
||||
|
@ -14,8 +14,8 @@ enum class TurretState {
|
|||
CHARGING,
|
||||
FIRING
|
||||
};
|
||||
class Turret : public StaticBody3D {
|
||||
GDCLASS(Turret, StaticBody3D);
|
||||
class Turret : public RigidBody3D {
|
||||
GDCLASS(Turret, RigidBody3D);
|
||||
static void _bind_methods();
|
||||
public:
|
||||
virtual void _enter_tree() override;
|
||||
|
@ -31,8 +31,10 @@ public:
|
|||
void try_next_state();
|
||||
void create_beam();
|
||||
|
||||
|
||||
void beam_ended();
|
||||
|
||||
void set_invert_targets(bool value);
|
||||
void set_attack_classes(Array array);
|
||||
Array get_attack_classes() const;
|
||||
void set_beam_scene(Ref<PackedScene> scene);
|
||||
|
|
29
src/weapon_pickup.cpp
Normal file
29
src/weapon_pickup.cpp
Normal file
|
@ -0,0 +1,29 @@
|
|||
#include "weapon_pickup.hpp"
|
||||
#include "car_player.hpp"
|
||||
#include "godot_cpp/classes/random_number_generator.hpp"
|
||||
|
||||
namespace godot {
|
||||
void WeaponPickup::_bind_methods() {
|
||||
#define CLASSNAME WeaponPickup
|
||||
}
|
||||
|
||||
void WeaponPickup::_enter_tree() {
|
||||
this->connect("body_entered", callable_mp(this, &WeaponPickup::body_entered));
|
||||
}
|
||||
|
||||
void WeaponPickup::body_entered(Node3D *node) {
|
||||
CarPlayer *player = Object::cast_to<CarPlayer>(node);
|
||||
if(!player) return;
|
||||
switch(rng.randi() % 3) {
|
||||
case 0:
|
||||
player->activate_beacon();
|
||||
break;
|
||||
case 1:
|
||||
player->activate_shield();
|
||||
break;
|
||||
case 2:
|
||||
player->activate_turret();
|
||||
}
|
||||
this->queue_free();
|
||||
}
|
||||
}
|
17
src/weapon_pickup.hpp
Normal file
17
src/weapon_pickup.hpp
Normal file
|
@ -0,0 +1,17 @@
|
|||
#ifndef WEAPON_PICKUP_HPP
|
||||
#define WEAPON_PICKUP_HPP
|
||||
|
||||
#include "godot_cpp/classes/area3d.hpp"
|
||||
#include "godot_cpp/classes/random_number_generator.hpp"
|
||||
namespace godot {
|
||||
class WeaponPickup : public Area3D {
|
||||
GDCLASS(WeaponPickup, Area3D);
|
||||
static void _bind_methods();
|
||||
public:
|
||||
RandomNumberGenerator rng;
|
||||
virtual void _enter_tree() override;
|
||||
void body_entered(Node3D *node);
|
||||
};
|
||||
}
|
||||
|
||||
#endif // !WEAPON_PICKUP_HPP
|
Loading…
Reference in a new issue