Exemple #1
0
        bool SerializeField(SnapshotField field, NetBuffer buffer, DeltaSnapshot prev)
        {
            // Write field type
            buffer.Write((byte)field.Type);

            // Write the field data
            if (field.Type == SnapshotFieldType.Primitive)
            {
                // Write primitive
                buffer.Write((byte)field.PrimitiveType);
                buffer.WriteDynamic(field.Value);
            }
            else if (field.Type == SnapshotFieldType.Trigger)
            {
                Trigger t = (Trigger)field.Value;

                // Write trigger
                buffer.Write(t.Iterations);
                // Reset trigger
                t.Iterations = 0;
            }
            else if (field.Type == SnapshotFieldType.Snapshot)
            {
                // Write nested snapshot
                Snapshot ns = (Snapshot)field.Value;
                ns.Serialize(buffer);
            }
            else if (field.Type == SnapshotFieldType.Custom)
            {
                // Write custom snapshot
                CustomSnapshot cs = (CustomSnapshot)field.Value;
                cs.Serialize(buffer);
            }

            return(true);
        }