public override int GetHashCode()
        {
            int hashCode = -1049898043;

            hashCode = hashCode * -1521134295 + Id.GetHashCode();
            hashCode = hashCode * -1521134295 + LabBookId.GetHashCode();
            hashCode = hashCode * -1521134295 + Lm.GetHashCode();
            hashCode = hashCode * -1521134295 + Am.GetHashCode();
            hashCode = hashCode * -1521134295 + Bm.GetHashCode();
            hashCode = hashCode * -1521134295 + Ls.GetHashCode();
            hashCode = hashCode * -1521134295 + As.GetHashCode();
            hashCode = hashCode * -1521134295 + Bs.GetHashCode();
            hashCode = hashCode * -1521134295 + WIm.GetHashCode();
            hashCode = hashCode * -1521134295 + YIm.GetHashCode();
            hashCode = hashCode * -1521134295 + WIs.GetHashCode();
            hashCode = hashCode * -1521134295 + YIs.GetHashCode();
            hashCode = hashCode * -1521134295 + X.GetHashCode();
            hashCode = hashCode * -1521134295 + Y.GetHashCode();
            hashCode = hashCode * -1521134295 + Z.GetHashCode();
            hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(Comment);

            hashCode = hashCode * -1521134295 + Created.GetHashCode();
            hashCode = hashCode * -1521134295 + Updated.GetHashCode();
            return(hashCode);
        }
示例#2
0
        public void WriteFiles(List <AssetsReplacer> replacers, bool overwrite = false)
        {
            var lastFileId = replacers.Max(r => r.GetFileID());

            for (var fileId = 0; fileId <= lastFileId; fileId++)
            {
                var id = fileId;
                var sortedAssetsList = replacers.Where(r => r.GetFileID() == id).ToList();  // sort the list of replacers by fileID
                var fileInst         = Workspace.LoadedFiles[fileId];
                if (overwrite)
                {
                    var path     = fileInst.path;
                    var tempPath = Path.Combine(Path.GetTempPath(), fileInst.name);
                    using var fs     = File.OpenWrite(tempPath);
                    using var writer = new AssetsFileWriter(fs);
                    fileInst.file.Write(writer, 0, sortedAssetsList, 0);
                    Am.UnloadAssetsFile(path);
                    fs.Close();
                    File.Replace(tempPath, path, path + ".backup");
                    Workspace.LoadedFiles[fileId] = Am.LoadAssetsFile(path, false);
                }
                else
                {
                    var sfd = new SaveFileDialog
                    {
                        Title    = @"Save as...",
                        Filter   = @"All types (*.*)|*.*|Assets file (*.assets)|*.assets",
                        FileName = fileInst.name
                    };
                    if (sfd.ShowDialog() != DialogResult.OK)
                    {
                        continue;
                    }
                    if (fileInst.path == sfd.FileName)
                    {
                        MsgBoxUtils.ShowErrorDialog("If you want to overwrite files go to \"File->Save\" instead of \"File->Save as...\"!");
                        return;
                    }
                    using var fs     = File.OpenWrite(sfd.FileName);
                    using var writer = new AssetsFileWriter(fs);
                    fileInst.file.Write(writer, 0, sortedAssetsList, 0);
                }
            }
        }