public void AddEvent(ushort id, EntityEvent entityEvent) { Entities[id].Events.Add(entityEvent); // Keep a maximum of 100 entries if (Entities[id].Events.Count > 100) { Entities[id].Events.RemoveAt(0); } }
private void ReceivedEntityEvents(Message message) { if (GetEntityEventsCompleted != null) { //System.Diagnostics.Debug.WriteLine(""); //System.Diagnostics.Debug.WriteLine(string.Format("[X] Client received events in message: {0}", messageHelper.BytesToString(message.Data))); var args = new ClientEventsEventArgs(); // Read the message client.Reader.ReadNewMessage(message); client.Reader.ReadByte(); // Get the number of entities in this message ushort entities = client.Reader.ReadUInt16(); //System.Diagnostics.Debug.WriteLine(string.Format("[X] Number of entities: {0}", entities)); for (ushort i = 0; i < entities; i++) { // Get the id of the current entity ushort entityId = client.Reader.ReadUInt16(); // Get the number of events for the current entity byte events = client.Reader.ReadByte(); //System.Diagnostics.Debug.WriteLine(string.Format("[X] ClientId: {0}, Events: {1}", entityId, events)); for (byte j = 0; j < events; j++) { var entityEvent = new EntityEvent(); entityEvent.Id = entityId; entityEvent.TimeStamp = client.Reader.ReadTimeStamp(); entityEvent.Type = (EntityEventType)client.Reader.ReadByte(); args.Events.Add(entityEvent); System.Diagnostics.Debug.WriteLine(string.Format("[X] Client received event: ClientId: {0}, TimeStamp: {1}, Type: {2}", entityEvent.Id, entityEvent.TimeStamp, entityEvent.Type)); } } GetEntityEventsCompleted(this, args); } }
private void ReceivedEntityEvents(Message message) { var clientId = connectionIds[message.ClientId]; if (!entityHelper.Entities.ContainsKey(clientId)) { return; } // Header server.Reader.ReadNewMessage(message); server.Reader.ReadByte(); // Events int events = server.Reader.ReadByte() / 5; for (int i = 0; i < events; i++) { var entityEvent = new EntityEvent(); entityEvent.TimeStamp = server.Reader.ReadTimeStamp(); entityEvent.Type = (EntityEventType)server.Reader.ReadByte(); entityHelper.AddEvent(clientId, entityEvent); } }