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); }
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); } }
/// <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); } }