Example #1
0
        private void OnComponentAuthorityChanged(EntityId entityId, IComponentMetaclass componentId, Authority authority, object componentObj)
        {
            if (authority == Authority.Authoritative)
            {
                return;
            }

            var            component = new EntityComponentId(entityId, componentId.ComponentId);
            HashSet <uint> requestIds;

            if (!componentToRequestIds.TryGetValue(component, out requestIds))
            {
                return;
            }

            foreach (var requestId in requestIds)
            {
                componentCommander.ForgetRequestId(requestId);
            }

            componentToRequestIds.Remove(component);
        }
Example #2
0
        private void TrackRequest(IComponentWriter writer, Option <uint> requestId)
        {
            if (writer == null || !requestId.HasValue)
            {
                return;
            }

            var            component = new EntityComponentId(writer.EntityId, writer.ComponentId);
            HashSet <uint> requestIds;

            if (!componentToRequestIds.TryGetValue(component, out requestIds))
            {
                requestIds = new HashSet <uint> {
                    requestId.Value
                };
                componentToRequestIds.Add(component, requestIds);
            }
            else
            {
                requestIds.Add(requestId.Value);
            }
        }