Cleanup, remove chainLinkOrientation/updateItemWithOrientation etc
This commit is contained in:
@@ -31,7 +31,6 @@ import Dodge.Item.Grammar
|
|||||||
import Dodge.Item.HeldOffset
|
import Dodge.Item.HeldOffset
|
||||||
import Dodge.Item.Location
|
import Dodge.Item.Location
|
||||||
import Dodge.Item.MaxAmmo
|
import Dodge.Item.MaxAmmo
|
||||||
import Dodge.Item.Orientation
|
|
||||||
import Dodge.Prop.Gib
|
import Dodge.Prop.Gib
|
||||||
import Dodge.SoundLogic
|
import Dodge.SoundLogic
|
||||||
import Dodge.Targeting.Draw
|
import Dodge.Targeting.Draw
|
||||||
@@ -70,7 +69,6 @@ crUpdate f =
|
|||||||
, updateWalkCycle
|
, updateWalkCycle
|
||||||
, f
|
, f
|
||||||
, invRootItemEffs
|
, invRootItemEffs
|
||||||
, updateHeldRootItem
|
|
||||||
]
|
]
|
||||||
|
|
||||||
-- I have changed the ordering of item/equipment effects, which may have
|
-- I have changed the ordering of item/equipment effects, which may have
|
||||||
@@ -163,7 +161,7 @@ invItemLocUpdate cr loc w = doAnyEquipmentEffect loc cr $ case itm ^. itType of
|
|||||||
HELD LASER | loc ^. locLDT . ldtValue . _2 == WeaponTargetingSF
|
HELD LASER | loc ^. locLDT . ldtValue . _2 == WeaponTargetingSF
|
||||||
, itm ^? itLocation . ilIsAttached == Just True -> shineTargetLaser cr loc w
|
, itm ^? itLocation . ilIsAttached == Just True -> shineTargetLaser cr loc w
|
||||||
HELD TORCH
|
HELD TORCH
|
||||||
| itm ^? itLocation . ilIsAttached == Just True -> shineTorch' cr loc w
|
| itm ^? itLocation . ilIsAttached == Just True -> shineTorch cr loc w
|
||||||
TARGETING tt
|
TARGETING tt
|
||||||
| itm ^? itLocation . ilIsAttached == Just True -> updateItemTargeting tt cr itm w
|
| itm ^? itLocation . ilIsAttached == Just True -> updateItemTargeting tt cr itm w
|
||||||
ARHUD
|
ARHUD
|
||||||
@@ -287,44 +285,6 @@ trySynthBullet loc w = fromMaybe w $ do
|
|||||||
where
|
where
|
||||||
itm = loc ^. locLDT . ldtValue . _1
|
itm = loc ^. locLDT . ldtValue . _1
|
||||||
|
|
||||||
updateHeldRootItem :: Creature -> World -> World
|
|
||||||
updateHeldRootItem cr = fromMaybe id $ do
|
|
||||||
invid <- cr ^? crManipulation . manObject . imRootSelectedItem
|
|
||||||
itmtree <- invRootTrees' (_crInv cr) ^? ix invid
|
|
||||||
return $ updateAttachedItems itmtree cr
|
|
||||||
|
|
||||||
updateAttachedItems :: LDTree ItemLink CItem -> Creature -> World -> World
|
|
||||||
updateAttachedItems itmtree cr =
|
|
||||||
cldtPropagateFold
|
|
||||||
chainLinkOrientation
|
|
||||||
chainLinkOrientation
|
|
||||||
(updateItemWithOrientation cr)
|
|
||||||
(handHandleOrient (LocLDT TopLDT itmtree) cr)
|
|
||||||
(LocLDT TopLDT itmtree)
|
|
||||||
|
|
||||||
-- need to check rotation
|
|
||||||
chainLinkOrientation :: Point3Q -> CItem -> ItemLink -> CItem -> Point3Q
|
|
||||||
chainLinkOrientation o par lt child =
|
|
||||||
o
|
|
||||||
`Q.comp` orientAttachment (par ^. _1) lt (child ^. _1)
|
|
||||||
|
|
||||||
updateItemWithOrientation ::
|
|
||||||
Creature ->
|
|
||||||
Point3Q ->
|
|
||||||
LocationLDT ItemLink CItem ->
|
|
||||||
World ->
|
|
||||||
World
|
|
||||||
updateItemWithOrientation cr m loc@(LocLDT _ itmtree) w =
|
|
||||||
case (ci ^. _1 . itType, ci ^. _2) of
|
|
||||||
(HELD TORCH, _) -> w -- shineTorch cr itmtree m w
|
|
||||||
(HELD LASER, WeaponTargetingSF) -> w -- shineTargetLaser cr loc m w
|
|
||||||
(TARGETING tt, _) -> w -- updateItemTargeting tt cr itm w
|
|
||||||
(ARHUD, _) -> w --drawARHUD loc w
|
|
||||||
_ -> w
|
|
||||||
where
|
|
||||||
ci = itmtree ^. ldtValue
|
|
||||||
itm = ci ^. _1
|
|
||||||
|
|
||||||
drawARHUD :: LocationLDT ItemLink OItem -> World -> World
|
drawARHUD :: LocationLDT ItemLink OItem -> World -> World
|
||||||
drawARHUD (LocLDT con _) w = fromMaybe w $ do
|
drawARHUD (LocLDT con _) w = fromMaybe w $ do
|
||||||
itm <- con ^? cldtParent . _1
|
itm <- con ^? cldtParent . _1
|
||||||
@@ -372,63 +332,8 @@ shineTargetLaser cr loc w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ d
|
|||||||
invid = _ilInvID $ _itLocation itm
|
invid = _ilInvID $ _itLocation itm
|
||||||
col = blue -- mixColors reloadFrac (1-reloadFrac) blue red
|
col = blue -- mixColors reloadFrac (1-reloadFrac) blue red
|
||||||
|
|
||||||
--shineTargetLaser :: Creature -> LocationLDT ItemLink CItem -> Point3Q -> World -> World
|
shineTorch :: Creature -> LocationLDT ItemLink OItem -> World -> World
|
||||||
--shineTargetLaser cr loc o w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ do
|
shineTorch cr loc = fromMaybe id $ do
|
||||||
-- guard (crIsAiming cr)
|
|
||||||
-- (_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft)
|
|
||||||
-- i <- mag ^. ldtValue . _1 . itConsumables
|
|
||||||
-- guard $ i >= x
|
|
||||||
-- maginvid <- mag ^? ldtValue . _1 . itLocation . ilInvID
|
|
||||||
-- return $
|
|
||||||
-- w
|
|
||||||
-- & worldEventFlags . at InventoryChange ?~ ()
|
|
||||||
-- & cWorld . lWorld . creatures . ix (_crID cr)
|
|
||||||
-- . crInv
|
|
||||||
-- . ix maginvid
|
|
||||||
-- . itConsumables
|
|
||||||
-- . _Just
|
|
||||||
-- -~ x
|
|
||||||
-- & cWorld . lWorld . lasers
|
|
||||||
-- .:~ Laser
|
|
||||||
-- { _lpPhaseV = 1
|
|
||||||
-- , _lpDir = _crDir cr + argV (Q.qToV2 q)
|
|
||||||
-- , _lpPos = pos
|
|
||||||
-- , _lpColor = col
|
|
||||||
-- , _lpType = TargetingLaser (_itID itm)
|
|
||||||
-- }
|
|
||||||
-- where
|
|
||||||
-- itmtree = loc ^. locLDT
|
|
||||||
-- (p, q) = o `Q.comp` (V3 5 0 0, Q.qID)
|
|
||||||
-- x = 1
|
|
||||||
-- isammolink AmmoInLink{} = True
|
|
||||||
-- isammolink _ = False
|
|
||||||
-- pos = _crPos cr + xyV3 (rotate3 cdir p)
|
|
||||||
-- cdir = _crDir cr
|
|
||||||
-- itm = itmtree ^. ldtValue . _1
|
|
||||||
-- pointittarg = cWorld . lWorld . creatures . ix cid . crInv . ix invid . itTargeting
|
|
||||||
-- cid = _crID cr
|
|
||||||
-- invid = _ilInvID $ _itLocation itm
|
|
||||||
-- col = blue -- mixColors reloadFrac (1-reloadFrac) blue red
|
|
||||||
|
|
||||||
shineTorch :: Creature -> LDTree ItemLink CItem -> Point3Q -> World -> World
|
|
||||||
shineTorch cr itmtree (p, q) = fromMaybe id $ do
|
|
||||||
(_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft)
|
|
||||||
i <- mag ^. ldtValue . _1 . itConsumables
|
|
||||||
guard $ crIsAiming cr
|
|
||||||
guard $ i >= x
|
|
||||||
invid <- mag ^? ldtValue . _1 . itLocation . ilInvID
|
|
||||||
return $
|
|
||||||
(cWorld . lWorld . lights .:~ LSParam pos 250 0.7)
|
|
||||||
. (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid . itConsumables . _Just -~ x)
|
|
||||||
where
|
|
||||||
x = 10
|
|
||||||
isammolink AmmoInLink{} = True
|
|
||||||
isammolink _ = False
|
|
||||||
pos = _crPos cr `v2z` 0 + rotate3 cdir (p + Q.rotate q (V3 8 0 1.5))
|
|
||||||
cdir = _crDir cr
|
|
||||||
|
|
||||||
shineTorch' :: Creature -> LocationLDT ItemLink OItem -> World -> World
|
|
||||||
shineTorch' cr loc = fromMaybe id $ do
|
|
||||||
(_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft)
|
(_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft)
|
||||||
i <- mag ^. ldtValue . _1 . itConsumables
|
i <- mag ^. ldtValue . _1 . itConsumables
|
||||||
guard $ crIsAiming cr
|
guard $ crIsAiming cr
|
||||||
|
|||||||
Reference in New Issue
Block a user