From ee23e1357c6a69a0cddef0aae59813215e68f70b Mon Sep 17 00:00:00 2001 From: Glitchlabs Date: Sat, 9 May 2026 13:17:29 +0200 Subject: [PATCH] v2.1.0 --- gradle.properties | 2 +- .../be5720aac139ee197c55b68040cc95f687ab0aa2 | 8 +- .../Processed_obsidian.java | 8 ++ .../processed_obsidian/blocks/ModBlocks.java | 43 ++------- .../datagen/DataGenerators.java | 2 + .../datagen/ModItemModelProvider.java | 7 ++ .../datagen/ModItemTagProvider.java | 85 ++++++++++++++++++ .../items/ModArmorMaterials.java | 47 ++++++++++ .../processed_obsidian/items/ModItems.java | 27 ++++++ .../ObsidianUpgradeSmithingTemplateItem.java | 27 ++++++ .../assets/processed_obsidian/lang/en_us.json | 11 +++ .../textures/item/obsidian_boots.png | Bin 0 -> 467 bytes .../textures/item/obsidian_chestplate.png | Bin 0 -> 490 bytes .../textures/item/obsidian_helmet.png | Bin 0 -> 466 bytes .../textures/item/obsidian_leggings.png | Bin 0 -> 472 bytes .../obsidian_upgrade_smithing_template.png | Bin 0 -> 361 bytes .../models/armor/obsidian_layer_1.png | Bin 0 -> 1765 bytes .../models/armor/obsidian_layer_2.png | Bin 0 -> 370 bytes .../recipe/obsidian_alloy.json | 22 +++++ .../recipe/obsidian_boots.json | 17 ++++ .../recipe/obsidian_chestplate.json | 17 ++++ .../recipe/obsidian_helmet.json | 17 ++++ .../recipe/obsidian_leggings.json | 17 ++++ .../obsidian_upgrade_smithing_template.json | 25 ++++++ 24 files changed, 344 insertions(+), 38 deletions(-) create mode 100644 src/main/java/ovh/glitchlabs/processed_obsidian/datagen/ModItemTagProvider.java create mode 100644 src/main/java/ovh/glitchlabs/processed_obsidian/items/ModArmorMaterials.java create mode 100644 src/main/java/ovh/glitchlabs/processed_obsidian/items/ObsidianUpgradeSmithingTemplateItem.java create mode 100644 src/main/resources/assets/processed_obsidian/textures/item/obsidian_boots.png create mode 100644 src/main/resources/assets/processed_obsidian/textures/item/obsidian_chestplate.png create mode 100644 src/main/resources/assets/processed_obsidian/textures/item/obsidian_helmet.png create mode 100644 src/main/resources/assets/processed_obsidian/textures/item/obsidian_leggings.png create mode 100644 src/main/resources/assets/processed_obsidian/textures/item/obsidian_upgrade_smithing_template.png create mode 100644 src/main/resources/assets/processed_obsidian/textures/models/armor/obsidian_layer_1.png create mode 100644 src/main/resources/assets/processed_obsidian/textures/models/armor/obsidian_layer_2.png create mode 100644 src/main/resources/data/processed_obsidian/recipe/obsidian_alloy.json create mode 100644 src/main/resources/data/processed_obsidian/recipe/obsidian_boots.json create mode 100644 src/main/resources/data/processed_obsidian/recipe/obsidian_chestplate.json create mode 100644 src/main/resources/data/processed_obsidian/recipe/obsidian_helmet.json create mode 100644 src/main/resources/data/processed_obsidian/recipe/obsidian_leggings.json create mode 100644 src/main/resources/data/processed_obsidian/recipe/obsidian_upgrade_smithing_template.json diff --git a/gradle.properties b/gradle.properties index b84aaae..5d34c3b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -29,7 +29,7 @@ mod_name=Processed obsidian # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=All Rights Reserved # The mod version. See https://semver.org/ -mod_version=1.0.0 +mod_version=2.1.0 # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # This should match the base package used for the mod sources. # See https://maven.apache.org/guides/mini/guide-naming-conventions.html diff --git a/src/generated/resources/.cache/be5720aac139ee197c55b68040cc95f687ab0aa2 b/src/generated/resources/.cache/be5720aac139ee197c55b68040cc95f687ab0aa2 index bc3606b..5e555b2 100644 --- a/src/generated/resources/.cache/be5720aac139ee197c55b68040cc95f687ab0aa2 +++ b/src/generated/resources/.cache/be5720aac139ee197c55b68040cc95f687ab0aa2 @@ -1,2 +1,8 @@ -// 1.21.1 2026-04-27T21:59:02.410668709 Item Models: processed_obsidian +// 1.21.1 2026-05-01T11:36:16.667550553 Item Models: processed_obsidian +dfd6d5e102d95ae2258ca88062d06edf16e8fab1 assets/processed_obsidian/models/item/obsidian_alloy.json +6ea8b1deedf52e165d8cc060cc318097f7b58cbb assets/processed_obsidian/models/item/obsidian_boots.json +f9e772c69f1ec06dfbd7711b2112c575368b06e3 assets/processed_obsidian/models/item/obsidian_chestplate.json e4b0a25a058313fe86e228b769ea1106b6f5bb56 assets/processed_obsidian/models/item/obsidian_dust.json +eb06b02520ce67b07b617e1f79ae3f4f887b53f6 assets/processed_obsidian/models/item/obsidian_helmet.json +073a780f29b98409d8b869c0b34a628e61c261ba assets/processed_obsidian/models/item/obsidian_leggings.json +d422c6c102931fbed51a0d87698413a63d5760f2 assets/processed_obsidian/models/item/obsidian_upgrade_smithing_template.json diff --git a/src/main/java/ovh/glitchlabs/processed_obsidian/Processed_obsidian.java b/src/main/java/ovh/glitchlabs/processed_obsidian/Processed_obsidian.java index dbb0b4c..7b6f71a 100644 --- a/src/main/java/ovh/glitchlabs/processed_obsidian/Processed_obsidian.java +++ b/src/main/java/ovh/glitchlabs/processed_obsidian/Processed_obsidian.java @@ -71,6 +71,14 @@ public class Processed_obsidian { } if (event.getTabKey() == CreativeModeTabs.INGREDIENTS) { event.accept(ModItems.OBSIDIAN_DUST.get()); + event.accept(ModItems.OBSIDIAN_ALLOY.get()); + event.accept(ModItems.OBSIDIAN_UPGRADE_SMITHING_TEMPLATE.get()); + } + if (event.getTabKey() == CreativeModeTabs.COMBAT) { + event.accept(ModItems.OBSIDIAN_HELMET.get()); + event.accept(ModItems.OBSIDIAN_CHESTPLATE.get()); + event.accept(ModItems.OBSIDIAN_LEGGINGS.get()); + event.accept(ModItems.OBSIDIAN_BOOTS.get()); } } diff --git a/src/main/java/ovh/glitchlabs/processed_obsidian/blocks/ModBlocks.java b/src/main/java/ovh/glitchlabs/processed_obsidian/blocks/ModBlocks.java index ad3d0ba..df6362a 100644 --- a/src/main/java/ovh/glitchlabs/processed_obsidian/blocks/ModBlocks.java +++ b/src/main/java/ovh/glitchlabs/processed_obsidian/blocks/ModBlocks.java @@ -1,14 +1,10 @@ package ovh.glitchlabs.processed_obsidian.blocks; -import net.minecraft.util.valueproviders.UniformInt; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.DropExperienceBlock; -import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockBehaviour; -import net.minecraft.world.level.block.state.properties.NoteBlockInstrument; -import net.minecraft.world.level.material.MapColor; import net.neoforged.bus.api.IEventBus; import net.neoforged.neoforge.registries.DeferredBlock; import net.neoforged.neoforge.registries.DeferredRegister; @@ -17,53 +13,28 @@ import ovh.glitchlabs.processed_obsidian.items.ModItems; import java.util.function.Supplier; -public class ModBlocks { +public class ModBlocks { public static final DeferredRegister.Blocks BLOCKS = DeferredRegister.createBlocks(Processed_obsidian.MODID); public static final DeferredBlock OBSIDIAN_BRICKS = registerBlock("obsidian_bricks", - () -> new Block(BlockBehaviour.Properties.of() - .strength(50.0F) - .requiresCorrectToolForDrops() - .explosionResistance(1200.0F) - .instrument(NoteBlockInstrument.BASEDRUM) - .mapColor(MapColor.COLOR_BLACK) + () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.OBSIDIAN) )); public static final DeferredBlock CRACKED_OBSIDIAN_BRICKS = registerBlock("cracked_obsidian_bricks", - () -> new Block(BlockBehaviour.Properties.of() - .strength(50.0F) - .requiresCorrectToolForDrops() - .explosionResistance(1200.0F) - .instrument(NoteBlockInstrument.BASEDRUM) - .mapColor(MapColor.COLOR_BLACK) + () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.OBSIDIAN) )); public static final DeferredBlock OBSIDIAN_TILES = registerBlock("obsidian_tiles", - () -> new Block(BlockBehaviour.Properties.of() - .strength(50.0F) - .requiresCorrectToolForDrops() - .explosionResistance(1200.0F) - .instrument(NoteBlockInstrument.BASEDRUM) - .mapColor(MapColor.COLOR_BLACK) + () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.OBSIDIAN) )); public static final DeferredBlock CRACKED_OBSIDIAN_TILES = registerBlock("cracked_obsidian_tiles", - () -> new Block(BlockBehaviour.Properties.of() - .strength(50.0F) - .requiresCorrectToolForDrops() - .explosionResistance(1200.0F) - .instrument(NoteBlockInstrument.BASEDRUM) - .mapColor(MapColor.COLOR_BLACK) + () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.OBSIDIAN) )); public static final DeferredBlock POLISHED_OBSIDIAN = registerBlock("polished_obsidian", - () -> new Block(BlockBehaviour.Properties.of() - .strength(50.0F) - .requiresCorrectToolForDrops() - .explosionResistance(1200.0F) - .instrument(NoteBlockInstrument.BASEDRUM) - .mapColor(MapColor.COLOR_BLACK) + () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.OBSIDIAN) )); private static DeferredBlock registerBlock(String name, Supplier block) { diff --git a/src/main/java/ovh/glitchlabs/processed_obsidian/datagen/DataGenerators.java b/src/main/java/ovh/glitchlabs/processed_obsidian/datagen/DataGenerators.java index 02b2de7..f7f3af7 100644 --- a/src/main/java/ovh/glitchlabs/processed_obsidian/datagen/DataGenerators.java +++ b/src/main/java/ovh/glitchlabs/processed_obsidian/datagen/DataGenerators.java @@ -33,6 +33,8 @@ public class DataGenerators { BlockTagsProvider blockTagsProvider = new ModBlockTagProvider(packOutput, lookupProvider, existingFileHelper); generator.addProvider(event.includeServer(), blockTagsProvider); + generator.addProvider(event.includeServer(), new ModItemTagProvider(packOutput, lookupProvider, blockTagsProvider.contentsGetter(), existingFileHelper)); + generator.addProvider(event.includeClient(), new ModItemModelProvider(packOutput, existingFileHelper)); generator.addProvider(event.includeClient(), new ModBlockStateProvider(packOutput, existingFileHelper)); } diff --git a/src/main/java/ovh/glitchlabs/processed_obsidian/datagen/ModItemModelProvider.java b/src/main/java/ovh/glitchlabs/processed_obsidian/datagen/ModItemModelProvider.java index 00ea7bf..65e69ae 100644 --- a/src/main/java/ovh/glitchlabs/processed_obsidian/datagen/ModItemModelProvider.java +++ b/src/main/java/ovh/glitchlabs/processed_obsidian/datagen/ModItemModelProvider.java @@ -14,5 +14,12 @@ public class ModItemModelProvider extends ItemModelProvider { @Override protected void registerModels() { basicItem(ModItems.OBSIDIAN_DUST.get()); + basicItem(ModItems.OBSIDIAN_UPGRADE_SMITHING_TEMPLATE.get()); + basicItem(ModItems.OBSIDIAN_ALLOY.get()); + + basicItem(ModItems.OBSIDIAN_HELMET.get()); + basicItem(ModItems.OBSIDIAN_CHESTPLATE.get()); + basicItem(ModItems.OBSIDIAN_LEGGINGS.get()); + basicItem(ModItems.OBSIDIAN_BOOTS.get()); } } \ No newline at end of file diff --git a/src/main/java/ovh/glitchlabs/processed_obsidian/datagen/ModItemTagProvider.java b/src/main/java/ovh/glitchlabs/processed_obsidian/datagen/ModItemTagProvider.java new file mode 100644 index 0000000..cd84528 --- /dev/null +++ b/src/main/java/ovh/glitchlabs/processed_obsidian/datagen/ModItemTagProvider.java @@ -0,0 +1,85 @@ +package ovh.glitchlabs.processed_obsidian.datagen; + +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraft.data.tags.ItemTagsProvider; +import net.minecraft.tags.ItemTags; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.Block; +import net.neoforged.neoforge.common.data.ExistingFileHelper; +import org.jetbrains.annotations.Nullable; +import ovh.glitchlabs.processed_obsidian.Processed_obsidian; +import ovh.glitchlabs.processed_obsidian.items.ModItems; + +import java.util.concurrent.CompletableFuture; + +public class ModItemTagProvider extends ItemTagsProvider { + public ModItemTagProvider(PackOutput output, CompletableFuture lookupProvider, + CompletableFuture> blockTags, @Nullable ExistingFileHelper existingFileHelper) { + super(output, lookupProvider, blockTags, Processed_obsidian.MODID, existingFileHelper); + } + + @Override + protected void addTags(HolderLookup.Provider provider) { + + this.tag(ItemTags.TRIMMABLE_ARMOR) + .add(ModItems.OBSIDIAN_HELMET.get()) + .add(ModItems.OBSIDIAN_CHESTPLATE.get()) + .add(ModItems.OBSIDIAN_LEGGINGS.get()) + .add(ModItems.OBSIDIAN_BOOTS.get()); + + this.tag(ItemTags.ARMOR_ENCHANTABLE) + .add(ModItems.OBSIDIAN_HELMET.get()) + .add(ModItems.OBSIDIAN_CHESTPLATE.get()) + .add(ModItems.OBSIDIAN_LEGGINGS.get()) + .add(ModItems.OBSIDIAN_BOOTS.get()); + + this.tag(ItemTags.VANISHING_ENCHANTABLE) + .add(ModItems.OBSIDIAN_HELMET.get()) + .add(ModItems.OBSIDIAN_CHESTPLATE.get()) + .add(ModItems.OBSIDIAN_LEGGINGS.get()) + .add(ModItems.OBSIDIAN_BOOTS.get()); + + this.tag(ItemTags.DURABILITY_ENCHANTABLE) + .add(ModItems.OBSIDIAN_HELMET.get()) + .add(ModItems.OBSIDIAN_CHESTPLATE.get()) + .add(ModItems.OBSIDIAN_LEGGINGS.get()) + .add(ModItems.OBSIDIAN_BOOTS.get()); + + this.tag(ItemTags.EQUIPPABLE_ENCHANTABLE) + .add(ModItems.OBSIDIAN_HELMET.get()) + .add(ModItems.OBSIDIAN_CHESTPLATE.get()) + .add(ModItems.OBSIDIAN_LEGGINGS.get()) + .add(ModItems.OBSIDIAN_BOOTS.get()); + + this.tag(ItemTags.ARMOR_ENCHANTABLE) + .add(ModItems.OBSIDIAN_HELMET.get()) + .add(ModItems.OBSIDIAN_CHESTPLATE.get()) + .add(ModItems.OBSIDIAN_LEGGINGS.get()) + .add(ModItems.OBSIDIAN_BOOTS.get()); + + this.tag(ItemTags.CHEST_ARMOR_ENCHANTABLE) + .add(ModItems.OBSIDIAN_CHESTPLATE.get()); + + this.tag(ItemTags.FOOT_ARMOR_ENCHANTABLE) + .add(ModItems.OBSIDIAN_BOOTS.get()); + + this.tag(ItemTags.LEG_ARMOR_ENCHANTABLE) + .add(ModItems.OBSIDIAN_LEGGINGS.get()); + + this.tag(ItemTags.HEAD_ARMOR_ENCHANTABLE) + .add(ModItems.OBSIDIAN_HELMET.get()); + + this.tag(ItemTags.CHEST_ARMOR) + .add(ModItems.OBSIDIAN_CHESTPLATE.get()); + + this.tag(ItemTags.FOOT_ARMOR) + .add(ModItems.OBSIDIAN_BOOTS.get()); + + this.tag(ItemTags.LEG_ARMOR) + .add(ModItems.OBSIDIAN_LEGGINGS.get()); + + this.tag(ItemTags.HEAD_ARMOR) + .add(ModItems.OBSIDIAN_HELMET.get()); + } +} diff --git a/src/main/java/ovh/glitchlabs/processed_obsidian/items/ModArmorMaterials.java b/src/main/java/ovh/glitchlabs/processed_obsidian/items/ModArmorMaterials.java new file mode 100644 index 0000000..80ddbb9 --- /dev/null +++ b/src/main/java/ovh/glitchlabs/processed_obsidian/items/ModArmorMaterials.java @@ -0,0 +1,47 @@ +package ovh.glitchlabs.processed_obsidian.items; + +import net.minecraft.Util; +import net.minecraft.core.Holder; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.world.item.ArmorItem; +import net.minecraft.world.item.ArmorMaterial; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.crafting.Ingredient; +import ovh.glitchlabs.processed_obsidian.Processed_obsidian; + +import java.util.EnumMap; +import java.util.List; +import java.util.function.Supplier; + +public class ModArmorMaterials { + public static final Holder OBSIDIAN_ARMOR_MATERIAL = register("obsidian", + Util.make(new EnumMap<>(ArmorItem.Type.class), attribute -> { + attribute.put(ArmorItem.Type.BOOTS, 5); + attribute.put(ArmorItem.Type.LEGGINGS, 7); + attribute.put(ArmorItem.Type.CHESTPLATE, 9); + attribute.put(ArmorItem.Type.HELMET, 5); + attribute.put(ArmorItem.Type.BODY, 12); + }), 16, 2f, 0.1f, () -> ModItems.OBSIDIAN_ALLOY.get()); + + + private static Holder register(String name, EnumMap typeProtection, + int enchantability, float toughness, float knockbackResistance, + Supplier ingredientItem) { + ResourceLocation location = ResourceLocation.fromNamespaceAndPath(Processed_obsidian.MODID, name); + Holder equipSound = SoundEvents.ARMOR_EQUIP_NETHERITE; + Supplier ingredient = () -> Ingredient.of(ingredientItem.get()); + List layers = List.of(new ArmorMaterial.Layer(location)); + + EnumMap typeMap = new EnumMap<>(ArmorItem.Type.class); + for (ArmorItem.Type type : ArmorItem.Type.values()) { + typeMap.put(type, typeProtection.get(type)); + } + + return Registry.registerForHolder(BuiltInRegistries.ARMOR_MATERIAL, location, + new ArmorMaterial(typeProtection, enchantability, equipSound, ingredient, layers, toughness, knockbackResistance)); + } +} \ No newline at end of file diff --git a/src/main/java/ovh/glitchlabs/processed_obsidian/items/ModItems.java b/src/main/java/ovh/glitchlabs/processed_obsidian/items/ModItems.java index 7268664..4a31d56 100644 --- a/src/main/java/ovh/glitchlabs/processed_obsidian/items/ModItems.java +++ b/src/main/java/ovh/glitchlabs/processed_obsidian/items/ModItems.java @@ -1,5 +1,6 @@ package ovh.glitchlabs.processed_obsidian.items; +import net.minecraft.world.item.ArmorItem; import net.minecraft.world.item.Item; import net.minecraft.world.item.Rarity; import net.neoforged.bus.api.IEventBus; @@ -16,6 +17,32 @@ public class ModItems { .rarity(Rarity.RARE) )); + public static final DeferredItem OBSIDIAN_UPGRADE_SMITHING_TEMPLATE = ITEMS.register("obsidian_upgrade_smithing_template", + () -> new ObsidianUpgradeSmithingTemplateItem(new Item.Properties() + .rarity(Rarity.EPIC) + )); + + public static final DeferredItem OBSIDIAN_ALLOY = ITEMS.register("obsidian_alloy", + () -> new ObsidianUpgradeSmithingTemplateItem(new Item.Properties() + .rarity(Rarity.RARE) + .fireResistant() + )); + + + + public static final DeferredItem OBSIDIAN_HELMET = ITEMS.register("obsidian_helmet", + () -> new ArmorItem(ModArmorMaterials.OBSIDIAN_ARMOR_MATERIAL, ArmorItem.Type.HELMET, + new Item.Properties().durability(ArmorItem.Type.HELMET.getDurability(19)))); + public static final DeferredItem OBSIDIAN_CHESTPLATE = ITEMS.register("obsidian_chestplate", + () -> new ArmorItem(ModArmorMaterials.OBSIDIAN_ARMOR_MATERIAL, ArmorItem.Type.CHESTPLATE, + new Item.Properties().durability(ArmorItem.Type.CHESTPLATE.getDurability(19)))); + public static final DeferredItem OBSIDIAN_LEGGINGS = ITEMS.register("obsidian_leggings", + () -> new ArmorItem(ModArmorMaterials.OBSIDIAN_ARMOR_MATERIAL, ArmorItem.Type.LEGGINGS, + new Item.Properties().durability(ArmorItem.Type.LEGGINGS.getDurability(19)))); + public static final DeferredItem OBSIDIAN_BOOTS = ITEMS.register("obsidian_boots", + () -> new ArmorItem(ModArmorMaterials.OBSIDIAN_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, + new Item.Properties().durability(ArmorItem.Type.BOOTS.getDurability(19)))); + public static void register(IEventBus eventBus) { ITEMS.register(eventBus); } diff --git a/src/main/java/ovh/glitchlabs/processed_obsidian/items/ObsidianUpgradeSmithingTemplateItem.java b/src/main/java/ovh/glitchlabs/processed_obsidian/items/ObsidianUpgradeSmithingTemplateItem.java new file mode 100644 index 0000000..98147c2 --- /dev/null +++ b/src/main/java/ovh/glitchlabs/processed_obsidian/items/ObsidianUpgradeSmithingTemplateItem.java @@ -0,0 +1,27 @@ +package ovh.glitchlabs.processed_obsidian.items; + +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; + +import java.util.List; + +public class ObsidianUpgradeSmithingTemplateItem extends Item { + public ObsidianUpgradeSmithingTemplateItem(Properties properties) { + super(properties); + } + + @Override + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltipComponents, TooltipFlag tooltipFlag) { + super.appendHoverText(stack, context, tooltipComponents, tooltipFlag); + + tooltipComponents.add(Component.translatable("upgrade.processed_obsidian.obsidian_upgrade").withStyle(ChatFormatting.GRAY)); + tooltipComponents.add(Component.empty()); + tooltipComponents.add(Component.translatable("item.minecraft.smithing_template.applies_to").withStyle(ChatFormatting.GRAY)); + tooltipComponents.add(Component.translatable("item.processed_obsidian.smithing_template.Obsidian_upgrade.applies_to").withStyle(ChatFormatting.BLUE)); + tooltipComponents.add(Component.translatable("item.minecraft.smithing_template.ingredients").withStyle(ChatFormatting.GRAY)); + tooltipComponents.add(Component.translatable("item.processed_obsidian.smithing_template.obsidian_upgrade.ingredients").withStyle(ChatFormatting.BLUE)); + } +} diff --git a/src/main/resources/assets/processed_obsidian/lang/en_us.json b/src/main/resources/assets/processed_obsidian/lang/en_us.json index 218197d..2f24a83 100644 --- a/src/main/resources/assets/processed_obsidian/lang/en_us.json +++ b/src/main/resources/assets/processed_obsidian/lang/en_us.json @@ -4,6 +4,17 @@ "block.processed_obsidian.polished_obsidian": "Polished Obsidian Tiles", "block.processed_obsidian.obsidian_bricks": "Obsidian Bricks", "block.processed_obsidian.cracked_obsidian_bricks": "Cracked Obsidian Bricks", + + "upgrade.processed_obsidian.obsidian_upgrade" : "Obsidian Upgrade", + + "item.processed_obsidian.obsidian_alloy" : "Obsidian Alloy", + "item.processed_obsidian.smithing_template.Obsidian_upgrade.applies_to" : "Obsidian Equipment", + "item.processed_obsidian.smithing_template.obsidian_upgrade.ingredients" : "Obsidian Alloy", + "item.processed_obsidian.obsidian_upgrade_smithing_template" : "Smithing Template", + "item.processed_obsidian.obsidian_helmet" : "Obsidian Helmet", + "item.processed_obsidian.obsidian_chestplate" : "Obsidian Chestplate", + "item.processed_obsidian.obsidian_leggings" : "Obsidian Leggings", + "item.processed_obsidian.obsidian_boots" : "Obsidian Boots", "item.processed_obsidian.obsidian_dust": "Obsidian Dust" } diff --git a/src/main/resources/assets/processed_obsidian/textures/item/obsidian_boots.png b/src/main/resources/assets/processed_obsidian/textures/item/obsidian_boots.png new file mode 100644 index 0000000000000000000000000000000000000000..6ee967f4de28db5f1022da08966ecd7803bf9133 GIT binary patch literal 467 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|s0G|+7UUms<^$>MATQ+8HDN$`P0aXDW8K5L{?rM-}93?@1!T%wE;a>CJ zNT3*Jfk$L90|Vb-5N14{zaj->Scz*yNpOBzNqJ&XDnmeGW?qS&pKFMMsh**p(eFLX z+kk4erABzBd3tIwZ~!^13{s4&42(dQ7Z6KB*&ttNFfxP1nSg9VMkcVYqJZqob{4RB z7LW}B2|x_e52Mj6WdMf51a<}%pb7&cV*|zo5K}=qSQkJ{ngV2l029z0Ca}sNOA8{&803`eJ>Nks1w{oh0OfOFt#}JL+-V=^O2Mjov99A3t`+uBuj-T4jB{Cw{UY+na zID9#C!|}(vdG$VQY`A)i=_+p#vx(!k%ky%AnLKhFShy7}Bt;HQln&YZrkAyY%l*Pd OkPV)$elF{r5}E)S+h|Jw literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/processed_obsidian/textures/item/obsidian_chestplate.png b/src/main/resources/assets/processed_obsidian/textures/item/obsidian_chestplate.png new file mode 100644 index 0000000000000000000000000000000000000000..98042b0604adc7b48e0b08dfaf7a3ca927d483f9 GIT binary patch literal 490 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|s0G|+7UUms<^$>MATPaa(F#%Np9vL=fZlL6@mMg!26h}#rU+{kjV7S-3 zHxekuS>O>_%)r2R7=#&*=dVZs8CK#NQ4*Y=R#Ki=l*$m0n3-3i=jR%tV5(=RXY_jy z^ERNGZK)BSX`Y^13>-iXD}xjxD+42t2!0mM|04%P(_lcoUKAixAPhY74Q$kGDH zg6c9fFaXKEy!y@J)UBKCjSdKQiG8{OpQ=ymgsOY(=68oy6aD~+zcfY<_QCY>nU6@epAg{oe mqVe;P@-6WnUtLNcdVl9FNM(8IkZ<%5WU;5KpUXO@geCyi+;l$x literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/processed_obsidian/textures/item/obsidian_helmet.png b/src/main/resources/assets/processed_obsidian/textures/item/obsidian_helmet.png new file mode 100644 index 0000000000000000000000000000000000000000..fabf9c0c019d5a4f93a64becf8f38f6d8948c49a GIT binary patch literal 466 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|s0G|+7UUmsF0aYncZ2=w`HfC;hIa_P>5TGOvccwj%;wTC73;quQ4ELJ% zMgqk+3p^r=85sBugD~Uq{1qu6!%AEuN`mv#O3D+9QW*jgGxJLH{9Hp6O!W-)jDGK7 z-Ud{&Ej7Y3&C^qhfdj~4WsqWIWncudynt95$_DvDgOM35&IDu|GBSaE6$NBxwzGi6 zvw&<6NC0Axei)5rDFZMZCa^QG096!MXrq(i9*Y1ek#4Fo9JDSy}*D zP+f)w1|Zp&SHD@Dx|LG}WO{nKIEH8hPd#JEcff$dIq;3c&i}pAF`+IeFa2XYD81p% zFRo?tLYe3A)*loIpD=+#qLi6;j(m+yLY(Xc`vtod*KRBEJ$Nhs#2&^cJ6NY*-|~Db O$O2DSKbLh*2~7a)b!hPb literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/processed_obsidian/textures/item/obsidian_leggings.png b/src/main/resources/assets/processed_obsidian/textures/item/obsidian_leggings.png new file mode 100644 index 0000000000000000000000000000000000000000..32cbcd2f129aef5b6a3a18e7ec353f1b73f6d8f8 GIT binary patch literal 472 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|s0G|+7UUmsKW^Q#kTWj?YDN$_!9vLwKRiI>kz+O)v#ZeOE7yKUr816Oi zjRcBu7I;J!GcfQS24TkI`72UDhLyNRlmzFem6RtIr7{F0X6BXX`MHKDnCcno8U5bF zybY*kTWW-7ny0500|$`9${@wa%D@O@c>%FBlnwHQ1|u_AoC(M_WMl&SDhkNXY-a(B zX93wDkO0IW{V*EMQU+i+OkihV0je-CGB#jb05KJ$gLMJKq$xl)2rvQ7VFIfRva|rQ zpt=kV3_!9kuYR*Qbt|U|$n^JgaSYK2EpR UZC7OhD0Ub;UHx3vIVCg!0HQN$M*si- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/processed_obsidian/textures/item/obsidian_upgrade_smithing_template.png b/src/main/resources/assets/processed_obsidian/textures/item/obsidian_upgrade_smithing_template.png new file mode 100644 index 0000000000000000000000000000000000000000..ccf6a145cc283c7081028cbaf507cd34fe7dcc60 GIT binary patch literal 361 zcmV-v0ha!WP)b;@5Je|JiIXT&qNI#M2R%L4;RJM?0ErV&aRP2bPfG)`02>UlKyUGfU9BYwEPc=N z=g-65^|L*AMS%aW*6E)7{|o>OHX1MX@%~vW^~hOu1pvI{HK8~ahvHiOb(*i7&n*DZ zASe-7rAsTzBg|Nj^yoCE*>00v1!K~w_(#@6N`C=J&F00000NkvXX Hu0mjf5vi21 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/processed_obsidian/textures/models/armor/obsidian_layer_1.png b/src/main/resources/assets/processed_obsidian/textures/models/armor/obsidian_layer_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ac3e42a975b543a9f51762346ff05affc8633c8d GIT binary patch literal 1765 zcmVz@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007 zbV*G`2kHd@2pA6+;I1J600t>ZL_t(&-tC!vZ`;Tb#(%TBB=u&=lI%E#OD@+UD6Y7o z*MEwB|4+~l(4s(ahahnrGu8`5a$n~DprqJt5*s)tv9BFK09U)@lEZnPnRzJOV1+wY zP-1KmV-PGNLefZx3jm`;<$;>H&7wa&`WpxR8O{`lfWhIUz{vrC@PO@;4iK!Q=y|>R zg++CWAb=qeNE%TT!2WI>01$M^MRkg^1%>G$s>IlUDEu!tU}x53SYr{fn07djoZd@Q^tj*D6SojA<=^#Ub+ zRR_2x)?BRLl9H$O4FGvoU`$5qOQLRQRft-Xy9ps|2&}PUsC7Z^hD=5$H0>JS)EF_O z=qXpH#8`tQPM5#1tWUS_2y8q|2G8zC7En!u*wFfhjX$IH6|1V`eEIJ^45C&!@Z^Wb zf5%9Hm8}2#ycP#3c{CxIL-fhmP{F23{B&OJv2x1U2+SsB5l(65}hvt58Kqk{Y z2W$yUK2#9`CU>)tV)!I(1*-tLn*q><^F8jZjJ9hG!~T@2UeKm9xwl#1E-W`k>Qjl6 zF~k0p+4wQ9&tKp}gHPpG=K%R~8(GcFvi()(;CdagbJF!%AvZ@?@aj|9o&P>FT+tSH*S+ripbK(0!-~a+=D+s6 zzV@bU)qDv+-kIz5Ndv$2^|@@yh&ed{Hg#P7(SPCf}{zQr9bDtnqQp zbaH|i*;R${aQHn*L)Qstoc6 zD~|Zh5Kt14mdqBY1{9@So)R@+Q%hZMh{-b_Jz-I`fMSfpnT$5nY{Hs4)fjOk^?(pk zi!(WmuL!yz#c<_etk``+6?B0I`W)}a>5}GfYZAPy=zL7oxwJ;MlCS|n;pX^MA=?;m zrjKALZ1)|Z^_xyNP$iNuSW>D`6eA96dLYtq$JUy-=BCE$PSW76nsRcm#ocnp!k1X} zpnEghmrDRt&N+nJsWOXYH4uk<9h+LAUL(AYzCbi0TQc z-3l`CPSV_s9N=WklcS%=vK~rDD&Nfh!e}t-!c}@4PrsvA9PC5>+xcG^^r!UmG5zeA z;9C+2M9A#`5rYzOrbioF+SsscN|Hv5I5a8FW{7k$yE6r<5i1$a;63 zAJF(UXhKn}WJGOAT4N~4+z6j4NQp$lc<>#*t?{u&c6dzXKBqhDXu^_yHr?upiN=>$ z8SD|XYmqwzs!#3T;p}jKV>=z;b3;G`t44ZQ$?<7{q0{+PBZ48(V$A?61tD!nT4QCz zWOTw}_2z>&Xl0-Py{!X$+z?Yu(#GySCtc>4?j8z~HW(=|6t^m3?hFEhY|hc-2}b%L zhCwlBkUzpmSO1TC$IK_+B3PUpFd3aN86JHUqfsl_v2^2?#8eZt5+x=j>UDxuqHO0S zY9(Gv`BHj;2v#qbj-8w}CB=B9%rw@~hVv`(_J>N|hi1P5*C3Im>K|Kf00000NkvXX Hu0mjf&Hp^e literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/processed_obsidian/textures/models/armor/obsidian_layer_2.png b/src/main/resources/assets/processed_obsidian/textures/models/armor/obsidian_layer_2.png new file mode 100644 index 0000000000000000000000000000000000000000..72bbfeab5f5ac9a7ef018fd8e1d07cb3bdd2d345 GIT binary patch literal 370 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP(m)iC&U#<^Ri2@F>{Lv zs0#Bba~bp9zYIffk$L9 z0|U1Z2s2)~TlWVjxWv=NF~s8Z+X;qz%?3QKJDU!A?snQ>Gs9Lz4c9tgmH;M;}))Sxw2O;FzG(+uCKGV`*}V0 z|3i(3Yd@#HO|{?fbJfOxPO0a$=C30>KvJ5+NbexyaKwH!PC{xWt~$(69AgY BcF+I- literal 0 HcmV?d00001 diff --git a/src/main/resources/data/processed_obsidian/recipe/obsidian_alloy.json b/src/main/resources/data/processed_obsidian/recipe/obsidian_alloy.json new file mode 100644 index 0000000..e5fb0ec --- /dev/null +++ b/src/main/resources/data/processed_obsidian/recipe/obsidian_alloy.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "processed_obsidian", + "category": "building", + "pattern": [ + "OOO", + "ONO", + "OOO" + ], + "key": { + "O": { + "item": "processed_obsidian:obsidian_dust" + }, + "N": { + "item": "minecraft:netherite_ingot" + } + }, + "result": { + "id": "processed_obsidian:obsidian_alloy", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/processed_obsidian/recipe/obsidian_boots.json b/src/main/resources/data/processed_obsidian/recipe/obsidian_boots.json new file mode 100644 index 0000000..f9ef2c5 --- /dev/null +++ b/src/main/resources/data/processed_obsidian/recipe/obsidian_boots.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:smithing_transform", + "group": "processed_obsidian", + "addition": { + "item": "processed_obsidian:obsidian_alloy" + }, + "base": { + "item": "minecraft:netherite_boots" + }, + "result": { + "count": 1, + "id": "processed_obsidian:obsidian_boots" + }, + "template": { + "item": "processed_obsidian:obsidian_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/src/main/resources/data/processed_obsidian/recipe/obsidian_chestplate.json b/src/main/resources/data/processed_obsidian/recipe/obsidian_chestplate.json new file mode 100644 index 0000000..2ada020 --- /dev/null +++ b/src/main/resources/data/processed_obsidian/recipe/obsidian_chestplate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:smithing_transform", + "group": "processed_obsidian", + "addition": { + "item": "processed_obsidian:obsidian_alloy" + }, + "base": { + "item": "minecraft:netherite_chestplate" + }, + "result": { + "count": 1, + "id": "processed_obsidian:obsidian_chestplate" + }, + "template": { + "item": "processed_obsidian:obsidian_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/src/main/resources/data/processed_obsidian/recipe/obsidian_helmet.json b/src/main/resources/data/processed_obsidian/recipe/obsidian_helmet.json new file mode 100644 index 0000000..e53e534 --- /dev/null +++ b/src/main/resources/data/processed_obsidian/recipe/obsidian_helmet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:smithing_transform", + "group": "processed_obsidian", + "addition": { + "item": "processed_obsidian:obsidian_alloy" + }, + "base": { + "item": "minecraft:netherite_helmet" + }, + "result": { + "count": 1, + "id": "processed_obsidian:obsidian_helmet" + }, + "template": { + "item": "processed_obsidian:obsidian_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/src/main/resources/data/processed_obsidian/recipe/obsidian_leggings.json b/src/main/resources/data/processed_obsidian/recipe/obsidian_leggings.json new file mode 100644 index 0000000..f5d0735 --- /dev/null +++ b/src/main/resources/data/processed_obsidian/recipe/obsidian_leggings.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:smithing_transform", + "group": "processed_obsidian", + "addition": { + "item": "processed_obsidian:obsidian_alloy" + }, + "base": { + "item": "minecraft:netherite_leggings" + }, + "result": { + "count": 1, + "id": "processed_obsidian:obsidian_leggings" + }, + "template": { + "item": "processed_obsidian:obsidian_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/src/main/resources/data/processed_obsidian/recipe/obsidian_upgrade_smithing_template.json b/src/main/resources/data/processed_obsidian/recipe/obsidian_upgrade_smithing_template.json new file mode 100644 index 0000000..340996b --- /dev/null +++ b/src/main/resources/data/processed_obsidian/recipe/obsidian_upgrade_smithing_template.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "boat", + "key": { + "#": { + "item": "processed_obsidian:obsidian_dust" + }, + "A": { + "item": "processed_obsidian:obsidian_alloy" + }, + "U": { + "item": "minecraft:netherite_upgrade_smithing_template" + } + }, + "pattern": [ + "#A#", + "AUA", + "#A#" + ], + "result": { + "count": 1, + "id": "processed_obsidian:obsidian_upgrade_smithing_template" + } +} \ No newline at end of file