package net.minecraft.world.level.block; import com.mojang.serialization.MapCodec; import javax.annotation.Nullable; import net.minecraft.core.BlockPos; import net.minecraft.world.MenuProvider; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; public abstract class BaseEntityBlock extends Block implements EntityBlock { protected BaseEntityBlock(BlockBehaviour.Properties p_49224_) { super(p_49224_); } @Override protected abstract MapCodec codec(); @Override protected boolean triggerEvent(BlockState p_49226_, Level p_49227_, BlockPos p_49228_, int p_49229_, int p_49230_) { super.triggerEvent(p_49226_, p_49227_, p_49228_, p_49229_, p_49230_); BlockEntity blockentity = p_49227_.getBlockEntity(p_49228_); return blockentity == null ? false : blockentity.triggerEvent(p_49229_, p_49230_); } @Nullable @Override protected MenuProvider getMenuProvider(BlockState p_49234_, Level p_49235_, BlockPos p_49236_) { BlockEntity blockentity = p_49235_.getBlockEntity(p_49236_); return blockentity instanceof MenuProvider ? (MenuProvider)blockentity : null; } @Nullable protected static BlockEntityTicker createTickerHelper( BlockEntityType p_152133_, BlockEntityType p_152134_, BlockEntityTicker p_152135_ ) { return p_152134_ == p_152133_ ? (BlockEntityTicker)p_152135_ : null; } }