Files
gamedev-the-steward/player/PlayerInteractionResult.gd
T
2026-08-12 21:16:15 +02:00

60 lines
1.3 KiB
GDScript

class_name PlayerInteractionResult
extends RefCounted
const KIND_ANIMAL := &"animal"
const KIND_RESOURCE := &"resource"
const KIND_PANTRY := &"pantry"
const KIND_STORAGE_DEPOSIT := &"storage_deposit"
const KIND_GUARD := &"guard"
const KIND_STUDY := &"study"
const KIND_DIALOGUE := &"dialogue"
var kind: StringName
var action_id: StringName
var target_id: StringName
var display_name: String
var prompt_text: String
var detail_text: String
var blocked_reason: String
var target_node: Node
func _init(
interaction_kind: StringName,
interaction_action_id: StringName,
interaction_target_id: StringName,
interaction_display_name: String,
interaction_prompt_text: String,
interaction_detail_text: String,
interaction_target_node: Node,
interaction_blocked_reason := ""
) -> void:
kind = interaction_kind
action_id = interaction_action_id
target_id = interaction_target_id
display_name = interaction_display_name
prompt_text = interaction_prompt_text
detail_text = interaction_detail_text
target_node = interaction_target_node
blocked_reason = interaction_blocked_reason
func is_available() -> bool:
return blocked_reason.is_empty()
func cache_key() -> String:
return (
"|"
. join(
[
String(kind),
String(action_id),
String(target_id),
prompt_text,
detail_text,
blocked_reason,
]
)
)