diff --git a/addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.gd b/addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.gd index 92c47f24..9606d432 100644 --- a/addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.gd +++ b/addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.gd @@ -11,6 +11,8 @@ extends Control process_mode = PROCESS_MODE_INHERIT @export var makes_mouse_visible : bool = true +signal menu_closing + var _initial_pause_state : bool = false var _initial_focus_mode : FocusMode = FOCUS_ALL var _initial_mouse_mode : Input.MouseMode @@ -18,6 +20,7 @@ var _initial_focus_control var _scene_tree : SceneTree func close() -> void: + menu_closing.emit() _scene_tree.paused = _initial_pause_state Input.set_mouse_mode(_initial_mouse_mode) if is_instance_valid(_initial_focus_control) and _initial_focus_control.is_inside_tree(): diff --git a/addons/maaacks_game_template/base/scripts/pause_menu_controller.gd b/addons/maaacks_game_template/base/scripts/pause_menu_controller.gd index 7c16acd3..e8df9311 100644 --- a/addons/maaacks_game_template/base/scripts/pause_menu_controller.gd +++ b/addons/maaacks_game_template/base/scripts/pause_menu_controller.gd @@ -4,6 +4,7 @@ extends Node ## Node for opening a pause menu when detecting a 'ui_cancel' event. @export var pause_menu_packed : PackedScene @export var focused_viewport : Viewport +@export var player : CharacterBody3D @export_group("Inputs") @export var base_mode:GUIDEMappingContext @@ -19,6 +20,9 @@ func on_input_pause(): focused_viewport = get_viewport() var _initial_focus_control = focused_viewport.gui_get_focus_owner() var current_menu = pause_menu_packed.instantiate() + + current_menu.menu_closing.connect(player.LoadSettings) + get_tree().current_scene.call_deferred("add_child", current_menu) await current_menu.tree_exited if is_inside_tree() and _initial_focus_control: diff --git a/assets/greyboxing/Guard tower.glb b/assets/greyboxing/Guard tower.glb index f0ff3df6..d6edba6b 100644 Binary files a/assets/greyboxing/Guard tower.glb and b/assets/greyboxing/Guard tower.glb differ diff --git a/assets/greyboxing/guard_tower.tscn b/assets/greyboxing/guard_tower.tscn index 9c18d9b5..4dc68b7e 100644 --- a/assets/greyboxing/guard_tower.tscn +++ b/assets/greyboxing/guard_tower.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=286 format=3 uid="uid://dip6cce5gtwi8"] +[gd_scene load_steps=292 format=3 uid="uid://dip6cce5gtwi8"] [ext_resource type="PackedScene" uid="uid://2huty67y1g5w" path="res://assets/greyboxing/Guard tower.glb" id="1_42k4c"] [ext_resource type="Script" uid="uid://do8vihuwc4iib" path="res://tools/generate_collisions.gd" id="2_v6lxe"] @@ -846,6 +846,24 @@ data = PackedVector3Array(0, -1, -1, 0.1951, 1, -0.9808, 0.1951, -1, -0.9808, 0, [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_71ic5"] data = PackedVector3Array(-1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, 1) +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_km2kb"] +data = PackedVector3Array(-1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, 1) + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_3pham"] +data = PackedVector3Array(-1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, 1) + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_qj6cm"] +data = PackedVector3Array(-1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, 1) + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_ojacj"] +data = PackedVector3Array(-1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, 1) + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_407rx"] +data = PackedVector3Array(-1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, 1) + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_feh6m"] +data = PackedVector3Array(-1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, 1) + [node name="Guard tower" instance=ExtResource("1_42k4c")] script = ExtResource("2_v6lxe") collision_layer = 3 @@ -2825,6 +2843,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_198/Cube_198_col2" index="0"] shape = SubResource("ConcavePolygonShape3D_j6rdm") +[node name="Cube_199" parent="." index="200"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_199_col" type="StaticBody3D" parent="Cube_199" index="0"] collision_layer = 3 collision_mask = 5 @@ -2832,6 +2853,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_199/Cube_199_col" index="0"] shape = SubResource("ConcavePolygonShape3D_tisje") +[node name="Cube_200" parent="." index="201"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_200_col" type="StaticBody3D" parent="Cube_200" index="0"] collision_layer = 3 collision_mask = 5 @@ -2839,6 +2863,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_200/Cube_200_col" index="0"] shape = SubResource("ConcavePolygonShape3D_jbf0o") +[node name="Cube_201" parent="." index="202"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_201_col" type="StaticBody3D" parent="Cube_201" index="0"] collision_layer = 3 collision_mask = 5 @@ -2846,6 +2873,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_201/Cube_201_col" index="0"] shape = SubResource("ConcavePolygonShape3D_ja2b6") +[node name="Cube_202" parent="." index="203"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_202_col" type="StaticBody3D" parent="Cube_202" index="0"] collision_layer = 3 collision_mask = 5 @@ -2853,6 +2883,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_202/Cube_202_col" index="0"] shape = SubResource("ConcavePolygonShape3D_uvn8w") +[node name="Cube_203" parent="." index="204"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_203_col" type="StaticBody3D" parent="Cube_203" index="0"] collision_layer = 3 collision_mask = 5 @@ -2860,6 +2893,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_203/Cube_203_col" index="0"] shape = SubResource("ConcavePolygonShape3D_o174y") +[node name="Cube_204" parent="." index="205"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_204_col" type="StaticBody3D" parent="Cube_204" index="0"] collision_layer = 3 collision_mask = 5 @@ -2867,6 +2903,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_204/Cube_204_col" index="0"] shape = SubResource("ConcavePolygonShape3D_2xrvc") +[node name="Cube_205" parent="." index="206"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_205_col" type="StaticBody3D" parent="Cube_205" index="0"] collision_layer = 3 collision_mask = 5 @@ -2874,6 +2913,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_205/Cube_205_col" index="0"] shape = SubResource("ConcavePolygonShape3D_3q82a") +[node name="Cube_206" parent="." index="207"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_206_col" type="StaticBody3D" parent="Cube_206" index="0"] collision_layer = 3 collision_mask = 5 @@ -2881,6 +2923,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_206/Cube_206_col" index="0"] shape = SubResource("ConcavePolygonShape3D_jjfjy") +[node name="Cube_207" parent="." index="208"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_207_col" type="StaticBody3D" parent="Cube_207" index="0"] collision_layer = 3 collision_mask = 5 @@ -2888,6 +2933,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_207/Cube_207_col" index="0"] shape = SubResource("ConcavePolygonShape3D_na4d7") +[node name="Cube_208" parent="." index="209"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_208_col" type="StaticBody3D" parent="Cube_208" index="0"] collision_layer = 3 collision_mask = 5 @@ -2895,6 +2943,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_208/Cube_208_col" index="0"] shape = SubResource("ConcavePolygonShape3D_o4hf7") +[node name="Cube_209" parent="." index="210"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_209_col" type="StaticBody3D" parent="Cube_209" index="0"] collision_layer = 3 collision_mask = 5 @@ -2902,6 +2953,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_209/Cube_209_col" index="0"] shape = SubResource("ConcavePolygonShape3D_vm6m2") +[node name="Cube_210" parent="." index="211"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_210_col" type="StaticBody3D" parent="Cube_210" index="0"] collision_layer = 3 collision_mask = 5 @@ -2909,6 +2963,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_210/Cube_210_col" index="0"] shape = SubResource("ConcavePolygonShape3D_wit6h") +[node name="Cube_211" parent="." index="212"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_211_col" type="StaticBody3D" parent="Cube_211" index="0"] collision_layer = 3 collision_mask = 5 @@ -2916,6 +2973,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_211/Cube_211_col" index="0"] shape = SubResource("ConcavePolygonShape3D_hoel6") +[node name="Cube_212" parent="." index="213"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_212_col" type="StaticBody3D" parent="Cube_212" index="0"] collision_layer = 3 collision_mask = 5 @@ -2923,6 +2983,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_212/Cube_212_col" index="0"] shape = SubResource("ConcavePolygonShape3D_ntaer") +[node name="Cube_213" parent="." index="214"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_213_col" type="StaticBody3D" parent="Cube_213" index="0"] collision_layer = 3 collision_mask = 5 @@ -2930,6 +2993,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_213/Cube_213_col" index="0"] shape = SubResource("ConcavePolygonShape3D_rnrvv") +[node name="Cube_214" parent="." index="215"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_214_col" type="StaticBody3D" parent="Cube_214" index="0"] collision_layer = 3 collision_mask = 5 @@ -2937,6 +3003,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_214/Cube_214_col" index="0"] shape = SubResource("ConcavePolygonShape3D_mcjed") +[node name="Cube_215" parent="." index="216"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_215_col" type="StaticBody3D" parent="Cube_215" index="0"] collision_layer = 3 collision_mask = 5 @@ -2944,6 +3013,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_215/Cube_215_col" index="0"] shape = SubResource("ConcavePolygonShape3D_a4brb") +[node name="Cube_216" parent="." index="217"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_216_col" type="StaticBody3D" parent="Cube_216" index="0"] collision_layer = 3 collision_mask = 5 @@ -2951,6 +3023,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_216/Cube_216_col" index="0"] shape = SubResource("ConcavePolygonShape3D_ihu35") +[node name="Cube_218" parent="." index="218"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_218_col" type="StaticBody3D" parent="Cube_218" index="0"] collision_layer = 3 collision_mask = 5 @@ -2958,6 +3033,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_218/Cube_218_col" index="0"] shape = SubResource("ConcavePolygonShape3D_3fs2m") +[node name="Cube_219" parent="." index="219"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_219_col" type="StaticBody3D" parent="Cube_219" index="0"] collision_layer = 3 collision_mask = 5 @@ -2965,6 +3043,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_219/Cube_219_col" index="0"] shape = SubResource("ConcavePolygonShape3D_ca8jc") +[node name="Cube_220" parent="." index="220"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_220_col" type="StaticBody3D" parent="Cube_220" index="0"] collision_layer = 3 collision_mask = 5 @@ -2972,6 +3053,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_220/Cube_220_col" index="0"] shape = SubResource("ConcavePolygonShape3D_jcjs1") +[node name="Cube_221" parent="." index="221"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_221_col" type="StaticBody3D" parent="Cube_221" index="0"] collision_layer = 3 collision_mask = 5 @@ -2979,6 +3063,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_221/Cube_221_col" index="0"] shape = SubResource("ConcavePolygonShape3D_dyajt") +[node name="Cube_217" parent="." index="222"] +material_override = ExtResource("4_7r3kr") + [node name="Cube_217_col" type="StaticBody3D" parent="Cube_217" index="0"] collision_layer = 3 collision_mask = 5 @@ -2986,6 +3073,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_217/Cube_217_col" index="0"] shape = SubResource("ConcavePolygonShape3D_4lqvp") +[node name="Cube_222" parent="." index="223"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_222_col" type="StaticBody3D" parent="Cube_222" index="0"] collision_layer = 3 collision_mask = 5 @@ -2993,6 +3083,10 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_222/Cube_222_col" index="0"] shape = SubResource("ConcavePolygonShape3D_bmhlm") +[node name="Cube_223" parent="." index="224"] +material_override = ExtResource("3_xjmq6") +cast_shadow = 2 + [node name="Cube_223_col" type="StaticBody3D" parent="Cube_223" index="0"] collision_layer = 3 collision_mask = 5 @@ -3000,6 +3094,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_223/Cube_223_col" index="0"] shape = SubResource("ConcavePolygonShape3D_ql3pa") +[node name="Cube_224" parent="." index="225"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_224_col" type="StaticBody3D" parent="Cube_224" index="0"] collision_layer = 3 collision_mask = 5 @@ -3007,6 +3104,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_224/Cube_224_col" index="0"] shape = SubResource("ConcavePolygonShape3D_u7c5v") +[node name="Cube_225" parent="." index="226"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_225_col" type="StaticBody3D" parent="Cube_225" index="0"] collision_layer = 3 collision_mask = 5 @@ -3014,6 +3114,10 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_225/Cube_225_col" index="0"] shape = SubResource("ConcavePolygonShape3D_hvwfx") +[node name="Cube_226" parent="." index="227"] +material_override = ExtResource("3_xjmq6") +cast_shadow = 2 + [node name="Cube_226_col" type="StaticBody3D" parent="Cube_226" index="0"] collision_layer = 3 collision_mask = 5 @@ -3021,6 +3125,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_226/Cube_226_col" index="0"] shape = SubResource("ConcavePolygonShape3D_rrouw") +[node name="Cube_227" parent="." index="228"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_227_col" type="StaticBody3D" parent="Cube_227" index="0"] collision_layer = 3 collision_mask = 5 @@ -3028,6 +3135,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_227/Cube_227_col" index="0"] shape = SubResource("ConcavePolygonShape3D_h5aax") +[node name="Cube_228" parent="." index="229"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_228_col" type="StaticBody3D" parent="Cube_228" index="0"] collision_layer = 3 collision_mask = 5 @@ -3035,6 +3145,10 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_228/Cube_228_col" index="0"] shape = SubResource("ConcavePolygonShape3D_tc5np") +[node name="Cube_229" parent="." index="230"] +material_override = ExtResource("3_xjmq6") +cast_shadow = 2 + [node name="Cube_229_col" type="StaticBody3D" parent="Cube_229" index="0"] collision_layer = 3 collision_mask = 5 @@ -3042,6 +3156,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_229/Cube_229_col" index="0"] shape = SubResource("ConcavePolygonShape3D_cdwgp") +[node name="Cube_230" parent="." index="231"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_230_col" type="StaticBody3D" parent="Cube_230" index="0"] collision_layer = 3 collision_mask = 5 @@ -3049,6 +3166,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_230/Cube_230_col" index="0"] shape = SubResource("ConcavePolygonShape3D_2x4mk") +[node name="Cube_231" parent="." index="232"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_231_col" type="StaticBody3D" parent="Cube_231" index="0"] collision_layer = 3 collision_mask = 5 @@ -3056,6 +3176,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_231/Cube_231_col" index="0"] shape = SubResource("ConcavePolygonShape3D_mdk7b") +[node name="Cube_232" parent="." index="233"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_232_col" type="StaticBody3D" parent="Cube_232" index="0"] collision_layer = 3 collision_mask = 5 @@ -3063,6 +3186,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_232/Cube_232_col" index="0"] shape = SubResource("ConcavePolygonShape3D_aer1s") +[node name="Cube_233" parent="." index="234"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_233_col" type="StaticBody3D" parent="Cube_233" index="0"] collision_layer = 3 collision_mask = 5 @@ -3070,6 +3196,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_233/Cube_233_col" index="0"] shape = SubResource("ConcavePolygonShape3D_utk6k") +[node name="Cube_235" parent="." index="235"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_235_col2" type="StaticBody3D" parent="Cube_235" index="0"] collision_layer = 3 collision_mask = 5 @@ -3077,6 +3206,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_235/Cube_235_col2" index="0"] shape = SubResource("ConcavePolygonShape3D_luap4") +[node name="Cube_237" parent="." index="236"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_237_col2" type="StaticBody3D" parent="Cube_237" index="0"] collision_layer = 3 collision_mask = 5 @@ -3084,6 +3216,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_237/Cube_237_col2" index="0"] shape = SubResource("ConcavePolygonShape3D_4vbsu") +[node name="Cube_234" parent="." index="237"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_234_col2" type="StaticBody3D" parent="Cube_234" index="0"] collision_layer = 3 collision_mask = 5 @@ -3091,6 +3226,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_234/Cube_234_col2" index="0"] shape = SubResource("ConcavePolygonShape3D_dy4v6") +[node name="Cube_236" parent="." index="238"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_236_col2" type="StaticBody3D" parent="Cube_236" index="0"] collision_layer = 3 collision_mask = 5 @@ -3098,6 +3236,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_236/Cube_236_col2" index="0"] shape = SubResource("ConcavePolygonShape3D_w0e4s") +[node name="Cube_238" parent="." index="239"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_238_col2" type="StaticBody3D" parent="Cube_238" index="0"] collision_layer = 3 collision_mask = 5 @@ -3119,6 +3260,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_240/Cube_240_col2" index="0"] shape = SubResource("ConcavePolygonShape3D_sq760") +[node name="Cube_241" parent="." index="242"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_241_col2" type="StaticBody3D" parent="Cube_241" index="0"] collision_layer = 3 collision_mask = 5 @@ -3126,6 +3270,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_241/Cube_241_col2" index="0"] shape = SubResource("ConcavePolygonShape3D_hp0ng") +[node name="Cube_242" parent="." index="243"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_242_col" type="StaticBody3D" parent="Cube_242" index="0"] collision_layer = 3 collision_mask = 5 @@ -3133,6 +3280,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_242/Cube_242_col" index="0"] shape = SubResource("ConcavePolygonShape3D_nay3c") +[node name="Cube_243" parent="." index="244"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_243_col" type="StaticBody3D" parent="Cube_243" index="0"] collision_layer = 3 collision_mask = 5 @@ -3140,6 +3290,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_243/Cube_243_col" index="0"] shape = SubResource("ConcavePolygonShape3D_ica5n") +[node name="Cube_244" parent="." index="245"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_244_col" type="StaticBody3D" parent="Cube_244" index="0"] collision_layer = 3 collision_mask = 5 @@ -3147,6 +3300,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_244/Cube_244_col" index="0"] shape = SubResource("ConcavePolygonShape3D_0q73m") +[node name="Cube_245" parent="." index="246"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_245_col" type="StaticBody3D" parent="Cube_245" index="0"] collision_layer = 3 collision_mask = 5 @@ -3154,6 +3310,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_245/Cube_245_col" index="0"] shape = SubResource("ConcavePolygonShape3D_qdctm") +[node name="Cube_246" parent="." index="247"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_246_col" type="StaticBody3D" parent="Cube_246" index="0"] collision_layer = 3 collision_mask = 5 @@ -3161,6 +3320,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_246/Cube_246_col" index="0"] shape = SubResource("ConcavePolygonShape3D_unbo4") +[node name="Cube_247" parent="." index="248"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_247_col" type="StaticBody3D" parent="Cube_247" index="0"] collision_layer = 3 collision_mask = 5 @@ -3168,6 +3330,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_247/Cube_247_col" index="0"] shape = SubResource("ConcavePolygonShape3D_oj7fa") +[node name="Cube_248" parent="." index="249"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_248_col" type="StaticBody3D" parent="Cube_248" index="0"] collision_layer = 3 collision_mask = 5 @@ -3175,6 +3340,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_248/Cube_248_col" index="0"] shape = SubResource("ConcavePolygonShape3D_15qrl") +[node name="Cube_249" parent="." index="250"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_249_col" type="StaticBody3D" parent="Cube_249" index="0"] collision_layer = 3 collision_mask = 5 @@ -3182,6 +3350,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_249/Cube_249_col" index="0"] shape = SubResource("ConcavePolygonShape3D_u005s") +[node name="Cube_250" parent="." index="251"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_250_col" type="StaticBody3D" parent="Cube_250" index="0"] collision_layer = 3 collision_mask = 5 @@ -3189,6 +3360,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_250/Cube_250_col" index="0"] shape = SubResource("ConcavePolygonShape3D_ad03g") +[node name="Cube_251" parent="." index="252"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_251_col" type="StaticBody3D" parent="Cube_251" index="0"] collision_layer = 3 collision_mask = 5 @@ -3196,6 +3370,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_251/Cube_251_col" index="0"] shape = SubResource("ConcavePolygonShape3D_a1kuf") +[node name="Cube_252" parent="." index="253"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_252_col" type="StaticBody3D" parent="Cube_252" index="0"] collision_layer = 3 collision_mask = 5 @@ -3203,6 +3380,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_252/Cube_252_col" index="0"] shape = SubResource("ConcavePolygonShape3D_dburb") +[node name="Cube_253" parent="." index="254"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_253_col" type="StaticBody3D" parent="Cube_253" index="0"] collision_layer = 3 collision_mask = 5 @@ -3210,6 +3390,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_253/Cube_253_col" index="0"] shape = SubResource("ConcavePolygonShape3D_ch54j") +[node name="Cube_254" parent="." index="255"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_254_col" type="StaticBody3D" parent="Cube_254" index="0"] collision_layer = 3 collision_mask = 5 @@ -3217,6 +3400,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_254/Cube_254_col" index="0"] shape = SubResource("ConcavePolygonShape3D_ls8wx") +[node name="Cube_255" parent="." index="256"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_255_col" type="StaticBody3D" parent="Cube_255" index="0"] collision_layer = 3 collision_mask = 5 @@ -3224,6 +3410,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_255/Cube_255_col" index="0"] shape = SubResource("ConcavePolygonShape3D_bsjv6") +[node name="Cube_256" parent="." index="257"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_256_col" type="StaticBody3D" parent="Cube_256" index="0"] collision_layer = 3 collision_mask = 5 @@ -3231,6 +3420,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_256/Cube_256_col" index="0"] shape = SubResource("ConcavePolygonShape3D_qmvyf") +[node name="Cube_257" parent="." index="258"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_257_col" type="StaticBody3D" parent="Cube_257" index="0"] collision_layer = 3 collision_mask = 5 @@ -3238,6 +3430,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_257/Cube_257_col" index="0"] shape = SubResource("ConcavePolygonShape3D_qwi3q") +[node name="Cube_258" parent="." index="259"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_258_col" type="StaticBody3D" parent="Cube_258" index="0"] collision_layer = 3 collision_mask = 5 @@ -3245,6 +3440,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_258/Cube_258_col" index="0"] shape = SubResource("ConcavePolygonShape3D_xwxqi") +[node name="Cube_259" parent="." index="260"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_259_col" type="StaticBody3D" parent="Cube_259" index="0"] collision_layer = 3 collision_mask = 5 @@ -3252,6 +3450,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_259/Cube_259_col" index="0"] shape = SubResource("ConcavePolygonShape3D_ge4sn") +[node name="Cube_260" parent="." index="261"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_260_col" type="StaticBody3D" parent="Cube_260" index="0"] collision_layer = 3 collision_mask = 5 @@ -3259,6 +3460,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_260/Cube_260_col" index="0"] shape = SubResource("ConcavePolygonShape3D_jnhds") +[node name="Cube_262" parent="." index="262"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_262_col" type="StaticBody3D" parent="Cube_262" index="0"] collision_layer = 3 collision_mask = 5 @@ -3266,6 +3470,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_262/Cube_262_col" index="0"] shape = SubResource("ConcavePolygonShape3D_687to") +[node name="Cube_263" parent="." index="263"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_263_col" type="StaticBody3D" parent="Cube_263" index="0"] collision_layer = 3 collision_mask = 5 @@ -3280,6 +3487,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_264/Cube_264_col" index="0"] shape = SubResource("ConcavePolygonShape3D_ukbj5") +[node name="Cube_265" parent="." index="265"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_265_col" type="StaticBody3D" parent="Cube_265" index="0"] collision_layer = 3 collision_mask = 5 @@ -3287,6 +3497,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_265/Cube_265_col" index="0"] shape = SubResource("ConcavePolygonShape3D_sf261") +[node name="Cube_266" parent="." index="266"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_266_col" type="StaticBody3D" parent="Cube_266" index="0"] collision_layer = 3 collision_mask = 5 @@ -3294,6 +3507,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_266/Cube_266_col" index="0"] shape = SubResource("ConcavePolygonShape3D_7nwml") +[node name="Cube_267" parent="." index="267"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_267_col" type="StaticBody3D" parent="Cube_267" index="0"] collision_layer = 3 collision_mask = 5 @@ -3301,6 +3517,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_267/Cube_267_col" index="0"] shape = SubResource("ConcavePolygonShape3D_0lwqd") +[node name="Cube_268" parent="." index="268"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_268_col" type="StaticBody3D" parent="Cube_268" index="0"] collision_layer = 3 collision_mask = 5 @@ -3308,6 +3527,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_268/Cube_268_col" index="0"] shape = SubResource("ConcavePolygonShape3D_1epph") +[node name="Cube_269" parent="." index="269"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_269_col" type="StaticBody3D" parent="Cube_269" index="0"] collision_layer = 3 collision_mask = 5 @@ -3315,6 +3537,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_269/Cube_269_col" index="0"] shape = SubResource("ConcavePolygonShape3D_o2en4") +[node name="Cube_270" parent="." index="270"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_270_col" type="StaticBody3D" parent="Cube_270" index="0"] collision_layer = 3 collision_mask = 5 @@ -3322,6 +3547,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_270/Cube_270_col" index="0"] shape = SubResource("ConcavePolygonShape3D_nuj0k") +[node name="Cube_271" parent="." index="271"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_271_col" type="StaticBody3D" parent="Cube_271" index="0"] collision_layer = 3 collision_mask = 5 @@ -3329,6 +3557,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_271/Cube_271_col" index="0"] shape = SubResource("ConcavePolygonShape3D_60b56") +[node name="Cube_272" parent="." index="272"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_272_col" type="StaticBody3D" parent="Cube_272" index="0"] collision_layer = 3 collision_mask = 5 @@ -3336,6 +3567,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_272/Cube_272_col" index="0"] shape = SubResource("ConcavePolygonShape3D_50eql") +[node name="Cube_273" parent="." index="273"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_273_col" type="StaticBody3D" parent="Cube_273" index="0"] collision_layer = 3 collision_mask = 5 @@ -3343,6 +3577,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_273/Cube_273_col" index="0"] shape = SubResource("ConcavePolygonShape3D_ohrpm") +[node name="Cube_274" parent="." index="274"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_274_col" type="StaticBody3D" parent="Cube_274" index="0"] collision_layer = 3 collision_mask = 5 @@ -3350,6 +3587,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_274/Cube_274_col" index="0"] shape = SubResource("ConcavePolygonShape3D_m4s8e") +[node name="Cube_275" parent="." index="275"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_275_col" type="StaticBody3D" parent="Cube_275" index="0"] collision_layer = 3 collision_mask = 5 @@ -3357,6 +3597,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_275/Cube_275_col" index="0"] shape = SubResource("ConcavePolygonShape3D_uous6") +[node name="Cube_276" parent="." index="276"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_276_col" type="StaticBody3D" parent="Cube_276" index="0"] collision_layer = 3 collision_mask = 5 @@ -3364,6 +3607,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_276/Cube_276_col" index="0"] shape = SubResource("ConcavePolygonShape3D_o0jxx") +[node name="Cube_277" parent="." index="277"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_277_col" type="StaticBody3D" parent="Cube_277" index="0"] collision_layer = 3 collision_mask = 5 @@ -3371,6 +3617,9 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_277/Cube_277_col" index="0"] shape = SubResource("ConcavePolygonShape3D_ild1s") +[node name="Cylinder" parent="." index="278"] +material_override = ExtResource("3_xjmq6") + [node name="Cylinder_col" type="StaticBody3D" parent="Cylinder" index="0"] collision_layer = 3 collision_mask = 5 @@ -3378,9 +3627,72 @@ collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cylinder/Cylinder_col" index="0"] shape = SubResource("ConcavePolygonShape3D_6i64o") +[node name="Cube_278" parent="." index="279"] +material_override = ExtResource("3_xjmq6") + [node name="Cube_278_col" type="StaticBody3D" parent="Cube_278" index="0"] collision_layer = 3 collision_mask = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_278/Cube_278_col" index="0"] shape = SubResource("ConcavePolygonShape3D_71ic5") + +[node name="Cube_261" parent="." index="280"] +material_override = ExtResource("4_7r3kr") + +[node name="Cube_261_col" type="StaticBody3D" parent="Cube_261" index="0"] +collision_layer = 3 +collision_mask = 5 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_261/Cube_261_col" index="0"] +shape = SubResource("ConcavePolygonShape3D_km2kb") + +[node name="Cube_280" parent="." index="281"] +material_override = ExtResource("4_7r3kr") + +[node name="Cube_280_col" type="StaticBody3D" parent="Cube_280" index="0"] +collision_layer = 3 +collision_mask = 5 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_280/Cube_280_col" index="0"] +shape = SubResource("ConcavePolygonShape3D_3pham") + +[node name="Cube_281" parent="." index="282"] +material_override = ExtResource("4_7r3kr") + +[node name="Cube_281_col" type="StaticBody3D" parent="Cube_281" index="0"] +collision_layer = 3 +collision_mask = 5 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_281/Cube_281_col" index="0"] +shape = SubResource("ConcavePolygonShape3D_qj6cm") + +[node name="Cube_282" parent="." index="283"] +material_override = ExtResource("4_7r3kr") + +[node name="Cube_282_col" type="StaticBody3D" parent="Cube_282" index="0"] +collision_layer = 3 +collision_mask = 5 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_282/Cube_282_col" index="0"] +shape = SubResource("ConcavePolygonShape3D_ojacj") + +[node name="Cube_283" parent="." index="284"] +material_override = ExtResource("4_7r3kr") + +[node name="Cube_283_col" type="StaticBody3D" parent="Cube_283" index="0"] +collision_layer = 3 +collision_mask = 5 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_283/Cube_283_col" index="0"] +shape = SubResource("ConcavePolygonShape3D_407rx") + +[node name="Cube_284" parent="." index="285"] +material_override = ExtResource("3_xjmq6") + +[node name="Cube_284_col2" type="StaticBody3D" parent="Cube_284" index="0"] +collision_layer = 3 +collision_mask = 5 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Cube_284/Cube_284_col2" index="0"] +shape = SubResource("ConcavePolygonShape3D_feh6m") diff --git a/assets/lift/lift.gd b/assets/lift/lift.gd index 9aa68f7c..21eb71db 100644 --- a/assets/lift/lift.gd +++ b/assets/lift/lift.gd @@ -7,18 +7,32 @@ var lift_already_used : bool = false @onready var button: MeshInstance3D = $Cylinder_001 +var player : CharacterBody3D + +func finished_climbing() -> void: + player.SetAllowedInputsAll() + func start_climbing() -> void: - var elevator_tween = get_tree().create_tween() - elevator_tween.set_ease(Tween.EASE_IN_OUT) - elevator_tween.set_trans(Tween.TRANS_CUBIC) - elevator_tween.tween_property(self, "global_position", end_location, lift_time) - + var player_start_location = player.global_position + var height_difference = end_location - global_position + + var elevator_tween = get_tree().create_tween() + elevator_tween.set_parallel(true) + elevator_tween.set_ease(Tween.EASE_IN_OUT) + elevator_tween.set_trans(Tween.TRANS_CUBIC) + elevator_tween.tween_property(self, "global_position", end_location, lift_time) + elevator_tween.tween_property(player, "global_position", player_start_location + height_difference, lift_time) + elevator_tween.tween_callback(finished_climbing) + func _on_area_3d_body_entered(body: Node3D) -> void: if lift_already_used: return if is_instance_of(body, CharacterBody3D): + player = body + player.SetAllowedInputsMoveCamera() + lift_already_used = true var button_tween = get_tree().create_tween() diff --git a/authoring/greyboxing/city.blend b/authoring/greyboxing/city.blend index a47bd35c..45606ea2 100644 Binary files a/authoring/greyboxing/city.blend and b/authoring/greyboxing/city.blend differ diff --git a/authoring/greyboxing/city.blend1 b/authoring/greyboxing/city.blend1 index 0bf5465a..fa24e6c6 100644 Binary files a/authoring/greyboxing/city.blend1 and b/authoring/greyboxing/city.blend1 differ diff --git a/maps/city.tscn b/maps/city.tscn index 7bfac43d..1ee57e1c 100644 --- a/maps/city.tscn +++ b/maps/city.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=44 format=3 uid="uid://dmkw8cmalm5k"] +[gd_scene load_steps=41 format=3 uid="uid://dmkw8cmalm5k"] [ext_resource type="PackedScene" uid="uid://bei4nhkf8lwdo" path="res://player_controller/PlayerController.tscn" id="1_2vsi6"] [ext_resource type="Texture2D" uid="uid://ca4kkq3w8cd4n" path="res://assets/sky/sky_15_2k.png" id="2_ruo5i"] @@ -23,7 +23,6 @@ [ext_resource type="PackedScene" uid="uid://kktuyhbd5xgc" path="res://menus/scenes/overlaid_menus/tuto_got_sword.tscn" id="17_t0d86"] [ext_resource type="Texture2D" uid="uid://cjh5cnvdbq5ku" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_button_b_outline.svg" id="19_efsse"] [ext_resource type="Texture2D" uid="uid://nrhxjdpuje3f" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_lt_outline.svg" id="20_crf87"] -[ext_resource type="Texture2D" uid="uid://bfkj4neu0m0rm" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_rt_outline.svg" id="21_rmfv1"] [ext_resource type="Texture2D" uid="uid://dyjvbsvbriii4" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_rb_outline.svg" id="23_p287n"] [sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_feb1n"] @@ -42,6 +41,7 @@ ssao_enabled = true ssil_enabled = true sdfgi_enabled = true sdfgi_use_occlusion = true +glow_enabled = true fog_enabled = true fog_light_color = Color(0.9955967, 0.83634025, 0.69151855, 1) fog_sun_scatter = 0.5 @@ -50,6 +50,7 @@ fog_sky_affect = 0.184 volumetric_fog_density = 0.004 volumetric_fog_emission = Color(1, 1, 1, 1) volumetric_fog_anisotropy = 0.6 +adjustment_enabled = true [sub_resource type="BoxShape3D" id="BoxShape3D_t0d86"] size = Vector3(14, 15.5, 26) @@ -57,11 +58,11 @@ size = Vector3(14, 15.5, 26) [sub_resource type="BoxShape3D" id="BoxShape3D_p287n"] size = Vector3(8.5, 16.5, 11.5) -[sub_resource type="BoxShape3D" id="BoxShape3D_qwuk2"] -size = Vector3(8.5, 16.5, 8) +[sub_resource type="BoxShape3D" id="BoxShape3D_5hbxb"] +size = Vector3(8, 13.5, 10) -[sub_resource type="BoxShape3D" id="BoxShape3D_efsse"] -size = Vector3(12, 18, 8) +[sub_resource type="BoxShape3D" id="BoxShape3D_6gj1x"] +size = Vector3(8, 13.5, 11.5) [sub_resource type="BoxShape3D" id="BoxShape3D_x7fl1"] size = Vector3(8.5, 38.5, 46.5) @@ -69,18 +70,12 @@ size = Vector3(8.5, 38.5, 46.5) [sub_resource type="BoxShape3D" id="BoxShape3D_3wccx"] size = Vector3(12, 11.5, 5) -[sub_resource type="BoxShape3D" id="BoxShape3D_nrosh"] -size = Vector3(8, 16.5, 25.5) +[sub_resource type="BoxShape3D" id="BoxShape3D_hmdts"] +size = Vector3(12, 13, 7) [sub_resource type="BoxShape3D" id="BoxShape3D_lnjrw"] size = Vector3(14, 15.5, 13.5) -[sub_resource type="BoxShape3D" id="BoxShape3D_lgco8"] -size = Vector3(12, 14.5, 11) - -[sub_resource type="BoxShape3D" id="BoxShape3D_51ivn"] -size = Vector3(12, 14.5, 11) - [sub_resource type="BoxShape3D" id="BoxShape3D_3w3wd"] size = Vector3(13, 16.5, 11.5) @@ -90,18 +85,18 @@ size = Vector3(11.5, 9, 4.5) [sub_resource type="BoxShape3D" id="BoxShape3D_pxspk"] size = Vector3(11.5, 9, 4.5) -[sub_resource type="BoxShape3D" id="BoxShape3D_5hbxb"] -size = Vector3(9.5, 2, 5.5) - [sub_resource type="LabelSettings" id="LabelSettings_2k3fr"] font_size = 30 +[sub_resource type="BoxMesh" id="BoxMesh_p287n"] + [node name="Main" type="Node3D"] [node name="Player" parent="." node_paths=PackedStringArray("TutorialWeaponTarget") instance=ExtResource("1_2vsi6")] -transform = Transform3D(0.054514527, 0, -0.9985129, 0, 1, 0, 0.9985129, 0, 0.054514527, -1.2857323, -132.74933, 116.15933) +transform = Transform3D(0.054514527, 0, -0.9985129, 0, 1, 0, 0.9985129, 0, 0.054514527, -0.17818737, -132.74933, 118.101845) collision_layer = 17 TutorialWeaponTarget = NodePath("../PlacedTutorialWeapon/WeaponLocationTarget") +AccelerationAir = 1.5 [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_1bvp3") @@ -131,9 +126,10 @@ transform = Transform3D(0.09033705, 0, 0.99591124, 0, 1, 0, -0.99591124, 0, 0.09 [node name="Water" parent="." instance=ExtResource("12_i2xii")] transform = Transform3D(10000, 0, 0, 0, 1, 0, 0, 0, 10000, 0, 4.03932, -186.25941) -[node name="PauseMenuController" type="Node" parent="."] +[node name="PauseMenuController" type="Node" parent="." node_paths=PackedStringArray("player")] script = ExtResource("7_ukfuy") pause_menu_packed = ExtResource("8_wctvs") +player = NodePath("../Player") base_mode = ExtResource("9_eca4n") pause = ExtResource("10_0ari0") @@ -143,7 +139,7 @@ stream = ExtResource("10_eca4n") [node name="Lift" parent="." instance=ExtResource("13_eca4n")] transform = Transform3D(0.9961947, 0, -0.08715573, 0, 1, 0, 0.08715573, 0, 0.9961947, -4.593, 1.618, 0.583) end_location = Vector3(-4.593, 116.11, 0.583) -lift_time = 15.0 +lift_time = 8.0 [node name="PlacedTutorialWeapon" type="MeshInstance3D" parent="."] transform = Transform3D(-2, 3.019916e-07, 0, -3.019916e-07, -2, 0, 0, 0, 2, -17.904, -79.265, 145.317) @@ -178,23 +174,25 @@ collision_mask = 16 transform = Transform3D(0.9961947, 0, -0.08715595, 0, 1, 0, 0.08715595, 0, 0.9961947, 0.19611359, 7, -2.241436) shape = SubResource("BoxShape3D_p287n") -[node name="TriggerTutoJump" type="Area3D" parent="TutoTriggers"] -transform = Transform3D(0.9961947, 0, -0.087155744, 0, 1, 0, 0.087155744, 0, 0.9961947, 3.1977234, 0, -49.399136) -collision_layer = 0 -collision_mask = 16 +[node name="TutoJump" parent="TutoTriggers" instance=ExtResource("16_qwuk2")] +transform = Transform3D(0.14133328, 0, 0.98996216, 0, 1, 0, -0.98996216, 0, 0.14133328, -0.32653046, 1.2493286, -50.374645) +first_input_texture = ExtResource("16_2k3fr") +second_input_texture = ExtResource("16_2k3fr") +tuto_text = "Double jump" -[node name="CollisionShape3D" type="CollisionShape3D" parent="TutoTriggers/TriggerTutoJump"] -transform = Transform3D(0.9961947, 0, -0.08715595, 0, 1, 0, 0.08715595, 0, 0.9961947, -0.90906525, 6.5, -1.0833435) -shape = SubResource("BoxShape3D_qwuk2") +[node name="CollisionShape3D" type="CollisionShape3D" parent="TutoTriggers/TutoJump"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.49998856, 6.25, 3.499977) +shape = SubResource("BoxShape3D_5hbxb") -[node name="TriggerTutoDoubleJump" type="Area3D" parent="TutoTriggers"] -transform = Transform3D(0.9961947, 0, -0.087155744, 0, 1, 0, 0.087155744, 0, 0.9961947, 23.476433, 0, -44.786793) -collision_layer = 0 -collision_mask = 16 +[node name="TutoDash" parent="TutoTriggers" instance=ExtResource("16_qwuk2")] +transform = Transform3D(0.14133328, 0, 0.98996216, 0, 1, 0, -0.98996216, 0, 0.14133328, 19.967693, 1.2493286, -47.47731) +first_input_texture = ExtResource("16_crf87") +second_input_texture = ExtResource("19_efsse") +tuto_text = "Dash" -[node name="CollisionShape3D" type="CollisionShape3D" parent="TutoTriggers/TriggerTutoDoubleJump"] -transform = Transform3D(0.9961947, 0, -0.08715595, 0, 1, 0, 0.08715595, 0, 0.9961947, -2.0671844, 5.75, -2.1884613) -shape = SubResource("BoxShape3D_efsse") +[node name="CollisionShape3D" type="CollisionShape3D" parent="TutoTriggers/TutoDash"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.49999237, 6.25, 4.2500153) +shape = SubResource("BoxShape3D_6gj1x") [node name="TriggerTutoWallJump" type="Area3D" parent="TutoTriggers"] transform = Transform3D(0.9961947, 0, -0.087155744, 0, 1, 0, 0.087155744, 0, 0.9961947, 38.60766, 0, -28.437609) @@ -214,14 +212,16 @@ collision_mask = 16 transform = Transform3D(0.9961947, 0, -0.08715595, 0, 1, 0, 0.08715595, 0, 0.9961947, 2.3256226, 21.75, 4.9715767) shape = SubResource("BoxShape3D_3wccx") -[node name="TriggerTutoDash" type="Area3D" parent="TutoTriggers"] -transform = Transform3D(0.9961947, 0, -0.087155744, 0, 1, 0, 0.087155744, 0, 0.9961947, 28.393105, 27.5, 21.07917) -collision_layer = 0 -collision_mask = 16 +[node name="TutoDash2" parent="TutoTriggers" instance=ExtResource("16_qwuk2")] +transform = Transform3D(0.14133325, 0, 0.98996216, 0, 1, 0, -0.98996216, 0, 0.14133325, 28.885735, 27.749329, 25.360323) +first_input_texture = ExtResource("16_crf87") +second_input_texture = ExtResource("19_efsse") +complex_input_text = "in air" +tuto_text = "Dash" -[node name="CollisionShape3D" type="CollisionShape3D" parent="TutoTriggers/TriggerTutoDash"] -transform = Transform3D(0.9961947, 0, -0.08715595, 0, 1, 0, 0.08715595, 0, 0.9961947, 1.0587616, 7.5, 5.1117268) -shape = SubResource("BoxShape3D_nrosh") +[node name="CollisionShape3D" type="CollisionShape3D" parent="TutoTriggers/TutoDash2"] +transform = Transform3D(1.0000031, 0, -4.917383e-07, 0, 1, 0, 4.917383e-07, 0, 1.0000031, 5.500023, 5, 0) +shape = SubResource("BoxShape3D_hmdts") [node name="TriggerTutoWeaponThrow" type="Area3D" parent="TutoTriggers"] transform = Transform3D(0.9961947, 0, -0.087155744, 0, 1, 0, 0.087155744, 0, 0.9961947, 4.428787, 58, 19.770819) @@ -232,24 +232,6 @@ collision_mask = 16 transform = Transform3D(0.9961947, 0, -0.08715595, 0, 1, 0, 0.08715595, 0, 0.9961947, 4.4208603, 7, -4.632329) shape = SubResource("BoxShape3D_lnjrw") -[node name="TriggerTutoEmpoweredDash" type="Area3D" parent="TutoTriggers"] -transform = Transform3D(0.9961947, 0, -0.087155744, 0, 1, 0, 0.087155744, 0, 0.9961947, -25.417572, 58, 16.138357) -collision_layer = 0 -collision_mask = 16 - -[node name="CollisionShape3D" type="CollisionShape3D" parent="TutoTriggers/TriggerTutoEmpoweredDash"] -transform = Transform3D(0.9961947, 0, -0.08715595, 0, 1, 0, 0.08715595, 0, 0.9961947, 3.4464645, 6.5, -4.9685373) -shape = SubResource("BoxShape3D_lgco8") - -[node name="TriggerTutoEmpoweredJump" type="Area3D" parent="TutoTriggers"] -transform = Transform3D(0.9961947, 0, -0.087155744, 0, 1, 0, 0.087155744, 0, 0.9961947, -59.648212, 58, 10.263556) -collision_layer = 0 -collision_mask = 16 - -[node name="CollisionShape3D" type="CollisionShape3D" parent="TutoTriggers/TriggerTutoEmpoweredJump"] -transform = Transform3D(0.9961947, 0, -0.08715595, 0, 1, 0, 0.08715595, 0, 0.9961947, 3.4464645, 6.5, -4.9685373) -shape = SubResource("BoxShape3D_51ivn") - [node name="TriggerTutoEnjoy" type="Area3D" parent="TutoTriggers"] transform = Transform3D(0.9961947, 0, -0.087155744, 0, 1, 0, 0.087155744, 0, 0.9961947, -120.81145, 214.5, 2.417603) collision_layer = 0 @@ -277,16 +259,6 @@ collision_mask = 16 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7500105, 4, 0.7499695) shape = SubResource("BoxShape3D_pxspk") -[node name="TutoTrigger" parent="TutoTriggers" instance=ExtResource("16_qwuk2")] -transform = Transform3D(0.054514553, 0, 0.99851304, 0, 1, 0, -0.99851304, 0, 0.054514553, -9.365448, -0.7506714, -14.818321) -first_input_texture = ExtResource("16_2k3fr") -complex_input_text = "while on wall" -tuto_text = "Jump" - -[node name="CollisionShape3D" type="CollisionShape3D" parent="TutoTriggers/TutoTrigger"] -transform = Transform3D(0.9848077, 0, -0.17364818, 0, 1, 0, 0.17364818, 0, 0.9848077, 1.8592949, 0.5, 2.2158203) -shape = SubResource("BoxShape3D_5hbxb") - [node name="TutorialController" type="Control" parent="."] layout_mode = 3 anchors_preset = 15 @@ -368,49 +340,6 @@ layout_mode = 2 text = "Mantle up" label_settings = SubResource("LabelSettings_2k3fr") -[node name="TutoJump" type="HBoxContainer" parent="TutorialController/PanelContainer/MarginContainer"] -unique_name_in_owner = true -visible = false -layout_mode = 2 -theme_override_constants/separation = 15 - -[node name="TextureRect" type="TextureRect" parent="TutorialController/PanelContainer/MarginContainer/TutoJump"] -layout_mode = 2 -texture = ExtResource("16_2k3fr") - -[node name="Label" type="Label" parent="TutorialController/PanelContainer/MarginContainer/TutoJump"] -layout_mode = 2 -text = "Jump" -label_settings = SubResource("LabelSettings_2k3fr") - -[node name="TutoDoubleJump" type="HBoxContainer" parent="TutorialController/PanelContainer/MarginContainer"] -unique_name_in_owner = true -visible = false -layout_mode = 2 -theme_override_constants/separation = 15 - -[node name="HBoxContainer" type="HBoxContainer" parent="TutorialController/PanelContainer/MarginContainer/TutoDoubleJump"] -layout_mode = 2 -theme_override_constants/separation = 0 - -[node name="TextureRect" type="TextureRect" parent="TutorialController/PanelContainer/MarginContainer/TutoDoubleJump/HBoxContainer"] -layout_mode = 2 -texture = ExtResource("16_2k3fr") - -[node name="Label2" type="Label" parent="TutorialController/PanelContainer/MarginContainer/TutoDoubleJump/HBoxContainer"] -layout_mode = 2 -text = "+" -label_settings = SubResource("LabelSettings_2k3fr") - -[node name="TextureRect2" type="TextureRect" parent="TutorialController/PanelContainer/MarginContainer/TutoDoubleJump/HBoxContainer"] -layout_mode = 2 -texture = ExtResource("16_2k3fr") - -[node name="Label3" type="Label" parent="TutorialController/PanelContainer/MarginContainer/TutoDoubleJump"] -layout_mode = 2 -text = "Double jump" -label_settings = SubResource("LabelSettings_2k3fr") - [node name="TutoWallJump" type="HBoxContainer" parent="TutorialController/PanelContainer/MarginContainer"] unique_name_in_owner = true visible = false @@ -435,21 +364,6 @@ layout_mode = 2 text = "Wall jump" label_settings = SubResource("LabelSettings_2k3fr") -[node name="TutoDash" type="HBoxContainer" parent="TutorialController/PanelContainer/MarginContainer"] -unique_name_in_owner = true -visible = false -layout_mode = 2 -theme_override_constants/separation = 15 - -[node name="TextureRect" type="TextureRect" parent="TutorialController/PanelContainer/MarginContainer/TutoDash"] -layout_mode = 2 -texture = ExtResource("19_efsse") - -[node name="Label" type="Label" parent="TutorialController/PanelContainer/MarginContainer/TutoDash"] -layout_mode = 2 -text = "Dash (both in air and on ground)" -label_settings = SubResource("LabelSettings_2k3fr") - [node name="TutoDashWeapon" type="HBoxContainer" parent="TutorialController/PanelContainer/MarginContainer"] unique_name_in_owner = true visible = false @@ -489,62 +403,6 @@ layout_mode = 2 text = "Throw weapon" label_settings = SubResource("LabelSettings_2k3fr") -[node name="TutoEmpoweredDash" type="HBoxContainer" parent="TutorialController/PanelContainer/MarginContainer"] -unique_name_in_owner = true -visible = false -layout_mode = 2 -theme_override_constants/separation = 15 - -[node name="HBoxContainer" type="HBoxContainer" parent="TutorialController/PanelContainer/MarginContainer/TutoEmpoweredDash"] -layout_mode = 2 -theme_override_constants/separation = 0 - -[node name="TextureRect" type="TextureRect" parent="TutorialController/PanelContainer/MarginContainer/TutoEmpoweredDash/HBoxContainer"] -layout_mode = 2 -texture = ExtResource("21_rmfv1") - -[node name="Label2" type="Label" parent="TutorialController/PanelContainer/MarginContainer/TutoEmpoweredDash/HBoxContainer"] -layout_mode = 2 -text = "+" -label_settings = SubResource("LabelSettings_2k3fr") - -[node name="TextureRect2" type="TextureRect" parent="TutorialController/PanelContainer/MarginContainer/TutoEmpoweredDash/HBoxContainer"] -layout_mode = 2 -texture = ExtResource("19_efsse") - -[node name="Label3" type="Label" parent="TutorialController/PanelContainer/MarginContainer/TutoEmpoweredDash"] -layout_mode = 2 -text = "Empowered dash" -label_settings = SubResource("LabelSettings_2k3fr") - -[node name="TutoEmpoweredJump" type="HBoxContainer" parent="TutorialController/PanelContainer/MarginContainer"] -unique_name_in_owner = true -visible = false -layout_mode = 2 -theme_override_constants/separation = 15 - -[node name="HBoxContainer" type="HBoxContainer" parent="TutorialController/PanelContainer/MarginContainer/TutoEmpoweredJump"] -layout_mode = 2 -theme_override_constants/separation = 0 - -[node name="TextureRect" type="TextureRect" parent="TutorialController/PanelContainer/MarginContainer/TutoEmpoweredJump/HBoxContainer"] -layout_mode = 2 -texture = ExtResource("21_rmfv1") - -[node name="Label2" type="Label" parent="TutorialController/PanelContainer/MarginContainer/TutoEmpoweredJump/HBoxContainer"] -layout_mode = 2 -text = "+" -label_settings = SubResource("LabelSettings_2k3fr") - -[node name="TextureRect2" type="TextureRect" parent="TutorialController/PanelContainer/MarginContainer/TutoEmpoweredJump/HBoxContainer"] -layout_mode = 2 -texture = ExtResource("16_2k3fr") - -[node name="Label3" type="Label" parent="TutorialController/PanelContainer/MarginContainer/TutoEmpoweredJump"] -layout_mode = 2 -text = "Empowered jump" -label_settings = SubResource("LabelSettings_2k3fr") - [node name="TutoEnjoy" type="HBoxContainer" parent="TutorialController/PanelContainer/MarginContainer"] unique_name_in_owner = true visible = false @@ -556,25 +414,41 @@ layout_mode = 2 text = "Enjoy this little playground!" label_settings = SubResource("LabelSettings_2k3fr") +[node name="LightLeakBlockers" type="Node3D" parent="."] + +[node name="MeshInstance3D" type="MeshInstance3D" parent="LightLeakBlockers"] +transform = Transform3D(200, 0, 0, 0, 200, 0, 0, 0, 10, 0, -116, 178.82) +mesh = SubResource("BoxMesh_p287n") +skeleton = NodePath("../..") + +[node name="MeshInstance3D2" type="MeshInstance3D" parent="LightLeakBlockers"] +transform = Transform3D(34.729645, 0, 9.848078, 0, 200, 0, -196.96153, 0, 1.7364821, 57.5, -119, 178.82) +mesh = SubResource("BoxMesh_p287n") +skeleton = NodePath("../..") + +[node name="MeshInstance3D3" type="MeshInstance3D" parent="LightLeakBlockers"] +transform = Transform3D(5.00679e-06, -200.00002, -2.3841858e-07, 0, -5.635115e-06, 10.000002, -200, 9.936228e-07, 2.3841858e-07, 1.5, -17, 114.82001) +mesh = SubResource("BoxMesh_p287n") +skeleton = NodePath("../..") + +[node name="TutoLights" type="Node3D" parent="."] + +[node name="SpotLight3D" type="SpotLight3D" parent="TutoLights"] +transform = Transform3D(1, 9.942504e-09, -4.395368e-08, 4.4703484e-08, -0.3420201, 0.9396927, -5.690144e-09, -0.9396927, -0.3420201, -11.5, -70.5, 106.5) +light_energy = 500.0 +spot_range = 47.233 +spot_angle = 18.85 +spot_angle_attenuation = 10.556052 + [connection signal="body_exited" from="TutoTriggers/TriggerTutoMove" to="TutorialController" method="hide_tutorials"] [connection signal="body_entered" from="TutoTriggers/TriggerTutoMantle" to="TutorialController" method="_on_tuto_mantle_body_entered"] [connection signal="body_exited" from="TutoTriggers/TriggerTutoMantle" to="TutorialController" method="hide_tutorials"] -[connection signal="body_entered" from="TutoTriggers/TriggerTutoJump" to="TutorialController" method="_on_tuto_jump_body_entered"] -[connection signal="body_exited" from="TutoTriggers/TriggerTutoJump" to="TutorialController" method="hide_tutorials"] -[connection signal="body_entered" from="TutoTriggers/TriggerTutoDoubleJump" to="TutorialController" method="_on_tuto_double_jump_body_entered"] -[connection signal="body_exited" from="TutoTriggers/TriggerTutoDoubleJump" to="TutorialController" method="hide_tutorials"] [connection signal="body_entered" from="TutoTriggers/TriggerTutoWallJump" to="TutorialController" method="_on_tuto_wall_jump_body_entered"] [connection signal="body_exited" from="TutoTriggers/TriggerTutoWallJump" to="TutorialController" method="hide_tutorials"] [connection signal="body_entered" from="TutoTriggers/TriggerTutoWallJump2" to="TutorialController" method="_on_tuto_wall_jump_body_entered"] [connection signal="body_exited" from="TutoTriggers/TriggerTutoWallJump2" to="TutorialController" method="hide_tutorials"] -[connection signal="body_entered" from="TutoTriggers/TriggerTutoDash" to="TutorialController" method="_on_tuto_dash_body_entered"] -[connection signal="body_exited" from="TutoTriggers/TriggerTutoDash" to="TutorialController" method="hide_tutorials"] [connection signal="body_entered" from="TutoTriggers/TriggerTutoWeaponThrow" to="TutorialController" method="_on_tuto_weapon_throw_body_entered"] [connection signal="body_exited" from="TutoTriggers/TriggerTutoWeaponThrow" to="TutorialController" method="hide_tutorials"] -[connection signal="body_entered" from="TutoTriggers/TriggerTutoEmpoweredDash" to="TutorialController" method="_on_tuto_empowered_dash_body_entered"] -[connection signal="body_exited" from="TutoTriggers/TriggerTutoEmpoweredDash" to="TutorialController" method="hide_tutorials"] -[connection signal="body_entered" from="TutoTriggers/TriggerTutoEmpoweredJump" to="TutorialController" method="_on_tuto_empowered_jump_body_entered"] -[connection signal="body_exited" from="TutoTriggers/TriggerTutoEmpoweredJump" to="TutorialController" method="hide_tutorials"] [connection signal="body_entered" from="TutoTriggers/TriggerTutoEnjoy" to="TutorialController" method="_on_tuto_enjoy_body_entered"] [connection signal="body_exited" from="TutoTriggers/TriggerTutoEnjoy" to="TutorialController" method="hide_tutorials"] [connection signal="body_entered" from="TutoTriggers/TutorialDoneArea" to="Player" method="OnTutorialDone"] diff --git a/menus/scenes/menus/options_menu/mini_options_menu_with_reset.tscn b/menus/scenes/menus/options_menu/mini_options_menu_with_reset.tscn index fe1bb4d2..a9117378 100644 --- a/menus/scenes/menus/options_menu/mini_options_menu_with_reset.tscn +++ b/menus/scenes/menus/options_menu/mini_options_menu_with_reset.tscn @@ -1,13 +1,17 @@ -[gd_scene load_steps=4 format=3 uid="uid://foajscu2dqkk"] +[gd_scene load_steps=5 format=3 uid="uid://foajscu2dqkk"] [ext_resource type="PackedScene" uid="uid://vh1ucj2rfbby" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/mini_options_menu.tscn" id="1_gcivb"] [ext_resource type="Script" uid="uid://ceg0gjjapg77k" path="res://menus/scenes/menus/options_menu/mini_options_menu_with_reset.gd" id="2_oof6u"] [ext_resource type="PackedScene" uid="uid://dfjkn4yl3q1am" path="res://menus/scenes/menus/options_menu/game/reset_game_control/reset_game_control.tscn" id="3_gss4d"] +[ext_resource type="PackedScene" uid="uid://ceehkbh6emrdm" path="res://menus/scenes/menus/options_menu/input/input_extras_menu.tscn" id="4_grbel"] [node name="MiniOptionsMenu" instance=ExtResource("1_gcivb")] script = ExtResource("2_oof6u") -[node name="ResetGameControl" parent="." index="3" instance=ExtResource("3_gss4d")] +[node name="Inputs" parent="." index="0" instance=ExtResource("4_grbel")] +layout_mode = 2 + +[node name="ResetGameControl" parent="." index="4" instance=ExtResource("3_gss4d")] layout_mode = 2 [connection signal="reset_confirmed" from="ResetGameControl" to="." method="_on_reset_game_control_reset_confirmed"] diff --git a/player_controller/PlayerController.tscn b/player_controller/PlayerController.tscn index 46f99a9e..5f2b983d 100644 --- a/player_controller/PlayerController.tscn +++ b/player_controller/PlayerController.tscn @@ -73,7 +73,7 @@ DoubleJumpGravityLesseningFactor = 1.5 MegaJumpStartVelocity = 30.0 MegaJumpHangTimeInFrames = 12 MegaJumpGravityLesseningFactor = 1.2 -WallJumpStartVelocity = 8.0 +WallJumpStartVelocity = 12.0 MaxNumberOfEmpoweredActions = 3 SimpleDashStrength = 15.0 PoweredDashStrength = 30.0 @@ -194,6 +194,7 @@ ThrowForce = 15.0 StraightThrowDuration = 0.05 [node name="DashIndicator" type="Node3D" parent="."] +visible = false [node name="DashIndicatorMesh" type="MeshInstance3D" parent="DashIndicator"] transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0, 0, -1) @@ -241,7 +242,7 @@ size_flags_vertical = 0 [node name="DashesLabel" type="Label" parent="UI/MarginContainer/VBoxContainer"] layout_mode = 2 -text = "Dashes" +text = "Empowered actions" [node name="HBoxContainer" type="HBoxContainer" parent="UI/MarginContainer/VBoxContainer"] custom_minimum_size = Vector2(0, 30) @@ -626,6 +627,12 @@ delay_in_seconds = "0.0" script = ExtResource("26_infe6") initial_state = NodePath("Hugging") +[node name="OnDash" type="Node" parent="StateChart/Root/Movement/OnWall"] +script = ExtResource("28_n7qhm") +to = NodePath("../../Dashing/Dash") +event = &"dash" +delay_in_seconds = "0.0" + [node name="OnGrounded" type="Node" parent="StateChart/Root/Movement/OnWall"] script = ExtResource("28_n7qhm") to = NodePath("../../Grounded") @@ -671,7 +678,7 @@ delay_in_seconds = "0.0" [node name="OnDrop" type="Node" parent="StateChart/Root/Movement/OnWall/Hugging"] script = ExtResource("28_n7qhm") to = NodePath("../../HugCanceled") -event = &"dash" +event = &"__unused_dash" delay_in_seconds = "0.0" [node name="Hanging" type="Node" parent="StateChart/Root/Movement/OnWall"] diff --git a/player_controller/Scripts/PlayerController.cs b/player_controller/Scripts/PlayerController.cs index f8c66136..7b878a85 100644 --- a/player_controller/Scripts/PlayerController.cs +++ b/player_controller/Scripts/PlayerController.cs @@ -8,6 +8,13 @@ using RustyOptions; public partial class PlayerController : CharacterBody3D { + public enum AllowedInputs + { + All, + MoveCamera, + None, + } + // User API to important child nodes. public HeadSystem HeadSystem; public Bobbing Bobbing; @@ -44,7 +51,7 @@ public partial class PlayerController : CharacterBody3D private float _inputRotateY; private float _inputRotateFloorplane; - private int _framesSinceJumpAtApex = 0; + private int _framesSinceJumpAtApex; // Timers private Timer _timeScaleAimInAirTimer; @@ -158,12 +165,14 @@ public partial class PlayerController : CharacterBody3D PlayerUi.SetNumberOfDashesLeft(value); } } - public bool TutorialDone { get; set; } = false; + public bool TutorialDone { get; set; } + + public AllowedInputs CurrentlyAllowedInputs { get; set; } = AllowedInputs.All; private bool _canDashAirborne = true; private bool _isWallJumpAvailable = true; private bool _canDash = true; - private bool _shouldMantleOnDashEnded = false; + private bool _shouldMantleOnDashEnded; private StateChart _playerState; @@ -198,20 +207,8 @@ public partial class PlayerController : CharacterBody3D public override void _Ready() { - var config = new ConfigFile(); + LoadSettings(); - // Load data from a file. - Error err = config.Load("user://config.cfg"); - - // If the file didn't load, ignore it. - if (err != Error.Ok) - { - throw new Exception("Couldn't load config.cfg"); - } - - _lookSensitivityMultiplier = (float) config.GetValue("InputSettings", "LookSensitivity", 1.0f); - _headBobbingMultiplier = (float) config.GetValue("InputSettings", "HeadBobbingWhileWalking", 1.0f); - _fovChangeMultiplier = (float) config.GetValue("InputSettings", "FovChangeWithSpeed", 1.0f); /////////////////////////// // Getting components ///// /////////////////////////// @@ -385,10 +382,40 @@ public partial class PlayerController : CharacterBody3D _onMegajumpFromWall.Taken += OnMegajumpFromWall; } + public void SetAllowedInputsAll() + { + CurrentlyAllowedInputs = AllowedInputs.All; + } + public void SetAllowedInputsMoveCamera() + { + CurrentlyAllowedInputs = AllowedInputs.MoveCamera; + } + public void SetAllowedInputsNone() + { + CurrentlyAllowedInputs = AllowedInputs.None; + } + + public void LoadSettings() + { + var config = new ConfigFile(); + + // Load data from a file. + Error err = config.Load("user://config.cfg"); + + // If the file didn't load, ignore it. + if (err != Error.Ok) + { + throw new Exception("Couldn't load config.cfg"); + } + + _lookSensitivityMultiplier = (float) config.GetValue("InputSettings", "LookSensitivity", 1.0f); + _headBobbingMultiplier = (float) config.GetValue("InputSettings", "HeadBobbingWhileWalking", 1.0f); + _fovChangeMultiplier = (float) config.GetValue("InputSettings", "FovChangeWithSpeed", 1.0f); + } + public void OnTutorialDone(Node3D _) { TutorialDone = true; - GD.Print("tutorial done"); } public void OnWallDetected() @@ -476,6 +503,7 @@ public partial class PlayerController : CharacterBody3D } public void OnDoubleJumpStarted() { + _canDash = true; OnJumpStarted(DoubleJumpStartVelocity); } public void OnMegaJumpStarted() @@ -508,7 +536,10 @@ public partial class PlayerController : CharacterBody3D var wallNormal = WallHugSystem.GetWallNormal().UnwrapOr(Vector3.Up); var jumpVector = wallNormal * jumpStrength; - SetHorizontalVelocity(new Vector2(jumpVector.X, jumpVector.Z)); + var currentHorizontalVelocity = new Vector2(Velocity.X, Velocity.Z); + var wallJumpHorizontalVelocity = new Vector2(jumpVector.X, jumpVector.Z); + + SetHorizontalVelocity(currentHorizontalVelocity + wallJumpHorizontalVelocity);; } public void OnJumpFromWall() { @@ -661,11 +692,11 @@ public partial class PlayerController : CharacterBody3D } public void OnInputEmpowerDown() { - _playerState.SendEvent("empower_down"); + // _playerState.SendEvent("empower_down"); } public void OnInputEmpowerReleased() { - _playerState.SendEvent("empower_released"); + // _playerState.SendEvent("empower_released"); } public void OnInputDashPressed() { @@ -747,11 +778,7 @@ public partial class PlayerController : CharacterBody3D public void DashToFlyingWeaponTweenEnded() { - // Get the weapon back - GetTree().GetRoot().RemoveChild(WeaponRoot); - AddChild(WeaponRoot); - WeaponRoot.SetGlobalPosition(GlobalPosition); - WeaponSystem.ResetWeapon(); + RecoverWeapon(); var vel = _dashDirection * PostDashSpeed; SetVelocity(vel); @@ -774,6 +801,14 @@ public partial class PlayerController : CharacterBody3D var dashTween = CreatePositionTween(dashLocation, AimedDashTime); dashTween.Finished += DashToPlantedWeaponTweenEnded; } + + public void RecoverWeapon() + { + GetTree().GetRoot().RemoveChild(WeaponRoot); + AddChild(WeaponRoot); + WeaponRoot.SetGlobalPosition(GlobalPosition); + WeaponSystem.ResetWeapon(); + } public void DashToPlantedWeaponTweenEnded() { @@ -782,12 +817,8 @@ public partial class PlayerController : CharacterBody3D var isPlantedUnderPlatform = WeaponSystem.IsPlantedUnderPlatform(); var shouldDashToHanging = isPlantedOnWall || isPlantedUnderPlatform; - // Get the weapon back - GetTree().GetRoot().RemoveChild(WeaponRoot); - AddChild(WeaponRoot); - WeaponRoot.SetGlobalPosition(GlobalPosition); - WeaponSystem.ResetWeapon(); - + RecoverWeapon(); + var resultingEvent = shouldDashToHanging ? "to_planted" : "dash_finished"; _playerState.SendEvent(resultingEvent); } @@ -976,7 +1007,7 @@ public partial class PlayerController : CharacterBody3D IsCapsuleHeightLessThanNormal = CapsuleCollider.IsCapsuleHeightLessThanNormal(), CurrentSpeedGreaterThanWalkSpeed = false, IsCrouchingHeight = CapsuleCollider.IsCrouchingHeight(), - Delta = (float)delta, + Delta = delta, FloorMaxAngle = FloorMaxAngle, GlobalPositionFromDriver = GlobalPosition, Velocity = Velocity, diff --git a/systems/ui/tutorial_controller.gd b/systems/ui/tutorial_controller.gd index acefa8a6..e649a1be 100644 --- a/systems/ui/tutorial_controller.gd +++ b/systems/ui/tutorial_controller.gd @@ -10,14 +10,9 @@ var active_tutorial: Control @onready var tuto_move_and_look: VBoxContainer = %TutoMoveAndLook @onready var tuto_mantle_up: HBoxContainer = %TutoMantleUp -@onready var tuto_jump: HBoxContainer = %TutoJump -@onready var tuto_double_jump: HBoxContainer = %TutoDoubleJump @onready var tuto_wall_jump: HBoxContainer = %TutoWallJump -@onready var tuto_dash: HBoxContainer = %TutoDash @onready var tuto_dash_weapon: HBoxContainer = %TutoDashWeapon @onready var tuto_weapon_throw: HBoxContainer = %TutoWeaponThrow -@onready var tuto_empowered_dash: HBoxContainer = %TutoEmpoweredDash -@onready var tuto_empowered_jump: HBoxContainer = %TutoEmpoweredJump @onready var tuto_enjoy: HBoxContainer = %TutoEnjoy @@ -39,18 +34,9 @@ func handle_new_tutorial(tuto: Control) -> void: func _on_tuto_mantle_body_entered(body: Node3D) -> void: handle_new_tutorial(tuto_mantle_up) -func _on_tuto_jump_body_entered(body: Node3D) -> void: - handle_new_tutorial(tuto_jump) - -func _on_tuto_double_jump_body_entered(body: Node3D) -> void: - handle_new_tutorial(tuto_double_jump) - func _on_tuto_wall_jump_body_entered(body: Node3D) -> void: handle_new_tutorial(tuto_wall_jump) -func _on_tuto_dash_body_entered(body: Node3D) -> void: - handle_new_tutorial(tuto_dash) - func _on_tuto_done_area_body_entered(body: Node3D) -> void: handle_new_tutorial(tuto_dash_weapon) @@ -60,12 +46,6 @@ func _on_weapon_retrieved_body_entered(body: Node3D) -> void: func _on_tuto_weapon_throw_body_entered(body: Node3D) -> void: handle_new_tutorial(tuto_weapon_throw) -func _on_tuto_empowered_dash_body_entered(body: Node3D) -> void: - handle_new_tutorial(tuto_empowered_dash) - -func _on_tuto_empowered_jump_body_entered(body: Node3D) -> void: - handle_new_tutorial(tuto_empowered_jump) - func _on_tuto_enjoy_body_entered(body: Node3D) -> void: handle_new_tutorial(tuto_enjoy)