Renamed CharacterClass to EntityData. Also moved it around, with a few related classes.

This commit is contained in:
Relintai 2019-09-09 14:26:18 +02:00
parent 2b45d35cf7
commit ca2fe9a6c4
23 changed files with 466 additions and 1255 deletions

33
SCsub
View File

@ -12,11 +12,8 @@ module_env.add_source_files(env.modules_sources,"spell_enums.cpp")
module_env.add_source_files(env.modules_sources,"item_enums.cpp")
module_env.add_source_files(env.modules_sources,"data/aura.cpp")
module_env.add_source_files(env.modules_sources,"data/character_class.cpp")
module_env.add_source_files(env.modules_sources,"data/talent.cpp")
module_env.add_source_files(env.modules_sources,"data/talent_rank_data.cpp")
module_env.add_source_files(env.modules_sources,"data/talent_row_data.cpp")
module_env.add_source_files(env.modules_sources,"data/character_spec.cpp")
module_env.add_source_files(env.modules_sources,"data/data_manager.cpp")
module_env.add_source_files(env.modules_sources,"data/xp_data.cpp")
module_env.add_source_files(env.modules_sources,"data/item_stat_modifier.cpp")
@ -25,6 +22,13 @@ module_env.add_source_files(env.modules_sources,"data/item_instance.cpp")
module_env.add_source_files(env.modules_sources,"data/item_template.cpp")
module_env.add_source_files(env.modules_sources,"data/spell_cooldown_manipulation_data.cpp")
module_env.add_source_files(env.modules_sources,"entities/data/entity_data.cpp")
module_env.add_source_files(env.modules_sources,"entities/data/mob_data.cpp")
module_env.add_source_files(env.modules_sources,"entities/data/player_character_data.cpp")
module_env.add_source_files(env.modules_sources,"entities/data/character_spec.cpp")
module_env.add_source_files(env.modules_sources,"entities/data/talent_row_data.cpp")
module_env.add_source_files(env.modules_sources,"data/item_visual.cpp")
module_env.add_source_files(env.modules_sources,"data/item_visual_entry.cpp")
@ -80,20 +84,17 @@ module_env.add_source_files(env.modules_sources,"utility/entity_create_info.cpp"
module_env.add_source_files(env.modules_sources,"utility/cooldown.cpp")
module_env.add_source_files(env.modules_sources,"utility/category_cooldown.cpp")
env.add_source_files(env.modules_sources,"meshes/mesh_data_resource.cpp")
env.add_source_files(env.modules_sources,"meshes/editor_import_collada_mdr.cpp")
env.add_source_files(env.modules_sources,"meshes/editor_plugin_collada_mdr.cpp")
module_env.add_source_files(env.modules_sources,"meshes/mesh_data_resource.cpp")
module_env.add_source_files(env.modules_sources,"meshes/editor_import_collada_mdr.cpp")
module_env.add_source_files(env.modules_sources,"meshes/editor_plugin_collada_mdr.cpp")
env.add_source_files(env.modules_sources,"skeleton/entity_equipset.cpp")
module_env.add_source_files(env.modules_sources,"skeleton/entity_equipset.cpp")
env.add_source_files(env.modules_sources,"loot/loot_data_base.cpp")
env.add_source_files(env.modules_sources,"loot/loot_data_container.cpp")
env.add_source_files(env.modules_sources,"loot/loot_data_item.cpp")
module_env.add_source_files(env.modules_sources,"loot/loot_data_base.cpp")
module_env.add_source_files(env.modules_sources,"loot/loot_data_container.cpp")
module_env.add_source_files(env.modules_sources,"loot/loot_data_item.cpp")
env.add_source_files(env.modules_sources,"data/mob_data.cpp")
env.add_source_files(env.modules_sources,"data/player_character_data.cpp")
env.add_source_files(env.modules_sources,"ai/ai_action.cpp")
env.add_source_files(env.modules_sources,"ai/ai_spell_action.cpp")
env.add_source_files(env.modules_sources,"ai/ai_action_container.cpp")
module_env.add_source_files(env.modules_sources,"ai/ai_action.cpp")
module_env.add_source_files(env.modules_sources,"ai/ai_spell_action.cpp")
module_env.add_source_files(env.modules_sources,"ai/ai_action_container.cpp")

View File

@ -1,52 +0,0 @@
#include "MobSpellData.h"
bool MobSpellData::getRanged() {
return this->ranged;
}
void MobSpellData::setRanged(bool value) {
this->ranged = value;
}
List<MobSpellDataEntry> *MobSpellData::getAttackSpells() {
return this->attackSpells;
}
List<MobSpellDataEntry> *MobSpellData::getChargeSpells() {
return this->chargeSpells;
}
List<MobSpellDataEntry> *MobSpellData::getCcSpells() {
return this->ccSpells;
}
List<MobSpellDataEntry> *MobSpellData::getDpsSpells() {
return this->dpsSpells;
}
List<MobSpellDataEntry> *MobSpellData::getRegenerationSpells() {
return this->regenerationSpells;
}
List<MobSpellDataEntry> *MobSpellData::getStunBreakSpells() {
return this->stunBreakSpells;
}
void MobSpellData::Sort() {
/*
this->attackSpells->Sort();
this->chargeSpells->Sort();
this->ccSpells->Sort();
this->dpsSpells->Sort();
this->regenerationSpells->Sort();
this->stunBreakSpells->Sort();*/
}
MobSpellData::MobSpellData() {
attackSpells = new List<MobSpellDataEntry>();
chargeSpells = new List<MobSpellDataEntry>();
ccSpells = new List<MobSpellDataEntry>();
dpsSpells = new List<MobSpellDataEntry>();
regenerationSpells = new List<MobSpellDataEntry>();
stunBreakSpells = new List<MobSpellDataEntry>();
}

View File

@ -1,30 +0,0 @@
#ifndef MOB_SPELL_DATA_H
#define MOB_SPELL_DATA_H
#include "MobSpellDataEntry.h"
class MobSpellData : public Object {
public:
bool ranged;
List<MobSpellDataEntry>* attackSpells;
List<MobSpellDataEntry>* chargeSpells;
List<MobSpellDataEntry>* ccSpells;
List<MobSpellDataEntry>* dpsSpells;
List<MobSpellDataEntry>* regenerationSpells;
List<MobSpellDataEntry>* stunBreakSpells;
public:
bool getRanged();
void setRanged(bool value);
List<MobSpellDataEntry>* getAttackSpells();
List<MobSpellDataEntry>* getChargeSpells();
List<MobSpellDataEntry>* getCcSpells();
List<MobSpellDataEntry>* getDpsSpells();
List<MobSpellDataEntry>* getRegenerationSpells();
List<MobSpellDataEntry>* getStunBreakSpells();
void Sort();
MobSpellData();
};
#endif

View File

@ -1,34 +0,0 @@
#include "MobSpellDataEntry.h"
MobSpellDataType MobSpellDataEntry::getType(){
return this->type;
}
int MobSpellDataEntry::getSpellId()
{
return this->spellId;
}
int MobSpellDataEntry::getPriority()
{
return this->priority;
}
bool MobSpellDataEntry::getMoveWhileCasting()
{
return this->moveWhileCasting;
}
MobSpellDataEntry::MobSpellDataEntry()
{
}
MobSpellDataEntry::MobSpellDataEntry(MobSpellDataType type, int spellId, int priority, bool moveWhileCasting)
{
this->type = type;
this->spellId = spellId;
this->priority = priority;
this->moveWhileCasting = moveWhileCasting;
}

View File

@ -1,48 +0,0 @@
#ifndef MOB_SPELL_DATA_ENTRY_H
#define MOB_SPELL_DATA_ENTRY_H
#include "core/object.h"
//bind, att to charclass, add virtual _should use, add should_use
//keep type, and prio
//foeach all keep all, should use, use highest prio
//use one per frame
//basic setup script all types into a class, then have the ability to customize
//can have other classes too, this could work like util ai
//AIAction is a resource
//AIAction base have the virtuals, and c++ stuff to call them
//this inheroths ai action
//AIMoveAction -> kiter classes have higher prio
//this is attach only (for now)
enum class MobSpellDataType{
ATTACK,
CHARGE,
CC,
DPS,
REGENERATION,
STUNBREAK
};
class MobSpellDataEntry : public Object {
private:
MobSpellDataType type;
int spellId;
int priority;
public:
bool moveWhileCasting;
MobSpellDataType getType();
int getSpellId();
int getPriority();
bool getMoveWhileCasting();
MobSpellDataEntry();
MobSpellDataEntry(MobSpellDataType type, int spellId, int priority, bool moveWhileCasting);
int CompareTo(Object* other);
};
#endif

View File

@ -1,12 +1,12 @@
#include "data_manager.h"
#include "aura.h"
#include "character_class.h"
#include "../entities/data/entity_data.h"
#include "craft_data_attribute.h"
#include "spell.h"
#include "talent.h"
#include "mob_data.h"
#include "player_character_data.h"
#include "../entities/data/mob_data.h"
#include "../entities/data/player_character_data.h"
DataManager *DataManager::instance;
@ -29,39 +29,39 @@ void DataManager::_notification(int p_what) {
}
}
String DataManager::get_character_classes_folder() {
return _character_classes_folder;
String DataManager::get_entity_dataes_folder() {
return _entity_dataes_folder;
}
void DataManager::set_character_classes_folder(String folder) {
_character_classes_folder = folder;
void DataManager::set_entity_dataes_folder(String folder) {
_entity_dataes_folder = folder;
}
Vector<Ref<CharacterClass> > *DataManager::get_character_classes() {
return &_character_classes;
Vector<Ref<EntityData> > *DataManager::get_entity_dataes() {
return &_entity_dataes;
}
Ref<CharacterClass> DataManager::get_character_class(int class_id) {
ERR_FAIL_COND_V(!_character_class_map.has(class_id), Ref<CharacterClass>(NULL));
Ref<EntityData> DataManager::get_entity_data(int class_id) {
ERR_FAIL_COND_V(!_entity_data_map.has(class_id), Ref<EntityData>(NULL));
return _character_class_map.get(class_id);
return _entity_data_map.get(class_id);
}
Ref<CharacterClass> DataManager::get_character_class_index(int index) {
ERR_FAIL_INDEX_V(index, _character_classes.size(), Ref<CharacterClass>(NULL));
Ref<EntityData> DataManager::get_entity_data_index(int index) {
ERR_FAIL_INDEX_V(index, _entity_dataes.size(), Ref<EntityData>(NULL));
return _character_classes.get(index);
return _entity_dataes.get(index);
}
int DataManager::get_character_class_count() {
return _character_classes.size();
int DataManager::get_entity_data_count() {
return _entity_dataes.size();
}
void DataManager::add_character_class(Ref<CharacterClass> cls) {
void DataManager::add_entity_data(Ref<EntityData> cls) {
ERR_FAIL_COND(!cls.is_valid());
_character_classes.push_back(cls);
_character_class_map.set(cls->get_id(), cls);
_entity_dataes.push_back(cls);
_entity_data_map.set(cls->get_id(), cls);
}
String DataManager::get_spells_folder() {
@ -431,9 +431,9 @@ void DataManager::load_talents() {
void DataManager::load_characters() {
_Directory dir;
ERR_FAIL_COND(_character_classes_folder.ends_with("/"));
ERR_FAIL_COND(_entity_dataes_folder.ends_with("/"));
if (dir.open(_character_classes_folder) == OK) {
if (dir.open(_entity_dataes_folder) == OK) {
dir.list_dir_begin();
@ -441,11 +441,11 @@ void DataManager::load_characters() {
while (filename != "") {
if (!dir.current_is_dir()) {
String path = _character_classes_folder + "/" + filename;
String path = _entity_dataes_folder + "/" + filename;
_ResourceLoader *rl = _ResourceLoader::get_singleton();
Ref<ResourceInteractiveLoader> resl = rl->load_interactive(path, "CharacterClass");
Ref<ResourceInteractiveLoader> resl = rl->load_interactive(path, "EntityData");
resl->wait();
@ -453,11 +453,11 @@ void DataManager::load_characters() {
ERR_CONTINUE(!s.is_valid());
Ref<CharacterClass> cls = s;
Ref<EntityData> cls = s;
ERR_CONTINUE(!cls.is_valid());
add_character_class(cls);
add_entity_data(cls);
}
filename = dir.get_next();
@ -624,8 +624,8 @@ void DataManager::load_player_character_datas() {
}
void DataManager::list_characters() {
for (int i = 0; i < _character_classes.size(); ++i) {
print_error(itos(i) + ": " + _character_classes.get(i)->get_character_class_name());
for (int i = 0; i < _entity_dataes.size(); ++i) {
print_error(itos(i) + ": " + _entity_dataes.get(i)->get_entity_data_name());
}
}
@ -676,15 +676,15 @@ void DataManager::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_automatic_load", "load"), &DataManager::set_automatic_load);
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "automatic_load"), "set_automatic_load", "get_automatic_load");
//CharacterClass
ClassDB::bind_method(D_METHOD("get_character_classes_folder"), &DataManager::get_character_classes_folder);
ClassDB::bind_method(D_METHOD("set_character_classes_folder", "folder"), &DataManager::set_character_classes_folder);
ADD_PROPERTY(PropertyInfo(Variant::STRING, "character_classes_folder"), "set_character_classes_folder", "get_character_classes_folder");
//EntityData
ClassDB::bind_method(D_METHOD("get_entity_dataes_folder"), &DataManager::get_entity_dataes_folder);
ClassDB::bind_method(D_METHOD("set_entity_dataes_folder", "folder"), &DataManager::set_entity_dataes_folder);
ADD_PROPERTY(PropertyInfo(Variant::STRING, "entity_dataes_folder"), "set_entity_dataes_folder", "get_entity_dataes_folder");
ClassDB::bind_method(D_METHOD("add_character_class", "cls"), &DataManager::add_character_class);
ClassDB::bind_method(D_METHOD("get_character_class", "class_id"), &DataManager::get_character_class);
ClassDB::bind_method(D_METHOD("get_character_class_index", "index"), &DataManager::get_character_class_index);
ClassDB::bind_method(D_METHOD("get_character_class_count"), &DataManager::get_character_class_count);
ClassDB::bind_method(D_METHOD("add_entity_data", "cls"), &DataManager::add_entity_data);
ClassDB::bind_method(D_METHOD("get_entity_data", "class_id"), &DataManager::get_entity_data);
ClassDB::bind_method(D_METHOD("get_entity_data_index", "index"), &DataManager::get_entity_data_index);
ClassDB::bind_method(D_METHOD("get_entity_data_count"), &DataManager::get_entity_data_count);
//Spell
ClassDB::bind_method(D_METHOD("get_spells_folder"), &DataManager::get_spells_folder);
@ -787,8 +787,8 @@ DataManager::DataManager() {
DataManager::~DataManager() {
instance = NULL;
_character_classes.clear();
_character_class_map.clear();
_entity_dataes.clear();
_entity_data_map.clear();
_spells.clear();
_spell_map.clear();

View File

@ -16,7 +16,7 @@
class Aura;
class Spell;
class Talent;
class CharacterClass;
class EntityData;
class CraftDataAttribute;
class ItemTemplate;
class MobData;
@ -28,13 +28,13 @@ class DataManager : public Node {
public:
static DataManager *get_instance();
String get_character_classes_folder();
void set_character_classes_folder(String folder);
Vector<Ref<CharacterClass> > *get_character_classes();
Ref<CharacterClass> get_character_class(int class_id);
Ref<CharacterClass> get_character_class_index(int index);
int get_character_class_count();
void add_character_class(Ref<CharacterClass> cls);
String get_entity_dataes_folder();
void set_entity_dataes_folder(String folder);
Vector<Ref<EntityData> > *get_entity_dataes();
Ref<EntityData> get_entity_data(int class_id);
Ref<EntityData> get_entity_data_index(int index);
int get_entity_data_count();
void add_entity_data(Ref<EntityData> cls);
String get_spells_folder();
void set_spells_folder(String folder);
@ -122,9 +122,9 @@ protected:
void _notification(int p_what);
private:
String _character_classes_folder;
Vector<Ref<CharacterClass> > _character_classes;
HashMap<int, Ref<CharacterClass> > _character_class_map;
String _entity_dataes_folder;
Vector<Ref<EntityData> > _entity_dataes;
HashMap<int, Ref<EntityData> > _entity_data_map;
String _spells_folder;
Vector<Ref<Spell> > _spells;

View File

@ -1,6 +1,6 @@
#include "character_spec.h"
#include "talent.h"
#include "../../data/talent.h"
int CharacterSpec::get_spec_id() {
return _spec_id;

View File

@ -1,80 +1,80 @@
#include "character_class.h"
#include "entity_data.h"
#include "../data/spell.h"
#include "../data/aura.h"
#include "../entities/entity.h"
#include "../../data/spell.h"
#include "../../data/aura.h"
#include "../entity.h"
#include "character_spec.h"
#include "../infos/spell_cast_info.h"
#include "../ai/ai_action.h"
#include "../../infos/spell_cast_info.h"
#include "../../ai/ai_action.h"
int CharacterClass::get_id() {
int EntityData::get_id() {
return _id;
}
void CharacterClass::set_id(int value) {
void EntityData::set_id(int value) {
_id = value;
}
String CharacterClass::get_character_class_name() {
return _character_class_name;
String EntityData::get_entity_data_name() {
return _entity_data_name;
}
void CharacterClass::set_character_class_name(String value) {
_character_class_name = value;
void EntityData::set_entity_data_name(String value) {
_entity_data_name = value;
}
Ref<Texture> CharacterClass::get_icon() {
Ref<Texture> EntityData::get_icon() {
return _icon;
}
void CharacterClass::set_icon(Ref<Texture> value) {
void EntityData::set_icon(Ref<Texture> value) {
_icon = Ref<Texture>(value);
}
int CharacterClass::get_player_resource_type() {
int EntityData::get_player_resource_type() {
return _player_resource_type;
}
void CharacterClass::set_player_resource_type(int value) {
void EntityData::set_player_resource_type(int value) {
_player_resource_type = value;
}
Ref<StatData> CharacterClass::get_stat_data() {
Ref<StatData> EntityData::get_stat_data() {
return _stat_data;
}
void CharacterClass::set_stat_data(Ref<StatData> value) {
void EntityData::set_stat_data(Ref<StatData> value) {
_stat_data = value;
}
//// SPECS ////
int CharacterClass::get_num_specs() {
int EntityData::get_num_specs() {
return _specs.size();
}
void CharacterClass::set_num_specs(int value) {
void EntityData::set_num_specs(int value) {
_specs.resize(value);
}
Ref<CharacterSpec> CharacterClass::get_spec(int index) const {
Ref<CharacterSpec> EntityData::get_spec(int index) const {
ERR_FAIL_INDEX_V(index, _specs.size(), Ref<CharacterSpec>());
return _specs[index];
}
void CharacterClass::set_spec(int index, Ref<CharacterSpec> spec) {
void EntityData::set_spec(int index, Ref<CharacterSpec> spec) {
ERR_FAIL_INDEX(index, _specs.size());
_specs.set(index, Ref<CharacterSpec>(spec));
}
Vector<Variant> CharacterClass::get_specs() {
Vector<Variant> EntityData::get_specs() {
Vector<Variant> r;
for (int i = 0; i < _specs.size(); i++) {
r.push_back(_specs[i].get_ref_ptr());
}
return r;
}
void CharacterClass::set_specs(const Vector<Variant> &specs) {
void EntityData::set_specs(const Vector<Variant> &specs) {
_specs.clear();
for (int i = 0; i < specs.size(); i++) {
Ref<CharacterSpec> spec = Ref<CharacterSpec>(specs[i]);
@ -85,32 +85,32 @@ void CharacterClass::set_specs(const Vector<Variant> &specs) {
//// SPELLS ////
int CharacterClass::get_num_spells() {
int EntityData::get_num_spells() {
return _spells.size();
}
void CharacterClass::set_num_spells(int value) {
void EntityData::set_num_spells(int value) {
_spells.resize(value);
}
Ref<Spell> CharacterClass::get_spell(int index) {
Ref<Spell> EntityData::get_spell(int index) {
ERR_FAIL_INDEX_V(index, _spells.size(), Ref<Spell>());
return _spells[index];
}
void CharacterClass::set_spell(int index, Ref<Spell> spell) {
void EntityData::set_spell(int index, Ref<Spell> spell) {
ERR_FAIL_INDEX(index, _spells.size());
_spells.set(index, Ref<Spell>(spell));
}
Vector<Variant> CharacterClass::get_spells() {
Vector<Variant> EntityData::get_spells() {
Vector<Variant> r;
for (int i = 0; i < _spells.size(); i++) {
r.push_back(_spells[i].get_ref_ptr());
}
return r;
}
void CharacterClass::set_spells(const Vector<Variant> &spells) {
void EntityData::set_spells(const Vector<Variant> &spells) {
_spells.clear();
for (int i = 0; i < spells.size(); i++) {
Ref<Spell> spell = Ref<Spell>(spells[i]);
@ -121,32 +121,32 @@ void CharacterClass::set_spells(const Vector<Variant> &spells) {
//// AURAS ////
int CharacterClass::get_num_auras() {
int EntityData::get_num_auras() {
return _auras.size();
}
void CharacterClass::set_num_auras(int value) {
void EntityData::set_num_auras(int value) {
_auras.resize(value);
}
Ref<Aura> CharacterClass::get_aura(int index) {
Ref<Aura> EntityData::get_aura(int index) {
ERR_FAIL_INDEX_V(index, _auras.size(), Ref<Aura>());
return _auras[index];
}
void CharacterClass::set_aura(int index, Ref<Aura> aura) {
void EntityData::set_aura(int index, Ref<Aura> aura) {
ERR_FAIL_INDEX(index, _auras.size());
_auras.set(index, aura);
}
Vector<Variant> CharacterClass::get_auras() {
Vector<Variant> EntityData::get_auras() {
Vector<Variant> r;
for (int i = 0; i < _auras.size(); i++) {
r.push_back(_auras[i].get_ref_ptr());
}
return r;
}
void CharacterClass::set_auras(const Vector<Variant> &auras) {
void EntityData::set_auras(const Vector<Variant> &auras) {
_auras.clear();
for (int i = 0; i < auras.size(); i++) {
Ref<Aura> aura = Ref<Aura>(auras[i]);
@ -157,32 +157,32 @@ void CharacterClass::set_auras(const Vector<Variant> &auras) {
//// AI ACTIONS ////
int CharacterClass::get_num_ai_actions() {
int EntityData::get_num_ai_actions() {
return _ai_actions.size();
}
void CharacterClass::set_num_ai_actions(int value) {
void EntityData::set_num_ai_actions(int value) {
_ai_actions.resize(value);
}
Ref<AIAction> CharacterClass::get_ai_action(int index) {
Ref<AIAction> EntityData::get_ai_action(int index) {
ERR_FAIL_INDEX_V(index, _ai_actions.size(), Ref<AIAction>());
return _ai_actions[index];
}
void CharacterClass::set_ai_action(int index, Ref<AIAction> ai_action) {
void EntityData::set_ai_action(int index, Ref<AIAction> ai_action) {
ERR_FAIL_INDEX(index, _ai_actions.size());
_ai_actions.set(index, ai_action);
}
Vector<Variant> CharacterClass::get_ai_actions() {
Vector<Variant> EntityData::get_ai_actions() {
Vector<Variant> r;
for (int i = 0; i < _ai_actions.size(); i++) {
r.push_back(_ai_actions[i].get_ref_ptr());
}
return r;
}
void CharacterClass::set_ai_actions(const Vector<Variant> &ai_actions) {
void EntityData::set_ai_actions(const Vector<Variant> &ai_actions) {
_ai_actions.clear();
for (int i = 0; i < ai_actions.size(); i++) {
Ref<AIAction> ai_action = Ref<AIAction>(ai_actions[i]);
@ -193,40 +193,40 @@ void CharacterClass::set_ai_actions(const Vector<Variant> &ai_actions) {
//// SETUP ////
void CharacterClass::setup_resources(Entity *entity) {
void EntityData::setup_resources(Entity *entity) {
if (has_method("_setup_resources"))
call("_setup_resources", entity);
}
//void CharacterClass::_setup_resources(Entity *entity) {
//void EntityData::_setup_resources(Entity *entity) {
//}
/*
Vector<int> CharacterClass::get_mob_party_ids() {
Vector<int> EntityData::get_mob_party_ids() {
return _mob_party_ids;
}
void CharacterClass::set_mob_party_ids(Vector<int> ids) {
void EntityData::set_mob_party_ids(Vector<int> ids) {
//specs;
}
Vector<int> CharacterClass::get_mob_dislike_ids() {
Vector<int> EntityData::get_mob_dislike_ids() {
return _mob_dislike_ids;
}
void CharacterClass::set_mob_dislike_ids(Vector<int> ids) {
void EntityData::set_mob_dislike_ids(Vector<int> ids) {
//specs;
}
*/
/*
int CharacterClass::get_inspector_max_spells() {
int EntityData::get_inspector_max_spells() {
return _inspector_max_spells;
}
void CharacterClass::set_inspector_max_spells(int value) {
void EntityData::set_inspector_max_spells(int value) {
_inspector_max_spells = value;
}*/
void CharacterClass::start_casting(int spell_id, Entity *caster, float spellScale) {
void EntityData::start_casting(int spell_id, Entity *caster, float spellScale) {
for (int i = 0; i < _spells.size(); i++) {
Ref<Spell> s = _spells[i];
@ -243,131 +243,131 @@ void CharacterClass::start_casting(int spell_id, Entity *caster, float spellScal
}
void CharacterClass::son_before_cast(Ref<SpellCastInfo> info) {
void EntityData::son_before_cast(Ref<SpellCastInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (has_method("_son_before_cast"))
call("_son_before_cast", info);
}
void CharacterClass::son_before_cast_target(Ref<SpellCastInfo> info) {
void EntityData::son_before_cast_target(Ref<SpellCastInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (has_method("_son_before_cast_target"))
call("_son_before_cast_target", info);
}
void CharacterClass::son_cast_finished(Ref<SpellCastInfo> info) {
void EntityData::son_cast_finished(Ref<SpellCastInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (has_method("_son_cast_finished"))
call("_son_cast_finished", info);
}
void CharacterClass::son_cast_started(Ref<SpellCastInfo> info) {
void EntityData::son_cast_started(Ref<SpellCastInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (has_method("_son_cast_started"))
call("_son_cast_started", info);
}
void CharacterClass::son_cast_failed(Ref<SpellCastInfo> info) {
void EntityData::son_cast_failed(Ref<SpellCastInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (has_method("_son_cast_failed"))
call("_son_cast_failed", info);
}
void CharacterClass::son_cast_finished_target(Ref<SpellCastInfo> info) {
void EntityData::son_cast_finished_target(Ref<SpellCastInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (has_method("_son_cast_finished_target"))
call("_son_cast_finished_target", info);
}
void CharacterClass::son_hit(Ref<SpellDamageInfo> data) {
void EntityData::son_hit(Ref<SpellDamageInfo> data) {
ERR_FAIL_COND(!data.is_valid());
if (has_method("_son_hit"))
call("_son_hit", data);
}
void CharacterClass::son_before_damage(Ref<SpellDamageInfo> data) {
void EntityData::son_before_damage(Ref<SpellDamageInfo> data) {
ERR_FAIL_COND(!data.is_valid());
if (has_method("_son_before_damage"))
call("_son_before_damage", data);
}
void CharacterClass::son_damage_receive(Ref<SpellDamageInfo> data) {
void EntityData::son_damage_receive(Ref<SpellDamageInfo> data) {
ERR_FAIL_COND(!data.is_valid());
if (has_method("_son_damage_receive"))
call("_son_damage_receive", data);
}
void CharacterClass::son_dealt_damage(Ref<SpellDamageInfo> data) {
void EntityData::son_dealt_damage(Ref<SpellDamageInfo> data) {
ERR_FAIL_COND(!data.is_valid());
if (has_method("_son_dealt_damage"))
call("_son_dealt_damage", data);
}
void CharacterClass::son_damage_dealt(Ref<SpellDamageInfo> data) {
void EntityData::son_damage_dealt(Ref<SpellDamageInfo> data) {
ERR_FAIL_COND(!data.is_valid());
if (has_method("_son_damage_dealt"))
call("_son_damage_dealt", data);
}
void CharacterClass::son_before_heal(Ref<SpellHealInfo> data) {
void EntityData::son_before_heal(Ref<SpellHealInfo> data) {
ERR_FAIL_COND(!data.is_valid());
if (has_method("_son_before_heal"))
call("_son_before_heal", data);
}
void CharacterClass::son_heal_receive(Ref<SpellHealInfo> data) {
void EntityData::son_heal_receive(Ref<SpellHealInfo> data) {
ERR_FAIL_COND(!data.is_valid());
if (has_method("_son_heal_receive"))
call("_son_heal_receive", data);
}
void CharacterClass::son_dealt_heal(Ref<SpellHealInfo> data) {
void EntityData::son_dealt_heal(Ref<SpellHealInfo> data) {
ERR_FAIL_COND(!data.is_valid());
if (has_method("_son_dealt_heal"))
call("_son_dealt_heal", data);
}
void CharacterClass::son_heal_dealt(Ref<SpellHealInfo> data) {
void EntityData::son_heal_dealt(Ref<SpellHealInfo> data) {
ERR_FAIL_COND(!data.is_valid());
if (has_method("_son_heal_dealt"))
call("_son_heal_dealt", data);
}
void CharacterClass::son_before_aura_applied(Ref<AuraData> data) {
void EntityData::son_before_aura_applied(Ref<AuraData> data) {
ERR_FAIL_COND(!data.is_valid());
if (has_method("_son_before_aura_applied"))
call("_son_before_aura_applied", data);
}
void CharacterClass::son_after_aura_applied(Ref<AuraData> data) {
void EntityData::son_after_aura_applied(Ref<AuraData> data) {
ERR_FAIL_COND(!data.is_valid());
if (has_method("_son_after_aura_applied"))
call("_son_after_aura_applied", data);
}
void CharacterClass::son_death(Entity *entity) {
void EntityData::son_death(Entity *entity) {
if (has_method("_son_death"))
call("_son_death", entity);
}
void CharacterClass::son_death_bind(Node *entity) {
void EntityData::son_death_bind(Node *entity) {
ERR_FAIL_COND(entity == NULL);
Entity *e = Object::cast_to<Entity>(entity);
@ -377,33 +377,33 @@ void CharacterClass::son_death_bind(Node *entity) {
son_death(e);
}
void CharacterClass::son_cooldown_added(Ref<Cooldown> cooldown) {
void EntityData::son_cooldown_added(Ref<Cooldown> cooldown) {
if (has_method("_son_cooldown_added"))
call("_son_cooldown_added", cooldown);
}
void CharacterClass::son_cooldown_removed(Ref<Cooldown> cooldown) {
void EntityData::son_cooldown_removed(Ref<Cooldown> cooldown) {
if (has_method("_son_cooldown_removed"))
call("_son_cooldown_removed", cooldown);
}
void CharacterClass::son_category_cooldown_added(Ref<CategoryCooldown> category_cooldown) {
void EntityData::son_category_cooldown_added(Ref<CategoryCooldown> category_cooldown) {
if (has_method("_son_category_cooldown_added"))
call("_son_category_cooldown_added", category_cooldown);
}
void CharacterClass::son_category_cooldown_removed(Ref<CategoryCooldown> category_cooldown) {
void EntityData::son_category_cooldown_removed(Ref<CategoryCooldown> category_cooldown) {
if (has_method("_son_category_cooldown_removed"))
call("_son_category_cooldown_removed", category_cooldown);
}
void CharacterClass::son_gcd_started(Entity *entity, float gcd) {
void EntityData::son_gcd_started(Entity *entity, float gcd) {
if (has_method("_son_gcd_started"))
call("_son_gcd_started", entity, gcd);
}
void CharacterClass::son_gcd_finished(Entity *entity) {
void EntityData::son_gcd_finished(Entity *entity) {
if (has_method("_son_gcd_finished"))
call("_son_gcd_finished", entity);
}
void CharacterClass::son_gcd_started_bind(Node *entity, float gcd) {
void EntityData::son_gcd_started_bind(Node *entity, float gcd) {
ERR_FAIL_COND(entity == NULL);
Entity *e = Object::cast_to<Entity>(entity);
@ -412,7 +412,7 @@ void CharacterClass::son_gcd_started_bind(Node *entity, float gcd) {
son_gcd_started(e, gcd);
}
void CharacterClass::son_gcd_finished_bind(Node *entity) {
void EntityData::son_gcd_finished_bind(Node *entity) {
ERR_FAIL_COND(entity == NULL);
Entity *e = Object::cast_to<Entity>(entity);
@ -423,45 +423,45 @@ void CharacterClass::son_gcd_finished_bind(Node *entity) {
}
//Clientside Event Handlers
void CharacterClass::con_cast_failed(Ref<SpellCastInfo> info) {
void EntityData::con_cast_failed(Ref<SpellCastInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (has_method("_con_cast_failed"))
call("_con_cast_failed", info);
}
void CharacterClass::con_cast_started(Ref<SpellCastInfo> info) {
void EntityData::con_cast_started(Ref<SpellCastInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (has_method("_con_cast_started"))
call("_con_cast_started", info);
}
void CharacterClass::con_cast_state_changed(Ref<SpellCastInfo> info) {
void EntityData::con_cast_state_changed(Ref<SpellCastInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (has_method("_con_cast_state_changed"))
call("_con_cast_state_changed", info);
}
void CharacterClass::con_cast_finished(Ref<SpellCastInfo> info) {
void EntityData::con_cast_finished(Ref<SpellCastInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (has_method("_con_cast_finished"))
call("_con_cast_finished", info);
}
void CharacterClass::con_spell_cast_success(Ref<SpellCastInfo> info) {
void EntityData::con_spell_cast_success(Ref<SpellCastInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (has_method("_con_spell_cast_success"))
call("_con_spell_cast_success", info);
}
void CharacterClass::con_death(Entity *entity) {
void EntityData::con_death(Entity *entity) {
ERR_FAIL_COND(entity == NULL);
if (has_method("_con_death"))
call("_con_death", entity);
}
void CharacterClass::con_death_bind(Node *entity) {
void EntityData::con_death_bind(Node *entity) {
ERR_FAIL_COND(entity == NULL);
Entity *e = Object::cast_to<Entity>(entity);
@ -471,89 +471,89 @@ void CharacterClass::con_death_bind(Node *entity) {
con_death(e);
}
void CharacterClass::con_cooldown_added(Ref<Cooldown> cooldown) {
void EntityData::con_cooldown_added(Ref<Cooldown> cooldown) {
ERR_FAIL_COND(!cooldown.is_valid());
if (has_method("_con_cooldown_added"))
call("_con_cooldown_added", cooldown);
}
void CharacterClass::con_cooldown_removed(Ref<Cooldown> cooldown) {
void EntityData::con_cooldown_removed(Ref<Cooldown> cooldown) {
ERR_FAIL_COND(!cooldown.is_valid());
if (has_method("_con_cooldown_removed"))
call("_con_cooldown_removed", cooldown);
}
void CharacterClass::con_category_cooldown_added(Ref<CategoryCooldown> category_cooldown) {
void EntityData::con_category_cooldown_added(Ref<CategoryCooldown> category_cooldown) {
ERR_FAIL_COND(!category_cooldown.is_valid());
if (has_method("_con_category_cooldown_added"))
call("_con_category_cooldown_added", category_cooldown);
}
void CharacterClass::con_category_cooldown_removed(Ref<CategoryCooldown> category_cooldown) {
void EntityData::con_category_cooldown_removed(Ref<CategoryCooldown> category_cooldown) {
ERR_FAIL_COND(!category_cooldown.is_valid());
if (has_method("_con_category_cooldown_removed"))
call("_con_category_cooldown_removed", category_cooldown);
}
void CharacterClass::con_aura_added(Ref<AuraData> data) {
void EntityData::con_aura_added(Ref<AuraData> data) {
ERR_FAIL_COND(!data.is_valid());
if (has_method("_con_aura_added"))
call("_con_aura_added", data);
}
void CharacterClass::con_aura_removed(Ref<AuraData> data) {
void EntityData::con_aura_removed(Ref<AuraData> data) {
ERR_FAIL_COND(!data.is_valid());
if (has_method("_con_aura_removed"))
call("_con_aura_removed", data);
}
void CharacterClass::con_aura_refresh(Ref<AuraData> data) {
void EntityData::con_aura_refresh(Ref<AuraData> data) {
ERR_FAIL_COND(!data.is_valid());
if (has_method("_con_aura_refresh"))
call("_con_aura_refresh", data);
}
void CharacterClass::con_damage_dealt(Ref<SpellDamageInfo> info) {
void EntityData::con_damage_dealt(Ref<SpellDamageInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (has_method("_con_damage_dealt"))
call("_con_damage_dealt", info);
}
void CharacterClass::con_dealt_damage(Ref<SpellDamageInfo> info) {
void EntityData::con_dealt_damage(Ref<SpellDamageInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (has_method("_con_dealt_damage"))
call("_con_dealt_damage", info);
}
void CharacterClass::con_heal_dealt(Ref<SpellHealInfo> info) {
void EntityData::con_heal_dealt(Ref<SpellHealInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (has_method("_con_heal_dealt"))
call("_con_heal_dealt", info);
}
void CharacterClass::con_dealt_heal(Ref<SpellHealInfo> info) {
void EntityData::con_dealt_heal(Ref<SpellHealInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (has_method("_con_dealt_heal"))
call("_con_dealt_heal", info);
}
void CharacterClass::con_gcd_started(Entity *entity, float gcd) {
void EntityData::con_gcd_started(Entity *entity, float gcd) {
if (has_method("_con_gcd_started"))
call("_con_gcd_started", entity, gcd);
}
void CharacterClass::con_gcd_finished(Entity *entity) {
void EntityData::con_gcd_finished(Entity *entity) {
if (has_method("_con_gcd_finished"))
call("_con_gcd_finished", entity);
}
void CharacterClass::con_gcd_started_bind(Node *entity, float gcd) {
void EntityData::con_gcd_started_bind(Node *entity, float gcd) {
ERR_FAIL_COND(entity == NULL);
Entity *e = Object::cast_to<Entity>(entity);
@ -562,7 +562,7 @@ void CharacterClass::con_gcd_started_bind(Node *entity, float gcd) {
con_gcd_started(e, gcd);
}
void CharacterClass::con_gcd_finished_bind(Node *entity) {
void EntityData::con_gcd_finished_bind(Node *entity) {
ERR_FAIL_COND(entity == NULL);
Entity *e = Object::cast_to<Entity>(entity);
@ -573,28 +573,28 @@ void CharacterClass::con_gcd_finished_bind(Node *entity) {
}
void CharacterClass::sai_follow(Entity *entity) {
void EntityData::sai_follow(Entity *entity) {
ERR_FAIL_COND(entity == NULL);
if (has_method("_sai_follow")) {
call("_sai_follow", entity);
}
}
void CharacterClass::sai_rest(Entity *entity) {
void EntityData::sai_rest(Entity *entity) {
ERR_FAIL_COND(entity == NULL);
if (has_method("_sai_rest")) {
call("_sai_rest", entity);
}
}
void CharacterClass::sai_regenerate(Entity *entity) {
void EntityData::sai_regenerate(Entity *entity) {
ERR_FAIL_COND(entity == NULL);
if (has_method("_sai_regenerate")) {
call("_sai_regenerate", entity);
}
}
void CharacterClass::sai_attack(Entity *entity) {
void EntityData::sai_attack(Entity *entity) {
ERR_FAIL_COND(entity == NULL);
if (has_method("_sai_attack")) {
@ -602,7 +602,7 @@ void CharacterClass::sai_attack(Entity *entity) {
}
}
void CharacterClass::sai_follow_bind(Node *entity) {
void EntityData::sai_follow_bind(Node *entity) {
ERR_FAIL_COND(entity == NULL);
Entity *e = Object::cast_to<Entity>(entity);
@ -611,7 +611,7 @@ void CharacterClass::sai_follow_bind(Node *entity) {
sai_follow(e);
}
void CharacterClass::sai_rest_bind(Node *entity) {
void EntityData::sai_rest_bind(Node *entity) {
ERR_FAIL_COND(entity == NULL);
Entity *e = Object::cast_to<Entity>(entity);
@ -620,7 +620,7 @@ void CharacterClass::sai_rest_bind(Node *entity) {
sai_rest(e);
}
void CharacterClass::sai_regenerate_bind(Node *entity) {
void EntityData::sai_regenerate_bind(Node *entity) {
ERR_FAIL_COND(entity == NULL);
Entity *e = Object::cast_to<Entity>(entity);
@ -629,7 +629,7 @@ void CharacterClass::sai_regenerate_bind(Node *entity) {
sai_regenerate(e);
}
void CharacterClass::sai_attack_bind(Node *entity) {
void EntityData::sai_attack_bind(Node *entity) {
ERR_FAIL_COND(entity == NULL);
Entity *e = Object::cast_to<Entity>(entity);
@ -639,40 +639,40 @@ void CharacterClass::sai_attack_bind(Node *entity) {
sai_attack(e);
}
void CharacterClass::_bind_methods() {
void EntityData::_bind_methods() {
//EventHandlers
ClassDB::bind_method(D_METHOD("son_before_cast", "info"), &CharacterClass::son_before_cast);
ClassDB::bind_method(D_METHOD("son_before_cast_target", "info"), &CharacterClass::son_before_cast_target);
ClassDB::bind_method(D_METHOD("son_cast_started", "info"), &CharacterClass::son_cast_started);
ClassDB::bind_method(D_METHOD("son_cast_failed", "info"), &CharacterClass::son_cast_failed);
ClassDB::bind_method(D_METHOD("son_cast_finished", "info"), &CharacterClass::son_cast_finished);
ClassDB::bind_method(D_METHOD("son_cast_finished_target", "info"), &CharacterClass::son_cast_finished_target);
ClassDB::bind_method(D_METHOD("son_before_cast", "info"), &EntityData::son_before_cast);
ClassDB::bind_method(D_METHOD("son_before_cast_target", "info"), &EntityData::son_before_cast_target);
ClassDB::bind_method(D_METHOD("son_cast_started", "info"), &EntityData::son_cast_started);
ClassDB::bind_method(D_METHOD("son_cast_failed", "info"), &EntityData::son_cast_failed);
ClassDB::bind_method(D_METHOD("son_cast_finished", "info"), &EntityData::son_cast_finished);
ClassDB::bind_method(D_METHOD("son_cast_finished_target", "info"), &EntityData::son_cast_finished_target);
ClassDB::bind_method(D_METHOD("son_hit", "data"), &CharacterClass::son_hit);
ClassDB::bind_method(D_METHOD("son_hit", "data"), &EntityData::son_hit);
ClassDB::bind_method(D_METHOD("son_before_damage", "data"), &CharacterClass::son_before_damage);
ClassDB::bind_method(D_METHOD("son_damage_receive", "data"), &CharacterClass::son_damage_receive);
ClassDB::bind_method(D_METHOD("son_dealt_damage", "data"), &CharacterClass::son_dealt_damage);
ClassDB::bind_method(D_METHOD("son_damage_dealt", "data"), &CharacterClass::son_damage_dealt);
ClassDB::bind_method(D_METHOD("son_before_damage", "data"), &EntityData::son_before_damage);
ClassDB::bind_method(D_METHOD("son_damage_receive", "data"), &EntityData::son_damage_receive);
ClassDB::bind_method(D_METHOD("son_dealt_damage", "data"), &EntityData::son_dealt_damage);
ClassDB::bind_method(D_METHOD("son_damage_dealt", "data"), &EntityData::son_damage_dealt);
ClassDB::bind_method(D_METHOD("son_before_heal", "data"), &CharacterClass::son_before_heal);
ClassDB::bind_method(D_METHOD("son_heal_receive", "data"), &CharacterClass::son_heal_receive);
ClassDB::bind_method(D_METHOD("son_dealt_heal", "data"), &CharacterClass::son_dealt_heal);
ClassDB::bind_method(D_METHOD("son_heal_dealt", "data"), &CharacterClass::son_heal_dealt);
ClassDB::bind_method(D_METHOD("son_before_heal", "data"), &EntityData::son_before_heal);
ClassDB::bind_method(D_METHOD("son_heal_receive", "data"), &EntityData::son_heal_receive);
ClassDB::bind_method(D_METHOD("son_dealt_heal", "data"), &EntityData::son_dealt_heal);
ClassDB::bind_method(D_METHOD("son_heal_dealt", "data"), &EntityData::son_heal_dealt);
ClassDB::bind_method(D_METHOD("son_before_aura_applied", "data"), &CharacterClass::son_before_aura_applied);
ClassDB::bind_method(D_METHOD("son_after_aura_applied", "data"), &CharacterClass::son_after_aura_applied);
ClassDB::bind_method(D_METHOD("son_before_aura_applied", "data"), &EntityData::son_before_aura_applied);
ClassDB::bind_method(D_METHOD("son_after_aura_applied", "data"), &EntityData::son_after_aura_applied);
ClassDB::bind_method(D_METHOD("son_death", "data"), &CharacterClass::son_death_bind);
ClassDB::bind_method(D_METHOD("son_death", "data"), &EntityData::son_death_bind);
ClassDB::bind_method(D_METHOD("son_cooldown_added", "cooldown"), &CharacterClass::son_cooldown_added);
ClassDB::bind_method(D_METHOD("son_cooldown_removed", "cooldown"), &CharacterClass::son_cooldown_removed);
ClassDB::bind_method(D_METHOD("son_cooldown_added", "cooldown"), &EntityData::son_cooldown_added);
ClassDB::bind_method(D_METHOD("son_cooldown_removed", "cooldown"), &EntityData::son_cooldown_removed);
ClassDB::bind_method(D_METHOD("son_category_cooldown_added", "category_cooldown"), &CharacterClass::son_category_cooldown_added);
ClassDB::bind_method(D_METHOD("son_category_cooldown_removed", "category_cooldown"), &CharacterClass::son_category_cooldown_removed);
ClassDB::bind_method(D_METHOD("son_category_cooldown_added", "category_cooldown"), &EntityData::son_category_cooldown_added);
ClassDB::bind_method(D_METHOD("son_category_cooldown_removed", "category_cooldown"), &EntityData::son_category_cooldown_removed);
ClassDB::bind_method(D_METHOD("son_gcd_started", "entity", "gcd"), &CharacterClass::son_gcd_started_bind);
ClassDB::bind_method(D_METHOD("son_gcd_finished", "entity"), &CharacterClass::son_gcd_finished_bind);
ClassDB::bind_method(D_METHOD("son_gcd_started", "entity", "gcd"), &EntityData::son_gcd_started_bind);
ClassDB::bind_method(D_METHOD("son_gcd_finished", "entity"), &EntityData::son_gcd_finished_bind);
BIND_VMETHOD(MethodInfo("_son_before_cast", PropertyInfo(Variant::OBJECT, "info", PROPERTY_HINT_RESOURCE_TYPE, "SpellCastInfo")));
BIND_VMETHOD(MethodInfo("_son_before_cast_target", PropertyInfo(Variant::OBJECT, "info", PROPERTY_HINT_RESOURCE_TYPE, "SpellCastInfo")));
@ -715,25 +715,25 @@ void CharacterClass::_bind_methods() {
BIND_VMETHOD(MethodInfo("_setup_resources", PropertyInfo(Variant::OBJECT, "entity", PROPERTY_HINT_RESOURCE_TYPE, "Entity")));
//Clientside Event Handlers
ClassDB::bind_method(D_METHOD("con_cast_failed", "info"), &CharacterClass::con_cast_failed);
ClassDB::bind_method(D_METHOD("con_cast_started", "info"), &CharacterClass::con_cast_started);
ClassDB::bind_method(D_METHOD("con_cast_state_changed", "info"), &CharacterClass::con_cast_state_changed);
ClassDB::bind_method(D_METHOD("con_cast_finished", "info"), &CharacterClass::con_cast_finished);
ClassDB::bind_method(D_METHOD("con_spell_cast_success", "info"), &CharacterClass::con_spell_cast_success);
ClassDB::bind_method(D_METHOD("con_cast_failed", "info"), &EntityData::con_cast_failed);
ClassDB::bind_method(D_METHOD("con_cast_started", "info"), &EntityData::con_cast_started);
ClassDB::bind_method(D_METHOD("con_cast_state_changed", "info"), &EntityData::con_cast_state_changed);
ClassDB::bind_method(D_METHOD("con_cast_finished", "info"), &EntityData::con_cast_finished);
ClassDB::bind_method(D_METHOD("con_spell_cast_success", "info"), &EntityData::con_spell_cast_success);
ClassDB::bind_method(D_METHOD("con_death", "data"), &CharacterClass::con_death_bind);
ClassDB::bind_method(D_METHOD("con_death", "data"), &EntityData::con_death_bind);
ClassDB::bind_method(D_METHOD("con_cooldown_added", "cooldown"), &CharacterClass::con_cooldown_added);
ClassDB::bind_method(D_METHOD("con_cooldown_removed", "cooldown"), &CharacterClass::con_cooldown_removed);
ClassDB::bind_method(D_METHOD("con_category_cooldown_added", "cooldown"), &CharacterClass::con_category_cooldown_added);
ClassDB::bind_method(D_METHOD("con_category_cooldown_removed", "cooldown"), &CharacterClass::con_category_cooldown_removed);
ClassDB::bind_method(D_METHOD("con_cooldown_added", "cooldown"), &EntityData::con_cooldown_added);
ClassDB::bind_method(D_METHOD("con_cooldown_removed", "cooldown"), &EntityData::con_cooldown_removed);
ClassDB::bind_method(D_METHOD("con_category_cooldown_added", "cooldown"), &EntityData::con_category_cooldown_added);
ClassDB::bind_method(D_METHOD("con_category_cooldown_removed", "cooldown"), &EntityData::con_category_cooldown_removed);
ClassDB::bind_method(D_METHOD("con_aura_added", "data"), &CharacterClass::con_aura_added);
ClassDB::bind_method(D_METHOD("con_aura_removed", "data"), &CharacterClass::con_aura_removed);
ClassDB::bind_method(D_METHOD("con_aura_refresh", "data"), &CharacterClass::con_aura_refresh);
ClassDB::bind_method(D_METHOD("con_aura_added", "data"), &EntityData::con_aura_added);
ClassDB::bind_method(D_METHOD("con_aura_removed", "data"), &EntityData::con_aura_removed);
ClassDB::bind_method(D_METHOD("con_aura_refresh", "data"), &EntityData::con_aura_refresh);
ClassDB::bind_method(D_METHOD("con_gcd_started", "entity", "gcd"), &CharacterClass::con_gcd_started_bind);
ClassDB::bind_method(D_METHOD("con_gcd_finished", "entity"), &CharacterClass::con_gcd_finished_bind);
ClassDB::bind_method(D_METHOD("con_gcd_started", "entity", "gcd"), &EntityData::con_gcd_started_bind);
ClassDB::bind_method(D_METHOD("con_gcd_finished", "entity"), &EntityData::con_gcd_finished_bind);
BIND_VMETHOD(MethodInfo("_con_cast_failed", PropertyInfo(Variant::OBJECT, "info", PROPERTY_HINT_RESOURCE_TYPE, "SpellCastInfo")));
BIND_VMETHOD(MethodInfo("_con_cast_started", PropertyInfo(Variant::OBJECT, "info", PROPERTY_HINT_RESOURCE_TYPE, "SpellCastInfo")));
@ -755,82 +755,83 @@ void CharacterClass::_bind_methods() {
BIND_VMETHOD(MethodInfo("_con_gcd_started", PropertyInfo(Variant::OBJECT, "entity", PROPERTY_HINT_RESOURCE_TYPE, "Entity"), PropertyInfo(Variant::REAL, "gcd")));
BIND_VMETHOD(MethodInfo("_con_gcd_finished", PropertyInfo(Variant::OBJECT, "entity", PROPERTY_HINT_RESOURCE_TYPE, "Entity")));
ClassDB::bind_method(D_METHOD("sai_follow", "entity"), &CharacterClass::sai_follow_bind);
ClassDB::bind_method(D_METHOD("sai_rest", "entity"), &CharacterClass::sai_rest_bind);
ClassDB::bind_method(D_METHOD("sai_regenerate", "entity"), &CharacterClass::sai_regenerate_bind);
ClassDB::bind_method(D_METHOD("sai_attack", "entity"), &CharacterClass::sai_attack_bind);
ClassDB::bind_method(D_METHOD("sai_follow", "entity"), &EntityData::sai_follow_bind);
ClassDB::bind_method(D_METHOD("sai_rest", "entity"), &EntityData::sai_rest_bind);
ClassDB::bind_method(D_METHOD("sai_regenerate", "entity"), &EntityData::sai_regenerate_bind);
ClassDB::bind_method(D_METHOD("sai_attack", "entity"), &EntityData::sai_attack_bind);
ClassDB::bind_method(D_METHOD("get_id"), &CharacterClass::get_id);
ClassDB::bind_method(D_METHOD("set_id", "value"), &CharacterClass::set_id);
ClassDB::bind_method(D_METHOD("get_id"), &EntityData::get_id);
ClassDB::bind_method(D_METHOD("set_id", "value"), &EntityData::set_id);
ADD_PROPERTY(PropertyInfo(Variant::INT, "id"), "set_id", "get_id");
ClassDB::bind_method(D_METHOD("get_character_class_name"), &CharacterClass::get_character_class_name);
ClassDB::bind_method(D_METHOD("set_character_class_name", "value"), &CharacterClass::set_character_class_name);
ADD_PROPERTY(PropertyInfo(Variant::STRING, "character_class_name"), "set_character_class_name", "get_character_class_name");
ClassDB::bind_method(D_METHOD("get_entity_data_name"), &EntityData::get_entity_data_name);
ClassDB::bind_method(D_METHOD("set_entity_data_name", "value"), &EntityData::set_entity_data_name);
ADD_PROPERTY(PropertyInfo(Variant::STRING, "entity_data_name"), "set_entity_data_name", "get_entity_data_name");
ClassDB::bind_method(D_METHOD("get_icon"), &CharacterClass::get_icon);
ClassDB::bind_method(D_METHOD("set_icon", "value"), &CharacterClass::set_icon);
ClassDB::bind_method(D_METHOD("get_icon"), &EntityData::get_icon);
ClassDB::bind_method(D_METHOD("set_icon", "value"), &EntityData::set_icon);
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "icon", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), "set_icon", "get_icon");
ClassDB::bind_method(D_METHOD("get_stat_data"), &CharacterClass::get_stat_data);
ClassDB::bind_method(D_METHOD("set_stat_data", "value"), &CharacterClass::set_stat_data);
ClassDB::bind_method(D_METHOD("get_stat_data"), &EntityData::get_stat_data);
ClassDB::bind_method(D_METHOD("set_stat_data", "value"), &EntityData::set_stat_data);
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "stat_data", PROPERTY_HINT_RESOURCE_TYPE, "StatData"), "set_stat_data", "get_stat_data");
ClassDB::bind_method(D_METHOD("get_player_resource_type"), &CharacterClass::get_player_resource_type);
ClassDB::bind_method(D_METHOD("set_player_resource_type", "value"), &CharacterClass::set_player_resource_type);
ClassDB::bind_method(D_METHOD("get_player_resource_type"), &EntityData::get_player_resource_type);
ClassDB::bind_method(D_METHOD("set_player_resource_type", "value"), &EntityData::set_player_resource_type);
ADD_PROPERTY(PropertyInfo(Variant::INT, "player_resource_type", PROPERTY_HINT_ENUM, "None, Rage, Mana, Energy, Time Anomaly"), "set_player_resource_type", "get_player_resource_type");
//// Specs ////
ClassDB::bind_method(D_METHOD("get_num_specs"), &CharacterClass::get_num_specs);
ClassDB::bind_method(D_METHOD("set_num_specs", "value"), &CharacterClass::set_num_specs);
ClassDB::bind_method(D_METHOD("get_num_specs"), &EntityData::get_num_specs);
ClassDB::bind_method(D_METHOD("set_num_specs", "value"), &EntityData::set_num_specs);
ClassDB::bind_method(D_METHOD("get_spec", "index"), &CharacterClass::get_spec);
ClassDB::bind_method(D_METHOD("set_spec", "index", "spec"), &CharacterClass::set_spec);
ClassDB::bind_method(D_METHOD("get_spec", "index"), &EntityData::get_spec);
ClassDB::bind_method(D_METHOD("set_spec", "index", "spec"), &EntityData::set_spec);
ClassDB::bind_method(D_METHOD("get_specs"), &CharacterClass::get_specs);
ClassDB::bind_method(D_METHOD("set_specs", "specs"), &CharacterClass::set_specs);
ClassDB::bind_method(D_METHOD("get_specs"), &EntityData::get_specs);
ClassDB::bind_method(D_METHOD("set_specs", "specs"), &EntityData::set_specs);
ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "specs", PROPERTY_HINT_NONE, "17/17:CharacterSpec", PROPERTY_USAGE_DEFAULT, "CharacterSpec"), "set_specs", "get_specs");
//// Spell ////
ClassDB::bind_method(D_METHOD("get_num_spells"), &CharacterClass::get_num_spells);
ClassDB::bind_method(D_METHOD("set_num_spells", "value"), &CharacterClass::set_num_spells);
ClassDB::bind_method(D_METHOD("get_num_spells"), &EntityData::get_num_spells);
ClassDB::bind_method(D_METHOD("set_num_spells", "value"), &EntityData::set_num_spells);
ClassDB::bind_method(D_METHOD("get_spell", "index"), &CharacterClass::get_spell);
ClassDB::bind_method(D_METHOD("set_spell", "index", "spell"), &CharacterClass::set_spell);
ClassDB::bind_method(D_METHOD("get_spell", "index"), &EntityData::get_spell);
ClassDB::bind_method(D_METHOD("set_spell", "index", "spell"), &EntityData::set_spell);
ClassDB::bind_method(D_METHOD("get_spells"), &CharacterClass::get_spells);
ClassDB::bind_method(D_METHOD("set_spells", "spells"), &CharacterClass::set_spells);
ClassDB::bind_method(D_METHOD("get_spells"), &EntityData::get_spells);
ClassDB::bind_method(D_METHOD("set_spells", "spells"), &EntityData::set_spells);
ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "spells", PROPERTY_HINT_NONE, "17/17:Spell", PROPERTY_USAGE_DEFAULT, "Spell"), "set_spells", "get_spells");
//// AURAS ////
ClassDB::bind_method(D_METHOD("get_num_auras"), &CharacterClass::get_num_auras);
ClassDB::bind_method(D_METHOD("set_num_auras", "value"), &CharacterClass::set_num_auras);
ClassDB::bind_method(D_METHOD("get_num_auras"), &EntityData::get_num_auras);
ClassDB::bind_method(D_METHOD("set_num_auras", "value"), &EntityData::set_num_auras);
ClassDB::bind_method(D_METHOD("get_aura", "index"), &CharacterClass::get_aura);
ClassDB::bind_method(D_METHOD("set_aura", "index", "aura"), &CharacterClass::set_aura);
ClassDB::bind_method(D_METHOD("get_aura", "index"), &EntityData::get_aura);
ClassDB::bind_method(D_METHOD("set_aura", "index", "aura"), &EntityData::set_aura);
ClassDB::bind_method(D_METHOD("get_auras"), &CharacterClass::get_auras);
ClassDB::bind_method(D_METHOD("set_auras", "auras"), &CharacterClass::set_auras);
ClassDB::bind_method(D_METHOD("get_auras"), &EntityData::get_auras);
ClassDB::bind_method(D_METHOD("set_auras", "auras"), &EntityData::set_auras);
ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "auras", PROPERTY_HINT_NONE, "17/17:Aura", PROPERTY_USAGE_DEFAULT, "Aura"), "set_auras", "get_auras");
//// AI ACTIONS ////
ClassDB::bind_method(D_METHOD("get_num_ai_actions"), &CharacterClass::get_num_ai_actions);
ClassDB::bind_method(D_METHOD("set_num_ai_actions", "value"), &CharacterClass::set_num_ai_actions);
ClassDB::bind_method(D_METHOD("get_num_ai_actions"), &EntityData::get_num_ai_actions);
ClassDB::bind_method(D_METHOD("set_num_ai_actions", "value"), &EntityData::set_num_ai_actions);
ClassDB::bind_method(D_METHOD("get_ai_action", "index"), &CharacterClass::get_ai_action);
ClassDB::bind_method(D_METHOD("set_ai_action", "index", "action"), &CharacterClass::set_ai_action);
ClassDB::bind_method(D_METHOD("get_ai_action", "index"), &EntityData::get_ai_action);
ClassDB::bind_method(D_METHOD("set_ai_action", "index", "action"), &EntityData::set_ai_action);
ClassDB::bind_method(D_METHOD("get_ai_actions"), &CharacterClass::get_ai_actions);
ClassDB::bind_method(D_METHOD("set_ai_actions", "auras"), &CharacterClass::set_ai_actions);
ClassDB::bind_method(D_METHOD("get_ai_actions"), &EntityData::get_ai_actions);
ClassDB::bind_method(D_METHOD("set_ai_actions", "auras"), &EntityData::set_ai_actions);
ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "ai_actions", PROPERTY_HINT_NONE, "17/17:AIAction", PROPERTY_USAGE_DEFAULT, "AIAction"), "set_ai_actions", "get_ai_actions");
}
CharacterClass::CharacterClass() {
EntityData::EntityData() {
//_spells = memnew(Vector<Ref<Spell> >());
_id = 0;
_player_resource_type = 0;
}
CharacterClass::~CharacterClass() {
EntityData::~EntityData() {
_spells.clear();
_specs.clear();
_auras.clear();

View File

@ -1,19 +1,19 @@
#ifndef CHARACTER_CLASS_H
#define CHARACTER_CLASS_H
#ifndef ENTITY_DATA_H
#define ENTITY_DATA_H
#include "core/resource.h"
#include "core/vector.h"
#include "scene/resources/texture.h"
#include "../entities/stats/stat_data.h"
#include "../entity_enums.h"
#include "../../entities/stats/stat_data.h"
#include "../../entity_enums.h"
#include "../entities/auras/aura_data.h"
#include "../pipelines/spell_damage_info.h"
#include "../pipelines/spell_heal_info.h"
#include "../../entities/auras/aura_data.h"
#include "../../pipelines/spell_damage_info.h"
#include "../../pipelines/spell_heal_info.h"
#include "../utility/cooldown.h"
#include "../utility/category_cooldown.h"
#include "../../utility/cooldown.h"
#include "../../utility/category_cooldown.h"
class Aura;
class Spell;
@ -31,15 +31,15 @@ enum CharacterWeaponDataTypes {
VARIANT_ENUM_CAST(CharacterWeaponDataTypes)
class CharacterClass : public Resource {
GDCLASS(CharacterClass, Resource);
class EntityData : public Resource {
GDCLASS(EntityData, Resource);
public:
int get_id();
void set_id(int value);
String get_character_class_name();
void set_character_class_name(String value);
String get_entity_data_name();
void set_entity_data_name(String value);
Ref<Texture> get_icon();
void set_icon(Ref<Texture> value);
@ -186,15 +186,15 @@ public:
void sai_regenerate_bind(Node *entity);
void sai_attack_bind(Node *entity);
CharacterClass();
~CharacterClass();
EntityData();
~EntityData();
protected:
static void _bind_methods();
private:
int _id;
String _character_class_name;
String _entity_data_name;
Ref<Texture> _icon;
int _player_resource_type;

View File

@ -14,11 +14,11 @@ void MobData::set_loot_db(const Ref<LootDataBase> lootdb) {
_lootdb = lootdb;
}
Ref<CharacterClass> MobData::get_character_class() const {
return _character_class;
Ref<EntityData> MobData::get_entity_data() const {
return _entity_data;
}
void MobData::set_character_class(const Ref<CharacterClass> character_class) {
_character_class = character_class;
void MobData::set_entity_data(const Ref<EntityData> entity_data) {
_entity_data = entity_data;
}
String MobData::get_player_name() {
@ -41,7 +41,7 @@ MobData::MobData() {
}
MobData::~MobData() {
_lootdb.unref();
_character_class.unref();
_entity_data.unref();
}
void MobData::_bind_methods() {
@ -55,9 +55,9 @@ void MobData::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_loot_db", "value"), &MobData::set_loot_db);
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "loot_db", PROPERTY_HINT_RESOURCE_TYPE, "LootDataBase"), "set_loot_db", "get_loot_db");
ClassDB::bind_method(D_METHOD("get_character_class"), &MobData::get_character_class);
ClassDB::bind_method(D_METHOD("set_character_class", "value"), &MobData::set_character_class);
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "character_class", PROPERTY_HINT_RESOURCE_TYPE, "CharacterClass"), "set_character_class", "get_character_class");
ClassDB::bind_method(D_METHOD("get_entity_data"), &MobData::get_entity_data);
ClassDB::bind_method(D_METHOD("set_entity_data", "value"), &MobData::set_entity_data);
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "entity_data", PROPERTY_HINT_RESOURCE_TYPE, "EntityData"), "set_entity_data", "get_entity_data");
ClassDB::bind_method(D_METHOD("get_static_player_name"), &MobData::get_static_player_name);
ClassDB::bind_method(D_METHOD("set_static_player_name", "value"), &MobData::set_static_player_name);

View File

@ -4,8 +4,8 @@
#include "core/resource.h"
#include "core/ustring.h"
#include "../data/character_class.h"
#include "../loot/loot_data_base.h"
#include "entity_data.h"
#include "../../loot/loot_data_base.h"
//Add it to the data manager too.
@ -19,8 +19,8 @@ public:
Ref<LootDataBase> get_loot_db() const;
void set_loot_db(const Ref<LootDataBase> lootdb);
Ref<CharacterClass> get_character_class() const;
void set_character_class(const Ref<CharacterClass> character_class);
Ref<EntityData> get_entity_data() const;
void set_entity_data(const Ref<EntityData> entity_data);
String get_player_name();
@ -36,7 +36,7 @@ protected:
private:
int _id;
Ref<LootDataBase> _lootdb;
Ref<CharacterClass> _character_class;
Ref<EntityData> _entity_data;
String _static_player_name;
//Skeleton -> basic gear
};

View File

@ -8,11 +8,11 @@ void PlayerCharacterData::set_id(const int id) {
_id = id;
}
Ref<CharacterClass> PlayerCharacterData::get_character_class() const {
return _character_class;
Ref<EntityData> PlayerCharacterData::get_entity_data() const {
return _entity_data;
}
void PlayerCharacterData::set_character_class(const Ref<CharacterClass> character_class) {
_character_class = character_class;
void PlayerCharacterData::set_entity_data(const Ref<EntityData> entity_data) {
_entity_data = entity_data;
}
String PlayerCharacterData::get_player_name() {
@ -34,7 +34,7 @@ PlayerCharacterData::PlayerCharacterData() {
_id = 0;
}
PlayerCharacterData::~PlayerCharacterData() {
_character_class.unref();
_entity_data.unref();
}
void PlayerCharacterData::_bind_methods() {
@ -44,9 +44,9 @@ void PlayerCharacterData::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_id", "value"), &PlayerCharacterData::set_id);
ADD_PROPERTY(PropertyInfo(Variant::INT, "id"), "set_id", "get_id");
ClassDB::bind_method(D_METHOD("get_character_class"), &PlayerCharacterData::get_character_class);
ClassDB::bind_method(D_METHOD("set_character_class", "value"), &PlayerCharacterData::set_character_class);
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "character_class", PROPERTY_HINT_RESOURCE_TYPE, "CharacterClass"), "set_character_class", "get_character_class");
ClassDB::bind_method(D_METHOD("get_entity_data"), &PlayerCharacterData::get_entity_data);
ClassDB::bind_method(D_METHOD("set_entity_data", "value"), &PlayerCharacterData::set_entity_data);
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "entity_data", PROPERTY_HINT_RESOURCE_TYPE, "EntityData"), "set_entity_data", "get_entity_data");
ClassDB::bind_method(D_METHOD("get_static_player_name"), &PlayerCharacterData::get_static_player_name);
ClassDB::bind_method(D_METHOD("set_static_player_name", "value"), &PlayerCharacterData::set_static_player_name);

View File

@ -4,8 +4,8 @@
#include "core/resource.h"
#include "core/ustring.h"
#include "../data/character_class.h"
#include "../loot/loot_data_base.h"
#include "entity_data.h"
#include "../../loot/loot_data_base.h"
//same as mob data
//name generator, or name -> probably an overrideable get_name
@ -20,8 +20,8 @@ public:
int get_id() const;
void set_id(const int id);
Ref<CharacterClass> get_character_class() const;
void set_character_class(const Ref<CharacterClass> character_class);
Ref<EntityData> get_entity_data() const;
void set_entity_data(const Ref<EntityData> entity_data);
String get_player_name();
@ -36,7 +36,7 @@ protected:
private:
int _id;
Ref<CharacterClass> _character_class;
Ref<EntityData> _entity_data;
String _static_player_name;
//Skeleton -> basic gear
};

View File

@ -4,7 +4,7 @@
#include "core/reference.h"
#include "core/ustring.h"
#include "talent.h"
#include "../../data/talent.h"
class Talent;

View File

@ -1,460 +0,0 @@
#include "Entity.h"
namespace BS {
namespace Player {
//Delegate declaration moved to header file
//Delegate declaration moved to header file
//Delegate declaration moved to header file
//Delegate declaration moved to header file
uint Entity::nextEntityGUID;
Entity* Entity::localPlayer;
List_T<Entity>* Entity::sNetworkedPlayers;
List_T<Entity>* Entity::sPlayers;
List_T<Entity>* Entity::sAis;
Dictionary_T<uint, Entity>* Entity::sPlayerGUIDS;
List_T<Entity>* Entity::cNetworkedPlayers;
List_T<Entity>* Entity::cPlayers;
List_T<Entity>* Entity::cAis;
Dictionary_T<uint, Entity>* Entity::cPlayerGUIDS;
Entity::SSpawnDelegate* Entity::SSpawn;
Entity::CSpawnDelegate* Entity::CSpawn;
Entity* Entity::self;
void Entity::addOnLocalPlayerChange(Entity::OnLocalPlayerChangedAction* value){
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnLocalPlayerChange;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do{
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Combine(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnLocalPlayerChange, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::removeOnLocalPlayerChange(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnLocalPlayerChange;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Remove(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnLocalPlayerChange, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::addOnSNetworkedPlayerAdded(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnSNetworkedPlayerAdded;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Combine(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnSNetworkedPlayerAdded, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::removeOnSNetworkedPlayerAdded(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnSNetworkedPlayerAdded;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Remove(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnSNetworkedPlayerAdded, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::addOnSNetworkedPlayerRemoved(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnSNetworkedPlayerRemoved;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Combine(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnSNetworkedPlayerRemoved, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::removeOnSNetworkedPlayerRemoved(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnSNetworkedPlayerRemoved;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Remove(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnSNetworkedPlayerRemoved, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::addOnSAiPlayerAdded(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnSAiPlayerAdded;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Combine(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnSAiPlayerAdded, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::removeOnSAiPlayerAdded(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnSAiPlayerAdded;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Remove(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnSAiPlayerAdded, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::addOnSAiPlayerRemoved(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnSAiPlayerRemoved;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Combine(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnSAiPlayerRemoved, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::removeOnSAiPlayerRemoved(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnSAiPlayerRemoved;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Remove(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnSAiPlayerRemoved, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::addOnSPlayerAdded(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnSPlayerAdded;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Combine(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnSPlayerAdded, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::removeOnSPlayerAdded(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnSPlayerAdded;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Remove(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnSPlayerAdded, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::addOnCNetworkedPlayerAdded(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnCNetworkedPlayerAdded;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Combine(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnCNetworkedPlayerAdded, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::removeOnCNetworkedPlayerAdded(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnCNetworkedPlayerAdded;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Remove(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnCNetworkedPlayerAdded, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::addOnCNetworkedPlayerRemoved(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnCNetworkedPlayerRemoved;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Combine(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnCNetworkedPlayerRemoved, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::removeOnCNetworkedPlayerRemoved(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnCNetworkedPlayerRemoved;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Remove(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnCNetworkedPlayerRemoved, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::addOnCAiPlayerAdded(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnCAiPlayerAdded;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Combine(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnCAiPlayerAdded, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::removeOnCAiPlayerAdded(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnCAiPlayerAdded;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Remove(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnCAiPlayerAdded, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::addOnCAiPlayerRemoved(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnCAiPlayerRemoved;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Combine(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnCAiPlayerRemoved, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::removeOnCAiPlayerRemoved(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnCAiPlayerRemoved;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Remove(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnCAiPlayerRemoved, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::addOnCPlayerAdded(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnCPlayerAdded;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Combine(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnCPlayerAdded, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
void Entity::removeOnCPlayerAdded(Entity::OnLocalPlayerChangedAction* value)
{
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction = Entity::OnCPlayerAdded;
Entity::OnLocalPlayerChangedAction* onLocalPlayerChangedAction2;
do {
onLocalPlayerChangedAction2 = onLocalPlayerChangedAction;
Entity::OnLocalPlayerChangedAction* value2 = (Entity::OnLocalPlayerChangedAction*)(Delegate::Remove(onLocalPlayerChangedAction2, value));
onLocalPlayerChangedAction = Interlocked::CompareExchange<Entity::OnLocalPlayerChangedAction*>(Entity::OnCPlayerAdded, value2, onLocalPlayerChangedAction2);
}
while (*onLocalPlayerChangedAction != *onLocalPlayerChangedAction2);
}
Entity* Entity::getLocalPlayer()
{
return Entity::localPlayer;
}
List_T<Entity>* Entity::getSNetworkedPlayers()
{
return Entity::sNetworkedPlayers;
}
List_T<Entity>* Entity::getSPlayers()
{
return Entity::sPlayers;
}
List_T<Entity>* Entity::getSAis()
{
return Entity::sAis;
}
Dictionary_T<uint, Entity>* Entity::getSPlayerGUIDS()
{
return Entity::sPlayerGUIDS;
}
List_T<Entity>* Entity::getCNetworkedPlayers()
{
return Entity::cNetworkedPlayers;
}
List_T<Entity>* Entity::getCPlayers()
{
return Entity::cPlayers;
}
List_T<Entity>* Entity::getCAis()
{
return Entity::cAis;
}
Dictionary_T<uint, Entity>* Entity::getCPlayerGUIDS()
{
return Entity::cPlayerGUIDS;
}
Entity::Entity()
{
Entity::nextEntityGUID = 1u;
Entity::sPlayers = new List_T<Entity>();
Entity::sAis = new List_T<Entity>();
Entity::sNetworkedPlayers = new List_T<Entity>();
Entity::sPlayerGUIDS = new Dictionary_T<uint, Entity>();
Entity::cPlayers = new List_T<Entity>();
Entity::cAis = new List_T<Entity>();
Entity::cNetworkedPlayers = new List_T<Entity>();
Entity::cPlayerGUIDS = new Dictionary_T<uint, Entity>();
}
void Entity::RegisterLocalPlayer(uint playerGUID, Entity* lp)
{
Entity::localPlayer = lp;
Entity::SRegisterPlayer(playerGUID, lp);
Entity::CRegisterPlayer(playerGUID, lp);
if (Entity::OnLocalPlayerChange != null) {
DELEGATE_INVOKE(Entity::OnLocalPlayerChange, lp);
}
}
void Entity::SRegisterAIPlayer(uint playerGUID, Entity* lp)
{
Entity::sAis->Add(lp);
Entity::SRegisterPlayer(playerGUID, lp);
if (Entity::OnSAiPlayerAdded != null) {
DELEGATE_INVOKE(Entity::OnSAiPlayerAdded, lp);
}
}
void Entity::SRegisterNetworkedPlayer(uint playerGUID, Entity* lp)
{
Entity::sNetworkedPlayers->Add(lp);
Entity::SRegisterPlayer(playerGUID, lp);
if (Entity::OnSNetworkedPlayerAdded != null) {
DELEGATE_INVOKE(Entity::OnSNetworkedPlayerAdded, lp);
}
}
void Entity::SRegisterPlayer(uint PlayerGUID, Entity* player)
{
if (Entity::sPlayerGUIDS->ContainsKey(PlayerGUID)) {
Debug::LogWarning(new String("SRegisterPlayer already containt player! FIX"));
return;
}
Entity::sPlayers->Add(player);
Entity::sPlayerGUIDS->Add(PlayerGUID, player);
if (Entity::OnSPlayerAdded != null) {
DELEGATE_INVOKE(Entity::OnSPlayerAdded, player);
}
}
void Entity::CRegisterAIPlayer(uint playerGUID, Entity* lp)
{
Entity::cAis->Add(lp);
Entity::CRegisterPlayer(playerGUID, lp);
if (Entity::OnCAiPlayerAdded != null) {
DELEGATE_INVOKE(Entity::OnCAiPlayerAdded, lp);
}
}
void Entity::CRegisterNetworkedPlayer(uint playerGUID, Entity* lp)
{
Entity::cNetworkedPlayers->Add(lp);
Entity::CRegisterPlayer(playerGUID, lp);
if (Entity::OnCNetworkedPlayerAdded != null) {
DELEGATE_INVOKE(Entity::OnCNetworkedPlayerAdded, lp);
}
}
void Entity::CRegisterPlayer(uint playerGUID, Entity* player)
{
Entity::cPlayers->Add(player);
Entity::cPlayerGUIDS->Add(playerGUID, player);
if (Entity::OnCPlayerAdded != null) {
DELEGATE_INVOKE(Entity::OnCPlayerAdded, player);
}
}
void Entity::UnRegisterLocalPlayer(uint playerGUID)
{
Entity::SUnRegisterPlayer(playerGUID, Entity::getLocalPlayer());
Entity::CUnRegisterPlayer(playerGUID, Entity::getLocalPlayer());
Entity::localPlayer = null;
if (Entity::OnLocalPlayerChange != null) {
DELEGATE_INVOKE(Entity::OnLocalPlayerChange, null);
}
}
void Entity::SUnregisterNetworkedPlayer(uint playerGUID, Entity* player)
{
Entity::sNetworkedPlayers->Remove(player);
Entity::SUnRegisterPlayer(playerGUID, player);
if (Entity::OnSNetworkedPlayerRemoved != null) {
DELEGATE_INVOKE(Entity::OnSNetworkedPlayerRemoved, player);
}
}
void Entity::SUnregisterAIPlayer(uint playerGUID, Entity* player)
{
Entity::sAis->Remove(player);
Entity::SUnRegisterPlayer(playerGUID, player);
if (Entity::OnSAiPlayerRemoved != null) {
DELEGATE_INVOKE(Entity::OnSAiPlayerRemoved, player);
}
}
void Entity::SUnRegisterPlayer(uint playerGUID, Entity* player)
{
Entity::sPlayers->Remove(player);
Entity::sPlayerGUIDS->Remove(playerGUID);
}
void Entity::CUnregisterNetworkedPlayer(uint playerGUID, Entity* player)
{
Entity::cNetworkedPlayers->Remove(player);
Entity::CUnRegisterPlayer(playerGUID, player);
if (Entity::OnCNetworkedPlayerRemoved != null) {
DELEGATE_INVOKE(Entity::OnCNetworkedPlayerRemoved, player);
}
}
void Entity::CUnregisterAIPlayer(uint playerGUID, Entity* player)
{
Entity::cAis->Remove(player);
Entity::CUnRegisterPlayer(playerGUID, player);
if (Entity::OnCAiPlayerRemoved != null) {
DELEGATE_INVOKE(Entity::OnCAiPlayerRemoved, player);
}
}
void Entity::CUnRegisterPlayer(uint playerGUID, Entity* player)
{
Entity::cPlayers->Remove(player);
Entity::cPlayerGUIDS->Remove(playerGUID);
}
void Entity::RegisterOnLocalPlayerChange(Entity::OnLocalPlayerChangedAction* action)
{
if (Entity::localPlayer != null) {
action(Entity::localPlayer);
}
Entity::OnLocalPlayerChange += action;
}
Entity* Entity::SGetPLayerWithGUID(uint guid)
{
if (Entity::sPlayerGUIDS->ContainsKey(guid)) {
return Entity::sPlayerGUIDS->GetData(guid);
}
return null;
}
Entity* Entity::CGetPLayerWithGUID(uint guid)
{
if (Entity::cPlayerGUIDS->ContainsKey(guid)) {
return Entity::cPlayerGUIDS->GetData(guid);
}
return null;
}
uint Entity::GetNextEntityGUID()
{
return Entity::nextEntityGUID++;
}
}
}

View File

@ -1,169 +0,0 @@
#pragma once
#include <System/System.h>
#include "MonoBehaviour.h"
#include <System/Delegate.h>
#include "EntityType.h"
#include "CxConnection.h"
#include "Vector3.h"
#include "Quaternion.h"
#include "GameObject.h"
#include <System/Collections/Generic/List.h>
#include <System/Collections/Generic/Dictionary.h>
#include "Interlocked.h"
#include "Debug.h"
using namespace UnityEngine;
using namespace CxNetworking::Sockets;
using namespace System::Collections::Generic;
using namespace System;
using namespace System::Threading;
namespace BS {
namespace Player {
class Entity : public abstract virtual MonoBehaviour, public abstract virtual Object
{
public:
DELEGATE(void, Entity*) OnLocalPlayerChangedAction;
public:
DELEGATE(void, Entity*) OnPlayerChangedAction;
public:
DELEGATE(GameObject*, EntityType, int, int, String*, uint, CxConnection*, bool, Vector3*, Quaternion*) SSpawnDelegate;
public:
DELEGATE(GameObject*, uint, EntityType, int, int, String*, CxConnection*, bool, Vector3*, Quaternion*) CSpawnDelegate;
public:
static uint nextEntityGUID;
private:
static Entity* localPlayer;
private:
static List_T<Entity>* sNetworkedPlayers;
private:
static List_T<Entity>* sPlayers;
private:
static List_T<Entity>* sAis;
private:
static Dictionary_T<uint, Entity>* sPlayerGUIDS;
private:
static List_T<Entity>* cNetworkedPlayers;
private:
static List_T<Entity>* cPlayers;
private:
static List_T<Entity>* cAis;
private:
static Dictionary_T<uint, Entity>* cPlayerGUIDS;
public:
static Entity::SSpawnDelegate* SSpawn;
public:
static Entity::CSpawnDelegate* CSpawn;
public:
static Entity* self;
public:
static void addOnLocalPlayerChange(Entity::OnLocalPlayerChangedAction* value);
public:
static void removeOnLocalPlayerChange(Entity::OnLocalPlayerChangedAction* value);
public:
static void addOnSNetworkedPlayerAdded(Entity::OnLocalPlayerChangedAction* value);
public:
static void removeOnSNetworkedPlayerAdded(Entity::OnLocalPlayerChangedAction* value);
public:
static void addOnSNetworkedPlayerRemoved(Entity::OnLocalPlayerChangedAction* value);
public:
static void removeOnSNetworkedPlayerRemoved(Entity::OnLocalPlayerChangedAction* value);
public:
static void addOnSAiPlayerAdded(Entity::OnLocalPlayerChangedAction* value);
public:
static void removeOnSAiPlayerAdded(Entity::OnLocalPlayerChangedAction* value);
public:
static void addOnSAiPlayerRemoved(Entity::OnLocalPlayerChangedAction* value);
public:
static void removeOnSAiPlayerRemoved(Entity::OnLocalPlayerChangedAction* value);
public:
static void addOnSPlayerAdded(Entity::OnLocalPlayerChangedAction* value);
public:
static void removeOnSPlayerAdded(Entity::OnLocalPlayerChangedAction* value);
public:
static void addOnCNetworkedPlayerAdded(Entity::OnLocalPlayerChangedAction* value);
public:
static void removeOnCNetworkedPlayerAdded(Entity::OnLocalPlayerChangedAction* value);
public:
static void addOnCNetworkedPlayerRemoved(Entity::OnLocalPlayerChangedAction* value);
public:
static void removeOnCNetworkedPlayerRemoved(Entity::OnLocalPlayerChangedAction* value);
public:
static void addOnCAiPlayerAdded(Entity::OnLocalPlayerChangedAction* value);
public:
static void removeOnCAiPlayerAdded(Entity::OnLocalPlayerChangedAction* value);
public:
static void addOnCAiPlayerRemoved(Entity::OnLocalPlayerChangedAction* value);
public:
static void removeOnCAiPlayerRemoved(Entity::OnLocalPlayerChangedAction* value);
public:
static void addOnCPlayerAdded(Entity::OnLocalPlayerChangedAction* value);
public:
static void removeOnCPlayerAdded(Entity::OnLocalPlayerChangedAction* value);
public:
static Entity* getLocalPlayer();
//Ignored empty method declaration
public:
static List_T<Entity>* getSNetworkedPlayers();
//Ignored empty method declaration
public:
static List_T<Entity>* getSPlayers();
//Ignored empty method declaration
public:
static List_T<Entity>* getSAis();
//Ignored empty method declaration
public:
static Dictionary_T<uint, Entity>* getSPlayerGUIDS();
//Ignored empty method declaration
public:
static List_T<Entity>* getCNetworkedPlayers();
//Ignored empty method declaration
public:
static List_T<Entity>* getCPlayers();
//Ignored empty method declaration
public:
static List_T<Entity>* getCAis();
//Ignored empty method declaration
public:
static Dictionary_T<uint, Entity>* getCPlayerGUIDS();
//Ignored empty method declaration
static:
Entity();
public:
static void RegisterLocalPlayer(uint playerGUID, Entity* lp);
public:
static void SRegisterAIPlayer(uint playerGUID, Entity* lp);
public:
static void SRegisterNetworkedPlayer(uint playerGUID, Entity* lp);
public:
static void SRegisterPlayer(uint PlayerGUID, Entity* player);
public:
static void CRegisterAIPlayer(uint playerGUID, Entity* lp);
public:
static void CRegisterNetworkedPlayer(uint playerGUID, Entity* lp);
public:
static void CRegisterPlayer(uint playerGUID, Entity* player);
public:
static void UnRegisterLocalPlayer(uint playerGUID);
public:
static void SUnregisterNetworkedPlayer(uint playerGUID, Entity* player);
public:
static void SUnregisterAIPlayer(uint playerGUID, Entity* player);
public:
static void SUnRegisterPlayer(uint playerGUID, Entity* player);
public:
static void CUnregisterNetworkedPlayer(uint playerGUID, Entity* player);
public:
static void CUnregisterAIPlayer(uint playerGUID, Entity* player);
public:
static void CUnRegisterPlayer(uint playerGUID, Entity* player);
public:
static void RegisterOnLocalPlayerChange(Entity::OnLocalPlayerChangedAction* action);
public:
static Entity* SGetPLayerWithGUID(uint guid);
public:
static Entity* CGetPLayerWithGUID(uint guid);
public:
static uint GetNextEntityGUID();
};
}
}

View File

@ -43,23 +43,23 @@ void Entity::sets_guid(int value) {
SEND_RPC(rpc("setc_guid", value), setc_guid(value));
}
int Entity::gets_character_class_id() {
int Entity::gets_entity_data_id() {
return _s_class_id;
}
void Entity::sets_character_class_id(int value) {
void Entity::sets_entity_data_id(int value) {
_s_class_id = value;
SEND_RPC(rpc("setc_character_class_id", value), setc_character_class_id(value));
SEND_RPC(rpc("setc_entity_data_id", value), setc_entity_data_id(value));
}
int Entity::getc_character_class_id() {
int Entity::getc_entity_data_id() {
return _c_class_id;
}
void Entity::setc_character_class_id(int value) {
void Entity::setc_entity_data_id(int value) {
_c_class_id = value;
if (DataManager::get_instance() != NULL) {
setc_character_class(DataManager::get_instance()->get_character_class(value));
setc_entity_data(DataManager::get_instance()->get_entity_data(value));
}
}
@ -143,35 +143,35 @@ void Entity::setc_xp(int value) {
_c_xp = value;
}
Ref<CharacterClass> Entity::getc_character_class() {
return _c_character_class;
Ref<EntityData> Entity::getc_entity_data() {
return _c_entity_data;
}
void Entity::setc_character_class(Ref<CharacterClass> value) {
_c_character_class = value;
void Entity::setc_entity_data(Ref<EntityData> value) {
_c_entity_data = value;
emit_signal("ccharacter_class_changed", value);
emit_signal("centity_data_changed", value);
}
Ref<CharacterClass> Entity::gets_character_class() {
return _s_character_class;
Ref<EntityData> Entity::gets_entity_data() {
return _s_entity_data;
}
void Entity::sets_character_class(Ref<CharacterClass> value) {
_s_character_class = value;
void Entity::sets_entity_data(Ref<EntityData> value) {
_s_entity_data = value;
if (value.is_valid()) {
value->setup_resources(this);
sinitialize_stats();
sets_character_class_id(value->get_id());
sets_entity_data_id(value->get_id());
}
if (!Engine::get_singleton()->is_editor_hint())
set_process(value.is_valid());
emit_signal("scharacter_class_changed", value);
emit_signal("sentity_data_changed", value);
//SEND_RPC(rpc("setc_character_class", value), setc_character_class(value));
//SEND_RPC(rpc("setc_entity_data", value), setc_entity_data(value));
}
Entity::Entity() {
@ -276,7 +276,7 @@ Entity::Entity() {
SET_RPC_REMOTE("csend_request_rank_decrease");
SET_RPC_REMOTE("setc_guid");
SET_RPC_REMOTE("setc_character_class_id");
SET_RPC_REMOTE("setc_entity_data_id");
SET_RPC_REMOTE("setc_entity_type");
SET_RPC_REMOTE("setc_player_name");
SET_RPC_REMOTE("setc_gender");
@ -366,11 +366,11 @@ void Entity::initialize(Ref<EntityCreateInfo> info) {
sets_xp(info->get_xp());
setc_xp(info->get_xp());
sets_character_class(info->get_character_class());
//setc_character_class(info->get_character_class());
sets_entity_data(info->get_entity_data());
//setc_entity_data(info->get_entity_data());
/*
if (gets_character_class() != NULL) {
Ref<StatData> sd = gets_character_class()->get_stat_data();
if (gets_entity_data() != NULL) {
Ref<StatData> sd = gets_entity_data()->get_stat_data();
for (int i = 0; i < Stat::STAT_ID_TOTAL_STATS; ++i) {
Ref<StatDataEntry> entry = sd->get_stat_data_int(i);
@ -388,10 +388,10 @@ void Entity::initialize(Ref<EntityCreateInfo> info) {
}
void Entity::sinitialize_stats() {
//gets_character_class()->get_stat_data()->get_stats_for_stat(_health);
//Ref<StatDataEntry> e = gets_character_class()->get_stat_data()->get_stat_data_enum(Stat::STAT_ID_HEALTH);
//gets_entity_data()->get_stat_data()->get_stats_for_stat(_health);
//Ref<StatDataEntry> e = gets_entity_data()->get_stat_data()->get_stat_data_enum(Stat::STAT_ID_HEALTH);
Ref<CharacterClass> cc = gets_character_class();
Ref<EntityData> cc = gets_entity_data();
ERR_FAIL_COND(!cc.is_valid());
@ -788,8 +788,8 @@ void Entity::creceive_mana_changed(int amount) {
void Entity::son_before_aura_applied(Ref<AuraData> data) {
ERR_FAIL_COND(!data.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_after_aura_applied(data);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_after_aura_applied(data);
}
if (has_method("_son_before_aura_applied"))
@ -805,8 +805,8 @@ void Entity::son_before_aura_applied(Ref<AuraData> data) {
void Entity::son_after_aura_applied(Ref<AuraData> data) {
ERR_FAIL_COND(!data.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_after_aura_applied(data);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_after_aura_applied(data);
}
if (has_method("_son_after_aura_applied"))
@ -826,7 +826,7 @@ void Entity::son_after_aura_applied(Ref<AuraData> data) {
//// Spell System ////
void Entity::scast_spell(int spell_id) {
Ref<CharacterClass> cc = gets_character_class();
Ref<EntityData> cc = gets_entity_data();
if (cc == NULL)
return;
@ -849,8 +849,8 @@ void Entity::update_auras(float delta) {
void Entity::son_before_cast(Ref<SpellCastInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_before_cast(info);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_before_cast(info);
}
if (has_method("_son_before_cast"))
@ -866,8 +866,8 @@ void Entity::son_before_cast(Ref<SpellCastInfo> info) {
void Entity::son_before_cast_target(Ref<SpellCastInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_after_aura_applied(info);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_after_aura_applied(info);
}
if (has_method("_son_before_cast_target"))
@ -883,8 +883,8 @@ void Entity::son_before_cast_target(Ref<SpellCastInfo> info) {
void Entity::son_hit(Ref<SpellDamageInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_hit(info);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_hit(info);
}
if (has_method("_son_hit"))
@ -900,8 +900,8 @@ void Entity::son_hit(Ref<SpellDamageInfo> info) {
void Entity::son_before_damage(Ref<SpellDamageInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_before_damage(info);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_before_damage(info);
}
if (has_method("_son_before_damage"))
@ -917,8 +917,8 @@ void Entity::son_before_damage(Ref<SpellDamageInfo> info) {
void Entity::son_damage_receive(Ref<SpellDamageInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_damage_receive(info);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_damage_receive(info);
}
if (has_method("_son_damage_receive"))
@ -934,8 +934,8 @@ void Entity::son_damage_receive(Ref<SpellDamageInfo> info) {
void Entity::son_dealt_damage(Ref<SpellDamageInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_dealt_damage(info);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_dealt_damage(info);
}
if (has_method("_son_dealt_damage"))
@ -951,8 +951,8 @@ void Entity::son_dealt_damage(Ref<SpellDamageInfo> info) {
void Entity::son_damage_dealt(Ref<SpellDamageInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_damage_dealt(info);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_damage_dealt(info);
}
if (has_method("_son_damage_dealt"))
@ -969,8 +969,8 @@ void Entity::son_damage_dealt(Ref<SpellDamageInfo> info) {
void Entity::son_before_heal(Ref<SpellHealInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_before_heal(info);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_before_heal(info);
}
if (has_method("_son_before_heal"))
@ -986,8 +986,8 @@ void Entity::son_before_heal(Ref<SpellHealInfo> info) {
void Entity::son_heal_receive(Ref<SpellHealInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_heal_receive(info);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_heal_receive(info);
}
if (has_method("_son_heal_receive"))
@ -1003,8 +1003,8 @@ void Entity::son_heal_receive(Ref<SpellHealInfo> info) {
void Entity::son_dealt_heal(Ref<SpellHealInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_dealt_heal(info);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_dealt_heal(info);
}
if (has_method("_son_dealt_heal"))
@ -1020,8 +1020,8 @@ void Entity::son_dealt_heal(Ref<SpellHealInfo> info) {
void Entity::son_heal_dealt(Ref<SpellHealInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_heal_dealt(info);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_heal_dealt(info);
}
if (has_method("_son_heal_dealt"))
@ -1078,8 +1078,8 @@ void Entity::sapply_passives_heal_deal(Ref<SpellHealInfo> info) {
void Entity::son_cast_finished(Ref<SpellCastInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_cast_finished(info);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_cast_finished(info);
}
if (has_method("_son_cast_finished"))
@ -1095,8 +1095,8 @@ void Entity::son_cast_finished(Ref<SpellCastInfo> info) {
void Entity::son_cast_started(Ref<SpellCastInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_cast_started(info);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_cast_started(info);
}
if (has_method("_son_cast_started"))
@ -1112,8 +1112,8 @@ void Entity::son_cast_started(Ref<SpellCastInfo> info) {
void Entity::son_cast_failed(Ref<SpellCastInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_cast_failed(info);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_cast_failed(info);
}
if (has_method("_son_cast_failed"))
@ -1129,8 +1129,8 @@ void Entity::son_cast_failed(Ref<SpellCastInfo> info) {
void Entity::son_cast_finished_target(Ref<SpellCastInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_cast_finished_target(info);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_cast_finished_target(info);
}
if (has_method("_son_cast_finished_target"))
@ -1144,8 +1144,8 @@ void Entity::son_cast_finished_target(Ref<SpellCastInfo> info) {
}
void Entity::son_death() {
if (_s_character_class.is_valid()) {
_s_character_class->son_death(this);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_death(this);
}
for (int i = 0; i < _s_auras.size(); ++i) {
@ -1161,8 +1161,8 @@ void Entity::son_death() {
void Entity::son_cooldown_added(Ref<Cooldown> cooldown) {
ERR_FAIL_COND(!cooldown.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_cooldown_added(cooldown);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_cooldown_added(cooldown);
}
if (has_method("_son_cooldown_added"))
@ -1177,8 +1177,8 @@ void Entity::son_cooldown_added(Ref<Cooldown> cooldown) {
void Entity::son_cooldown_removed(Ref<Cooldown> cooldown) {
ERR_FAIL_COND(!cooldown.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_cooldown_removed(cooldown);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_cooldown_removed(cooldown);
}
if (has_method("_son_cooldown_removed"))
@ -1194,8 +1194,8 @@ void Entity::son_cooldown_removed(Ref<Cooldown> cooldown) {
void Entity::son_category_cooldown_added(Ref<CategoryCooldown> category_cooldown) {
ERR_FAIL_COND(!category_cooldown.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_category_cooldown_added(category_cooldown);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_category_cooldown_added(category_cooldown);
}
if (has_method("_son_category_cooldown_added"))
@ -1210,8 +1210,8 @@ void Entity::son_category_cooldown_added(Ref<CategoryCooldown> category_cooldown
void Entity::son_category_cooldown_removed(Ref<CategoryCooldown> category_cooldown) {
ERR_FAIL_COND(!category_cooldown.is_valid());
if (_s_character_class.is_valid()) {
_s_character_class->son_category_cooldown_removed(category_cooldown);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_category_cooldown_removed(category_cooldown);
}
if (has_method("_son_category_cooldown_removed"))
@ -1225,8 +1225,8 @@ void Entity::son_category_cooldown_removed(Ref<CategoryCooldown> category_cooldo
}
void Entity::son_gcd_started() {
if (_s_character_class.is_valid()) {
_s_character_class->son_gcd_started(this, _s_gcd);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_gcd_started(this, _s_gcd);
}
if (has_method("_son_gcd_started"))
@ -1239,8 +1239,8 @@ void Entity::son_gcd_started() {
}
}
void Entity::son_gcd_finished() {
if (_s_character_class.is_valid()) {
_s_character_class->son_gcd_finished(this);
if (_s_entity_data.is_valid()) {
_s_entity_data->son_gcd_finished(this);
}
if (has_method("_son_gcd_finished"))
@ -1253,8 +1253,8 @@ void Entity::son_gcd_finished() {
}
}
void Entity::con_gcd_started() {
if (_s_character_class.is_valid()) {
_s_character_class->con_gcd_started(this, _c_gcd);
if (_s_entity_data.is_valid()) {
_s_entity_data->con_gcd_started(this, _c_gcd);
}
if (has_method("_con_gcd_started"))
@ -1267,8 +1267,8 @@ void Entity::con_gcd_started() {
}
}
void Entity::con_gcd_finished() {
if (_s_character_class.is_valid()) {
_s_character_class->con_gcd_finished(this);
if (_s_entity_data.is_valid()) {
_s_entity_data->con_gcd_finished(this);
}
if (has_method("_con_gcd_finished"))
@ -1430,8 +1430,8 @@ void Entity::cremove_aura(Ref<AuraData> aura) {
if (removed) {
aura->get_aura()->con_aura_removed(aura);
if (_s_character_class.is_valid()) {
_s_character_class->con_aura_removed(aura);
if (_s_entity_data.is_valid()) {
_s_entity_data->con_aura_removed(aura);
}
if (has_method("_con_aura_removed"))
@ -1453,8 +1453,8 @@ void Entity::cremove_aura_exact(Ref<AuraData> aura) {
}
}
if (_s_character_class.is_valid()) {
_s_character_class->con_aura_removed(aura);
if (_s_entity_data.is_valid()) {
_s_entity_data->con_aura_removed(aura);
}
if (has_method("_con_aura_removed"))
@ -1475,8 +1475,8 @@ void Entity::cremove_aura_dispelled(Ref<AuraData> aura) {
}
}
if (_s_character_class.is_valid()) {
_s_character_class->con_aura_removed(aura);
if (_s_entity_data.is_valid()) {
_s_entity_data->con_aura_removed(aura);
}
if (has_method("_con_aura_removed"))
@ -1506,8 +1506,8 @@ void Entity::cremove_aura_expired(Ref<AuraData> aura) {
}
}
if (_s_character_class.is_valid()) {
_s_character_class->con_aura_removed(aura);
if (_s_entity_data.is_valid()) {
_s_entity_data->con_aura_removed(aura);
}
if (has_method("_con_aura_removed"))
@ -1571,8 +1571,8 @@ void Entity::con_cast_failed(Ref<SpellCastInfo> info) {
info->get_spell()->con_spell_cast_failed(info);
if (_c_character_class.is_valid()) {
_c_character_class->con_cast_failed(info);
if (_c_entity_data.is_valid()) {
_c_entity_data->con_cast_failed(info);
}
for (int i = 0; i < _c_auras.size(); ++i) {
@ -1590,8 +1590,8 @@ void Entity::con_cast_started(Ref<SpellCastInfo> info) {
info->get_spell()->con_spell_cast_started(info);
if (_c_character_class.is_valid()) {
_c_character_class->con_cast_started(info);
if (_c_entity_data.is_valid()) {
_c_entity_data->con_cast_started(info);
}
for (int i = 0; i < _c_auras.size(); ++i) {
@ -1609,8 +1609,8 @@ void Entity::con_cast_state_changed(Ref<SpellCastInfo> info) {
//info->get_spell()->con_spell_cast_(info);
if (_c_character_class.is_valid()) {
_c_character_class->con_cast_state_changed(info);
if (_c_entity_data.is_valid()) {
_c_entity_data->con_cast_state_changed(info);
}
for (int i = 0; i < _c_auras.size(); ++i) {
@ -1628,8 +1628,8 @@ void Entity::con_cast_finished(Ref<SpellCastInfo> info) {
info->get_spell()->con_spell_cast_success(info);
if (_c_character_class.is_valid()) {
_c_character_class->con_cast_finished(info);
if (_c_entity_data.is_valid()) {
_c_entity_data->con_cast_finished(info);
}
for (int i = 0; i < _c_auras.size(); ++i) {
@ -1647,8 +1647,8 @@ void Entity::con_spell_cast_success(Ref<SpellCastInfo> info) {
info->get_spell()->con_spell_cast_success(info);
if (_c_character_class.is_valid()) {
_c_character_class->con_spell_cast_success(info);
if (_c_entity_data.is_valid()) {
_c_entity_data->con_spell_cast_success(info);
}
for (int i = 0; i < _c_auras.size(); ++i) {
@ -1662,8 +1662,8 @@ void Entity::con_spell_cast_success(Ref<SpellCastInfo> info) {
}
void Entity::con_death() {
if (_c_character_class.is_valid()) {
_c_character_class->con_death(this);
if (_c_entity_data.is_valid()) {
_c_entity_data->con_death(this);
}
for (int i = 0; i < _c_auras.size(); ++i) {
@ -1679,8 +1679,8 @@ void Entity::con_death() {
void Entity::con_cooldown_added(Ref<Cooldown> cooldown) {
ERR_FAIL_COND(!cooldown.is_valid());
if (_c_character_class.is_valid()) {
_c_character_class->con_cooldown_added(cooldown);
if (_c_entity_data.is_valid()) {
_c_entity_data->con_cooldown_added(cooldown);
}
for (int i = 0; i < _c_auras.size(); ++i) {
@ -1695,8 +1695,8 @@ void Entity::con_cooldown_added(Ref<Cooldown> cooldown) {
void Entity::con_cooldown_removed(Ref<Cooldown> cooldown) {
ERR_FAIL_COND(!cooldown.is_valid());
if (_c_character_class.is_valid()) {
_c_character_class->con_cooldown_removed(cooldown);
if (_c_entity_data.is_valid()) {
_c_entity_data->con_cooldown_removed(cooldown);
}
for (int i = 0; i < _c_auras.size(); ++i) {
@ -1711,8 +1711,8 @@ void Entity::con_cooldown_removed(Ref<Cooldown> cooldown) {
void Entity::con_category_cooldown_added(Ref<CategoryCooldown> category_cooldown) {
ERR_FAIL_COND(!category_cooldown.is_valid());
if (_c_character_class.is_valid()) {
_c_character_class->con_category_cooldown_added(category_cooldown);
if (_c_entity_data.is_valid()) {
_c_entity_data->con_category_cooldown_added(category_cooldown);
}
for (int i = 0; i < _c_auras.size(); ++i) {
@ -1727,8 +1727,8 @@ void Entity::con_category_cooldown_added(Ref<CategoryCooldown> category_cooldown
void Entity::con_category_cooldown_removed(Ref<CategoryCooldown> category_cooldown) {
ERR_FAIL_COND(!category_cooldown.is_valid());
if (_c_character_class.is_valid()) {
_c_character_class->con_category_cooldown_removed(category_cooldown);
if (_c_entity_data.is_valid()) {
_c_entity_data->con_category_cooldown_removed(category_cooldown);
}
for (int i = 0; i < _c_auras.size(); ++i) {
@ -1744,8 +1744,8 @@ void Entity::con_category_cooldown_removed(Ref<CategoryCooldown> category_cooldo
void Entity::con_aura_added(Ref<AuraData> data) {
ERR_FAIL_COND(!data.is_valid());
if (_c_character_class.is_valid()) {
_c_character_class->con_aura_added(data);
if (_c_entity_data.is_valid()) {
_c_entity_data->con_aura_added(data);
}
for (int i = 0; i < _c_auras.size(); ++i) {
@ -1761,8 +1761,8 @@ void Entity::con_aura_added(Ref<AuraData> data) {
void Entity::con_aura_removed(Ref<AuraData> data) {
ERR_FAIL_COND(!data.is_valid());
if (_c_character_class.is_valid()) {
_c_character_class->con_aura_removed(data);
if (_c_entity_data.is_valid()) {
_c_entity_data->con_aura_removed(data);
}
for (int i = 0; i < _c_auras.size(); ++i) {
@ -1778,8 +1778,8 @@ void Entity::con_aura_removed(Ref<AuraData> data) {
void Entity::con_aura_refresh(Ref<AuraData> data) {
ERR_FAIL_COND(!data.is_valid());
if (_c_character_class.is_valid()) {
_c_character_class->con_aura_refresh(data);
if (_c_entity_data.is_valid()) {
_c_entity_data->con_aura_refresh(data);
}
for (int i = 0; i < _c_auras.size(); ++i) {
@ -1795,8 +1795,8 @@ void Entity::con_aura_refresh(Ref<AuraData> data) {
void Entity::con_damage_dealt(Ref<SpellDamageInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_c_character_class.is_valid()) {
_c_character_class->con_damage_dealt(info);
if (_c_entity_data.is_valid()) {
_c_entity_data->con_damage_dealt(info);
}
for (int i = 0; i < _c_auras.size(); ++i) {
@ -1815,8 +1815,8 @@ void Entity::con_damage_dealt(Ref<SpellDamageInfo> info) {
void Entity::con_dealt_damage(Ref<SpellDamageInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_c_character_class.is_valid()) {
_c_character_class->con_dealt_damage(info);
if (_c_entity_data.is_valid()) {
_c_entity_data->con_dealt_damage(info);
}
for (int i = 0; i < _c_auras.size(); ++i) {
@ -1835,8 +1835,8 @@ void Entity::con_dealt_damage(Ref<SpellDamageInfo> info) {
void Entity::con_heal_dealt(Ref<SpellHealInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_c_character_class.is_valid()) {
_c_character_class->con_heal_dealt(info);
if (_c_entity_data.is_valid()) {
_c_entity_data->con_heal_dealt(info);
}
for (int i = 0; i < _c_auras.size(); ++i) {
@ -1855,8 +1855,8 @@ void Entity::con_heal_dealt(Ref<SpellHealInfo> info) {
void Entity::con_dealt_heal(Ref<SpellHealInfo> info) {
ERR_FAIL_COND(!info.is_valid());
if (_c_character_class.is_valid()) {
_c_character_class->con_dealt_heal(info);
if (_c_entity_data.is_valid()) {
_c_entity_data->con_dealt_heal(info);
}
for (int i = 0; i < _c_auras.size(); ++i) {
@ -2713,8 +2713,8 @@ void Entity::_bind_methods() {
ADD_SIGNAL(MethodInfo("con_heal_dealt", PropertyInfo(Variant::OBJECT, "entity", PROPERTY_HINT_RESOURCE_TYPE, "Entity"), PropertyInfo(Variant::OBJECT, "info", PROPERTY_HINT_RESOURCE_TYPE, "SpellHealInfo")));
ADD_SIGNAL(MethodInfo("scharacter_class_changed", PropertyInfo(Variant::OBJECT, "entity", PROPERTY_HINT_RESOURCE_TYPE, "Entity")));
ADD_SIGNAL(MethodInfo("ccharacter_class_changed", PropertyInfo(Variant::OBJECT, "entity", PROPERTY_HINT_RESOURCE_TYPE, "Entity")));
ADD_SIGNAL(MethodInfo("sentity_data_changed", PropertyInfo(Variant::OBJECT, "entity", PROPERTY_HINT_RESOURCE_TYPE, "Entity")));
ADD_SIGNAL(MethodInfo("centity_data_changed", PropertyInfo(Variant::OBJECT, "entity", PROPERTY_HINT_RESOURCE_TYPE, "Entity")));
ADD_SIGNAL(MethodInfo("sdied", PropertyInfo(Variant::OBJECT, "entity", PROPERTY_HINT_RESOURCE_TYPE, "Entity")));
ADD_SIGNAL(MethodInfo("cdied", PropertyInfo(Variant::OBJECT, "entity", PROPERTY_HINT_RESOURCE_TYPE, "Entity")));
@ -2906,13 +2906,13 @@ void Entity::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_character_skeleton_path", "value"), &Entity::set_character_skeleton_path);
ADD_PROPERTY(PropertyInfo(Variant::NODE_PATH, "character_skeleton_path"), "set_character_skeleton_path", "get_character_skeleton_path");
ClassDB::bind_method(D_METHOD("gets_character_class_id"), &Entity::gets_character_class_id);
ClassDB::bind_method(D_METHOD("sets_character_class_id", "value"), &Entity::sets_character_class_id);
ADD_PROPERTY(PropertyInfo(Variant::INT, "characterclass_id"), "sets_character_class_id", "gets_character_class_id");
ClassDB::bind_method(D_METHOD("gets_entity_data_id"), &Entity::gets_entity_data_id);
ClassDB::bind_method(D_METHOD("sets_entity_data_id", "value"), &Entity::sets_entity_data_id);
ADD_PROPERTY(PropertyInfo(Variant::INT, "characterclass_id"), "sets_entity_data_id", "gets_entity_data_id");
ClassDB::bind_method(D_METHOD("getc_character_class_id"), &Entity::getc_character_class_id);
ClassDB::bind_method(D_METHOD("setc_character_class_id", "value"), &Entity::setc_character_class_id);
ADD_PROPERTY(PropertyInfo(Variant::INT, "character_class_id"), "setc_character_class_id", "getc_character_class_id");
ClassDB::bind_method(D_METHOD("getc_entity_data_id"), &Entity::getc_entity_data_id);
ClassDB::bind_method(D_METHOD("setc_entity_data_id", "value"), &Entity::setc_entity_data_id);
ADD_PROPERTY(PropertyInfo(Variant::INT, "entity_data_id"), "setc_entity_data_id", "getc_entity_data_id");
ClassDB::bind_method(D_METHOD("gets_entity_type"), &Entity::gets_entity_type);
ClassDB::bind_method(D_METHOD("sets_entity_type", "value"), &Entity::sets_entity_type);
@ -2946,13 +2946,13 @@ void Entity::_bind_methods() {
ClassDB::bind_method(D_METHOD("setc_xp", "value"), &Entity::setc_xp);
ADD_PROPERTY(PropertyInfo(Variant::STRING, "c_xp"), "setc_xp", "getc_xp");
ClassDB::bind_method(D_METHOD("gets_character_class"), &Entity::gets_character_class);
ClassDB::bind_method(D_METHOD("sets_character_class", "value"), &Entity::sets_character_class);
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "s_character_class", PROPERTY_HINT_RESOURCE_TYPE, "CharacterClass"), "sets_character_class", "gets_character_class");
ClassDB::bind_method(D_METHOD("gets_entity_data"), &Entity::gets_entity_data);
ClassDB::bind_method(D_METHOD("sets_entity_data", "value"), &Entity::sets_entity_data);
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "s_entity_data", PROPERTY_HINT_RESOURCE_TYPE, "EntityData"), "sets_entity_data", "gets_entity_data");
ClassDB::bind_method(D_METHOD("getc_character_class"), &Entity::getc_character_class);
ClassDB::bind_method(D_METHOD("setc_character_class", "value"), &Entity::setc_character_class);
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "c_character_class", PROPERTY_HINT_RESOURCE_TYPE, "CharacterClass"), "setc_character_class", "getc_character_class");
ClassDB::bind_method(D_METHOD("getc_entity_data"), &Entity::getc_entity_data);
ClassDB::bind_method(D_METHOD("setc_entity_data", "value"), &Entity::setc_entity_data);
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "c_entity_data", PROPERTY_HINT_RESOURCE_TYPE, "EntityData"), "setc_entity_data", "getc_entity_data");
ClassDB::bind_method(D_METHOD("initialize", "entity_create_info"), &Entity::initialize);

View File

@ -10,7 +10,7 @@
#endif
#include "../data/character_class.h"
#include "./data/entity_data.h"
#include "../data/craft_data_attribute.h"
#include "../data/spell.h"
#include "../data/xp_data.h"
@ -38,7 +38,7 @@
#include "../inventory/bag.h"
class CharacterClass;
class EntityData;
class AuraData;
class Spell;
class SpellDamageInfo;
@ -132,11 +132,11 @@ public:
int gets_guid();
void sets_guid(int value);
int gets_character_class_id();
void sets_character_class_id(int value);
int gets_entity_data_id();
void sets_entity_data_id(int value);
int getc_character_class_id();
void setc_character_class_id(int value);
int getc_entity_data_id();
void setc_entity_data_id(int value);
EntityEnums::EntityType gets_entity_type();
void sets_entity_type(EntityEnums::EntityType value);
@ -168,11 +168,11 @@ public:
int getc_xp();
void setc_xp(int value);
Ref<CharacterClass> getc_character_class();
void setc_character_class(Ref<CharacterClass> value);
Ref<EntityData> getc_entity_data();
void setc_entity_data(Ref<EntityData> value);
Ref<CharacterClass> gets_character_class();
void sets_character_class(Ref<CharacterClass> value);
Ref<EntityData> gets_entity_data();
void sets_entity_data(Ref<EntityData> value);
void sinitialize_stats();
@ -494,8 +494,8 @@ private:
int _s_xp;
int _c_xp;
Ref<CharacterClass> _s_character_class;
Ref<CharacterClass> _c_character_class;
Ref<EntityData> _s_entity_data;
Ref<EntityData> _c_entity_data;
int _s_send_flag;

View File

@ -6,15 +6,19 @@
#include "data/aura.h"
#include "data/aura_stat_attribute.h"
#include "data/data_manager.h"
#include "data/character_class.h"
#include "data/talent.h"
#include "data/talent_row_data.h"
#include "data/character_spec.h"
#include "data/xp_data.h"
#include "data/item_stat_modifier.h"
#include "data/item_template_stat_modifier.h"
#include "data/spell_cooldown_manipulation_data.h"
#include "entities/data/entity_data.h"
#include "entities/data/mob_data.h"
#include "entities/data/player_character_data.h"
#include "entities/data/talent_row_data.h"
#include "entities/data/character_spec.h"
#include "data/item_visual.h"
#include "data/item_visual_entry.h"
@ -73,9 +77,6 @@
#include "loot/loot_data_item.h"
#include "loot/loot_data_container.h"
#include "data/mob_data.h"
#include "data/player_character_data.h"
#include "data/spell_effect_visual.h"
#include "data/spell_effect_visual_simple.h"
#include "data/spell_projectile_data.h"
@ -102,11 +103,14 @@ void register_entity_spell_system_types() {
ClassDB::register_class<CraftDataAttributeHelper>();
ClassDB::register_class<CraftDataAttribute>();
ClassDB::register_class<CharacterClass>();
ClassDB::register_class<Spell>();
ClassDB::register_class<Aura>();
ClassDB::register_class<AuraStatAttribute>();
ClassDB::register_class<EntityData>();
ClassDB::register_class<MobData>();
ClassDB::register_class<PlayerCharacterData>();
ClassDB::register_class<XPData>();
ClassDB::register_class<ItemStatModifier>();
ClassDB::register_class<ItemTemplateStatModifier>();
@ -179,8 +183,6 @@ void register_entity_spell_system_types() {
ClassDB::register_class<LootDataItem>();
ClassDB::register_class<LootDataContainter>();
ClassDB::register_class<MobData>();
ClassDB::register_class<PlayerCharacterData>();
ClassDB::register_class<SpellEffectVisual>();
ClassDB::register_class<SpellEffectVisualSimple>();

View File

@ -4,7 +4,7 @@
#include "core/reference.h"
#include "core/ustring.h"
#include "../entity_enums.h"
#include "../data/character_class.h"
#include "../entities/data/entity_data.h"
class EntityCreateInfo : public Reference {
GDCLASS(EntityCreateInfo, Reference);
@ -25,8 +25,8 @@ public:
int get_xp() { return _xp; }
void set_xp(int value) { _xp = value; }
Ref<CharacterClass> get_character_class() { return _character_class; }
void set_character_class(Ref<CharacterClass> value) { _character_class = value; }
Ref<EntityData> get_entity_data() { return _entity_data; }
void set_entity_data(Ref<EntityData> value) { _entity_data = value; }
protected:
static void _bind_methods() {
@ -46,9 +46,9 @@ protected:
ClassDB::bind_method(D_METHOD("set_xp", "value"), &EntityCreateInfo::set_xp);
ADD_PROPERTY(PropertyInfo(Variant::STRING, "xp"), "set_xp", "get_xp");
ClassDB::bind_method(D_METHOD("get_character_class"), &EntityCreateInfo::get_character_class);
ClassDB::bind_method(D_METHOD("set_character_class", "value"), &EntityCreateInfo::set_character_class);
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "character_class", PROPERTY_HINT_RESOURCE_TYPE, "CharacterClass"), "set_character_class", "get_character_class");
ClassDB::bind_method(D_METHOD("get_entity_data"), &EntityCreateInfo::get_entity_data);
ClassDB::bind_method(D_METHOD("set_entity_data", "value"), &EntityCreateInfo::set_entity_data);
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "entity_data", PROPERTY_HINT_RESOURCE_TYPE, "EntityData"), "set_entity_data", "get_entity_data");
}
private:
@ -58,7 +58,7 @@ private:
int _level;
int _xp;
Ref<CharacterClass> _character_class;
Ref<EntityData> _entity_data;
};
#endif