Tweak led attachment orientation

This commit is contained in:
2025-10-07 14:21:40 +01:00
parent 709195ed6a
commit 477bb8b4b2
4 changed files with 102 additions and 95 deletions
+1 -17
View File
@@ -1,34 +1,18 @@
{-# LANGUAGE LambdaCase #-}
module Dodge.Item.Draw.SPic (
itemSPic,
itemTreeSPic,
) where
module Dodge.Item.Draw.SPic (itemSPic) where
import Color
import Data.Maybe
import Data.Strict.Tuple
import Dodge.Data.ComposedItem
import Dodge.Data.DoubleTree
import Dodge.Data.Item
import Dodge.Item.MaxAmmo
import Dodge.Item.Orientation
import Geometry
import LensHelp
import qualified Linear.Quaternion as Q
--import qualified Linear.Quaternion as Q
import Picture
import Shape
import ShapePicture
itemTreeSPic :: DTree CItem -> SPic
itemTreeSPic (DT (itm, _) l r) = itemSPic itm <> foldMap (itemRotTreeSPic itm) (l <> r)
itemRotTreeSPic :: Item -> DTree CItem -> SPic
itemRotTreeSPic par t = translateSP p . overPosSP (Q.rotate q) $ itemTreeSPic t
where
(p, q) = orientAttachment par itm
itm = t ^. dtValue
itemSPic :: Item -> SPic
itemSPic it = case it ^. itType of