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