Add OpenDoorActionResource and integrate into TriggerActionFactory

This commit is contained in:
2025-10-30 02:35:36 +01:00
parent 2c126cd7ea
commit 214d541c2b
4 changed files with 15 additions and 4 deletions

View File

@@ -14,6 +14,7 @@ public class TriggerActionFactory
UnlockDoorActionResource unlock => new UnlockDoorAction(unlock.TargetWorldId), UnlockDoorActionResource unlock => new UnlockDoorAction(unlock.TargetWorldId),
SpawnEntityActionResource spawn => new SpawnEntityAction(spawn.ArchetypeId, spawn.SpawnerWorldId), SpawnEntityActionResource spawn => new SpawnEntityAction(spawn.ArchetypeId, spawn.SpawnerWorldId),
DebugMessageActionResource debug => new DebugMessageAction(debug.Message), DebugMessageActionResource debug => new DebugMessageAction(debug.Message),
OpenDoorActionResource open => new OpenDoorAction(open.TargetWorldId),
_ => throw new ArgumentOutOfRangeException(nameof(resource), _ => throw new ArgumentOutOfRangeException(nameof(resource),
$"TriggerAction type {resource.GetType().Name} not recognized") $"TriggerAction type {resource.GetType().Name} not recognized")
}; };

View File

@@ -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";
}

View File

@@ -0,0 +1 @@
uid://dngi4w4ae8wyr

View File

@@ -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://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://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="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"] [ext_resource type="Script" uid="uid://c4csquqmqqqww" path="res://Code/Resources/LogicSequenceComponentResource.cs" id="17_df4ul"]
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_ucfah"] [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_ucfah"]
@@ -68,15 +68,15 @@ BaseValues = Dictionary[int, float]({
}) })
metadata/_custom_type_script = "uid://dc7wq2ij5kwj5" metadata/_custom_type_script = "uid://dc7wq2ij5kwj5"
[sub_resource type="Resource" id="Resource_q0a86"] [sub_resource type="Resource" id="Resource_df4ul"]
script = ExtResource("16_vpkaq") script = ExtResource("16_vpkaq")
TargetWorldId = "green_door" TargetWorldId = "green_door"
metadata/_custom_type_script = "uid://cgsqrgdok7ovp" metadata/_custom_type_script = "uid://dngi4w4ae8wyr"
[sub_resource type="Resource" id="Resource_3hp7m"] [sub_resource type="Resource" id="Resource_3hp7m"]
script = ExtResource("17_df4ul") script = ExtResource("17_df4ul")
RequiredChannels = Array[String](["green_door_button"]) RequiredChannels = Array[String](["green_door_button"])
OnCompleteActions = Array[Resource]([SubResource("Resource_q0a86")]) OnCompleteActions = Array[Resource]([SubResource("Resource_df4ul")])
metadata/_custom_type_script = "uid://c4csquqmqqqww" metadata/_custom_type_script = "uid://c4csquqmqqqww"
[node name="GameWorld" type="Node3D"] [node name="GameWorld" type="Node3D"]