public void InteractWith(Selectable selectable, Vector3 pos)
        {
            bool can_interact = selectable.CanBeInteracted();
            bool surface      = selectable.type == SelectableType.InteractSurface || !can_interact;

            auto_move_select      = can_interact ? selectable : null;
            auto_move_target      = surface ? pos : selectable.transform.position;
            auto_move_target_next = surface ? pos : selectable.transform.position;

            auto_move                = true;
            auto_move_drop           = -1;
            auto_move_drop_inventory = null;
            auto_move_timer          = 0f;
            path_found               = false;
            calculating_path         = false;
            auto_move_attack         = null;

            character_craft.CancelCrafting();
            CalculateNavmesh();
        }