目次
{
"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