IntelliJ IDEAでmoddingしてみる

  • 4
    いいね
  • 0
    コメント

環境

Windows 10 64bit
IntelliJ IDEA 2016.2(まだインストールしてない方はこちらをどうぞ)

また当投稿内[簡単なModの作成]は[http://minecraftjp.info/modding/index.php/1.9のブロック追加] を参考にしています。

環境構築

まずはForgeを準備しましょう
1.こちら(Minecraft Forge)からForgeのソースをダウンロードします。
(Mdkというのがソースです。Recommendedを落とすのが良いでしょう)
今回は現在(2016/07/17)のRecommendedである[forge-1.10.2-12.18.1.2011-mdk.zip]を使用します

2.落としてきたzipを解凍し、フォルダを開いて
[Shift + 右クリック -> コマンドウィンドウをここで開く]を選択します。

3.コマンドプロンプト内で

CMD
gradlew setupDecompWorkspace
gradlew setupDevWorkspace ideaModule

を実行します。

これでForgeの準備はOKです

4.IDEAを起動し[Create New Project -> Empty Project]からからのプロジェクトを作成します。

5.作成したプロジェクトのフォルダに解凍したForgeのフォルダ内から

File
.gradle
build
gradle
src
build.gradle
forge-1.10.2-12.18.1.2011-mdk.iml
gradlew
gradlew.bat

をコピーします

6.IDEAの画面に戻り[File -> Project Structure...]から
[Project]タブを選択しProject SDKを選択します(今回はJava 1.8)
またそれに合わせて下の[Project language level]も変更しましょう

7.[Module]タブを選択し、[緑の+ -> import module]よりプロジェクトのフォルダ内にコピーした[forge-1.10.2-12.18.1.2011-mdk.iml]を選択します。

またこの時、Windowが出てきたらそれに従いましょう
出てこない場合、再起動してみてください

8.プロジェクトのフォルダ内で

CMD
gradlew genIntellijRuns

を実行します

これで終了です。

簡単なModの作成

1.まずは[build.gradle]を開き

build.gradle
tasks.withType(Jar) {
    compileJava.options.encoding = 'UTF-8'
}

を追記します。

2.[src -> main -> java -> com.example.examplemod.ExampleMod]を開きます。

3.

ExampleMod.java
public static final String VERSION = "1.0";

の下に

ExampleMod.java
public static Block sampleBlock;

を追記します。

またinitメソッドを

ExampleMod.java
@EventHandler
    public void init(FMLInitializationEvent event) {
        sampleBlock = new SampleBlock();
        ResourceLocation registryName = new ResourceLocation(MODID, "sampleblock");
        ItemBlock sampleItemBlock = new ItemBlock(sampleBlock);

        GameRegistry.register(sampleBlock, registryName);
        GameRegistry.register(sampleItemBlock, registryName);

        if(event.getSide().isClient()){
            ModelLoader.setCustomModelResourceLocation(sampleItemBlock, 0, new ModelResourceLocation(new ResourceLocation(MODID, "sampleblock"), "inventory"));
        }
    }

というふうに置き換えます。
またSampleBlock.javaを作成し

ExampleMod.java
public class SampleBlock extends Block {
    public SampleBlock() {
        super(Material.ROCK);
        setCreativeTab(CreativeTabs.BUILDING_BLOCKS);
        setUnlocalizedName("blockSample");
    }
}

という風に書き込みます。

4.[src -> main -> java -> resources]内に[assets -> examplemod -> blockstates -> sampleblock.json]を作成し、

sampleblock.json
{
  "forge_marker": 1,
  "defaults": {
    "model": "cube_all",
    "textures": {
      "all": "blocks/dirt"
    },
    "transform": "forge:default-block"
  },
  "variants": {
    "normal":[{}],
    "inventory":[{}]
  }
}

と書き込みます。

5.[View -> Tool Window -> Gradle]より[Tasks -> forgegradle -> runClient]を実行します。

6.ゲーム内よりBuilding Blocks内に紫と黒のテクスチャを持ったアイテムで、置くと土のテクスチャが反映されているものがあればブロック追加の成功です。お疲れ様でした。

最後に

お恥ずかしながらこの記事は自分もModdingしてみたい!ということで初めてModを作りながら書いた記事なので至らない部分もございますがご了承ください。

また今後の開発においては
Minecraft Modding Wiki
などを見ていただけると幸いです。