diff --git a/project.godot b/project.godot index 3c51380..87d6694 100644 --- a/project.godot +++ b/project.godot @@ -40,6 +40,7 @@ enabled=PackedStringArray("res://addons/godot_state_charts/plugin.cfg", "res://a [gui] theme/custom="res://template/resources/themes/gravity.tres" +theme/custom_font="uid://detctsm8oy251" [internationalization] diff --git a/scenes/interactibles/interactible.gd b/scenes/interactibles/interactible.gd index c426ab9..1dd9f32 100644 --- a/scenes/interactibles/interactible.gd +++ b/scenes/interactibles/interactible.gd @@ -1,17 +1,35 @@ extends Area2D class_name Interactible -@export_file("*.tscn") var scene_to_trigger : String +# @export_file("*.tscn") var scene_to_trigger: String +@export var message: String +@export var event: String + +signal event_triggered(event_id: String) @onready var rich_text_label: RichTextLabel = $RichTextLabel - +@onready var confirm_panel: Panel = %ConfirmPanel +@onready var message_box: Label = %MessageBox # Called when the node enters the scene tree for the first time. func _ready() -> void: rich_text_label.visible = false + confirm_panel.visible = false + message_box.text = message.to_upper() func _on_body_entered(body: Node2D) -> void: rich_text_label.visible = true func _on_body_exited(body: Node2D) -> void: rich_text_label.visible = false + confirm_panel.visible = false + +func show_confirm(): + confirm_panel.visible = true + +func _on_confirm_button_pressed() -> void: + confirm_panel.visible = false + event_triggered.emit(event) + +func _on_cancel_button_pressed() -> void: + confirm_panel.visible = false diff --git a/scenes/interactibles/interactible.tscn b/scenes/interactibles/interactible.tscn index 2eb479b..39dcfcc 100644 --- a/scenes/interactibles/interactible.tscn +++ b/scenes/interactibles/interactible.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=4 format=3 uid="uid://cjo7jm55bkqk3"] +[gd_scene load_steps=5 format=3 uid="uid://cjo7jm55bkqk3"] [ext_resource type="Script" uid="uid://dl18owt8pb11r" path="res://scenes/interactibles/interactible.gd" id="1_7dp4u"] [ext_resource type="FontFile" uid="uid://detctsm8oy251" path="res://assets/PansyHand/pansyhand.ttf" id="2_u3pc4"] +[ext_resource type="Script" uid="uid://1nf36h0gms3q" path="res://addons/maaacks_menus_template/base/scripts/capture_focus.gd" id="3_dyo5s"] [sub_resource type="CircleShape2D" id="CircleShape2D_oyfc1"] radius = 20.0 @@ -23,5 +24,70 @@ offset_bottom = 23.0 theme_override_fonts/normal_font = ExtResource("2_u3pc4") text = "INTERACT" +[node name="CenterContainer" type="CenterContainer" parent="."] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -140.0 +offset_top = -151.0 +offset_right = 140.0 +offset_bottom = -31.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +mouse_filter = 2 + +[node name="ConfirmPanel" type="Panel" parent="CenterContainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(280, 120) +layout_mode = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/ConfirmPanel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="MessageBox" type="Label" parent="CenterContainer/ConfirmPanel/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_font_sizes/font_size = 32 +text = "ENTRER DANS LA POSTE ?" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="CenterContainer" type="CenterContainer" parent="CenterContainer/ConfirmPanel/VBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/ConfirmPanel/VBoxContainer/CenterContainer"] +custom_minimum_size = Vector2(256, 0) +layout_mode = 2 +size_flags_vertical = 3 +theme_override_constants/separation = 16 +script = ExtResource("3_dyo5s") + +[node name="ConfirmButton" type="Button" parent="CenterContainer/ConfirmPanel/VBoxContainer/CenterContainer/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "FUCK YES" + +[node name="CancelButton" type="Button" parent="CenterContainer/ConfirmPanel/VBoxContainer/CenterContainer/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "OH HELL NAH" + [connection signal="body_entered" from="." to="." method="_on_body_entered"] [connection signal="body_exited" from="." to="." method="_on_body_exited"] +[connection signal="pressed" from="CenterContainer/ConfirmPanel/VBoxContainer/CenterContainer/HBoxContainer/ConfirmButton" to="." method="_on_confirm_button_pressed"] +[connection signal="pressed" from="CenterContainer/ConfirmPanel/VBoxContainer/CenterContainer/HBoxContainer/CancelButton" to="." method="_on_cancel_button_pressed"] diff --git a/scenes/main.gd b/scenes/main.gd index 58a5f9c..56d555b 100644 --- a/scenes/main.gd +++ b/scenes/main.gd @@ -11,3 +11,7 @@ func _ready() -> void: # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: pass + + +func _on_door_event_triggered(event_id: String) -> void: + print(event_id) diff --git a/scenes/main.tscn b/scenes/main.tscn index 9f05173..72b5357 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -736,17 +736,10 @@ tile_set = SubResource("TileSet_tefeu") tile_map_data = PackedByteArray("AAAXAAcAAAAJAAcAAAAXAAgAAAAJAAgAAAAYAAcAAAAKAAcAAAAWAAYAAAAIAAYAAAAWAAcAAAAIAAcAAAAWAAgAAAAIAAgAAAAXAAYAAAAJAAYAAAAYAAYAAAAKAAYAAAAYAAgAAAAKAAgAAAAaAAQAAAAOAAgAAAAUAAQAAAAOAAgAAAAUAAoAAAAOAAgAAAAaAAoAAAAOAAgAAAAcAAYAAAAIAAYAAAAcAAcAAAAIAAcAAAAcAAgAAAAIAAgAAAAdAAYAAAAJAAYAAAAdAAcAAAAJAAcAAAAdAAgAAAAJAAgAAAAeAAYAAAAKAAYAAAAeAAcAAAAKAAcAAAAeAAgAAAAKAAgAAAAgAAoAAAAOAAgAAAAgAAQAAAAOAAgAAAA=") tile_set = SubResource("TileSet_tefeu") -[node name="Player" parent="." instance=ExtResource("1_o5qli")] -position = Vector2(320, 202) -walk_speed = 100.0 - -[node name="DecoOverlay" type="TileMapLayer" parent="."] -tile_map_data = PackedByteArray("AAAXAAcAAAAJAAcAAAAXAAgAAAAJAAgAAAAYAAcAAAAKAAcAAAAWAAYAAAAIAAYAAAAWAAcAAAAIAAcAAAAWAAgAAAAIAAgAAAAXAAYAAAAJAAYAAAAYAAYAAAAKAAYAAAAYAAgAAAAKAAgAAAAaAAQAAAAOAAgAAAAUAAQAAAAOAAgAAAAUAAoAAAAOAAgAAAAaAAoAAAAOAAgAAAAcAAYAAAAIAAYAAAAcAAcAAAAIAAcAAAAcAAgAAAAIAAgAAAAdAAYAAAAJAAYAAAAdAAcAAAAJAAcAAAAdAAgAAAAJAAgAAAAeAAYAAAAKAAYAAAAeAAcAAAAKAAcAAAAeAAgAAAAKAAgAAAAgAAoAAAAOAAgAAAAgAAQAAAAOAAgAAAATAAUAAAAQAAgAAAATAAYAAAAQAAkAAAATAAcAAAAQAAgAAAATAAgAAAAQAAkAAAAaAAUAAAAQAAgAAAAaAAYAAAAQAAkAAAAaAAcAAAAQAAgAAAAaAAgAAAAQAAkAAAAgAAUAAAAQAAgAAAAgAAYAAAAQAAkAAAAgAAcAAAAQAAgAAAAgAAgAAAAQAAkAAAA=") -tile_set = SubResource("TileSet_tefeu") - [node name="WrongDoor" parent="." instance=ExtResource("5_tefeu")] position = Vector2(191, 104) -scene_to_trigger = "uid://domqqvcqatme5" +message = "entrer dans la poste ?" +event = "wrong" [node name="Sprite2D" type="Sprite2D" parent="WrongDoor"] texture = ExtResource("5_tbgi4") @@ -755,9 +748,21 @@ region_rect = Rect2(238, 170, 16, 16) [node name="RightDoor" parent="." instance=ExtResource("5_tefeu")] position = Vector2(424, 8) -scene_to_trigger = "uid://bhhphcagggc1" +message = "Entrer dans l'hotel ?" +event = "right" [node name="Sprite2D" type="Sprite2D" parent="RightDoor"] texture = ExtResource("5_tbgi4") region_enabled = true region_rect = Rect2(238, 170, 16, 16) + +[node name="Player" parent="." instance=ExtResource("1_o5qli")] +position = Vector2(320, 202) +walk_speed = 100.0 + +[node name="DecoOverlay" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAXAAcAAAAJAAcAAAAXAAgAAAAJAAgAAAAYAAcAAAAKAAcAAAAWAAYAAAAIAAYAAAAWAAcAAAAIAAcAAAAWAAgAAAAIAAgAAAAXAAYAAAAJAAYAAAAYAAYAAAAKAAYAAAAYAAgAAAAKAAgAAAAaAAQAAAAOAAgAAAAUAAQAAAAOAAgAAAAUAAoAAAAOAAgAAAAaAAoAAAAOAAgAAAAcAAYAAAAIAAYAAAAcAAcAAAAIAAcAAAAcAAgAAAAIAAgAAAAdAAYAAAAJAAYAAAAdAAcAAAAJAAcAAAAdAAgAAAAJAAgAAAAeAAYAAAAKAAYAAAAeAAcAAAAKAAcAAAAeAAgAAAAKAAgAAAAgAAoAAAAOAAgAAAAgAAQAAAAOAAgAAAATAAUAAAAQAAgAAAATAAYAAAAQAAkAAAATAAcAAAAQAAgAAAATAAgAAAAQAAkAAAAaAAUAAAAQAAgAAAAaAAYAAAAQAAkAAAAaAAcAAAAQAAgAAAAaAAgAAAAQAAkAAAAgAAUAAAAQAAgAAAAgAAYAAAAQAAkAAAAgAAcAAAAQAAgAAAAgAAgAAAAQAAkAAAA=") +tile_set = SubResource("TileSet_tefeu") + +[connection signal="event_triggered" from="WrongDoor" to="." method="_on_door_event_triggered"] +[connection signal="event_triggered" from="RightDoor" to="." method="_on_door_event_triggered"] diff --git a/scenes/player/player.gd b/scenes/player/player.gd index 42d317b..3154168 100644 --- a/scenes/player/player.gd +++ b/scenes/player/player.gd @@ -16,7 +16,7 @@ func _ready() -> void: func on_interact_triggered() -> void: if current_interactible == null: return - SceneLoader.load_scene(current_interactible.scene_to_trigger) + current_interactible.show_confirm() func _on_interactible_found(area: Area2D) -> void: diff --git a/scenes/player/player.tscn b/scenes/player/player.tscn index 0d9f8a7..1a7fde6 100644 --- a/scenes/player/player.tscn +++ b/scenes/player/player.tscn @@ -165,7 +165,6 @@ motion_mode = 1 script = ExtResource("1_dovo2") move = ExtResource("2_gmlin") interact = ExtResource("3_lvxji") -walk_speed = null [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2(0, 2) diff --git a/template/scenes/end_credits/end_credits.tscn b/template/scenes/end_credits/end_credits.tscn index 2aa17b5..577e797 100644 --- a/template/scenes/end_credits/end_credits.tscn +++ b/template/scenes/end_credits/end_credits.tscn @@ -1,9 +1,9 @@ [gd_scene load_steps=5 format=3 uid="uid://domqqvcqatme5"] -[ext_resource type="PackedScene" path="res://template/scenes/credits/scrolling_credits.tscn" id="1_dqbsw"] -[ext_resource type="Script" path="res://template/scenes/end_credits/end_credits.gd" id="2_jh5yp"] -[ext_resource type="PackedScene" path="res://addons/maaacks_menus_template/base/scenes/music_players/background_music_player.tscn" id="3_fichv"] -[ext_resource type="Script" path="res://addons/maaacks_menus_template/base/scripts/capture_focus.gd" id="4_4bbwp"] +[ext_resource type="PackedScene" uid="uid://bhhphcagggc1" path="res://template/scenes/credits/scrolling_credits.tscn" id="1_dqbsw"] +[ext_resource type="Script" uid="uid://din3un0r6wp1s" path="res://template/scenes/end_credits/end_credits.gd" id="2_jh5yp"] +[ext_resource type="PackedScene" uid="uid://bkcsjsk2ciff" path="res://addons/maaacks_menus_template/base/scenes/music_players/background_music_player.tscn" id="3_fichv"] +[ext_resource type="Script" uid="uid://1nf36h0gms3q" path="res://addons/maaacks_menus_template/base/scripts/capture_focus.gd" id="4_4bbwp"] [node name="EndCredits" instance=ExtResource("1_dqbsw")] script = ExtResource("2_jh5yp") @@ -11,6 +11,7 @@ main_menu_scene = "res://template/scenes/menus/main_menu/main_menu_with_animatio force_mouse_mode_visible = false [node name="BackgroundMusicPlayer" parent="." index="0" instance=ExtResource("3_fichv")] +bus = &"Master" [node name="BackgroundColor" type="ColorRect" parent="." index="1"] layout_mode = 1