package net.minecraft.world.level.block; import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; import com.mojang.serialization.codecs.RecordCodecBuilder.Instance; import java.util.List; import javax.annotation.Nullable; import net.minecraft.core.BlockPos; import net.minecraft.core.Holder; import net.minecraft.util.Mth; import net.minecraft.world.effect.MobEffect; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.item.component.SuspiciousStewEffects; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; public class FlowerBlock extends VegetationBlock implements SuspiciousEffectHolder { protected static final MapCodec EFFECTS_FIELD = SuspiciousStewEffects.CODEC.fieldOf("suspicious_stew_effects"); public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( p_360432_ -> p_360432_.group(EFFECTS_FIELD.forGetter(FlowerBlock::getSuspiciousEffects), propertiesCodec()).apply(p_360432_, FlowerBlock::new) ); private static final VoxelShape SHAPE = Block.column(6.0, 0.0, 10.0); private final SuspiciousStewEffects suspiciousStewEffects; @Override public MapCodec codec() { return CODEC; } public FlowerBlock(Holder p_334860_, float p_331000_, BlockBehaviour.Properties p_309749_) { this(makeEffectList(p_334860_, p_331000_), p_309749_); } public FlowerBlock(SuspiciousStewEffects p_330616_, BlockBehaviour.Properties p_53514_) { super(p_53514_); this.suspiciousStewEffects = p_330616_; } protected static SuspiciousStewEffects makeEffectList(Holder p_335138_, float p_330663_) { return new SuspiciousStewEffects(List.of(new SuspiciousStewEffects.Entry(p_335138_, Mth.floor(p_330663_ * 20.0F)))); } @Override protected VoxelShape getShape(BlockState p_53517_, BlockGetter p_53518_, BlockPos p_53519_, CollisionContext p_53520_) { return SHAPE.move(p_53517_.getOffset(p_53519_)); } @Override public SuspiciousStewEffects getSuspiciousEffects() { return this.suspiciousStewEffects; } @Nullable public MobEffectInstance getBeeInteractionEffect() { return null; } }