mirror of
https://github.com/Relintai/entity_spell_system.git
synced 2025-05-09 22:41:39 +02:00
Moved the container and vendor data into it's own classes from EntityData.
This commit is contained in:
parent
0a00a12c32
commit
d16e580bf4
7
SCsub
7
SCsub
@ -25,10 +25,15 @@ module_env.add_source_files(env.modules_sources,"data/spell_cooldown_manipulatio
|
||||
|
||||
module_env.add_source_files(env.modules_sources,"entities/data/entity_data.cpp")
|
||||
module_env.add_source_files(env.modules_sources,"entities/data/entity_class_data.cpp")
|
||||
|
||||
module_env.add_source_files(env.modules_sources,"entities/data/vendor_item_data.cpp")
|
||||
module_env.add_source_files(env.modules_sources,"entities/data/container_item_data.cpp")
|
||||
module_env.add_source_files(env.modules_sources,"entities/data/vendor_item_data_entry.cpp")
|
||||
|
||||
module_env.add_source_files(env.modules_sources,"entities/data/entity_data_container.cpp")
|
||||
|
||||
module_env.add_source_files(env.modules_sources,"entities/data/item_container_data.cpp")
|
||||
module_env.add_source_files(env.modules_sources,"entities/data/item_container_data_entry.cpp")
|
||||
|
||||
module_env.add_source_files(env.modules_sources,"entities/skills/entity_skill.cpp")
|
||||
|
||||
module_env.add_source_files(env.modules_sources,"entities/data/character_spec.cpp")
|
||||
|
@ -1,33 +0,0 @@
|
||||
#include "container_item_data.h"
|
||||
|
||||
#include "../../data/item_template.h"
|
||||
|
||||
Ref<ItemTemplate> ContainerItemData::get_item() {
|
||||
return _item;
|
||||
}
|
||||
void ContainerItemData::set_item(Ref<ItemTemplate> item) {
|
||||
_item = item;
|
||||
}
|
||||
|
||||
int ContainerItemData::get_item_count() const {
|
||||
return _item_count;
|
||||
}
|
||||
void ContainerItemData::set_item_count(int value) {
|
||||
_item_count = value;
|
||||
}
|
||||
|
||||
ContainerItemData::ContainerItemData() {
|
||||
_item_count = 0;
|
||||
}
|
||||
ContainerItemData::~ContainerItemData() {
|
||||
}
|
||||
|
||||
void ContainerItemData::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("get_item"), &ContainerItemData::get_item);
|
||||
ClassDB::bind_method(D_METHOD("set_item", "item"), &ContainerItemData::set_item);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "item", PROPERTY_HINT_RESOURCE_TYPE, "ItemTemplate"), "set_item", "get_item");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_item_count"), &ContainerItemData::get_item_count);
|
||||
ClassDB::bind_method(D_METHOD("set_item_count", "value"), &ContainerItemData::set_item_count);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "item_count"), "set_item_count", "get_item_count");
|
||||
}
|
@ -7,7 +7,6 @@
|
||||
#include "../entity.h"
|
||||
#include "character_spec.h"
|
||||
#include "vendor_item_data.h"
|
||||
#include "container_item_data.h"
|
||||
|
||||
int EntityData::get_id() {
|
||||
return _id;
|
||||
@ -95,93 +94,26 @@ void EntityData::set_loot_db(const Ref<LootDataBase> lootdb) {
|
||||
_lootdb = lootdb;
|
||||
}
|
||||
|
||||
|
||||
//// VENDOR DATA ////
|
||||
|
||||
int EntityData::get_num_vendor_datas() {
|
||||
if (_vendor_datas.size() == 0 && _inherits.is_valid()) {
|
||||
return _inherits->get_num_vendor_datas();
|
||||
Ref<VendorItemData> EntityData::get_vendor_item_data() const {
|
||||
if (!_vendor_item_data.is_valid() && _inherits.is_valid()) {
|
||||
return _inherits->get_vendor_item_data();
|
||||
}
|
||||
|
||||
return _vendor_datas.size();
|
||||
return _vendor_item_data;
|
||||
}
|
||||
void EntityData::set_num_vendor_datas(int value) {
|
||||
_vendor_datas.resize(value);
|
||||
void EntityData::set_vendor_item_data(const Ref<VendorItemData> data) {
|
||||
_vendor_item_data = data;
|
||||
}
|
||||
|
||||
Ref<VendorItemData> EntityData::get_vendor_data(int index) {
|
||||
if (_vendor_datas.size() == 0 && _inherits.is_valid()) {
|
||||
return _inherits->get_vendor_data(index);
|
||||
Ref<ItemContainerData> EntityData::get_item_container_data() const {
|
||||
if (!_vendor_item_data.is_valid() && _inherits.is_valid()) {
|
||||
return _inherits->get_item_container_data();
|
||||
}
|
||||
|
||||
ERR_FAIL_INDEX_V(index, _vendor_datas.size(), Ref<VendorItemData>());
|
||||
|
||||
return _vendor_datas[index];
|
||||
return _item_container_data;
|
||||
}
|
||||
void EntityData::set_vendor_data(int index, Ref<VendorItemData> vendor_data) {
|
||||
ERR_FAIL_INDEX(index, _vendor_datas.size());
|
||||
|
||||
_vendor_datas.set(index, vendor_data);
|
||||
}
|
||||
|
||||
Vector<Variant> EntityData::get_vendor_datas() {
|
||||
Vector<Variant> r;
|
||||
for (int i = 0; i < _vendor_datas.size(); i++) {
|
||||
r.push_back(_vendor_datas[i].get_ref_ptr());
|
||||
}
|
||||
return r;
|
||||
}
|
||||
void EntityData::set_vendor_datas(const Vector<Variant> &vendor_datas) {
|
||||
_vendor_datas.clear();
|
||||
for (int i = 0; i < vendor_datas.size(); i++) {
|
||||
Ref<VendorItemData> vendor_data = Ref<VendorItemData>(vendor_datas[i]);
|
||||
|
||||
_vendor_datas.push_back(vendor_data);
|
||||
}
|
||||
}
|
||||
|
||||
//// Container Data ////
|
||||
|
||||
int EntityData::get_num_container_datas() {
|
||||
if (_container_datas.size() == 0 && _inherits.is_valid()) {
|
||||
return _inherits->get_num_container_datas();
|
||||
}
|
||||
|
||||
return _container_datas.size();
|
||||
}
|
||||
void EntityData::set_num_container_datas(int value) {
|
||||
_container_datas.resize(value);
|
||||
}
|
||||
|
||||
Ref<ContainerItemData> EntityData::get_container_data(int index) {
|
||||
if (_container_datas.size() == 0 && _inherits.is_valid()) {
|
||||
return _inherits->get_container_data(index);
|
||||
}
|
||||
|
||||
ERR_FAIL_INDEX_V(index, _container_datas.size(), Ref<ContainerItemData>());
|
||||
|
||||
return _container_datas[index];
|
||||
}
|
||||
void EntityData::set_container_data(int index, Ref<ContainerItemData> container_data) {
|
||||
ERR_FAIL_INDEX(index, _container_datas.size());
|
||||
|
||||
_container_datas.set(index, container_data);
|
||||
}
|
||||
|
||||
Vector<Variant> EntityData::get_container_datas() {
|
||||
Vector<Variant> r;
|
||||
for (int i = 0; i < _container_datas.size(); i++) {
|
||||
r.push_back(_container_datas[i].get_ref_ptr());
|
||||
}
|
||||
return r;
|
||||
}
|
||||
void EntityData::set_container_datas(const Vector<Variant> &container_datas) {
|
||||
_container_datas.clear();
|
||||
for (int i = 0; i < container_datas.size(); i++) {
|
||||
Ref<ContainerItemData> container_data = Ref<ContainerItemData>(container_datas[i]);
|
||||
|
||||
_container_datas.push_back(container_data);
|
||||
}
|
||||
void EntityData::set_item_container_data(const Ref<ItemContainerData> data) {
|
||||
_item_container_data = data;
|
||||
}
|
||||
|
||||
//void EntityData::_setup_resources(Entity *entity) {
|
||||
@ -902,8 +834,7 @@ EntityData::EntityData() {
|
||||
_entity_controller = EntityEnums::ENITIY_CONTROLLER_NONE;
|
||||
}
|
||||
EntityData::~EntityData() {
|
||||
_vendor_datas.clear();
|
||||
_container_datas.clear();
|
||||
|
||||
}
|
||||
|
||||
void EntityData::_bind_methods() {
|
||||
@ -1085,6 +1016,16 @@ void EntityData::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("set_loot_db", "value"), &EntityData::set_loot_db);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "loot_db", PROPERTY_HINT_RESOURCE_TYPE, "LootDataBase"), "set_loot_db", "get_loot_db");
|
||||
|
||||
//VendorItemData
|
||||
ClassDB::bind_method(D_METHOD("get_vendor_item_data"), &EntityData::get_vendor_item_data);
|
||||
ClassDB::bind_method(D_METHOD("set_vendor_item_data", "value"), &EntityData::set_vendor_item_data);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "vendor_item_data", PROPERTY_HINT_RESOURCE_TYPE, "VendorItemData"), "set_vendor_item_data", "get_vendor_item_data");
|
||||
|
||||
//ItemContainerData
|
||||
ClassDB::bind_method(D_METHOD("get_item_container_data"), &EntityData::get_item_container_data);
|
||||
ClassDB::bind_method(D_METHOD("set_item_container_data", "value"), &EntityData::set_item_container_data);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "item_container_data", PROPERTY_HINT_RESOURCE_TYPE, "ItemContainerData"), "set_item_container_data", "get_item_container_data");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("generate_name"), &EntityData::generate_name);
|
||||
BIND_VMETHOD(MethodInfo(PropertyInfo(Variant::STRING, "name"), "_generate_name"));
|
||||
|
||||
@ -1098,27 +1039,5 @@ void EntityData::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("set_entity_flags", "value"), &EntityData::set_entity_flags);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "entity_flags", PROPERTY_HINT_FLAGS, EntityEnums::BINDING_STRING_ENTITY_FLAGS), "set_entity_flags", "get_entity_flags");
|
||||
|
||||
//// Vendor data ////
|
||||
ADD_GROUP("Vendor Data", "vendor_datas");
|
||||
ClassDB::bind_method(D_METHOD("get_num_vendor_datas"), &EntityData::get_num_vendor_datas);
|
||||
ClassDB::bind_method(D_METHOD("set_num_vendor_datas", "value"), &EntityData::set_num_vendor_datas);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_vendor_data", "index"), &EntityData::get_vendor_data);
|
||||
ClassDB::bind_method(D_METHOD("set_vendor_data", "index", "vendor_data"), &EntityData::set_vendor_data);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_vendor_datas"), &EntityData::get_vendor_datas);
|
||||
ClassDB::bind_method(D_METHOD("set_vendor_datas", "vendor_datas"), &EntityData::set_vendor_datas);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "vendor_datas", PROPERTY_HINT_NONE, "17/17:VendorItemData", PROPERTY_USAGE_DEFAULT, "VendorItemData"), "set_vendor_datas", "get_vendor_datas");
|
||||
|
||||
//// Container data ////
|
||||
ADD_GROUP("Container Data", "container_datas");
|
||||
ClassDB::bind_method(D_METHOD("get_num_container_datas"), &EntityData::get_num_container_datas);
|
||||
ClassDB::bind_method(D_METHOD("set_num_container_datas", "value"), &EntityData::set_num_container_datas);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_container_data", "index"), &EntityData::get_container_data);
|
||||
ClassDB::bind_method(D_METHOD("set_container_data", "index", "container_data"), &EntityData::set_container_data);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_container_datas"), &EntityData::get_container_datas);
|
||||
ClassDB::bind_method(D_METHOD("set_container_datas", "container_datas"), &EntityData::set_container_datas);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "container_datas", PROPERTY_HINT_NONE, "17/17:ContainerItemData", PROPERTY_USAGE_DEFAULT, "ContainerItemData"), "set_container_datas", "get_container_datas");
|
||||
}
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "../../loot/loot_data_base.h"
|
||||
|
||||
#include "entity_class_data.h"
|
||||
#include "item_container_data.h"
|
||||
|
||||
class Aura;
|
||||
class Spell;
|
||||
@ -28,7 +29,6 @@ class Entity;
|
||||
class SpellCastInfo;
|
||||
class AIAction;
|
||||
class VendorItemData;
|
||||
class ContainerItemData;
|
||||
|
||||
class EntityData : public Resource {
|
||||
GDCLASS(EntityData, Resource);
|
||||
@ -68,27 +68,13 @@ public:
|
||||
void set_entity_class_data(Ref<EntityClassData> data);
|
||||
|
||||
Ref<LootDataBase> get_loot_db() const;
|
||||
void set_loot_db(const Ref<LootDataBase> lootdb);
|
||||
void set_loot_db(const Ref<LootDataBase> data);
|
||||
|
||||
//Vendor data
|
||||
int get_num_vendor_datas();
|
||||
void set_num_vendor_datas(int value);
|
||||
Ref<VendorItemData> get_vendor_item_data() const;
|
||||
void set_vendor_item_data(const Ref<VendorItemData> data);
|
||||
|
||||
Ref<VendorItemData> get_vendor_data(int index);
|
||||
void set_vendor_data(int index, Ref<VendorItemData> aura);
|
||||
|
||||
Vector<Variant> get_vendor_datas();
|
||||
void set_vendor_datas(const Vector<Variant> &ai_actions);
|
||||
|
||||
//Container data
|
||||
int get_num_container_datas();
|
||||
void set_num_container_datas(int value);
|
||||
|
||||
Ref<ContainerItemData> get_container_data(int index);
|
||||
void set_container_data(int index, Ref<ContainerItemData> aura);
|
||||
|
||||
Vector<Variant> get_container_datas();
|
||||
void set_container_datas(const Vector<Variant> &ai_actions);
|
||||
Ref<ItemContainerData> get_item_container_data() const;
|
||||
void set_item_container_data(const Ref<ItemContainerData> data);
|
||||
|
||||
/*
|
||||
Vector<int> get_mob_party_ids();
|
||||
@ -233,10 +219,9 @@ private:
|
||||
|
||||
Ref<EntityClassData> _entity_class_data;
|
||||
|
||||
Vector<Ref<VendorItemData> > _vendor_datas;
|
||||
Vector<Ref<ContainerItemData> > _container_datas;
|
||||
|
||||
Ref<LootDataBase> _lootdb;
|
||||
Ref<VendorItemData> _vendor_item_data;
|
||||
Ref<ItemContainerData> _item_container_data;
|
||||
|
||||
//Vector<int> _mob_party_ids;
|
||||
//Vector<int> _mob_dislike_ids;
|
||||
|
54
entities/data/item_container_data.cpp
Normal file
54
entities/data/item_container_data.cpp
Normal file
@ -0,0 +1,54 @@
|
||||
#include "item_container_data.h"
|
||||
|
||||
int ItemContainerData::get_num_container_datas() {
|
||||
return _container_datas.size();
|
||||
}
|
||||
void ItemContainerData::set_num_container_datas(int value) {
|
||||
_container_datas.resize(value);
|
||||
}
|
||||
|
||||
Ref<ItemContainerDataEntry> ItemContainerData::get_container_data(int index) {
|
||||
ERR_FAIL_INDEX_V(index, _container_datas.size(), Ref<ItemContainerDataEntry>());
|
||||
|
||||
return _container_datas[index];
|
||||
}
|
||||
void ItemContainerData::set_container_data(int index, Ref<ItemContainerDataEntry> container_data) {
|
||||
ERR_FAIL_INDEX(index, _container_datas.size());
|
||||
|
||||
_container_datas.set(index, container_data);
|
||||
}
|
||||
|
||||
Vector<Variant> ItemContainerData::get_container_datas() {
|
||||
Vector<Variant> r;
|
||||
for (int i = 0; i < _container_datas.size(); i++) {
|
||||
r.push_back(_container_datas[i].get_ref_ptr());
|
||||
}
|
||||
return r;
|
||||
}
|
||||
void ItemContainerData::set_container_datas(const Vector<Variant> &container_datas) {
|
||||
_container_datas.clear();
|
||||
for (int i = 0; i < container_datas.size(); i++) {
|
||||
Ref<ItemContainerDataEntry> container_data = Ref<ItemContainerDataEntry>(container_datas[i]);
|
||||
|
||||
_container_datas.push_back(container_data);
|
||||
}
|
||||
}
|
||||
|
||||
ItemContainerData::ItemContainerData() {
|
||||
}
|
||||
|
||||
ItemContainerData::~ItemContainerData() {
|
||||
_container_datas.clear();
|
||||
}
|
||||
|
||||
void ItemContainerData::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("get_num_container_datas"), &ItemContainerData::get_num_container_datas);
|
||||
ClassDB::bind_method(D_METHOD("set_num_container_datas", "value"), &ItemContainerData::set_num_container_datas);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_container_data", "index"), &ItemContainerData::get_container_data);
|
||||
ClassDB::bind_method(D_METHOD("set_container_data", "index", "container_data"), &ItemContainerData::set_container_data);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_container_datas"), &ItemContainerData::get_container_datas);
|
||||
ClassDB::bind_method(D_METHOD("set_container_datas", "container_datas"), &ItemContainerData::set_container_datas);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "container_datas", PROPERTY_HINT_NONE, "17/17:ItemContainerDataEntry", PROPERTY_USAGE_DEFAULT, "ItemContainerDataEntry"), "set_container_datas", "get_container_datas");
|
||||
}
|
31
entities/data/item_container_data.h
Normal file
31
entities/data/item_container_data.h
Normal file
@ -0,0 +1,31 @@
|
||||
#ifndef ITEM_CONTAINER_DATA_H
|
||||
#define ITEM_CONTAINER_DATA_H
|
||||
|
||||
#include "core/resource.h"
|
||||
|
||||
#include "item_container_data_entry.h"
|
||||
|
||||
class ItemContainerData : public Resource {
|
||||
GDCLASS(ItemContainerData, Resource);
|
||||
|
||||
public:
|
||||
int get_num_container_datas();
|
||||
void set_num_container_datas(int value);
|
||||
|
||||
Ref<ItemContainerDataEntry> get_container_data(int index);
|
||||
void set_container_data(int index, Ref<ItemContainerDataEntry> aura);
|
||||
|
||||
Vector<Variant> get_container_datas();
|
||||
void set_container_datas(const Vector<Variant> &ai_actions);
|
||||
|
||||
ItemContainerData();
|
||||
~ItemContainerData();
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
private:
|
||||
Vector<Ref<ItemContainerDataEntry> > _container_datas;
|
||||
};
|
||||
|
||||
#endif
|
34
entities/data/item_container_data_entry.cpp
Normal file
34
entities/data/item_container_data_entry.cpp
Normal file
@ -0,0 +1,34 @@
|
||||
#include "item_container_data_entry.h"
|
||||
|
||||
#include "../../data/item_template.h"
|
||||
|
||||
Ref<ItemTemplate> ItemContainerDataEntry::get_item() {
|
||||
return _item;
|
||||
}
|
||||
void ItemContainerDataEntry::set_item(Ref<ItemTemplate> item) {
|
||||
_item = item;
|
||||
}
|
||||
|
||||
int ItemContainerDataEntry::get_item_count() const {
|
||||
return _item_count;
|
||||
}
|
||||
void ItemContainerDataEntry::set_item_count(int value) {
|
||||
_item_count = value;
|
||||
}
|
||||
|
||||
ItemContainerDataEntry::ItemContainerDataEntry() {
|
||||
_item_count = 0;
|
||||
}
|
||||
ItemContainerDataEntry::~ItemContainerDataEntry() {
|
||||
|
||||
}
|
||||
|
||||
void ItemContainerDataEntry::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("get_item"), &ItemContainerDataEntry::get_item);
|
||||
ClassDB::bind_method(D_METHOD("set_item", "item"), &ItemContainerDataEntry::set_item);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "item", PROPERTY_HINT_RESOURCE_TYPE, "ItemTemplate"), "set_item", "get_item");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_item_count"), &ItemContainerDataEntry::get_item_count);
|
||||
ClassDB::bind_method(D_METHOD("set_item_count", "value"), &ItemContainerDataEntry::set_item_count);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "item_count"), "set_item_count", "get_item_count");
|
||||
}
|
@ -5,8 +5,8 @@
|
||||
|
||||
class ItemTemplate;
|
||||
|
||||
class ContainerItemData : public Resource {
|
||||
GDCLASS(ContainerItemData, Resource);
|
||||
class ItemContainerDataEntry : public Resource {
|
||||
GDCLASS(ItemContainerDataEntry, Resource);
|
||||
|
||||
public:
|
||||
Ref<ItemTemplate> get_item();
|
||||
@ -15,8 +15,8 @@ public:
|
||||
int get_item_count() const;
|
||||
void set_item_count(int value);
|
||||
|
||||
ContainerItemData();
|
||||
~ContainerItemData();
|
||||
ItemContainerDataEntry();
|
||||
~ItemContainerDataEntry();
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
@ -1,57 +1,54 @@
|
||||
#include "vendor_item_data.h"
|
||||
|
||||
#include "../../data/item_template.h"
|
||||
int VendorItemData::get_num_vendor_datas() {
|
||||
return _vendor_datas.size();
|
||||
}
|
||||
void VendorItemData::set_num_vendor_datas(int value) {
|
||||
_vendor_datas.resize(value);
|
||||
}
|
||||
|
||||
Ref<ItemTemplate> VendorItemData::get_item() {
|
||||
return _item;
|
||||
Ref<VendorItemDataEntry> VendorItemData::get_vendor_data(int index) {
|
||||
ERR_FAIL_INDEX_V(index, _vendor_datas.size(), Ref<VendorItemDataEntry>());
|
||||
|
||||
return _vendor_datas[index];
|
||||
}
|
||||
void VendorItemData::set_item(Ref<ItemTemplate> item) {
|
||||
_item = item;
|
||||
void VendorItemData::set_vendor_data(int index, Ref<VendorItemDataEntry> vendor_data) {
|
||||
ERR_FAIL_INDEX(index, _vendor_datas.size());
|
||||
|
||||
_vendor_datas.set(index, vendor_data);
|
||||
}
|
||||
|
||||
int VendorItemData::get_item_price() const {
|
||||
return _item_price;
|
||||
|
||||
Vector<Variant> VendorItemData::get_vendor_datas() {
|
||||
Vector<Variant> r;
|
||||
for (int i = 0; i < _vendor_datas.size(); i++) {
|
||||
r.push_back(_vendor_datas[i].get_ref_ptr());
|
||||
}
|
||||
return r;
|
||||
}
|
||||
void VendorItemData::set_item_price(int value) {
|
||||
_item_price = value;
|
||||
}
|
||||
|
||||
int VendorItemData::get_item_count() const {
|
||||
return _item_count;
|
||||
}
|
||||
void VendorItemData::set_item_count(int value) {
|
||||
_item_count = value;
|
||||
}
|
||||
|
||||
int VendorItemData::get_item_spawn_time() const {
|
||||
return _item_spawn_time;
|
||||
}
|
||||
void VendorItemData::set_item_spawn_time(int value) {
|
||||
_item_spawn_time = value;
|
||||
void VendorItemData::set_vendor_datas(const Vector<Variant> &vendor_datas) {
|
||||
_vendor_datas.clear();
|
||||
for (int i = 0; i < vendor_datas.size(); i++) {
|
||||
Ref<VendorItemDataEntry> vendor_data = Ref<VendorItemDataEntry>(vendor_datas[i]);
|
||||
|
||||
_vendor_datas.push_back(vendor_data);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
VendorItemData::VendorItemData() {
|
||||
_item_price = 0;
|
||||
_item_count = 0;
|
||||
_item_spawn_time = 0;
|
||||
}
|
||||
VendorItemData::~VendorItemData() {
|
||||
_vendor_datas.clear();
|
||||
}
|
||||
|
||||
void VendorItemData::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("get_item"), &VendorItemData::get_item);
|
||||
ClassDB::bind_method(D_METHOD("set_item", "item"), &VendorItemData::set_item);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "item", PROPERTY_HINT_RESOURCE_TYPE, "ItemTemplate"), "set_item", "get_item");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_item_price"), &VendorItemData::get_item_price);
|
||||
ClassDB::bind_method(D_METHOD("set_item_price", "value"), &VendorItemData::set_item_price);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "item_price"), "set_item_price", "get_item_price");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_item_count"), &VendorItemData::get_item_count);
|
||||
ClassDB::bind_method(D_METHOD("set_item_count", "value"), &VendorItemData::set_item_count);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "item_count"), "set_item_count", "get_item_count");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_item_spawn_time"), &VendorItemData::get_item_spawn_time);
|
||||
ClassDB::bind_method(D_METHOD("set_item_spawn_time", "value"), &VendorItemData::set_item_spawn_time);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "item_spawn_time"), "set_item_spawn_time", "get_item_spawn_time");
|
||||
ClassDB::bind_method(D_METHOD("get_num_vendor_datas"), &VendorItemData::get_num_vendor_datas);
|
||||
ClassDB::bind_method(D_METHOD("set_num_vendor_datas", "value"), &VendorItemData::set_num_vendor_datas);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_vendor_data", "index"), &VendorItemData::get_vendor_data);
|
||||
ClassDB::bind_method(D_METHOD("set_vendor_data", "index", "vendor_data"), &VendorItemData::set_vendor_data);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_vendor_datas"), &VendorItemData::get_vendor_datas);
|
||||
ClassDB::bind_method(D_METHOD("set_vendor_datas", "vendor_datas"), &VendorItemData::set_vendor_datas);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "vendor_datas", PROPERTY_HINT_NONE, "17/17:VendorItemDataEntry", PROPERTY_USAGE_DEFAULT, "VendorItemDataEntry"), "set_vendor_datas", "get_vendor_datas");
|
||||
}
|
||||
|
@ -3,24 +3,22 @@
|
||||
|
||||
#include "core/resource.h"
|
||||
|
||||
class ItemTemplate;
|
||||
#include "vendor_item_data_entry.h"
|
||||
|
||||
class VendorItemData : public Resource {
|
||||
GDCLASS(VendorItemData, Resource);
|
||||
|
||||
public:
|
||||
Ref<ItemTemplate> get_item();
|
||||
void set_item(Ref<ItemTemplate> item);
|
||||
|
||||
int get_item_price() const;
|
||||
void set_item_price(int value);
|
||||
|
||||
int get_item_count() const;
|
||||
void set_item_count(int value);
|
||||
|
||||
int get_item_spawn_time() const;
|
||||
void set_item_spawn_time(int time);
|
||||
|
||||
//Vendor data
|
||||
int get_num_vendor_datas();
|
||||
void set_num_vendor_datas(int value);
|
||||
|
||||
Ref<VendorItemDataEntry> get_vendor_data(int index);
|
||||
void set_vendor_data(int index, Ref<VendorItemDataEntry> data);
|
||||
|
||||
Vector<Variant> get_vendor_datas();
|
||||
void set_vendor_datas(const Vector<Variant> &data);
|
||||
|
||||
VendorItemData();
|
||||
~VendorItemData();
|
||||
|
||||
@ -28,10 +26,7 @@ protected:
|
||||
static void _bind_methods();
|
||||
|
||||
private:
|
||||
Ref<ItemTemplate> _item;
|
||||
int _item_price;
|
||||
int _item_count;
|
||||
int _item_spawn_time;
|
||||
Vector<Ref<VendorItemData> > _vendor_datas;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
57
entities/data/vendor_item_data_entry.cpp
Normal file
57
entities/data/vendor_item_data_entry.cpp
Normal file
@ -0,0 +1,57 @@
|
||||
#include "vendor_item_data.h"
|
||||
|
||||
#include "../../data/item_template.h"
|
||||
|
||||
Ref<ItemTemplate> VendorItemDataEntry::get_item() {
|
||||
return _item;
|
||||
}
|
||||
void VendorItemDataEntry::set_item(Ref<ItemTemplate> item) {
|
||||
_item = item;
|
||||
}
|
||||
|
||||
int VendorItemDataEntry::get_item_price() const {
|
||||
return _item_price;
|
||||
}
|
||||
void VendorItemDataEntry::set_item_price(int value) {
|
||||
_item_price = value;
|
||||
}
|
||||
|
||||
int VendorItemDataEntry::get_item_count() const {
|
||||
return _item_count;
|
||||
}
|
||||
void VendorItemDataEntry::set_item_count(int value) {
|
||||
_item_count = value;
|
||||
}
|
||||
|
||||
int VendorItemDataEntry::get_item_spawn_time() const {
|
||||
return _item_spawn_time;
|
||||
}
|
||||
void VendorItemDataEntry::set_item_spawn_time(int value) {
|
||||
_item_spawn_time = value;
|
||||
}
|
||||
|
||||
VendorItemDataEntry::VendorItemDataEntry() {
|
||||
_item_price = 0;
|
||||
_item_count = 0;
|
||||
_item_spawn_time = 0;
|
||||
}
|
||||
VendorItemDataEntry::~VendorItemDataEntry() {
|
||||
}
|
||||
|
||||
void VendorItemDataEntry::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("get_item"), &VendorItemDataEntry::get_item);
|
||||
ClassDB::bind_method(D_METHOD("set_item", "item"), &VendorItemDataEntry::set_item);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "item", PROPERTY_HINT_RESOURCE_TYPE, "ItemTemplate"), "set_item", "get_item");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_item_price"), &VendorItemDataEntry::get_item_price);
|
||||
ClassDB::bind_method(D_METHOD("set_item_price", "value"), &VendorItemDataEntry::set_item_price);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "item_price"), "set_item_price", "get_item_price");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_item_count"), &VendorItemDataEntry::get_item_count);
|
||||
ClassDB::bind_method(D_METHOD("set_item_count", "value"), &VendorItemDataEntry::set_item_count);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "item_count"), "set_item_count", "get_item_count");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_item_spawn_time"), &VendorItemDataEntry::get_item_spawn_time);
|
||||
ClassDB::bind_method(D_METHOD("set_item_spawn_time", "value"), &VendorItemDataEntry::set_item_spawn_time);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "item_spawn_time"), "set_item_spawn_time", "get_item_spawn_time");
|
||||
}
|
37
entities/data/vendor_item_data_entry.h
Normal file
37
entities/data/vendor_item_data_entry.h
Normal file
@ -0,0 +1,37 @@
|
||||
#ifndef VENDOR_ITEM_DATA_ENTRY_H
|
||||
#define VENDOR_ITEM_DATA_ENTRY_H
|
||||
|
||||
#include "core/resource.h"
|
||||
|
||||
class ItemTemplate;
|
||||
|
||||
class VendorItemDataEntry : public Resource {
|
||||
GDCLASS(VendorItemDataEntry, Resource);
|
||||
|
||||
public:
|
||||
Ref<ItemTemplate> get_item();
|
||||
void set_item(Ref<ItemTemplate> item);
|
||||
|
||||
int get_item_price() const;
|
||||
void set_item_price(int value);
|
||||
|
||||
int get_item_count() const;
|
||||
void set_item_count(int value);
|
||||
|
||||
int get_item_spawn_time() const;
|
||||
void set_item_spawn_time(int time);
|
||||
|
||||
VendorItemDataEntry();
|
||||
~VendorItemDataEntry();
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
private:
|
||||
Ref<ItemTemplate> _item;
|
||||
int _item_price;
|
||||
int _item_count;
|
||||
int _item_spawn_time;
|
||||
};
|
||||
|
||||
#endif
|
@ -16,7 +16,9 @@
|
||||
#include "entities/data/entity_data.h"
|
||||
#include "entities/data/entity_class_data.h"
|
||||
#include "entities/data/vendor_item_data.h"
|
||||
#include "entities/data/container_item_data.h"
|
||||
#include "entities/data/vendor_item_data_entry.h"
|
||||
#include "entities/data/item_container_data.h"
|
||||
#include "entities/data/item_container_data_entry.h"
|
||||
#include "entities/data/entity_data_container.h"
|
||||
|
||||
#include "entities/skills/entity_skill.h"
|
||||
@ -121,8 +123,12 @@ void register_entity_spell_system_types() {
|
||||
ClassDB::register_class<EntityData>();
|
||||
ClassDB::register_class<EntityClassData>();
|
||||
ClassDB::register_class<VendorItemData>();
|
||||
ClassDB::register_class<ContainerItemData>();
|
||||
ClassDB::register_class<VendorItemDataEntry>();
|
||||
|
||||
ClassDB::register_class<EntityDataContainer>();
|
||||
|
||||
ClassDB::register_class<ItemContainerData>();
|
||||
ClassDB::register_class<ItemContainerDataEntry>();
|
||||
|
||||
ClassDB::register_class<XPData>();
|
||||
ClassDB::register_class<ItemStatModifier>();
|
||||
|
Loading…
Reference in New Issue
Block a user