Separate out concrete part of world

This commit is contained in:
2022-07-25 12:10:50 +01:00
parent 3354d108be
commit b2efbd2b3e
134 changed files with 933 additions and 930 deletions
+4 -4
View File
@@ -9,7 +9,7 @@ import Data.Maybe
import qualified IntMapHelp as IM
aRadarPulse :: Object -> Creature -> World -> World
aRadarPulse ob cr = radarSweeps .:~ RadarSweep
aRadarPulse ob cr = cWorld . radarSweeps .:~ RadarSweep
{ _rsTimer = 100
, _rsRad = 0
, _rsPos = _crPos cr
@@ -29,7 +29,7 @@ updateRadarSweep w pt
blipsF = findBlips ob
bf = makeBlip ob
x = _rsTimer pt
putBlips = radarBlips .++~ blips
putBlips = cWorld . radarBlips .++~ blips
blips = map bf circPoints
circPoints = blipsF p r w
r = fromIntegral (400 - x*4)
@@ -58,13 +58,13 @@ blipAt r col i p = RadarBlip
}
crBlips :: Point2 -> Float -> World -> [Point2]
crBlips p r = IM.elems . IM.filter f . fmap _crPos . IM.filter g . _creatures
crBlips p r = IM.elems . IM.filter f . fmap _crPos . IM.filter g . _creatures . _cWorld
where
f q = dist p q <= r && dist p q > r - 100
g cr = _crID cr /= 0
itemBlips :: Point2 -> Float -> World -> [Point2]
itemBlips p r = IM.elems . IM.filter f . fmap _flItPos . _floorItems
itemBlips p r = IM.elems . IM.filter f . fmap _flItPos . _floorItems . _cWorld
where
f q = dist p q <= r && dist p q > r - 4