diff --git a/src/main/generated/assets/acesbs/models/item/berserkers_pauldron.json b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron.json new file mode 100644 index 0000000..09185f3 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "acesbs:item/berserkers_pauldron_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "acesbs:item/berserkers_pauldron_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "acesbs:item/berserkers_pauldron_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "acesbs:item/berserkers_pauldron_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "acesbs:item/berserkers_pauldron_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "acesbs:item/berserkers_pauldron_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "acesbs:item/berserkers_pauldron_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "acesbs:item/berserkers_pauldron_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "acesbs:item/berserkers_pauldron_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "acesbs:item/berserkers_pauldron_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "acesbs:item/berserkers_pauldron" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_amethyst_trim.json b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_amethyst_trim.json new file mode 100644 index 0000000..e9702cd --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "acesbs:item/berserkers_pauldron", + "layer1": "minecraft:trims/items/chestplate_trim_amethyst" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_copper_trim.json b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_copper_trim.json new file mode 100644 index 0000000..0dbf5a6 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "acesbs:item/berserkers_pauldron", + "layer1": "minecraft:trims/items/chestplate_trim_copper" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_diamond_trim.json b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_diamond_trim.json new file mode 100644 index 0000000..0255c90 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "acesbs:item/berserkers_pauldron", + "layer1": "minecraft:trims/items/chestplate_trim_diamond" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_emerald_trim.json b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_emerald_trim.json new file mode 100644 index 0000000..dd9eae7 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "acesbs:item/berserkers_pauldron", + "layer1": "minecraft:trims/items/chestplate_trim_emerald" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_gold_trim.json b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_gold_trim.json new file mode 100644 index 0000000..66dd029 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "acesbs:item/berserkers_pauldron", + "layer1": "minecraft:trims/items/chestplate_trim_gold" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_iron_trim.json b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_iron_trim.json new file mode 100644 index 0000000..4886e70 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "acesbs:item/berserkers_pauldron", + "layer1": "minecraft:trims/items/chestplate_trim_iron" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_lapis_trim.json b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_lapis_trim.json new file mode 100644 index 0000000..0fb717b --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "acesbs:item/berserkers_pauldron", + "layer1": "minecraft:trims/items/chestplate_trim_lapis" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_netherite_trim.json b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_netherite_trim.json new file mode 100644 index 0000000..bccc80d --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "acesbs:item/berserkers_pauldron", + "layer1": "minecraft:trims/items/chestplate_trim_netherite" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_quartz_trim.json b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_quartz_trim.json new file mode 100644 index 0000000..b5c7453 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "acesbs:item/berserkers_pauldron", + "layer1": "minecraft:trims/items/chestplate_trim_quartz" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_redstone_trim.json b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_redstone_trim.json new file mode 100644 index 0000000..ba20cdc --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/berserkers_pauldron_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "acesbs:item/berserkers_pauldron", + "layer1": "minecraft:trims/items/chestplate_trim_redstone" + } +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/item/creeper_drop_music_discs.json b/src/main/generated/data/minecraft/tags/item/creeper_drop_music_discs.json new file mode 100644 index 0000000..32fbab3 --- /dev/null +++ b/src/main/generated/data/minecraft/tags/item/creeper_drop_music_discs.json @@ -0,0 +1,5 @@ +{ + "values": [ + "acesbs:crab_rave_music_disc" + ] +} \ No newline at end of file diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java index a442561..fcfc6dc 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java @@ -74,5 +74,7 @@ public class ModModelProvider extends FabricModelProvider { itemModelGenerator.registerArmor((ArmorItem) ModItems.PRISMA_STEEL_CHESTPLATE); itemModelGenerator.registerArmor((ArmorItem) ModItems.PRISMA_STEEL_LEGGINGS); itemModelGenerator.registerArmor((ArmorItem) ModItems.PRISMA_STEEL_BOOTS); + + itemModelGenerator.registerArmor((ArmorItem) ModItems.BERSERKERS_PAULDRON); } } diff --git a/src/main/java/com/acethewildfire/acesbs/item/ModArmorMaterials.java b/src/main/java/com/acethewildfire/acesbs/item/ModArmorMaterials.java index 1e21d67..0ce3a07 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/ModArmorMaterials.java +++ b/src/main/java/com/acethewildfire/acesbs/item/ModArmorMaterials.java @@ -3,6 +3,7 @@ package com.acethewildfire.acesbs.item; import com.acethewildfire.acesbs.AcesBS; import net.minecraft.item.ArmorItem; import net.minecraft.item.ArmorMaterial; +import net.minecraft.item.Items; import net.minecraft.recipe.Ingredient; import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; @@ -27,6 +28,16 @@ public class ModArmorMaterials { }), 20, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, () -> Ingredient.ofItems(ModItems.PRISMA_STEEL), List.of(new ArmorMaterial.Layer(Identifier.of(AcesBS.MOD_ID, "prisma_steel"))), 0, 0)); + public static final RegistryEntry BERSERKERS = registerArmorMaterial("berserkers", + () -> new ArmorMaterial(Util.make(new EnumMap<>(ArmorItem.Type.class), map -> { + map.put(ArmorItem.Type.BOOTS, 2); + map.put(ArmorItem.Type.LEGGINGS, 4); + map.put(ArmorItem.Type.CHESTPLATE, 6); + map.put(ArmorItem.Type.HELMET, 2); + map.put(ArmorItem.Type.BODY, 4); + }), 20, SoundEvents.ITEM_ARMOR_EQUIP_LEATHER, () -> Ingredient.ofItems(Items.LEATHER), + List.of(new ArmorMaterial.Layer(Identifier.of(AcesBS.MOD_ID, "berserkers"))), 0, 0)); + public static RegistryEntry registerArmorMaterial(String name, Supplier material){ return Registry.registerReference(Registries.ARMOR_MATERIAL, Identifier.of(AcesBS.MOD_ID, name), material.get()); diff --git a/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java b/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java index c8a1919..62d9940 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java +++ b/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java @@ -74,6 +74,7 @@ public class ModItemGroups { entries.add(ModItems.PRISMA_STEEL_LEGGINGS); entries.add(ModItems.PRISMA_STEEL_BOOTS); entries.add(ModItems.KAUPEN_BOW); + entries.add(ModItems.BERSERKERS_PAULDRON); }) diff --git a/src/main/java/com/acethewildfire/acesbs/item/ModItems.java b/src/main/java/com/acethewildfire/acesbs/item/ModItems.java index 46bb435..64f43ac 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/ModItems.java +++ b/src/main/java/com/acethewildfire/acesbs/item/ModItems.java @@ -9,7 +9,12 @@ import com.acethewildfire.acesbs.potion.ModPotions; import com.acethewildfire.acesbs.sounds.ModSounds; import net.minecraft.client.gui.screen.Screen; import net.minecraft.component.DataComponentTypes; +import net.minecraft.component.type.AttributeModifierSlot; +import net.minecraft.component.type.AttributeModifiersComponent; import net.minecraft.component.type.PotionContentsComponent; +import net.minecraft.entity.attribute.EntityAttribute; +import net.minecraft.entity.attribute.EntityAttributeModifier; +import net.minecraft.entity.attribute.EntityAttributes; import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffects; import net.minecraft.item.*; @@ -114,7 +119,30 @@ public class ModItems { public static final Item CRAB_RAVE_MUSIC_DISC = registerItem("crab_rave_music_disc", new Item(new Item.Settings().jukeboxPlayable(ModSounds.CRAB_RAVE_KEY).maxCount(1))); - + public static final Item BERSERKERS_PAULDRON = registerItem("berserkers_pauldron", + new ModArmorItem(ModArmorMaterials.BERSERKERS, ArmorItem.Type.CHESTPLATE, new Item.Settings() + .maxDamage(ArmorItem.Type.CHESTPLATE.getMaxDamage(15)).attributeModifiers(AttributeModifiersComponent.builder() + .add(EntityAttributes.GENERIC_MAX_HEALTH, + new EntityAttributeModifier(Identifier.of(AcesBS.MOD_ID, "generic.max_health"), 20, EntityAttributeModifier.Operation.ADD_VALUE), AttributeModifierSlot.CHEST) + .add(EntityAttributes.GENERIC_ARMOR, + new EntityAttributeModifier(Identifier.of(AcesBS.MOD_ID, "generic.armor"), -20, EntityAttributeModifier.Operation.ADD_VALUE), AttributeModifierSlot.CHEST) + .add(EntityAttributes.GENERIC_KNOCKBACK_RESISTANCE, + new EntityAttributeModifier(Identifier.of(AcesBS.MOD_ID, "generic.knockback_resistance"), 1.0f, EntityAttributeModifier.Operation.ADD_VALUE), AttributeModifierSlot.CHEST) + .build())){ + @Override + public void appendTooltip(ItemStack stack, TooltipContext context, List tooltip, TooltipType type) { + if(!Screen.hasShiftDown()){ + tooltip.add(Text.translatable("tooltip.acesbs.berserkers_pauldron_desc")); + tooltip.add(Text.translatable("tooltip.acesbs.generic.shift_more")); + } + else { + tooltip.add(Text.translatable("tooltip.acesbs.berserkers_pauldron_thanks")); + tooltip.add(Text.translatable("tooltip.acesbs.thanks_sov")); + } + super.appendTooltip(stack, context, tooltip, type); + } + } + ); diff --git a/src/main/resources/assets/acesbs/textures/item/berserkers_pauldron.png b/src/main/resources/assets/acesbs/textures/item/berserkers_pauldron.png new file mode 100644 index 0000000..d1e4f0a Binary files /dev/null and b/src/main/resources/assets/acesbs/textures/item/berserkers_pauldron.png differ diff --git a/src/main/resources/assets/acesbs/textures/models/armor/berserkers_layer_1.png b/src/main/resources/assets/acesbs/textures/models/armor/berserkers_layer_1.png new file mode 100644 index 0000000..bffbc72 Binary files /dev/null and b/src/main/resources/assets/acesbs/textures/models/armor/berserkers_layer_1.png differ