はじめに
今回は、マイクラのMod開発としてオリジナルの食料を追加していきたいと思います。追加する食料はハンバーガーです!
前提
ドロップ作成の前提として、以下記事を参考にModの開発環境が構築されていること。
【参照】
【開発環境構築】VSCodeでMinecraft(Java版)のMOD作成環境を構築する – SEもりのLog (selifemorizo.com)
【Java + Mod開発】オリジナルのアイテムを追加してみる – SEもりのLog (selifemorizo.com)
【Java + Mod開発】オリジナルのブロックをMinecraftで追加してみる – SEもりのLog (selifemorizo.com)
ハンバーガーのイラスト取得
いらすとやから画像取得
ハンバーガーの検索結果 | かわいいフリー素材集 いらすとや (irasutoya.com)
ハンバーガーをMinecraftに追加する
フォルダ構成
赤字のフォルダ・ファイルが今回必要な追加・修正対象になります。
└─src
├─generated
│ └─resources
├─main
│ ├─java
│ │ └─com
│ │ └─mori
│ │ └─morimod
│ │ │ Config.java
│ │ │ MoriMod.java
│ │ │
│ │ ├─blocks
│ │ │ MoriModBlock.java
│ │ │
│ │ └─items
│ │ │ MoriModItem.java
│ │ │ MoriModFood.java
│ │ └─customize
│ │ JudgeItem.java
│ │
│ └─resources
│ │ pack.mcmeta
│ │
│ ├─assets
│ │ └─morimod
│ │ ├─blockstates
│ │ │ moriblock.json
│ │ │ mo_block.json
│ │ │ ri_block.json
│ │ │
│ │ ├─lang
│ │ │ en_us.json
│ │ │ ja_jp.json
│ │ │
│ │ ├─models
│ │ │ ├─block
│ │ │ │ moriblock.json
│ │ │ │ mo_block.json
│ │ │ │ ri_block.json
│ │ │ │
│ │ │ └─item
│ │ │ humbarger.json
│ │ │ judge_rod.json
│ │ │ moriblock.json
│ │ │ moriitem.json
│ │ │ moriitem2.json
│ │ │ mo_block.json
│ │ │ ri_block.json
│ │ │
│ │ └─textures
│ │ ├─block
│ │ │ moriblock.png
│ │ │ mo_block.png
│ │ │ ri_block.png
│ │ │
│ │ └─item
│ │ humbarger.png
│ │ judge_rod.png
│ │ moriitem.png
│ │ moriitem2.png
│ │
│ ├─data
│ │ ├─minecraft
│ │ │ └─tags
│ │ │ └─blocks
│ │ │ │ needs_diamond_tool.json
│ │ │ │ needs_iron_tool.json
│ │ │ │ needs_stone_tool.json
│ │ │ │
│ │ │ └─mineable
│ │ │ axe.json
│ │ │ hoe.json
│ │ │ pickaxe.json
│ │ │ shovel.json
│ │ │
│ │ └─morimod
│ │ ├─loot_tables
│ │ │ └─blocks
│ │ │ moriblock.json
│ │ │ mo_block.json
│ │ │ ri_block.json
│ │ │
│ │ └─recipes
│ │ humbarger.json
│ │ moriblock.json
│ │ moriitem_from_block.json
│ │
│ └─META-INF
│ mods.toml
ソース編集
MoriModFood.java
ハンバーガーの情報を定義します。
package com.mori.morimod.items;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.food.FoodProperties;
public class MoriModFood {
public static final FoodProperties HUMBARGER = new FoodProperties.Builder()
.nutrition(4) // 空腹回復値
.saturationMod(0.3F)
.effect(() -> new MobEffectInstance(MobEffects.MOVEMENT_SPEED, 400) // 20秒間速度向上バフ
,0.6F) // 60%の確率
.build();
}
MoriModItem.java
アイテム自体の定義を実施する。
package com.mori.morimod.items;
import com.mori.morimod.MoriMod;
import com.mori.morimod.items.customize.IronSearcherItem;
import com.mori.morimod.items.customize.JudgeItem;
import net.minecraft.world.item.Item;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
/**
* アイテムMod用クラス
*/
public class MoriModItem {
// MODIDは自身で設定したものを指定します
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MoriMod.MODID);
// アイテムオブジェクトの生成 第一引数のnemeはitemのIDを任意でつけます
public static final RegistryObject<Item> MORIITEM = ITEMS.register("moriitem", () -> new Item(new Item.Properties()));
// 2個目のアイテムを追加したい場合もオブジェクトを追加
public static final RegistryObject<Item> MORIITEM2 = ITEMS.register("moriitem2", () -> new Item(new Item.Properties()));
// ブロック鑑定ロッド
public static final RegistryObject<Item> JUDGE_ROD = ITEMS.register("judge_rod",
() -> new JudgeItem(new Item.Properties().durability(512)));
// ハンバーガー
public static final RegistryObject<Item> HUMBARGER = ITEMS.register("humbarger",
() -> new Item(new Item.Properties().food(MoriModFood.HUMBARGER)));
public static void register(IEventBus eventBus) {
ITEMS.register(eventBus);
}
}
設定の追加
models/item/humbarger.json
どのテクスチャをどういう形式で出力させるかを設定するファイルです。
ファイル名は自身でつけたアイテムのIDを設定します。
{
"parent": "item/generated",
"textures":{
"layer0": "morimod:item/humbarger"
}
}
textures
テクスチャ(画像データ)を格納します。
ja_jp.json
ゲーム内で表示するアイテム名を指定します。
{
"item.morimod.moriitem": "もり アイテム",
"item.morimod.moriitem2": "もり アイテム2",
"item.morimod.judge_rod": "ブロック鑑定",
"block.morimod.moriblock": "もり ブロック",
"block.morimod.mo_block": "も ブロック",
"block.morimod.ri_block": "り ブロック",
"item.morimod.humbarger": "ハンバーガー",
}
レシピの設定
recipes/humbarger.json
ハンバーガーのレシピを設定します。
{
"type": "minecraft:crafting_shaped",
"category": "misc",
"key": {
"A": {
"item": "minecraft:cooked_beef"
},
"B": {
"item": "minecraft:egg"
},
"C": {
"item": "minecraft:bread"
}
},
"pattern": [
"A",
"B",
"C"
],
"result": {
"item": "morimod:humbarger"
},
"show_notification": true
}
実行確認
実際にマイクラを実行してハンバーガーが追加されていることを確認しましょう!!
レシピの確認
レシピでハンバーガーが作成できました!
ハンバーガーを食べてみる
ハンバーガーを食べられることも確認します。
確認できたらオリジナルの食料の追加は完了です。
公式サイト
最後に
以上、ログになります。
これからも継続していきましょう!!
コメント