Compare commits

...
Author SHA1 Message Date
Guilherme Pereira 96079065b6 more armors 2025-12-05 11:38:38 -03:00
Guilherme Pereira 86f91ed77a add malicious armor armor material 2025-12-03 20:41:32 -03:00
15 changed files with 358 additions and 40 deletions
@@ -194,6 +194,7 @@ object Cobblemon {
implementation.registerSoundEvents()
implementation.registerDataComponents()
implementation.registerBlocks()
implementation.registerArmorMaterials()
implementation.registerItems()
implementation.registerEntityTypes()
implementation.registerEntityAttributes()
@@ -0,0 +1,53 @@
package com.cobblemon.mod.common
import com.cobblemon.mod.common.platform.PlatformRegistry
import com.cobblemon.mod.common.util.cobblemonResource
import net.minecraft.core.Registry
import net.minecraft.core.registries.BuiltInRegistries
import net.minecraft.core.registries.Registries
import net.minecraft.resources.ResourceKey
import net.minecraft.sounds.SoundEvents
import net.minecraft.world.item.ArmorItem
import net.minecraft.world.item.ArmorMaterial
import net.minecraft.world.item.Items
import net.minecraft.world.item.crafting.Ingredient
@Suppress("unused")
object CobblemonArmorMaterials :
PlatformRegistry<Registry<ArmorMaterial>, ResourceKey<Registry<ArmorMaterial>>, ArmorMaterial>() {
override val registry: Registry<ArmorMaterial> = BuiltInRegistries.ARMOR_MATERIAL
override val resourceKey: ResourceKey<Registry<ArmorMaterial>> = Registries.ARMOR_MATERIAL
@JvmField
val MALICIOUS_ARMOR = cosmeticMaterial("malicious_armor")
@JvmField
val HEAVY_DUTY_BOOTS = cosmeticMaterial("heavy_duty_boots")
@JvmField
val PROTECTIVE_PADS = cosmeticMaterial("protective_pads")
@JvmField
val ASSAULT_VEST = cosmeticMaterial("assault_vest")
@JvmField
val MYSTIC_WATER = cosmeticMaterial("mystic_water")
@JvmField
val BLACK_BELT = cosmeticMaterial("black_belt")
private fun cosmeticMaterial(name: String): ArmorMaterial {
val armorMaterial = ArmorMaterial(
mapOf(
ArmorItem.Type.HELMET to 0,
ArmorItem.Type.CHESTPLATE to 0,
ArmorItem.Type.LEGGINGS to 0,
ArmorItem.Type.BOOTS to 0,
),
0,
SoundEvents.ARMOR_EQUIP_GENERIC,
{ Ingredient.EMPTY },
listOf(ArmorMaterial.Layer(cobblemonResource(name), "", true)),
0.0f,
0.0f,
)
return create(name, armorMaterial)
}
}
@@ -64,6 +64,8 @@ interface CobblemonImplementation {
fun registerEntityDataSerializers()
fun registerArmorMaterials()
/**
* TODO
*
@@ -44,16 +44,21 @@ import com.cobblemon.mod.common.pokeball.PokeBall
import com.cobblemon.mod.common.pokemon.IVs
import com.cobblemon.mod.common.pokemon.helditem.CobblemonHeldItemManager
import com.cobblemon.mod.common.util.cobblemonResource
import net.minecraft.core.Holder
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.ResourceKey
import net.minecraft.resources.ResourceLocation
import net.minecraft.sounds.SoundEvents
import net.minecraft.world.effect.MobEffectInstance
import net.minecraft.world.effect.MobEffects
import net.minecraft.world.entity.EquipmentSlot
import net.minecraft.world.entity.LivingEntity
import net.minecraft.world.food.FoodProperties
import net.minecraft.world.item.ArmorItem
import net.minecraft.world.item.ArmorMaterial
import net.minecraft.world.item.BlockItem
import net.minecraft.world.item.HangingSignItem
import net.minecraft.world.item.Item
@@ -501,8 +506,6 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
@JvmField val RAZOR_CLAW = noSettingsItem("razor_claw")
@JvmField val RAZOR_FANG = noSettingsItem("razor_fang")
@JvmField val AUSPICIOUS_ARMOR = heldItem("auspicious_armor")
@JvmField val MALICIOUS_ARMOR = heldItem("malicious_armor")
@JvmField val SHELL_HELMET = heldItem("shell_helmet")
@JvmField val METAL_ALLOY = noSettingsItem("metal_alloy")
@JvmField val SCROLL_OF_DARKNESS = noSettingsItem("scroll_of_darkness")
@JvmField val SCROLL_OF_WATERS = noSettingsItem("scroll_of_waters")
@@ -892,7 +895,8 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
val WATER_STONE = noSettingsItem("water_stone")
val wearables = mutableListOf<WearableItem>()
//Wearable items (these items should have a corresponding 3D model)
// Wearable items (these items should have a corresponding 3D model)
@JvmField val BLACK_GLASSES = wearableItem("black_glasses")
@JvmField val CHOICE_BAND = wearableItem("choice_band")
@JvmField val CHOICE_SPECS = wearableItem("choice_specs")
@@ -903,6 +907,20 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
@JvmField val ROCKY_HELMET = wearableItem("rocky_helmet")
@JvmField val SAFETY_GOGGLES = wearableItem("safety_goggles")
@JvmField val WISE_GLASSES = wearableItem("wise_glasses")
@JvmField val SHELL_HELMET = wearableItem("shell_helmet")
@JvmField
val MALICIOUS_ARMOR = armorItem("malicious_armor", CobblemonArmorMaterials.MALICIOUS_ARMOR, ArmorItem.Type.CHESTPLATE)
@JvmField
val HEAVY_DUTY_BOOTS = armorItem("heavy_duty_boots", CobblemonArmorMaterials.HEAVY_DUTY_BOOTS, ArmorItem.Type.BOOTS)
@JvmField
val PROTECTIVE_PADS = armorItem("protective_pads", CobblemonArmorMaterials.PROTECTIVE_PADS, ArmorItem.Type.CHESTPLATE)
@JvmField
val ASSAULT_VEST = armorItem("assault_vest", CobblemonArmorMaterials.ASSAULT_VEST, ArmorItem.Type.CHESTPLATE)
@JvmField
val MYSTIC_WATER = armorItem("mystic_water", CobblemonArmorMaterials.MYSTIC_WATER, ArmorItem.Type.CHESTPLATE)
@JvmField
val BLACK_BELT = armorItem("black_belt", CobblemonArmorMaterials.BLACK_BELT, ArmorItem.Type.CHESTPLATE)
// Held Items
@JvmField
@@ -912,14 +930,10 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
@JvmField
val AIR_BALLOON = heldItem("air_balloon")
@JvmField
val ASSAULT_VEST = heldItem("assault_vest")
@JvmField
val BIG_ROOT = compostableBlockItem("big_root", CobblemonBlocks.BIG_ROOT, 0.30f)
@JvmField
val BINDING_BAND = heldItem("binding_band")
@JvmField
val BLACK_BELT = heldItem("black_belt")
@JvmField
val BLACK_SLUDGE = heldItem("black_sludge")
@JvmField
val BLUNDER_POLICY = heldItem("blunder_policy")
@@ -966,8 +980,6 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
@JvmField
val HARD_STONE = heldItem("hard_stone")
@JvmField
val HEAVY_DUTY_BOOTS = heldItem("heavy_duty_boots")
@JvmField
val IRON_BALL = heldItem("iron_ball")
@JvmField
val LAGGING_TAIL = heldItem("lagging_tail")
@@ -992,8 +1004,6 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
@JvmField
val MIRACLE_SEED = heldItem("miracle_seed")
@JvmField
val MYSTIC_WATER = heldItem("mystic_water")
@JvmField
val NEVER_MELT_ICE = heldItem("never_melt_ice")
@JvmField
val POISON_BARB = heldItem("poison_barb")
@@ -1012,8 +1022,6 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
@JvmField
val PSYCHIC_SEED = heldItem("psychic_seed")
@JvmField
val PROTECTIVE_PADS = heldItem("protective_pads")
@JvmField
val PUNCHING_GLOVE = heldItem("punching_glove")
@JvmField
val QUICK_CLAW = heldItem("quick_claw")
@@ -1491,9 +1499,13 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
return item
}
private fun wearableItem(name: String, heldItemRemappedName: String? = null): CobblemonItem = create(
private fun wearableItem(
name: String,
heldItemRemappedName: String? = null,
equipmentSlot: EquipmentSlot = EquipmentSlot.HEAD,
): CobblemonItem = create(
name,
WearableItem(name).also {
WearableItem(name, equipmentSlot).also {
wearables.add(it)
if (heldItemRemappedName != null) {
CobblemonHeldItemManager.registerRemap(it, heldItemRemappedName)
@@ -1501,6 +1513,21 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
}
)
private fun armorItem(
name: String,
armorMaterial: ArmorMaterial,
armorType: ArmorItem.Type,
durability: Int? = null,
): ArmorItem {
var properties = Properties()
if (durability != null) properties = properties.durability(durability)
val armorMaterialHolder = BuiltInRegistries.ARMOR_MATERIAL.wrapAsHolder(armorMaterial)
val armorItem = ArmorItem(armorMaterialHolder, armorType, properties)
return create(name, armorItem)
}
private fun campfirePotItem(block: Block, color: CampfirePotColor): CampfirePotItem {
val item = create("campfire_pot_${color.suffix}", CampfirePotItem(block, color))
campfire_pots.add(item)
@@ -13,7 +13,10 @@ import net.minecraft.resources.ResourceLocation
import net.minecraft.world.entity.EquipmentSlot
import net.minecraft.world.item.Equipable
class WearableItem(val name: String): CobblemonItem(Properties()), Equipable {
class WearableItem(
val name: String,
val armorEquipmentSlot: EquipmentSlot = EquipmentSlot.HEAD,
): CobblemonItem(Properties()), Equipable {
companion object {
const val MODEL_PATH = "item/wearable"
}
@@ -21,5 +24,7 @@ class WearableItem(val name: String): CobblemonItem(Properties()), Equipable {
fun getModel3d(): ResourceLocation = cobblemonResource("${MODEL_PATH}/${this.name}")
fun getModel2d(): ResourceLocation = cobblemonResource(this.name)
override fun getEquipmentSlot(): EquipmentSlot { return EquipmentSlot.HEAD }
override fun getEquipmentSlot(): EquipmentSlot {
return armorEquipmentSlot
}
}
@@ -0,0 +1,235 @@
{
"format_version": "1.21.6",
"credit": "Made with Blockbench",
"texture_size": [64, 24],
"textures": {
"0": "cobblemon:item/wearable/shell_helmet",
"particle": "cobblemon:item/wearable/shell_helmet"
},
"elements": [
{
"from": [4, 1, 7],
"to": [12, 4, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [7, 2, 12]},
"faces": {
"north": {"uv": [4, 0, 6, 2], "texture": "#0"},
"east": {"uv": [4, 2, 4.75, 4], "texture": "#0"},
"south": {"uv": [1.75, 12.66667, 3.75, 14.66667], "texture": "#0"},
"west": {"uv": [4.75, 2, 5.5, 4], "texture": "#0"},
"up": {"uv": [4, 2, 2, 0], "texture": "#0"},
"down": {"uv": [4, 2, 2, 4.66667], "texture": "#0"}
}
},
{
"from": [11, 0, 7],
"to": [12, 1, 7],
"rotation": {"angle": 0, "axis": "y", "origin": [7, -3, 9]},
"faces": {
"north": {"uv": [5.5, 3.33333, 5.75, 4], "texture": "#0"},
"east": {"uv": [0, 0, 0, 0.66667], "texture": "#0"},
"south": {"uv": [5.75, 3.33333, 6, 4], "texture": "#0"},
"west": {"uv": [0, 0, 0, 0.66667], "texture": "#0"},
"up": {"uv": [0.25, 0, 0, 0], "texture": "#0"},
"down": {"uv": [0.25, 0, 0, 0], "texture": "#0"}
}
},
{
"from": [4, 0, 7],
"to": [5, 1, 7],
"rotation": {"angle": 0, "axis": "y", "origin": [0, -3, 9]},
"faces": {
"north": {"uv": [4, 4, 4.25, 4.66667], "texture": "#0"},
"east": {"uv": [0, 0, 0, 0.66667], "texture": "#0"},
"south": {"uv": [3.75, 12.66667, 4, 13.33333], "texture": "#0"},
"west": {"uv": [0, 0, 0, 0.66667], "texture": "#0"},
"up": {"uv": [0.25, 0, 0, 0], "texture": "#0"},
"down": {"uv": [0.25, 0, 0, 0], "texture": "#0"}
}
},
{
"from": [12, -1, 7],
"to": [12, 1, 9],
"rotation": {"angle": 0, "axis": "y", "origin": [7, 2, 11]},
"faces": {
"north": {"uv": [0, 0, 0, 1.33333], "texture": "#0"},
"east": {"uv": [4.25, 6.66667, 4.75, 8], "texture": "#0"},
"south": {"uv": [0, 0, 0, 1.33333], "texture": "#0"},
"west": {"uv": [5.5, 2, 6, 3.33333], "texture": "#0"},
"up": {"uv": [0, 3.33333, 0, 0], "texture": "#0"},
"down": {"uv": [0, 0, 0, 3.33333], "texture": "#0"}
}
},
{
"from": [4, -1, 7],
"to": [4, 1, 9],
"rotation": {"angle": 0, "axis": "y", "origin": [7, 2, 11]},
"faces": {
"north": {"uv": [0, 0, 0, 1.33333], "texture": "#0"},
"east": {"uv": [4, 10, 4.5, 11.33333], "texture": "#0"},
"south": {"uv": [0, 0, 0, 1.33333], "texture": "#0"},
"west": {"uv": [4.75, 6.66667, 5.25, 8], "texture": "#0"},
"up": {"uv": [0, 3.33333, 0, 0], "texture": "#0"},
"down": {"uv": [0, 0, 0, 3.33333], "texture": "#0"}
}
},
{
"from": [5, 2, 4],
"to": [11, 4, 7],
"rotation": {"angle": 0, "axis": "y", "origin": [7, 2, 12]},
"faces": {
"north": {"uv": [4.25, 4, 5.75, 5.33333], "texture": "#0"},
"east": {"uv": [6, 2.66667, 6.75, 4], "texture": "#0"},
"south": {"uv": [4.25, 5.33333, 5.75, 6.66667], "texture": "#0"},
"west": {"uv": [5.75, 4, 6.5, 5.33333], "texture": "#0"},
"up": {"uv": [5.5, 13.33333, 4, 11.33333], "texture": "#0"},
"down": {"uv": [5.25, 13.33333, 3.75, 15.33333], "texture": "#0"}
}
},
{
"from": [5, 2, 7],
"to": [11, 2, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [7, 2, 12]},
"faces": {
"north": {"uv": [4.25, 4, 5.75, 5.33333], "texture": "#0"},
"east": {"uv": [6, 2.66667, 6.75, 4], "texture": "#0"},
"south": {"uv": [4.25, 5.33333, 5.75, 6.66667], "texture": "#0"},
"west": {"uv": [5.75, 4, 6.5, 5.33333], "texture": "#0"},
"up": {"uv": [5.5, 13.33333, 4, 11.33333], "texture": "#0"},
"down": {"uv": [3.75, 15.33333, 5.25, 13.33333], "texture": "#0"}
}
},
{
"from": [11, 0, 4],
"to": [11, 2, 7],
"rotation": {"angle": 0, "axis": "y", "origin": [7, 2, 12]},
"faces": {
"north": {"uv": [0, 0, 0, 1.33333], "texture": "#0"},
"east": {"uv": [5.75, 5.33333, 6.5, 6.66667], "texture": "#0"},
"south": {"uv": [0, 0, 0, 1.33333], "texture": "#0"},
"west": {"uv": [6, 1.33333, 6.75, 2.66667], "texture": "#0"},
"up": {"uv": [0, 2, 0, 0], "texture": "#0"},
"down": {"uv": [0, 0, 0, 2], "texture": "#0"}
}
},
{
"from": [5, 0, 4],
"to": [5, 2, 7],
"rotation": {"angle": 0, "axis": "y", "origin": [7, 2, 12]},
"faces": {
"north": {"uv": [0, 0, 0, 1.33333], "texture": "#0"},
"east": {"uv": [6, 0, 6.75, 1.33333], "texture": "#0"},
"south": {"uv": [0, 0, 0, 1.33333], "texture": "#0"},
"west": {"uv": [5.25, 6.66667, 6, 8], "texture": "#0"},
"up": {"uv": [0, 2, 0, 0], "texture": "#0"},
"down": {"uv": [0, 0, 0, 2], "texture": "#0"}
}
},
{
"from": [4, 1, 10],
"to": [12, 4, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 12]},
"faces": {
"north": {"uv": [0, 10.66667, 1.75, 14], "texture": "#0"},
"east": {"uv": [3.25, 8, 4.5, 10], "texture": "#0"},
"south": {"uv": [1.75, 10.66667, 4, 12.66667], "texture": "#0"},
"west": {"uv": [2, 8, 3.25, 10], "texture": "#0"},
"up": {"uv": [6.5, 11.33333, 4.5, 8], "texture": "#0"},
"down": {"uv": [4.25, 4.66667, 2, 8], "texture": "#0"}
}
},
{
"from": [4, -4, 9],
"to": [12, 1, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [4, -3, 13]},
"faces": {
"north": {"uv": [10.75, 3.33333, 12.75, 6.66667], "texture": "#0"},
"east": {"uv": [12.75, 0, 14.25, 3.33333], "texture": "#0"},
"south": {"uv": [10.75, 0, 12.75, 3.33333], "texture": "#0"},
"west": {"uv": [14.25, 0, 15.75, 3.33333], "texture": "#0"},
"up": {"uv": [8.75, 4, 10.75, 8], "texture": "#0"},
"down": {"uv": [8.75, 0, 10.75, 4], "texture": "#0"}
}
},
{
"from": [6, -1.3, 10.5],
"to": [10, 6.7, 18.5],
"rotation": {"angle": 45, "axis": "x", "origin": [7.5, 1.65, 13.5]},
"faces": {
"north": {"uv": [12.75, 3.33333, 13.75, 8.66667], "texture": "#0"},
"east": {"uv": [2, 0, 0, 5.33333], "texture": "#0"},
"south": {"uv": [13.75, 3.33333, 14.75, 8.66667], "texture": "#0"},
"west": {"uv": [0, 0, 2, 5.33333], "texture": "#0"},
"up": {"uv": [12.75, 8.66667, 13.75, 14], "texture": "#0"},
"down": {"uv": [13.75, 8.66667, 14.75, 14], "texture": "#0"}
}
},
{
"from": [4, -1.4, 7.4],
"to": [12, -1.4, 18.4],
"rotation": {"angle": 45, "axis": "x", "origin": [7.5, 1.65, 13.5]},
"faces": {
"north": {"uv": [12.75, 3.33333, 13.75, 8.66667], "texture": "#0"},
"east": {"uv": [0, 5.33333, 2, 10.66667], "texture": "#0"},
"south": {"uv": [13.75, 3.33333, 14.75, 8.66667], "texture": "#0"},
"west": {"uv": [0, 0, 2, 5.33333], "texture": "#0"},
"up": {"uv": [12.75, 8.66667, 13.75, 14], "texture": "#0"},
"down": {"uv": [6.75, 0, 8.75, 6.66667], "texture": "#0"}
}
},
{
"from": [4.01, -4, 7],
"to": [4.01, 4, 15],
"faces": {
"north": {"uv": [0, 0, 0, 5.33333], "texture": "#0"},
"east": {"uv": [8.75, 8, 10.75, 13.33333], "texture": "#0"},
"south": {"uv": [0, 0, 0, 5.33333], "texture": "#0"},
"west": {"uv": [6.5, 6.66667, 8.5, 12], "texture": "#0"},
"up": {"uv": [0, 0, 0, 5.33333], "texture": "#0"},
"down": {"uv": [0, 0, 0, 5.33333], "texture": "#0"}
}
},
{
"from": [11.99, -4, 7],
"to": [11.99, 4, 15],
"faces": {
"north": {"uv": [0, 0, 0, 5.33333], "texture": "#0"},
"east": {"uv": [6.5, 6.66667, 8.5, 12], "texture": "#0"},
"south": {"uv": [0, 0, 0, 5.33333], "texture": "#0"},
"west": {"uv": [10.75, 9.33333, 12.75, 14.66667], "texture": "#0"},
"up": {"uv": [0, 0, 0, 5.33333], "texture": "#0"},
"down": {"uv": [0, 0, 0, 5.33333], "texture": "#0"}
}
},
{
"from": [4, 0, 7.01],
"to": [12, 4, 7.01],
"rotation": {"angle": 0, "axis": "y", "origin": [7, -3, 9]},
"faces": {
"north": {"uv": [10.75, 3.33333, 12.75, 6.66667], "texture": "#0"},
"east": {"uv": [0, 0, 0, 0.66667], "texture": "#0"},
"south": {"uv": [10.75, 6.66667, 12.75, 9.33333], "texture": "#0"},
"west": {"uv": [0, 0, 0, 0.66667], "texture": "#0"},
"up": {"uv": [0.25, 0, 0, 0], "texture": "#0"},
"down": {"uv": [0.25, 0, 0, 0], "texture": "#0"}
}
},
{
"from": [4, -3.99, 12],
"to": [12, -3.99, 15],
"faces": {
"north": {"uv": [0, 0, 2, 0], "texture": "#0"},
"east": {"uv": [0, 0, 0.75, 0], "texture": "#0"},
"south": {"uv": [0, 0, 2, 0], "texture": "#0"},
"west": {"uv": [0, 0, 0.75, 0], "texture": "#0"},
"up": {"uv": [10.75, 8.66667, 12.75, 6.66667], "texture": "#0"},
"down": {"uv": [10.75, 4.66667, 12.75, 6.66667], "texture": "#0"}
}
}
],
"display": {
"head": {
"translation": [0, 15.25, -6],
"scale": [1.9, 1.9, 1.9]
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 863 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 415 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 847 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 B

@@ -250,6 +250,10 @@ object CobblemonFabric : CobblemonImplementation {
EntityDataSerializers.registerSerializer(RideBoostsDataSerializer)
}
override fun registerArmorMaterials() {
CobblemonArmorMaterials.register { identifier, armorMaterial -> Registry.register(CobblemonArmorMaterials.registry, identifier, armorMaterial) }
}
override fun registerItems() {
CobblemonItems.register { identifier, item -> Registry.register(CobblemonItems.registry, identifier, item) }
CobblemonItemGroups.register { provider ->
@@ -9,21 +9,10 @@
package com.cobblemon.mod.neoforge
import com.cobblemon.mod.common.*
import com.cobblemon.mod.common.CobblemonRecipeCategories.COOKING_POT_COMPLEX_DISHES
import com.cobblemon.mod.common.CobblemonRecipeCategories.COOKING_POT_FOODS
import com.cobblemon.mod.common.CobblemonRecipeCategories.COOKING_POT_MEDICINES
import com.cobblemon.mod.common.CobblemonRecipeCategories.COOKING_POT_MISC
import com.cobblemon.mod.common.CobblemonRecipeCategories.COOKING_POT_SEARCH
import com.cobblemon.mod.common.CobblemonRecipeCategories.*
import com.cobblemon.mod.common.advancement.CobblemonCriteria
import com.cobblemon.mod.common.advancement.predicate.CobblemonEntitySubPredicates
import com.cobblemon.mod.common.api.net.serializers.IdentifierDataSerializer
import com.cobblemon.mod.common.api.net.serializers.NPCPlayerTextureSerializer
import com.cobblemon.mod.common.api.net.serializers.PlatformTypeDataSerializer
import com.cobblemon.mod.common.api.net.serializers.PoseTypeDataSerializer
import com.cobblemon.mod.common.api.net.serializers.RideBoostsDataSerializer
import com.cobblemon.mod.common.api.net.serializers.StringSetDataSerializer
import com.cobblemon.mod.common.api.net.serializers.UUIDSetDataSerializer
import com.cobblemon.mod.common.api.net.serializers.Vec3DataSerializer
import com.cobblemon.mod.common.api.net.serializers.*
import com.cobblemon.mod.common.item.group.CobblemonItemGroups
import com.cobblemon.mod.common.loot.LootInjector
import com.cobblemon.mod.common.particle.CobblemonParticles
@@ -42,13 +31,9 @@ import com.cobblemon.mod.neoforge.net.CobblemonNeoForgeNetworkManager
import com.cobblemon.mod.neoforge.permission.ForgePermissionValidator
import com.cobblemon.mod.neoforge.worldgen.CobblemonBiomeModifiers
import com.mojang.brigadier.arguments.ArgumentType
import java.util.Optional
import java.util.UUID
import net.minecraft.commands.synchronization.ArgumentTypeInfo
import net.minecraft.commands.synchronization.ArgumentTypeInfos
import net.minecraft.core.registries.BuiltInRegistries
import net.minecraft.core.registries.Registries
import net.minecraft.network.chat.Component
import net.minecraft.resources.ResourceKey
import net.minecraft.resources.ResourceLocation
import net.minecraft.server.MinecraftServer
@@ -83,12 +68,7 @@ import net.neoforged.neoforge.client.event.RegisterRecipeBookCategoriesEvent
import net.neoforged.neoforge.common.ItemAbilities
import net.neoforged.neoforge.common.NeoForge
import net.neoforged.neoforge.common.NeoForgeMod
import net.neoforged.neoforge.event.AddPackFindersEvent
import net.neoforged.neoforge.event.AddReloadListenerEvent
import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent
import net.neoforged.neoforge.event.LootTableLoadEvent
import net.neoforged.neoforge.event.OnDatapackSyncEvent
import net.neoforged.neoforge.event.RegisterCommandsEvent
import net.neoforged.neoforge.event.*
import net.neoforged.neoforge.event.entity.EntityAttributeCreationEvent
import net.neoforged.neoforge.event.entity.player.PlayerEvent
import net.neoforged.neoforge.event.entity.player.PlayerWakeUpEvent
@@ -101,6 +81,7 @@ import net.neoforged.neoforge.registries.NeoForgeRegistries
import net.neoforged.neoforge.registries.RegisterEvent
import net.neoforged.neoforge.server.ServerLifecycleHooks
import thedarkcolour.kotlinforforge.neoforge.forge.MOD_BUS
import java.util.*
import kotlin.reflect.KClass
@Mod(Cobblemon.MODID)
@@ -331,6 +312,16 @@ class CobblemonNeoForge : CobblemonImplementation {
}
}
override fun registerArmorMaterials() {
with(MOD_BUS) {
addListener<RegisterEvent> { event ->
event.register(CobblemonArmorMaterials.resourceKey) { helper ->
CobblemonArmorMaterials.register { identifier, armorMaterial -> helper.register(identifier, armorMaterial) }
}
}
}
}
override fun registerItems() {
with(MOD_BUS) {
addListener<RegisterEvent> { event ->