mirror of
https://github.com/godotengine/godot-visual-script.git
synced 2026-01-05 22:10:23 +03:00
Merge pull request #23310 from aaronfranke/posmod-int
Add integer posmod and rename default arg names
This commit is contained in:
@@ -104,6 +104,7 @@ const char *VisualScriptBuiltinFunc::func_name[VisualScriptBuiltinFunc::FUNC_MAX
|
|||||||
"bytes2var",
|
"bytes2var",
|
||||||
"color_named",
|
"color_named",
|
||||||
"smoothstep",
|
"smoothstep",
|
||||||
|
"posmod",
|
||||||
};
|
};
|
||||||
|
|
||||||
VisualScriptBuiltinFunc::BuiltinFunc VisualScriptBuiltinFunc::find_function(const String &p_string) {
|
VisualScriptBuiltinFunc::BuiltinFunc VisualScriptBuiltinFunc::find_function(const String &p_string) {
|
||||||
@@ -192,6 +193,7 @@ int VisualScriptBuiltinFunc::get_func_argument_count(BuiltinFunc p_func) {
|
|||||||
case MATH_ATAN2:
|
case MATH_ATAN2:
|
||||||
case MATH_FMOD:
|
case MATH_FMOD:
|
||||||
case MATH_FPOSMOD:
|
case MATH_FPOSMOD:
|
||||||
|
case MATH_POSMOD:
|
||||||
case MATH_POW:
|
case MATH_POW:
|
||||||
case MATH_EASE:
|
case MATH_EASE:
|
||||||
case MATH_STEPIFY:
|
case MATH_STEPIFY:
|
||||||
@@ -261,7 +263,16 @@ PropertyInfo VisualScriptBuiltinFunc::get_input_value_port_info(int p_idx) const
|
|||||||
case MATH_ASIN:
|
case MATH_ASIN:
|
||||||
case MATH_ACOS:
|
case MATH_ACOS:
|
||||||
case MATH_ATAN:
|
case MATH_ATAN:
|
||||||
case MATH_SQRT: {
|
case MATH_SQRT:
|
||||||
|
case MATH_FLOOR:
|
||||||
|
case MATH_CEIL:
|
||||||
|
case MATH_ROUND:
|
||||||
|
case MATH_ABS:
|
||||||
|
case MATH_SIGN:
|
||||||
|
case MATH_LOG:
|
||||||
|
case MATH_EXP:
|
||||||
|
case MATH_ISNAN:
|
||||||
|
case MATH_ISINF: {
|
||||||
return PropertyInfo(Variant::REAL, "s");
|
return PropertyInfo(Variant::REAL, "s");
|
||||||
} break;
|
} break;
|
||||||
case MATH_ATAN2: {
|
case MATH_ATAN2: {
|
||||||
@@ -271,32 +282,25 @@ PropertyInfo VisualScriptBuiltinFunc::get_input_value_port_info(int p_idx) const
|
|||||||
return PropertyInfo(Variant::REAL, "x");
|
return PropertyInfo(Variant::REAL, "x");
|
||||||
} break;
|
} break;
|
||||||
case MATH_FMOD:
|
case MATH_FMOD:
|
||||||
case MATH_FPOSMOD: {
|
case MATH_FPOSMOD:
|
||||||
|
case LOGIC_MAX:
|
||||||
|
case LOGIC_MIN: {
|
||||||
if (p_idx == 0)
|
if (p_idx == 0)
|
||||||
return PropertyInfo(Variant::REAL, "x");
|
return PropertyInfo(Variant::REAL, "a");
|
||||||
else
|
else
|
||||||
return PropertyInfo(Variant::REAL, "y");
|
return PropertyInfo(Variant::REAL, "b");
|
||||||
} break;
|
} break;
|
||||||
case MATH_FLOOR:
|
case MATH_POSMOD: {
|
||||||
case MATH_CEIL:
|
if (p_idx == 0)
|
||||||
case MATH_ROUND:
|
return PropertyInfo(Variant::INT, "a");
|
||||||
case MATH_ABS:
|
else
|
||||||
case MATH_SIGN: {
|
return PropertyInfo(Variant::INT, "b");
|
||||||
return PropertyInfo(Variant::REAL, "s");
|
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case MATH_POW: {
|
case MATH_POW: {
|
||||||
if (p_idx == 0)
|
if (p_idx == 0)
|
||||||
return PropertyInfo(Variant::REAL, "x");
|
return PropertyInfo(Variant::REAL, "base");
|
||||||
else
|
else
|
||||||
return PropertyInfo(Variant::REAL, "y");
|
return PropertyInfo(Variant::REAL, "exp");
|
||||||
} break;
|
|
||||||
case MATH_LOG:
|
|
||||||
case MATH_EXP:
|
|
||||||
case MATH_ISNAN:
|
|
||||||
case MATH_ISINF: {
|
|
||||||
return PropertyInfo(Variant::REAL, "s");
|
|
||||||
} break;
|
} break;
|
||||||
case MATH_EASE: {
|
case MATH_EASE: {
|
||||||
if (p_idx == 0)
|
if (p_idx == 0)
|
||||||
@@ -313,14 +317,7 @@ PropertyInfo VisualScriptBuiltinFunc::get_input_value_port_info(int p_idx) const
|
|||||||
else
|
else
|
||||||
return PropertyInfo(Variant::REAL, "steps");
|
return PropertyInfo(Variant::REAL, "steps");
|
||||||
} break;
|
} break;
|
||||||
case MATH_LERP: {
|
case MATH_LERP:
|
||||||
if (p_idx == 0)
|
|
||||||
return PropertyInfo(Variant::REAL, "from");
|
|
||||||
else if (p_idx == 1)
|
|
||||||
return PropertyInfo(Variant::REAL, "to");
|
|
||||||
else
|
|
||||||
return PropertyInfo(Variant::REAL, "weight");
|
|
||||||
} break;
|
|
||||||
case MATH_INVERSE_LERP: {
|
case MATH_INVERSE_LERP: {
|
||||||
if (p_idx == 0)
|
if (p_idx == 0)
|
||||||
return PropertyInfo(Variant::REAL, "from");
|
return PropertyInfo(Variant::REAL, "from");
|
||||||
@@ -365,12 +362,8 @@ PropertyInfo VisualScriptBuiltinFunc::get_input_value_port_info(int p_idx) const
|
|||||||
else
|
else
|
||||||
return PropertyInfo(Variant::REAL, "step");
|
return PropertyInfo(Variant::REAL, "step");
|
||||||
} break;
|
} break;
|
||||||
case MATH_RANDOMIZE: {
|
case MATH_RANDOMIZE:
|
||||||
|
case MATH_RAND:
|
||||||
} break;
|
|
||||||
case MATH_RAND: {
|
|
||||||
|
|
||||||
} break;
|
|
||||||
case MATH_RANDF: {
|
case MATH_RANDF: {
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
@@ -380,9 +373,7 @@ PropertyInfo VisualScriptBuiltinFunc::get_input_value_port_info(int p_idx) const
|
|||||||
else
|
else
|
||||||
return PropertyInfo(Variant::REAL, "to");
|
return PropertyInfo(Variant::REAL, "to");
|
||||||
} break;
|
} break;
|
||||||
case MATH_SEED: {
|
case MATH_SEED:
|
||||||
return PropertyInfo(Variant::INT, "seed");
|
|
||||||
} break;
|
|
||||||
case MATH_RANDSEED: {
|
case MATH_RANDSEED: {
|
||||||
return PropertyInfo(Variant::INT, "seed");
|
return PropertyInfo(Variant::INT, "seed");
|
||||||
} break;
|
} break;
|
||||||
@@ -418,26 +409,7 @@ PropertyInfo VisualScriptBuiltinFunc::get_input_value_port_info(int p_idx) const
|
|||||||
else
|
else
|
||||||
return PropertyInfo(Variant::INT, "max");
|
return PropertyInfo(Variant::INT, "max");
|
||||||
} break;
|
} break;
|
||||||
case MATH_WRAPF: {
|
case MATH_WRAPF:
|
||||||
if (p_idx == 0)
|
|
||||||
return PropertyInfo(Variant::REAL, "value");
|
|
||||||
else if (p_idx == 1)
|
|
||||||
return PropertyInfo(Variant::REAL, "min");
|
|
||||||
else
|
|
||||||
return PropertyInfo(Variant::REAL, "max");
|
|
||||||
} break;
|
|
||||||
case LOGIC_MAX: {
|
|
||||||
if (p_idx == 0)
|
|
||||||
return PropertyInfo(Variant::REAL, "a");
|
|
||||||
else
|
|
||||||
return PropertyInfo(Variant::REAL, "b");
|
|
||||||
} break;
|
|
||||||
case LOGIC_MIN: {
|
|
||||||
if (p_idx == 0)
|
|
||||||
return PropertyInfo(Variant::REAL, "a");
|
|
||||||
else
|
|
||||||
return PropertyInfo(Variant::REAL, "b");
|
|
||||||
} break;
|
|
||||||
case LOGIC_CLAMP: {
|
case LOGIC_CLAMP: {
|
||||||
if (p_idx == 0)
|
if (p_idx == 0)
|
||||||
return PropertyInfo(Variant::REAL, "value");
|
return PropertyInfo(Variant::REAL, "value");
|
||||||
@@ -450,20 +422,15 @@ PropertyInfo VisualScriptBuiltinFunc::get_input_value_port_info(int p_idx) const
|
|||||||
return PropertyInfo(Variant::INT, "value");
|
return PropertyInfo(Variant::INT, "value");
|
||||||
} break;
|
} break;
|
||||||
case OBJ_WEAKREF: {
|
case OBJ_WEAKREF: {
|
||||||
|
|
||||||
return PropertyInfo(Variant::OBJECT, "source");
|
return PropertyInfo(Variant::OBJECT, "source");
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
case FUNC_FUNCREF: {
|
case FUNC_FUNCREF: {
|
||||||
|
|
||||||
if (p_idx == 0)
|
if (p_idx == 0)
|
||||||
return PropertyInfo(Variant::OBJECT, "instance");
|
return PropertyInfo(Variant::OBJECT, "instance");
|
||||||
else
|
else
|
||||||
return PropertyInfo(Variant::STRING, "funcname");
|
return PropertyInfo(Variant::STRING, "funcname");
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
case TYPE_CONVERT: {
|
case TYPE_CONVERT: {
|
||||||
|
|
||||||
if (p_idx == 0)
|
if (p_idx == 0)
|
||||||
return PropertyInfo(Variant::NIL, "what");
|
return PropertyInfo(Variant::NIL, "what");
|
||||||
else
|
else
|
||||||
@@ -471,45 +438,24 @@ PropertyInfo VisualScriptBuiltinFunc::get_input_value_port_info(int p_idx) const
|
|||||||
} break;
|
} break;
|
||||||
case TYPE_OF: {
|
case TYPE_OF: {
|
||||||
return PropertyInfo(Variant::NIL, "what");
|
return PropertyInfo(Variant::NIL, "what");
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
case TYPE_EXISTS: {
|
case TYPE_EXISTS: {
|
||||||
|
|
||||||
return PropertyInfo(Variant::STRING, "type");
|
return PropertyInfo(Variant::STRING, "type");
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
case TEXT_CHAR: {
|
case TEXT_CHAR: {
|
||||||
|
|
||||||
return PropertyInfo(Variant::INT, "ascii");
|
return PropertyInfo(Variant::INT, "ascii");
|
||||||
|
|
||||||
} break;
|
|
||||||
case TEXT_STR: {
|
|
||||||
|
|
||||||
return PropertyInfo(Variant::NIL, "value");
|
|
||||||
|
|
||||||
} break;
|
|
||||||
case TEXT_PRINT: {
|
|
||||||
|
|
||||||
return PropertyInfo(Variant::NIL, "value");
|
|
||||||
|
|
||||||
} break;
|
|
||||||
case TEXT_PRINTERR: {
|
|
||||||
return PropertyInfo(Variant::NIL, "value");
|
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
|
case TEXT_STR:
|
||||||
|
case TEXT_PRINT:
|
||||||
|
case TEXT_PRINTERR:
|
||||||
case TEXT_PRINTRAW: {
|
case TEXT_PRINTRAW: {
|
||||||
|
|
||||||
return PropertyInfo(Variant::NIL, "value");
|
return PropertyInfo(Variant::NIL, "value");
|
||||||
|
|
||||||
} break;
|
|
||||||
case VAR_TO_STR: {
|
|
||||||
return PropertyInfo(Variant::NIL, "var");
|
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
case STR_TO_VAR: {
|
case STR_TO_VAR: {
|
||||||
|
|
||||||
return PropertyInfo(Variant::STRING, "string");
|
return PropertyInfo(Variant::STRING, "string");
|
||||||
} break;
|
} break;
|
||||||
|
case VAR_TO_STR:
|
||||||
case VAR_TO_BYTES: {
|
case VAR_TO_BYTES: {
|
||||||
if (p_idx == 0)
|
if (p_idx == 0)
|
||||||
return PropertyInfo(Variant::NIL, "var");
|
return PropertyInfo(Variant::NIL, "var");
|
||||||
@@ -525,12 +471,10 @@ PropertyInfo VisualScriptBuiltinFunc::get_input_value_port_info(int p_idx) const
|
|||||||
return PropertyInfo(Variant::BOOL, "allow_objects");
|
return PropertyInfo(Variant::BOOL, "allow_objects");
|
||||||
} break;
|
} break;
|
||||||
case COLORN: {
|
case COLORN: {
|
||||||
|
|
||||||
if (p_idx == 0)
|
if (p_idx == 0)
|
||||||
return PropertyInfo(Variant::STRING, "name");
|
return PropertyInfo(Variant::STRING, "name");
|
||||||
else
|
else
|
||||||
return PropertyInfo(Variant::REAL, "alpha");
|
return PropertyInfo(Variant::REAL, "alpha");
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
case FUNC_MAX: {
|
case FUNC_MAX: {
|
||||||
}
|
}
|
||||||
@@ -561,6 +505,7 @@ PropertyInfo VisualScriptBuiltinFunc::get_output_value_port_info(int p_idx) cons
|
|||||||
case MATH_CEIL: {
|
case MATH_CEIL: {
|
||||||
t = Variant::REAL;
|
t = Variant::REAL;
|
||||||
} break;
|
} break;
|
||||||
|
case MATH_POSMOD:
|
||||||
case MATH_ROUND: {
|
case MATH_ROUND: {
|
||||||
t = Variant::INT;
|
t = Variant::INT;
|
||||||
} break;
|
} break;
|
||||||
@@ -806,6 +751,12 @@ void VisualScriptBuiltinFunc::exec_func(BuiltinFunc p_func, const Variant **p_in
|
|||||||
VALIDATE_ARG_NUM(1);
|
VALIDATE_ARG_NUM(1);
|
||||||
*r_return = Math::fposmod((double)*p_inputs[0], (double)*p_inputs[1]);
|
*r_return = Math::fposmod((double)*p_inputs[0], (double)*p_inputs[1]);
|
||||||
} break;
|
} break;
|
||||||
|
case VisualScriptBuiltinFunc::MATH_POSMOD: {
|
||||||
|
|
||||||
|
VALIDATE_ARG_NUM(0);
|
||||||
|
VALIDATE_ARG_NUM(1);
|
||||||
|
*r_return = Math::posmod((int)*p_inputs[0], (int)*p_inputs[1]);
|
||||||
|
} break;
|
||||||
case VisualScriptBuiltinFunc::MATH_FLOOR: {
|
case VisualScriptBuiltinFunc::MATH_FLOOR: {
|
||||||
|
|
||||||
VALIDATE_ARG_NUM(0);
|
VALIDATE_ARG_NUM(0);
|
||||||
@@ -1365,6 +1316,7 @@ void VisualScriptBuiltinFunc::_bind_methods() {
|
|||||||
BIND_ENUM_CONSTANT(MATH_SQRT);
|
BIND_ENUM_CONSTANT(MATH_SQRT);
|
||||||
BIND_ENUM_CONSTANT(MATH_FMOD);
|
BIND_ENUM_CONSTANT(MATH_FMOD);
|
||||||
BIND_ENUM_CONSTANT(MATH_FPOSMOD);
|
BIND_ENUM_CONSTANT(MATH_FPOSMOD);
|
||||||
|
BIND_ENUM_CONSTANT(MATH_POSMOD);
|
||||||
BIND_ENUM_CONSTANT(MATH_FLOOR);
|
BIND_ENUM_CONSTANT(MATH_FLOOR);
|
||||||
BIND_ENUM_CONSTANT(MATH_CEIL);
|
BIND_ENUM_CONSTANT(MATH_CEIL);
|
||||||
BIND_ENUM_CONSTANT(MATH_ROUND);
|
BIND_ENUM_CONSTANT(MATH_ROUND);
|
||||||
@@ -1454,6 +1406,7 @@ void register_visual_script_builtin_func_node() {
|
|||||||
VisualScriptLanguage::singleton->add_register_func("functions/built_in/sqrt", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_SQRT>);
|
VisualScriptLanguage::singleton->add_register_func("functions/built_in/sqrt", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_SQRT>);
|
||||||
VisualScriptLanguage::singleton->add_register_func("functions/built_in/fmod", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_FMOD>);
|
VisualScriptLanguage::singleton->add_register_func("functions/built_in/fmod", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_FMOD>);
|
||||||
VisualScriptLanguage::singleton->add_register_func("functions/built_in/fposmod", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_FPOSMOD>);
|
VisualScriptLanguage::singleton->add_register_func("functions/built_in/fposmod", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_FPOSMOD>);
|
||||||
|
VisualScriptLanguage::singleton->add_register_func("functions/built_in/posmod", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_POSMOD>);
|
||||||
VisualScriptLanguage::singleton->add_register_func("functions/built_in/floor", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_FLOOR>);
|
VisualScriptLanguage::singleton->add_register_func("functions/built_in/floor", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_FLOOR>);
|
||||||
VisualScriptLanguage::singleton->add_register_func("functions/built_in/ceil", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_CEIL>);
|
VisualScriptLanguage::singleton->add_register_func("functions/built_in/ceil", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_CEIL>);
|
||||||
VisualScriptLanguage::singleton->add_register_func("functions/built_in/round", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_ROUND>);
|
VisualScriptLanguage::singleton->add_register_func("functions/built_in/round", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_ROUND>);
|
||||||
|
|||||||
@@ -104,6 +104,7 @@ public:
|
|||||||
BYTES_TO_VAR,
|
BYTES_TO_VAR,
|
||||||
COLORN,
|
COLORN,
|
||||||
MATH_SMOOTHSTEP,
|
MATH_SMOOTHSTEP,
|
||||||
|
MATH_POSMOD,
|
||||||
FUNC_MAX
|
FUNC_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user