Remove Smoke datatype
This commit is contained in:
@@ -45,7 +45,6 @@ worldPictures w
|
||||
, map _ptPict' $ _particles' w
|
||||
, map drawWallFloor (wallFloorsToDraw w)
|
||||
-- , map (drawWallFace w) (wallShadowsToDraw w)
|
||||
, map (drawSmokeShadow w) $ _smoke w
|
||||
, testPic w
|
||||
]
|
||||
|
||||
@@ -86,43 +85,6 @@ wallFloorsToDraw w = filter isVisible $ IM.elems $ wallsOnScreen w
|
||||
wallsOnScreen :: World -> IM.IntMap Wall
|
||||
wallsOnScreen w = wallsNearZones (zoneOfScreen w) w
|
||||
|
||||
drawSmokeShadow :: World -> Smoke -> Picture
|
||||
drawSmokeShadow w sm@(Smoke {_smPos = p, _smRad = r', _smColor = c, _smPs = ps, _smTime = t})
|
||||
= pictures
|
||||
[ onLayerL [74,0] $ color col $
|
||||
pictures [uncurry translate p $ circle r'
|
||||
,line $ (\(x,y) -> [x,y]) $ smokePerpLine (_cameraPos w) p sm
|
||||
,line [_cameraPos w, mouseWorldPos w]
|
||||
,trap' p
|
||||
]
|
||||
, onLayerL [74] $ color (withAlpha 0.1 c) $ pictures
|
||||
$ concatMap (f . (+.+ p)) p's
|
||||
]
|
||||
where
|
||||
r = r'/2
|
||||
col | smokeLOS (_cameraPos w) (mouseWorldPos w) w = red
|
||||
| otherwise = green
|
||||
orth p' = r *.* (safeNormalizeV $ vNormal $ p' -.- _cameraCenter w)
|
||||
pa p' = p' +.+ orth p'
|
||||
pb p' = p' -.- orth p'
|
||||
pao p' = pa p' +.+ l *.* safeNormalizeV (pa p' -.- _cameraCenter w)
|
||||
pbo p' = pb p' +.+ l *.* safeNormalizeV (pb p' -.- _cameraCenter w)
|
||||
semiCirc p' = uncurry translate p' $ rotate (0 - (a p')) $ arcSolid 0 180 r
|
||||
a p' = pi - argV (orth p')
|
||||
trap p' = polygon [pa p', pb p', pbo p', pao p']
|
||||
f p' = [semiCirc p', trap p']
|
||||
p's = zipWith (\x p -> rotateV (x * fromIntegral t / 60) p) xs ps
|
||||
xs = concat $ repeat [-1,-0.5,0,0.5,1]
|
||||
l = _windowX w + _windowY w + magV (_cameraPos w -.- _cameraCenter w)
|
||||
-- cenpic = color (withAlpha 0.5 c) $ pictures $ f p
|
||||
orth' p' = r' *.* (safeNormalizeV $ vNormal $ p' -.- _cameraCenter w)
|
||||
pa' p' = p' +.+ orth' p'
|
||||
pb' p' = p' -.- orth' p'
|
||||
pao' p' = pa' p' +.+ l *.* safeNormalizeV (pa' p' -.- _cameraCenter w)
|
||||
pbo' p' = pb' p' +.+ l *.* safeNormalizeV (pb' p' -.- _cameraCenter w)
|
||||
trap' p' = line [pa' p', pb' p', pbo' p', pao' p',pa' p']
|
||||
semiCirc' p' = uncurry translate p' $ rotate (0 - (a p')) $ arcSolid 0 180 r'
|
||||
|
||||
drawWallFloor :: Wall -> Picture
|
||||
drawWallFloor wl = if _wlIsSeeThrough wl
|
||||
then setDepth 0.9 . color c $ polygon [x,x +.+ n2,y+.+n2, y]
|
||||
|
||||
Reference in New Issue
Block a user