aboutsummaryrefslogtreecommitdiff
path: root/common/src/main/kotlin/net/examplemod/ExampleMod.kt
blob: 4f618cebc02da664a4c45ba361794627d920962c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package net.examplemod

import com.google.common.base.Suppliers
import dev.architectury.registry.CreativeTabRegistry
import dev.architectury.registry.registries.DeferredRegister
import dev.architectury.registry.registries.Registries
import dev.architectury.registry.registries.RegistrySupplier
import net.minecraft.core.Registry
import net.minecraft.resources.ResourceLocation
import net.minecraft.world.item.CreativeModeTab
import net.minecraft.world.item.Item
import net.minecraft.world.item.ItemStack
import java.util.function.Supplier

object ExampleMod {
    const val MOD_ID = "examplemod"

    // We can use this if we don't want to use DeferredRegister
    @Suppress("unused")
    val REGISTRIES: Supplier<Registries> = Suppliers.memoize { Registries.get(MOD_ID) }

    // Registering a new creative tab
    val EXAMPLE_TAB: CreativeModeTab = CreativeTabRegistry.create(ResourceLocation(MOD_ID, "example_tab")) { ItemStack(EXAMPLE_ITEM.get()) }
    val ITEMS: DeferredRegister<Item> = DeferredRegister.create(MOD_ID, Registry.ITEM_REGISTRY)
    val EXAMPLE_ITEM: RegistrySupplier<Item> = ITEMS.register("example_item") { Item(Item.Properties().tab(EXAMPLE_TAB)) }

    fun init() {
        ITEMS.register()
        println(ExampleExpectPlatform.getConfigDirectory().toAbsolutePath().normalize().toString())
    }
}