private void FixedUpdate() { --counter; if (counter <= 0) { respondingColors = respondingColors.Distinct().ToList(); respondingColors.Sort(); //CheckOutColorWriter.Data.colorsIds.Clear(); //CheckOutColorWriter.Data.colorsIds.AddRange(respondingColors); var update = new Improbable.Demo.CheckOutColor.Update(); update.colorsIds = CheckOutColorWriter.Data.colorsIds; update.colorsIds.Value.Clear(); update.colorsIds.Value.AddRange(respondingColors); CheckOutColorWriter.Send(update); // Do not start pings when about to lose authority to prevent commands being lost if (CheckOutColorWriter.Authority == Authority.Authoritative) { DoPing(); } } }
private void DoPing() { counter = PING_TIMEOUT_FRAMES; respondingColors.Clear(); var update = new Improbable.Demo.CheckOutColor.Update(); update.AddPing(PingInfo.Create()); CheckOutColorWriter.Send(update); }
private SendAndUpdateColorIdReturn RespondToSendAndUpdateColorId(ColorId idReceived, ICommandCallerInfo callerInfo) { respondingColors.Add(idReceived.colorId); if (!CheckOutColorWriter.Data.colorsIds.Contains(idReceived.colorId)) { CheckOutColorWriter.Data.colorsIds.Add(idReceived.colorId); CheckOutColorWriter.Data.colorsIds.Sort(); var update = new Improbable.Demo.CheckOutColor.Update(); update.colorsIds = CheckOutColorWriter.Data.colorsIds; CheckOutColorWriter.Send(update); } return(SendAndUpdateColorIdReturn.Create()); }