はじめに
今回は、今までMinecraftのModで作成したアイテムやブロックにツールチップを設定してみたいと思います。
前提
ドロップ作成の前提として、以下記事を参考にModの開発環境が構築されていること。
【参照】
【開発環境構築】VSCodeでMinecraft(Java版)のMOD作成環境を構築する – SEもりのLog (selifemorizo.com)
【Java + Mod開発】オリジナルのアイテムを追加してみる – SEもりのLog (selifemorizo.com)
【Java + Mod開発】オリジナルのブロックをMinecraftで追加してみる – SEもりのLog (selifemorizo.com)
アイテムにツールチップを追加
こちらの記事で作成したアイテムにツールチップを追加していきます。
【Java + Mod開発】Minecraftでオリジナルのアイテムに機能を追加する方法 – SEもりのLog Mod
フォルダ構成
赤字のフォルダ・ファイルが今回必要な追加・修正対象になります。
└─src
    ├─generated
    │  └─resources
    │      └─.cache
    ├─main
    │  ├─java
    │  │  └─com
    │  │      └─mori
    │  │          └─morimod
    │  │              │  Config.java
    │  │              │  MoriMod.java
    │  │              │
    │  │              ├─blocks
    │  │              │  │  MoriModBlock.java
    │  │              │  │
    │  │              │  └─customize
    │  │              │          HiraganaBlock.java
    │  │              │
    │  │              └─items
    │  │                  │  MoriModCreativeModeTabs.java
    │  │                  │  MoriModFood.java
    │  │                  │  MoriModItem.java
    │  │                  │
    │  │                  └─customize
    │  │                          IronSearcherItem.java
    │  │                          JudgeItem.java
    │  │
    │  └─resources
    │      │  pack.mcmeta
    │      │
    │      ├─assets
    │      │  └─morimod
    │      │      ├─blockstates
    │      │      │      a_block.json
    │      │      │      moriblock.json
    │      │      │      mo_block.json
    │      │      │      ri_block.json
    │      │      │
    │      │      ├─lang
    │      │      │      en_us.json
    │      │      │      ja_jp.json
    │      │      │
    │      │      ├─models
    │      │      │  ├─block
    │      │      │  │      a_block.json
    │      │      │  │      moriblock.json
    │      │      │  │      mo_block.json
    │      │      │  │      ri_block.json
    │      │      │  │
    │      │      │  └─item
    │      │      │          a_block.json
    │      │      │          humbarger.json
    │      │      │          iron_searcher.json
    │      │      │          judge_rod.json
    │      │      │          moriblock.json
    │      │      │          moriitem.json
    │      │      │          moriitem2.json
    │      │      │          mo_block.json
    │      │      │          ri_block.json
    │      │      │
    │      │      └─textures
    │      │          ├─block
    │      │          │      a_block.png
    │      │          │      moriblock.png
    │      │          │      mo_block.png
    │      │          │      ri_block.png
    │      │          │
    │      │          └─item
    │      │                  humbarger.png
    │      │                  iron_searcher.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
ソース編集
JudgeItem.java
「appendHoverText」メソッドをオーバーライドして追加します。
    @Override
    public void appendHoverText(ItemStack p_41421_, Level p_41422_, List<Component> p_41423_, TooltipFlag p_41424_) {
        if (Screen.hasShiftDown()) {
            p_41423_.add(Component.translatable("tooltip.shift.Morimod.item.morimod.judge_rod"));
        } else {
            p_41423_.add(Component.translatable("tooltip.Morimod.item.morimod.judge_rod"));
        }
        // TODO Auto-generated method stub
        super.appendHoverText(p_41421_, p_41422_, p_41423_, p_41424_);
    }
ja_jp.json
IDとして使用した「tooltip.shift.Morimod.item.morimod.judge_rod」と「tooltip.Morimod.item.morimod.judge_rod」に対して表示したい文章を追加します。
{
~~~~~~略~~~~
    "tooltip.shift.Morimod.item.morimod.judge_rod": "シフト時に出すツールチップ説明",
    "tooltip.Morimod.item.morimod.judge_rod": "通常時のツールチップ"
}
ブロックにツールチップを追加
こちらの記事で作成したブロックにツールチップを追加していきます。
【Java + Mod開発】Minecraftでオリジナルのブロックに機能を追加する – SEもりのLog Mod
フォルダ構成
上記に記載。
HiraganaBlock.java
「appendHoverText」メソッドをオーバーライドして追加します。
    @Override
    public void appendHoverText(ItemStack p_49816_, BlockGetter p_49817_, List<Component> p_49818_,
            TooltipFlag p_49819_) {
        if (Screen.hasShiftDown()) {
            p_49818_.add(Component.translatable("tooltip.shift.Morimod.block.morimod.a_block"));
        } else {
            p_49818_.add(Component.translatable("tooltip.Morimod.block.morimod.a_block"));
        }
        // TODO Auto-generated method stub
        super.appendHoverText(p_49816_, p_49817_, p_49818_, p_49819_);
    }
ja_jp.json
IDとして使用した「tooltip.shift.Morimod.item.morimod.judge_rod」と「tooltip.Morimod.item.morimod.judge_rod」に対して表示したい文章を追加します。
{
~~~~~~略~~~~
    "tooltip.shift.Morimod.block.morimod.a_block": "シフト時に出すツールチップ説明",
    "tooltip.Morimod.block.morimod.a_block": "通常時のツールチップ"
}
実行確認
実際の挙動を確認してみます。
公式サイト
最後に
以上、ログになります。
これからも継続していきましょう!!

 
  
  
  
  
コメント