Code/net/minecraft/world/level/block/TestInstanceBlock.java

49 lines
1.8 KiB
Java

package net.minecraft.world.level.block;
import com.mojang.serialization.MapCodec;
import javax.annotation.Nullable;
import net.minecraft.core.BlockPos;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.TestInstanceBlockEntity;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.BlockHitResult;
public class TestInstanceBlock extends BaseEntityBlock implements GameMasterBlock {
public static final MapCodec<TestInstanceBlock> CODEC = simpleCodec(TestInstanceBlock::new);
public TestInstanceBlock(BlockBehaviour.Properties p_391747_) {
super(p_391747_);
}
@Nullable
@Override
public BlockEntity newBlockEntity(BlockPos p_392576_, BlockState p_397359_) {
return new TestInstanceBlockEntity(p_392576_, p_397359_);
}
@Override
protected InteractionResult useWithoutItem(BlockState p_391894_, Level p_393283_, BlockPos p_395877_, Player p_396004_, BlockHitResult p_397949_) {
if (p_393283_.getBlockEntity(p_395877_) instanceof TestInstanceBlockEntity testinstanceblockentity) {
if (!p_396004_.canUseGameMasterBlocks()) {
return InteractionResult.PASS;
} else {
if (p_396004_.getCommandSenderWorld().isClientSide) {
p_396004_.openTestInstanceBlock(testinstanceblockentity);
}
return InteractionResult.SUCCESS;
}
} else {
return InteractionResult.PASS;
}
}
@Override
protected MapCodec<TestInstanceBlock> codec() {
return CODEC;
}
}