BT*AgentProperty fixes
This commit is contained in:
parent
272824562b
commit
f286673dde
|
@ -11,8 +11,8 @@
|
||||||
|
|
||||||
#include "bt_set_agent_property.h"
|
#include "bt_set_agent_property.h"
|
||||||
|
|
||||||
void BTSetAgentProperty::set_property_name(StringName p_prop) {
|
void BTSetAgentProperty::set_property(StringName p_prop) {
|
||||||
property_name = p_prop;
|
property = p_prop;
|
||||||
emit_changed();
|
emit_changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,8 +29,8 @@ String BTSetAgentProperty::get_configuration_warning() const {
|
||||||
if (!warning.is_empty()) {
|
if (!warning.is_empty()) {
|
||||||
warning += "\n";
|
warning += "\n";
|
||||||
}
|
}
|
||||||
if (property_name == StringName()) {
|
if (property == StringName()) {
|
||||||
warning += "`property_name` should be assigned.\n";
|
warning += "`property` should be assigned.\n";
|
||||||
}
|
}
|
||||||
if (!value.is_valid()) {
|
if (!value.is_valid()) {
|
||||||
warning += "`value` should be assigned.\n";
|
warning += "`value` should be assigned.\n";
|
||||||
|
@ -39,30 +39,30 @@ String BTSetAgentProperty::get_configuration_warning() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
String BTSetAgentProperty::_generate_name() const {
|
String BTSetAgentProperty::_generate_name() const {
|
||||||
if (property_name == StringName()) {
|
if (property == StringName()) {
|
||||||
return "SetAgentProperty ???";
|
return "SetAgentProperty ???";
|
||||||
}
|
}
|
||||||
|
|
||||||
return vformat("Set agent.%s = %s", property_name,
|
return vformat("Set agent.%s = %s", property,
|
||||||
value.is_valid() ? Variant(value) : Variant("???"));
|
value.is_valid() ? Variant(value) : Variant("???"));
|
||||||
}
|
}
|
||||||
|
|
||||||
int BTSetAgentProperty::_tick(double p_delta) {
|
int BTSetAgentProperty::_tick(double p_delta) {
|
||||||
ERR_FAIL_COND_V_MSG(property_name == StringName(), FAILURE, "BTSetAgentProperty: `property_name` is not set.");
|
ERR_FAIL_COND_V_MSG(property == StringName(), FAILURE, "BTSetAgentProperty: `property` is not set.");
|
||||||
ERR_FAIL_COND_V_MSG(!value.is_valid(), FAILURE, "BTSetAgentProperty: `value` is not set.");
|
ERR_FAIL_COND_V_MSG(!value.is_valid(), FAILURE, "BTSetAgentProperty: `value` is not set.");
|
||||||
|
|
||||||
bool r_valid;
|
bool r_valid;
|
||||||
get_agent()->set(property_name, value->get_value(get_agent(), get_blackboard()), &r_valid);
|
get_agent()->set(property, value->get_value(get_agent(), get_blackboard()), &r_valid);
|
||||||
ERR_FAIL_COND_V_MSG(!r_valid, FAILURE, vformat("BTSetAgentProperty: Agent doesn't have property named \"%s\"", property_name));
|
ERR_FAIL_COND_V_MSG(!r_valid, FAILURE, vformat("BTSetAgentProperty: Agent doesn't have property named \"%s\"", property));
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BTSetAgentProperty::_bind_methods() {
|
void BTSetAgentProperty::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("set_property_name", "p_property_name"), &BTSetAgentProperty::set_property_name);
|
ClassDB::bind_method(D_METHOD("set_property", "p_property"), &BTSetAgentProperty::set_property);
|
||||||
ClassDB::bind_method(D_METHOD("get_property_name"), &BTSetAgentProperty::get_property_name);
|
ClassDB::bind_method(D_METHOD("get_property"), &BTSetAgentProperty::get_property);
|
||||||
ClassDB::bind_method(D_METHOD("set_value", "p_value"), &BTSetAgentProperty::set_value);
|
ClassDB::bind_method(D_METHOD("set_value", "p_value"), &BTSetAgentProperty::set_value);
|
||||||
ClassDB::bind_method(D_METHOD("get_value"), &BTSetAgentProperty::get_value);
|
ClassDB::bind_method(D_METHOD("get_value"), &BTSetAgentProperty::get_value);
|
||||||
|
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::STRING_NAME, "property_name"), "set_property_name", "get_property_name");
|
ADD_PROPERTY(PropertyInfo(Variant::STRING_NAME, "property"), "set_property", "get_property");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "value", PROPERTY_HINT_RESOURCE_TYPE, "BBVariant"), "set_value", "get_value");
|
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "value", PROPERTY_HINT_RESOURCE_TYPE, "BBVariant"), "set_value", "get_value");
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ class BTSetAgentProperty : public BTAction {
|
||||||
GDCLASS(BTSetAgentProperty, BTAction);
|
GDCLASS(BTSetAgentProperty, BTAction);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
StringName property_name;
|
StringName property;
|
||||||
Ref<BBVariant> value;
|
Ref<BBVariant> value;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -35,8 +35,8 @@ protected:
|
||||||
public:
|
public:
|
||||||
virtual String get_configuration_warning() const override;
|
virtual String get_configuration_warning() const override;
|
||||||
|
|
||||||
void set_property_name(StringName p_prop);
|
void set_property(StringName p_prop);
|
||||||
StringName get_property_name() const { return property_name; }
|
StringName get_property() const { return property; }
|
||||||
|
|
||||||
void set_value(Ref<BBVariant> p_value);
|
void set_value(Ref<BBVariant> p_value);
|
||||||
Ref<BBVariant> get_value() const { return value; }
|
Ref<BBVariant> get_value() const { return value; }
|
||||||
|
|
|
@ -15,8 +15,8 @@
|
||||||
|
|
||||||
#include "core/variant/callable.h"
|
#include "core/variant/callable.h"
|
||||||
|
|
||||||
void BTCheckAgentProperty::set_property_name(StringName p_prop) {
|
void BTCheckAgentProperty::set_property(StringName p_prop) {
|
||||||
property_name = p_prop;
|
property = p_prop;
|
||||||
emit_changed();
|
emit_changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,8 +38,8 @@ String BTCheckAgentProperty::get_configuration_warning() const {
|
||||||
if (!warning.is_empty()) {
|
if (!warning.is_empty()) {
|
||||||
warning += "\n";
|
warning += "\n";
|
||||||
}
|
}
|
||||||
if (property_name == StringName()) {
|
if (property == StringName()) {
|
||||||
warning += "`property_name` should be assigned.\n";
|
warning += "`property` should be assigned.\n";
|
||||||
}
|
}
|
||||||
if (!value.is_valid()) {
|
if (!value.is_valid()) {
|
||||||
warning += "`value` should be assigned.\n";
|
warning += "`value` should be assigned.\n";
|
||||||
|
@ -48,22 +48,22 @@ String BTCheckAgentProperty::get_configuration_warning() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
String BTCheckAgentProperty::_generate_name() const {
|
String BTCheckAgentProperty::_generate_name() const {
|
||||||
if (property_name == StringName()) {
|
if (property == StringName()) {
|
||||||
return "CheckAgentProperty ???";
|
return "CheckAgentProperty ???";
|
||||||
}
|
}
|
||||||
|
|
||||||
return vformat("Check if: agent.%s %s %s", property_name,
|
return vformat("Check if: agent.%s %s %s", property,
|
||||||
LimboUtility::get_singleton()->get_check_operator_string(check_type),
|
LimboUtility::get_singleton()->get_check_operator_string(check_type),
|
||||||
value.is_valid() ? Variant(value) : Variant("???"));
|
value.is_valid() ? Variant(value) : Variant("???"));
|
||||||
}
|
}
|
||||||
|
|
||||||
int BTCheckAgentProperty::_tick(double p_delta) {
|
int BTCheckAgentProperty::_tick(double p_delta) {
|
||||||
ERR_FAIL_COND_V_MSG(property_name == StringName(), FAILURE, "BTCheckAgentProperty: `property_name` is not set.");
|
ERR_FAIL_COND_V_MSG(property == StringName(), FAILURE, "BTCheckAgentProperty: `property` is not set.");
|
||||||
ERR_FAIL_COND_V_MSG(!value.is_valid(), FAILURE, "BTCheckAgentProperty: `value` is not set.");
|
ERR_FAIL_COND_V_MSG(!value.is_valid(), FAILURE, "BTCheckAgentProperty: `value` is not set.");
|
||||||
|
|
||||||
bool r_valid;
|
bool r_valid;
|
||||||
Variant left_value = get_agent()->get(property_name, &r_valid);
|
Variant left_value = get_agent()->get(property, &r_valid);
|
||||||
ERR_FAIL_COND_V_MSG(r_valid == false, FAILURE, vformat("BTCheckAgentProperty: Agent has no property named \"%s\"", property_name));
|
ERR_FAIL_COND_V_MSG(r_valid == false, FAILURE, vformat("BTCheckAgentProperty: Agent has no property named \"%s\"", property));
|
||||||
|
|
||||||
Variant right_value = value->get_value(get_agent(), get_blackboard());
|
Variant right_value = value->get_value(get_agent(), get_blackboard());
|
||||||
|
|
||||||
|
@ -71,14 +71,14 @@ int BTCheckAgentProperty::_tick(double p_delta) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void BTCheckAgentProperty::_bind_methods() {
|
void BTCheckAgentProperty::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("set_property_name", "p_property_name"), &BTCheckAgentProperty::set_property_name);
|
ClassDB::bind_method(D_METHOD("set_property", "p_property"), &BTCheckAgentProperty::set_property);
|
||||||
ClassDB::bind_method(D_METHOD("get_property_name"), &BTCheckAgentProperty::get_property_name);
|
ClassDB::bind_method(D_METHOD("get_property"), &BTCheckAgentProperty::get_property);
|
||||||
ClassDB::bind_method(D_METHOD("set_check_type", "p_check_type"), &BTCheckAgentProperty::set_check_type);
|
ClassDB::bind_method(D_METHOD("set_check_type", "p_check_type"), &BTCheckAgentProperty::set_check_type);
|
||||||
ClassDB::bind_method(D_METHOD("get_check_type"), &BTCheckAgentProperty::get_check_type);
|
ClassDB::bind_method(D_METHOD("get_check_type"), &BTCheckAgentProperty::get_check_type);
|
||||||
ClassDB::bind_method(D_METHOD("set_value", "p_value"), &BTCheckAgentProperty::set_value);
|
ClassDB::bind_method(D_METHOD("set_value", "p_value"), &BTCheckAgentProperty::set_value);
|
||||||
ClassDB::bind_method(D_METHOD("get_value"), &BTCheckAgentProperty::get_value);
|
ClassDB::bind_method(D_METHOD("get_value"), &BTCheckAgentProperty::get_value);
|
||||||
|
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::STRING, "property_name"), "set_property_name", "get_property_name");
|
ADD_PROPERTY(PropertyInfo(Variant::STRING, "property"), "set_property", "get_property");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "check_type", PROPERTY_HINT_ENUM, "Equal,Less Than,Less Than Or Equal,Greater Than,Greater Than Or Equal,Not Equal"), "set_check_type", "get_check_type");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "check_type", PROPERTY_HINT_ENUM, "Equal,Less Than,Less Than Or Equal,Greater Than,Greater Than Or Equal,Not Equal"), "set_check_type", "get_check_type");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "value", PROPERTY_HINT_RESOURCE_TYPE, "BBVariant"), "set_value", "get_value");
|
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "value", PROPERTY_HINT_RESOURCE_TYPE, "BBVariant"), "set_value", "get_value");
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ class BTCheckAgentProperty : public BTCondition {
|
||||||
GDCLASS(BTCheckAgentProperty, BTCondition);
|
GDCLASS(BTCheckAgentProperty, BTCondition);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
StringName property_name;
|
StringName property;
|
||||||
LimboUtility::CheckType check_type = LimboUtility::CheckType::CHECK_EQUAL;
|
LimboUtility::CheckType check_type = LimboUtility::CheckType::CHECK_EQUAL;
|
||||||
Ref<BBVariant> value;
|
Ref<BBVariant> value;
|
||||||
|
|
||||||
|
@ -37,8 +37,8 @@ protected:
|
||||||
public:
|
public:
|
||||||
virtual String get_configuration_warning() const override;
|
virtual String get_configuration_warning() const override;
|
||||||
|
|
||||||
void set_property_name(StringName p_prop);
|
void set_property(StringName p_prop);
|
||||||
StringName get_property_name() const { return property_name; }
|
StringName get_property() const { return property; }
|
||||||
|
|
||||||
void set_check_type(LimboUtility::CheckType p_check_type);
|
void set_check_type(LimboUtility::CheckType p_check_type);
|
||||||
LimboUtility::CheckType get_check_type() const { return check_type; }
|
LimboUtility::CheckType get_check_type() const { return check_type; }
|
||||||
|
|
|
@ -6,7 +6,7 @@ saved_value = 200.0
|
||||||
type = 3
|
type = 3
|
||||||
|
|
||||||
[sub_resource type="BTCheckAgentProperty" id="BTCheckAgentProperty_0nprx"]
|
[sub_resource type="BTCheckAgentProperty" id="BTCheckAgentProperty_0nprx"]
|
||||||
property_name = &"speed"
|
property = &"speed"
|
||||||
value = SubResource("BBVariant_5o8fh")
|
value = SubResource("BBVariant_5o8fh")
|
||||||
|
|
||||||
[sub_resource type="BTConsolePrint" id="BTConsolePrint_dlmwi"]
|
[sub_resource type="BTConsolePrint" id="BTConsolePrint_dlmwi"]
|
||||||
|
@ -28,7 +28,7 @@ saved_value = 300.0
|
||||||
type = 3
|
type = 3
|
||||||
|
|
||||||
[sub_resource type="BTSetAgentProperty" id="BTSetAgentProperty_lh1xy"]
|
[sub_resource type="BTSetAgentProperty" id="BTSetAgentProperty_lh1xy"]
|
||||||
property_name = &"speed"
|
property = &"speed"
|
||||||
value = SubResource("BBVariant_r2elk")
|
value = SubResource("BBVariant_r2elk")
|
||||||
|
|
||||||
[sub_resource type="BBVariant" id="BBVariant_jhcxn"]
|
[sub_resource type="BBVariant" id="BBVariant_jhcxn"]
|
||||||
|
@ -37,7 +37,7 @@ saved_value = 200.0
|
||||||
type = 3
|
type = 3
|
||||||
|
|
||||||
[sub_resource type="BTCheckAgentProperty" id="BTCheckAgentProperty_p20lt"]
|
[sub_resource type="BTCheckAgentProperty" id="BTCheckAgentProperty_p20lt"]
|
||||||
property_name = &"speed"
|
property = &"speed"
|
||||||
check_type = 3
|
check_type = 3
|
||||||
value = SubResource("BBVariant_jhcxn")
|
value = SubResource("BBVariant_jhcxn")
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ saved_value = 400.0
|
||||||
type = 3
|
type = 3
|
||||||
|
|
||||||
[sub_resource type="BTCheckAgentProperty" id="BTCheckAgentProperty_avnfr"]
|
[sub_resource type="BTCheckAgentProperty" id="BTCheckAgentProperty_avnfr"]
|
||||||
property_name = &"speed"
|
property = &"speed"
|
||||||
check_type = 1
|
check_type = 1
|
||||||
value = SubResource("BBVariant_2aotu")
|
value = SubResource("BBVariant_2aotu")
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ saved_value = 300.0
|
||||||
type = 3
|
type = 3
|
||||||
|
|
||||||
[sub_resource type="BTCheckAgentProperty" id="BTCheckAgentProperty_sayma"]
|
[sub_resource type="BTCheckAgentProperty" id="BTCheckAgentProperty_sayma"]
|
||||||
property_name = &"speed"
|
property = &"speed"
|
||||||
value = SubResource("BBVariant_28e2y")
|
value = SubResource("BBVariant_28e2y")
|
||||||
|
|
||||||
[sub_resource type="BTConsolePrint" id="BTConsolePrint_xugph"]
|
[sub_resource type="BTConsolePrint" id="BTConsolePrint_xugph"]
|
||||||
|
|
|
@ -12,8 +12,8 @@
|
||||||
<member name="check_type" type="int" setter="set_check_type" getter="get_check_type" enum="LimboUtility.CheckType" default="0">
|
<member name="check_type" type="int" setter="set_check_type" getter="get_check_type" enum="LimboUtility.CheckType" default="0">
|
||||||
Type of check to perform.
|
Type of check to perform.
|
||||||
</member>
|
</member>
|
||||||
<member name="property_name" type="StringName" setter="set_property_name" getter="get_property_name" default="&""">
|
<member name="property" type="StringName" setter="set_property" getter="get_property" default="&""">
|
||||||
Parameter that specifies the agent's property name which will be compared.
|
Parameter that specifies the agent's property which will be compared.
|
||||||
</member>
|
</member>
|
||||||
<member name="value" type="BBVariant" setter="set_value" getter="get_value">
|
<member name="value" type="BBVariant" setter="set_value" getter="get_value">
|
||||||
Parameter that specifies the value to which an agent's property will be compared.
|
Parameter that specifies the value to which an agent's property will be compared.
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<tutorials>
|
<tutorials>
|
||||||
</tutorials>
|
</tutorials>
|
||||||
<members>
|
<members>
|
||||||
<member name="property_name" type="StringName" setter="set_property_name" getter="get_property_name" default="&""">
|
<member name="property" type="StringName" setter="set_property" getter="get_property" default="&""">
|
||||||
Parameter that specifies the agent's property name.
|
Parameter that specifies the agent's property name.
|
||||||
</member>
|
</member>
|
||||||
<member name="value" type="BBVariant" setter="set_value" getter="get_value">
|
<member name="value" type="BBVariant" setter="set_value" getter="get_value">
|
||||||
|
|
Loading…
Reference in New Issue