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); }
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); } }