/** Deserializes links placed by the user */ public virtual UserConnection[] DeserializeUserConnections() { System.IO.BinaryReader stream = readerStream; if (MoveToAnchor ("UserConnections")) { int count = stream.ReadInt32 (); UserConnection[] userConnections = new UserConnection[count]; for (int i=0;i<count;i++) { UserConnection conn = new UserConnection (); conn.p1 = new Vector3 (stream.ReadSingle (),stream.ReadSingle (),stream.ReadSingle ()); conn.p2 = new Vector3 (stream.ReadSingle (),stream.ReadSingle (),stream.ReadSingle ()); conn.doOverrideCost = stream.ReadBoolean (); conn.overrideCost = stream.ReadInt32 (); conn.oneWay = stream.ReadBoolean (); conn.width = stream.ReadSingle (); conn.type = (ConnectionType)stream.ReadInt32 (); conn.enable = stream.ReadBoolean (); conn.doOverrideWalkability = stream.ReadBoolean (); conn.doOverridePenalty = stream.ReadBoolean (); conn.overridePenalty = stream.ReadUInt32 (); userConnections[i] = conn; } return userConnections; } else { return new UserConnection[0]; } }
public void SerializeUserConnections(UserConnection[] conns) { if (conns == null) conns = new UserConnection[0]; System.Text.StringBuilder output = GetStringBuilder ();//new System.Text.StringBuilder(); JsonWriter writer = new JsonWriter (output,writerSettings); writer.Write (conns); byte[] bytes = encoding.GetBytes (output.ToString()); output = null; //If length is <= 2 that means nothing was serialized (file is "[]") if (bytes.Length <= 2) return; AddChecksum (bytes); zip.AddEntry ("connections"+jsonExt,bytes); }
//public void DeSerialize (AstarPath active, bool runtime, out NavGraph graph) { // DeSerialize (active, runtime, out graph, null); //} /** Serializes links placed by the user */ public virtual void SerializeUserConnections(UserConnection[] userConnections) { System.IO.BinaryWriter stream = writerStream; AddAnchor ("UserConnections"); if (userConnections != null) { stream.Write (userConnections.Length); for (int i=0;i<userConnections.Length;i++) { UserConnection conn = userConnections[i]; stream.Write (conn.p1.x); stream.Write (conn.p1.y); stream.Write (conn.p1.z); stream.Write (conn.p2.x); stream.Write (conn.p2.y); stream.Write (conn.p2.z); stream.Write (conn.doOverrideCost); stream.Write (conn.overrideCost); stream.Write (conn.oneWay); stream.Write (conn.width); stream.Write ((int)conn.type); stream.Write (conn.enable); stream.Write (conn.doOverrideWalkability); stream.Write (conn.doOverridePenalty); stream.Write (conn.overridePenalty); } } else { stream.Write (0); } }