Files
loop/src/Dodge/Item/Draw/SPic.hs
T

106 lines
2.5 KiB
Haskell

module Dodge.Item.Draw.SPic where
itemSPic :: Item -> SPic
itemSPic it = modulesSPic it <> case it ^. itType . iyBase of
HELD ht -> heldItemSPic ht it
_ -> mempty
-- NOTDEFINED ->
-- EFFGUN _ ->
-- AUTOEFFGUN _ ->
--
--
-- BOOSTER
-- REWINDER
-- BLINKER
-- BLINKERUNSAFE
-- FORCEFIELDGUN
-- SHRINKER
-- SPAWNER
--
-- CLICKDETECTOR Detector
-- AUTODETECTOR Detector
-- MAGSHIELD
-- FLAMESHIELD
-- FRONTARMOUR
-- WRISTARMOUR
-- INVISIBILITYEQUIPMENT EquipSite
-- BRAINHAT
-- HEADLAMP
-- HEADLAMP1
-- POWERLEGS
-- SPEEDLEGS
-- JUMPLEGS
-- FLATSHIELD
-- JETPACK
--
-- KEYCARD Int
--
-- MEDKIT Int
-- CRAFT CraftType
heldItemSPic ht it = case ht of
BANGSTICK i -> noPic & baseStickShapeX i <> stickClip it
-- PISTOL ->
-- REVOLVER ->
-- REVOLVERX i ->
-- MACHINEPISTOL ->
-- AUTOPISTOL ->
-- SMG ->
-- BANGCONE ->
-- BLUNDERBUSS ->
-- GRAPECANNON i ->
-- MINIGUNX i ->
-- VOLLEYGUN i ->
-- RIFLE ->
-- REPEATER ->
-- AUTORIFLE ->
-- BURSTRIFLE ->
-- BANGROD ->
-- ELEPHANTGUN ->
-- AMR ->
-- AUTOAMR ->
-- SNIPERRIFLE ->
-- MACHINEGUN ->
-- FLAMESPITTER ->
-- FLAMETHROWER ->
-- FLAMETORRENT ->
-- FLAMEWALL ->
-- BLOWTORCH ->
-- AUTOGUN ->
-- SPARKGUN ->
-- TESLAGUN ->
-- LASGUN ->
-- LASCIRCLE ->
-- DUALBEAM ->
-- LASWIDE i ->
-- SONICGUN ->
-- TRACTORGUN ->
-- LAUNCHER ->
-- LAUNCHERX i ->
-- REMOTELAUNCHER ->
-- POISONSPRAYER ->
-- DRONELAUNCHER ->
-- SHATTERGUN ->
modulesSPic :: Item -> SPic
modulesSPic it = mempty
baseStickShapeX :: Int -> Shape
baseStickShapeX i = foldMap f [0..i-1]
where
f j = rotateSH ang baseStickShape
where
ang = fromIntegral j * baseStickSpread - (fromIntegral i - 1) * baseStickSpread * 0.5
baseStickSpread :: Float
baseStickSpread = 0.2
stickClip :: Item -> Shape
stickClip it = case it ^? itConsumption . laLoaded of
Just x | x > 0 -> foldMap f [0..x-1]
_ -> mempty
where
f i = rotateSH ang $ translateSH (V3 5 0 3) $ upperPrismPoly 2 $ square 1.5
where
ang = baseStickSpread * fromIntegral i
- 0.5 * baseStickSpread * fromIntegral (_brlNum (_gunBarrels (_itParams it))-1)