internal void ApplyDiff(ViewDiff diff) { var entitiesAdded = diff.GetEntitiesAdded(); foreach (var entity in entitiesAdded) { entities.Add(entity); } var entitiesRemoved = diff.GetEntitiesRemoved(); foreach (var entity in entitiesRemoved) { entities.Remove(entity); } foreach (var storage in viewStorages) { storage.ApplyDiff(diff); } foreach (var pair in diff.GetWorkerFlagChanges()) { workerFlags[pair.Item1] = pair.Item2; } }
internal void ApplyDiff(ViewDiff diff) { using (applyDiffMarker.Auto()) { if (diff.Disconnected) { OnDisconnect(diff.DisconnectMessage); return; } foreach (var entityId in diff.GetEntitiesAdded()) { AddEntity(entityId); } foreach (var manager in managers) { manager.ApplyDiff(diff); } foreach (var entityId in diff.GetEntitiesRemoved()) { RemoveEntity(entityId); } } }
internal void ApplyDiff(ViewDiff diff) { entitiesAdded.Clear(); entitiesRemoved.Clear(); // todo decide on a container and remove this foreach (var entityId in diff.GetEntitiesAdded()) { entitiesAdded.Add(entityId); } foreach (var entityId in diff.GetEntitiesRemoved()) { entitiesRemoved.Add(entityId); } }
internal void ApplyDiff(ViewDiff diff) { var entitiesAdded = diff.GetEntitiesAdded(); foreach (var entity in entitiesAdded) { entities.Add(entity); } var entitiesRemoved = diff.GetEntitiesRemoved(); foreach (var entity in entitiesRemoved) { entities.Remove(entity); } foreach (var storage in viewStorages) { storage.ApplyDiff(diff); } }
internal void ApplyDiff(ViewDiff diff) { using (applyDiffMarker.Auto()) { entitiesAdded.Clear(); entitiesRemoved.Clear(); // todo decide on a container and remove this foreach (var entityId in diff.GetEntitiesAdded()) { entitiesAdded.Add(entityId); } foreach (var entityId in diff.GetEntitiesRemoved()) { entitiesRemoved.Add(entityId); } if (entitiesAdded.Count != 0 || entitiesRemoved.Count != 0) { ViewVersion += 1; } } }