Added a delete button to Persist Vehicle. (#2354)

This commit is contained in:
gir489 2023-10-30 16:29:30 -04:00 committed by GitHub
parent 59244c75bb
commit 251db062d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 44 additions and 1 deletions

View File

@ -49,6 +49,16 @@ namespace big
return spawn_vehicle_full(vehicle_json, self::ped, spawn_coords); return spawn_vehicle_full(vehicle_json, self::ped, spawn_coords);
} }
void persist_car_service::delete_vehicle(std::string_view file_name, std::string folder_name)
{
const auto file = check_vehicle_folder(folder_name).get_file(file_name);
if (file.exists())
{
std::filesystem::remove(file.get_path());
}
}
std::vector<std::string> persist_car_service::list_files(std::string folder_name) std::vector<std::string> persist_car_service::list_files(std::string folder_name)
{ {
std::vector<std::string> file_paths; std::vector<std::string> file_paths;

View File

@ -13,6 +13,7 @@ namespace big
static Vehicle clone_ped_car(Ped ped, Vehicle vehicle); static Vehicle clone_ped_car(Ped ped, Vehicle vehicle);
static void save_vehicle(Vehicle vehicle, std::string_view file_name, std::string folder_name); static void save_vehicle(Vehicle vehicle, std::string_view file_name, std::string folder_name);
static Vehicle load_vehicle(std::string_view file_name, std::string folder_name = "", const std::optional<Vector3>& = std::nullopt); static Vehicle load_vehicle(std::string_view file_name, std::string folder_name = "", const std::optional<Vector3>& = std::nullopt);
static void delete_vehicle(std::string_view file_name, std::string folder_name);
private: private:
static constexpr auto model_attachment_key = "model_attachment"; static constexpr auto model_attachment_key = "model_attachment";

View File

@ -47,6 +47,32 @@ namespace big
const auto vehicle_folders = persist_car_service::list_sub_folders(); const auto vehicle_folders = persist_car_service::list_sub_folders();
const auto vehicle_files = persist_car_service::list_files(g.persist_car.persist_vehicle_sub_folder); const auto vehicle_files = persist_car_service::list_files(g.persist_car.persist_vehicle_sub_folder);
static std::string file_name_to_delete{};
if (!file_name_to_delete.empty())
ImGui::OpenPopup("##deletepersistcar");
if (ImGui::BeginPopupModal("##deletepersistcar", nullptr, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove))
{
ImGui::Text("VIEW_SELF_ANIMATIONS_ARE_YOU_SURE_DELETE"_T.data(), file_name_to_delete.c_str());
ImGui::Spacing();
if (ImGui::Button("YES"_T.data()))
{
persist_car_service::delete_vehicle(file_name_to_delete, g.persist_car.persist_vehicle_sub_folder);
file_name_to_delete.clear();
ImGui::CloseCurrentPopup();
}
ImGui::SameLine();
if (ImGui::Button("NO"_T.data()))
{
file_name_to_delete.clear();
ImGui::CloseCurrentPopup();
}
ImGui::EndPopup();
}
if (ImGui::Checkbox("PREVIEW"_T.data(), &g.persist_car.preview_vehicle)) if (ImGui::Checkbox("PREVIEW"_T.data(), &g.persist_car.preview_vehicle))
{ {
@ -99,7 +125,7 @@ namespace big
std::transform(pair_lower.begin(), pair_lower.end(), pair_lower.begin(), tolower); std::transform(pair_lower.begin(), pair_lower.end(), pair_lower.begin(), tolower);
if (pair_lower.contains(lower_search)) if (pair_lower.contains(lower_search))
{ {
if (ImGui::Selectable(pair.c_str(), selected_vehicle_file == pair)) if (ImGui::Selectable(pair.c_str(), selected_vehicle_file == pair, ImGuiSelectableFlags_AllowItemOverlap))
{ {
selected_vehicle_file = pair; selected_vehicle_file = pair;
g_fiber_pool->queue_job([] { g_fiber_pool->queue_job([] {
@ -108,6 +134,12 @@ namespace big
}); });
} }
ImGui::SameLine();
if (ImGui::SmallButton("X"))
{
file_name_to_delete = pair;
}
if (!g.persist_car.preview_vehicle || (g.persist_car.preview_vehicle && !ImGui::IsAnyItemHovered())) if (!g.persist_car.preview_vehicle || (g.persist_car.preview_vehicle && !ImGui::IsAnyItemHovered()))
{ {
g_model_preview_service->stop_preview(); g_model_preview_service->stop_preview();