package net.minecraft.world.phys.shapes;

import net.minecraft.world.level.material.FlowingFluid;
import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.item.Item;
import net.minecraft.core.BlockPos;
import net.minecraft.world.entity.Entity;

public interface CollisionContext {
    default CollisionContext empty() {
        return EntityCollisionContext.EMPTY;
    }
    
    default CollisionContext of(final Entity aom) {
        return new EntityCollisionContext(aom);
    }
    
    boolean isDescending();
    
    boolean isAbove(final VoxelShape dfg, final BlockPos fu, final boolean boolean3);
    
    boolean isHoldingItem(final Item bke);
    
    boolean canStandOnFluid(final FluidState cxa, final FlowingFluid cwy);
}
