Unify RoomPos constructors
This commit is contained in:
+15
-15
@@ -14,7 +14,7 @@ import Padding
|
||||
import LensHelp hiding (Empty, (<|) , (|>))
|
||||
--import Control.Lens hiding (Empty, (<|) , (|>))
|
||||
|
||||
--import qualified Data.Set as S
|
||||
import qualified Data.Set as S
|
||||
import Data.Tree
|
||||
import Data.Sequence hiding (zipWith)
|
||||
import Data.List (delete)
|
||||
@@ -67,13 +67,12 @@ posRms bounds parenti@(parent,_) ( (numChild,t@(Node childi _) ):its) tseq = do
|
||||
clipping = or (convexPolysOverlap <$> newBounds <*> bounds)
|
||||
updateparent rm = doLnkEff (lnkPosDir outlnk) $ rm
|
||||
& rmLinks %~ delete outlnk
|
||||
& rmPos .:~ UsedOutLink
|
||||
{ _rpChildNum = numChild
|
||||
, _rpOutRoomID = snd childi
|
||||
, _rpPos = fst (lnkPosDir outlnk)
|
||||
& rmPos .:~ RoomPos
|
||||
{ _rpPos = fst (lnkPosDir outlnk)
|
||||
, _rpDir = snd (lnkPosDir outlnk)
|
||||
, _rpLinkType = _rlType outlnk
|
||||
, _rpLinkStatus = UsedAsOutLink (_rlType outlnk) numChild (snd childi)
|
||||
, _rpType = S.empty
|
||||
, _rpLinkStatus = UsedOutLink (_rlType outlnk) numChild (snd childi)
|
||||
, _rpPlacementUse = 0
|
||||
}
|
||||
& rmChildren .:~ snd childi
|
||||
shiftedoutlink = shiftLinkBy (_rmShift parent) outlnk
|
||||
@@ -81,12 +80,12 @@ posRms bounds parenti@(parent,_) ( (numChild,t@(Node childi _) ):its) tseq = do
|
||||
& rmMParent ?~ snd parenti
|
||||
& rmMID ?~ snd childi
|
||||
& rmLinks %~ delete il
|
||||
& rmPos .:~ UsedInLink
|
||||
{ _rpInRoomID = 0
|
||||
, _rpPos = fst (lnkPosDir il)
|
||||
& rmPos .:~ RoomPos
|
||||
{ _rpPos = fst (lnkPosDir il)
|
||||
, _rpDir = snd (lnkPosDir il)
|
||||
, _rpLinkType = _rlType il
|
||||
, _rpLinkStatus = UsedAsInLink (_rlType il) 0
|
||||
, _rpType = S.empty
|
||||
, _rpLinkStatus = UsedInLink (_rlType il) (snd parenti)
|
||||
, _rpPlacementUse = 0
|
||||
}
|
||||
shiftedt = applyToRoot
|
||||
(first $ updatechild . shiftRoomShiftToLink (lnkPosDir shiftedoutlink) (lnkPosDir il))
|
||||
@@ -95,11 +94,12 @@ posRms bounds parenti@(parent,_) ( (numChild,t@(Node childi _) ):its) tseq = do
|
||||
createUnusedLinkPos :: Room -> Room
|
||||
createUnusedLinkPos rm = rm & rmPos .++~ map f (_rmLinks rm)
|
||||
where
|
||||
f rl = UnusedLink
|
||||
f rl = RoomPos
|
||||
{ _rpPos = _rlPos rl
|
||||
, _rpDir = _rlDir rl
|
||||
, _rpLinkType = _rlType rl
|
||||
, _rpLinkStatus = UnusedAsLink $ _rlType rl
|
||||
, _rpType = S.empty
|
||||
, _rpLinkStatus = UnusedLink $ _rlType rl
|
||||
, _rpPlacementUse = 0
|
||||
}
|
||||
|
||||
zipCount :: [a] -> [(Int,a)]
|
||||
|
||||
Reference in New Issue
Block a user