Add files

This commit is contained in:
2025-01-02 11:16:57 +00:00
parent 9a8645c2be
commit 8bfaa12ea7
4 changed files with 72 additions and 0 deletions
+25
View File
@@ -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