private void AddComponent(SendNetworkComponentEvent sendEvent) { if (_componentsForSend.ContainsKey(sendEvent.NetworkEntityUid)) { var componentsOnNetworkEntity = _componentsForSend[sendEvent.NetworkEntityUid]; foreach (var component in componentsOnNetworkEntity) { if (component.ComponentUid != sendEvent.ComponentTypeUid) { continue; } component.Bytes = sendEvent.ComponentBytes; return; } componentsOnNetworkEntity.Add(new Component { ComponentUid = sendEvent.ComponentTypeUid, Flags = sendEvent.ComponentFlags, Bytes = sendEvent.ComponentBytes }); } else { var list = new List <Component>(); _componentsForSend.Add(sendEvent.NetworkEntityUid, list); list.Add(new Component { ComponentUid = sendEvent.ComponentTypeUid, Flags = sendEvent.ComponentFlags, Bytes = sendEvent.ComponentBytes }); } }
public void AddComponentsForSend(SendNetworkComponentEvent component) { lock (_locker) { if (component.ComponentFlags.HasFlag(EcsNetComponentFlags.IS_EVENT)) { _eventsForSend.Add(new Component { ComponentUid = component.ComponentTypeUid, Bytes = component.ComponentBytes, Flags = component.ComponentFlags }); } else { AddComponent(component); } } }