void onFootballerDynamicDataGet(string alias, GeoLib.Vector2 position, GeoLib.Vector2 velocity, int enduraneState)
    {
        foreach (Player player in players)
        {
            if (player.Data.Alias == alias)
            {
                player.EnduranceState = enduraneState;
                player.Position       = new Godot.Vector2((float)position.X, (float)position.Y);
                player.Velocity       = new Godot.Vector2((float)velocity.X, (float)velocity.Y);;

                if (player.Data.Alias == SessionData.User.Alias)
                {
                    playerDataPanel.Update(enduraneState, player.Velocity);
                }
            }
        }
    }
    Godot.Vector2 getFlyableLaunchForce()
    {
        GeoLib.Vector2 mousePos   = new GeoLib.Vector2(flyable.GetGlobalMousePosition().x, flyable.GetGlobalMousePosition().y);
        GeoLib.Vector2 flyablePos = new GeoLib.Vector2(flyable.Position.x, flyable.Position.y);

        MathLine strikeLine = new MathLine(mousePos, flyablePos);
        double   angle      = strikeLine.GetAcuteAngle();

        float xForce = Flyable.FORCE * (float)Math.Cos(angle);
        float yForce = Flyable.FORCE * (float)Math.Sin(angle);

        Godot.Vector2 hitForce = new Godot.Vector2(xForce, yForce);

        if (mousePos.X < flyablePos.X)
        {
            hitForce *= -1;
        }

        return(hitForce);
    }
 void onBallDataGet(GeoLib.Vector2 position, GeoLib.Vector2 velocity)
 {
     ball.Position = new Godot.Vector2((float)position.X, (float)position.Y);
     ball.Velocity = new Godot.Vector2((float)velocity.X, (float)velocity.Y);
 }