示例#1
0
 internal static bool TryDeserialize(string name, IReader reader, out GearsChunk chunk)
 {
     chunk = new GearsChunk(name);
     if (!chunk.Deserialize(reader))
     {
         chunk = null;
         return(false);
     }
     return(true);
 }
示例#2
0
        private static bool TestSerializeDeserialize(GearsChunk chunk, string path)
        {
            string filename = $"{Path.GetFileNameWithoutExtension(path)}.lxx";

            using (BinaryFileWriter writer = new BinaryFileWriter(filename)) {
                chunk.Serialize(writer);
                writer.Close();
            }
            using (BinaryFileReader reader = new BinaryFileReader(filename)) {
                bool success = GearsChunk.TryDeserialize(filename, reader, out chunk);
                reader.Close();
                return(success);
            }
        }
示例#3
0
 /// <summary>
 /// Underlying - sets up a gears machine for this chunk.
 /// </summary>
 private static bool TryLoad(string path, GearsChunk chunk, bool firstrun, ref Gears gears, ref string status)
 {
     if (DebugTestSerialization && !TestSerializeDeserialize(chunk, path))
     {
         status = $"Error serializing GearsChunk in LoxHandler.TryLoad: Could not serialize or deserialize '{path}'.";
         return(false);
     }
     try {
         gears = new Gears().Reset(chunk, firstrun);
         return(true);
     }
     catch (Exception e) {
         status = $"Error initializing Gears in {e.TargetSite.DeclaringType.Name}.{e.TargetSite.Name}: {path} {e}";
         return(false);
     }
 }