profile picture

VSCode に Rust の Mod の開発環境を構築する

February 29, 2024 - game rust mod vscode

概要

Visual Studio CodeRust(ビデオゲーム) の Mod の開発環境を構築します。

前提条件

環境

手順

開発コンテナー構成ファイルの追加

C# の開発コンテナー構成ファイルを追加します。詳細は Quick start: Try a development container を参照して下さい。

  1. Visual Studio Code を開いて 1F キーを押下しコマンドパレットを表示します。

  2. コマンドパレットに Dev Containers: add Dev Container Configuration Files を入力し 開発コンテナー: 開発コンテナー構成ファイルを追加 を選択します。

  3. ワークスペースに構成を追加する を選択します。

  4. C# の開発コンテナー構成ファイル C# (.NET) を選択します。

  5. 既定の .NET version を選択します。

  6. 追加機能はインストールしないので未選択のまま OK を選択します。

  7. 開発コンテナー構成ファイル .devcontainer/devcontainer.json が追加されます。

開発コンテナーを開く

C# の開発コンテナーを開きます。

  1. コマンドパレットに Dev Containers: Reopen in Container を入力し 開発コンテナー: コンテナーで再度開く を選択します。

Mod の実装

次のドキュメントを参考に Mod を実装します。今回は UMod Getting Started のコードをそのまま使用します。

  1. クラスライブラリ のプロジェクト EpicStuff を作成します。

    dotnet new classlib -o EpicStuff
    
  2. 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
    
  3. プロジェクトファイル 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>
    
  4. クラスファイル EpicStuff/Class1.cs のファイル名を EpicStuff.cs に変更します。

  5. クラスファイル 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
        }
    }
    
  6. ビルドが問題なく実行できることを確認します。

    dotnet build
    

Mod の実行

  1. クラスファイル EpicStuff/EpicStuff.cs をサーバーの oxide/plugins フォルダにコピーします。

  2. サーバーを起動します。

  3. ログに A baby plugin is born! が出力されていることを確認します。

    rust-muscle-server | [Epic Stuff] A baby plugin is born!