コード例 #1
0
        private void InternalCheckForCompilation()
        {
            if (_isRebuilding != EditorApplication.isCompiling)
            {
                if (!_isRebuilding && EditorApplication.isCompiling)
                {
                    var compilationText =
                        (TextAsset)AssetDatabase.LoadAssetAtPath(CompilationNumberFile, typeof(TextAsset));
                    if (compilationText != null)
                    {
                        CurrentCompilation = JsonConvert.DeserializeObject <JEMBuildCompilation>(compilationText.text);
                    }
                    if (CurrentCompilation == null)
                    {
                        Debug.LogError("Unable to load compilation data to update number.");
                        return;
                    }

                    CurrentCompilation.CompilationNumber++;
                    CurrentCompilation.CompilationTime = DateTime.UtcNow;

                    var json = JsonConvert.SerializeObject(CurrentCompilation, Formatting.Indented);
                    File.WriteAllText(CompilationNumberFile, json);
                    File.WriteAllText(LastContributorFile, JEMBuildEditor.ResolveCurrentContributorName());

                    AssetDatabase.Refresh(ImportAssetOptions.Default);
                    AssetDatabase.SaveAssets();
                    RefreshLocalData();
                }

                _isRebuilding = EditorApplication.isCompiling;
            }

            Repaint();
        }
コード例 #2
0
        /// <summary>
        ///     Saves data to local file
        /// </summary>
        public static void SaveLocalData()
        {
            // save version info
            if (CurrentVersion != null)
            {
                var json = JsonConvert.SerializeObject(CurrentVersion, Formatting.Indented);
                var dir  = Path.GetDirectoryName(VersionFile);
                if (!Directory.Exists(dir))
                {
                    Directory.CreateDirectory(dir);
                }
                File.WriteAllText(VersionFile, json);
            }

            // save compilation info
            if (CurrentCompilation != null)
            {
                var json = JsonConvert.SerializeObject(CurrentCompilation, Formatting.Indented);
                var dir  = Path.GetDirectoryName(CompilationNumberFile);
                if (!Directory.Exists(dir))
                {
                    Directory.CreateDirectory(dir);
                }

                File.WriteAllText(CompilationNumberFile, json);
                File.WriteAllText(LastContributorFile, JEMBuildEditor.ResolveCurrentContributorName());
            }

            // save asset database
            AssetDatabase.Refresh(ImportAssetOptions.Default);
            AssetDatabase.SaveAssets();

            // refresh local data
            RefreshLocalData();
        }
コード例 #3
0
        /// <summary>
        /// Increase build number.
        /// </summary>
        public static void IncreaseBuildNumber()
        {
            var compilationText = (TextAsset)AssetDatabase.LoadAssetAtPath(CompilationNumberFile, typeof(TextAsset));

            if (compilationText != null)
            {
                CurrentCompilation = JsonConvert.DeserializeObject <JEMBuildCompilation>(compilationText.text);
            }
            if (CurrentCompilation == null)
            {
                Debug.LogError("Unable to load compilation data to update number.");
                return;
            }

            CurrentCompilation.BuildNumber++;
            CurrentCompilation.BuildTime = DateTime.UtcNow;

            var json = JsonConvert.SerializeObject(CurrentCompilation, Formatting.Indented);

            File.WriteAllText(CompilationNumberFile, json);
            File.WriteAllText(LastContributorFile, JEMBuildEditor.ResolveCurrentContributorName());

            AssetDatabase.Refresh(ImportAssetOptions.Default);
            AssetDatabase.SaveAssets();
            RefreshLocalData();
        }
コード例 #4
0
        /// <summary>
        ///     Loads local data.
        /// </summary>
        public static void RefreshLocalData()
        {
            // load version info
            var versionData = (TextAsset)AssetDatabase.LoadAssetAtPath(VersionFile, typeof(TextAsset));

            if (versionData == null)
            {
                // initialize new version file
                CurrentVersion = new JEMBuildVersion();
                var dir = Path.GetDirectoryName(VersionFile);
                if (!Directory.Exists(dir))
                {
                    Directory.CreateDirectory(dir ?? throw new InvalidOperationException());
                }

                File.WriteAllText(VersionFile, JsonConvert.SerializeObject(CurrentVersion, Formatting.Indented));

                AssetDatabase.Refresh(ImportAssetOptions.Default);
                AssetDatabase.SaveAssets();
                Debug.Log($"File {VersionFile} not exist. New file has been created.");
            }
            else
            {
                CurrentVersion = JsonConvert.DeserializeObject <JEMBuildVersion>(versionData.text);
            }

            if (CurrentVersion == null)
            {
                Debug.LogError("Unable to resolve current version data.");
            }

            // load compilation file
            var compilationText = !File.Exists(CompilationNumberFile)
                ? null
                : (TextAsset)AssetDatabase.LoadAssetAtPath(CompilationNumberFile, typeof(TextAsset));

            if (compilationText == null)
            {
                // initialize new compilation number file
                CurrentCompilation = new JEMBuildCompilation();
                var dir = Path.GetDirectoryName(CompilationNumberFile);
                if (!Directory.Exists(dir))
                {
                    Directory.CreateDirectory(dir ?? throw new InvalidOperationException());
                }
                File.WriteAllText(CompilationNumberFile,
                                  JsonConvert.SerializeObject(CurrentCompilation, Formatting.Indented));
                File.WriteAllText(LastContributorFile, JEMBuildEditor.ResolveCurrentContributorName());

                AssetDatabase.Refresh(ImportAssetOptions.Default);
                AssetDatabase.SaveAssets();
                Debug.Log($"File {CompilationNumberFile} not exist. New file has been created.");
            }
            else
            {
                CurrentCompilation = JsonConvert.DeserializeObject <JEMBuildCompilation>(compilationText.text);
            }

            if (CurrentCompilation == null)
            {
                Debug.LogError("Unable to resolve current compilation data.");
            }

            // apply compilation number
            CurrentCompilationNumber = JEMBuild.ResolveCurrentCompilationNumber();
            CurrentBuildNumber       = JEMBuild.ResolveCurrentBuildNumber();

            CurrentSessionTime = JEMBuild.ResolveCurrentSessionTime();

            // apply bundle version
            if (JEMEditorConfiguration.Configuration?.UpdateBundleVersion ?? false)
            {
                UpdateBundleVersion();
            }

            JEMBuildFlags.LoadFlags();
            JEMBuildFlags.ApplyFlags();
        }