Building removal works now

This commit is contained in:
2024-09-08 19:28:21 +03:00
parent eac265642e
commit 41b46c9526

View File

@@ -342,8 +342,8 @@ void StreamWorld::request_item(int type, int item)
scenes[id].buildings.begin();
std::vector<int>::iterator e =
scenes[id].buildings.end();
if (item_nodes.has(item))
item_nodes[item]->queue_delete();
// if (item_nodes.has(item))
// item_nodes[item]->queue_delete();
scenes[id].buildings.erase(std::remove(b, e, item),
scenes[id].buildings.end());
if (item_nodes.has(item)) {
@@ -390,6 +390,14 @@ void StreamWorld::remove_generated_stuff()
void StreamWorld::remove_building(int index)
{
// TODO: implement
int i;
unload_building(index);
buildings.erase(buildings.begin() + index);
for (i = index; i < (int)buildings.size(); i++) {
item_nodes[i] = item_nodes[i + 1];
}
item_nodes.erase(buildings.size());
update_items();
}
void StreamWorld::run_command(const String &command, const Array &args)
@@ -498,9 +506,7 @@ void StreamWorld::run_command(const String &command, const Array &args)
return;
}
int id = args[0];
unload_building(id);
buildings.erase(buildings.begin() + id);
update_items();
remove_building(id);
} else if (command == "remove_generated_stuff") {
remove_generated_stuff();
update_items();