diff --git a/SCsub b/SCsub index 77964e3..d02eee6 100644 --- a/SCsub +++ b/SCsub @@ -14,7 +14,9 @@ sources = [ "register_types.cpp", - "biome_terrarin_generator.cpp" + "biome_terrarin_generator.cpp", + "t_mesh_instance.cpp" + ] if ARGUMENTS.get('custom_modules_shared', 'no') == 'yes': diff --git a/register_types.cpp b/register_types.cpp index 3febb2e..8e7c037 100644 --- a/register_types.cpp +++ b/register_types.cpp @@ -25,9 +25,11 @@ SOFTWARE. */ #include "biome_terrarin_generator.h" +#include "t_mesh_instance.h" void register_broken_seals_module_types() { ClassDB::register_class(); + ClassDB::register_class(); } void unregister_broken_seals_module_types() { diff --git a/t_mesh_instance.cpp b/t_mesh_instance.cpp new file mode 100644 index 0000000..9522e54 --- /dev/null +++ b/t_mesh_instance.cpp @@ -0,0 +1,50 @@ +/*************************************************************************/ +/* mesh_instance.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* 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. */ +/*************************************************************************/ + +#include "t_mesh_instance.h" + +bool TMeshInstance::is_software_skinning_enabled() { + return _is_software_skinning_enabled(); +} + +void TMeshInstance::initialize_skinning(bool p_force_reset, bool p_call_attach_skeleton) { + _initialize_skinning(p_force_reset, p_call_attach_skeleton); +} + +void TMeshInstance::_bind_methods() { + ClassDB::bind_method(D_METHOD("is_software_skinning_enabled"), &TMeshInstance::is_software_skinning_enabled); + ClassDB::bind_method(D_METHOD("initialize_skinning", "force_reset", "call_attach_skeleton"), &TMeshInstance::initialize_skinning, false, true); +} + +TMeshInstance::TMeshInstance() { +} + +TMeshInstance::~TMeshInstance() { +} diff --git a/t_mesh_instance.h b/t_mesh_instance.h new file mode 100644 index 0000000..dd209c7 --- /dev/null +++ b/t_mesh_instance.h @@ -0,0 +1,57 @@ +/*************************************************************************/ +/* mesh_instance.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* 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. */ +/*************************************************************************/ + +#ifndef T_MESH_INSTANCE_H +#define T_MESH_INSTANCE_H + +#include "scene/3d/mesh_instance.h" + +#include "scene/3d/skeleton.h" +#include "scene/3d/visual_instance.h" +#include "scene/resources/mesh.h" +#include "scene/resources/skin.h" + +#include "core/local_vector.h" + +class TMeshInstance : public MeshInstance { + GDCLASS(TMeshInstance, MeshInstance); + +public: + bool is_software_skinning_enabled(); + void initialize_skinning(bool p_force_reset = false, bool p_call_attach_skeleton = true); + + TMeshInstance(); + ~TMeshInstance(); + +protected: + static void _bind_methods(); +}; + +#endif