module Dodge.Debug.LinkDecoration ( addRoomLinkDecorations , addRoomPolyDecorations ) where import Dodge.Data import Dodge.RoomLink --import Dodge.Base import Dodge.LevelGen.Data import Picture import qualified IntMapHelp as IM import Geometry.Data import Geometry.Vector import Control.Lens addRoomPolyDecorations :: [Room] -> World -> World addRoomPolyDecorations rms w = w & decorations %~ IM.insertWithNewKeys (map roomPolyDecorations rms) addRoomLinkDecorations :: [Room] -> World -> World addRoomLinkDecorations rms w = w & decorations %~ IM.insertWithNewKeys (map roomLinkDecorations rms) roomLinkDecorations :: Room -> Picture roomLinkDecorations rm = pictures . map (linkDecoration . lnkPosDir) $ _rmLinks rm linkDecoration :: (Point2,Float) -> Picture linkDecoration (p,a) = setLayer DebugLayer . color red $ line [p, p +.+ 20 *.* unitVectorAtAngle (a - pi/2)] roomPolyDecorations :: Room -> Picture roomPolyDecorations rm = pictures . map polyWireFrame $ _rmPolys rm polyWireFrame :: [Point2] -> Picture polyWireFrame (x:xs) = setLayer DebugLayer . setDepth 50 . color green $ line $ (x:xs) ++ [x] polyWireFrame _ = undefined