Work on gibs and chasms
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
{-# LANGUAGE LambdaCase #-}
|
||||
module Dodge.Prop.Draw (
|
||||
propSPic,
|
||||
debrisSPic,
|
||||
) where
|
||||
|
||||
import Control.Lens
|
||||
@@ -15,6 +16,11 @@ import ShapePicture
|
||||
propSPic :: Prop -> SPic
|
||||
propSPic pr = drawProp (_prDraw pr) pr
|
||||
|
||||
debrisSPic :: Debris -> SPic
|
||||
debrisSPic db = translateSP (_dbPos db) . overPosSP (Q.rotate (_dbRot db)) $
|
||||
case db ^. dbType of
|
||||
Gib x col -> noPic $ drawGib' x col
|
||||
|
||||
drawProp :: PropDraw -> Prop -> SPic
|
||||
drawProp = \case
|
||||
PropDrawSPic spic -> const spic
|
||||
@@ -39,6 +45,17 @@ drawGib x pr = flesh <> skin
|
||||
translateSH (V3 1 1 (1 - x)) baseCube
|
||||
baseCube = upperPrismPoly Small Typical (2 * x) $ square x
|
||||
|
||||
drawGib' :: Float -> Color -> Shape
|
||||
drawGib' x col = flesh <> skin
|
||||
where
|
||||
flesh =
|
||||
colorSH (dark $ dark red) $
|
||||
translateSHz (negate x) (baseCube & each . sfShadowImportance .~ Superfluous)
|
||||
skin =
|
||||
colorSH col $
|
||||
translateSH (V3 1 1 (1 - x)) baseCube
|
||||
baseCube = upperPrismPoly Small Typical (2 * x) $ square x
|
||||
|
||||
propDrawToggle :: PropDraw -> Prop -> SPic
|
||||
propDrawToggle pd pr
|
||||
| not (_prToggle pr) = mempty
|
||||
|
||||
Reference in New Issue
Block a user