// Zielpfad: src/main/java/ovh/glitchlabs/ornamentum/block/SkyboxBlock.java package ovh.glitchlabs.ornamentum.blocks; import com.mojang.serialization.MapCodec; 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.BaseEntityBlock; import net.minecraft.world.level.block.RenderShape; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; import org.jetbrains.annotations.Nullable; import ovh.glitchlabs.ornamentum.blocks.entity.SkyboxBlockEntity; public class SkyboxBlock extends BaseEntityBlock { public static final MapCodec CODEC = simpleCodec(SkyboxBlock::new); public SkyboxBlock(BlockBehaviour.Properties properties) { super(properties); } @Override protected MapCodec codec() { return CODEC; } @Override public RenderShape getRenderShape(BlockState state) { return RenderShape.MODEL; } @Nullable @Override public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { return new SkyboxBlockEntity(pos, state); } @Override protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hit) { if (!level.isClientSide() && level.getBlockEntity(pos) instanceof SkyboxBlockEntity be) { player.openMenu(be, buf -> buf.writeBlockPos(pos)); } return InteractionResult.SUCCESS; } }