目次
{
"name" : "template-code-highlight"
}
アイテムの追加方法の解説です。
アイテムを登録する
アイテムなどのオブジェクトは、登録してゲームに認識させなければいけません。
基本的なアイテムを登録する
棒、火薬などの特殊な機能がないアイテムの追加方法です。
ツールや、右クリックすると何かが起こる、といったアイテムはもう一方のやり方で追加できます。
Items.java
アイテムの登録情報を記述します。
場所はどこでもいいですが、com/example/examplemod/items/に作成します。
package com.example.examplemod.items;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.CreativeModeTab;
public class Items {
public static final String MOD_ID = "examplemod";
private static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MOD_ID);
public static final RegistryObject<Item> BLUE_POWDER = ITEMS.register("blue_powder", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_MISC).fireResistant()));
public static DeferredRegister<Item> getRegister(){
return Items.ITEMS;
}
}
MOD_IDはmods.tomlで定義したMODのIDと同じものを入れて下さい。
ITEMSには、アイテムを登録するためのDeferredRegister、いわば「名簿」のようなものを設定しています。
その次のITEMS.register("<アイテムのID>", ...)でアイテムを登録します。実際のアイテムIDは、MODのID:設定したアイテムのIDとなります。
変数名は、定数なので大文字にしましょう。
new Item.Properties()の後に、アイテムの振る舞いを記述します。
設定できる要素については、次の表を参照してください。
| メソッド名 |
引数 |
説明 |
| food |
(FoodProperties) |
食べ物としての設定をする。詳しい解説は以下を参照。 |
| stacksTo |
(int) |
最大スタック数を指定する。durabilityと併用できない。 |
| defaultDurability |
(int) |
|
| durability |
(int) |
耐久値を設定する。指定すると最大スタック数は1に設定される。 |
| craftRemainder |
(Item) |
クラフトに使用したときに返ってくるアイテムを指定する。一覧は<forge>/net/minecraft/world/item/Items.javaを参照。 |
| tab |
(CreativeModeTab) |
アイテムが属するクリエイティブタブを指定する。タブ一覧は下記参照。 |
| rarity |
(Rarity) |
レア度を指定する。 |
| fireResistant |
(なし) |
火に耐性を持つ。 |
| setNoRepair |
(なし) |
アイテムを修理できなくなる。 |
|
+
|
クリエイティブタブ一覧 |
| 定数名 |
名前 |
| CreativeModeTab.TAB_BUILDING_BLOCKS |
建築ブロック |
| CreativeModeTab.TAB_DECORATIONS |
装飾ブロック |
| CreativeModeTab.TAB_REDSTONE |
レッドストーン |
| CreativeModeTab.TAB_TRANSPORTATION |
運送 |
| CreativeModeTab.TAB_MISC |
その他 |
| CreativeModeTab.TAB_SEARCH |
アイテム検索 |
| CreativeModeTab.TAB_FOOD |
食料 |
| CreativeModeTab.TAB_TOOLS |
道具 |
| CreativeModeTab.TAB_COMBAT |
戦闘 |
| CreativeModeTab.TAB_BREWING |
醸造 |
| CreativeModeTab.TAB_MATERIALS |
その他(TAB_MISCと同じ) |
| CreativeModeTab.TAB_HOTBAR |
保存したホットバー |
| CreativeModeTab.TAB_INVENTORY |
サバイバルインベントリ |
「アイテム検索」「保存したホットバー」「サバイバルインベントリ」に所属させることも可能です。
しかし、「保存したホットバー」内には表示されません。
また、「サバイバルインベントリ」内では、「アイテムを削除」のスロットに配置されそこから入手することはできません。
いずれの場合も「アイテム検索」から入手することは可能です。
|
|
+
|
レア度一覧 |
| Rarity.COMMON |
白色 |
| Rarity.UNCOMMON |
黄色 |
| Rarity.RARE |
水色 |
| Rarity.EPIC |
明るい紫色 |
|
FoodProperties
public static final RegistryObject<Item> EDIBLE_POWDER = ITEMS.register("edible_powder", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_FOOD).food(new FoodProperties.Builder().alwaysEat().effect(() -> new MobEffectInstance(MobEffects.MOVEMENT_SPEED, 10, 5, false, true, false), 1.0F).build())));
new FoodPropeties.Builder().<設定>.build()という風に書きます。
設定できる要素
| メソッド名 |
引数 |
説明 |
| nutrition |
(int) |
回復する満腹度。 |
| saturationMod |
(float) |
隠し満腹度の回復量? 実際の隠し満腹度の回復量は、nutrition * saturationModifier * 2になる。(要検証) |
| meat |
(なし) |
肉に設定する。オオカミの餌になる。 |
| alwaysEat |
(なし) |
満腹でも食べられるようにする。 |
| fast |
() |
食べるスピードが速くなる。バニラでは「乾燥した昆布」に設定されている。 |
| effect |
(java.util.function.Supplier<MobEffectInstance>,float) |
食べたときにエフェクトを付与する。詳しくは以下の説明を参照。 |
effectの書き方(MobEffectInstance)
.food(new FoodProperties.Builder().effect(() -> new MobEffectInstance(<エフェクト>, <時間>, <レベル>, <アンビエント>, <可視>, <アイコン表示>, <隠し効果>), <確率>)).build())
デフォルト値のあるものは省略できます。
| 名前(仮) |
型 |
デフォルト |
説明 |
| エフェクト |
MobEffect |
|
付与するエフェクト。 |
| 時間 |
int |
0 |
エフェクトの持続時間(ティック)。 |
| レベル |
int |
0 |
エフェクトのレベル。 |
| アンビエント |
boolean |
false |
??? |
| 可視 |
boolean |
true |
パーティクル・インベントリでのアイコンを表示するかどうか |
| アイコン表示 |
boolean |
true |
プレイ画面で右上にアイコンを表示するかどうか |
| 隠し効果 |
MobEffectInstance |
null |
??? |
|
|
|
|
| 確率 |
float |
|
確率を小数で指定する。 |
|
+
|
エフェクト一覧 |
| 定数名 |
名前 |
| MobEffects.MOVEMENT_SPEED |
移動速度上昇 |
| MobEffects.MOVEMENT_SLOWDOWN |
移動速度低下 |
| MobEffects.DIG_SPEED |
採掘速度上昇 |
| MobEffects.DIG_SLOWDOWN |
採掘速度低下 |
| MobEffects.DAMAGE_BOOST |
攻撃力上昇 |
| MobEffects.HEAL |
即時回復 |
| MobEffects.HARM |
即時ダメージ |
| MobEffects.JUMP |
跳躍力上昇 |
| MobEffects.CONFUSION |
吐き気 |
| MobEffects.REGENERATION |
再生能力 |
| MobEffects.DAMAGE_RESISTANCE |
耐性 |
| MobEffects.FIRE_RESISTANCE |
火炎耐性 |
| MobEffects.WATER_BREATHING |
水中呼吸 |
| MobEffects.INVISIBILITY |
透明化 |
| MobEffects.BLINDNESS |
盲目 |
| MobEffects.NIGHT_VISION |
暗視 |
| MobEffects.HUNGER |
空腹 |
| MobEffects.WEAKNESS |
弱体化 |
| MobEffects.POISON |
毒 |
| MobEffects.WITHER |
衰弱 |
| MobEffects.HEALTH_BOOST |
体力増強 |
| MobEffects.ABSORPTION |
衝撃吸収 |
| MobEffects.SATURATION |
満腹度回復 |
| MobEffects.GLOWING |
発光 |
| MobEffects.LEVITATION |
浮遊 |
| MobEffects.LUCK |
幸運 |
| MobEffects.UNLUCK |
不運 |
| MobEffects.SLOW_FALLING |
落下速度低下 |
| MobEffects.CONDUIT_POWER |
コンジットパワー |
| MobEffects.DOLPHINS_GRACE |
イルカの好意 |
| MobEffects.BAD_OMEN |
不吉な予感 |
| MobEffects.HERO_OF_THE_VILLAGE |
村の英雄 |
|
見た目の設定
リソースパックで、アイテムの見た目を設定します。
テクスチャの設定
テクスチャファイル(PNG画像)はsrc/main/resources/assets/<MODのID>/textures/item/に保存します。
モデルJSON
src/main/resources/assets/<MODのID>/models/に作成します。
ファイル名は<アイテムID(名前空間を含まない)>.jsonにして下さい。
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "examplemod:item/blue_powder"
}
}
"layer0"の値を、"<MODのID>:<テクスチャのパス>"に設定します。
アイテム名の設定
言語JSON
src/main/resources/assets/<MODのID>/lang/に作成します。
ファイル名は言語に合わせて変更します。
{
"item.examplemod.blue_powder": "Blue Powder",
"item.examplemod.edible_powder": "Edible Powder"
}
JSONファイル内は、"item.<名前空間(MODのID)>.<アイテムID>":
"<アイテム名>"の形で記述していきます。
参考文献
最終更新:2024年12月11日 18:10