Record aim position in LWorld

This commit is contained in:
2025-06-03 09:34:18 +01:00
parent 1de90a97f0
commit a73db304d0
9 changed files with 26 additions and 29 deletions
+4 -5
View File
@@ -5,7 +5,6 @@ module Dodge.Creature.YourControl (
import Control.Monad
import qualified Data.Map.Strict as M
import Data.Maybe
import Dodge.Base.Coordinate
import Dodge.Creature.Impulse.Movement
import Dodge.Creature.Impulse.UseItem
import Dodge.Data.World
@@ -112,14 +111,14 @@ scancodeToHotkey x = case x of
within wasdMovement should probably be done first
-}
wasdWithAiming :: World -> Creature -> Creature
wasdWithAiming w cr = wasdAim inp cam $ wasdMovement inp cam speed cr
wasdWithAiming w cr = wasdAim inp w $ wasdMovement inp cam speed cr
where
speed = _mvSpeed $ _crMvType cr
inp = w ^. input
cam = w ^. wCam
wasdAim :: Input -> Camera -> Creature -> Creature
wasdAim inp cam cr
wasdAim :: Input -> World -> Creature -> Creature
wasdAim inp w cr
| Just 0 <- inp ^? mouseButtons . ix SDL.ButtonRight
, Nothing <- inp ^? mouseButtons . ix SDL.ButtonLeft
= setAimPosture cr
@@ -127,7 +126,7 @@ wasdAim inp cam cr
| Aiming <- cr ^. crStance . posture = removeAimPosture cr
| otherwise = creatureTurnTowardDir (_crMvAim cr) 0.2 cr
where
mousedir = argV $ mouseWorldPos inp cam - (cr ^. crPos)
mousedir = argV $ w ^. cWorld . lWorld . lAimPos - (cr ^. crPos)
setAimPosture :: Creature -> Creature
setAimPosture = (crStance . posture .~ Aiming) . doAimTwist (- twoHandTwistAmount)