diff --git a/Code/Factories/TriggerActionFactory.cs b/Code/Factories/TriggerActionFactory.cs index a9c832f..78d7ec1 100644 --- a/Code/Factories/TriggerActionFactory.cs +++ b/Code/Factories/TriggerActionFactory.cs @@ -14,6 +14,7 @@ public class TriggerActionFactory UnlockDoorActionResource unlock => new UnlockDoorAction(unlock.TargetWorldId), SpawnEntityActionResource spawn => new SpawnEntityAction(spawn.ArchetypeId, spawn.SpawnerWorldId), DebugMessageActionResource debug => new DebugMessageAction(debug.Message), + OpenDoorActionResource open => new OpenDoorAction(open.TargetWorldId), _ => throw new ArgumentOutOfRangeException(nameof(resource), $"TriggerAction type {resource.GetType().Name} not recognized") }; diff --git a/Code/Resources/OpenDoorActionResource.cs b/Code/Resources/OpenDoorActionResource.cs new file mode 100644 index 0000000..b473c39 --- /dev/null +++ b/Code/Resources/OpenDoorActionResource.cs @@ -0,0 +1,9 @@ +using Godot; + +namespace CryptonymThunder.Code.Resources; + +[GlobalClass] +public partial class OpenDoorActionResource : TriggerActionResource +{ + [Export] public string TargetWorldId { get; set; } = "door_to_open"; +} \ No newline at end of file diff --git a/Code/Resources/OpenDoorActionResource.cs.uid b/Code/Resources/OpenDoorActionResource.cs.uid new file mode 100644 index 0000000..7e379bd --- /dev/null +++ b/Code/Resources/OpenDoorActionResource.cs.uid @@ -0,0 +1 @@ +uid://dngi4w4ae8wyr diff --git a/Scenes/game_world.tscn b/Scenes/game_world.tscn index ec600d4..6476ede 100644 --- a/Scenes/game_world.tscn +++ b/Scenes/game_world.tscn @@ -15,7 +15,7 @@ [ext_resource type="PackedScene" uid="uid://b1d2gc8goj6gx" path="res://Objects/green_door.tscn" id="13_00aki"] [ext_resource type="PackedScene" uid="uid://cww3lcsxldnt3" path="res://Objects/green_card_pickup.tscn" id="14_5qvjo"] [ext_resource type="PackedScene" uid="uid://bjbsk8nhi5e4i" path="res://Objects/green_door_button.tscn" id="15_g7kif"] -[ext_resource type="Script" uid="uid://cgsqrgdok7ovp" path="res://Code/Resources/UnlockDoorActionResource.cs" id="16_vpkaq"] +[ext_resource type="Script" uid="uid://dngi4w4ae8wyr" path="res://Code/Resources/OpenDoorActionResource.cs" id="16_vpkaq"] [ext_resource type="Script" uid="uid://c4csquqmqqqww" path="res://Code/Resources/LogicSequenceComponentResource.cs" id="17_df4ul"] [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_ucfah"] @@ -68,15 +68,15 @@ BaseValues = Dictionary[int, float]({ }) metadata/_custom_type_script = "uid://dc7wq2ij5kwj5" -[sub_resource type="Resource" id="Resource_q0a86"] +[sub_resource type="Resource" id="Resource_df4ul"] script = ExtResource("16_vpkaq") TargetWorldId = "green_door" -metadata/_custom_type_script = "uid://cgsqrgdok7ovp" +metadata/_custom_type_script = "uid://dngi4w4ae8wyr" [sub_resource type="Resource" id="Resource_3hp7m"] script = ExtResource("17_df4ul") RequiredChannels = Array[String](["green_door_button"]) -OnCompleteActions = Array[Resource]([SubResource("Resource_q0a86")]) +OnCompleteActions = Array[Resource]([SubResource("Resource_df4ul")]) metadata/_custom_type_script = "uid://c4csquqmqqqww" [node name="GameWorld" type="Node3D"]