Work towards cross-room placements
This commit is contained in:
+9
-3
@@ -55,7 +55,7 @@ generateLevelFromRoomList gr w
|
||||
zs = map fromIntegral $ randomRs (0,63::Int) $ _randGen w
|
||||
|
||||
doRoomPlacements :: World -> Room -> World
|
||||
doRoomPlacements w rm = fst $ foldl' placeSpot (w,rm) $ _rmPS rm
|
||||
doRoomPlacements w rm = fst $ foldl' placeSpot (w,rm) $ _rmPmnts rm
|
||||
|
||||
updatePSLnkUsing :: (Point2,Float) -> PlacementSpot -> PlacementSpot
|
||||
updatePSLnkUsing pf PSLnk{_psLinkShift=f} = uncurry PS $ f pf
|
||||
@@ -117,13 +117,19 @@ gameRoomsFromRooms = map f
|
||||
f rm = GameRoom
|
||||
{ _grViewpoints = _rmViewpoints rm ++ (map fst . foldl' (flip cutWalls) [] $ _rmPolys rm)
|
||||
++ map fst (_rmLinks rm)
|
||||
, _grViewpointsEx = map fst (_rmUsedLinks rm)
|
||||
, _grViewpointsEx = mapMaybe unpos (_rmUsedLinks rm)
|
||||
, _grBound = expandPolyByFixed 100 . convexHullSafe . nubBy closePoints
|
||||
. concat $ _rmBound rm ++ _rmPolys rm
|
||||
, _grDir = snd . head $ _rmUsedLinks rm
|
||||
, _grDir = getDir $ _rmUsedLinks rm
|
||||
, _grName = _rmName rm
|
||||
}
|
||||
closePoints x y = roundPoint2 x == roundPoint2 y
|
||||
unpos (OutLink _ p _) = Just p
|
||||
unpos (InLink p _) = Just p
|
||||
unpos _ = Nothing
|
||||
getDir (InLink _ a:_) = a
|
||||
getDir (_:xs) = getDir xs
|
||||
getDir _ = 0 -- fallback
|
||||
|
||||
floorsFromRooms :: [Room] -> [(Point3,Point3)]
|
||||
floorsFromRooms = concatMap (concatMap tToRender . _rmFloor)
|
||||
|
||||
Reference in New Issue
Block a user