custom items now use new builder DSL syntax, implementing first new set begins tmr
build / build (push) Failing after 3m16s
build / build (push) Failing after 3m16s
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
package dev.zxq5.items
|
||||
|
||||
import dev.zxq5.Fantasysmp
|
||||
import dev.zxq5.items.core.GenericGearSet
|
||||
import dev.zxq5.items.core.GenericItemSet
|
||||
import net.fabricmc.fabric.api.creativetab.v1.FabricCreativeModeTab
|
||||
import net.minecraft.core.Registry
|
||||
import net.minecraft.core.registries.BuiltInRegistries
|
||||
import net.minecraft.core.registries.Registries
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.resources.Identifier
|
||||
import net.minecraft.resources.ResourceKey
|
||||
import net.minecraft.world.item.CreativeModeTab
|
||||
import net.minecraft.world.item.Item
|
||||
import net.minecraft.world.item.ItemStack
|
||||
|
||||
object ModItems {
|
||||
fun <T : Item> register(
|
||||
name: String,
|
||||
itemFactory: (Item.Properties) -> T,
|
||||
settings: Item.Properties
|
||||
): T {
|
||||
val itemKey = ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(Fantasysmp.MOD_ID, name))
|
||||
val item = itemFactory(settings.setId(itemKey))
|
||||
Registry.register(BuiltInRegistries.ITEM, itemKey, item)
|
||||
return item
|
||||
}
|
||||
|
||||
val CUSTOM_CREATIVE_TAB_KEY: ResourceKey<CreativeModeTab> = ResourceKey.create(
|
||||
BuiltInRegistries.CREATIVE_MODE_TAB.key(), Identifier.fromNamespaceAndPath(Fantasysmp.MOD_ID, "creative_tab")
|
||||
)
|
||||
|
||||
val CUSTOM_CREATIVE_TAB: CreativeModeTab = FabricCreativeModeTab.builder()
|
||||
.icon { ItemStack(Witherite.SWORD) }
|
||||
.title(Component.translatable("Fantasysmp"))
|
||||
.displayItems { _, output ->
|
||||
GenericItemSet.all.forEach {
|
||||
it.items.forEach(output::accept)
|
||||
}
|
||||
}
|
||||
.build()
|
||||
|
||||
private val eagerLoad = listOf<GenericGearSet>(
|
||||
Witherite,
|
||||
Dragonite,
|
||||
)
|
||||
|
||||
fun onLoad() {
|
||||
// ensure that implementations such as creative tab are loaded and initialised
|
||||
eagerLoad
|
||||
GenericItemSet.all.forEach { it.onLoad() }
|
||||
Registry.register(BuiltInRegistries.CREATIVE_MODE_TAB, CUSTOM_CREATIVE_TAB_KEY, CUSTOM_CREATIVE_TAB);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user