v2.1.0
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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<Block> 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<Block> 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<Block> 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<Block> 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<Block> 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 <T extends Block> DeferredBlock<T> registerBlock(String name, Supplier<T> block) {
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
@@ -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<HolderLookup.Provider> lookupProvider,
|
||||
CompletableFuture<TagLookup<Block>> 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());
|
||||
}
|
||||
}
|
||||
@@ -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<ArmorMaterial> 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<ArmorMaterial> register(String name, EnumMap<ArmorItem.Type, Integer> typeProtection,
|
||||
int enchantability, float toughness, float knockbackResistance,
|
||||
Supplier<Item> ingredientItem) {
|
||||
ResourceLocation location = ResourceLocation.fromNamespaceAndPath(Processed_obsidian.MODID, name);
|
||||
Holder<SoundEvent> equipSound = SoundEvents.ARMOR_EQUIP_NETHERITE;
|
||||
Supplier<Ingredient> ingredient = () -> Ingredient.of(ingredientItem.get());
|
||||
List<ArmorMaterial.Layer> layers = List.of(new ArmorMaterial.Layer(location));
|
||||
|
||||
EnumMap<ArmorItem.Type, Integer> 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));
|
||||
}
|
||||
}
|
||||
@@ -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<ObsidianUpgradeSmithingTemplateItem> OBSIDIAN_UPGRADE_SMITHING_TEMPLATE = ITEMS.register("obsidian_upgrade_smithing_template",
|
||||
() -> new ObsidianUpgradeSmithingTemplateItem(new Item.Properties()
|
||||
.rarity(Rarity.EPIC)
|
||||
));
|
||||
|
||||
public static final DeferredItem<ObsidianUpgradeSmithingTemplateItem> OBSIDIAN_ALLOY = ITEMS.register("obsidian_alloy",
|
||||
() -> new ObsidianUpgradeSmithingTemplateItem(new Item.Properties()
|
||||
.rarity(Rarity.RARE)
|
||||
.fireResistant()
|
||||
));
|
||||
|
||||
|
||||
|
||||
public static final DeferredItem<ArmorItem> 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<ArmorItem> 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<ArmorItem> 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<ArmorItem> 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);
|
||||
}
|
||||
|
||||
@@ -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<Component> 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));
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
}
|
||||
|
||||
|
After Width: | Height: | Size: 467 B |
|
After Width: | Height: | Size: 490 B |
|
After Width: | Height: | Size: 466 B |
|
After Width: | Height: | Size: 472 B |
|
After Width: | Height: | Size: 361 B |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 370 B |
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||