Add files
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
module Dodge.SelectedClose (getSelectedCloseObj,interactWithCloseObj) where
|
||||
|
||||
import Dodge.Button.Event
|
||||
import Dodge.Inventory.Add
|
||||
import Control.Lens
|
||||
import Dodge.Data.World
|
||||
import NewInt
|
||||
|
||||
interactWithCloseObj :: Either FloorItem Button -> World -> World
|
||||
interactWithCloseObj e w = worldEventFlags . at InventoryChange ?~ () $ case e of
|
||||
(Left flit) -> pickUpItem 0 flit w
|
||||
(Right but) -> doButtonEvent (_btEvent but) but w
|
||||
|
||||
|
||||
getSelectedCloseObj :: World -> Maybe (Either FloorItem Button)
|
||||
getSelectedCloseObj w = do
|
||||
(i, j, _) <- w ^? hud . hudElement . diSelection . _Just
|
||||
case i of
|
||||
3 -> do
|
||||
NInt k <- w ^? hud . closeItems . ix j
|
||||
fmap Left $ w ^? cWorld . lWorld . floorItems . unNIntMap . ix k
|
||||
5 -> do
|
||||
k <- w ^? hud . closeButtons . ix j
|
||||
fmap Right $ w ^? cWorld . lWorld . buttons . ix k
|
||||
_ -> Nothing
|
||||
Reference in New Issue
Block a user