public void Open(DataFileBrowser.Node file, bool useSourceFile) { EditorUtility.DisplayProgressBar("GameScriptEditor", "Parsing...", 0f); try { _file = file; _useSourceFile = useSourceFile; var contents = File.ReadAllText(useSourceFile ? _file.SourceFile.FullName : _file.LayeredFSFile.FullName); _script = new GameScript(contents); _blobsExpanded = new bool[_script.Blobs.Count]; _blobScrollPositions = new Vector2[_script.Blobs.Count]; } finally { EditorUtility.ClearProgressBar(); } }
public void Open(DataFileBrowser.Node file, bool useSourceFile) { EditorUtility.DisplayProgressBar("PlacementDataEditor", "Parsing...", 0f); _file = file; _useSourceFile = useSourceFile; _showGizmos = EditorPrefs.GetBool($"{nameof(PlacementDataEditor)}_showGizmos", true); _showAreaGizmos = EditorPrefs.GetBool($"{nameof(PlacementDataEditor)}_showAreaGizmos", true); var lines = File.ReadAllLines(useSourceFile ? _file.SourceFile.FullName : _file.LayeredFSFile.FullName); foreach (var line in lines) { if (!line.Contains("{")) { continue; } var split = line.Split('{'); string fullIdentifier = split[0]; string dataStr = "{" + string.Join("{", split.Skip(1)); var data = JObject.Parse(dataStr); if (!fullIdentifier.Contains(":")) { return; } var splitIdentifier = fullIdentifier.Split(':'); var type = splitIdentifier[0]; switch (type) { case "ASSET": { if (splitIdentifier.Length != 4) { Debug.LogError("Malformed asset: " + fullIdentifier); EditorUtility.ClearProgressBar(); return; } string assetType = splitIdentifier[1]; string name = splitIdentifier[2]; _entries.Add(CreateAsset(assetType, name, data)); break; } case "MISC": { _entries.Add(new Misc { Data = data }); break; } } } EditorUtility.DisplayProgressBar("PlacementDataEditor", "Loading preview models...", 0.5f); try { LoadPreviewModels(); } catch (Exception e) { Debug.LogException(e); } finally { EditorUtility.ClearProgressBar(); } }