[gd_scene load_steps=16 format=3 uid="uid://ikeidrgprk8k"] [ext_resource type="PackedScene" uid="uid://wlhsarkeqe8r" path="res://menus/main/panel.tscn" id="1_5vmsf"] [ext_resource type="PackedScene" uid="uid://cnnvwotv33u1b" path="res://elements/player.tscn" id="2_2rexg"] [sub_resource type="GDScript" id="GDScript_bt14i"] script/source = "extends Node3D signal request_play_level func _enter_tree() -> void: $Camera3D/AnimationPlayer.play_backwards(\"camera_pan\") PhysicsServer3D.area_set_param( get_viewport().find_world_3d().space, PhysicsServer3D.AREA_PARAM_GRAVITY_VECTOR, Vector3.DOWN ) # Display on Panel 1 const res_initial_menu = preload(\"res://menus/main/initial_menu.tscn\") func _ready() -> void: $Menus/Panel2.connect(\"request_return\", func(): rotate_cube_to(0)) $Menus/Panel3.connect(\"request_return\", func(): rotate_cube_to(90)) $Menus/Panel4.connect(\"request_return\", func(): rotate_cube_to(180)) var initial_menu := res_initial_menu.instantiate() initial_menu.connect(\"request_start\", start) initial_menu.connect(\"request_settings\", settings) $Menus/Panel1.change_menu(initial_menu, false) # Display on Panel 2 const res_settings_menu = preload(\"res://menus/main/settings_menu.tscn\") func settings() -> void: var settings_menu := res_settings_menu.instantiate() $Menus/Panel2.change_menu(settings_menu) rotate_cube_to(90) const res_save_file_manager = preload(\"res://menus/main/save_file_manager.tscn\") func start() -> void: var save_file_manager := res_save_file_manager.instantiate() save_file_manager.connect(\"request_start\", level_selection) $Menus/Panel2.change_menu(save_file_manager) rotate_cube_to(90) # Display on Panel 3 const res_level_selection_menu = preload(\"res://menus/main/level_selection_menu.tscn\") func level_selection() -> void: var level_selection_menu := res_level_selection_menu.instantiate() level_selection_menu.connect(\"request_play_level\", func(level: Level, scene: PackedScene): $Camera3D/AnimationPlayer.play(\"camera_pan\") await get_tree().create_timer(1.5).timeout request_play_level.emit(level, scene) ) $Menus/Panel3.change_menu(level_selection_menu) rotate_cube_to(180) # cube func rotate_cube_to(degrees: int) -> void: if $Menus/AnimationPlayer.is_playing(): return var cube_animation: Animation = $Menus/AnimationPlayer.get_animation(\"rotate\") cube_animation.track_set_key_value(0, 0, $Menus.rotation_degrees) cube_animation.track_set_key_value(0, 1, Vector3(0, -degrees, 0)) $Menus/AnimationPlayer.play(\"rotate\") if $AnimationPlayer.is_playing(): await get_tree().create_timer($AnimationPlayer.current_animation_length).timeout var sky_animation: Animation = $AnimationPlayer.get_animation(\"sky_brightness\") sky_animation.track_set_key_value(0, 0, $WorldEnvironment.environment.sky.sky_material.energy_multiplier) sky_animation.track_set_key_value(0, 1, max(90, degrees * 2) / 90) $AnimationPlayer.play(\"sky_brightness\") " [sub_resource type="Animation" id="Animation_0jxef"] length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath(".:rotation_degrees") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector3(0, 0, 0)] } [sub_resource type="Animation" id="Animation_bt14i"] resource_name = "rotate" length = 0.3 step = 0.3 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath(".:rotation_degrees") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.3), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector3(0, 0, 0), Vector3(0, 0, 0)] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_3bwb0"] _data = { &"RESET": SubResource("Animation_0jxef"), &"rotate": SubResource("Animation_bt14i") } [sub_resource type="Animation" id="Animation_2rexg"] length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("WorldEnvironment:environment:sky:sky_material:energy_multiplier") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [1.0] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Camera3D:fov") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [40.0] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Camera3D:position") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector3(0, 0, 2.5)] } [sub_resource type="Animation" id="Animation_jinmx"] resource_name = "camera_pan" length = 1.5 step = 0.1 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Camera3D:fov") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 1.5), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [40.0, 75.0] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Camera3D:position") tracks/1/interp = 2 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 1.5), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector3(0, 0, 2.5), Vector3(0, 0, 15)] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_jinmx"] _data = { &"RESET": SubResource("Animation_2rexg"), &"camera_pan": SubResource("Animation_jinmx") } [sub_resource type="PhysicalSkyMaterial" id="PhysicalSkyMaterial_bt14i"] ground_color = Color(1, 0.484315, 0.700558, 1) [sub_resource type="Sky" id="Sky_0jxef"] sky_material = SubResource("PhysicalSkyMaterial_bt14i") [sub_resource type="Environment" id="Environment_qfa5o"] background_mode = 2 background_color = Color(0.804743, 0.804743, 0.804743, 1) sky = SubResource("Sky_0jxef") ambient_light_source = 3 ambient_light_color = Color(0.986752, 0.986752, 0.986752, 1) reflected_light_source = 2 [sub_resource type="Animation" id="Animation_j2kye"] length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("../../WorldEnvironment:environment:sky:sky_material:energy_multiplier") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [1.0] } [sub_resource type="Animation" id="Animation_gma2u"] resource_name = "sky_brightness" length = 0.3 step = 0.1 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("../../WorldEnvironment:environment:sky:sky_material:energy_multiplier") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.3), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [1.0, 1.0] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_wruj6"] _data = { &"RESET": SubResource("Animation_j2kye"), &"sky_brightness": SubResource("Animation_gma2u") } [node name="MainMenu" type="Node3D"] process_mode = 3 script = SubResource("GDScript_bt14i") [node name="Menus" type="CSGBox3D" parent="."] use_collision = true [node name="Panel1" parent="Menus" instance=ExtResource("1_5vmsf")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.501) [node name="Panel2" parent="Menus" instance=ExtResource("1_5vmsf")] transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0.501, 0, 0) [node name="Panel3" parent="Menus" instance=ExtResource("1_5vmsf")] transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, -0.501) [node name="Panel4" parent="Menus" instance=ExtResource("1_5vmsf")] transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -0.501, 0, 0) [node name="AnimationPlayer" type="AnimationPlayer" parent="Menus"] libraries = { &"": SubResource("AnimationLibrary_3bwb0") } [node name="Camera3D" type="Camera3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2.5) current = true fov = 40.0 [node name="AnimationPlayer" type="AnimationPlayer" parent="Camera3D"] root_node = NodePath("../..") libraries = { &"": SubResource("AnimationLibrary_jinmx") } [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_qfa5o") [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] transform = Transform3D(0.819152, -0.412596, 0.39844, 0, 0.694658, 0.71934, -0.573576, -0.589249, 0.569031, 0, 0, 0) [node name="Player" parent="." instance=ExtResource("2_2rexg")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0) [node name="Camera" parent="Player" index="0"] visible = false current = false [node name="GPUParticles3D" parent="Player/Sphere" index="2"] visible = false [node name="AnimationPlayer" type="AnimationPlayer" parent="."] root_node = NodePath("../Camera3D/AnimationPlayer") libraries = { &"": SubResource("AnimationLibrary_wruj6") } [editable path="Player"]