From ab30c1128b42eed24d0decf9ecf9e6a2c98a79e2 Mon Sep 17 00:00:00 2001 From: Linnea Gräf Date: Mon, 1 Apr 2024 21:57:16 +0200 Subject: Add potato guard --- .../moe/nea/potatocrime/registry/PotatoRegistry.kt | 28 +++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'src/main/kotlin/moe/nea/potatocrime/registry/PotatoRegistry.kt') diff --git a/src/main/kotlin/moe/nea/potatocrime/registry/PotatoRegistry.kt b/src/main/kotlin/moe/nea/potatocrime/registry/PotatoRegistry.kt index 2e5fa5f..53944f3 100644 --- a/src/main/kotlin/moe/nea/potatocrime/registry/PotatoRegistry.kt +++ b/src/main/kotlin/moe/nea/potatocrime/registry/PotatoRegistry.kt @@ -2,16 +2,25 @@ package moe.nea.potatocrime.registry import com.mojang.serialization.Codec import moe.nea.potatocrime.PotatoCrime +import moe.nea.potatocrime.entity.PotatoGuardEntity import moe.nea.potatocrime.item.ContrabandItem +import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup +import net.fabricmc.fabric.api.`object`.builder.v1.entity.FabricEntityTypeBuilder import net.minecraft.component.DataComponentType +import net.minecraft.entity.EntityDimensions +import net.minecraft.entity.SpawnGroup import net.minecraft.item.Item +import net.minecraft.item.ItemStack import net.minecraft.network.codec.PacketCodecs import net.minecraft.registry.Registries import net.minecraft.registry.Registry +import net.minecraft.registry.RegistryKeys +import net.minecraft.registry.tag.TagKey import net.minecraft.util.Identifier object PotatoRegistry { private val delayedRegistries = mutableListOf<() -> Unit>() + private val items = mutableListOf() fun registerAll() { delayedRegistries.forEach { it.invoke() } } @@ -23,15 +32,32 @@ object PotatoRegistry { return t } - private fun item(name: String, t: T): T = register(Registries.ITEM, name, t) + private fun item(name: String, t: T): T = register(Registries.ITEM, name, t).also(items::add) private fun dataComponent(name: String, block: (DataComponentType.Builder) -> DataComponentType.Builder) = register( Registries.DATA_COMPONENT_TYPE, name, block(DataComponentType.builder()).build() ) + fun identifier(name: String) = Identifier(PotatoCrime.modId, name) + + val group = register(Registries.ITEM_GROUP, "default_group", FabricItemGroup.builder() + .icon { ItemStack(contraband) } + .displayName(PotatoTranslations.itemGroup.format()) + .entries { _, entries -> + items.forEach(entries::add) + } + .build()) + val carrotIshItems = TagKey.of(RegistryKeys.ITEM, identifier("carrotish")) val contraband = item("contraband", ContrabandItem()) val contrabandData = dataComponent("contraband_data") { it.codec(Codec.INT).packetCodec(PacketCodecs.VAR_INT) } + val potatoGuard = register( + Registries.ENTITY_TYPE, "potato_guard", + FabricEntityTypeBuilder.create(SpawnGroup.CREATURE, ::PotatoGuardEntity) + .dimensions(EntityDimensions.fixed(1f, 3f)) + .build() + ) + } \ No newline at end of file -- cgit