diff options
author | Daniele Giuliani <d.giuliani304@gmail.com> | 2018-05-16 00:50:57 +0200 |
---|---|---|
committer | Daniele Giuliani <d.giuliani304@gmail.com> | 2018-05-16 00:50:57 +0200 |
commit | d315b0fb8aa03ee6ecc7d93d884b606dc19c6ad5 (patch) | |
tree | 3ce31259c79d26f74f1dfcd9c9d4a77df261ce61 /core/io | |
parent | 005b69cf6e276209464cc8c36ebc7376679925b6 (diff) |
added get_creation_time function for gdscript
Diffstat (limited to 'core/io')
-rw-r--r-- | core/io/file_access_buffered_fa.h | 6 | ||||
-rw-r--r-- | core/io/file_access_compressed.cpp | 9 | ||||
-rw-r--r-- | core/io/file_access_compressed.h | 1 | ||||
-rw-r--r-- | core/io/file_access_encrypted.cpp | 6 | ||||
-rw-r--r-- | core/io/file_access_encrypted.h | 1 | ||||
-rw-r--r-- | core/io/file_access_memory.h | 1 | ||||
-rw-r--r-- | core/io/file_access_network.cpp | 18 | ||||
-rw-r--r-- | core/io/file_access_network.h | 1 | ||||
-rw-r--r-- | core/io/file_access_pack.h | 1 | ||||
-rw-r--r-- | core/io/file_access_zip.h | 1 | ||||
-rw-r--r-- | core/io/resource_loader.cpp | 1 | ||||
-rw-r--r-- | core/io/resource_saver.cpp | 1 |
12 files changed, 47 insertions, 0 deletions
diff --git a/core/io/file_access_buffered_fa.h b/core/io/file_access_buffered_fa.h index 493fa1c243..f9b3b29b88 100644 --- a/core/io/file_access_buffered_fa.h +++ b/core/io/file_access_buffered_fa.h @@ -143,6 +143,12 @@ public: return f._get_modified_time(p_file); } +// NEW FUNCTION + virtual uint64_t _get_creation_time(const String &p_file) { + + return f._get_creation_time(p_file); + } + FileAccessBufferedFA(){ }; diff --git a/core/io/file_access_compressed.cpp b/core/io/file_access_compressed.cpp index d6547ba19f..5f08c4fc7c 100644 --- a/core/io/file_access_compressed.cpp +++ b/core/io/file_access_compressed.cpp @@ -372,6 +372,15 @@ uint64_t FileAccessCompressed::_get_modified_time(const String &p_file) { return 0; } +// NEW FUNCTION +uint64_t FileAccessCompressed::_get_creation_time(const String &p_file) { + + if (f) + return f->get_creation_time(p_file); + else + return 0; +} + FileAccessCompressed::FileAccessCompressed() { f = NULL; diff --git a/core/io/file_access_compressed.h b/core/io/file_access_compressed.h index 587f58a7c6..834e5b1830 100644 --- a/core/io/file_access_compressed.h +++ b/core/io/file_access_compressed.h @@ -91,6 +91,7 @@ public: virtual bool file_exists(const String &p_name); ///< return true if a file exists virtual uint64_t _get_modified_time(const String &p_file); + virtual uint64_t _get_creation_time(const String &p_file);// NEW FUNCTION FileAccessCompressed(); virtual ~FileAccessCompressed(); diff --git a/core/io/file_access_encrypted.cpp b/core/io/file_access_encrypted.cpp index 221f457b78..84268c6698 100644 --- a/core/io/file_access_encrypted.cpp +++ b/core/io/file_access_encrypted.cpp @@ -302,6 +302,12 @@ uint64_t FileAccessEncrypted::_get_modified_time(const String &p_file) { return 0; } +// NEW FUNCTION +uint64_t FileAccessEncrypted::_get_creation_time(const String &p_file) { + + return 0; +} + FileAccessEncrypted::FileAccessEncrypted() { file = NULL; diff --git a/core/io/file_access_encrypted.h b/core/io/file_access_encrypted.h index b9365a9fd0..7cc9ab6637 100644 --- a/core/io/file_access_encrypted.h +++ b/core/io/file_access_encrypted.h @@ -79,6 +79,7 @@ public: virtual bool file_exists(const String &p_name); ///< return true if a file exists virtual uint64_t _get_modified_time(const String &p_file); + virtual uint64_t _get_creation_time(const String &p_file); // NEW FUNCTION FileAccessEncrypted(); ~FileAccessEncrypted(); diff --git a/core/io/file_access_memory.h b/core/io/file_access_memory.h index 2136f4cc0c..3317c20e01 100644 --- a/core/io/file_access_memory.h +++ b/core/io/file_access_memory.h @@ -70,6 +70,7 @@ public: virtual bool file_exists(const String &p_name); ///< return true if a file exists virtual uint64_t _get_modified_time(const String &p_file) { return 0; } + virtual uint64_t _get_creation_time(const String &p_file) { return 0; } // NEW FUNCTION FileAccessMemory(); }; diff --git a/core/io/file_access_network.cpp b/core/io/file_access_network.cpp index 21e3a4172b..98403bf3f1 100644 --- a/core/io/file_access_network.cpp +++ b/core/io/file_access_network.cpp @@ -498,6 +498,24 @@ uint64_t FileAccessNetwork::_get_modified_time(const String &p_file) { return exists_modtime; } +// NEW FUNCTION +uint64_t FileAccessNetwork::_get_creation_time(const String &p_file) { + + FileAccessNetworkClient *nc = FileAccessNetworkClient::singleton; + nc->lock_mutex(); + nc->put_32(id); + nc->put_32(COMMAND_GET_MODTIME); + CharString cs = p_file.utf8(); + nc->put_32(cs.length()); + nc->client->put_data((const uint8_t *)cs.ptr(), cs.length()); + nc->unlock_mutex(); + DEBUG_PRINT("MODTIME POST"); + nc->sem->post(); + sem->wait(); + + return exists_modtime; +} + void FileAccessNetwork::configure() { GLOBAL_DEF("network/remote_fs/page_size", 65536); diff --git a/core/io/file_access_network.h b/core/io/file_access_network.h index be9bdb1af6..debd4386b8 100644 --- a/core/io/file_access_network.h +++ b/core/io/file_access_network.h @@ -162,6 +162,7 @@ public: virtual bool file_exists(const String &p_path); ///< return true if a file exists virtual uint64_t _get_modified_time(const String &p_file); + virtual uint64_t _get_creation_time(const String &p_file); // NEW FUNCTION static void configure(); diff --git a/core/io/file_access_pack.h b/core/io/file_access_pack.h index 8a40e6d78c..513e2896c3 100644 --- a/core/io/file_access_pack.h +++ b/core/io/file_access_pack.h @@ -142,6 +142,7 @@ class FileAccessPack : public FileAccess { FileAccess *f; virtual Error _open(const String &p_path, int p_mode_flags); virtual uint64_t _get_modified_time(const String &p_file) { return 0; } + virtual uint64_t _get_creation_time(const String &p_file) { return 0; } // NEW FUNCTION public: virtual void close(); diff --git a/core/io/file_access_zip.h b/core/io/file_access_zip.h index df83575f6a..11f9687e77 100644 --- a/core/io/file_access_zip.h +++ b/core/io/file_access_zip.h @@ -114,6 +114,7 @@ public: virtual bool file_exists(const String &p_name); ///< return true if a file exists virtual uint64_t _get_modified_time(const String &p_file) { return 0; } // todo + virtual uint64_t _get_creation_time(const String &p_file) { return 0; } // NEW FUNCTION FileAccessZip(const String &p_path, const PackedData::PackedFile &p_file); ~FileAccessZip(); diff --git a/core/io/resource_loader.cpp b/core/io/resource_loader.cpp index 1351030d1e..86bf77318e 100644 --- a/core/io/resource_loader.cpp +++ b/core/io/resource_loader.cpp @@ -231,6 +231,7 @@ RES ResourceLoader::load(const String &p_path, const String &p_type_hint, bool p res->set_edited(false); if (timestamp_on_load) { uint64_t mt = FileAccess::get_modified_time(path); + uint64_t ct = FileAccess::get_creation_time(path); // NEW FUNCTION //printf("mt %s: %lli\n",remapped_path.utf8().get_data(),mt); res->set_last_modified_time(mt); } diff --git a/core/io/resource_saver.cpp b/core/io/resource_saver.cpp index 3dcd94880a..e4bfd5a321 100644 --- a/core/io/resource_saver.cpp +++ b/core/io/resource_saver.cpp @@ -80,6 +80,7 @@ Error ResourceSaver::save(const String &p_path, const RES &p_resource, uint32_t ((Resource *)p_resource.ptr())->set_edited(false); if (timestamp_on_save) { uint64_t mt = FileAccess::get_modified_time(p_path); + uint64_t ct = FileAccess::get_creation_time(p_path); // NEW FUNCTION ((Resource *)p_resource.ptr())->set_last_modified_time(mt); } |