Alterações

m
→‎Adicionando seu manifest: fixed bad translate
Linha 6: Linha 6:  
==Intro==
 
==Intro==
 
=== O que é um mod SMAPI? ===
 
=== O que é um mod SMAPI? ===
Um mod SMAPI usa a API de modificação [https://smapi.io/ SMAPI] para estender a lógica do jogo. O mod pode responder quando algo acontece no jogo (como quando um objeto é colocado no mundo), executar código periodicamente (como uma vez por atualização), alterar os ativos e dados do jogo, etc. Mods SMAPI são escritos em C # usando o O .NET Framework e o Stardew Valley usam XNA / MonoGame para a lógica do jogo (desenho na tela, entrada do usuário, etc.).
+
Um mod SMAPI usa a API de modificação [https://smapi.io/ SMAPI] para estender a lógica do jogo. O mod pode responder quando algo acontece no jogo (como quando um objeto é colocado no mundo), executar código periodicamente (como uma vez por atualização), alterar os ativos e dados do jogo, etc. Mods SMAPI são escritos em C# usando o O .NET Framework e o Stardew Valley usam XNA / MonoGame para a lógica do jogo (desenho na tela, entrada do usuário, etc.).
    
=== Por que os mods usam SMAPI? ===
 
=== Por que os mods usam SMAPI? ===
Linha 24: Linha 24:  
Se você é iniciante em programação: muitos desenvolvedores de mod começam com pouca ou nenhuma experiência em programação. Você certamente pode aprender ao longo do caminho, se estiver determinado, mas deve estar preparado para uma curva de aprendizado acentuada. Não seja muito ambicioso a princípio; é melhor começar com um mod pequeno quando você descobrir isso. É fácil ficar impressionado no começo e desistir. A comunidade modding é muito acolhedora, portanto, não tenha medo de fazer perguntas!
 
Se você é iniciante em programação: muitos desenvolvedores de mod começam com pouca ou nenhuma experiência em programação. Você certamente pode aprender ao longo do caminho, se estiver determinado, mas deve estar preparado para uma curva de aprendizado acentuada. Não seja muito ambicioso a princípio; é melhor começar com um mod pequeno quando você descobrir isso. É fácil ficar impressionado no começo e desistir. A comunidade modding é muito acolhedora, portanto, não tenha medo de fazer perguntas!
   −
Se você já tem experiência em programação, deve ficar bem. A experiência de programação em C # ou Java facilitará as coisas, mas não é crítica. Se você não está familiarizado com o C #, pode percorrer as referências abaixo de '' Learning C # '' para preencher as lacunas.
+
Se você já tem experiência em programação, deve ficar bem. A experiência de programação em C# ou Java facilitará as coisas, mas não é crítica. Se você não está familiarizado com o C#, pode percorrer as referências abaixo de ''Learning C#'' para preencher as lacunas.
   −
=== Posso fazer um mod '' sem SMAPI ''? ===
+
=== Posso fazer um mod ''sem SMAPI''? ===
 
Sim. Muitos mods SMAPI suportam 'pacotes de conteúdo', que permitem fornecer arquivos de texto JSON, imagens etc. que eles usam. Por exemplo, você pode usar o [https://www.nexusmods.com/stardewvalley/mods/1915 Content Patcher] para editar as imagens e os dados do jogo sem necessidade de programação. O restante deste guia é sobre como criar um novo mod SMAPI; para pacotes de conteúdo, consulte a documentação do mod que o lerá.
 
Sim. Muitos mods SMAPI suportam 'pacotes de conteúdo', que permitem fornecer arquivos de texto JSON, imagens etc. que eles usam. Por exemplo, você pode usar o [https://www.nexusmods.com/stardewvalley/mods/1915 Content Patcher] para editar as imagens e os dados do jogo sem necessidade de programação. O restante deste guia é sobre como criar um novo mod SMAPI; para pacotes de conteúdo, consulte a documentação do mod que o lerá.
    
=== Onde posso obter ajuda? ===
 
=== Onde posso obter ajuda? ===
<span id = "help"> </span> A comunidade de modificação de Stardew Valley é muito acolhedora. Sinta-se livre para pedir ajuda em [[Modding: Community # Discord | #modding na Stardew Valley Discord]].
+
<span id="help"></span>A comunidade de modificação de Stardew Valley é muito acolhedora. Sinta-se livre para pedir ajuda em [[Modding:Community#Discord|modding na Stardew Valley Discord]].
    
== Introdução ==
 
== Introdução ==
=== Aprenda C # ===
+
=== Aprenda C# ===
Como os mods são escritos em C #, é uma boa idéia familiarizá-lo primeiro. Você não precisa memorizar tudo, mas uma compreensão do básico (como campos, métodos, variáveis ​​e classes) facilitará todo o resto.
+
Como os mods são escritos em C#, é uma boa idéia familiarizá-lo primeiro. Você não precisa memorizar tudo, mas uma compreensão do básico (como campos, métodos, variáveis ​​e classes) facilitará todo o resto.
    
Alguns recursos úteis:
 
Alguns recursos úteis:
* [https://docs.microsoft.com/en-us/dotnet/csharp/quick-starts/ '' C # Quickstarts ''] ensina o básico do C # com exemplos interativos.
+
* [https://docs.microsoft.com/en-us/dotnet/csharp/quick-starts/ ''C# Quickstarts''] ensina o básico do C# com exemplos interativos.
* [https://mva.microsoft.com/en-us/training-courses/c-fundamentals-for-absolute-beginners-16169 '' Fundamentos de C # para iniciantes absolutos ''] é um guia em vídeo que o orientará C #, dos conceitos básicos à programação orientada a eventos (que é o que os mods SMAPI usam principalmente).
+
* [https://mva.microsoft.com/en-us/training-courses/c-fundamentals-for-absolute-beginners-16169 ''Fundamentos de C# para iniciantes absolutos''] é um guia em vídeo que o orientará C#, dos conceitos básicos à programação orientada a eventos (que é o que os mods SMAPI usam principalmente).
    
=== Requisitos ===
 
=== Requisitos ===
 
Antes que você comece:
 
Antes que você comece:
# Leia o [[Modding: Player Guide / Getting Started | Player Guide]]. O restante deste guia pressupõe que você já esteja familiarizado com o uso de mods.
+
# Leia o [[Modding:Player Guide/Getting Started|Player Guide]]. O restante deste guia pressupõe que você já esteja familiarizado com o uso de mods.
 
# Instale o Stardew Valley.
 
# Instale o Stardew Valley.
# Instale [[Modding: Guia do Player / Introdução # Instale SMAPI | SMAPI]].
+
# Instale [[Modificações:Guia do Player/Introdução#Instale SMAPI|SMAPI]].
# Instale o IDE ('' ambiente de desenvolvimento integrado '').
+
# Instale o IDE (''ambiente de desenvolvimento integrado'').
 
# * No Linux: instale [http://www.monodevelop.com/ MonoDevelop].
 
# * No Linux: instale [http://www.monodevelop.com/ MonoDevelop].
# * No Mac: instale [https://www.visualstudio.com/vs/visual-studio-mac/ Visual Studio 2017 para Mac]. (Este é um MonoDevelop renomeado.)
+
# * No Mac: instale [https://www.visualstudio.com/vs/visual-studio-mac/ Visual Studio para Mac]. (Este é um MonoDevelop renomeado.)
# * No Windows: instale [https://www.visualstudio.com/vs/community/ Comunidade do Visual Studio 2017]. Quando o instalador perguntar sobre cargas de trabalho, ative '' .NET Desktop Development ''.
+
# * No Windows: instale [https://www.visualstudio.com/vs/community/ Visual Studio Comumnity]. Quando o instalador perguntar sobre cargas de trabalho, ative '' .NET Desktop Development ''.
   −
Se você não está familiarizado com o Visual Studio 2017 (no Windows / Mac) ou o MonoDevelop (no Linux), [[Modding: IDE reference]] explica como fazer as coisas importantes necessárias para este guia.
+
Se você não está familiarizado com o Visual Studio (no Windows / Mac) ou o MonoDevelop (no Linux), [[Modding:IDE reference]] explica como fazer as coisas importantes necessárias para este guia.
    
==Crie um mod básico==
 
==Crie um mod básico==
Linha 56: Linha 56:  
Se você tiver experiência suficiente para pular o tutorial, aqui está um rápido resumo desta seção:
 
Se você tiver experiência suficiente para pular o tutorial, aqui está um rápido resumo desta seção:
 
{{collapse|Expanda para começo rápido|content=&#32;
 
{{collapse|Expanda para começo rápido|content=&#32;
# Crie uma classe vazia em um projeto com o C#.
+
# Crie uma biblioteca de classes vazia em um projeto com o C#. (não selecione o Biblioteca de Classes(.NET Framework))
# Instancie o .NET Framework 4.5, 4.5.1, ou 4.5.2 para melhor compatibilidade.
+
# Instâncie o .NET 5.
 
# Referencie o [https://github.com/Pathoschild/Stardew.ModBuildConfig <samp>Pathoschild.Stardew.ModBuildConfig</samp> NuGet package] para adicionar automaticamente as referências corretas, dependendo da plataforma em que o mod está sendo compilado.
 
# Referencie o [https://github.com/Pathoschild/Stardew.ModBuildConfig <samp>Pathoschild.Stardew.ModBuildConfig</samp> NuGet package] para adicionar automaticamente as referências corretas, dependendo da plataforma em que o mod está sendo compilado.
 
# Crie uma classe com o nome <samp>ModEntry</samp> com uma subclasse chamada <samp>StardewModdingAPI.Mod</samp>.
 
# Crie uma classe com o nome <samp>ModEntry</samp> com uma subclasse chamada <samp>StardewModdingAPI.Mod</samp>.
Linha 68: Linha 68:  
Um mod SMAPI é uma biblioteca compilada (DLL) com um método de entrada que é chamado por SMAPI, então vamos configurar isso.
 
Um mod SMAPI é uma biblioteca compilada (DLL) com um método de entrada que é chamado por SMAPI, então vamos configurar isso.
   −
# Abra o Visual Studio 2017 ou MonoDevelop.
+
# Abra o Visual Studio 2022 ou MonoDevelop.
# Crie uma solução com .NET Framework projeto de biblioteca de classes (veja [[Modding:IDE reference#create-project|como criar um projeto]]). '''Certifique-se de escolher o .NET Framework, não o .NET Core ou .NET Standard.'''
+
# Crie uma solução com projeto de biblioteca de classes (veja [[Modding:IDE reference#create-project|como criar um projeto]]). (Não escolha Biblioteca de Classes .NET Framework!)
# Mude a versão framework para .NET Framework 4.5, 4.5.1, ou 4.5.2 para melhor compatibilidade(veja [[Modding:IDE reference#set-target-framework|como alterar a versão do framework]]).
+
# Mude a versão framework para .NET 5 (veja [[Modding:IDE reference#set-target-framework|como alterar a versão do framework]]). Talvez você precise [https://dotnet.microsoft.com/en-us/download/dotnet/5.0 instalar o SDK]
 
# Referêncie [https://www.nuget.org/packages/Pathoschild.Stardew.ModBuildConfig <samp>Pathoschild.Stardew.ModBuildConfig</samp> NuGet package] (veja [[Modding:IDE reference#add-nuget|como adicionar o pacote]]).
 
# Referêncie [https://www.nuget.org/packages/Pathoschild.Stardew.ModBuildConfig <samp>Pathoschild.Stardew.ModBuildConfig</samp> NuGet package] (veja [[Modding:IDE reference#add-nuget|como adicionar o pacote]]).
 +
#* Se você estiver recebendo um erro informando que o tipo ou nome do namespace "StardewModdingAPI" não foi encontrado, é possível que o caminho do jogo não esteja sendo detectado. Você precisará definir a propriedade GamePath para o diretório executável do jogo. Isso pode ser feito adicionando uma propriedade ''GamePath'' ao ''PropertyGroup'' em suas configurações ''.csproj''.
 
# Reinicie o Visual Studio/MonoDevelop após a instalação do pacote.
 
# Reinicie o Visual Studio/MonoDevelop após a instalação do pacote.
   Linha 95: Linha 96:  
     {
 
     {
 
         /*********
 
         /*********
         ** Métodos publicos
+
         ** Métodos públicos
 
         *********/
 
         *********/
 
         /// <summary>O ponto de entrada do mod, chamado após o mod ser carregado pela primeira vez.</summary>
 
         /// <summary>O ponto de entrada do mod, chamado após o mod ser carregado pela primeira vez.</summary>
Linha 106: Linha 107:     
         /*********
 
         /*********
         ** Private methods
+
         ** Métodos privados
 
         *********/
 
         *********/
 
         /// <summary>Chamado após o jogador pressionar um botão no teclado, controle ou mouse.</summary>
 
         /// <summary>Chamado após o jogador pressionar um botão no teclado, controle ou mouse.</summary>
Linha 118: Linha 119:     
             // imprima o botão pressionado na janela do console.
 
             // imprima o botão pressionado na janela do console.
             this.Monitor.Log($"{Game1.player.Name} pressed {e.Button}.");
+
             this.Monitor.Log($"{Game1.player.Name} apertou o botão {e.Button}.");
 
         }
 
         }
 
     }
 
     }
Linha 127: Linha 128:  
Aqui um detalhamento do que o código faz:
 
Aqui um detalhamento do que o código faz:
   −
# <code>using X;</code> (see [https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/using-directive using directive]) torna as classes desse namespace disponiveis no seu código.
+
# <code>using X;</code> (veja [https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/using-directive using directive]) torna as classes desse namespace disponiveis no seu código.
 
# <code>namespace YourProjectName</code> (see [https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/namespace namespace keyword]) define o escopo do código do seu mod. Não se preocupe com isso quando estiver começando, o Visual Studio ou o MonoDevelop vai adiciona-lo automaticamente quando você adicionar um arquivo.
 
# <code>namespace YourProjectName</code> (see [https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/namespace namespace keyword]) define o escopo do código do seu mod. Não se preocupe com isso quando estiver começando, o Visual Studio ou o MonoDevelop vai adiciona-lo automaticamente quando você adicionar um arquivo.
 
# <code>public class ModEntry : Mod</code> (veja [https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/class class keyword]) cria a classe principal do seu mod, e subclasses da classe <samp>Mod</samp> do SMAPI. O SMAPI vai detectar as subclasses do <samp>Mod</samp> automaticamente, e o <samp>Mod</samp> lhe dará acesso as APIs do SMAPI.
 
# <code>public class ModEntry : Mod</code> (veja [https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/class class keyword]) cria a classe principal do seu mod, e subclasses da classe <samp>Mod</samp> do SMAPI. O SMAPI vai detectar as subclasses do <samp>Mod</samp> automaticamente, e o <samp>Mod</samp> lhe dará acesso as APIs do SMAPI.
Linha 153: Linha 154:  
</ol>
 
</ol>
   −
Isso será listado na saída do console quando o jogo for iniciado. Para obter mais informações, consulte os documentos do [[Modding: Modder Guide / APIs / Manifest | manifest]].
+
Isso será listado na saída do console quando o jogo for iniciado. Para obter mais informações, consulte a documentação do [[Modding: Modder Guide / APIs / Manifest | manifest]].
    
=== Experimente o seu mod ===
 
=== Experimente o seu mod ===
# Construa o projeto. <br /> <small>Se você executou as etapas ''[[#Criar o projeto|crie o projeto]]'' corretamente, isso adicionará automaticamente seu mod aos <samp>Mods do jogo</samp>.</small>
+
# Compile o projeto. (Para compilar o projeto: Visual Studio - Compilação > Compilar [Nome do seu projeto]) <br /><small>Se você executou as etapas ''[[#Criar o projeto|crie o projeto]]'' corretamente, isso adicionará automaticamente seu mod aos <samp>Mods do jogo</samp>.</small>  
 
# Execute o jogo através do SMAPI.
 
# Execute o jogo através do SMAPI.
   Linha 168: Linha 169:  
# * No Visual Studio, clique em ''Build > Rebuild Solution'' e verifique o painel ''Output'' ou a lista ''Error''.
 
# * No Visual Studio, clique em ''Build > Rebuild Solution'' e verifique o painel ''Output'' ou a lista ''Error''.
 
# * No MonoDevelop, clique em ''Build > Rebuild All'' e aguarde até que esteja pronto. Em seguida, clique na barra "Build: XX errors, XX warnings" na parte superior e verifique as guias ''XX Errors'' e ''Build Output''.
 
# * No MonoDevelop, clique em ''Build > Rebuild All'' e aguarde até que esteja pronto. Em seguida, clique na barra "Build: XX errors, XX warnings" na parte superior e verifique as guias ''XX Errors'' e ''Build Output''.
# Consulte o [[Modding: Guia do Modder/Guia de Teste e Solução de Problemas|Guia do Modder/Guia de Teste e Solução de Problemas]].
+
# Consulte o [[Modificações:Guia do Modder/Teste e Solução de Problemas|Guia do Modder/Guia de Teste e Solução de Problemas]].
 
# Se tudo mais falhar, peça ajuda na [[Modding:Community#Discord|#modding na Stardew Valley Discord]]. :)
 
# Se tudo mais falhar, peça ajuda na [[Modding:Community#Discord|#modding na Stardew Valley Discord]]. :)
   −
==Go further==
+
==Vá além==
 
===APIs do SMAPI===
 
===APIs do SMAPI===
 
O SMAPI fornece um conjunto de APIs na qual você pode usar para criar mais. veja a [[Modding:Modder Guide/APIs|referencia SMAPI]] para mais informações.
 
O SMAPI fornece um conjunto de APIs na qual você pode usar para criar mais. veja a [[Modding:Modder Guide/APIs|referencia SMAPI]] para mais informações.
   −
===Crossplatform support===
+
===Suporte multiplataforma===
SMAPI will automatically adjust your mod so it works on Linux, Mac, and Windows. However, there are a few things you should do to avoid problems:
+
O SMAPI irá ajustar automaticamente seu mod para funcionar no Linux, Mac e Windows. Entretanto, há alguma coisas que você deveria fazer para evitar problemas:
    
<ol>
 
<ol>
<li>Use the [https://github.com/Pathoschild/Stardew.ModBuildConfig#readme crossplatform build config] package to automatically set up your project references. This makes crossplatform compatibility easier and lets your code compile on any platform. (If you followed the above guide, you already have this.)</li>
+
<li>Use o pacote [https://github.com/Pathoschild/Stardew.ModBuildConfig#readme configuração de compilação multiplataforma] para ajustar as referencias do seu projeto automaticamente. Isso facilita a compatibilidade entre plataformas, além de deixar seu código compilar em qualquer plataforma. (Se você tiver seguido o guia acima, já tem isso.)</li>
   −
<li>Use <samp>Path.Combine</samp> to build file paths, don't hardcode path separators since they won't work on all platforms.
+
<li>Use <samp>Path.Combine</samp> para criar caminhos de arquivo, não codifique os separadores de caminho, pois poderão não funcionar em todas as plataformas.</li>
    
<syntaxhighlight lang="c#">
 
<syntaxhighlight lang="c#">
// ✘ Don't do this! It will crash on Linux/Mac.
+
// ✘ Não faça isso! Do contrario irá crashar (travar) no Linux/Mac.
 
string path = Helper.DirectoryPath + "\assets\asset.xnb";
 
string path = Helper.DirectoryPath + "\assets\asset.xnb";
   −
// ✓ This is OK
+
// ✓ Isso é OK
 
string path = Path.Combine(Helper.DirectoryPath, "assets", "asset.xnb");
 
string path = Path.Combine(Helper.DirectoryPath, "assets", "asset.xnb");
 
</syntaxhighlight></li>
 
</syntaxhighlight></li>
   −
<li>Use <samp>Helper.DirectoryPath</samp>, don't try to determine the mod path yourself.
+
<li>Use o <samp>Helper.DirectoryPath</samp>, Não tente determinar o caminho do mod sozinho.
    
<syntaxhighlight lang="c#">
 
<syntaxhighlight lang="c#">
// ✘ Don't do this! It will crash if SMAPI rewrites the assembly (''e.g.,'' to update or crossplatform it).
+
// ✘ Não faça isso! Ele vai crashar (travar) se o SMAPI reescrever o assembly. (''exp.'' para atualiza-lo ou torna-lo multiplataforma).
 
string modFolder = Assembly.GetCallingAssembly().Location;
 
string modFolder = Assembly.GetCallingAssembly().Location;
   −
// ✓ This is OK
+
// ✓ Isso é OK
 
string modFolder = Helper.DirectoryPath;
 
string modFolder = Helper.DirectoryPath;
 
</syntaxhighlight></li>
 
</syntaxhighlight></li>
 
</ol>
 
</ol>
   −
===Decompile the game code===
+
===Decompile o código do jogo===
When you start working on more complex mods, you may need to look at how the game code works.
+
Quando você começar a trabalhar em mod mais complexos, você pode precisar olhar como o código do jogo funciona.
   −
To decompile the game code so you can read it (though it won't be fully functional due to decompiler limitations):
+
Para descompilar o código do jogo de modo que você possa lê-lo (embora não seja totalmente funcional devido à limitações do descompilador):
* On Windows:
+
* No Windows:
*# Open <samp>StardewValley.exe</samp> in [https://www.jetbrains.com/decompiler/ dotPeek].
+
*# Abra o <samp>StardewValley.exe</samp> no [https://www.jetbrains.com/decompiler/ dotPeek].
*# Right-click on ''Stardew Valley'' and choose ''Export to Project''. Accept the default options to create a decompiled project you can open in Visual Studio.
+
*# Clique com o botão direito em ''Stardew Valley'' e escolha ''Export to Project''. Aceite as opções padrões para criar um projeto decompilado que você poderá abrir no Visual Studio.
* On Linux/Mac:
+
* No Linux/Mac:
*# Open <samp>StardewValley.exe</samp> in MonoDevelop through ''File &gt; Open''.
+
*# Abra o <samp>StardewValley.exe</samp> no MonoDevelop por meio do ''File &gt; Open''.
*# Change ''Language'' from ''Summary'' to ''C#''.
+
*# Altere a ''Language'' do ''Summary'' para ''C#''.
   −
To unpack the XNB data/image files, see [[Modding:Editing XNB files]].
+
Para descompactar os arquivos XNB de dados/imagem, veja [[Modding:Editing XNB files]].
    
{{modding guide footer
 
{{modding guide footer
 
  |prev =  
 
  |prev =  
  |next = [[Modding:Modder Guide/Test and Troubleshoot|Test and Troubleshoot]]
+
  |next = [[Modificações:Guia do Modder/Teste e Solução de Problemas|Teste e solução de problemas]]
 
}}
 
}}
    
[[en:Modding:Modder Guide/Get Started]]
 
[[en:Modding:Modder Guide/Get Started]]
 
[[zh:模组:创建 SMAPI 模组]]
 
[[zh:模组:创建 SMAPI 模组]]
37

edições