package carpetextra.helpers;

import carpetextra.CarpetExtraSettings;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.fluid.FluidState;
import net.minecraft.fluid.Fluids;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;

import java.util.Random;

// Credits: Skyrising
public class ObsidianBlock extends Block
{
    public ObsidianBlock(Settings settings)
    {
        super(settings);
    }
    
    @Override
    public boolean hasRandomTicks(BlockState state)
    {
        return CarpetExtraSettings.renewableLava;
    }

    @Override
    public void scheduledTick(BlockState blockState_1, ServerWorld serverWorld_1, BlockPos blockPos_1, Random random_1)
    {
        for (Direction dir : Direction.values())
        {
            FluidState neighbor = serverWorld_1.getFluidState(blockPos_1.offset(dir));
            if (neighbor.getFluid() != Fluids.LAVA || !neighbor.isStill())
                return;
        }
        if (random_1.nextInt(10) == 0)
        {
            serverWorld_1.setBlockState(blockPos_1, Blocks.LAVA.getDefaultState());
        }
    }
}