Move GenWorld update of placements into product type
This commit is contained in:
@@ -33,14 +33,14 @@ import Data.Bifunctor
|
||||
-- to the placement
|
||||
placeSpot :: (GenWorld,Room) -> Placement -> ( (GenWorld,Room), [Placement] )
|
||||
placeSpot (w,rm) plmnt = case plmnt of
|
||||
pl@Placement{_plGenUpdate = Just f} -> let (gp,pl') = f (_gParams w) pl
|
||||
in placeSpot (w & gParams .~ gp,rm) pl'
|
||||
Placement{_plSpot = PSRoomRand i f} -> placeSpotRoomRand rm i f plmnt w
|
||||
Placement{_plSpot = PSPos extract eff fallback} -> placeSpotUsingLink w rm plmnt extract eff fallback
|
||||
Placement{} -> placePlainPSSpot w rm plmnt shift
|
||||
PlacementUsingPos p subpl -> placeSpot (w,rm) (subpl (shiftPoint3By shift p))
|
||||
RandomPlacement rplmnt -> placeRandomPlacement rplmnt w rm
|
||||
PickOnePlacement i pl -> ((placePickOne i pl rm w, rm), [])
|
||||
PlacementGenUpdate f pl -> let (gp,pl') = f (_gParams w) pl
|
||||
in placeSpot (w & gParams .~ gp,rm) pl'
|
||||
where
|
||||
shift = _rmShift rm
|
||||
|
||||
|
||||
Reference in New Issue
Block a user