| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | /**************************************************************************//*  gdscript_utility_callable.h                                           *//**************************************************************************//*                         This file is part of:                          *//*                             GODOT ENGINE                               *//*                        https://godotengine.org                         *//**************************************************************************//* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). *//* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur.                  *//*                                                                        *//* Permission is hereby granted, free of charge, to any person obtaining  *//* a copy of this software and associated documentation files (the        *//* "Software"), to deal in the Software without restriction, including    *//* without limitation the rights to use, copy, modify, merge, publish,    *//* distribute, sublicense, and/or sell copies of the Software, and to     *//* permit persons to whom the Software is furnished to do so, subject to  *//* the following conditions:                                              *//*                                                                        *//* The above copyright notice and this permission notice shall be         *//* included in all copies or substantial portions of the Software.        *//*                                                                        *//* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,        *//* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF     *//* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *//* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY   *//* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,   *//* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE      *//* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                 *//**************************************************************************/#pragma once#include "gdscript_utility_functions.h"#include "core/variant/callable.h"class GDScriptUtilityCallable : public CallableCustom {	StringName function_name;	enum Type {		TYPE_INVALID,		TYPE_GLOBAL,		TYPE_GDSCRIPT,	};	Type type = TYPE_INVALID;	GDScriptUtilityFunctions::FunctionPtr gdscript_function = nullptr;	uint32_t h = 0;	static bool compare_equal(const CallableCustom *p_a, const CallableCustom *p_b);	static bool compare_less(const CallableCustom *p_a, const CallableCustom *p_b);public:	uint32_t hash() const override;	String get_as_text() const override;	CompareEqualFunc get_compare_equal_func() const override;	CompareLessFunc get_compare_less_func() const override;	bool is_valid() const override;	StringName get_method() const override;	ObjectID get_object() const override;	int get_argument_count(bool &r_is_valid) const override;	void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, Callable::CallError &r_call_error) const override;	GDScriptUtilityCallable(const StringName &p_function_name);};
 |