36 lines
1.5 KiB
Java
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);
|
|
}
|
|
} |