NaturesAura/src/main/java/de/ellpeck/naturesaura/items/ItemNetheriteFinder.java

56 lines
2.4 KiB
Java
Raw Normal View History

2020-10-13 23:30:47 +02:00
package de.ellpeck.naturesaura.items;
import de.ellpeck.naturesaura.api.NaturesAuraAPI;
2021-12-15 16:24:53 +01:00
import net.minecraft.core.BlockPos;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.BlockState;
2020-10-13 23:30:47 +02:00
public class ItemNetheriteFinder extends ItemImpl {
2021-12-15 16:24:53 +01:00
2020-10-13 23:30:47 +02:00
public ItemNetheriteFinder() {
2021-12-15 16:24:53 +01:00
super("netherite_finder", new Properties().stacksTo(1));
2020-10-13 23:30:47 +02:00
}
@Override
2021-12-15 16:24:53 +01:00
public InteractionResultHolder<ItemStack> use(Level levelIn, Player playerIn, InteractionHand handIn) {
ItemStack stack = playerIn.getItemInHand(handIn);
2020-10-13 23:30:47 +02:00
NaturesAuraAPI.IInternalHooks inst = NaturesAuraAPI.instance();
if (!inst.extractAuraFromPlayer(playerIn, 200000, false))
2021-12-15 16:24:53 +01:00
return new InteractionResultHolder<>(InteractionResult.FAIL, stack);
2021-12-04 15:40:09 +01:00
if (levelIn.isClientSide) {
2020-10-13 23:30:47 +02:00
inst.setParticleDepth(false);
inst.setParticleSpawnRange(64);
inst.setParticleCulling(false);
2021-12-15 16:24:53 +01:00
BlockPos pos = playerIn.blockPosition();
int range = 12;
2020-10-13 23:30:47 +02:00
for (int x = -range; x <= range; x++) {
for (int y = 0; y <= 128; y++) {
for (int z = -range; z <= range; z++) {
BlockPos offset = new BlockPos(pos.getX() + x, y, pos.getZ() + z);
2021-12-04 15:40:09 +01:00
BlockState state = levelIn.getBlockState(offset);
2020-10-13 23:30:47 +02:00
if (state.getBlock() == Blocks.ANCIENT_DEBRIS || state.getBlock().getRegistryName().toString().contains("netherite")) {
inst.spawnMagicParticle(
offset.getX() + 0.5F, offset.getY() + 0.5F, offset.getZ() + 0.5F,
0F, 0F, 0F, 0xab4d38, 6F, 20 * 60, 0F, false, true);
}
}
}
}
inst.setParticleDepth(true);
inst.setParticleSpawnRange(32);
inst.setParticleCulling(true);
2021-12-15 16:24:53 +01:00
playerIn.swing(handIn);
2020-10-13 23:30:47 +02:00
}
2021-12-15 16:24:53 +01:00
playerIn.getCooldowns().addCooldown(this, 20 * 60);
return new InteractionResultHolder<>(InteractionResult.SUCCESS, stack);
2020-10-13 23:30:47 +02:00
}
}