Eu acho que este é um pequeno problema.
Seguindo o problema.
Tenho alguns projetos que guardo no meu pendrive USB. Então, eu os importo em godot e tudo funciona bem.
Se o pendrive USB estiver conectado e eu iniciar o godot, o projeto será listado.
Agora aí vem o problema. Se meu pendrive USB não estiver conectado e eu iniciar o godot, o projeto obviamente não estará listado. Mas parece que então ele é completamente removido da lista. Mesmo que eu conecte o stick ao meu computador e reinicie o godot, o projeto não existe mais e tenho que adicioná-lo novamente manualmente. Isso é um pouco chato.
Seria bom se esse projeto ainda estiver armazenado. Mesmo se o pendrive USB não estiver conectado.
Acho que a lógica pode ser manter todos os projetos na lista, mesmo que não sejam encontrados no sistema, mas talvez esmaecidos ou faltando algo. A tentativa de editar / executar tal projeto acionaria um pop-up que o notifica de que os arquivos estão faltando e propõe removê-lo da lista de projetos, se desejar.
A sugestão em # 8792 era mantê-los na lista e, adicionalmente, dar uma opção para removê-los da lista de projetos.
Dei uma olhada no código da lista de projetos do editor antes e acho que tenho uma ideia básica de como isso pode ser implementado. Minhas habilidades em c ++ são limitadas, mas talvez eu tente fazer isso funcionar mais tarde.
O bloco FileAccess::exists(conf)
else dentro de ProjectManager::_load_recent_projects()
pode ser modificado para buscar as seguintes linhas de EditorSettings
como exemplo:
(favourite_)projects/::path::to::my::awesome::godot::project/cached_project_name
(favourite_)projects/::path::to::my::awesome::godot::project/cached_project_modified_time
(favourite_)projects/::path::to::my::awesome::godot::project/cached_project_icon
(talvez de .godot/tmp
?)
Estou me perguntando como lidar com o obviamente ausente conf
. Ele poderia possivelmente fazer outra verificação do arquivo no disco ou ver se conf
é uma string especial de "projeto não encontrado", mas também há um monte de outras coisas a serem levadas em consideração.
Comentários muito úteis
Acho que a lógica pode ser manter todos os projetos na lista, mesmo que não sejam encontrados no sistema, mas talvez esmaecidos ou faltando algo. A tentativa de editar / executar tal projeto acionaria um pop-up que o notifica de que os arquivos estão faltando e propõe removê-lo da lista de projetos, se desejar.