public object Deserialize(Stream inStream)
        {
            VehicleEventMessage msg = (VehicleEventMessage)_serialize.Deserialize(inStream);
            var rc = VehicleEventMessageConverter.FromProtoBuf(msg);

            msg.ReleaseReference();
            return(rc);
        }
        public void Serialize(Stream outStream, object message)
        {
            var syncEvent           = (IVehicleSyncEvent)message;
            VehicleEventMessage msg = VehicleEventMessage.Allocate();

            VehicleEventMessageConverter.ToProtoBuf(msg, syncEvent);
            _serialize.Serialize(outStream, msg);
            msg.ReleaseReference();
        }
Beispiel #3
0
        public static IVehicleSyncEvent FromProtoBuf(VehicleEventMessage message)
        {
            switch (message.EventType)
            {
            case (int)VehicleSyncEventType.Damage:
            {
                var damageSyncEvent = VehicleDamangeSyncEvent.Allocate();
                damageSyncEvent.EType          = VehicleSyncEventType.Damage;
                damageSyncEvent.SourceObjectId = message.SourceId;
                damageSyncEvent.TargetObject   = new EntityKey(message.Ints[1], (short)message.Ints[0]);
                damageSyncEvent.Damage         = message.Floats[0];
                return(damageSyncEvent);
            }

            default:
                throw new Exception("Unkown VehicleSyncEventType : " + message.EventType);
            }
        }
Beispiel #4
0
        public static void ToProtoBuf(VehicleEventMessage msg, IVehicleSyncEvent syncEvent)
        {
            switch (syncEvent.EType)
            {
            case VehicleSyncEventType.Damage:
            {
                msg.EventType = (int)syncEvent.EType;
                msg.SourceId  = syncEvent.SourceObjectId;
                var damageSyncEvent = (VehicleDamangeSyncEvent)syncEvent;
                msg.Ints.Add(damageSyncEvent.TargetObject.EntityType);
                msg.Ints.Add(damageSyncEvent.TargetObject.EntityId);
                msg.Floats.Add(damageSyncEvent.Damage);
                break;
            }

            default:
                throw new Exception("Unkown VehicleSyncEvent Type : " + syncEvent.EType);
            }
        }