https://github.com/DaRealTurtyWurty/1.19TutorialMod
- サンプル
- gradle の設定が最小限しかないのが良い
Gradle / Groovy
- スペース区切りはつまり、メソッドの呼び出し。本来は hoge(xx)と書くところを hoge xx と書くことができる
- コロン区切りはつまり、名前付き引数の指定。スペース区切りでメソッド呼び出しした後に記載することが多いのでは?
- 波かっこはクロージャ つまり、任意のコードを記述できる
eclipse {
project{
name = "hoge"
}
}
name=hoge を指揮とした project を呼び出す ecripse を呼び出す?
クロージャ内部では、delegate されたオブジェクトを暗黙的に参照できる。 eclipse では、デフォルトで project が delegate されてるとか?
※つまり、build.gradle で pluginで forge を追加することで、minecraft クラスが使えて、そこに build /run などの 事前 delegate されたクラスが使えるっぽい?
src/main
https://docs.minecraftforge.net/en/latest/concepts/registries/
DeferredRegister : おそらく、 Forge のレジストリに、自作リソースを登録するための仲介クラスっぽい?
RegistryObject は登録済みのオブジェクトの情報っぽい?登録後に何か変更したいならこのポインタを参照する?
requiresCorrectToolForDrops : ブロック回収に特定ツールが必要である属性を設定する
FlowerBlock (Blockの亜種っぽい)
https://nekoyue.github.io/ForgeJavaDocs-NG/javadoc/1.19/ https://minecraft.fandom.com/wiki/Tick
public BlockBehaviour.Properties randomTicks() ブロックティック : 植物の成長とか、時間を使う系で使う
タグ関係
TagKey というクラスに create したタグを入れる
Item
フード public static final FoodProperties EXAMPLE_FOOD = new FoodProperties.Builder() で生成したものをアタッチできる
new Item(props().food(Foods.EXAMPLE_FOOD))
ForgeTierクラスとは? Tier とは? https://minecraft.fandom.com/ja/wiki/%E9%9A%8E%E7%B4%9A
- 採掘レベル
- アイテム耐久度
- 採掘速度の乗数
- ダメージ倍率 [fn 1]
- 良いエンチャントが出てくる確率 多分他にもある
public static final Tier EXAMPLE = new ForgeTier(
2,
800,
1.5f,
3,
350,
BlockInit.Tags.NEEDS_EXAMPLE_TOOL,
() -> Ingredient.of(ItemInit.EXAMPLE_ITEM.get()));
}
Chat
import net.minecraft.network.chat.Component;
多分チャット追加っぽい?
components.add(Component.literal("Press " + PURPLE + "SHIFT " + WHITE + "for more information!"));
これで直接メッセージ送るっぽい
player.sendSystemMessage(Component.literal("Beans"));
KunLabのやつで有名かつ自分が視聴してるやつを参考に見ていく
ざっとみ古い方が構成が簡単で見やすそう
https://github.com/TeamKun/VoteMod/blob/master/src/main/java/net/teamfruit/votemod/VoteMod.java
- 意外と実装少ない
- アセット少ないと少ないっぽい?
中身
- VoteMod 自体はコンストラクタを持たない
- 投票内容をリストで持つので、おそらくインスタンスは1つだけ?
あー、基本は動作しなくて、サーバー側にコマンドを登録しておき、コマンド実行によって起動する感じっぽい
- サーバー側 : vs で投票開始
- クライアント側 : v で投票