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. |
| | | |
− | # Open Visual Studio 2017 ou MonoDevelop. | + | # Abra o Visual Studio 2017 ou MonoDevelop. |
− | # Create a solution with a .NET Framework class library project (see [[Modding:IDE reference#create-project|how to create a project]]). '''Certifique-se de escolher.NET Framework, not .NET Core ou .NET Standard.''' | + | # 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.''' |
− | # Change the target framework to .NET Framework 4.5, 4.5.1, or 4.5.2 for best compatibility (see [[Modding:IDE reference#set-target-framework|how to change target 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]]). |
− | # Reference the [https://www.nuget.org/packages/Pathoschild.Stardew.ModBuildConfig <samp>Pathoschild.Stardew.ModBuildConfig</samp> NuGet package] (see [[Modding:IDE reference#add-nuget|how to add the package]]). | + | # 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]]). |
− | # Restart Visual Studio/MonoDevelop after installing the package. | + | # Reinicie o Visual Studio/MonoDevelop após a instalação do pacote. |
| | | |
| ===Adicione o código=== | | ===Adicione o código=== |
Linha 80: |
Linha 80: |
| <li>Exclua o arquivo <samp>Class1.cs</samp> ou <samp>MyClass.cs</samp> (Veja [[Modding:IDE reference#delete-file|como excluir um arquivo]]).</li> | | <li>Exclua o arquivo <samp>Class1.cs</samp> ou <samp>MyClass.cs</samp> (Veja [[Modding:IDE reference#delete-file|como excluir um arquivo]]).</li> |
| <li>Adicione um arquivo C# class Chamado <samp>ModEntry.cs</samp> ao seu projeto (Veja [[Modding:IDE reference#Add a file|como adicionar um arquivo]]).</li> | | <li>Adicione um arquivo C# class Chamado <samp>ModEntry.cs</samp> ao seu projeto (Veja [[Modding:IDE reference#Add a file|como adicionar um arquivo]]).</li> |
− | <li>Coloque este código no arquivo (replace <samp>YourProjectName</samp> with the name of your project): | + | <li>Coloque este código no arquivo (substitua o <samp>YourProjectName</samp> pelo nome do seu projeto): |
| <syntaxhighlight lang="c#"> | | <syntaxhighlight lang="c#"> |
| using System; | | using System; |
Linha 91: |
Linha 91: |
| namespace YourProjectName | | namespace YourProjectName |
| { | | { |
− | /// <summary>The mod entry point.</summary> | + | /// <summary>O ponto de entrada do mod.</summary> |
| public class ModEntry : Mod | | public class ModEntry : Mod |
| { | | { |
| /********* | | /********* |
− | ** Public methods | + | ** Métodos publicos |
| *********/ | | *********/ |
− | /// <summary>The mod entry point, called after the mod is first loaded.</summary> | + | /// <summary>O ponto de entrada do mod, chamado após o mod ser carregado pela primeira vez.</summary> |
− | /// <param name="helper">Provides simplified APIs for writing mods.</param> | + | /// <param name="helper">Fornece APIs simplificadas para escrever mods</param> |
| public override void Entry(IModHelper helper) | | public override void Entry(IModHelper helper) |
| { | | { |
Linha 108: |
Linha 108: |
| ** Private methods | | ** Private methods |
| *********/ | | *********/ |
− | /// <summary>Raised after the player presses a button on the keyboard, controller, or mouse.</summary> | + | /// <summary>Chamado após o jogador pressionar um botão no teclado, controle ou mouse.</summary> |
− | /// <param name="sender">The event sender.</param> | + | /// <param name="sender">O remetente do evento.</param> |
− | /// <param name="e">The event data.</param> | + | /// <param name="e">Os dados do evento.</param> |
| private void OnButtonPressed(object sender, ButtonPressedEventArgs e) | | private void OnButtonPressed(object sender, ButtonPressedEventArgs e) |
| { | | { |
− | // ignore if player hasn't loaded a save yet | + | // ignore se o jogador não tiver carregado o salvamento ainda. |
| if (!Context.IsWorldReady) | | if (!Context.IsWorldReady) |
| return; | | return; |
| | | |
− | // print button presses to the console window | + | // imprima o botão pressionado na janela do console. |
| this.Monitor.Log($"{Game1.player.Name} pressed {e.Button}."); | | this.Monitor.Log($"{Game1.player.Name} pressed {e.Button}."); |
| } | | } |
Linha 125: |
Linha 125: |
| </ol> | | </ol> |
| | | |
− | Here's a breakdown of what that code is doing:
| + | 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]) makes classes in that namespace available in your code. | + | # <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>namespace YourProjectName</code> (see [https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/namespace namespace keyword]) defines the scope for your mod code. Don't worry about this when you're starting out, Visual Studio or MonoDevelop will add it automatically when you add a file. | + | # <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> (see [https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/class class keyword]) creates your mod's main class, and subclasses SMAPI's <samp>Mod</samp> class. SMAPI will detect your <samp>Mod</samp> subclass automatically, and <samp>Mod</samp> gives you access to SMAPI's APIs. | + | # <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 override void Entry(IModHelper helper)</code> is the method SMAPI will call when your mod is loaded into the game. The <code>helper</code> provides convenient access to many of SMAPI's APIs. | + | # <code>public override void Entry(IModHelper helper)</code> é o método que o SMAPI irá chamar ao seu mod ser carregado no jogo. O <code>helper</code> fornece acesso conveniente à várias APIs do SMAPI. |
− | # <code>helper.Events.Input.ButtonPressed += this.OnButtonPressed;</code> adds an 'event handler' (''i.e.,'' a method to call) when the button-pressed event happens. In other words, when a button is pressed (the <samp>helper.Events.Input.ButtonPressed</samp> event), SMAPI will call your <samp>this.OnButtonPressed</samp> method. See [[Modding:Modder Guide/APIs/Events|events in the SMAPI reference]] for more info. | + | # <code>helper.Events.Input.ButtonPressed += this.OnButtonPressed;</code> adiciona um 'manipulador de eventos' (''i.e.,'' um método para chamar) quando o evento do button-pressed (botão pressionado) ocorrer. Em outras palavras, quando um botão é pressionado (O evento <samp>helper.Events.Input.ButtonPressed</samp>), O SMAPI vai chamar o seu método <samp>this.OnButtonPressed</samp>. Veja [[Modding:Modder Guide/APIs/Events|events in the SMAPI reference]] para mais informações. |
| | | |
| ===Adicionando seu manifest=== | | ===Adicionando seu manifest=== |