TheWildBackport/common/src/main/java/com/cursedcauldron/wildbackport/core/mixin/common/SculkSensorBlockMixin.java
2022-07-21 00:06:27 -04:00

36 lines
1.5 KiB
Java

package com.cursedcauldron.wildbackport.core.mixin.common;
import com.cursedcauldron.wildbackport.common.registry.WBGameEvents;
import net.minecraft.core.BlockPos;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.enchantment.EnchantmentHelper;
import net.minecraft.world.item.enchantment.Enchantments;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.BaseEntityBlock;
import net.minecraft.world.level.block.SculkSensorBlock;
import net.minecraft.world.level.block.state.BlockState;
import org.spongepowered.asm.mixin.Mixin;
@Mixin(SculkSensorBlock.class)
public abstract class SculkSensorBlockMixin extends BaseEntityBlock {
protected SculkSensorBlockMixin(Properties properties) {
super(properties);
}
@Override
public void stepOn(Level level, BlockPos pos, BlockState state, Entity entity) {
if (!level.isClientSide() && SculkSensorBlock.canActivate(state)) {
SculkSensorBlock.activate(level, pos, state, 1);
level.gameEvent(entity, WBGameEvents.SCULK_SENSOR_TENDRILS_CLICKING.get(), pos);
}
super.stepOn(level, pos, state, entity);
}
@Override
public void spawnAfterBreak(BlockState state, ServerLevel level, BlockPos pos, ItemStack stack) {
if (EnchantmentHelper.getItemEnchantmentLevel(Enchantments.SILK_TOUCH, stack) == 0) this.popExperience(level, pos, 5);
}
}