Start moving creature properties out of records
This commit is contained in:
+35
-29
@@ -1,36 +1,42 @@
|
||||
module Dodge.Corpse.Make where
|
||||
import Dodge.Creature.Picture
|
||||
import Dodge.Data.Creature
|
||||
import Dodge.Data.Corpse
|
||||
import Control.Lens
|
||||
import ShapePicture
|
||||
import Shape
|
||||
import Geometry
|
||||
module Dodge.Corpse.Make (makeCorpse) where
|
||||
|
||||
makeCorpse :: CreatureCorpse -> Creature -> Corpse
|
||||
makeCorpse cc = case cc of
|
||||
MakeDefaultCorpse -> makeDefaultCorpse
|
||||
import Dodge.Creature.Shape
|
||||
import Control.Lens
|
||||
import Dodge.Creature.Picture
|
||||
import Dodge.Data.Corpse
|
||||
import Dodge.Data.Creature
|
||||
import Geometry
|
||||
import Shape
|
||||
import ShapePicture
|
||||
|
||||
makeCorpse :: Creature -> Corpse
|
||||
makeCorpse = makeDefaultCorpse
|
||||
|
||||
makeDefaultCorpse :: Creature -> Corpse
|
||||
makeDefaultCorpse cr = defaultCorpse
|
||||
& cpPos .~ _crPos cr
|
||||
& cpDir .~ _crDir cr
|
||||
& cpSPic .~ noPic (scaleSH (V3 crsize crsize crsize) $ mconcat
|
||||
[ colorSH (_skinHead cskin) $ deadScalp cr
|
||||
, colorSH (_skinUpper cskin) $ deadUpperBody cr
|
||||
, rotmdir $ colorSH (_skinLower cskin) $ deadFeet cr
|
||||
]
|
||||
)
|
||||
where
|
||||
cskin = _crType cr -- this should be fixed
|
||||
makeDefaultCorpse cr =
|
||||
defaultCorpse
|
||||
& cpPos .~ _crPos cr
|
||||
& cpDir .~ _crDir cr
|
||||
& cpSPic
|
||||
.~ noPic
|
||||
( scaleSH (V3 crsize crsize crsize) $
|
||||
mconcat
|
||||
[ colorSH (_skinHead cskin) $ deadScalp cr
|
||||
, colorSH (_skinUpper cskin) $ deadUpperBody cr
|
||||
, rotmdir $ colorSH (_skinLower cskin) $ deadFeet cr
|
||||
]
|
||||
)
|
||||
where
|
||||
cskin = crShape $ _crType cr -- this should be fixed
|
||||
crsize = 0.1 * _crRad cr
|
||||
rotmdir = rotateSH (_crMvDir cr - _crDir cr)
|
||||
|
||||
defaultCorpse :: Corpse
|
||||
defaultCorpse = Corpse
|
||||
{ _cpID = 0
|
||||
, _cpPos = 0
|
||||
, _cpDir = 0
|
||||
, _cpSPic = mempty
|
||||
, _cpRes = NoResurrection
|
||||
}
|
||||
defaultCorpse =
|
||||
Corpse
|
||||
{ _cpID = 0
|
||||
, _cpPos = 0
|
||||
, _cpDir = 0
|
||||
, _cpSPic = mempty
|
||||
, _cpRes = NoResurrection
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user