Track entity collision in the Entity class
Rather than having a single function in the Game.Lenses module for determining what collision type if any an entity has, track it in the Entity typeclass itself. This is both more extensible and a better separation of concerns and gets rid of one of the two needs for a circular import. Yay! As part of this, I realized nothing was being done to prevent doors from being placed on tiles that already had walls (since now that was properly causing a collision!) so I've fixed that as well.
This commit is contained in:
		
							parent
							
								
									1b88921bc3
								
							
						
					
					
						commit
						84f32efad4
					
				
					 9 changed files with 37 additions and 35 deletions
				
			
		|  | @ -45,6 +45,8 @@ randomDoors cells = do | |||
|     candidateCells = filter doorable $ Arr.indices cells | ||||
|     subsetRange = (0.8 :: Double, 1.0) | ||||
|     doorable (x, y) = | ||||
|       not (fromMaybe True $ cells ^? ix (x, y)) | ||||
|       && | ||||
|       ( fromMaybe True $ cells ^? ix (x - 1, y) -- left | ||||
|       , fromMaybe True $ cells ^? ix (x, y - 1) -- top | ||||
|       , fromMaybe True $ cells ^? ix (x + 1, y) -- right | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue