17 lines
428 B
Haskell
17 lines
428 B
Haskell
module Dodge.Wall.Create (createWall) where
|
|
|
|
import Control.Lens
|
|
import Dodge.Data.World
|
|
import Dodge.Wall.Zone
|
|
import qualified IntMapHelp as IM
|
|
|
|
createWall :: Wall -> World -> (Int, World)
|
|
createWall wl w =
|
|
( wlid
|
|
, w & cWorld . lWorld . walls %~ IM.insert wlid newwl
|
|
& insertWallInZones newwl
|
|
)
|
|
where
|
|
newwl = wl{_wlID = wlid}
|
|
wlid = IM.newKey $ w ^. cWorld . lWorld . walls --_walls (_cWorld w)
|