本帖最后由 崩坏寂落 于 2020-7-20 20:07 编辑
我在我的mod中,需要给物品添加描述信息,但是如果每个简单的modItem都要单独写一个类继承Item并override addInformation未免太过于冗余和麻烦,有没有比较简化的处理方式,给物品方块等添加信息?求大佬们给个思路
我在我的mod中,需要给物品添加描述信息,但是如果每个简单的modItem都要单独写一个类继承Item并override addInformation未免太过于冗余和麻烦,有没有比较简化的处理方式,给物品方块等添加信息?求大佬们给个思路
我感觉可以写一个总物品类YourModItem继承Item。
public YourModItem extends Item {
public TranslatableText tooltip;
public YourModItem(TranslatableText text){
this.tooltip = text;
}
@Override
public void appendTooltip(ItemStack itemStack, World world, List<Text> tooltips, TooltipContext tooltipContext) {
tooltips.add(tooltip);
}
}
public YourModItem extends Item {
public TranslatableText tooltip;
public YourModItem(TranslatableText text){
this.tooltip = text;
}
@Override
public void appendTooltip(ItemStack itemStack, World world, List<Text> tooltips, TooltipContext tooltipContext) {
tooltips.add(tooltip);
}
}
本帖最后由 崩坏寂落 于 2020-7-17 12:25 编辑
这个方法我也想过了,就是自己设置一个ItemBase,然后直接继承Item,然后我的modItem继承ItemBase,但是那个怎么才能定义不同的物品有不同的描述呢?你这个的tooltip该怎么去定义呢?求指点一下
jingshen 发表于 2020-7-17 11:28
我感觉可以写一个总物品类YourModItem继承Item。
public YourModItem extends Item {
public Translata ...
这个方法我也想过了,就是自己设置一个ItemBase,然后直接继承Item,然后我的modItem继承ItemBase,但是那个怎么才能定义不同的物品有不同的描述呢?你这个的tooltip该怎么去定义呢?求指点一下
本帖最后由 jingshen 于 2020-7-17 12:35 编辑
在继承ItemBase的时候构造函数里写各自的tooltip,比如
public ItemXX extends YourModItem {
public ItemXX() {
super(new TranslatableText("XX的tooltip"));
}
}(感觉也不太方便。。。)
崩坏寂落 发表于 2020-7-17 12:24
这个方法我也想过了,就是自己设置一个ItemBase,然后直接继承Item,然后我的modItem继承ItemBase,但是那 ...
在继承ItemBase的时候构造函数里写各自的tooltip,比如
public ItemXX extends YourModItem {
public ItemXX() {
super(new TranslatableText("XX的tooltip"));
}
}(感觉也不太方便。。。)
jingshen 发表于 2020-7-17 12:31
在继承ItemBase的时候构造函数里写各自的tooltip,比如
public ItemXX extends YourModItem {
public ...
懂了,感谢。在1.15.2里面这个toollitps.add()里面传的是List<ITextComponent>,不过原理是一样的,那我能不能不再注册物品的时候传入数据,把那些描述都写在一个自定义类里面,然后Itembase里面的addInformation里面通过getRegistyName().getpath()这个去那个自定义类找对应的描述呢?