Compare commits

...

3 commits

Author SHA1 Message Date
Ell
c1797eb14b start of depth tools 2023-02-17 14:21:39 +01:00
Ell
08643e79b8 fixed skyseeker pickaxe not picking up items from far enough away 2023-02-17 11:12:50 +01:00
Ell
81ff2a4140 added ingot of the depths 2023-02-17 11:10:06 +01:00
57 changed files with 519 additions and 82 deletions

View file

@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "naturesaura:block/depth_ingot_block"
}
}
}

View file

@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "naturesaura:block/sky_ingot_block"
}
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "naturesaura:block/depth_ingot_block"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "naturesaura:block/sky_ingot_block"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/handheld",
"textures": {
"layer0": "naturesaura:item/depth_axe"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "naturesaura:item/depth_chest"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "naturesaura:item/depth_helmet"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/handheld",
"textures": {
"layer0": "naturesaura:item/depth_hoe"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "naturesaura:item/depth_ingot"
}
}

View file

@ -0,0 +1,3 @@
{
"parent": "naturesaura:block/depth_ingot_block"
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "naturesaura:item/depth_pants"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/handheld",
"textures": {
"layer0": "naturesaura:item/depth_pickaxe"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "naturesaura:item/depth_shoes"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/handheld",
"textures": {
"layer0": "naturesaura:item/depth_shovel"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/handheld",
"textures": {
"layer0": "naturesaura:item/depth_sword"
}
}

View file

@ -0,0 +1,3 @@
{
"parent": "naturesaura:block/sky_ingot_block"
}

View file

@ -1,15 +1,15 @@
{
"values": [
"naturesaura:ancient_bark",
"naturesaura:ancient_log",
"naturesaura:ancient_planks",
"naturesaura:ancient_slab",
"naturesaura:ancient_stairs",
"naturesaura:auto_crafter",
"naturesaura:flower_generator",
"naturesaura:nether_wart_mushroom",
"naturesaura:oak_generator",
"naturesaura:auto_crafter",
"naturesaura:ancient_bark",
"naturesaura:ancient_planks",
"naturesaura:ancient_stairs",
"naturesaura:flower_generator",
"naturesaura:wood_stand",
"naturesaura:offering_table"
"naturesaura:offering_table",
"naturesaura:wood_stand"
]
}

View file

@ -1,47 +1,49 @@
{
"values": [
"naturesaura:gold_brick",
"naturesaura:spring",
"naturesaura:infused_stairs",
"naturesaura:potion_generator",
"naturesaura:infused_brick_stairs",
"naturesaura:aura_detector",
"naturesaura:spawn_lamp",
"naturesaura:animal_container",
"naturesaura:powder_placer",
"naturesaura:weather_changer",
"naturesaura:grated_chute",
"naturesaura:crushing_catalyst",
"naturesaura:ender_crate",
"naturesaura:firework_generator",
"naturesaura:tainted_gold_block",
"naturesaura:placer",
"naturesaura:blast_furnace_booster",
"naturesaura:lower_limiter",
"naturesaura:animal_generator",
"naturesaura:nether_grass",
"naturesaura:infused_iron_block",
"naturesaura:snow_creator",
"naturesaura:infused_stone",
"naturesaura:field_creator",
"naturesaura:nature_altar",
"naturesaura:gold_nether_brick",
"naturesaura:aura_timer",
"naturesaura:chunk_loader",
"naturesaura:animal_spawner",
"naturesaura:aura_detector",
"naturesaura:aura_timer",
"naturesaura:blast_furnace_booster",
"naturesaura:chorus_generator",
"naturesaura:infused_brick_slab",
"naturesaura:projectile_generator",
"naturesaura:furnace_heater",
"naturesaura:moss_generator",
"naturesaura:rf_converter",
"naturesaura:item_distributor",
"naturesaura:time_changer",
"naturesaura:chunk_loader",
"naturesaura:conversion_catalyst",
"naturesaura:hopper_upgrade",
"naturesaura:pickup_stopper",
"naturesaura:infused_brick",
"naturesaura:crushing_catalyst",
"naturesaura:depth_ingot_block",
"naturesaura:ender_crate",
"naturesaura:field_creator",
"naturesaura:firework_generator",
"naturesaura:furnace_heater",
"naturesaura:generator_limit_remover",
"naturesaura:infused_slab"
"naturesaura:gold_brick",
"naturesaura:gold_nether_brick",
"naturesaura:grated_chute",
"naturesaura:hopper_upgrade",
"naturesaura:infused_brick",
"naturesaura:infused_brick_slab",
"naturesaura:infused_brick_stairs",
"naturesaura:infused_iron_block",
"naturesaura:infused_slab",
"naturesaura:infused_stairs",
"naturesaura:infused_stone",
"naturesaura:item_distributor",
"naturesaura:lower_limiter",
"naturesaura:moss_generator",
"naturesaura:nature_altar",
"naturesaura:nether_grass",
"naturesaura:pickup_stopper",
"naturesaura:placer",
"naturesaura:potion_generator",
"naturesaura:powder_placer",
"naturesaura:projectile_generator",
"naturesaura:rf_converter",
"naturesaura:sky_ingot_block",
"naturesaura:snow_creator",
"naturesaura:spawn_lamp",
"naturesaura:spring",
"naturesaura:tainted_gold_block",
"naturesaura:time_changer",
"naturesaura:weather_changer"
]
}

View file

@ -1,6 +1,7 @@
{
"values": [
"naturesaura:infused_iron_pickaxe",
"naturesaura:sky_pickaxe"
"naturesaura:sky_pickaxe",
"naturesaura:depth_pickaxe"
]
}

View file

@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "naturesaura:depth_ingot_block"
}
],
"rolls": 1.0
}
]
}

View file

@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "naturesaura:sky_ingot_block"
}
],
"rolls": 1.0
}
]
}

View file

@ -10,6 +10,8 @@ import de.ellpeck.naturesaura.blocks.tiles.BlockEntityImpl;
import de.ellpeck.naturesaura.chunk.AuraChunk;
import de.ellpeck.naturesaura.compat.Compat;
import de.ellpeck.naturesaura.misc.LevelData;
import de.ellpeck.naturesaura.packet.PacketHandler;
import de.ellpeck.naturesaura.packet.PacketParticles;
import net.minecraft.client.Minecraft;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@ -29,6 +31,7 @@ import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.world.level.ChunkPos;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelAccessor;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.Property;
@ -333,4 +336,27 @@ public final class Helper {
}
return pos;
}
public static void mineRecursively(Level level, BlockPos pos, BlockPos start, boolean drop, int horizontalRange, int verticalRange, Predicate<BlockState> filter) {
if (Math.abs(pos.getX() - start.getX()) >= horizontalRange || Math.abs(pos.getZ() - start.getZ()) >= horizontalRange || Math.abs(pos.getY() - start.getY()) >= verticalRange)
return;
for (var x = -1; x <= 1; x++) {
for (var y = -1; y <= 1; y++) {
for (var z = -1; z <= 1; z++) {
var offset = pos.offset(x, y, z);
var state = level.getBlockState(offset);
if (filter.test(state)) {
if (drop) {
level.destroyBlock(offset, true);
} else {
// in this case we don't want the block breaking particles, so we can't use destroyBlock
level.setBlockAndUpdate(offset, Blocks.AIR.defaultBlockState());
PacketHandler.sendToAllAround(level, pos, 32, new PacketParticles(offset.getX(), offset.getY(), offset.getZ(), PacketParticles.Type.TR_DISAPPEAR));
}
Helper.mineRecursively(level, offset, start, drop, horizontalRange, verticalRange, filter);
}
}
}
}
}
}

View file

@ -1,5 +1,6 @@
package de.ellpeck.naturesaura.blocks.tiles;
import de.ellpeck.naturesaura.Helper;
import de.ellpeck.naturesaura.blocks.multi.Multiblocks;
import de.ellpeck.naturesaura.packet.PacketHandler;
import de.ellpeck.naturesaura.packet.PacketParticleStream;
@ -122,30 +123,7 @@ public class BlockEntityWoodStand extends BlockEntityImpl implements ITickableBl
}
public static void recurseTreeDestruction(Level level, BlockPos pos, BlockPos start, boolean includeLeaves, boolean drop) {
if (Math.abs(pos.getX() - start.getX()) >= 6
|| Math.abs(pos.getZ() - start.getZ()) >= 6
|| Math.abs(pos.getY() - start.getY()) >= 32) {
return;
}
for (var x = -1; x <= 1; x++) {
for (var y = -1; y <= 1; y++) {
for (var z = -1; z <= 1; z++) {
var offset = pos.offset(x, y, z);
var state = level.getBlockState(offset);
if (state.is(BlockTags.LOGS) || includeLeaves && state.getBlock() instanceof LeavesBlock) {
if (drop) {
level.destroyBlock(offset, true);
} else {
// in this case we don't want the particles, so we can't use destroyBlock
level.setBlockAndUpdate(offset, Blocks.AIR.defaultBlockState());
PacketHandler.sendToAllAround(level, pos, 32, new PacketParticles(offset.getX(), offset.getY(), offset.getZ(), PacketParticles.Type.TR_DISAPPEAR));
}
BlockEntityWoodStand.recurseTreeDestruction(level, offset, start, includeLeaves, drop);
}
}
}
}
Helper.mineRecursively(level, pos, start, drop, 6, 32, s -> s.is(BlockTags.LOGS) || includeLeaves && s.getBlock() instanceof LeavesBlock);
}
private boolean isRitualOkay() {

View file

@ -2,6 +2,7 @@ package de.ellpeck.naturesaura.data;
import de.ellpeck.naturesaura.NaturesAura;
import de.ellpeck.naturesaura.blocks.ModBlocks;
import de.ellpeck.naturesaura.reg.IModItem;
import de.ellpeck.naturesaura.reg.ModRegistry;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.tags.BlockTagsProvider;
@ -14,6 +15,8 @@ import net.minecraft.world.level.material.Material;
import net.minecraftforge.common.data.ExistingFileHelper;
import org.jetbrains.annotations.Nullable;
import java.util.Comparator;
public class BlockTagProvider extends BlockTagsProvider {
public static final TagKey<Block> ALTAR_WOOD = BlockTags.create(new ResourceLocation(NaturesAura.MOD_ID, "altar_wood"));
@ -40,15 +43,14 @@ public class BlockTagProvider extends BlockTagsProvider {
this.tag(BlockTagProvider.ALTAR_GOLD_BRICK).add(ModBlocks.GOLD_BRICK, ModBlocks.GOLD_NETHER_BRICK);
this.tag(BlockTagProvider.ALTAR_FANCY_BRICK).add(Blocks.RED_NETHER_BRICKS, Blocks.CHISELED_STONE_BRICKS);
for (var item : ModRegistry.ALL_ITEMS) {
if (!(item instanceof Block b))
continue;
// sort these so that they don't change the json every time we run data (because it's a set)
ModRegistry.ALL_ITEMS.stream().sorted(Comparator.comparing(IModItem::getBaseName)).filter(i -> i instanceof Block).map(i -> (Block) i).forEach(b -> {
var material = b.defaultBlockState().getMaterial();
if (material == Material.STONE || material == Material.METAL) {
this.tag(BlockTags.MINEABLE_WITH_PICKAXE).add(b);
} else if (material == Material.WOOD) {
this.tag(BlockTags.MINEABLE_WITH_AXE).add(b);
}
}
});
}
}

View file

@ -29,14 +29,14 @@ public class ItemTagProvider extends ItemTagsProvider {
this.copy(BlockTags.SLABS, ItemTags.SLABS);
this.tag(Tags.Items.RODS_WOODEN).add(ModItems.ANCIENT_STICK);
this.tag(ItemTags.CLUSTER_MAX_HARVESTABLES).add(ModItems.INFUSED_IRON_PICKAXE, ModItems.SKY_PICKAXE);
this.tag(ItemTags.CLUSTER_MAX_HARVESTABLES).add(ModItems.INFUSED_IRON_PICKAXE, ModItems.SKY_PICKAXE, ModItems.DEPTH_PICKAXE);
Compat.addItemTags(this);
}
@Override
public TagAppender<Item> tag(TagKey<Item> p_126549_) {
public TagAppender<Item> tag(TagKey<Item> tag) {
// super is protected, but CuriosCompat needs this
return super.tag(p_126549_);
return super.tag(tag);
}
}

View file

@ -65,4 +65,14 @@ public final class ModItems {
public static Item PET_REVIVER;
public static Item NETHERITE_FINDER;
public static Item VACUUM_BOTTLE;
public static Item DEPTH_INGOT;
public static Item DEPTH_PICKAXE;
public static Item DEPTH_AXE;
public static Item DEPTH_SHOVEL;
public static Item DEPTH_HOE;
public static Item DEPTH_SWORD;
public static Item DEPTH_HELMET;
public static Item DEPTH_CHEST;
public static Item DEPTH_PANTS;
public static Item DEPTH_SHOES;
}

View file

@ -10,6 +10,7 @@ import de.ellpeck.naturesaura.misc.LevelData;
import de.ellpeck.naturesaura.reg.ICustomItemModel;
import de.ellpeck.naturesaura.reg.IModItem;
import de.ellpeck.naturesaura.reg.ModRegistry;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
@ -23,7 +24,9 @@ import net.minecraft.world.item.Tier;
import net.minecraft.world.item.context.UseOnContext;
import net.minecraft.world.level.Level;
import net.minecraft.world.phys.AABB;
import net.minecraftforge.common.Tags;
import net.minecraftforge.common.capabilities.ICapabilityProvider;
import net.minecraftforge.registries.ForgeRegistries;
import javax.annotation.Nullable;
@ -73,7 +76,7 @@ public class ItemPickaxe extends PickaxeItem implements IModItem, ICustomItemMod
return;
if (!isSelected || levelIn.isClientSide)
return;
var bounds = new AABB(entityIn.blockPosition()).inflate(3.5F);
var bounds = new AABB(entityIn.blockPosition()).inflate(4);
for (var item : levelIn.getEntitiesOfClass(ItemEntity.class, bounds)) {
// only pick up freshly dropped items
if (item.tickCount >= 5 || !item.isAlive())
@ -84,6 +87,15 @@ public class ItemPickaxe extends PickaxeItem implements IModItem, ICustomItemMod
}
}
@Override
public boolean onBlockStartBreak(ItemStack itemstack, BlockPos pos, Player player) {
if (itemstack.getItem() == ModItems.DEPTH_PICKAXE && !player.isShiftKeyDown() && player.level.getBlockState(pos).is(Tags.Blocks.ORES)) {
Helper.mineRecursively(player.level, pos, pos, true, 5, 5, s -> s.is(Tags.Blocks.ORES));
return true;
}
return false;
}
@Nullable
@Override
public ICapabilityProvider initCapabilities(ItemStack stack, @Nullable CompoundTag nbt) {

View file

@ -15,8 +15,9 @@ import java.util.function.Supplier;
public enum ModArmorMaterial implements ArmorMaterial {
INFUSED(NaturesAura.MOD_ID + ":infused_iron", 19, new int[]{2, 5, 6, 2}, 16, SoundEvents.ARMOR_EQUIP_GENERIC, 0, () -> Ingredient.of(ModItems.INFUSED_IRON)),
SKY(NaturesAura.MOD_ID + ":sky", 33, new int[]{3, 6, 8, 3}, 12, SoundEvents.ARMOR_EQUIP_GENERIC, 2, () -> Ingredient.of(ModItems.SKY_INGOT));
INFUSED(NaturesAura.MOD_ID + ":infused_iron", 19, new int[]{2, 5, 6, 2}, 16, SoundEvents.ARMOR_EQUIP_IRON, 0, () -> Ingredient.of(ModItems.INFUSED_IRON)),
SKY(NaturesAura.MOD_ID + ":sky", 33, new int[]{3, 6, 8, 3}, 12, SoundEvents.ARMOR_EQUIP_DIAMOND, 2, () -> Ingredient.of(ModItems.SKY_INGOT)),
DEPTH(NaturesAura.MOD_ID + ":depth", 37, new int[]{3, 6, 8, 3}, 18, SoundEvents.ARMOR_EQUIP_NETHERITE, 3, () -> Ingredient.of(ModItems.DEPTH_INGOT));
private static final int[] MAX_DAMAGE_ARRAY = {13, 15, 16, 11};
private final String name;

View file

@ -8,8 +8,10 @@ import net.minecraftforge.common.util.Lazy;
import java.util.function.Supplier;
public enum ModItemTier implements Tier {
INFUSED(2, 250, 6, 2, 16, () -> Ingredient.of(ModItems.INFUSED_IRON)),
SKY(3, 1500, 8, 3, 12, () -> Ingredient.of(ModItems.SKY_INGOT));
SKY(3, 1500, 8, 3, 12, () -> Ingredient.of(ModItems.SKY_INGOT)),
DEPTH(4, 2500, 10, 5, 18, () -> Ingredient.of(ModItems.DEPTH_INGOT));
private final int harvestLevel;
private final int maxUses;

View file

@ -134,7 +134,9 @@ public final class ModRegistry {
new BlockWeatherChanger(),
new BlockRFConverter(),
new BlockChunkLoader(),
new BlockLowerLimiter()
new BlockLowerLimiter(),
new BlockImpl("sky_ingot_block", Block.Properties.of(Material.METAL).sound(SoundType.METAL).strength(4F)),
new BlockImpl("depth_ingot_block", Block.Properties.of(Material.METAL).sound(SoundType.METAL).strength(6F))
);
Helper.populateObjectHolders(ModBlocks.class, event.getForgeRegistry());
});
@ -209,7 +211,17 @@ public final class ModRegistry {
new ItemBreakPrevention(),
new ItemPetReviver(),
new ItemNetheriteFinder(),
new ItemImpl("vacuum_bottle")
new ItemImpl("vacuum_bottle"),
new ItemImpl("depth_ingot"),
new ItemPickaxe("depth_pickaxe", ModItemTier.DEPTH, 1, -2.8F),
new ItemAxe("depth_axe", ModItemTier.DEPTH, 5, -3),
new ItemShovel("depth_shovel", ModItemTier.DEPTH, 1.5F, -3),
new ItemHoe("depth_hoe", ModItemTier.DEPTH, -1),
new ItemSword("depth_sword", ModItemTier.DEPTH, 3, -2.4F),
new ItemArmor("depth_helmet", ModArmorMaterial.DEPTH, EquipmentSlot.HEAD),
new ItemArmor("depth_chest", ModArmorMaterial.DEPTH, EquipmentSlot.CHEST),
new ItemArmor("depth_pants", ModArmorMaterial.DEPTH, EquipmentSlot.LEGS),
new ItemArmor("depth_shoes", ModArmorMaterial.DEPTH, EquipmentSlot.FEET)
);
Helper.populateObjectHolders(ModItems.class, event.getForgeRegistry());
});

View file

@ -79,6 +79,8 @@
"block.naturesaura.spring": "Everlasting Spring",
"block.naturesaura.weather_changer": "Cloudshifter",
"block.naturesaura.lower_limiter": "Aura Imbalance Ward",
"block.naturesaura.sky_ingot_block": "Block of the Skies",
"block.naturesaura.depth_ingot_block": "Block of the Depths",
"item.naturesaura.eye": "Environmental Eye",
"item.naturesaura.eye_improved": "Environmental Ocular",
"item.naturesaura.gold_fiber": "Brilliant Fiber",
@ -103,6 +105,7 @@
"item.naturesaura.farming_stencil": "Farming Stencil",
"item.naturesaura.bottle_two_the_rebottling": "Bottle and Cork",
"item.naturesaura.sky_ingot": "Ingot of the Skies",
"item.naturesaura.depth_ingot": "Ingot of the Depths",
"item.naturesaura.sky_pickaxe": "Skyseeker's Pickaxe",
"item.naturesaura.sky_axe": "Skyseeker's Handaxe",
"item.naturesaura.sky_shovel": "Skyseeker's Shovel",
@ -148,6 +151,15 @@
"item.naturesaura.break_prevention": "Eir's Token",
"item.naturesaura.pet_reviver": "Token of Undying Friendship",
"item.naturesaura.netherite_finder": "Staff of Ancient Knowledge",
"item.naturesaura.depth_pickaxe": "Soulstrider's Pickaxe",
"item.naturesaura.depth_axe": "Soulstrider's Handaxe",
"item.naturesaura.depth_shovel": "Soulstrider's Shovel",
"item.naturesaura.depth_sword": "Soulstrider's Blade",
"item.naturesaura.depth_hoe": "Soulstrider's Hoe",
"item.naturesaura.depth_helmet": "Soulstrider's Headwear",
"item.naturesaura.depth_chest": "Soulstrider's Chestplate",
"item.naturesaura.depth_pants": "Soulstrider's Leggings",
"item.naturesaura.depth_shoes": "Soulstrider's Shoes",
"container.naturesaura:tree_ritual.name": "Ritual of the Forest",
"container.naturesaura:altar.name": "Natural Altar Infusion",
"container.naturesaura:offering.name": "Offering to the Gods",

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 550 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 573 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"AA",
"AS",
" S"
],
"key": {
"A": {
"item": "naturesaura:depth_ingot"
},
"S": {
"item": "naturesaura:ancient_stick"
}
},
"result": {
"item": "naturesaura:depth_axe"
}
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"ASA",
"AAA",
"AAA"
],
"key": {
"A": {
"item": "naturesaura:depth_ingot"
},
"S": {
"item": "naturesaura:ancient_stick"
}
},
"result": {
"item": "naturesaura:depth_chest"
}
}

View file

@ -0,0 +1,18 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"AAA",
"ASA"
],
"key": {
"A": {
"item": "naturesaura:depth_ingot"
},
"S": {
"item": "naturesaura:ancient_stick"
}
},
"result": {
"item": "naturesaura:depth_helmet"
}
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"AA",
" S",
" S"
],
"key": {
"A": {
"item": "naturesaura:depth_ingot"
},
"S": {
"item": "naturesaura:ancient_stick"
}
},
"result": {
"item": "naturesaura:depth_hoe"
}
}

View file

@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"I"
],
"key": {
"I": {
"item": "naturesaura:depth_ingot_block"
}
},
"result": {
"item": "naturesaura:depth_ingot",
"count": 9
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"III",
"III",
"III"
],
"key": {
"I": {
"item": "naturesaura:depth_ingot"
}
},
"result": {
"item": "naturesaura:depth_ingot_block"
}
}

View file

@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"SGS",
"GIG",
"SGS"
],
"key": {
"I": {
"item": "naturesaura:sky_ingot"
},
"S": {
"item": "minecraft:netherite_scrap"
},
"G": {
"item": "naturesaura:tainted_gold"
}
},
"result": {
"item": "naturesaura:depth_ingot"
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"AAA",
"A A",
"A A"
],
"key": {
"A": {
"item": "naturesaura:depth_ingot"
}
},
"result": {
"item": "naturesaura:depth_pants"
}
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"AAA",
" S ",
" S "
],
"key": {
"A": {
"item": "naturesaura:depth_ingot"
},
"S": {
"item": "naturesaura:ancient_stick"
}
},
"result": {
"item": "naturesaura:depth_pickaxe"
}
}

View file

@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"A A",
"A A"
],
"key": {
"A": {
"item": "naturesaura:depth_ingot"
}
},
"result": {
"item": "naturesaura:depth_shoes"
}
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"A",
"S",
"S"
],
"key": {
"A": {
"item": "naturesaura:depth_ingot"
},
"S": {
"item": "naturesaura:ancient_stick"
}
},
"result": {
"item": "naturesaura:depth_shovel"
}
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"A",
"A",
"S"
],
"key": {
"A": {
"item": "naturesaura:depth_ingot"
},
"S": {
"item": "naturesaura:ancient_stick"
}
},
"result": {
"item": "naturesaura:depth_sword"
}
}

View file

@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"I"
],
"key": {
"I": {
"item": "naturesaura:sky_ingot_block"
}
},
"result": {
"item": "naturesaura:sky_ingot",
"count": 9
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"III",
"III",
"III"
],
"key": {
"I": {
"item": "naturesaura:sky_ingot"
}
},
"result": {
"item": "naturesaura:sky_ingot_block"
}
}