Lines saving works

This commit is contained in:
2024-09-07 22:58:20 +03:00
parent 88317b2564
commit 67e3057109
4 changed files with 3278 additions and 857 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -10,6 +10,8 @@
#include <scene/3d/camera.h>
#include <core/io/config_file.h>
#include <core/os/file_access.h>
#include <core/os/dir_access.h>
#include <core/os/time.h>
#include <core/io/json.h>
#include <modules/regex/regex.h>
#include "world_editor.h"
@@ -454,7 +456,7 @@ bool RoadLinesEditor::line_exists(const String &line_name)
void RoadLinesEditor::line_create_point()
{
/* TODO: Create point in line */
/* Create point in line */
print_line("line_create_point");
Vector3 position = get_cursor_position();
Transform xform(Basis(), position);
@@ -470,7 +472,7 @@ void RoadLinesEditor::line_create_point()
void RoadLinesEditor::line_delete_point()
{
/* TODO: Delete point from line */
/* Delete point from line */
print_line("line_delete_point");
int index = get_line_index();
if (lines[current_line].points.size() < 2)
@@ -820,7 +822,6 @@ void RoadLinesEditor::load_data()
}
void RoadLinesEditor::save_data()
{
// TODO: implement
int i;
ConfigFile config;
Error result = config.load("res://config/stream.conf");
@@ -850,9 +851,19 @@ void RoadLinesEditor::save_data()
e = e->next();
}
print_line(JSON::print(output, "\t", false));
Error err;
FileAccess *fd = FileAccess::open(road_lines_path + ".n",
FileAccess::WRITE, &err);
Error err = OK;
if (FileAccess::exists(road_lines_path)) {
DirAccess *dir = DirAccess::open("res:///", &err);
assert(dir && err == OK);
err = dir->copy(
road_lines_path,
road_lines_path + "." +
String::num(
Time::get_singleton()
->get_unix_time_from_system()));
}
FileAccess *fd =
FileAccess::open(road_lines_path, FileAccess::WRITE, &err);
if (err == OK) {
fd->store_string(JSON::print(output, "\t", false));
fd->close();