% ------------------------------------------------------------------------------
% Copyright (c) 2019, 2025 Contributors to the Eclipse Foundation
%
% See the NOTICE file(s) distributed with this work for additional
% information regarding copyright ownership.
%
% This program and the accompanying materials are made available under the terms
% of the MIT License which is available at https://opensource.org/licenses/MIT
%
% SPDX-License-Identifier: MIT
% ------------------------------------------------------------------------------
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta, arrows, automata, calc, positioning, shapes, shapes.misc}
\usepackage[paperwidth=40in, paperheight=20in]{geometry}

\renewcommand{\familydefault}{\sfdefault}

\begin{document}
\pagestyle{empty}

\begin{tikzpicture}[
    auto,
    ->,
    node distance=4cm,
    every state/.style={ellipse, semithick, fill=black!5, minimum size=1.5cm, font=\Large},
    initial distance=0.8cm,
    every initial by arrow/.style={-{Stealth[scale=1.4]}},
    initial text=,
    transform shape,
    double distance=2pt,
    every loop/.style={min distance=10mm},
    mynode/.style={rectangle, semithick, align=center, draw, minimum width=2.5cm, fill=black!5}
]

\node[mynode, minimum height= 1cm, initial above] (A) at (0,0)                           {Road traffic\\allowed};
\node[mynode, minimum height=.5cm]                (B) [below left =1cm and -0.25cm of A] {};
\node[mynode, minimum height=.5cm]                (C) [below      =1cm             of B] {};
\node[mynode, minimum height=.5cm]                (D) [below      =1cm             of C] {};
\node[mynode, minimum height=.5cm]                (E) [below      =1cm             of D] {};
\node[mynode, minimum height=.5cm]                (J) [below right=1cm and -0.25cm of A] {};
\node[mynode, minimum height=.5cm]                (I) [below      =1cm             of J] {};
\node[mynode, minimum height=.5cm]                (H) [below      =1cm             of I] {};
\node[mynode, minimum height=.5cm]                (G) [below      =1cm             of H] {};
\node[mynode, minimum height= 1cm]                (F) [below right=1cm and -0.25cm of E] {Water traffic\\allowed};

\path[-{Stealth[scale=1.4]}]
    (A) edge[above left]  node[align=center] {Turn bridge\\traffic lights on}                 (B)
    (B) edge[left]        node[align=center] {Close traffic barriers}                         (C)
    (C) edge[left]        node[align=center] {Open bridge}                                    (D)
    (D) edge[left]        node[align=center] {Open gate}                                      (E)
    (E) edge[below left]  node[align=center] {Turn entering or leaving\\traffic lights green} (F)
    (F) edge[below right] node[align=center] {Turn entering or leaving\\traffic lights red}   (G)
    (G) edge[right]       node[align=center] {Close gate}                                     (H)
    (H) edge[right]       node[align=center] {Close bridge}                                   (I)
    (I) edge[right]       node[align=center] {Open traffic barriers}                          (J)
    (J) edge[above right] node[align=center] {Turn bridge\\traffic lights off}                (A)
;

\end{tikzpicture}
\end{document}
