public override void Save(bool freshWithoutChanged = false)
        {
            FileStream       fs  = DataFile.Open(FileMode.Create);
            ByteStreamWriter bsw = new ByteStreamWriter(fs);

            int w = Value.GetLength(1), h = Value.GetLength(0);

            bsw.Write(BitConverter.GetBytes(w), 4);
            bsw.Write(BitConverter.GetBytes(h), 4);

            for (int i = 0; i < h; i++)
            {
                for (int j = 0; j < w; j++)
                {
                    bsw.Write(Value[i, j].power);
                }
            }

            for (int i = 0; i < h; i++)
            {
                for (int j = 0; j < w; j++)
                {
                    bsw.Write((byte)Value[i, j].direction);
                }
            }

            bsw.Flush();
            bsw.Close();

            fs.Flush();
            fs.Close();

            Changed = false;
        }