// Path: src/main/java/net/darkhax/darkutils/features/flatblocks/collision/CollisionEffect.java
// @FunctionalInterface
// public interface CollisionEffect {
//     
//     /**
//      * This functional interface is used by the flat tile blocks in this mod. They are applied
//      * to an entity when that entity collides with the block.
//      *
//      * @param state The state of the block.
//      * @param world Instance of the world.
//      * @param pos The current block position.
//      * @param entity The entity that collided with the block.
//      */
//     void apply (BlockState state, World world, BlockPos pos, Entity entity);
// }


import net.darkhax.darkutils.features.flatblocks.collision.CollisionEffect;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.IBucketPickupHandler;
import net.minecraft.block.ILiquidContainer;
import net.minecraft.block.material.Material;
import net.minecraft.block.material.MaterialColor;
import net.minecraft.entity.Entity;
import net.minecraft.fluid.Fluid;
import net.minecraft.fluid.Fluids;
import net.minecraft.fluid.IFluidState;
import net.minecraft.item.BlockItemUseContext;
import net.minecraft.state.StateContainer;
import net.minecraft.state.properties.BlockStateProperties;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.Direction;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.shapes.ISelectionContext;
import net.minecraft.util.math.shapes.VoxelShape;
import net.minecraft.world.IBlockReader;
import net.minecraft.world.IWorld;
import net.minecraft.world.World;
package net.darkhax.darkutils.features.flatblocks;


public class BlockFlatTile extends Block implements IBucketPickupHandler, ILiquidContainer {
    
    public static final Properties BLOCK_PROPERTIES = Properties.create(Material.ROCK, MaterialColor.BLACK).hardnessAndResistance(3f, 10f);
    public static final VoxelShape BOUNDS = Block.makeCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 1.0D, 16.0D);
    public static final VoxelShape EFFECT_BOUNDS = Block.makeCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 4.0D, 16.0D);
    
// Path: src/main/java/net/darkhax/darkutils/features/flatblocks/collision/CollisionEffect.java
// @FunctionalInterface
// public interface CollisionEffect {
//     
//     /**
//      * This functional interface is used by the flat tile blocks in this mod. They are applied
//      * to an entity when that entity collides with the block.
//      *
//      * @param state The state of the block.
//      * @param world Instance of the world.
//      * @param pos The current block position.
//      * @param entity The entity that collided with the block.
//      */
//     void apply (BlockState state, World world, BlockPos pos, Entity entity);
// }


// Path: src/main/java/net/darkhax/darkutils/features/flatblocks/BlockFlatTile.java
import net.darkhax.darkutils.features.flatblocks.collision.CollisionEffect;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.IBucketPickupHandler;
import net.minecraft.block.ILiquidContainer;
import net.minecraft.block.material.Material;
import net.minecraft.block.material.MaterialColor;
import net.minecraft.entity.Entity;
import net.minecraft.fluid.Fluid;
import net.minecraft.fluid.Fluids;
import net.minecraft.fluid.IFluidState;
import net.minecraft.item.BlockItemUseContext;
import net.minecraft.state.StateContainer;
import net.minecraft.state.properties.BlockStateProperties;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.Direction;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.shapes.ISelectionContext;
import net.minecraft.util.math.shapes.VoxelShape;
import net.minecraft.world.IBlockReader;
import net.minecraft.world.IWorld;
import net.minecraft.world.World;

package net.darkhax.darkutils.features.flatblocks;


public class BlockFlatTile extends Block implements IBucketPickupHandler, ILiquidContainer {
    
    public static final Properties BLOCK_PROPERTIES = Properties.create(Material.ROCK, MaterialColor.BLACK).hardnessAndResistance(3f, 10f);
    public static final VoxelShape BOUNDS = Block.makeCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 1.0D, 16.0D);
    public static final VoxelShape EFFECT_BOUNDS = Block.makeCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 4.0D, 16.0D);
    
    private final CollisionEffect collisionEffect;