Separated events from variables and adjusted test scene

pull/19/head
kziolkowski 3 months ago
parent 080ebaae47
commit c96e6da78e

@ -12,42 +12,34 @@
[sub_resource type="Resource" id="Resource_w535h"] [sub_resource type="Resource" id="Resource_w535h"]
script = ExtResource("1_hr3vo") script = ExtResource("1_hr3vo")
overrides = {}
[sub_resource type="Resource" id="Resource_j3dy5"] [sub_resource type="Resource" id="Resource_j3dy5"]
script = ExtResource("1_hr3vo") script = ExtResource("1_hr3vo")
scene = ExtResource("2_cpmol") scene = ExtResource("2_cpmol")
overrides = {}
[sub_resource type="Resource" id="Resource_d5o1r"] [sub_resource type="Resource" id="Resource_d5o1r"]
script = ExtResource("1_hr3vo") script = ExtResource("1_hr3vo")
scene = ExtResource("3_12uyf") scene = ExtResource("3_12uyf")
overrides = {}
[sub_resource type="Resource" id="Resource_g7mor"] [sub_resource type="Resource" id="Resource_g7mor"]
script = ExtResource("1_hr3vo") script = ExtResource("1_hr3vo")
scene = ExtResource("4_ncyk4") scene = ExtResource("4_ncyk4")
overrides = {}
[sub_resource type="Resource" id="Resource_wgjgg"] [sub_resource type="Resource" id="Resource_wgjgg"]
script = ExtResource("1_hr3vo") script = ExtResource("1_hr3vo")
scene = ExtResource("5_qg2g4") scene = ExtResource("5_qg2g4")
overrides = {}
[sub_resource type="Resource" id="Resource_45hxc"] [sub_resource type="Resource" id="Resource_45hxc"]
script = ExtResource("1_hr3vo") script = ExtResource("1_hr3vo")
scene = ExtResource("6_c5ex4") scene = ExtResource("6_c5ex4")
overrides = {}
[sub_resource type="Resource" id="Resource_c53vn"] [sub_resource type="Resource" id="Resource_c53vn"]
script = ExtResource("1_hr3vo") script = ExtResource("1_hr3vo")
scene = ExtResource("7_bopa1") scene = ExtResource("7_bopa1")
overrides = {}
[sub_resource type="Resource" id="Resource_n6k7j"] [sub_resource type="Resource" id="Resource_n6k7j"]
script = ExtResource("1_hr3vo") script = ExtResource("1_hr3vo")
scene = ExtResource("8_oycnw") scene = ExtResource("8_oycnw")
overrides = {}
[resource] [resource]
script = ExtResource("9_i6i1n") script = ExtResource("9_i6i1n")
@ -63,6 +55,4 @@ layer_info = {
"15": SubResource("Resource_c53vn"), "15": SubResource("Resource_c53vn"),
"16": SubResource("Resource_n6k7j") "16": SubResource("Resource_n6k7j")
} }
base_overrides = {}
layers = Array[ExtResource("1_hr3vo")]([])
metadata/_latest_layer = "" metadata/_latest_layer = ""

@ -22,17 +22,14 @@ overrides = {
[sub_resource type="Resource" id="Resource_awdqn"] [sub_resource type="Resource" id="Resource_awdqn"]
script = ExtResource("1_kc0s3") script = ExtResource("1_kc0s3")
scene = ExtResource("2_wjopr") scene = ExtResource("2_wjopr")
overrides = {}
[sub_resource type="Resource" id="Resource_5pou4"] [sub_resource type="Resource" id="Resource_5pou4"]
script = ExtResource("1_kc0s3") script = ExtResource("1_kc0s3")
scene = ExtResource("3_depsi") scene = ExtResource("3_depsi")
overrides = {}
[sub_resource type="Resource" id="Resource_6xrvb"] [sub_resource type="Resource" id="Resource_6xrvb"]
script = ExtResource("1_kc0s3") script = ExtResource("1_kc0s3")
scene = ExtResource("4_wy5ku") scene = ExtResource("4_wy5ku")
overrides = {}
[sub_resource type="Resource" id="Resource_k1327"] [sub_resource type="Resource" id="Resource_k1327"]
script = ExtResource("1_kc0s3") script = ExtResource("1_kc0s3")
@ -55,7 +52,6 @@ overrides = {
[sub_resource type="Resource" id="Resource_qtijl"] [sub_resource type="Resource" id="Resource_qtijl"]
script = ExtResource("1_kc0s3") script = ExtResource("1_kc0s3")
scene = ExtResource("6_iipq0") scene = ExtResource("6_iipq0")
overrides = {}
[sub_resource type="Resource" id="Resource_nalij"] [sub_resource type="Resource" id="Resource_nalij"]
script = ExtResource("1_kc0s3") script = ExtResource("1_kc0s3")
@ -72,17 +68,14 @@ overrides = {
[sub_resource type="Resource" id="Resource_ymn1b"] [sub_resource type="Resource" id="Resource_ymn1b"]
script = ExtResource("1_kc0s3") script = ExtResource("1_kc0s3")
scene = ExtResource("8_4ig6v") scene = ExtResource("8_4ig6v")
overrides = {}
[sub_resource type="Resource" id="Resource_8j3qh"] [sub_resource type="Resource" id="Resource_8j3qh"]
script = ExtResource("1_kc0s3") script = ExtResource("1_kc0s3")
scene = ExtResource("9_gni8k") scene = ExtResource("9_gni8k")
overrides = {}
[sub_resource type="Resource" id="Resource_uu1x2"] [sub_resource type="Resource" id="Resource_uu1x2"]
script = ExtResource("1_kc0s3") script = ExtResource("1_kc0s3")
scene = ExtResource("6_iipq0") scene = ExtResource("6_iipq0")
overrides = {}
[resource] [resource]
script = ExtResource("10_l174f") script = ExtResource("10_l174f")
@ -100,6 +93,4 @@ layer_info = {
"17": SubResource("Resource_8j3qh"), "17": SubResource("Resource_8j3qh"),
"18": SubResource("Resource_uu1x2") "18": SubResource("Resource_uu1x2")
} }
base_overrides = {}
layers = Array[ExtResource("1_kc0s3")]([])
metadata/_latest_layer = "13" metadata/_latest_layer = "13"

@ -24,17 +24,14 @@ overrides = {
[sub_resource type="Resource" id="Resource_uxnk3"] [sub_resource type="Resource" id="Resource_uxnk3"]
script = ExtResource("1_0jwhi") script = ExtResource("1_0jwhi")
scene = ExtResource("2_8wrfq") scene = ExtResource("2_8wrfq")
overrides = {}
[sub_resource type="Resource" id="Resource_ihoat"] [sub_resource type="Resource" id="Resource_ihoat"]
script = ExtResource("1_0jwhi") script = ExtResource("1_0jwhi")
scene = ExtResource("3_t7aeg") scene = ExtResource("3_t7aeg")
overrides = {}
[sub_resource type="Resource" id="Resource_pw0bl"] [sub_resource type="Resource" id="Resource_pw0bl"]
script = ExtResource("1_0jwhi") script = ExtResource("1_0jwhi")
scene = ExtResource("4_85y6g") scene = ExtResource("4_85y6g")
overrides = {}
[sub_resource type="Resource" id="Resource_lfav5"] [sub_resource type="Resource" id="Resource_lfav5"]
script = ExtResource("1_0jwhi") script = ExtResource("1_0jwhi")
@ -58,7 +55,6 @@ overrides = {
[sub_resource type="Resource" id="Resource_clhbu"] [sub_resource type="Resource" id="Resource_clhbu"]
script = ExtResource("1_0jwhi") script = ExtResource("1_0jwhi")
scene = ExtResource("6_i6h15") scene = ExtResource("6_i6h15")
overrides = {}
[sub_resource type="Resource" id="Resource_umvdi"] [sub_resource type="Resource" id="Resource_umvdi"]
script = ExtResource("1_0jwhi") script = ExtResource("1_0jwhi")
@ -75,17 +71,14 @@ overrides = {
[sub_resource type="Resource" id="Resource_ci2ul"] [sub_resource type="Resource" id="Resource_ci2ul"]
script = ExtResource("1_0jwhi") script = ExtResource("1_0jwhi")
scene = ExtResource("8_h83v4") scene = ExtResource("8_h83v4")
overrides = {}
[sub_resource type="Resource" id="Resource_sadu5"] [sub_resource type="Resource" id="Resource_sadu5"]
script = ExtResource("1_0jwhi") script = ExtResource("1_0jwhi")
scene = ExtResource("9_4c2uo") scene = ExtResource("9_4c2uo")
overrides = {}
[sub_resource type="Resource" id="Resource_0jwhi"] [sub_resource type="Resource" id="Resource_0jwhi"]
script = ExtResource("1_0jwhi") script = ExtResource("1_0jwhi")
scene = ExtResource("6_i6h15") scene = ExtResource("6_i6h15")
overrides = {}
[resource] [resource]
script = ExtResource("10_e3ue2") script = ExtResource("10_e3ue2")
@ -103,6 +96,4 @@ layer_info = {
"17": SubResource("Resource_sadu5"), "17": SubResource("Resource_sadu5"),
"18": SubResource("Resource_0jwhi") "18": SubResource("Resource_0jwhi")
} }
base_overrides = {}
layers = Array[ExtResource("1_0jwhi")]([])
metadata/_latest_layer = "13" metadata/_latest_layer = "13"

@ -121,7 +121,6 @@ directories/tres_directory={
"8_goto_bed": "res://resources/quests/demo/8_goto_bed.tres", "8_goto_bed": "res://resources/quests/demo/8_goto_bed.tres",
"9_talk_to_chuga": "res://resources/quests/demo/9_talk_to_chuga.tres", "9_talk_to_chuga": "res://resources/quests/demo/9_talk_to_chuga.tres",
"Babushka_NPC_Namebox_background": "res://dialog/Babushka_NPC_Namebox_background.tres", "Babushka_NPC_Namebox_background": "res://dialog/Babushka_NPC_Namebox_background.tres",
"ColorEvent": "res://resources/events/ColorEvent.tres",
"InputFieldsStyle": "res://addons/dialogic/Editor/Events/styles/InputFieldsStyle.tres", "InputFieldsStyle": "res://addons/dialogic/Editor/Events/styles/InputFieldsStyle.tres",
"MainTheme": "res://addons/dialogic/Editor/Theme/MainTheme.tres", "MainTheme": "res://addons/dialogic/Editor/Theme/MainTheme.tres",
"NPC_narrative": "res://dialog/NPC_narrative.tres", "NPC_narrative": "res://dialog/NPC_narrative.tres",
@ -133,7 +132,6 @@ directories/tres_directory={
"SectionPanel": "res://addons/dialogic/Editor/Events/styles/SectionPanel.tres", "SectionPanel": "res://addons/dialogic/Editor/Events/styles/SectionPanel.tres",
"SimpleButtonHover": "res://addons/dialogic/Editor/Events/styles/SimpleButtonHover.tres", "SimpleButtonHover": "res://addons/dialogic/Editor/Events/styles/SimpleButtonHover.tres",
"SimpleButtonNormal": "res://addons/dialogic/Editor/Events/styles/SimpleButtonNormal.tres", "SimpleButtonNormal": "res://addons/dialogic/Editor/Events/styles/SimpleButtonNormal.tres",
"TestStringEvent": "res://resources/events/TestStringEvent.tres",
"TextBackground": "res://addons/dialogic/Editor/Events/styles/TextBackground.tres", "TextBackground": "res://addons/dialogic/Editor/Events/styles/TextBackground.tres",
"TitleBgStylebox": "res://addons/dialogic/Editor/Common/TitleBgStylebox.tres", "TitleBgStylebox": "res://addons/dialogic/Editor/Common/TitleBgStylebox.tres",
"babushka_dialogue_style": "res://addons/babushkahelpers/babushka_dialogue_style.tres", "babushka_dialogue_style": "res://addons/babushkahelpers/babushka_dialogue_style.tres",
@ -146,6 +144,8 @@ directories/tres_directory={
"default_bus_layout": "res://audio/default_bus_layout.tres", "default_bus_layout": "res://audio/default_bus_layout.tres",
"default_stylebox": "res://addons/dialogic/Modules/DefaultLayoutParts/Layer_SpeakerPortraitTextbox/default_stylebox.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", "default_vn_style": "res://addons/dialogic/Modules/DefaultLayoutParts/Style_VN_Default/default_vn_style.tres",
"event_colorButtonClicked": "res://resources/low code/test/event_colorButtonClicked.tres",
"event_textLabelClicked": "res://resources/low code/test/event_textLabelClicked.tres",
"farming_equipment_glossary": "res://dialog/farming_equipment_glossary.tres", "farming_equipment_glossary": "res://dialog/farming_equipment_glossary.tres",
"hoe": "res://resources/items/hoe.tres", "hoe": "res://resources/items/hoe.tres",
"inventory_interactable_outline": "res://art/materials/inventory_interactable_outline.tres", "inventory_interactable_outline": "res://art/materials/inventory_interactable_outline.tres",
@ -168,6 +168,7 @@ directories/tres_directory={
"tomato": "res://resources/items/tomato.tres", "tomato": "res://resources/items/tomato.tres",
"tomato_seed": "res://resources/items/tomato_seed.tres", "tomato_seed": "res://resources/items/tomato_seed.tres",
"unselected_stylebox": "res://addons/dialogic/Editor/Events/styles/unselected_stylebox.tres", "unselected_stylebox": "res://addons/dialogic/Editor/Events/styles/unselected_stylebox.tres",
"var_ColorTestValue": "res://resources/low code/test/var_ColorTestValue.tres",
"vesna_style": "res://addons/dialogic/vesna_style.tres", "vesna_style": "res://addons/dialogic/vesna_style.tres",
"vn_textbox_default_panel": "res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_default_panel.tres", "vn_textbox_default_panel": "res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_default_panel.tres",
"vn_textbox_name_label_panel": "res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_name_label_panel.tres", "vn_textbox_name_label_panel": "res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_name_label_panel.tres",

@ -1,9 +0,0 @@
[gd_resource type="Resource" script_class="EventResource" load_steps=2 format=3 uid="uid://dc7e13hq47uma"]
[ext_resource type="Script" uid="uid://ci3t5mvnopntg" path="res://scripts/CSharp/Low Code/Events/EventResource.cs" id="1_ufwo5"]
[resource]
script = ExtResource("1_ufwo5")
_showLog = true
Payload = Color(0.84002423, 0.44197178, 0.5653889, 1)
metadata/_custom_type_script = "uid://ci3t5mvnopntg"

@ -1,9 +1,7 @@
[gd_resource type="Resource" script_class="EventResource" load_steps=2 format=3 uid="uid://bgfxakxxfmoxs"] [gd_resource type="Resource" script_class="EventResource" load_steps=2 format=3 uid="uid://bfw1dfd0r8avr"]
[ext_resource type="Script" uid="uid://ci3t5mvnopntg" path="res://scripts/CSharp/Low Code/Events/EventResource.cs" id="1_dd3u7"] [ext_resource type="Script" uid="uid://ci3t5mvnopntg" path="res://scripts/CSharp/Low Code/Events/EventResource.cs" id="1_yg3mc"]
[resource] [resource]
script = ExtResource("1_dd3u7") script = ExtResource("1_yg3mc")
_showLog = true
Payload = "This is a test."
metadata/_custom_type_script = "uid://ci3t5mvnopntg" metadata/_custom_type_script = "uid://ci3t5mvnopntg"

@ -0,0 +1,7 @@
[gd_resource type="Resource" script_class="EventResource" load_steps=2 format=3 uid="uid://boijwlxmth68v"]
[ext_resource type="Script" uid="uid://ci3t5mvnopntg" path="res://scripts/CSharp/Low Code/Events/EventResource.cs" id="1_vfqv2"]
[resource]
script = ExtResource("1_vfqv2")
metadata/_custom_type_script = "uid://ci3t5mvnopntg"

@ -0,0 +1,8 @@
[gd_resource type="Resource" script_class="VariableResource" load_steps=2 format=3 uid="uid://dpnre2bn041jm"]
[ext_resource type="Script" uid="uid://dtvx2cakx0bey" path="res://scripts/CSharp/Low Code/Variables/VariableResource.cs" id="1_h8big"]
[resource]
script = ExtResource("1_h8big")
Payload = Color(0, 0, 0, 1)
metadata/_custom_type_script = "uid://dtvx2cakx0bey"

@ -1,9 +1,10 @@
[gd_scene load_steps=6 format=3 uid="uid://6n3p3psmxovj"] [gd_scene load_steps=7 format=3 uid="uid://6n3p3psmxovj"]
[ext_resource type="Script" uid="uid://pqemey80frcq" path="res://scripts/CSharp/Low Code/Variables/VariableListener.cs" id="1_4h3ry"]
[ext_resource type="Script" uid="uid://bc6uaaxsx5k5p" path="res://scripts/CSharp/Low Code/Events/EventListener.cs" id="1_w5ykc"] [ext_resource type="Script" uid="uid://bc6uaaxsx5k5p" path="res://scripts/CSharp/Low Code/Events/EventListener.cs" id="1_w5ykc"]
[ext_resource type="Resource" uid="uid://dc7e13hq47uma" path="res://resources/events/ColorEvent.tres" id="2_4h3ry"] [ext_resource type="Resource" uid="uid://dpnre2bn041jm" path="res://resources/low code/test/var_ColorTestValue.tres" id="2_bj4kf"]
[ext_resource type="Script" uid="uid://b5dotkx17gvxg" path="res://scripts/CSharp/Low Code/Events/EventRaiser.cs" id="3_bj4kf"] [ext_resource type="Script" uid="uid://b5dotkx17gvxg" path="res://scripts/CSharp/Low Code/Events/EventRaiser.cs" id="3_bj4kf"]
[ext_resource type="Resource" uid="uid://bgfxakxxfmoxs" path="res://resources/events/TestStringEvent.tres" id="4_5dsed"] [ext_resource type="Resource" uid="uid://boijwlxmth68v" path="res://resources/low code/test/event_textLabelClicked.tres" id="5_4h3ry"]
[ext_resource type="Script" uid="uid://co1b320qemg1i" path="res://scripts/CSharp/Low Code/Randomizer/VariantRandomizer.cs" id="5_nm8dh"] [ext_resource type="Script" uid="uid://co1b320qemg1i" path="res://scripts/CSharp/Low Code/Randomizer/VariantRandomizer.cs" id="5_nm8dh"]
[node name="EventTest" type="Node2D"] [node name="EventTest" type="Node2D"]
@ -19,45 +20,48 @@ offset_bottom = 329.0
layout_mode = 0 layout_mode = 0
offset_right = 178.0 offset_right = 178.0
offset_bottom = 145.0 offset_bottom = 145.0
script = ExtResource("1_w5ykc") script = ExtResource("1_4h3ry")
_eventResources = Array[Object]([ExtResource("2_4h3ry")]) _variableResources = Array[Object]([ExtResource("2_bj4kf")])
_showLog = true
[node name="LabelTextEventButton" type="Button" parent="Control"] [node name="ChangeColorButton" type="Button" parent="Control"]
layout_mode = 0 layout_mode = 0
offset_left = 194.0
offset_top = 148.0 offset_top = 148.0
offset_right = 351.0 offset_right = 112.0
offset_bottom = 179.0 offset_bottom = 179.0
text = "Show Event Text text = "Change Color
" "
script = ExtResource("3_bj4kf") script = ExtResource("5_nm8dh")
_eventResources = Array[Object]([ExtResource("4_5dsed")]) _variableResource = ExtResource("2_bj4kf")
[node name="ChangeColorButton" type="Button" parent="Control"] [node name="LabelTextEventButton" type="Button" parent="Control"]
layout_mode = 0 layout_mode = 0
offset_left = 194.0
offset_top = 148.0 offset_top = 148.0
offset_right = 112.0 offset_right = 351.0
offset_bottom = 179.0 offset_bottom = 179.0
text = "Change Color text = "Show Event Text
" "
script = ExtResource("5_nm8dh") script = ExtResource("3_bj4kf")
_eventResource = ExtResource("2_4h3ry") _eventResources = Array[Object]([ExtResource("5_4h3ry")])
[node name="TestLabel" type="Label" parent="Control"] [node name="TestLabel" type="Label" parent="Control"]
visible = false
layout_mode = 0 layout_mode = 0
offset_left = 237.0 offset_left = 237.0
offset_top = 54.0 offset_top = 54.0
offset_right = 277.0 offset_right = 277.0
offset_bottom = 77.0 offset_bottom = 77.0
text = "[Dieser Text erscheint,
wenn das Event richtig
verknüpft ist]"
script = ExtResource("1_w5ykc") script = ExtResource("1_w5ykc")
_eventResources = Array[Object]([ExtResource("4_5dsed")]) _eventResources = Array[Object]([ExtResource("5_4h3ry")])
[node name="Camera2D" type="Camera2D" parent="."] [node name="Camera2D" type="Camera2D" parent="."]
position = Vector2(239, 110) position = Vector2(239, 110)
zoom = Vector2(3.4, 3.4) zoom = Vector2(3.4, 3.4)
[connection signal="NewEventPayload" from="Control/ColorRect" to="Control/ColorRect" method="set_color"] [connection signal="NewEventPayload" from="Control/ColorRect" to="Control/ColorRect" method="set_color"]
[connection signal="pressed" from="Control/LabelTextEventButton" to="Control/LabelTextEventButton" method="RaiseEvents"]
[connection signal="pressed" from="Control/ChangeColorButton" to="Control/ChangeColorButton" method="RandomizeEventResource"] [connection signal="pressed" from="Control/ChangeColorButton" to="Control/ChangeColorButton" method="RandomizeEventResource"]
[connection signal="EventRaisedWithPayload" from="Control/TestLabel" to="Control/TestLabel" method="set_text"] [connection signal="pressed" from="Control/LabelTextEventButton" to="Control/LabelTextEventButton" method="RaiseEvents"]
[connection signal="EventRaised" from="Control/TestLabel" to="Control/TestLabel" method="show"]

@ -23,27 +23,6 @@ public partial class EventListener : Node
/// </summary> /// </summary>
[Signal] public delegate void EventRaisedEventHandler(); [Signal] public delegate void EventRaisedEventHandler();
/// <summary>
/// The signal that is triggered when this listener is called by one of the <see cref="EventListener._eventResources"/>.
/// </summary>
[Signal] public delegate void EventRaisedWithPayloadEventHandler(Variant payload);
/// <summary>
/// A signal that is triggered when the payload of one of the <see cref="EventListener._eventResources"/> changed.
/// </summary>
[Signal] public delegate void PayloadChangedEventHandler(Variant payload, Variant oldPayload);
/// <summary>
/// A signal that is triggered when the payload of one of the <see cref="EventListener._eventResources"/> changed.
/// </summary>
[Signal] public delegate void NewEventPayloadEventHandler(Variant payload);
/// <summary>
/// A signal that is triggered when the payload of one of the <see cref="EventListener._eventResources"/> changed.
/// </summary>
[Signal] public delegate void OldEventPayloadEventHandler(Variant oldPayload);
/// <summary> /// <summary>
/// Subscribes to all <see cref="EventResource"/>s present in the <see cref="_eventResources"/> array. /// Subscribes to all <see cref="EventResource"/>s present in the <see cref="_eventResources"/> array.
/// <inheritdoc cref="Node._EnterTree"/> /// <inheritdoc cref="Node._EnterTree"/>
@ -72,24 +51,12 @@ public partial class EventListener : Node
/// Called by a <see cref="EventResource"/>s from the <see cref="_eventResources"/> array. /// Called by a <see cref="EventResource"/>s from the <see cref="_eventResources"/> array.
/// Propagates the event by emitting <see cref="EventRaised"/> signal. /// Propagates the event by emitting <see cref="EventRaised"/> signal.
/// </summary> /// </summary>
public void EventInvoked(Variant payload) public void EventInvoked()
{ {
if(_showLog) if(_showLog)
GD.Print("Event Raised on: " + Name); GD.Print("Event Raised on: " + Name);
EmitSignal(SignalName.EventRaised); EmitSignal(SignalName.EventRaised);
EmitSignal(SignalName.EventRaisedWithPayload, payload);
} }
/// <summary>
/// Called by a <see cref="EventResource"/>s from the <see cref="_eventResources"/> array.
/// Propagates the event by emitting <see cref="EventRaised"/> signal.
/// </summary>
public void EventPayloadChanged(Variant payload, Variant oldPayload)
{
if(_showLog)
GD.Print($"Calling Event Payload Changed Signals on: " + Name);
EmitSignal(SignalName.PayloadChanged, payload, oldPayload);
EmitSignal(SignalName.NewEventPayload, payload);
EmitSignal(SignalName.OldEventPayload, oldPayload);
}
} }

@ -15,24 +15,6 @@ public partial class EventResource : Resource
/// </summary> /// </summary>
[Export] private bool _showLog; [Export] private bool _showLog;
[Export]
public Variant Payload
{
get { return _payload; }
set
{
if (!_payload.Equals(value))
{
_lastPayload = _payload;
_payload = value;
ValueChangeHandler();
}
}
}
private Variant _payload;
private Variant _lastPayload;
/// <summary> /// <summary>
/// Raise-Button Call with Editor Export for easier debugging. /// Raise-Button Call with Editor Export for easier debugging.
/// Beware: This will only work with custom event listeners that register at edit-time. /// Beware: This will only work with custom event listeners that register at edit-time.
@ -74,22 +56,10 @@ public partial class EventResource : Resource
foreach (var eventListener in _eventListeners) foreach (var eventListener in _eventListeners)
{ {
eventListener.EventInvoked(_payload); eventListener.EventInvoked();
} }
} }
/// <summary>
/// Called when the Payload value changed.
/// </summary>
public void ValueChangeHandler()
{
if(_showLog)
GD.Print($"Event payload changed from {_lastPayload} to {_payload} on event resource: " + ResourcePath.GetFile().TrimSuffix(".tres"));
foreach (var eventListener in _eventListeners)
{
eventListener.EventPayloadChanged(_payload, _lastPayload);
}
}
} }

@ -1,5 +1,6 @@
using System; using System;
using Babushka.scripts.CSharp.Low_Code.Events; using Babushka.scripts.CSharp.Low_Code.Events;
using Babushka.scripts.CSharp.Low_Code.Variables;
using Godot; using Godot;
@ -13,23 +14,23 @@ public partial class VariantRandomizer : Node
/// <summary> /// <summary>
/// The event resource to work on. /// The event resource to work on.
/// </summary> /// </summary>
[Export] public EventResource _eventResource; [Export] public VariableResource _variableResource;
/// <summary> /// <summary>
/// Sets the payload of a randomizable event resource to a random value. /// Sets the payload of a randomizable event resource to a random value.
/// </summary> /// </summary>
public void RandomizeEventResource() public void RandomizeEventResource()
{ {
switch (_eventResource.Payload.VariantType) switch (_variableResource.Payload.VariantType)
{ {
case Variant.Type.Color: case Variant.Type.Color:
_eventResource.Payload= GetRandomColor(); _variableResource.Payload= GetRandomColor();
break; break;
case Variant.Type.Int: case Variant.Type.Int:
_eventResource.Payload= GetRandomInt(); _variableResource.Payload= GetRandomInt();
break; break;
case Variant.Type.Float: case Variant.Type.Float:
_eventResource.Payload= GetRandomFloat(); _variableResource.Payload= GetRandomFloat();
break; break;
} }
} }

@ -0,0 +1,69 @@
using Godot;
using Godot.Collections;
namespace Babushka.scripts.CSharp.Low_Code.Variables;
public partial class VariableListener : Node
{
/// <summary>
/// The event resource to listen to.
/// </summary>
[Export] private Array<VariableResource> _variableResources;
/// <summary>
/// Log to console when this event is being raised.
/// </summary>
[Export] private bool _showLog;
/// <summary>
/// A signal that is triggered when the payload of one of the <see cref="EventListener._eventResources"/> changed.
/// </summary>
[Signal] public delegate void PayloadChangedEventHandler(Variant payload, Variant oldPayload);
/// <summary>
/// A signal that is triggered when the payload of one of the <see cref="EventListener._eventResources"/> changed.
/// </summary>
[Signal] public delegate void NewEventPayloadEventHandler(Variant payload);
/// <summary>
/// A signal that is triggered when the payload of one of the <see cref="EventListener._eventResources"/> changed.
/// </summary>
[Signal] public delegate void OldEventPayloadEventHandler(Variant oldPayload);
/// <summary>
/// Subscribes to all <see cref="EventResource"/>s present in the <see cref="_eventResources"/> array.
/// <inheritdoc cref="Node._EnterTree"/>
/// </summary>
public override void _EnterTree()
{
foreach (var resource in _variableResources)
{
resource.RegisterListener(this);
}
}
/// <summary>
/// Unsubscribes from all <see cref="EventResource"/>s present in the <see cref="_eventResources"/> array.
/// <inheritdoc cref="Node._ExitTree"/>
/// </summary>
public override void _ExitTree()
{
foreach (var variableResource in _variableResources)
{
variableResource.UnregisterListener(this);
}
}
/// <summary>
/// Called by a <see cref="EventResource"/>s from the <see cref="_eventResources"/> array.
/// Propagates the event by emitting <see cref="EventRaised"/> signal.
/// </summary>
public void EventPayloadChanged(Variant payload, Variant oldPayload)
{
if(_showLog)
GD.Print($"Calling Event Payload Changed Signals on: " + Name);
EmitSignal(SignalName.PayloadChanged, payload, oldPayload);
EmitSignal(SignalName.NewEventPayload, payload);
EmitSignal(SignalName.OldEventPayload, oldPayload);
}
}

@ -0,0 +1,69 @@
using System.Collections.Generic;
using Godot;
namespace Babushka.scripts.CSharp.Low_Code.Variables;
[GlobalClass]
public partial class VariableResource : Resource
{
/// <summary>
/// Log into console when this event resource is adding or removing listeners, and when it's raised.
/// </summary>
[Export] private bool _showLog;
[Export]
public Variant Payload
{
get { return _payload; }
set
{
if (!_payload.Equals(value))
{
_lastPayload = _payload;
_payload = value;
ValueChangeHandler();
}
}
}
private Variant _payload;
private Variant _lastPayload;
private List<VariableListener> _varListeners = new ();
/// <summary>
/// Adds an EventListener to the calling list for this event.
/// </summary>
/// <param name="listener"></param>
public void RegisterListener(VariableListener listener)
{
if(_showLog)
GD.Print("Registering listener " + listener);
_varListeners.Add(listener);
}
/// <summary>
/// Removes an Eventlistener from the calling list for this event.
/// </summary>
/// <param name="listener"></param>
public void UnregisterListener(VariableListener listener)
{
if(_showLog)
GD.Print("Unregistering listener " + listener);
_varListeners.Remove(listener);
}
/// <summary>
/// Called when the Payload value changed.
/// </summary>
public void ValueChangeHandler()
{
if(_showLog)
GD.Print($"Event payload changed from {_lastPayload} to {_payload} on event resource: " + ResourcePath.GetFile().TrimSuffix(".tres"));
foreach (var eventListener in _varListeners)
{
eventListener.EventPayloadChanged(_payload, _lastPayload);
}
}
}
Loading…
Cancel
Save