Data-ify creature drawing (partially)
This commit is contained in:
@@ -2,6 +2,7 @@ module Dodge.Render.ShapePicture
|
||||
( worldSPic
|
||||
) where
|
||||
import Dodge.Creature.Picture.Awareness
|
||||
import Dodge.Creature.Picture
|
||||
import Dodge.Particle.Draw
|
||||
import Dodge.RadarBlip
|
||||
import Dodge.Flare
|
||||
@@ -54,7 +55,7 @@ worldSPic cfig w
|
||||
<> foldup (shiftDraw _blPos _blDir _blDraw) (filtOn' _blPos _blocks)
|
||||
<> foldup (shiftDraw _fsPos _fsDir (const _fsSPic)) (filtOn' _fsPos _shapes)
|
||||
<> foldup (dbArg _cpPict) (filtOn' _cpPos _corpses)
|
||||
<> foldup (dbArg _crPict) (filtOn' _crPos _creatures)
|
||||
<> foldup drawCreature (filtOn' _crPos _creatures)
|
||||
<> foldup floorItemSPic (filtOn' _flItPos _floorItems)
|
||||
<> foldup btSPic (filtOn' _btPos _buttons)
|
||||
<> foldup mcSPic (filtOn' _mcPos _machines)
|
||||
@@ -71,6 +72,11 @@ anyTargeting cfig w = (mempty,pictures $ IM.elems $ IM.mapMaybe f $ _crInv cr)
|
||||
cr = you w
|
||||
f it = fmap (\g -> g it cr cfig w) (it ^? itTargeting . tgDraw)
|
||||
|
||||
drawCreature :: Creature -> SPic
|
||||
drawCreature cr = case _crType cr of
|
||||
Humanoid {} -> basicCrPict cr
|
||||
DrawnCreature f -> f cr
|
||||
|
||||
shiftDraw :: (a -> Point2) -> (a -> Float) -> (a -> a -> SPic) -> a -> SPic
|
||||
shiftDraw fpos fdir fdraw x = uncurryV translateSPf (fpos x)
|
||||
. rotateSP (fdir x)
|
||||
|
||||
Reference in New Issue
Block a user