Ir para o conteúdo
Features

Mover e renomear arquivos

Renomeie ou mova um arquivo ou uma pasta, e todo caminho que aponta para ele é atualizado.

Renomeie ou mova um arquivo ou uma pasta no VS Code, e todo caminho que aponta para ele é atualizado no mesmo passo. Você não precisa procurar o caminho antigo pelo mod.

Como usar

Renomeie um arquivo ou uma pasta no Explorer (F2, ou botão direito → Rename), ou arraste para outra pasta. Só isso.

Na primeira vez, o VS Code pergunta se deve aplicar as mudanças da extensão. Essa janela é do próprio VS Code e aparece para toda extensão que altera arquivos numa mudança de lugar. Marque Do not ask me again para não ver mais.

O que é atualizado

  • Os caminhos de @include, nos arquivos .sii e .sui.
  • Todo atributo que cita um arquivo: model: "/vehicle/truck/my_truck/cabin.pmd", shadow_texture, os sons ("horn|/sound/truck/horn.soundref") e o resto.
  • Os caminhos de textura nos arquivos .mat, tanto no formato do jogo quanto no mais antigo.
  • Os nomes de textura nos arquivos .tobj de texto, como o SCS Blender Tools os exporta.
  • O banco de som nos arquivos .soundref (source="/sound/truck/horns.bank#air"). O evento depois do # continua igual, aqui e nos arquivos .sii.
  • Os caminhos relativos escritos dentro de um arquivo que você move, para que continuem apontando para os mesmos arquivos.

Mover uma pasta atualiza os caminhos para todos os arquivos dentro dela.

Como os caminhos são escritos

  • Um caminho que começa com / continua começando com /.
  • Um caminho relativo continua relativo enquanto der. Os arquivos do jogo nunca sobem uma pasta com ../, então um caminho que precisaria disso passa a ser escrito a partir do /.

Por exemplo, depois de renomear a pasta vehicle/truck/my_truck/ para w900/, um arquivo que cita um modelo dentro dela muda assim:

my_hub.sii
 accessory_rim_data : my_hub.shub {
 	name: "My hub"
	model: "/vehicle/truck/my_truck/hub.pmd"
	model: "/vehicle/truck/w900/hub.pmd"
 }

Revisar as mudanças

Quando uma mudança de lugar altera caminhos em poucos arquivos .sii ou .sui (até 6, por padrão), o VS Code os abre sem salvar, para você conferir antes de salvar. Os arquivos .mat são salvos para você: veja Salvos para você. Cada linha alterada ganha uma marca no começo da linha e na barra de rolagem, na mesma cor que o git usa para linhas modificadas, para você encontrá-las num arquivo longo. Passe o mouse sobre a linha para ver por que ela mudou.

As marcas somem quando você salva ou fecha o arquivo, ou quando a linha não tem mais o caminho novo.

Salvos para você

Renomear uma pasta pode alterar dezenas de arquivos: uma pasta de texturas pode ser citada em cinquenta arquivos .mat. Abrir cada um para você salvar enterraria o seu trabalho em abas, então alguns são salvos na hora, as abas que a mudança abriu são fechadas, e uma notificação diz quantos arquivos foram atualizados:

  • Arquivos .mat, sempre. Eles costumam ser escritos pelo conversor do SCS Blender Tools, e não há nada para revisar neles. Isso também significa que você pode renomear uma pasta de texturas sem converter os modelos de novo.
  • Todos os arquivos, quando passam de 6 dos outros tipos.

Duas coisas nunca são mexidas:

  • As abas que você já tinha abertas continuam abertas.
  • Arquivos com mudanças suas não salvas nunca são salvos para você: eles continuam abertos, com o caminho novo, para você salvar.

Dá para mudar tudo isso nas configurações, em File Moves:

ConfiguraçãoPadrãoO que faz
Auto Save (scs-intellisense.fileMoves.autoSave)ligadoDesmarque para sempre deixar os arquivos abertos para revisão
Always Save (scs-intellisense.fileMoves.alwaysSave).matOs tipos de arquivo salvos depois de toda mudança. Adicione .tobj, por exemplo
Save Above (scs-intellisense.fileMoves.saveAbove)6Acima dessa quantidade de arquivos dos outros tipos, eles também são salvos. 0 sempre salva
Notify (scs-intellisense.fileMoves.notify)ligadoA notificação. O log da extensão sempre registra

O que não é atualizado

  • Mudanças feitas fora do VS Code, no Explorador do Windows ou por outro programa: o VS Code não as vê. Mova os seus arquivos de dentro do VS Code.
  • Arquivos .tobj compilados: são binários, então a extensão não consegue alterá-los. Um .tobj com um .dds de mesmo nome ao lado é tomado por compilado e não é lido, mesmo que seja texto. Os que o SCS Blender Tools exporta citam um .tga ou .png, então são lidos.
  • Caminhos que não podem mais ser escritos: um arquivo movido para fora da pasta do seu mod.