1 Commits

Author SHA1 Message Date
5ee7b125e3 feat: interactibles now emit signals and are parametrable through text and ids
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 7s
Create tag and build when new code gets to main / Export (push) Successful in 2m14s
2025-06-28 11:04:03 +02:00
8 changed files with 113 additions and 19 deletions

View File

@ -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]

View File

@ -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

View File

@ -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"]

View File

@ -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)

View File

@ -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"]

View File

@ -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:

View File

@ -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)

View File

@ -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