diff --git a/register_types.cpp b/register_types.cpp index 4e3a6a5..02d411b 100644 --- a/register_types.cpp +++ b/register_types.cpp @@ -140,152 +140,158 @@ SOFTWARE. static ESS *entity_data_manager = NULL; static ProfileManager *profile_manager = NULL; -void initialize_entity_spell_system_module(GDNativeInitializationLevel p_level) { +void initialize_entity_spell_system_module(ModuleInitializationLevel p_level) { + if (p_level == MODULE_INITIALIZATION_LEVEL_SCENE) { #if PROPS_PRESENT - ClassDB::register_class(); + GDREGISTER_CLASS(PropDataEntity); #endif - ClassDB::register_class(); + GDREGISTER_CLASS(SpellEnums); - //data - ClassDB::register_class(); - ClassDB::register_class(); + //data + GDREGISTER_CLASS(CraftRecipeHelper); + GDREGISTER_CLASS(CraftRecipe); - ClassDB::register_class(); - ClassDB::register_class(); + GDREGISTER_CLASS(Spell); + GDREGISTER_CLASS(AuraGroup); - ClassDB::register_class(); - ClassDB::register_class(); - ClassDB::register_class(); - ClassDB::register_class(); + GDREGISTER_CLASS(EntityData); + GDREGISTER_CLASS(EntityClassData); + GDREGISTER_CLASS(VendorItemData); + GDREGISTER_CLASS(VendorItemDataEntry); - ClassDB::register_class(); + GDREGISTER_CLASS(EntityDataContainer); - ClassDB::register_class(); - ClassDB::register_class(); + GDREGISTER_CLASS(ItemContainerData); + GDREGISTER_CLASS(ItemContainerDataEntry); - ClassDB::register_class(); - ClassDB::register_class(); - ClassDB::register_class(); - ClassDB::register_class(); + GDREGISTER_CLASS(ItemEnums); + GDREGISTER_CLASS(ItemTemplate); + GDREGISTER_CLASS(ItemInstance); + GDREGISTER_CLASS(SpellCooldownManipulationData); - ClassDB::register_class(); + GDREGISTER_CLASS(EquipmentData); - ClassDB::register_class(); - ClassDB::register_class(); + GDREGISTER_CLASS(EntitySkill); + GDREGISTER_CLASS(EntitySkillData); - ClassDB::register_class(); - ClassDB::register_class(); + GDREGISTER_CLASS(ModelVisual); + GDREGISTER_CLASS(ModelVisualEntry); - ClassDB::register_class(); - ClassDB::register_class(); + GDREGISTER_CLASS(CharacterAtlas); + GDREGISTER_CLASS(CharacterAtlasEntry); - ClassDB::register_class(); + GDREGISTER_CLASS(CharacterBones); - //entity data - ClassDB::register_class(); + //entity data + GDREGISTER_CLASS(EntityEnums); - ClassDB::register_class(); + GDREGISTER_CLASS(StatData); - ClassDB::register_class(); - ClassDB::register_class(); - ClassDB::register_class(); + GDREGISTER_CLASS(LevelStatData); + GDREGISTER_CLASS(SimpleLevelStatData); + GDREGISTER_CLASS(ComplexLevelStatData); - ClassDB::register_class(); + GDREGISTER_CLASS(CharacterSpec); - ClassDB::register_class(); + GDREGISTER_CLASS(Bag); - ClassDB::register_class(); - ClassDB::register_class(); - ClassDB::register_class(); + GDREGISTER_CLASS(SpellDamageInfo); + GDREGISTER_CLASS(SpellHealInfo); + GDREGISTER_CLASS(AuraData); - ClassDB::register_class(); - ClassDB::register_class(); - ClassDB::register_class(); - ClassDB::register_class(); - ClassDB::register_class(); - ClassDB::register_class(); + GDREGISTER_CLASS(EntityResourceCostData); + GDREGISTER_CLASS(EntityResourceCostDataHealth); + GDREGISTER_CLASS(EntityResourceCostDataResource); + GDREGISTER_CLASS(EntityResource); + GDREGISTER_CLASS(EntityResourceHealth); + GDREGISTER_CLASS(EntityResourceSpeed); - //entities - ClassDB::register_class(); - ClassDB::register_class(); + //entities + GDREGISTER_CLASS(EntityCreateInfo); + GDREGISTER_CLASS(Entity); - //spellinfos - ClassDB::register_class(); + //spellinfos + GDREGISTER_CLASS(SpellCastInfo); - //aurainfos - ClassDB::register_class(); + //aurainfos + GDREGISTER_CLASS(AuraApplyInfo); - //UI - ClassDB::register_class(); + //UI + GDREGISTER_CLASS(ESDragAndDrop); - //Skeleton - ClassDB::register_class(); - ClassDB::register_class(); + //Skeleton + GDREGISTER_CLASS(CharacterSkeleton2D); + GDREGISTER_CLASS(CharacterSkeleton3D); - ClassDB::register_class(); - ClassDB::register_class(); - ClassDB::register_class(); + GDREGISTER_CLASS(EntitySpeciesData); + GDREGISTER_CLASS(SpeciesModelData); + GDREGISTER_CLASS(SpeciesInstance); - ClassDB::register_class(); + GDREGISTER_CLASS(SkeletonModelEntry); - ClassDB::register_class(); + GDREGISTER_CLASS(LootDataBase); - ClassDB::register_class(); - ClassDB::register_class(); + GDREGISTER_CLASS(SpellEffectVisual); + GDREGISTER_CLASS(SpellEffectVisualSimple); - //Projectiles - ClassDB::register_class(); + //Projectiles + GDREGISTER_CLASS(SpellFollowProjectile3D); - //AI - ClassDB::register_class(); + //AI + GDREGISTER_CLASS(EntityAI); - ClassDB::register_class(); + GDREGISTER_CLASS(AIFormation); - //Resources - ClassDB::register_virtual_class(); - ClassDB::register_class(); - ClassDB::register_class(); - ClassDB::register_class(); + //Resources + GDREGISTER_VIRTUAL_CLASS(ESSResourceDB); + GDREGISTER_CLASS(ESSResourceDBStatic); + GDREGISTER_CLASS(ESSResourceDBFolders); + GDREGISTER_CLASS(ESSResourceDBMap); - //ProfileManager - ClassDB::register_class(); - ClassDB::register_class(); - ClassDB::register_class(); + //ProfileManager + GDREGISTER_CLASS(InputProfileModifier); + GDREGISTER_CLASS(InputProfileModifierEntry); + GDREGISTER_CLASS(InputProfile); - ClassDB::register_class(); - ClassDB::register_class(); - ClassDB::register_class(); + GDREGISTER_CLASS(ActionBarButtonEntry); + GDREGISTER_CLASS(ActionBarEntry); + GDREGISTER_CLASS(ActionBarProfile); - ClassDB::register_class(); - ClassDB::register_class(); + GDREGISTER_CLASS(ClassProfile); + GDREGISTER_CLASS(PlayerProfile); - ClassDB::register_class(); + GDREGISTER_CLASS(ProfileManager); - ClassDB::register_class(); + GDREGISTER_CLASS(ESSEntitySpawner); - ClassDB::register_class(); - ClassDB::register_class(); + GDREGISTER_CLASS(ESSMaterialCache); + GDREGISTER_CLASS(ESSMaterialCachePCM); - entity_data_manager = memnew(ESS); - ClassDB::register_class(); - Engine::get_singleton()->add_singleton(Engine::Singleton("ESS", ESS::get_singleton())); + entity_data_manager = memnew(ESS); + GDREGISTER_CLASS(ESS); + Engine::get_singleton()->add_singleton(Engine::Singleton("ESS", ESS::get_singleton())); - profile_manager = memnew(ProfileManager); - ClassDB::register_class(); - Engine::get_singleton()->add_singleton(Engine::Singleton("ProfileManager", ProfileManager::get_singleton())); + profile_manager = memnew(ProfileManager); + GDREGISTER_CLASS(ProfileManager); + Engine::get_singleton()->add_singleton(Engine::Singleton("ProfileManager", ProfileManager::get_singleton())); + } #ifdef TOOLS_ENABLED - //EditorPlugins::add_by_type(); + if (p_level == MODULE_INITIALIZATION_LEVEL_EDITOR) { + EditorPlugins::add_by_type(); + } #endif } -void uninitialize_entity_spell_system_module(GDNativeInitializationLevel p_level) { - if (entity_data_manager) { - memdelete(entity_data_manager); - } +void uninitialize_entity_spell_system_module(ModuleInitializationLevel p_level) { + if (p_level == MODULE_INITIALIZATION_LEVEL_SCENE) { + if (entity_data_manager) { + memdelete(entity_data_manager); + } - if (profile_manager) { - memdelete(profile_manager); + if (profile_manager) { + memdelete(profile_manager); + } } } diff --git a/register_types.h b/register_types.h index a9328f3..ea141be 100644 --- a/register_types.h +++ b/register_types.h @@ -20,5 +20,12 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +#ifndef ENTITY_SPELL_SYSTEM_REGISTER_TYPES_H +#define ENTITY_SPELL_SYSTEM_REGISTER_TYPES_H + +#include "modules/register_module_types.h" + void initialize_entity_spell_system_module(ModuleInitializationLevel p_level); void uninitialize_entity_spell_system_module(ModuleInitializationLevel p_level); + +#endif \ No newline at end of file