level + enemy spawner refactor
This commit is contained in:
parent
ebdb9c7074
commit
2cc3eaa859
15 changed files with 942 additions and 93 deletions
|
|
@ -16,6 +16,7 @@ func _physics_process(delta: float) -> void:
|
|||
move_and_slide()
|
||||
|
||||
rotation.y = Vector2(velocity.x, -velocity.z).angle()
|
||||
position.y = 0.01
|
||||
|
||||
func hit(_proj: PlayerProjectile, damage: float) -> bool:
|
||||
health -= damage
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
57
levels/enemy_spawner.gd
Normal file
57
levels/enemy_spawner.gd
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
extends Node3D
|
||||
|
||||
var boxes: Array[CSGBox3D]
|
||||
var points: Array[Vector3]
|
||||
|
||||
const MAX_CACHED_POINTS := 100
|
||||
var doomed_point_idx := 0
|
||||
|
||||
func _get_point() -> Vector3:
|
||||
assert(not boxes.is_empty())
|
||||
|
||||
var box: CSGBox3D = boxes.pick_random()
|
||||
var x_stride := box.size.x / 2
|
||||
var y_stride := box.size.y / 2
|
||||
|
||||
var ret := box.global_position
|
||||
ret.x += randf_range(-x_stride, x_stride)
|
||||
ret.y += randf_range(-y_stride, y_stride)
|
||||
|
||||
return ret
|
||||
|
||||
func _ready() -> void:
|
||||
for child in get_children():
|
||||
if child is CSGBox3D:
|
||||
boxes.push_back(child)
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
var v := _get_point()
|
||||
v.y = 50.
|
||||
|
||||
var col_mask := 16 # floor collision layer
|
||||
var params := PhysicsRayQueryParameters3D.create(
|
||||
v, v + Vector3.DOWN * 100., col_mask
|
||||
)
|
||||
var raycast := get_world_3d().direct_space_state.intersect_ray(params)
|
||||
|
||||
if not raycast.is_empty():
|
||||
var hitpos: Vector3 = raycast.position
|
||||
|
||||
if points.size() < MAX_CACHED_POINTS:
|
||||
points.push_back(hitpos)
|
||||
else:
|
||||
points[doomed_point_idx] = hitpos
|
||||
doomed_point_idx += 1
|
||||
doomed_point_idx = doomed_point_idx % MAX_CACHED_POINTS
|
||||
|
||||
func _on_timer_timeout() -> void:
|
||||
if points.is_empty(): return
|
||||
|
||||
var pos: Vector3 = points.pick_random()
|
||||
pos += Vector3.UP * 0.02
|
||||
var scene := preload("res://enemies/police_car/police_car.tscn")
|
||||
var car: Node3D = scene.instantiate()
|
||||
car.global_position = pos
|
||||
get_tree().current_scene.add_child(car)
|
||||
|
||||
|
||||
1
levels/enemy_spawner.gd.uid
Normal file
1
levels/enemy_spawner.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bayj73ugmsbd
|
||||
File diff suppressed because one or more lines are too long
9
levels/trees.gd
Normal file
9
levels/trees.gd
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
@tool
|
||||
extends Node3D
|
||||
|
||||
@export_tool_button("Randomize Tree Rotations")
|
||||
var _rot_button = _randomize_rotations
|
||||
|
||||
func _randomize_rotations() -> void:
|
||||
for child in get_children():
|
||||
child.rotation.y = randf() * TAU
|
||||
1
levels/trees.gd.uid
Normal file
1
levels/trees.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://dwtdtm0engrs1
|
||||
|
|
@ -52,7 +52,7 @@ func exp_lerp(a: Variant, b: Variant, decay: float, dt: float) -> Variant:
|
|||
func _process_movement(delta: float) -> void:
|
||||
var input = Input.get_vector("move_left", "move_right", "move_up", "move_down")
|
||||
input.normalized()
|
||||
var mul := 5. if DebugMenu.high_speed_hack else 1.
|
||||
var mul := 10. if DebugMenu.high_speed_hack else 1.
|
||||
var desired_velocity = Vector3(input.x, 0., input.y) * MOVE_SPEED * mul
|
||||
velocity = exp_lerp(velocity, desired_velocity, 20, delta)
|
||||
move_and_slide()
|
||||
|
|
@ -103,6 +103,10 @@ func _process_shoot(delta: float) -> void:
|
|||
func _process_cam_shake(delta: float) -> void:
|
||||
shake_duration -= delta
|
||||
%Camera3D.transform = camera_transform
|
||||
|
||||
if DebugMenu.zoomed_out:
|
||||
%Camera3D.position += %Camera3D.basis.z * 20.
|
||||
|
||||
if shake_duration <= 0:
|
||||
return
|
||||
|
||||
|
|
@ -142,4 +146,5 @@ func damage(damager: Node3D) -> void:
|
|||
shake_duration = .25
|
||||
|
||||
if health == 0:
|
||||
get_tree().reload_current_scene()
|
||||
pass
|
||||
#get_tree().reload_current_scene()
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ config_version=5
|
|||
[application]
|
||||
|
||||
config/name="Road Rage Tank"
|
||||
run/main_scene="uid://civwljgkv3m53"
|
||||
run/main_scene="uid://6t6382ugkyft"
|
||||
config/features=PackedStringArray("4.6")
|
||||
config/icon="res://icon.svg"
|
||||
|
||||
|
|
@ -27,6 +27,8 @@ enabled=PackedStringArray()
|
|||
[global_group]
|
||||
|
||||
navigation_mesh_source_group=""
|
||||
floor=""
|
||||
grass=""
|
||||
|
||||
[input]
|
||||
|
||||
|
|
@ -77,3 +79,12 @@ debug_menu={
|
|||
3d_physics/layer_2="Player"
|
||||
3d_physics/layer_3="Building"
|
||||
3d_physics/layer_4="Police"
|
||||
3d_physics/layer_5="Floor"
|
||||
|
||||
[physics]
|
||||
|
||||
3d/physics_engine="Jolt Physics"
|
||||
|
||||
[rendering]
|
||||
|
||||
anti_aliasing/quality/screen_space_aa=2
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
extends CanvasLayer
|
||||
|
||||
var high_speed_hack := false
|
||||
var zoomed_out := false
|
||||
|
||||
func _ready() -> void:
|
||||
hide()
|
||||
|
|
@ -13,3 +14,6 @@ func _process(_delta: float) -> void:
|
|||
func _on_high_speed_button_pressed() -> void:
|
||||
high_speed_hack = not high_speed_hack
|
||||
|
||||
func _on_toggle_zoom_button_pressed() -> void:
|
||||
zoomed_out = not zoomed_out
|
||||
|
||||
|
|
|
|||
|
|
@ -45,4 +45,11 @@ size_flags_vertical = 4
|
|||
theme_override_font_sizes/font_size = 30
|
||||
text = "High Speed"
|
||||
|
||||
[node name="ToggleZoomButton" type="Button" parent="PanelContainer/MarginContainer/VBoxContainer" unique_id=1729373000]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
theme_override_font_sizes/font_size = 30
|
||||
text = "Zoom Out Camera"
|
||||
|
||||
[connection signal="pressed" from="PanelContainer/MarginContainer/VBoxContainer/HighSpeedButton" to="." method="_on_high_speed_button_pressed"]
|
||||
[connection signal="pressed" from="PanelContainer/MarginContainer/VBoxContainer/ToggleZoomButton" to="." method="_on_toggle_zoom_button_pressed"]
|
||||
|
|
|
|||
18
world/building/base_building.tscn
Normal file
18
world/building/base_building.tscn
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
[gd_scene format=3 uid="uid://yseykcc08n25"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bnr37lfj76u7n" path="res://world/building/building.gd" id="1_xdgb6"]
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_d2kbb"]
|
||||
|
||||
[node name="BaseBuilding" type="StaticBody3D" unique_id=713127214]
|
||||
collision_layer = 5
|
||||
collision_mask = 0
|
||||
script = ExtResource("1_xdgb6")
|
||||
shake_noise = SubResource("FastNoiseLite_d2kbb")
|
||||
|
||||
[node name="DestroyedMesh" type="Node3D" parent="." unique_id=1889390235]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
|
||||
[node name="Shaker" type="Node3D" parent="." unique_id=2089389922]
|
||||
unique_name_in_owner = true
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
class_name Building
|
||||
extends CollisionObject3D
|
||||
|
||||
var health := 10.
|
||||
@export var health := 10.
|
||||
|
||||
@export var shake_noise: FastNoiseLite
|
||||
var shake_duration := 0.
|
||||
@onready var initial_mesh_pos: Vector3 = %Mesh.position
|
||||
@onready var initial_shaker_pos: Vector3 = %Shaker.position
|
||||
|
||||
func _ready() -> void:
|
||||
scale.y = randf_range(.5, 1.25)
|
||||
|
|
@ -13,11 +13,11 @@ func _ready() -> void:
|
|||
|
||||
func _process(delta: float) -> void:
|
||||
if shake_duration <= 0:
|
||||
%Mesh.position = initial_mesh_pos
|
||||
%Shaker.position = initial_shaker_pos
|
||||
else:
|
||||
var x := shake_noise.get_noise_1d(shake_duration * 10000)
|
||||
var y := shake_noise.get_noise_1d(-shake_duration * 10000)
|
||||
%Mesh.position = initial_mesh_pos + (Vector3(x, 0, y) * 0.75)
|
||||
%Shaker.position = initial_shaker_pos + (Vector3(x, 0, y) * 0.75)
|
||||
|
||||
shake_duration = move_toward(shake_duration, 0., delta)
|
||||
|
||||
|
|
@ -28,7 +28,7 @@ func hit(_proj: PlayerProjectile, damage: float) -> bool:
|
|||
SignalBus.building_destroyed.emit(self)
|
||||
collision_layer = 1 # World collision only
|
||||
|
||||
%Mesh.hide()
|
||||
%Shaker.hide()
|
||||
%DestroyedMesh.show()
|
||||
%GPUParticles3D.preprocess = randf()
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -1,11 +1,6 @@
|
|||
[gd_scene format=3 uid="uid://cm86dxphvhbb"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bnr37lfj76u7n" path="res://world/building/building.gd" id="1_5j34s"]
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_d2kbb"]
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_rqn35"]
|
||||
size = Vector3(3, 5, 3)
|
||||
[ext_resource type="PackedScene" uid="uid://yseykcc08n25" path="res://world/building/base_building.tscn" id="1_d2kbb"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_5j34s"]
|
||||
size = Vector3(3, 5, 3)
|
||||
|
|
@ -46,26 +41,16 @@ material = SubResource("StandardMaterial3D_2vvqs")
|
|||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_5j34s"]
|
||||
|
||||
[node name="Building" type="StaticBody3D" unique_id=713127214]
|
||||
collision_layer = 5
|
||||
collision_mask = 0
|
||||
script = ExtResource("1_5j34s")
|
||||
shake_noise = SubResource("FastNoiseLite_d2kbb")
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_rqn35"]
|
||||
size = Vector3(3, 5, 3)
|
||||
|
||||
[node name="Mesh" type="MeshInstance3D" parent="." unique_id=1919101154]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5, 0)
|
||||
mesh = SubResource("BoxMesh_rqn35")
|
||||
[node name="Building" unique_id=713127214 instance=ExtResource("1_d2kbb")]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1627500046]
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="." index="0" unique_id=661727263]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5, 0)
|
||||
shape = SubResource("BoxShape3D_5j34s")
|
||||
|
||||
[node name="DestroyedMesh" type="Node3D" parent="." unique_id=1889390235]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
|
||||
[node name="GPUParticles3D" type="GPUParticles3D" parent="DestroyedMesh" unique_id=405124106]
|
||||
[node name="GPUParticles3D" type="GPUParticles3D" parent="DestroyedMesh" parent_id_path=PackedInt32Array(1889390235) index="0" unique_id=349729190]
|
||||
unique_name_in_owner = true
|
||||
amount = 1
|
||||
lifetime = 0.5
|
||||
|
|
@ -73,56 +58,61 @@ speed_scale = 0.5
|
|||
process_material = SubResource("ParticleProcessMaterial_ow2p3")
|
||||
draw_pass_1 = SubResource("SphereMesh_8evq1")
|
||||
|
||||
[node name="Cubez" type="Node3D" parent="DestroyedMesh" unique_id=84909385]
|
||||
[node name="Cubez" type="Node3D" parent="DestroyedMesh" parent_id_path=PackedInt32Array(1889390235) index="1" unique_id=289648386]
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="DestroyedMesh/Cubez" unique_id=936603106]
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="0" unique_id=1483935163]
|
||||
transform = Transform3D(-0.020582985, -0.013163342, -0.9997015, 0.53877074, -0.8424524, -2.0764832e-08, -0.84220093, -0.5386099, 0.02443221, 0, 0, 0)
|
||||
mesh = SubResource("BoxMesh_5j34s")
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="DestroyedMesh/Cubez" unique_id=1902773756]
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="1" unique_id=1721508190]
|
||||
transform = Transform3D(0.55269843, 0.35346538, -0.7547096, 0.53877074, -0.8424524, -2.0764832e-08, -0.6358069, -0.40661544, -0.65605897, 0, 0, 0)
|
||||
mesh = SubResource("BoxMesh_5j34s")
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="DestroyedMesh/Cubez" unique_id=693829807]
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="2" unique_id=1453671131]
|
||||
transform = Transform3D(0.55269843, 0.35346538, -0.7547096, 0.53877074, -0.8424524, -2.0764832e-08, -0.6358069, -0.40661544, -0.65605897, -0.5652933, 0, -0.5979067)
|
||||
mesh = SubResource("BoxMesh_5j34s")
|
||||
|
||||
[node name="MeshInstance3D4" type="MeshInstance3D" parent="DestroyedMesh/Cubez" unique_id=1318120052]
|
||||
[node name="MeshInstance3D4" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="3" unique_id=593181716]
|
||||
transform = Transform3D(0.011722982, 0.9259946, -0.37735477, 0.35865596, 0.34837604, 0.86602545, 0.9333962, -0.14549291, -0.32802945, 0.41309977, 0, -0.7827141)
|
||||
mesh = SubResource("BoxMesh_5j34s")
|
||||
|
||||
[node name="MeshInstance3D5" type="MeshInstance3D" parent="DestroyedMesh/Cubez" unique_id=1106985548]
|
||||
[node name="MeshInstance3D5" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="4" unique_id=1719125877]
|
||||
transform = Transform3D(0.011722982, 0.9259946, -0.37735477, 0.35865596, 0.34837604, 0.86602545, 0.9333962, -0.14549291, -0.32802945, 0.91316706, 0, -0.43484128)
|
||||
mesh = SubResource("BoxMesh_5j34s")
|
||||
|
||||
[node name="MeshInstance3D6" type="MeshInstance3D" parent="DestroyedMesh/Cubez" unique_id=1830889998]
|
||||
[node name="MeshInstance3D6" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="5" unique_id=1454957802]
|
||||
transform = Transform3D(0.011722982, 0.9259946, -0.37735477, 0.35865596, 0.34837604, 0.86602545, 0.9333962, -0.14549291, -0.32802945, -0.90229505, 0, 0.19567871)
|
||||
mesh = SubResource("BoxMesh_5j34s")
|
||||
|
||||
[node name="MeshInstance3D7" type="MeshInstance3D" parent="DestroyedMesh/Cubez" unique_id=223786894]
|
||||
[node name="MeshInstance3D7" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="6" unique_id=192394078]
|
||||
transform = Transform3D(-0.4571105, 0.47059897, -0.7547096, 0.717312, 0.69675213, -2.0764832e-08, 0.5258455, -0.5413622, -0.65605897, -1.4241041, 0, -0.9131663)
|
||||
mesh = SubResource("BoxMesh_5j34s")
|
||||
|
||||
[node name="MeshInstance3D8" type="MeshInstance3D" parent="DestroyedMesh/Cubez" unique_id=220079864]
|
||||
[node name="MeshInstance3D8" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="7" unique_id=1974385658]
|
||||
transform = Transform3D(0.55269843, 0.35346538, -0.7547096, 0.53877074, -0.8424524, -2.0764832e-08, -0.6358069, -0.40661544, -0.65605897, 0.5758959, 0, 0.086833715)
|
||||
mesh = SubResource("BoxMesh_5j34s")
|
||||
|
||||
[node name="MeshInstance3D9" type="MeshInstance3D" parent="DestroyedMesh/Cubez" unique_id=235651157]
|
||||
[node name="MeshInstance3D9" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="8" unique_id=652075050]
|
||||
transform = Transform3D(0.55269843, 0.35346538, -0.7547096, 0.53877074, -0.8424524, -2.0764832e-08, -0.6358069, -0.40661544, -0.65605897, 0.94551057, 0, 0.86954826)
|
||||
mesh = SubResource("BoxMesh_5j34s")
|
||||
|
||||
[node name="MeshInstance3D10" type="MeshInstance3D" parent="DestroyedMesh/Cubez" unique_id=1163044184]
|
||||
[node name="MeshInstance3D10" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="9" unique_id=1495304389]
|
||||
transform = Transform3D(-0.4571105, 0.47059897, -0.7547096, 0.717312, 0.69675213, -2.0764832e-08, 0.5258455, -0.5413622, -0.65605897, -0.26117355, 0, 0.8586771)
|
||||
mesh = SubResource("BoxMesh_5j34s")
|
||||
|
||||
[node name="MeshInstance3D11" type="MeshInstance3D" parent="DestroyedMesh/Cubez" unique_id=804770500]
|
||||
[node name="MeshInstance3D11" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="10" unique_id=1593134047]
|
||||
transform = Transform3D(0.55074334, -0.56699485, -0.61253464, 0.71731204, 0.6967521, 0, 0.42678478, -0.43937847, 0.7904438, -1.022146, 0, 1.0760975)
|
||||
mesh = SubResource("BoxMesh_5j34s")
|
||||
|
||||
[node name="MeshInstance3D12" type="MeshInstance3D" parent="DestroyedMesh/Cubez" unique_id=1102483093]
|
||||
[node name="MeshInstance3D12" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="11" unique_id=1005652425]
|
||||
transform = Transform3D(0.55074334, -0.56699485, -0.61253464, 0.71731204, 0.6967521, 0, 0.42678478, -0.43937847, 0.7904438, 0.977854, 0, -0.9239025)
|
||||
mesh = SubResource("BoxMesh_5j34s")
|
||||
|
||||
[node name="MeshInstance3D13" type="MeshInstance3D" parent="DestroyedMesh/Cubez" unique_id=1341429344]
|
||||
[node name="MeshInstance3D13" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="12" unique_id=1957113469]
|
||||
transform = Transform3D(-0.020582985, -0.013163342, -0.9997015, 0.53877074, -0.8424524, -2.0764832e-08, -0.84220093, -0.5386099, 0.02443221, -0.4571221, 0, -1.3370018)
|
||||
mesh = SubResource("BoxMesh_5j34s")
|
||||
|
||||
[node name="Mesh" type="MeshInstance3D" parent="Shaker" parent_id_path=PackedInt32Array(2089389922) index="0" unique_id=26690267]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5, 0)
|
||||
mesh = SubResource("BoxMesh_rqn35")
|
||||
|
|
|
|||
141
world/building/tree.tscn
Normal file
141
world/building/tree.tscn
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
[gd_scene format=3 uid="uid://dnl2jhf7rj33h"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://yseykcc08n25" path="res://world/building/base_building.tscn" id="1_hn3k1"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_hn3k1"]
|
||||
offsets = PackedFloat32Array(0.06315789, 0.6421053, 1)
|
||||
colors = PackedColorArray(0, 0, 0, 1, 0.1, 0.1, 0.1, 1, 0.58, 0.58, 0.58, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_f1gjg"]
|
||||
gradient = SubResource("Gradient_hn3k1")
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_11lcc"]
|
||||
offsets = PackedFloat32Array(0.69473684, 1)
|
||||
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_0rysw"]
|
||||
gradient = SubResource("Gradient_11lcc")
|
||||
|
||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_iwclo"]
|
||||
emission_shape = 3
|
||||
emission_box_extents = Vector3(1.575, 0.185, 1.465)
|
||||
direction = Vector3(0, 1, 0)
|
||||
spread = 0.0
|
||||
initial_velocity_min = 3.0
|
||||
initial_velocity_max = 5.0
|
||||
gravity = Vector3(0, 0, 0)
|
||||
scale_min = 0.19999999
|
||||
scale_max = 0.75
|
||||
color_ramp = SubResource("GradientTexture1D_0rysw")
|
||||
color_initial_ramp = SubResource("GradientTexture1D_f1gjg")
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2vvqs"]
|
||||
transparency = 1
|
||||
vertex_color_use_as_albedo = true
|
||||
|
||||
[sub_resource type="SphereMesh" id="SphereMesh_wueys"]
|
||||
material = SubResource("StandardMaterial3D_2vvqs")
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_hfj6b"]
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_hn3k1"]
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_11lcc"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_hn3k1"]
|
||||
size = Vector3(4.137268, 6.5753174, 4.334961)
|
||||
|
||||
[node name="Tree" unique_id=713127214 instance=ExtResource("1_hn3k1")]
|
||||
|
||||
[node name="GPUParticles3D" type="GPUParticles3D" parent="DestroyedMesh" parent_id_path=PackedInt32Array(1889390235) index="0" unique_id=1508601722]
|
||||
unique_name_in_owner = true
|
||||
amount = 1
|
||||
lifetime = 0.5
|
||||
speed_scale = 0.5
|
||||
process_material = SubResource("ParticleProcessMaterial_iwclo")
|
||||
draw_pass_1 = SubResource("SphereMesh_wueys")
|
||||
|
||||
[node name="Cubez" type="Node3D" parent="DestroyedMesh" parent_id_path=PackedInt32Array(1889390235) index="1" unique_id=95076974]
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="0" unique_id=360006017]
|
||||
transform = Transform3D(-0.020582985, -0.013163342, -0.9997015, 0.53877074, -0.8424524, -2.0764832e-08, -0.84220093, -0.5386099, 0.02443221, 0, 0, 0)
|
||||
mesh = SubResource("BoxMesh_hfj6b")
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="1" unique_id=1427047813]
|
||||
transform = Transform3D(0.55269843, 0.35346538, -0.7547096, 0.53877074, -0.8424524, -2.0764832e-08, -0.6358069, -0.40661544, -0.65605897, 0, 0, 0)
|
||||
mesh = SubResource("BoxMesh_hfj6b")
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="2" unique_id=1659669617]
|
||||
transform = Transform3D(0.55269843, 0.35346538, -0.7547096, 0.53877074, -0.8424524, -2.0764832e-08, -0.6358069, -0.40661544, -0.65605897, -0.5652933, 0, -0.5979067)
|
||||
mesh = SubResource("BoxMesh_hfj6b")
|
||||
|
||||
[node name="MeshInstance3D4" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="3" unique_id=1339180229]
|
||||
transform = Transform3D(0.011722982, 0.9259946, -0.37735477, 0.35865596, 0.34837604, 0.86602545, 0.9333962, -0.14549291, -0.32802945, 0.41309977, 0, -0.7827141)
|
||||
mesh = SubResource("BoxMesh_hfj6b")
|
||||
|
||||
[node name="MeshInstance3D5" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="4" unique_id=233543180]
|
||||
transform = Transform3D(0.011722982, 0.9259946, -0.37735477, 0.35865596, 0.34837604, 0.86602545, 0.9333962, -0.14549291, -0.32802945, 0.91316706, 0, -0.43484128)
|
||||
mesh = SubResource("BoxMesh_hfj6b")
|
||||
|
||||
[node name="MeshInstance3D6" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="5" unique_id=577523110]
|
||||
transform = Transform3D(0.011722982, 0.9259946, -0.37735477, 0.35865596, 0.34837604, 0.86602545, 0.9333962, -0.14549291, -0.32802945, -0.90229505, 0, 0.19567871)
|
||||
mesh = SubResource("BoxMesh_hfj6b")
|
||||
|
||||
[node name="MeshInstance3D7" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="6" unique_id=827181079]
|
||||
transform = Transform3D(-0.4571105, 0.47059897, -0.7547096, 0.717312, 0.69675213, -2.0764832e-08, 0.5258455, -0.5413622, -0.65605897, -1.4241041, 0, -0.9131663)
|
||||
mesh = SubResource("BoxMesh_hfj6b")
|
||||
|
||||
[node name="MeshInstance3D8" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="7" unique_id=466240924]
|
||||
transform = Transform3D(0.55269843, 0.35346538, -0.7547096, 0.53877074, -0.8424524, -2.0764832e-08, -0.6358069, -0.40661544, -0.65605897, 0.5758959, 0, 0.086833715)
|
||||
mesh = SubResource("BoxMesh_hfj6b")
|
||||
|
||||
[node name="MeshInstance3D9" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="8" unique_id=407993931]
|
||||
transform = Transform3D(0.55269843, 0.35346538, -0.7547096, 0.53877074, -0.8424524, -2.0764832e-08, -0.6358069, -0.40661544, -0.65605897, 0.94551057, 0, 0.86954826)
|
||||
mesh = SubResource("BoxMesh_hfj6b")
|
||||
|
||||
[node name="MeshInstance3D10" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="9" unique_id=1070885811]
|
||||
transform = Transform3D(-0.4571105, 0.47059897, -0.7547096, 0.717312, 0.69675213, -2.0764832e-08, 0.5258455, -0.5413622, -0.65605897, -0.26117355, 0, 0.8586771)
|
||||
mesh = SubResource("BoxMesh_hfj6b")
|
||||
|
||||
[node name="MeshInstance3D11" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="10" unique_id=479502476]
|
||||
transform = Transform3D(0.55074334, -0.56699485, -0.61253464, 0.71731204, 0.6967521, 0, 0.42678478, -0.43937847, 0.7904438, -1.022146, 0, 1.0760975)
|
||||
mesh = SubResource("BoxMesh_hfj6b")
|
||||
|
||||
[node name="MeshInstance3D12" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="11" unique_id=7305593]
|
||||
transform = Transform3D(0.55074334, -0.56699485, -0.61253464, 0.71731204, 0.6967521, 0, 0.42678478, -0.43937847, 0.7904438, 0.977854, 0, -0.9239025)
|
||||
mesh = SubResource("BoxMesh_hfj6b")
|
||||
|
||||
[node name="MeshInstance3D13" type="MeshInstance3D" parent="DestroyedMesh/Cubez" index="12" unique_id=70448867]
|
||||
transform = Transform3D(-0.020582985, -0.013163342, -0.9997015, 0.53877074, -0.8424524, -2.0764832e-08, -0.84220093, -0.5386099, 0.02443221, -0.4571221, 0, -1.3370018)
|
||||
mesh = SubResource("BoxMesh_hfj6b")
|
||||
|
||||
[node name="Shaker" parent="." index="1" unique_id=2089389922]
|
||||
transform = Transform3D(0.70885205, 0, 0, 0, 0.70885205, 0, 0, 0, 0.70885205, 0, 0, 0)
|
||||
|
||||
[node name="Stem" type="MeshInstance3D" parent="Shaker" index="0" unique_id=156669749]
|
||||
transform = Transform3D(0.70718205, -0.9436787, 0.92297167, 0.46422693, 3.5198092, -4.3827896e-08, -0.8511094, 1.1357385, 0.7668921, 0, 1.3363686, 0)
|
||||
mesh = SubResource("BoxMesh_hn3k1")
|
||||
|
||||
[node name="Stem2" type="MeshInstance3D" parent="Shaker" index="1" unique_id=229856999]
|
||||
transform = Transform3D(0.43096656, -1.1965598, 0.6871064, -0.07412759, 3.6609116, 0.33437824, -0.72888476, -1.0798028, 0.37225807, -0.637649, 3.8433223, -0.3629342)
|
||||
mesh = SubResource("BoxMesh_hn3k1")
|
||||
|
||||
[node name="Leaves" type="MeshInstance3D" parent="Shaker" index="2" unique_id=1530775788]
|
||||
transform = Transform3D(2.148287, 0.21797568, -1.0967563, 0.7066671, 1.5762988, 1.6974771, 0.86660796, -1.8257309, 1.3346244, -2.450163, 5.5032597, -1.1231996)
|
||||
mesh = SubResource("BoxMesh_11lcc")
|
||||
|
||||
[node name="Leaves2" type="MeshInstance3D" parent="Shaker" index="3" unique_id=1147999215]
|
||||
transform = Transform3D(-1.8328239, -1.5762837, 0.1470051, -0.5105396, 0.8013866, 2.2277014, -1.4985428, 1.6548818, -0.93875486, -1.4362912, 5.5032597, 0.44623435)
|
||||
mesh = SubResource("BoxMesh_11lcc")
|
||||
|
||||
[node name="Leaves3" type="MeshInstance3D" parent="Shaker" index="4" unique_id=1274378627]
|
||||
transform = Transform3D(1.0111561, -0.38601488, -2.1665826, -0.9885437, -2.209917, -0.06762316, -1.9661813, 0.91256994, -1.0802182, -0.24229479, 6.480358, -1.5169011)
|
||||
mesh = SubResource("BoxMesh_11lcc")
|
||||
|
||||
[node name="Leaves4" type="MeshInstance3D" parent="Shaker" index="5" unique_id=1988467257]
|
||||
transform = Transform3D(1.8163599, 1.086452, -1.1772779, 1.159343, 0.3368203, 2.099524, 1.1055702, -2.138153, -0.26747093, -0.8257134, 6.480358, 0.4875511)
|
||||
mesh = SubResource("BoxMesh_11lcc")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="." index="2" unique_id=370360243]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.94939756, 3.2876587, -0.28125)
|
||||
shape = SubResource("BoxShape3D_hn3k1")
|
||||
Loading…
Add table
Add a link
Reference in a new issue