% \iffalse
% --------------------------------------------------------------------
%<*hex>
% \fi
% \begin{TikzKey}{hex/terrain/town/road,
%   hex/terrain/town/small road,
%   hex/terrain/town/house}
%   For villages, towns, and cities, we need three styles: one for
%   houses, and separate styles for regular and small roads.  Note
%   that we draw using the stroke colour for roads and houses.
%
%    \begin{macrocode}
\ifhex@terrain@pic
\tikzset{
  hex/terrain/town/road/.style={
    fill=none,
    draw=gray!50!black,
    scale line widths,
    line width=.3mm
  },
  hex/terrain/town/small road/.style={
    fill=none,
    draw=gray!75!black,
    scale line widths,
    line width=.15mm
  },
  hex/terrain/town/post road/.style={
    fill=none
  },
  hex/terrain/town/house/.style={
    draw=none,
    fill=gray!75!black,
  }
}
%    \end{macrocode}
% \end{TikzKey}
% 
% 
% \begin{TikzKey}{hex/terrain/village}
%   Now for village, town, and city patterns.  
% 
%
%    \begin{macrocode}
\tikzset{
  hex/terrain/village/.pic={
    \path[hex/terrain/town/road,pic actions,hex/terrain/town/post road]
    ( 0.0073, 0.8700)
    -- ( 0.3952, 0.3373)
    -- ( 0.3884, 0.2029)
    -- ( 0.3555, 0.1378)
    -- ( 0.3751, 0.0880)
    -- ( 0.2513,-0.1997)
    -- ( 0.1396,-0.4505)
    -- ( 0.0641,-0.6512)
    -- ( 0.0070,-0.8700)
    -- ( 0.0070,-0.8700)
    ;
    \path[hex/terrain/town/road,pic actions,hex/terrain/town/post road]
    ( 0.7575, 0.4367)
    -- ( 0.3945, 0.3375)
    -- ( 0.3945, 0.3375)
    ;
    \path[hex/terrain/town/road,pic actions,hex/terrain/town/post road]
    (-0.1900,-0.0806)
    -- (-0.1155, 0.1588)
    ;
    \path[hex/terrain/town/road,pic actions,hex/terrain/town/post road]
    (-0.1308, 0.1580)
    -- (-0.7603, 0.4394)
    ;
    \path[hex/terrain/town/road,pic actions,hex/terrain/town/post road]
    (-0.6615,-0.2309)
    -- (-0.6777,-0.3255)
    -- (-0.7607,-0.4327)
    ;
    \path[hex/terrain/town/road,pic actions,hex/terrain/town/post road]
    (-0.6676,-0.2405)
    -- (-0.4599,-0.1067)
    -- (-0.1877,-0.0679)
    ;
    \path[hex/terrain/town/road,pic actions,hex/terrain/town/post road]
    ( 0.2082,-0.3003)
    -- ( 0.4578,-0.4855)
    -- ( 0.5914,-0.3675)
    -- ( 0.7607,-0.4420)
    ;
    \path[hex/terrain/town/road,pic actions,hex/terrain/town/post road]
    ( 0.3827, 0.1864)
    -- (-0.1290, 0.1576)
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.2259, 0.4898)
    -- ( 0.2453, 0.4680)
    -- ( 0.2052, 0.4324)
    -- ( 0.1858, 0.4542)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.2259, 0.4898)
    -- ( 0.2453, 0.4680)
    -- ( 0.2052, 0.4324)
    -- ( 0.1858, 0.4542)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    (-0.1978, 0.1663)
    -- (-0.1534, 0.1549)
    -- (-0.1685, 0.0960)
    -- (-0.2130, 0.1074)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    (-0.1978, 0.1663)
    -- (-0.1534, 0.1549)
    -- (-0.1685, 0.0960)
    -- (-0.2130, 0.1074)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.5127,-0.3559)
    -- ( 0.5341,-0.3759)
    -- ( 0.4975,-0.4151)
    -- ( 0.4761,-0.3951)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.5127,-0.3559)
    -- ( 0.5341,-0.3759)
    -- ( 0.4975,-0.4151)
    -- ( 0.4761,-0.3951)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.2761, 0.3992)
    -- ( 0.2947, 0.3765)
    -- ( 0.2533, 0.3425)
    -- ( 0.2347, 0.3651)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.2761, 0.3992)
    -- ( 0.2947, 0.3765)
    -- ( 0.2533, 0.3425)
    -- ( 0.2347, 0.3651)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.3227, 0.3548)
    -- ( 0.3421, 0.3329)
    -- ( 0.3020, 0.2974)
    -- ( 0.2826, 0.3192)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.3227, 0.3548)
    -- ( 0.3421, 0.3329)
    -- ( 0.3020, 0.2974)
    -- ( 0.2826, 0.3192)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.2901, 0.6234)
    -- ( 0.3088, 0.6008)
    -- ( 0.2674, 0.5667)
    -- ( 0.2487, 0.5893)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.2901, 0.6234)
    -- ( 0.3088, 0.6008)
    -- ( 0.2674, 0.5667)
    -- ( 0.2487, 0.5893)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    (-0.3456, 0.2854)
    -- (-0.3335, 0.3120)
    -- (-0.2847, 0.2898)
    -- (-0.2968, 0.2632)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    (-0.3456, 0.2854)
    -- (-0.3335, 0.3120)
    -- (-0.2847, 0.2898)
    -- (-0.2968, 0.2632)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    (-0.6678,-0.1369)
    -- (-0.6492,-0.1143)
    -- (-0.6078,-0.1484)
    -- (-0.6264,-0.1710)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    (-0.6678,-0.1369)
    -- (-0.6492,-0.1143)
    -- (-0.6078,-0.1484)
    -- (-0.6264,-0.1710)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.4610, 0.0967)
    -- ( 0.4896, 0.0909)
    -- ( 0.4790, 0.0384)
    -- ( 0.4503, 0.0442)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.4610, 0.0967)
    -- ( 0.4896, 0.0909)
    -- ( 0.4790, 0.0384)
    -- ( 0.4503, 0.0442)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.2924,-0.1375)
    -- ( 0.3110,-0.0955)
    -- ( 0.3667,-0.1202)
    -- ( 0.3481,-0.1621)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.2924,-0.1375)
    -- ( 0.3110,-0.0955)
    -- ( 0.3667,-0.1202)
    -- ( 0.3481,-0.1621)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.5094, 0.3292)
    -- ( 0.5505, 0.3494)
    -- ( 0.5773, 0.2947)
    -- ( 0.5362, 0.2746)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.5094, 0.3292)
    -- ( 0.5505, 0.3494)
    -- ( 0.5773, 0.2947)
    -- ( 0.5362, 0.2746)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    (-0.1323, 0.2640)
    -- (-0.0890, 0.2489)
    -- (-0.1092, 0.1914)
    -- (-0.1524, 0.2065)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    (-0.1323, 0.2640)
    -- (-0.0890, 0.2489)
    -- (-0.1092, 0.1914)
    -- (-0.1524, 0.2065)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.4115,-0.5373)
    -- ( 0.4390,-0.5006)
    -- ( 0.4877,-0.5372)
    -- ( 0.4601,-0.5739)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.4115,-0.5373)
    -- ( 0.4390,-0.5006)
    -- ( 0.4877,-0.5372)
    -- ( 0.4601,-0.5739)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.3095, 0.1272)
    -- ( 0.3519, 0.1095)
    -- ( 0.3284, 0.0533)
    -- ( 0.2861, 0.0710)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.3095, 0.1272)
    -- ( 0.3519, 0.1095)
    -- ( 0.3284, 0.0533)
    -- ( 0.2861, 0.0710)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.2904, 0.2714)
    -- ( 0.3361, 0.2681)
    -- ( 0.3318, 0.2074)
    -- ( 0.2861, 0.2106)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.2904, 0.2714)
    -- ( 0.3361, 0.2681)
    -- ( 0.3318, 0.2074)
    -- ( 0.2861, 0.2106)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.4665, 0.4396)
    -- ( 0.4868, 0.3985)
    -- ( 0.4321, 0.3716)
    -- ( 0.4119, 0.4127)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.4665, 0.4396)
    -- ( 0.4868, 0.3985)
    -- ( 0.4321, 0.3716)
    -- ( 0.4119, 0.4127)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.4187, 0.2523)
    -- ( 0.4643, 0.2574)
    -- ( 0.4711, 0.1969)
    -- ( 0.4256, 0.1917)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.4187, 0.2523)
    -- ( 0.4643, 0.2574)
    -- ( 0.4711, 0.1969)
    -- ( 0.4256, 0.1917)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.3746, 0.1600)
    -- ( 0.4021, 0.1699)
    -- ( 0.4204, 0.1195)
    -- ( 0.3929, 0.1095)
    --cycle
    ;
    \path[hex/terrain/town/house,pic actions]
    ( 0.3746, 0.1600)
    -- ( 0.4021, 0.1699)
    -- ( 0.4204, 0.1195)
    -- ( 0.3929, 0.1095)
    --cycle
    ;
  }
}
\fi
%    \end{macrocode}
% \end{TikzKey}
% 
% \iffalse
%</hex>
% --------------------------------------------------------------------
% \fi
