private void Sync() { for (int i = 0; i < NetworkSyncComponents.Length; i++) { NetworkSyncComponent c = NetworkSyncComponents[i]; if (c.NeedSendSyncData()) { OutgoingMessage mes = scene.networkService.CreateServerMessage(); mes.Write(NetworkedScene.SYNC); mes.Write(c.Owner.Name); mes.Write(c.GetType().ToString()); c.WriteSyncData(mes); scene.networkService.SendToClients(mes, DeliveryMethod.ReliableOrdered); Trace.WriteLine("sending to clients: " + c.Owner.Name); } } }
private void Synchro(object sender, IncomingMessage receivedMessage) { string entName = receivedMessage.ReadString(); string cName = receivedMessage.ReadString(); Entity ent = networkedScene.EntityManager.Find(entName); if (ent != null && !ent.IsDisposed) { NetworkSyncComponent[] comps = ent.FindComponents <NetworkSyncComponent>(false); for (int i = 0; i < comps.Length; i++) { NetworkSyncComponent comp = comps[i]; Trace.WriteLine(comp.GetType().ToString()); if (comp.GetType().ToString() == cName) { comp.ReadSyncData(receivedMessage); break; } } } }