
# -> If block is water then return and get
execute if block ~ ~ ~ water[level=0] run \
    return run \
        function overly_realistic:players/foods/waterskin/get_water_block

# -> Increment raycast
scoreboard players add #or.Raycast.RayRange OverlyRealistic.General.ArbitraryData 1

# -> Recursive loop
execute unless score #or.Raycast.RayRange OverlyRealistic.General.ArbitraryData >= #or.Raycast.RayRangeMax OverlyRealistic.General.ArbitraryData \
    positioned ^ ^ ^0.1 run \
        function overly_realistic:players/foods/waterskin/waterskin_raycast_travel