Exemplo n.º 1
0
 private void MoveUser()
 {
     Coordinates <User>[] newMoveCoordinates = _usersMoveCoordinatesOut.ToArray();
     _usersMoveCoordinatesOut.Clear();
     for (int i = 0; i < newMoveCoordinates.Length; i++)
     {
         if (_users.ContainsKey(newMoveCoordinates[i].Model.Id))
         {
             CalculateCoordinates.CalculateCoef(newMoveCoordinates[i],
                                                _usersCoordinates.GetValueOrDefault(newMoveCoordinates[i].Model.Id));
             if (_usersMoveCoordinates.ContainsKey(newMoveCoordinates[i].Model.Id))
             {
                 _usersMoveCoordinates.Remove(newMoveCoordinates[i].Model.Id);
             }
             _usersMoveCoordinates.Add(newMoveCoordinates[i].Model.Id, newMoveCoordinates[i]);
         }
     }
     foreach (var userMoveCoord in _usersMoveCoordinates)
     {
         var userCoord = _usersCoordinates.GetValueOrDefault(userMoveCoord.Key);
         if (DateTime.Now > userCoord.TimeOffset)
         {
             CalculateCoordinates.CalculatePosition(userCoord, userMoveCoord.Value, _map.MoveDistance);
             CalculateCoordinates.CheckBorder(userCoord, userMoveCoord.Value);
             Console.WriteLine($"user {_users.GetValueOrDefault(userMoveCoord.Key).Name} coord x - {userCoord.x}, y {userCoord.y}");
         }
     }
 }
Exemplo n.º 2
0
        public void GetMoves()
        {
            try
            {
                Coordinates<User>[] moveCurrentUserCoords = _usersMoveCoordinatesBlockingCollection.ToArray();
                foreach (Coordinates<User> moveCurrentUserCoord in moveCurrentUserCoords)
                {
                    if (moveCurrentUserCoord != null)
                    {
                        _usersCoordinates.TryGetValue(moveCurrentUserCoord.Model.Id, out var currentUserCoor);
                        CalculateCoordinates.CalculateCoef(moveCurrentUserCoord, currentUserCoor);
                        _usersMoveCoordinates.Add(moveCurrentUserCoord.Model.Id, moveCurrentUserCoord);

                    }
                }
            }
            catch (InvalidOperationException) { }

        }