idea
minecraft
IntelliJ

IntelliJ IDEAでmoddingしてみる

More than 1 year has passed since last update.


環境

Windows 10 64bit

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

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


環境構築


現在は Minecraft Devを入れると簡単に環境構築が出来ます

プロジェクト作成画面にMinecraft Devが追加されるのでウィザードを進めるだけでOkです


まずは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

などを見ていただけると幸いです。