Merge branch 'main' into heightmaps

This commit is contained in:
MihailRis
2024-10-03 19:12:37 +03:00
64 changed files with 3472 additions and 732 deletions
+12 -3
View File
@@ -1,6 +1,6 @@
#include "Inventory.hpp"
#include "content/ContentLUT.hpp"
#include "content/ContentReport.hpp"
Inventory::Inventory(int64_t id, size_t size) : id(id), slots(size) {
}
@@ -83,11 +83,20 @@ dv::value Inventory::serialize() const {
return map;
}
void Inventory::convert(dv::value& data, const ContentLUT* lut) {
void Inventory::convert(const ContentReport* report) {
for (auto& slot : slots) {
itemid_t id = slot.getItemId();
itemid_t replacement = report->items.getId(id);
slot.set(ItemStack(replacement, slot.getCount()));
}
}
// TODO: remove
void Inventory::convert(dv::value& data, const ContentReport* report) {
auto& slotsarr = data["slots"];
for (auto& item : data["slots"]) {
itemid_t id = item["id"].asInteger(ITEM_EMPTY);
itemid_t replacement = lut->items.getId(id);
itemid_t replacement = report->items.getId(id);
item["id"] = replacement;
if (replacement == 0 && item.has("count")) {
item.erase("count");
+3 -2
View File
@@ -7,7 +7,7 @@
#include "typedefs.hpp"
#include "ItemStack.hpp"
class ContentLUT;
class ContentReport;
class ContentIndices;
class Inventory : public Serializable {
@@ -37,7 +37,8 @@ public:
dv::value serialize() const override;
static void convert(dv::value& data, const ContentLUT* lut);
void convert(const ContentReport* report);
static void convert(dv::value& data, const ContentReport* report);
inline void setId(int64_t id) {
this->id = id;
+3
View File
@@ -16,6 +16,9 @@ void ItemStack::set(const ItemStack& item) {
if (count == 0) {
this->item = 0;
}
if (this->item == 0) {
count = 0;
}
}
bool ItemStack::accepts(const ItemStack& other) const {