/** * bt_check_agent_property.h * ============================================================================= * Copyright 2021-2023 Serhii Snitsaruk * * Use of this source code is governed by an MIT-style * license that can be found in the LICENSE file or at * https://opensource.org/licenses/MIT. * ============================================================================= */ #ifndef BT_CHECK_AGENT_PROPERTY #define BT_CHECK_AGENT_PROPERTY #include "../bt_condition.h" #include "modules/limboai/blackboard/bb_param/bb_variant.h" #include "modules/limboai/util/limbo_utility.h" #include "core/string/string_name.h" class BTCheckAgentProperty : public BTCondition { GDCLASS(BTCheckAgentProperty, BTCondition); TASK_CATEGORY(Conditions); private: StringName property; LimboUtility::CheckType check_type = LimboUtility::CheckType::CHECK_EQUAL; Ref value; protected: static void _bind_methods(); virtual String _generate_name() const override; virtual int _tick(double p_delta) override; public: void set_property(StringName p_prop); StringName get_property() const { return property; } void set_check_type(LimboUtility::CheckType p_check_type); LimboUtility::CheckType get_check_type() const { return check_type; } void set_value(Ref p_value); Ref get_value() const { return value; } virtual PackedStringArray get_configuration_warnings() const override; }; #endif // BT_CHECK_AGENT_PROPERTY