1using System.Collections;
2using System.Collections.Generic;
12 private readonly List<string> filesToDelete =
new List<string>();
21 filesToDelete.Add(fileName);
22 StartCoroutine(DeleteFile(fileName));
25 private IEnumerator DeleteFile(
string filename)
30 yield
return NetworkManager.
instance.DeleteFileById(GetFileId(currentlyUploadedFiles, filename), () => {
Debug.Log(
"File delete OK!"); });
35 if (Application.internetReachability == NetworkReachability.NotReachable)
42 var fdd = FindObjectOfType<FileDragAndDrop>();
43 var t = fdd.paretnObject.transform;
44 var allModel = t.GetComponentsInChildren<
UploadedFile>(
true);
45 var usedFileIDs =
new List<int>();
50 Debug.Log(
"currentlyUploadedFiles: ");
51 Debug.Log(ToStr(currentlyUploadedFiles));
52 if (currentlyUploadedFiles !=
null)
55 var list = currentlyUploadedFiles.ToList();
57 list.AddRange(files.files);
59 currentlyUploadedFiles = list.ToArray();
64 currentlyUploadedFiles = files.files;
68 var currentlyUploadedFilesList = currentlyUploadedFiles.ToList();
73 var gtagFile = currentlyUploadedFiles.FirstOrDefault(x => x.fileName ==
"globalTags.gtag");
75 if (gtagFile !=
default)
77 var gtagId = currentlyUploadedFiles.First(x => x.fileName ==
"globalTags.gtag").id;
83 foreach (var f
in filesToDelete)
85 yield
return NetworkManager.
instance.DeleteFileById(GetFileId(currentlyUploadedFiles, f), () => {
Debug.Log($
"File delete OK! ({f})"); });
86 currentlyUploadedFilesList = currentlyUploadedFilesList.Where(x => StripPath(x.fileName) != StripPath(f) && StripPath(x.GetFileName()) != StripPath(f)).ToList();
90 foreach (var file
in allModel)
92 if (HasThisFileUploaded(currentlyUploadedFilesList.ToArray(), file))
94 Debug.Log($
"File {file.fileName} already uploaded...");
100 if (file.fileName.EndsWith(
".qiz") || file.fileName.EndsWith(
".hlp"))
103 yield
return NetworkManager.
instance.DeleteFileById(GetFileId(currentlyUploadedFilesList.ToArray(), file), () => { Debug.Log(
"File delete OK!"); });
104 yield
return NetworkManager.
instance.UploadFileToCurrent(file.modelData, file.fileName,
false, () => { Debug.Log($
"File '{file.fileName}' uploaded!"); }, () => {Debug.LogError($
"File '{file.fileName}' FAILED to upload!"); });
107 bool gotadded =
false;
108 if (file.global && !FileWasGlobal(currentlyUploadedFilesList, file))
110 Debug.Log($
"Converting local file '{file.fileName}' to global!\n Deleting local file:");
111 yield
return NetworkManager.
instance.DeleteFileById(GetFileId(currentlyUploadedFilesList.ToArray(), file),
112 () => { Debug.Log(
"File delete OK!"); });
113 Debug.Log($
"Uploading file as global:");
115 (x) => { Debug.Log($
"File '{file.fileName}' uploaded!"); usedFileIDs.Add(x.id);
118 () => { Debug.LogError($
"File '{file.fileName}' FAILED to upload!"); });
121 if (!gotadded && file.global && file.gameObject.activeInHierarchy)
123 usedFileIDs.Add(GetFileId(currentlyUploadedFilesList.ToArray(), file));
130 foreach (var f
in filesToDelete)
132 if (file.fileName == f)
142 yield
return NetworkManager.
instance.UploadFileToCurrent(file.modelData, file.fileName, file.global, (x) => { Debug.Log($
"File '{file.fileName}' uploaded!"); usedFileIDs.Add(x.id); }, () => {Debug.LogError($
"File '{file.fileName}' FAILED to upload!"); });
145 yield
return NetworkManager.
instance.UploadFileToCurrent(
GlobalTagManager.
instance.GetData(),
"globalTags.gtag",
false, () => { Debug.Log(
"File 'globalTags.gtag' uploaded!"); }, () => {Debug.LogError($
"File 'globalTags.gtag' FAILED to upload!"); });
148 if (usedFileIDs.Count > 0)
161 foreach (var wsFile
in files)
163 if (wsFile.fileName == StripPath(value.
fileName) || wsFile.GetFileName() == StripPath(value.
fileName))
171 private bool FileWasGlobal(List<NetworkManager.WSFile> files,
UploadedFile value)
173 foreach (var wsFile
in files)
175 if (wsFile.fileName == StripPath(value.
fileName) || wsFile.GetFileName() == StripPath(value.
fileName))
177 return wsFile.global;
185 foreach (var wsFile
in files)
187 if (wsFile.GetFileName() == StripPath(value.
fileName) || wsFile.fileName == StripPath(value.
fileName))
197 foreach (var wsFile
in files)
199 if (wsFile.GetFileName() == StripPath(fileName) || wsFile.fileName == StripPath(fileName))
204 Debug.LogWarning($
"File '{fileName}' not found in currentlyUploadedFiles");
205 Debug.LogWarning(ToStr(files));
213 foreach (var wsFile
in a)
215 retval += wsFile +
"\r\n";
221 private string StripPath(
string fullname)
223 var retval = fullname;
224 if (retval.IndexOf(
'\\') != -1)
226 retval = retval.Remove(0, retval.LastIndexOf(
'\\') + 1);
228 if (retval.IndexOf(
'/') != -1)
230 retval = retval.Remove(0, retval.LastIndexOf(
'/') + 1);
static UploadLevelObjects instance
IEnumerator UploadAllFiles()
void QueueDelete(string fileName)