Added a delete button to Persist Vehicle. (#2354)
This commit is contained in:
parent
59244c75bb
commit
251db062d0
@ -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;
|
||||||
|
@ -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";
|
||||||
|
@ -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();
|
||||||
|
Reference in New Issue
Block a user