diff --git a/Babushka.sln.DotSettings.user b/Babushka.sln.DotSettings.user
index 349fb41..2e4589b 100644
--- a/Babushka.sln.DotSettings.user
+++ b/Babushka.sln.DotSettings.user
@@ -8,6 +8,7 @@
ForceIncluded
ForceIncluded
ForceIncluded
+ ForceIncluded
ForceIncluded
ForceIncluded
ForceIncluded
diff --git a/project.godot b/project.godot
index baff4e1..c7180b7 100644
--- a/project.godot
+++ b/project.godot
@@ -144,6 +144,7 @@ directories/tres_directory={
"default_bus_layout": "res://audio/default_bus_layout.tres",
"default_stylebox": "res://addons/dialogic/Modules/DefaultLayoutParts/Layer_SpeakerPortraitTextbox/default_stylebox.tres",
"default_vn_style": "res://addons/dialogic/Modules/DefaultLayoutParts/Style_VN_Default/default_vn_style.tres",
+"events/test": "res://resources/events/test.tres",
"farming_equipment_glossary": "res://dialog/farming_equipment_glossary.tres",
"hoe": "res://resources/items/hoe.tres",
"inventory_interactable_outline": "res://art/materials/inventory_interactable_outline.tres",
diff --git a/resources/events/test.tres b/resources/events/test.tres
new file mode 100644
index 0000000..a01c70d
--- /dev/null
+++ b/resources/events/test.tres
@@ -0,0 +1,10 @@
+[gd_resource type="Resource" script_class="EventResource" load_steps=2 format=3 uid="uid://beed6ikqf46vk"]
+
+[ext_resource type="Script" uid="uid://ci3t5mvnopntg" path="res://scripts/CSharp/Events/EventResource.cs" id="1_6u8ge"]
+
+[resource]
+resource_name = "kafjhkj"
+script = ExtResource("1_6u8ge")
+Name = "kafjhkj"
+_showLog = true
+metadata/_custom_type_script = "uid://ci3t5mvnopntg"
diff --git a/scenes/Babushka_scene_indoor_vesnas_room.tscn b/scenes/Babushka_scene_indoor_vesnas_room.tscn
index d5097bf..c2b4f8d 100644
--- a/scenes/Babushka_scene_indoor_vesnas_room.tscn
+++ b/scenes/Babushka_scene_indoor_vesnas_room.tscn
@@ -98,7 +98,6 @@ _followNode = NodePath("../Vesna/CharacterBody2D")
[node name="BedInteraction" parent="." instance=ExtResource("8_phqdf")]
position = Vector2(-1429, 487)
-_useOutline = false
_useSprite = false
_id = 1
@@ -109,7 +108,6 @@ toStatus = 2
[node name="DoorInteraction" parent="." instance=ExtResource("8_phqdf")]
position = Vector2(777, 201)
-_useOutline = false
_useSprite = false
_id = 0
diff --git a/scenes/Babushka_scene_startMenu.tscn b/scenes/Babushka_scene_startMenu.tscn
index f4ea948..43f1fc7 100644
--- a/scenes/Babushka_scene_startMenu.tscn
+++ b/scenes/Babushka_scene_startMenu.tscn
@@ -1,8 +1,11 @@
-[gd_scene load_steps=4 format=3 uid="uid://c6wnoif01ltld"]
+[gd_scene load_steps=7 format=3 uid="uid://c6wnoif01ltld"]
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_fj2fh"]
+[ext_resource type="Script" uid="uid://b5dotkx17gvxg" path="res://scripts/CSharp/Events/EventCaller.cs" id="3_beyjr"]
[ext_resource type="Texture2D" uid="uid://c7atj6ohlmir3" path="res://art/ui/StartScreen/titlescreen.png" id="3_r0y6o"]
+[ext_resource type="Script" uid="uid://bc6uaaxsx5k5p" path="res://scripts/CSharp/Events/EventListener.cs" id="4_beyjr"]
[ext_resource type="Texture2D" uid="uid://du612t3xytly3" path="res://art/ui/StartScreen/babushkalog_white.png" id="4_dl0t1"]
+[ext_resource type="Resource" uid="uid://beed6ikqf46vk" path="res://resources/events/test.tres" id="5_5a78e"]
[node name="BabushkaSceneStartMenu" type="Node2D"]
script = ExtResource("1_fj2fh")
@@ -52,6 +55,24 @@ toggle_mode = true
text = "Quit
"
+[node name="Quit2" type="Button" parent="CanvasLayer/TextureRect"]
+custom_minimum_size = Vector2(100, 30)
+layout_mode = 1
+anchors_preset = 4
+anchor_top = 0.5
+anchor_bottom = 0.5
+offset_left = 205.0
+offset_top = 215.0
+offset_right = 405.0
+offset_bottom = 255.0
+grow_vertical = 2
+scale = Vector2(2, 2)
+toggle_mode = true
+text = "Test
+"
+script = ExtResource("3_beyjr")
+eventResource = ExtResource("5_5a78e")
+
[node name="Text" type="TextureRect" parent="CanvasLayer/TextureRect"]
layout_mode = 1
offset_left = 50.0
@@ -62,5 +83,11 @@ scale = Vector2(0.5, 0.5)
texture = ExtResource("4_dl0t1")
stretch_mode = 3
+[node name="Node" type="Node" parent="."]
+script = ExtResource("4_beyjr")
+_eventResource = ExtResource("5_5a78e")
+_showLog = true
+
[connection signal="pressed" from="CanvasLayer/TextureRect/Start" to="." method="LoadScene"]
[connection signal="pressed" from="CanvasLayer/TextureRect/Quit" to="." method="Quit"]
+[connection signal="pressed" from="CanvasLayer/TextureRect/Quit2" to="CanvasLayer/TextureRect/Quit2" method="RaiseEvent"]
diff --git a/scripts/CSharp/Events/EventCaller.cs b/scripts/CSharp/Events/EventCaller.cs
new file mode 100644
index 0000000..c6171f2
--- /dev/null
+++ b/scripts/CSharp/Events/EventCaller.cs
@@ -0,0 +1,13 @@
+using Godot;
+
+namespace Babushka.scripts.CSharp.Events;
+
+public partial class EventCaller : Node
+{
+ [Export] EventResource eventResource;
+
+ public void RaiseEvent()
+ {
+ eventResource.Raise();
+ }
+}
\ No newline at end of file
diff --git a/scripts/CSharp/Events/EventCaller.cs.uid b/scripts/CSharp/Events/EventCaller.cs.uid
new file mode 100644
index 0000000..5c245d3
--- /dev/null
+++ b/scripts/CSharp/Events/EventCaller.cs.uid
@@ -0,0 +1 @@
+uid://b5dotkx17gvxg
diff --git a/scripts/CSharp/Events/EventListener.cs b/scripts/CSharp/Events/EventListener.cs
new file mode 100644
index 0000000..54a6307
--- /dev/null
+++ b/scripts/CSharp/Events/EventListener.cs
@@ -0,0 +1,28 @@
+using Godot;
+
+namespace Babushka.scripts.CSharp.Events;
+
+public partial class EventListener : Node
+{
+ [Export] private EventResource _eventResource;
+ [Export] private bool _showLog;
+
+ [Signal] public delegate void EventRaisedEventHandler();
+
+ public override void _EnterTree()
+ {
+ _eventResource.RegisterListener(this);
+ }
+
+ public override void _ExitTree()
+ {
+ _eventResource.UnregisterListener(this);
+ }
+
+ public void RaiseEvent()
+ {
+ if(_showLog)
+ GD.Print("Event Raised on: " + Name);
+ EmitSignal(SignalName.EventRaised);
+ }
+}
\ No newline at end of file
diff --git a/scripts/CSharp/Events/EventListener.cs.uid b/scripts/CSharp/Events/EventListener.cs.uid
new file mode 100644
index 0000000..a140a15
--- /dev/null
+++ b/scripts/CSharp/Events/EventListener.cs.uid
@@ -0,0 +1 @@
+uid://bc6uaaxsx5k5p
diff --git a/scripts/CSharp/Events/EventResource.cs b/scripts/CSharp/Events/EventResource.cs
new file mode 100644
index 0000000..fe4771f
--- /dev/null
+++ b/scripts/CSharp/Events/EventResource.cs
@@ -0,0 +1,44 @@
+using System.Collections.Generic;
+using Godot;
+
+namespace Babushka.scripts.CSharp.Events;
+
+[GlobalClass] [Tool]
+public partial class EventResource : Resource
+{
+ [Export] private string Name
+ {
+ get { return ResourceName; }
+ set { ResourceName = value; }
+ }
+
+ [Export] private bool _showLog;
+ [ExportToolButton("Raise")] Callable _raiseAction => Callable.From(Raise);
+
+ private List _eventListeners = new ();
+
+ public void RegisterListener(EventListener listener)
+ {
+ if(_showLog)
+ GD.Print("Registering listener " + listener);
+ _eventListeners.Add(listener);
+ }
+
+ public void UnregisterListener(EventListener listener)
+ {
+ if(_showLog)
+ GD.Print("Unregistering listener " + listener);
+ _eventListeners.Remove(listener);
+ }
+
+ public void Raise()
+ {
+ if(_showLog)
+ GD.Print("Raising event: " + Name);
+
+ foreach (var eventListener in _eventListeners)
+ {
+ eventListener.RaiseEvent();
+ }
+ }
+}
\ No newline at end of file
diff --git a/scripts/CSharp/Events/EventResource.cs.uid b/scripts/CSharp/Events/EventResource.cs.uid
new file mode 100644
index 0000000..207618d
--- /dev/null
+++ b/scripts/CSharp/Events/EventResource.cs.uid
@@ -0,0 +1 @@
+uid://ci3t5mvnopntg