21 lines
721 B
GDScript
21 lines
721 B
GDScript
class_name InteractionAction
|
|
extends RefCounted
|
|
|
|
# 交互管理器使用的强类型动作数据,避免各交互物品以 Dictionary 约定字段。
|
|
var id: String = ""
|
|
var title: String = ""
|
|
var priority: int = 100
|
|
var distance: float = INF
|
|
var activate: Callable = Callable()
|
|
|
|
static func create(action_id: String, action_title: String, action_priority: int, callback: Callable) -> InteractionAction:
|
|
var action: InteractionAction = InteractionAction.new()
|
|
action.id = action_id
|
|
action.title = action_title
|
|
action.priority = action_priority
|
|
action.activate = callback
|
|
return action
|
|
|
|
func is_valid() -> bool:
|
|
return not id.strip_edges().is_empty() and not title.strip_edges().is_empty() and activate.is_valid()
|