Add check for button hold down when releasing rb for lb action
This commit is contained in:
@@ -97,6 +97,7 @@ data World = World
|
||||
, _doneSideEffects :: [PreloadData SoundOrigin -> IO (PreloadData SoundOrigin)]
|
||||
, _debugFlags :: DebugFlags
|
||||
, _inventoryMode :: InventoryMode
|
||||
, _lClickHammer :: HammerPosition
|
||||
}
|
||||
data InventoryMode
|
||||
= TopInventory
|
||||
@@ -321,6 +322,8 @@ data HammerPosition
|
||||
| HammerReleased
|
||||
| HammerUp
|
||||
| NoHammer
|
||||
deriving
|
||||
(Eq, Ord, Show)
|
||||
data ItemIdentity
|
||||
= Pistol
|
||||
| SpreadGun
|
||||
|
||||
@@ -86,6 +86,7 @@ defaultWorld = World
|
||||
, _doneSideEffects = []
|
||||
, _debugFlags = defaultDebugFlags
|
||||
, _inventoryMode = TopInventory
|
||||
, _lClickHammer = HammerUp
|
||||
}
|
||||
defaultCreature :: Creature
|
||||
defaultCreature = Creature
|
||||
|
||||
@@ -20,16 +20,18 @@ updateUsingInput w =
|
||||
updatePressedButtons :: S.Set MouseButton -> World -> World
|
||||
updatePressedButtons pkeys w
|
||||
| lbPressed && rbPressed
|
||||
= useItem (_yourID w) w
|
||||
| lbPressed = useLeftItem (_yourID w) w
|
||||
= useItem (_yourID w) w & lClickHammer .~ HammerDown
|
||||
| lbPressed && canLeftClick = useLeftItem (_yourID w) w
|
||||
| lbPressed = w
|
||||
| mbPressed = w & clickMousePos .~ _mousePos w
|
||||
& cameraRot -~ rotation
|
||||
| otherwise = w
|
||||
| otherwise = w & lClickHammer .~ HammerUp
|
||||
where
|
||||
lbPressed = ButtonLeft `S.member` pkeys
|
||||
rbPressed = ButtonRight `S.member` pkeys
|
||||
mbPressed = ButtonMiddle `S.member` pkeys
|
||||
rotation = angleBetween (_mousePos w) (_clickMousePos w)
|
||||
canLeftClick = _lClickHammer w == HammerUp
|
||||
|
||||
updatePressedButtonsCarte :: S.Set MouseButton -> World -> World
|
||||
updatePressedButtonsCarte pkeys w
|
||||
|
||||
Reference in New Issue
Block a user