From 9a032ac447655a1e3781c73e7fefa5e6df98ff70 Mon Sep 17 00:00:00 2001 From: Japa Date: Mon, 5 Feb 2018 20:11:47 +0530 Subject: [PATCH 1/4] I'm a moron. --- plugins/remotefortressreader/remotefortressreader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/remotefortressreader/remotefortressreader.cpp b/plugins/remotefortressreader/remotefortressreader.cpp index 32bd73dad..9adb1fe90 100644 --- a/plugins/remotefortressreader/remotefortressreader.cpp +++ b/plugins/remotefortressreader/remotefortressreader.cpp @@ -1508,7 +1508,7 @@ static command_result GetBlockList(color_ostream &stream, const BlockRequest *in continue; if (engraving->pos.y < (min_y * 16) || engraving->pos.x >(max_y * 16)) continue; - if (engraving->pos.z < (min_z * 16) || engraving->pos.x >(max_z * 16)) + if (engraving->pos.z < min_z || engraving->pos.x > max_z * 16) continue; if (!isEngravingNew(i)) continue; From 6d33069fe9679b2e320c7071f1422b85db652cb8 Mon Sep 17 00:00:00 2001 From: Lethosor Date: Mon, 5 Feb 2018 10:41:36 -0500 Subject: [PATCH 2/4] Fix more copy-paste errors --- plugins/remotefortressreader/remotefortressreader.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/remotefortressreader/remotefortressreader.cpp b/plugins/remotefortressreader/remotefortressreader.cpp index 2e9e2aacf..e321bf8d5 100644 --- a/plugins/remotefortressreader/remotefortressreader.cpp +++ b/plugins/remotefortressreader/remotefortressreader.cpp @@ -1511,9 +1511,9 @@ static command_result GetBlockList(color_ostream &stream, const BlockRequest *in auto engraving = world->engravings[i]; if (engraving->pos.x < (min_x * 16) || engraving->pos.x >(max_x * 16)) continue; - if (engraving->pos.y < (min_y * 16) || engraving->pos.x >(max_y * 16)) + if (engraving->pos.y < (min_y * 16) || engraving->pos.y >(max_y * 16)) continue; - if (engraving->pos.z < min_z || engraving->pos.x > max_z * 16) + if (engraving->pos.z < min_z || engraving->pos.z > max_z) continue; if (!isEngravingNew(i)) continue; From 8c20d178b57aa4bfc754c0803d9ab165cbe0e319 Mon Sep 17 00:00:00 2001 From: Japa Date: Wed, 21 Feb 2018 22:27:04 +0530 Subject: [PATCH 3/4] Include plant type with plant items. --- plugins/remotefortressreader/item_reader.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/plugins/remotefortressreader/item_reader.cpp b/plugins/remotefortressreader/item_reader.cpp index f96397409..8fcb7a601 100644 --- a/plugins/remotefortressreader/item_reader.cpp +++ b/plugins/remotefortressreader/item_reader.cpp @@ -303,6 +303,8 @@ void CopyItem(RemoteFortressReader::Item * NetItem, df::item * DfItem) case df::enums::item_type::SEEDS: break; case df::enums::item_type::PLANT: + //For convenience, we encode the plant type into item type, even if it's available in the material. + type->set_mat_index(DfItem->getMaterialIndex()); break; case df::enums::item_type::SKIN_TANNED: break; @@ -521,6 +523,18 @@ DFHack::command_result GetItemList(DFHack::color_ostream &stream, const DFHack:: } break; } + case df::enums::item_type::PLANT: + { + for (int i = 0; i < world->raws.plants.all.size(); i++) + { + auto plantRaw = world->raws.plants.all[i]; + mat_def = out->add_material_list(); + mat_def->mutable_mat_pair()->set_mat_type((int)it); + mat_def->mutable_mat_pair()->set_mat_index(plantRaw->index); + mat_def->set_id(ENUM_KEY_STR(item_type, it) + "/" + plantRaw->id); + } + break; + } case df::enums::item_type::BOX: { mat_def = out->add_material_list(); From 778a1667dc9cda9b2379e50a2578e921846733ac Mon Sep 17 00:00:00 2001 From: Japa Date: Wed, 21 Feb 2018 22:31:39 +0530 Subject: [PATCH 4/4] ...also do it for images. --- plugins/remotefortressreader/item_reader.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plugins/remotefortressreader/item_reader.cpp b/plugins/remotefortressreader/item_reader.cpp index 8fcb7a601..59b1f36e7 100644 --- a/plugins/remotefortressreader/item_reader.cpp +++ b/plugins/remotefortressreader/item_reader.cpp @@ -99,6 +99,13 @@ void CopyImage(const df::art_image * image, ArtImage * netImage) it->set_mat_type(item->item_type); it->set_mat_index(item->item_subtype); netElement->set_id(item->item_id); + switch (item->item_type) + { + case item_type::PLANT: + it->set_mat_index(item->mat_index); + default: + break; + } auto mat = netElement->mutable_material(); mat->set_mat_type(item->mat_type); mat->set_mat_index(item->mat_index);