VSCode に Rust の Mod の開発環境を構築する
February 29, 2024 -概要
Visual Studio Code に Rust(ビデオゲーム) の Mod の開発環境を構築します。
前提条件
- Visual Studio Code がインストールされている必要があります。
- Visual Studio Code Dev Containers の System requirements を満たしている必要があります。
- Rust のサーバーを構築している必要があります。サーバーの構築方法は こちら を参照して下さい。
環境
- Visual Studio Code 1.86.2
- Docker Desktop 4.27.2
- .NETFramework 4.6.1
- Microsoft.NETFramework.ReferenceAssemblies 1.0.0-preview.2
- OpenMod.Rust.Oxide 3.7.4
手順
開発コンテナー構成ファイルの追加
C# の開発コンテナー構成ファイルを追加します。詳細は Quick start: Try a development container を参照して下さい。
-
Visual Studio Code を開いて 1F キーを押下しコマンドパレットを表示します。
-
コマンドパレットに
Dev Containers: add Dev Container Configuration Files
を入力し開発コンテナー: 開発コンテナー構成ファイルを追加
を選択します。 -
ワークスペースに構成を追加する
を選択します。 -
C# の開発コンテナー構成ファイル
C# (.NET)
を選択します。 -
既定の
.NET version
を選択します。 -
追加機能はインストールしないので未選択のまま
OK
を選択します。 -
開発コンテナー構成ファイル
.devcontainer/devcontainer.json
が追加されます。
開発コンテナーを開く
C# の開発コンテナーを開きます。
- コマンドパレットに
Dev Containers: Reopen in Container
を入力し開発コンテナー: コンテナーで再度開く
を選択します。
Mod の実装
次のドキュメントを参考に Mod を実装します。今回は UMod Getting Started のコードをそのまま使用します。
-
クラスライブラリ のプロジェクト
EpicStuff
を作成します。dotnet new classlib -o EpicStuff
-
Visual Studio Code のターミナルに次のコマンドを入力し必要なパッケージを NuGet からインストールします。
プロジェクト
EpicStuff
のフォルダに移動します。cd EpicStuff
Microsoft.NETFramework.ReferenceAssemblies をインストールします。
dotnet add package Microsoft.NETFramework.ReferenceAssemblies --version 1.0.0-preview.2
OpenMod.Rust.Oxide をインストールします。
dotnet add package OpenMod.Rust.Oxide --version 3.7.4
-
プロジェクトファイル
EpicStuff/EpicStuff.csproj
を修正します。- PropertyGroup > TargetFramework > net461: .NETFramework のバージョンを 4.6.1 に指定します。
- PropertyGroup > LangVersion > latest: 最新の language version を指定します。
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net461</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> <LangVersion>latest</LangVersion> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0-preview.2"> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <PrivateAssets>all</PrivateAssets> </PackageReference> <PackageReference Include="OpenMod.Rust.Oxide" Version="3.7.4" /> </ItemGroup> </Project>
-
クラスファイル
EpicStuff/Class1.cs
のファイル名をEpicStuff.cs
に変更します。 -
クラスファイル
EpicStuff/EpicStuff.cs
の内容を UMod Getting Started に書き換えます。namespace Oxide.Plugins { [Info("Epic Stuff", "Unknown Author", "0.1.0")] [Description("Makes epic stuff happen")] class EpicStuff : CovalencePlugin { private void Init() { Puts("A baby plugin is born!"); } // The rest of the code magic // TODO (you): Make more epic stuff } }
-
ビルドが問題なく実行できることを確認します。
dotnet build
Mod の実行
-
クラスファイル
EpicStuff/EpicStuff.cs
をサーバーのoxide/plugins
フォルダにコピーします。 -
サーバーを起動します。
-
ログに
A baby plugin is born!
が出力されていることを確認します。rust-muscle-server | [Epic Stuff] A baby plugin is born!