物品

注册物品

// ModItems.tk
object ModItems {
    val ITEMS: DeferredRegister.Items = DeferredRegister.createItems(ExampleMod.MODID)
    
    // 最基础的方法,不推荐使用
    val EXAMPLE_ITEM: DeferredItem<Item> = ITEMS.register("name") { -> Item(Item.Properties())}

    // 注册简单物品
    // val EXAMPLE_ITEM: DeferredItem<Item> = ITEMS.registerSimpleItem("name")
    // val EXAMPLE_ITEM: DeferredItem<Item> = ITEMS.registerSimpleItem("name",Item.Properties())
    // 注册自定义物品
    // val EXAMPLE_ITEM: DeferredItem<Item> = ITEMS.registerItem("name") {properties -> Item(properties)}
    // val EXAMPLE_ITEM: DeferredItem<Item> = ITEMS.registerItem("name",{properties -> Item(properties)},Item.Properties())
    // 简化写法
    // val EXAMPLE_ITEM: DeferredItem<Item> = ITEMS.registerItem("name",::Item)
    fun register(modEventBus: IEventBus) {
        ITEMS.register(modEventBus)
    }
}

// ExampleMod.tk
@Mod(ExampleMod.MODID)
class ExampleMod(modEventBus: IEventBus, modContainer: ModContainer){
    init {
        ModItems.register(modEventBus)
    }
    companion object {
        const val MODID: String = "example_mod"
    }
}

自定义物品类

所有的物品类都继承于Item

class ExampleItem(properties:Properties): Item(properties){
    // 对方法进行复写
}

object ModItems {
    // 注册自定义物品类的物品,也可以使用简化方法
    val EXAMPLE_ITEM: DeferredItem<ExampleItem> = ITEMS.registerItem("name") {properties -> ExampleItem(properties)}
    // val EXAMPLE_ITEM: DeferredItem<ExampleItem> = ITEMS.registerItem("name",::ExampleItem)
}