private void SendDirtyMemoryVar(ServerPlayer[] playerInRange) { if (playerInRange.Length > 0) { NPC_BlackBoard packet = IntrepidSerialize.TakeFromPool(PacketType.NPC_BlackBoard) as NPC_BlackBoard; MemoryStream memoryStream = new MemoryStream(); BinaryWriter bw = new BinaryWriter(memoryStream); bw.Write(dirtyVars.Count); for (int i = 0; i < dirtyVars.Count; i++) { BBWriterReader.Write(dirtyVars[i], bw); } packet.bbDelta = memoryStream.ToArray(); packet.entityId = EntityId; Server.Send(packet, playerInRange.Select(e => e.EntityId)); dirtyVars.Clear(); } }
private void ReceiveBBPacket(NPC_BlackBoard obj) { OnBBStateFromServer?.Invoke(obj); }