一.需要先注册一个物品,这里采用之前的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();
            });
        });
    }
}

三. 修改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时变钻石
以此类推可以改成我们想要的状态或属性