internal void UpdatePosition(Positions positions)
 {
     updatedPositions.Enqueue(positions);
 }
 protected void applyPositionUpdate(Positions positions)
 {
     // TODO : change this
     int i = GameEnvironment.Instance.Players.Count-1;
     foreach (Player p in GameEnvironment.Instance.Players)
     {
         if (p != GameEnvironment.Instance.LocalPlayer)
         {
             p.getCharacter().body.position = positions.positions[i].pos;
             p.getCharacter().setRotation(positions.positions[i].rot);
         }
         i--;
     }
 }
 private void sendPositions()
 {
     foreach (Player receiver in GameEnvironment.Instance.Players)
     {
         if( receiver != GameEnvironment.Instance.LocalPlayer)
         {
             Positions positions = new Positions();
             positions.positions = new List<Position>();
             foreach (Player p in GameEnvironment.Instance.Players)
             {
                 if (p != receiver)
                 {
                     positions.positions.Add(new Position(p.getCharacter().body.position, p.getCharacter().getRotation()));
                 }
             }
             communication.SendReliable(positions, NetFrame.FrameType.positions, receiver);
         }
     }
 }