package com.atsuishio.superbwarfare.block; import com.atsuishio.superbwarfare.block.entity.FuMO25BlockEntity; import com.atsuishio.superbwarfare.init.ModBlockEntities; import net.minecraft.core.BlockPos; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.EntityBlock; import net.minecraft.world.level.block.SoundType; 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; import org.jetbrains.annotations.Nullable; public class FuMO25Block extends Block implements EntityBlock { public FuMO25Block() { super(BlockBehaviour.Properties.of().sound(SoundType.METAL).strength(3.0f).requiresCorrectToolForDrops()); } @Nullable @Override public BlockEntity newBlockEntity(BlockPos pPos, BlockState pState) { return new FuMO25BlockEntity(pPos, pState); } @Nullable @Override public BlockEntityTicker getTicker(Level pLevel, BlockState pState, BlockEntityType pBlockEntityType) { if (!pLevel.isClientSide) { return createTickerHelper(pBlockEntityType, ModBlockEntities.FUMO_25.get(), FuMO25BlockEntity::serverTick); } else { return createTickerHelper(pBlockEntityType, ModBlockEntities.FUMO_25.get(), FuMO25BlockEntity::clientTick); } } @Nullable protected static BlockEntityTicker createTickerHelper(BlockEntityType pServerType, BlockEntityType pClientType, BlockEntityTicker pTicker) { return pClientType == pServerType ? (BlockEntityTicker) pTicker : null; } }