一.需要先注册一个物品,这里采用之前的EXAMPLE_ITEM_01
二.添加物品属性覆盖
@Mod.EventBusSubscriber(modid = TestMod.MODID,bus = Mod.EventBusSubscriber.Bus.MOD,value = Dist.CLIENT)
public class PropertyRegistry {
@SubscribeEvent
public static void propertyOverrideRegistry(FMLClientSetupEvent event){
event.enqueueWork(()->{ //加入主线程
ItemProperties.register(Registry.EXAMPLE_ITEM_01.get(),
new ResourceLocation(TestMod.MODID,"size"),
(itemStack, level, livingEntity, num)->{
return itemStack.getCount();
});
});
}
}
- new ResourceLocation(TestMod.MODID,"size") : 这里创建了一个名为size的堆叠属性
- (itemStack, level, livingEntity, num)->{return itemStack.getCount();} : 这里返回堆叠数量
三. 修改json配置文件
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "item/iron_ingot"
}
}
这是原来的配置文件(example_item_01.json),这里我们直接引用铁锭
我们在后面继续添加需要的配置文件
{
"overrides": [
{
"predicate": {
"testmod:size": 16
},
"model": "item/gold_ingot"
},
{
"predicate": {
"testmod:size": 32
},
"model": "item/diamond"
}
]
}
表示堆叠数量到16时,材质变金锭,到32时变钻石
以此类推可以改成我们想要的状态或属性