Compare commits
3 commits
4af1787320
...
c1797eb14b
Author | SHA1 | Date | |
---|---|---|---|
c1797eb14b | |||
08643e79b8 | |||
81ff2a4140 |
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "naturesaura:block/depth_ingot_block"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "naturesaura:block/sky_ingot_block"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "naturesaura:block/depth_ingot_block"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "naturesaura:block/sky_ingot_block"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:item/handheld",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "naturesaura:item/depth_axe"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "naturesaura:item/depth_chest"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "naturesaura:item/depth_helmet"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:item/handheld",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "naturesaura:item/depth_hoe"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "naturesaura:item/depth_ingot"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"parent": "naturesaura:block/depth_ingot_block"
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "naturesaura:item/depth_pants"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:item/handheld",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "naturesaura:item/depth_pickaxe"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "naturesaura:item/depth_shoes"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:item/handheld",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "naturesaura:item/depth_shovel"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:item/handheld",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "naturesaura:item/depth_sword"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"parent": "naturesaura:block/sky_ingot_block"
|
||||||
|
}
|
|
@ -1,15 +1,15 @@
|
||||||
{
|
{
|
||||||
"values": [
|
"values": [
|
||||||
|
"naturesaura:ancient_bark",
|
||||||
"naturesaura:ancient_log",
|
"naturesaura:ancient_log",
|
||||||
|
"naturesaura:ancient_planks",
|
||||||
"naturesaura:ancient_slab",
|
"naturesaura:ancient_slab",
|
||||||
|
"naturesaura:ancient_stairs",
|
||||||
|
"naturesaura:auto_crafter",
|
||||||
|
"naturesaura:flower_generator",
|
||||||
"naturesaura:nether_wart_mushroom",
|
"naturesaura:nether_wart_mushroom",
|
||||||
"naturesaura:oak_generator",
|
"naturesaura:oak_generator",
|
||||||
"naturesaura:auto_crafter",
|
"naturesaura:offering_table",
|
||||||
"naturesaura:ancient_bark",
|
"naturesaura:wood_stand"
|
||||||
"naturesaura:ancient_planks",
|
|
||||||
"naturesaura:ancient_stairs",
|
|
||||||
"naturesaura:flower_generator",
|
|
||||||
"naturesaura:wood_stand",
|
|
||||||
"naturesaura:offering_table"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -1,47 +1,49 @@
|
||||||
{
|
{
|
||||||
"values": [
|
"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: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: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:animal_spawner",
|
||||||
|
"naturesaura:aura_detector",
|
||||||
|
"naturesaura:aura_timer",
|
||||||
|
"naturesaura:blast_furnace_booster",
|
||||||
"naturesaura:chorus_generator",
|
"naturesaura:chorus_generator",
|
||||||
"naturesaura:infused_brick_slab",
|
"naturesaura:chunk_loader",
|
||||||
"naturesaura:projectile_generator",
|
|
||||||
"naturesaura:furnace_heater",
|
|
||||||
"naturesaura:moss_generator",
|
|
||||||
"naturesaura:rf_converter",
|
|
||||||
"naturesaura:item_distributor",
|
|
||||||
"naturesaura:time_changer",
|
|
||||||
"naturesaura:conversion_catalyst",
|
"naturesaura:conversion_catalyst",
|
||||||
"naturesaura:hopper_upgrade",
|
"naturesaura:crushing_catalyst",
|
||||||
"naturesaura:pickup_stopper",
|
"naturesaura:depth_ingot_block",
|
||||||
"naturesaura:infused_brick",
|
"naturesaura:ender_crate",
|
||||||
|
"naturesaura:field_creator",
|
||||||
|
"naturesaura:firework_generator",
|
||||||
|
"naturesaura:furnace_heater",
|
||||||
"naturesaura:generator_limit_remover",
|
"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"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
"values": [
|
"values": [
|
||||||
"naturesaura:infused_iron_pickaxe",
|
"naturesaura:infused_iron_pickaxe",
|
||||||
"naturesaura:sky_pickaxe"
|
"naturesaura:sky_pickaxe",
|
||||||
|
"naturesaura:depth_pickaxe"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -10,6 +10,8 @@ import de.ellpeck.naturesaura.blocks.tiles.BlockEntityImpl;
|
||||||
import de.ellpeck.naturesaura.chunk.AuraChunk;
|
import de.ellpeck.naturesaura.chunk.AuraChunk;
|
||||||
import de.ellpeck.naturesaura.compat.Compat;
|
import de.ellpeck.naturesaura.compat.Compat;
|
||||||
import de.ellpeck.naturesaura.misc.LevelData;
|
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.client.Minecraft;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
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.ChunkPos;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.LevelAccessor;
|
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.entity.BlockEntity;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.level.block.state.properties.Property;
|
import net.minecraft.world.level.block.state.properties.Property;
|
||||||
|
@ -333,4 +336,27 @@ public final class Helper {
|
||||||
}
|
}
|
||||||
return pos;
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package de.ellpeck.naturesaura.blocks.tiles;
|
package de.ellpeck.naturesaura.blocks.tiles;
|
||||||
|
|
||||||
|
import de.ellpeck.naturesaura.Helper;
|
||||||
import de.ellpeck.naturesaura.blocks.multi.Multiblocks;
|
import de.ellpeck.naturesaura.blocks.multi.Multiblocks;
|
||||||
import de.ellpeck.naturesaura.packet.PacketHandler;
|
import de.ellpeck.naturesaura.packet.PacketHandler;
|
||||||
import de.ellpeck.naturesaura.packet.PacketParticleStream;
|
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) {
|
public static void recurseTreeDestruction(Level level, BlockPos pos, BlockPos start, boolean includeLeaves, boolean drop) {
|
||||||
if (Math.abs(pos.getX() - start.getX()) >= 6
|
Helper.mineRecursively(level, pos, start, drop, 6, 32, s -> s.is(BlockTags.LOGS) || includeLeaves && s.getBlock() instanceof LeavesBlock);
|
||||||
|| 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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isRitualOkay() {
|
private boolean isRitualOkay() {
|
||||||
|
|
|
@ -2,6 +2,7 @@ package de.ellpeck.naturesaura.data;
|
||||||
|
|
||||||
import de.ellpeck.naturesaura.NaturesAura;
|
import de.ellpeck.naturesaura.NaturesAura;
|
||||||
import de.ellpeck.naturesaura.blocks.ModBlocks;
|
import de.ellpeck.naturesaura.blocks.ModBlocks;
|
||||||
|
import de.ellpeck.naturesaura.reg.IModItem;
|
||||||
import de.ellpeck.naturesaura.reg.ModRegistry;
|
import de.ellpeck.naturesaura.reg.ModRegistry;
|
||||||
import net.minecraft.data.DataGenerator;
|
import net.minecraft.data.DataGenerator;
|
||||||
import net.minecraft.data.tags.BlockTagsProvider;
|
import net.minecraft.data.tags.BlockTagsProvider;
|
||||||
|
@ -14,6 +15,8 @@ import net.minecraft.world.level.material.Material;
|
||||||
import net.minecraftforge.common.data.ExistingFileHelper;
|
import net.minecraftforge.common.data.ExistingFileHelper;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.Comparator;
|
||||||
|
|
||||||
public class BlockTagProvider extends BlockTagsProvider {
|
public class BlockTagProvider extends BlockTagsProvider {
|
||||||
|
|
||||||
public static final TagKey<Block> ALTAR_WOOD = BlockTags.create(new ResourceLocation(NaturesAura.MOD_ID, "altar_wood"));
|
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_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);
|
this.tag(BlockTagProvider.ALTAR_FANCY_BRICK).add(Blocks.RED_NETHER_BRICKS, Blocks.CHISELED_STONE_BRICKS);
|
||||||
|
|
||||||
for (var item : ModRegistry.ALL_ITEMS) {
|
// sort these so that they don't change the json every time we run data (because it's a set)
|
||||||
if (!(item instanceof Block b))
|
ModRegistry.ALL_ITEMS.stream().sorted(Comparator.comparing(IModItem::getBaseName)).filter(i -> i instanceof Block).map(i -> (Block) i).forEach(b -> {
|
||||||
continue;
|
|
||||||
var material = b.defaultBlockState().getMaterial();
|
var material = b.defaultBlockState().getMaterial();
|
||||||
if (material == Material.STONE || material == Material.METAL) {
|
if (material == Material.STONE || material == Material.METAL) {
|
||||||
this.tag(BlockTags.MINEABLE_WITH_PICKAXE).add(b);
|
this.tag(BlockTags.MINEABLE_WITH_PICKAXE).add(b);
|
||||||
} else if (material == Material.WOOD) {
|
} else if (material == Material.WOOD) {
|
||||||
this.tag(BlockTags.MINEABLE_WITH_AXE).add(b);
|
this.tag(BlockTags.MINEABLE_WITH_AXE).add(b);
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,14 +29,14 @@ public class ItemTagProvider extends ItemTagsProvider {
|
||||||
this.copy(BlockTags.SLABS, ItemTags.SLABS);
|
this.copy(BlockTags.SLABS, ItemTags.SLABS);
|
||||||
|
|
||||||
this.tag(Tags.Items.RODS_WOODEN).add(ModItems.ANCIENT_STICK);
|
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);
|
Compat.addItemTags(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TagAppender<Item> tag(TagKey<Item> p_126549_) {
|
public TagAppender<Item> tag(TagKey<Item> tag) {
|
||||||
// super is protected, but CuriosCompat needs this
|
// super is protected, but CuriosCompat needs this
|
||||||
return super.tag(p_126549_);
|
return super.tag(tag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,4 +65,14 @@ public final class ModItems {
|
||||||
public static Item PET_REVIVER;
|
public static Item PET_REVIVER;
|
||||||
public static Item NETHERITE_FINDER;
|
public static Item NETHERITE_FINDER;
|
||||||
public static Item VACUUM_BOTTLE;
|
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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ import de.ellpeck.naturesaura.misc.LevelData;
|
||||||
import de.ellpeck.naturesaura.reg.ICustomItemModel;
|
import de.ellpeck.naturesaura.reg.ICustomItemModel;
|
||||||
import de.ellpeck.naturesaura.reg.IModItem;
|
import de.ellpeck.naturesaura.reg.IModItem;
|
||||||
import de.ellpeck.naturesaura.reg.ModRegistry;
|
import de.ellpeck.naturesaura.reg.ModRegistry;
|
||||||
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.sounds.SoundEvents;
|
import net.minecraft.sounds.SoundEvents;
|
||||||
import net.minecraft.sounds.SoundSource;
|
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.item.context.UseOnContext;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.phys.AABB;
|
import net.minecraft.world.phys.AABB;
|
||||||
|
import net.minecraftforge.common.Tags;
|
||||||
import net.minecraftforge.common.capabilities.ICapabilityProvider;
|
import net.minecraftforge.common.capabilities.ICapabilityProvider;
|
||||||
|
import net.minecraftforge.registries.ForgeRegistries;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
@ -73,7 +76,7 @@ public class ItemPickaxe extends PickaxeItem implements IModItem, ICustomItemMod
|
||||||
return;
|
return;
|
||||||
if (!isSelected || levelIn.isClientSide)
|
if (!isSelected || levelIn.isClientSide)
|
||||||
return;
|
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)) {
|
for (var item : levelIn.getEntitiesOfClass(ItemEntity.class, bounds)) {
|
||||||
// only pick up freshly dropped items
|
// only pick up freshly dropped items
|
||||||
if (item.tickCount >= 5 || !item.isAlive())
|
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
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public ICapabilityProvider initCapabilities(ItemStack stack, @Nullable CompoundTag nbt) {
|
public ICapabilityProvider initCapabilities(ItemStack stack, @Nullable CompoundTag nbt) {
|
||||||
|
|
|
@ -15,8 +15,9 @@ import java.util.function.Supplier;
|
||||||
|
|
||||||
public enum ModArmorMaterial implements ArmorMaterial {
|
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)),
|
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_GENERIC, 2, () -> Ingredient.of(ModItems.SKY_INGOT));
|
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 static final int[] MAX_DAMAGE_ARRAY = {13, 15, 16, 11};
|
||||||
private final String name;
|
private final String name;
|
||||||
|
|
|
@ -8,8 +8,10 @@ import net.minecraftforge.common.util.Lazy;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
public enum ModItemTier implements Tier {
|
public enum ModItemTier implements Tier {
|
||||||
|
|
||||||
INFUSED(2, 250, 6, 2, 16, () -> Ingredient.of(ModItems.INFUSED_IRON)),
|
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 harvestLevel;
|
||||||
private final int maxUses;
|
private final int maxUses;
|
||||||
|
|
|
@ -134,7 +134,9 @@ public final class ModRegistry {
|
||||||
new BlockWeatherChanger(),
|
new BlockWeatherChanger(),
|
||||||
new BlockRFConverter(),
|
new BlockRFConverter(),
|
||||||
new BlockChunkLoader(),
|
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());
|
Helper.populateObjectHolders(ModBlocks.class, event.getForgeRegistry());
|
||||||
});
|
});
|
||||||
|
@ -209,7 +211,17 @@ public final class ModRegistry {
|
||||||
new ItemBreakPrevention(),
|
new ItemBreakPrevention(),
|
||||||
new ItemPetReviver(),
|
new ItemPetReviver(),
|
||||||
new ItemNetheriteFinder(),
|
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());
|
Helper.populateObjectHolders(ModItems.class, event.getForgeRegistry());
|
||||||
});
|
});
|
||||||
|
|
|
@ -79,6 +79,8 @@
|
||||||
"block.naturesaura.spring": "Everlasting Spring",
|
"block.naturesaura.spring": "Everlasting Spring",
|
||||||
"block.naturesaura.weather_changer": "Cloudshifter",
|
"block.naturesaura.weather_changer": "Cloudshifter",
|
||||||
"block.naturesaura.lower_limiter": "Aura Imbalance Ward",
|
"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": "Environmental Eye",
|
||||||
"item.naturesaura.eye_improved": "Environmental Ocular",
|
"item.naturesaura.eye_improved": "Environmental Ocular",
|
||||||
"item.naturesaura.gold_fiber": "Brilliant Fiber",
|
"item.naturesaura.gold_fiber": "Brilliant Fiber",
|
||||||
|
@ -103,6 +105,7 @@
|
||||||
"item.naturesaura.farming_stencil": "Farming Stencil",
|
"item.naturesaura.farming_stencil": "Farming Stencil",
|
||||||
"item.naturesaura.bottle_two_the_rebottling": "Bottle and Cork",
|
"item.naturesaura.bottle_two_the_rebottling": "Bottle and Cork",
|
||||||
"item.naturesaura.sky_ingot": "Ingot of the Skies",
|
"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_pickaxe": "Skyseeker's Pickaxe",
|
||||||
"item.naturesaura.sky_axe": "Skyseeker's Handaxe",
|
"item.naturesaura.sky_axe": "Skyseeker's Handaxe",
|
||||||
"item.naturesaura.sky_shovel": "Skyseeker's Shovel",
|
"item.naturesaura.sky_shovel": "Skyseeker's Shovel",
|
||||||
|
@ -148,6 +151,15 @@
|
||||||
"item.naturesaura.break_prevention": "Eir's Token",
|
"item.naturesaura.break_prevention": "Eir's Token",
|
||||||
"item.naturesaura.pet_reviver": "Token of Undying Friendship",
|
"item.naturesaura.pet_reviver": "Token of Undying Friendship",
|
||||||
"item.naturesaura.netherite_finder": "Staff of Ancient Knowledge",
|
"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:tree_ritual.name": "Ritual of the Forest",
|
||||||
"container.naturesaura:altar.name": "Natural Altar Infusion",
|
"container.naturesaura:altar.name": "Natural Altar Infusion",
|
||||||
"container.naturesaura:offering.name": "Offering to the Gods",
|
"container.naturesaura:offering.name": "Offering to the Gods",
|
||||||
|
|
After Width: | Height: | Size: 451 B |
After Width: | Height: | Size: 550 B |
After Width: | Height: | Size: 497 B |
After Width: | Height: | Size: 500 B |
After Width: | Height: | Size: 254 B |
After Width: | Height: | Size: 535 B |
After Width: | Height: | Size: 422 B |
After Width: | Height: | Size: 303 B |
After Width: | Height: | Size: 573 B |
After Width: | Height: | Size: 364 B |
After Width: | Height: | Size: 454 B |
After Width: | Height: | Size: 597 B |
19
src/main/resources/data/naturesaura/recipes/depth_axe.json
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
19
src/main/resources/data/naturesaura/recipes/depth_chest.json
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
19
src/main/resources/data/naturesaura/recipes/depth_hoe.json
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
15
src/main/resources/data/naturesaura/recipes/depth_ingot.json
Normal 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
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
"III",
|
||||||
|
"III",
|
||||||
|
"III"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"I": {
|
||||||
|
"item": "naturesaura:depth_ingot"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "naturesaura:depth_ingot_block"
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
16
src/main/resources/data/naturesaura/recipes/depth_pants.json
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
15
src/main/resources/data/naturesaura/recipes/depth_shoes.json
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
19
src/main/resources/data/naturesaura/recipes/depth_sword.json
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
15
src/main/resources/data/naturesaura/recipes/sky_ingot.json
Normal 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
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
"III",
|
||||||
|
"III",
|
||||||
|
"III"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"I": {
|
||||||
|
"item": "naturesaura:sky_ingot"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "naturesaura:sky_ingot_block"
|
||||||
|
}
|
||||||
|
}
|