diff --git a/pkgs/maps/main.fnl b/pkgs/maps/main.fnl index 8e54b30..2ed2bb8 100644 --- a/pkgs/maps/main.fnl +++ b/pkgs/maps/main.fnl @@ -174,7 +174,8 @@ label.readout { cairo.Content.COLOR (* tile-size num-tiles-x) (* tile-size num-tiles-y)) - g (cairo.Context.create map-surface)] + g (cairo.Context.create map-surface) + seen-roads {}] (g:set_source_rgb 0.7 0.8 0.8) (g:rectangle 0 0 (* tile-size num-tiles-x) (* tile-size num-tiles-y)) @@ -188,11 +189,25 @@ label.readout { (cairo-roads-path g lines bounds) (g:set_source_rgb 0.2 0.2 0.2) - (g:set_font_size (- road-width 3)) + (g:set_font_size (+ road-width 1)) (each [_ line (pairs lines)] (case line.name - n (let [(x y angle) (label-coords line bounds)] - (when (and x y) + n (let [(x y angle) (label-coords line bounds) + ext (g:text_extents n) + w ext.width + h ext.height] + (when (and x y (not (. seen-roads n))) + (tset seen-roads n true) + + (g:save) + (g:set_line_width h) + (g:set_source_rgb 1 1 1) + (g:move_to (- x 1) (- y 1)) + (g:rotate angle) + (g:rel_line_to (+ w 1) 0) + (g:stroke) + (g:restore) + (g:save) (g:move_to x y) (g:rotate angle)