Simplify and unify block placement
This commit is contained in:
@@ -16,7 +16,7 @@ import Dodge.Data
|
||||
import Dodge.Base
|
||||
|
||||
import Dodge.LevelGen.Block
|
||||
import Dodge.LevelGen.WindowBlock
|
||||
import Dodge.LevelGen.LineBlock
|
||||
import Dodge.LevelGen.Pathing
|
||||
import Dodge.LevelGen.StaticWalls
|
||||
import Dodge.LevelGen.AutoDoor
|
||||
@@ -73,10 +73,10 @@ placeSpot ps w = case ps of
|
||||
-> addAutoDoor (shiftPointBy (p,rot) a) (shiftPointBy (p,rot) b) w
|
||||
|
||||
PS {_psPos = p, _psRot = rot, _psType = PutBlock (hp:hps) col ps}
|
||||
-> putBlock(map (shiftPointBy (p,rot)) ps) hp col False hps w
|
||||
-> putBlock (map (shiftPointBy (p,rot)) ps) hp col False hps w
|
||||
|
||||
PS {_psPos = p, _psRot = rot, _psType = PutBlockWall (hp:hps) col ps}
|
||||
-> putBlockWallPart (map (shiftPointBy (p,rot)) ps) hp col False hps w
|
||||
-- PS {_psPos = p, _psRot = rot, _psType = PutBlockWall (hp:hps) col ps}
|
||||
-- -> putBlockWallPart (map (shiftPointBy (p,rot)) ps) hp col False hps w
|
||||
|
||||
PS {_psPos = p, _psRot = rot, _psType = PutBtDoor c bp f a b}
|
||||
-> addButtonDoor c (shiftPointBy (p,rot) bp) (f + rot)
|
||||
@@ -85,12 +85,11 @@ placeSpot ps w = case ps of
|
||||
-> addSwitchDoor c (shiftPointBy (p,rot) bp) (f + rot)
|
||||
(shiftPointBy (p,rot) a) (shiftPointBy (p,rot) b) w
|
||||
|
||||
PS {_psPos = p, _psRot = rot, _psType = PutWindowBlock a b}
|
||||
-> putWindowBlock' (shiftPointBy (p,rot) a) (shiftPointBy (p,rot) b) w
|
||||
PS {_psPos = p, _psRot = rot, _psType = PutLineBlock wl width depth a b}
|
||||
-> putLineBlock wl width depth (shiftPointBy (p,rot) a) (shiftPointBy (p,rot) b) w
|
||||
|
||||
PS {_psPos = p, _psRot = rot, _psType = PutWindow { _pwPoly = ps, _pwColor = c }}
|
||||
-> rmCrossPaths $ over walls (addWindow (q:qs) c) w
|
||||
-- where (q:qs) = translateS p $ rotateS rot ps
|
||||
where (q:qs) = map (shiftPointBy (p,rot)) ps
|
||||
rmCrossPaths w = foldr (uncurry removePathsCrossing) w $ zip (q:qs) (qs++[q])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user