Example #1
0
        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
                });
            }
        }
Example #2
0
 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);
         }
     }
 }