feat: add emergent world foundations
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
class_name ActionOffer
|
||||
extends RefCounted
|
||||
|
||||
var _offer_id: StringName
|
||||
var _action_id: StringName
|
||||
var _target: WorldTargetHandle
|
||||
var _display_name: String
|
||||
var _enabled: bool
|
||||
var _rejection_reason: String
|
||||
var _parameters: Dictionary
|
||||
var _priority: float
|
||||
|
||||
|
||||
func _init(
|
||||
offer_id: StringName = &"",
|
||||
action_id: StringName = &"",
|
||||
target: WorldTargetHandle = null,
|
||||
display_name: String = "",
|
||||
enabled: bool = true,
|
||||
rejection_reason: String = "",
|
||||
parameters: Dictionary = {},
|
||||
priority: float = 0.0
|
||||
) -> void:
|
||||
_offer_id = offer_id
|
||||
_action_id = action_id
|
||||
_target = target
|
||||
_display_name = display_name
|
||||
_enabled = enabled
|
||||
_rejection_reason = rejection_reason
|
||||
_parameters = parameters.duplicate(true)
|
||||
_priority = priority
|
||||
|
||||
|
||||
func is_valid() -> bool:
|
||||
return (
|
||||
not _offer_id.is_empty()
|
||||
and not _action_id.is_empty()
|
||||
and _target != null
|
||||
and _target.is_well_formed()
|
||||
and is_finite(_priority)
|
||||
and not WorldTargetCapability._contains_object(_parameters)
|
||||
)
|
||||
|
||||
|
||||
func get_offer_id() -> StringName:
|
||||
return _offer_id
|
||||
|
||||
|
||||
func get_action_id() -> StringName:
|
||||
return _action_id
|
||||
|
||||
|
||||
func get_target() -> WorldTargetHandle:
|
||||
return _target
|
||||
|
||||
|
||||
func get_display_name() -> String:
|
||||
return _display_name
|
||||
|
||||
|
||||
func is_enabled() -> bool:
|
||||
return _enabled
|
||||
|
||||
|
||||
func get_rejection_reason() -> String:
|
||||
return _rejection_reason
|
||||
|
||||
|
||||
func get_parameters() -> Dictionary:
|
||||
return _parameters.duplicate(true)
|
||||
|
||||
|
||||
func get_priority() -> float:
|
||||
return _priority
|
||||
Reference in New Issue
Block a user