feat: exposed Inventory::get_/set_utility_id to editor

This commit is contained in:
Sara 2024-09-02 21:26:37 +02:00
parent 6185722f50
commit 1c1c7977de
3 changed files with 26 additions and 4 deletions

View file

@ -35,6 +35,7 @@ unique_name_in_owner = true
[node name="Inventory" type="Inventory" parent="."]
weapon_id = 2
utility_id = 3
unique_name_in_owner = true
[node name="NavigationAgent3D" type="NavigationAgent3D" parent="."]

View file

@ -7,6 +7,7 @@ void Inventory::_bind_methods() {
#define CLASSNAME Inventory
GDPROPERTY_HINTED(weapon_id, gd::Variant::INT, gd::PROPERTY_HINT_ENUM, ItemDB::get_enum_hint());
GDPROPERTY_HINTED(armour_id, gd::Variant::INT, gd::PROPERTY_HINT_ENUM, ItemDB::get_enum_hint());
GDPROPERTY_HINTED(utility_id, gd::Variant::INT, gd::PROPERTY_HINT_ENUM, ItemDB::get_enum_hint());
GDPROPERTY(inventory_inspector, gd::Variant::DICTIONARY);
}
@ -56,12 +57,20 @@ Item const *Inventory::get_armour() const {
return this->armour;
}
void Inventory::set_utility(Item const *item) {
this->utility = item != nullptr && item->has_capability(ItemCapability::UtilityEquip) ? item : nullptr;
}
Item const *Inventory::get_utility() const {
return this->utility;
}
void Inventory::set_weapon_id(int item_id) {
this->set_weapon(ItemDB::get_item(item_id));
}
int Inventory::get_weapon_id() const {
return this->weapon ? this->weapon->get_id() : 0;
return this->weapon != nullptr ? this->weapon->get_id() : 0;
}
void Inventory::set_armour_id(int item_id) {
@ -69,7 +78,15 @@ void Inventory::set_armour_id(int item_id) {
}
int Inventory::get_armour_id() const {
return this->armour ? this->armour->get_id() : 0;
return this->armour != nullptr ? this->armour->get_id() : 0;
}
void Inventory::set_utility_id(int item_id) {
this->set_utility(ItemDB::get_item(item_id));
}
int Inventory::get_utility_id() const {
return this->utility != nullptr ? this->utility->get_id() : 0;
}
void Inventory::set_inventory_inspector(gd::Dictionary dict) {

View file

@ -23,15 +23,19 @@ public:
unsigned get_item_amount(Item const *item);
bool has_item(Item const *item);
void set_weapon(Item const *weapon);
void set_weapon(Item const *item);
Item const *get_weapon() const;
void set_armour(Item const *weapon);
void set_armour(Item const *item);
Item const *get_armour() const;
void set_utility(Item const *item);
Item const *get_utility() const;
void set_weapon_id(int item_id);
int get_weapon_id() const;
void set_armour_id(int item_id);
int get_armour_id() const;
void set_utility_id(int item_id);
int get_utility_id() const;
void set_inventory_inspector(gd::Dictionary dict);
gd::Dictionary get_inventory_inspector() const;
private: