Esempio n. 1
0
    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();
        }
    }
Esempio n. 2
0
    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();
        }
    }