Cleanup buttons
This commit is contained in:
+12
-24
@@ -1,34 +1,22 @@
|
||||
module Dodge.Button.Event where
|
||||
{-# LANGUAGE LambdaCase #-}
|
||||
module Dodge.Button.Event (doButtonEvent) where
|
||||
|
||||
import Sound.Data
|
||||
import Control.Lens
|
||||
import Dodge.Data.World
|
||||
import Dodge.SoundLogic
|
||||
import Dodge.WorldEffect
|
||||
import Sound.Data
|
||||
|
||||
doButtonEvent :: ButtonEvent -> Button -> World -> World
|
||||
doButtonEvent be = case be of
|
||||
-- ButtonDoNothing -> const id
|
||||
doButtonEvent = \case
|
||||
ButtonPress True _ _ -> const id
|
||||
ButtonPress False f _ -> \b ->
|
||||
doWdWd f
|
||||
. set (cWorld . lWorld . buttons . ix (_btID b) . btEvent . btOn) True
|
||||
. soundStart (LeverSound 0) (_btPos b) click1S Nothing
|
||||
ButtonSwitch oneff offeff _ _ _ -> flipSwitch oneff offeff
|
||||
ButtonPress False f _ -> buttonFlip f
|
||||
ButtonSwitch _ f _ _ True -> buttonFlip f
|
||||
ButtonSwitch f _ _ _ False -> buttonFlip f
|
||||
ButtonAccessTerminal -> accessTerminal . _btTermMID
|
||||
|
||||
flipSwitch :: WdWd -> WdWd -> Button -> World -> World
|
||||
flipSwitch oneff offeff bt
|
||||
| _btOn (_btEvent bt) =
|
||||
doWdWd offeff . dosound
|
||||
. set (cWorld . lWorld . buttons . ix (_btID bt) . btEvent . btOn) False
|
||||
| otherwise =
|
||||
doWdWd oneff . dosound
|
||||
. set (cWorld . lWorld . buttons . ix (_btID bt) . btEvent . btOn) True
|
||||
where
|
||||
dosound = soundWithStatus ToStart (LeverSound 0) (_btPos bt) click1S Nothing
|
||||
|
||||
-- switchEffect b = case _btState b of
|
||||
-- BtOff -> effOn . (buttons . ix (_btID b) %~ turnOn )
|
||||
-- BtOn -> effOff . (buttons . ix (_btID b) %~ turnOff)
|
||||
-- _ -> error "Trying to switch a button with no label"
|
||||
buttonFlip :: WdWd -> Button -> World -> World
|
||||
buttonFlip f bt =
|
||||
doWdWd f
|
||||
. soundWithStatus ToStart (LeverSound 0) (bt ^. btPos) click1S Nothing
|
||||
. over (cWorld . lWorld . buttons . ix (bt ^. btID) . btEvent . btOn) not
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
module Dodge.SelectedClose (getSelectedCloseObj,interactWithCloseObj) where
|
||||
module Dodge.SelectedClose (getSelectedCloseObj, interactWithCloseObj) where
|
||||
|
||||
import Dodge.Button.Event
|
||||
import Dodge.Inventory.Add
|
||||
import Control.Lens
|
||||
import Dodge.Button.Event
|
||||
import Dodge.Data.World
|
||||
import Dodge.Inventory.Add
|
||||
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
|
||||
|
||||
(Right but) -> doButtonEvent (but ^. btEvent) but w
|
||||
|
||||
getSelectedCloseObj :: World -> Maybe (Either FloorItem Button)
|
||||
getSelectedCloseObj w = do
|
||||
|
||||
@@ -215,9 +215,6 @@ Branch src/Dodge/Room/Branch.hs 4;" m
|
||||
Breather src/Dodge/Room/Breather.hs 1;" m
|
||||
BrigSS src/Dodge/Data/Scenario.hs 102;" C
|
||||
Brute src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 17;" C
|
||||
BtInactive src/Dodge/Data/Button.hs 51;" C
|
||||
BtOff src/Dodge/Data/Button.hs 51;" C
|
||||
BtOn src/Dodge/Data/Button.hs 51;" C
|
||||
BulBall src/Dodge/Data/Bullet.hs 37;" C
|
||||
BulFlak src/Dodge/Data/Bullet.hs 39;" C
|
||||
BulFrag src/Dodge/Data/Bullet.hs 40;" C
|
||||
@@ -239,15 +236,13 @@ BulletPayload src/Dodge/Data/Bullet.hs 36;" t
|
||||
BulletTrajectory src/Dodge/Data/Bullet.hs 44;" t
|
||||
BulletTrajectoryType src/Dodge/Data/Bullet.hs 51;" t
|
||||
BurstTrigger src/Dodge/Data/TriggerType.hs 14;" C
|
||||
Button src/Dodge/Data/Button.hs 35;" t
|
||||
Button src/Dodge/Data/Button.hs 30;" t
|
||||
Button src/Dodge/Data/Button.hs 6;" m
|
||||
Button src/Dodge/Placement/Instance/Button.hs 1;" m
|
||||
ButtonAccessTerminal src/Dodge/Data/Button.hs 31;" C
|
||||
ButtonDoNothing src/Dodge/Data/Button.hs 17;" C
|
||||
ButtonEvent src/Dodge/Data/Button.hs 16;" t
|
||||
ButtonPress src/Dodge/Data/Button.hs 18;" C
|
||||
ButtonSimpleSwith src/Dodge/Data/Button.hs 25;" C
|
||||
ButtonState src/Dodge/Data/Button.hs 51;" t
|
||||
ButtonAccessTerminal src/Dodge/Data/Button.hs 28;" C
|
||||
ButtonEvent src/Dodge/Data/Button.hs 15;" t
|
||||
ButtonPress src/Dodge/Data/Button.hs 16;" C
|
||||
ButtonSwitch src/Dodge/Data/Button.hs 21;" C
|
||||
CAMERA src/Dodge/Data/Item/Combine.hs 75;" C
|
||||
CAN src/Dodge/Data/Item/Combine.hs 56;" C
|
||||
CDoNothing src/Dodge/Data/Item/HeldUse.hs 15;" C
|
||||
@@ -2175,7 +2170,6 @@ WasLeftForward src/Dodge/Data/Creature/Stance.hs 34;" C
|
||||
WasRightForward src/Dodge/Data/Creature/Stance.hs 35;" C
|
||||
WatchAndWait src/Dodge/Data/ActionPlan.hs 183;" C
|
||||
WdBl src/Dodge/Data/WorldEffect.hs 51;" t
|
||||
WdBlBtNotOff src/Dodge/Data/WorldEffect.hs 58;" C
|
||||
WdBlBtOn src/Dodge/Data/WorldEffect.hs 57;" C
|
||||
WdBlConst src/Dodge/Data/WorldEffect.hs 54;" C
|
||||
WdBlCrFilterNearPoint src/Dodge/Data/WorldEffect.hs 56;" C
|
||||
@@ -2309,23 +2303,20 @@ _bmPoints src/Dodge/Data/Beam.hs 24;" f
|
||||
_bmPos src/Dodge/Data/Beam.hs 20;" f
|
||||
_bmRange src/Dodge/Data/Beam.hs 26;" f
|
||||
_bmType src/Dodge/Data/Beam.hs 29;" f
|
||||
_boffEff src/Dodge/Data/Button.hs 27;" f
|
||||
_bonEff src/Dodge/Data/Button.hs 26;" f
|
||||
_boffEff src/Dodge/Data/Button.hs 23;" f
|
||||
_bonEff src/Dodge/Data/Button.hs 22;" f
|
||||
_bounceTolerance src/Dodge/Data/Projectile.hs 57;" f
|
||||
_bpColor src/Dodge/Data/Button.hs 23;" f
|
||||
_bpEff src/Dodge/Data/Button.hs 22;" f
|
||||
_bpSound src/Dodge/Data/Button.hs 21;" f
|
||||
_bpState src/Dodge/Data/Button.hs 19;" f
|
||||
_bssColor1 src/Dodge/Data/Button.hs 28;" f
|
||||
_bssColor2 src/Dodge/Data/Button.hs 29;" f
|
||||
_btColor src/Dodge/Data/Button.hs 46;" f
|
||||
_btEvent src/Dodge/Data/Button.hs 40;" f
|
||||
_btID src/Dodge/Data/Button.hs 41;" f
|
||||
_btName src/Dodge/Data/Button.hs 45;" f
|
||||
_btPos src/Dodge/Data/Button.hs 38;" f
|
||||
_btRot src/Dodge/Data/Button.hs 39;" f
|
||||
_btState src/Dodge/Data/Button.hs 43;" f
|
||||
_btTermMID src/Dodge/Data/Button.hs 44;" f
|
||||
_bpColor src/Dodge/Data/Button.hs 19;" f
|
||||
_bpEff src/Dodge/Data/Button.hs 18;" f
|
||||
_bsColor1 src/Dodge/Data/Button.hs 24;" f
|
||||
_bsColor2 src/Dodge/Data/Button.hs 25;" f
|
||||
_btEvent src/Dodge/Data/Button.hs 33;" f
|
||||
_btID src/Dodge/Data/Button.hs 34;" f
|
||||
_btOn src/Dodge/Data/Button.hs 17;" f
|
||||
_btOn src/Dodge/Data/Button.hs 26;" f
|
||||
_btPos src/Dodge/Data/Button.hs 31;" f
|
||||
_btRot src/Dodge/Data/Button.hs 32;" f
|
||||
_btTermMID src/Dodge/Data/Button.hs 35;" f
|
||||
_buDam src/Dodge/Data/Bullet.hs 38;" f
|
||||
_buDrag src/Dodge/Data/Bullet.hs 23;" f
|
||||
_buEffect src/Dodge/Data/Bullet.hs 19;" f
|
||||
@@ -3311,7 +3302,7 @@ activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 84;" f
|
||||
activeTargetCursorPic src/Dodge/Targeting/Draw.hs 31;" f
|
||||
addArmour src/Dodge/Creature.hs 85;" f
|
||||
addBranchAt src/Dodge/Tree/GenerateStructure.hs 18;" f
|
||||
addButtonSlowDoor src/Dodge/Room/LongDoor.hs 96;" f
|
||||
addButtonSlowDoor src/Dodge/Room/LongDoor.hs 97;" f
|
||||
addCrGibs src/Dodge/Prop/Gib.hs 35;" f
|
||||
addDepth src/Picture/Base.hs 133;" f
|
||||
addDoorWall src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 53;" f
|
||||
@@ -3340,7 +3331,7 @@ addPolyWalls src/Dodge/LevelGen/StaticWalls.hs 129;" f
|
||||
addRandomGirderEW src/Dodge/Room/Girder.hs 9;" f
|
||||
addRandomGirderFrom src/Dodge/Room/Girder.hs 16;" f
|
||||
addSideEffect src/Dodge/Concurrent.hs 29;" f
|
||||
addSouthPillars src/Dodge/Room/LongDoor.hs 88;" f
|
||||
addSouthPillars src/Dodge/Room/LongDoor.hs 89;" f
|
||||
addTermSignal src/Dodge/Event/Input.hs 34;" f
|
||||
addToTrunk src/TreeHelp.hs 156;" f
|
||||
addWarningTerminal src/Dodge/Room/Warning.hs 36;" f
|
||||
@@ -3651,7 +3642,7 @@ clipZoom src/Dodge/Update/Camera.hs 222;" f
|
||||
clockCycle src/Dodge/Clock.hs 9;" f
|
||||
closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 219;" f
|
||||
closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 204;" f
|
||||
closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 243;" f
|
||||
closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 241;" f
|
||||
closeObjectInfo src/Dodge/Render/HUD.hs 224;" f
|
||||
closestCreatureID src/Dodge/Debug.hs 116;" f
|
||||
closestPointOnLine src/Geometry/Intersect.hs 251;" f
|
||||
@@ -3901,7 +3892,7 @@ defaultAutoWall src/Dodge/Default/Door.hs 15;" f
|
||||
defaultBlock src/Dodge/Default/Block.hs 5;" f
|
||||
defaultBounds src/Dodge/Data/Bounds.hs 20;" f
|
||||
defaultBullet src/Dodge/Item/Weapon/Bullet.hs 10;" f
|
||||
defaultButton src/Dodge/Default.hs 49;" f
|
||||
defaultButton src/Dodge/Default.hs 48;" f
|
||||
defaultCWCam src/Dodge/Default/World.hs 69;" f
|
||||
defaultCWGen src/Dodge/Default/World.hs 59;" f
|
||||
defaultCWorld src/Dodge/Default/World.hs 84;" f
|
||||
@@ -3918,11 +3909,11 @@ defaultDirtWall src/Dodge/Default/Wall.hs 61;" f
|
||||
defaultDisplayInventory src/Dodge/Default/World.hs 167;" f
|
||||
defaultDoor src/Dodge/Default/Door.hs 29;" f
|
||||
defaultDoorWall src/Dodge/Default/Wall.hs 32;" f
|
||||
defaultDrawButton src/Dodge/Button/Draw.hs 29;" f
|
||||
defaultDrawButton src/Dodge/Button/Draw.hs 30;" f
|
||||
defaultEquip src/Dodge/Default/Item/Use/Equipment.hs 6;" f
|
||||
defaultEquipUse src/Dodge/Default/Item/Use.hs 7;" f
|
||||
defaultEquipment src/Dodge/Default.hs 25;" f
|
||||
defaultFlIt src/Dodge/Default.hs 28;" f
|
||||
defaultEquipment src/Dodge/Default.hs 24;" f
|
||||
defaultFlIt src/Dodge/Default.hs 27;" f
|
||||
defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f
|
||||
defaultHUD src/Dodge/Default/World.hs 156;" f
|
||||
defaultHeldItem src/Dodge/Default/Item.hs 9;" f
|
||||
@@ -3935,13 +3926,13 @@ defaultLS src/Dodge/Default/LightSource.hs 8;" f
|
||||
defaultLWorld src/Dodge/Default/World.hs 96;" f
|
||||
defaultLeftLoadable src/Dodge/Default/Item/Use/Consumption.hs 8;" f
|
||||
defaultListDisplayParams src/Dodge/ListDisplayParams.hs 18;" f
|
||||
defaultMachine src/Dodge/Default.hs 31;" f
|
||||
defaultMachine src/Dodge/Default.hs 30;" f
|
||||
defaultMachineWall src/Dodge/Default/Wall.hs 48;" f
|
||||
defaultMuzzles src/Dodge/Default/Item/Use/AimParams.hs 8;" f
|
||||
defaultPP src/Dodge/Default.hs 63;" f
|
||||
defaultPP src/Dodge/Default.hs 61;" f
|
||||
defaultPerceptionState src/Dodge/Default/Creature.hs 73;" f
|
||||
defaultProp src/Dodge/Default/Prop.hs 6;" f
|
||||
defaultProximitySensor src/Dodge/Default.hs 74;" f
|
||||
defaultProximitySensor src/Dodge/Default.hs 72;" f
|
||||
defaultRoom src/Dodge/Default/Room.hs 9;" f
|
||||
defaultSensorWall src/Dodge/Default/Wall.hs 58;" f
|
||||
defaultSwitchWall src/Dodge/Default/Door.hs 22;" f
|
||||
@@ -4207,8 +4198,8 @@ drawShockwave src/Dodge/Shockwave/Draw.hs 7;" f
|
||||
drawSpark src/Dodge/Spark/Draw.hs 7;" f
|
||||
drawStaticBall src/Dodge/EnergyBall/Draw.hs 27;" f
|
||||
drawSubInventory src/Dodge/Render/HUD.hs 161;" f
|
||||
drawSwitch src/Dodge/Button/Draw.hs 16;" f
|
||||
drawSwitchWire src/Dodge/LevelGen/Switch.hs 27;" f
|
||||
drawSwitch src/Dodge/Button/Draw.hs 17;" f
|
||||
drawSwitchWire src/Dodge/LevelGen/Switch.hs 30;" f
|
||||
drawTargetingAR src/Dodge/Targeting/Draw.hs 20;" f
|
||||
drawTerminalDisplay src/Dodge/Render/HUD.hs 364;" f
|
||||
drawTeslaArc src/Dodge/Tesla/Arc/Draw.hs 7;" f
|
||||
@@ -4365,7 +4356,7 @@ fleeFrom src/Dodge/CreatureEffect.hs 120;" f
|
||||
fleeFromTarget src/Dodge/CreatureEffect.hs 66;" f
|
||||
flickerMod src/Dodge/Placement/Instance/LightSource/Flicker.hs 10;" f
|
||||
flickerUpdate src/Dodge/Placement/Instance/LightSource/Flicker.hs 24;" f
|
||||
flipSwitch src/Dodge/Button/Event.hs 21;" f
|
||||
flipSwitch src/Dodge/Button/Event.hs 20;" f
|
||||
floatSize src/Shader/Parameters.hs 17;" f
|
||||
flockACC src/Dodge/Creature/ReaderUpdate.hs 89;" f
|
||||
flockArmourChaseCrit src/Dodge/Creature/ArmourChase.hs 14;" f
|
||||
@@ -4902,7 +4893,7 @@ makeBlockDebris src/Dodge/Block/Debris.hs 28;" f
|
||||
makeBoolOption src/Dodge/Menu/OptionType.hs 8;" f
|
||||
makeBullet src/Dodge/HeldUse.hs 1004;" f
|
||||
makeBullet' src/Dodge/HeldUse.hs 946;" f
|
||||
makeButton src/Dodge/LevelGen/Switch.hs 16;" f
|
||||
makeButton src/Dodge/LevelGen/Switch.hs 17;" f
|
||||
makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f
|
||||
makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f
|
||||
makeColorTermLine src/Dodge/Terminal.hs 129;" f
|
||||
@@ -4944,8 +4935,8 @@ makeShrapnelAt src/Dodge/Payload.hs 24;" f
|
||||
makeSourcedShader src/Shader/Compile.hs 167;" f
|
||||
makeSpark src/Dodge/Spark.hs 45;" f
|
||||
makeSubmenuOption src/Dodge/Menu/OptionType.hs 19;" f
|
||||
makeSwitch src/Dodge/LevelGen/Switch.hs 50;" f
|
||||
makeSwitchSPic src/Dodge/LevelGen/Switch.hs 39;" f
|
||||
makeSwitch src/Dodge/LevelGen/Switch.hs 55;" f
|
||||
makeSwitchSPic src/Dodge/LevelGen/Switch.hs 44;" f
|
||||
makeTermLine src/Dodge/Terminal.hs 120;" f
|
||||
makeTermPara src/Dodge/Terminal.hs 123;" f
|
||||
makeTeslaArc src/Dodge/Tesla.hs 29;" f
|
||||
@@ -5829,8 +5820,8 @@ slap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 600;" f
|
||||
slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 534;" f
|
||||
slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 616;" f
|
||||
slideWindow src/ListHelp.hs 80;" f
|
||||
slowDoorRoom src/Dodge/Room/LongDoor.hs 152;" f
|
||||
slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 169;" f
|
||||
slowDoorRoom src/Dodge/Room/LongDoor.hs 154;" f
|
||||
slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 171;" f
|
||||
smallBattery src/Dodge/Item/Ammo.hs 59;" f
|
||||
smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f
|
||||
smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f
|
||||
@@ -5862,7 +5853,7 @@ soundToOnomato src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 134;" f
|
||||
soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f
|
||||
soundWithStatus src/Dodge/SoundLogic.hs 104;" f
|
||||
soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f
|
||||
southPillarsRoom src/Dodge/Room/LongDoor.hs 85;" f
|
||||
southPillarsRoom src/Dodge/Room/LongDoor.hs 86;" f
|
||||
spaceAction src/Dodge/Update/Input/InGame.hs 505;" f
|
||||
spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 190;" f
|
||||
spanColLightI src/Dodge/Placement/Instance/LightSource.hs 183;" f
|
||||
@@ -5997,7 +5988,7 @@ termButton src/Dodge/Placement/Instance/Terminal.hs 51;" f
|
||||
termScreenColor src/Dodge/Terminal/Color.hs 9;" f
|
||||
termSoundLine src/Dodge/Terminal.hs 111;" f
|
||||
termTextColor src/Dodge/Terminal.hs 114;" f
|
||||
terminalColor src/Dodge/Placement/Instance/Terminal.hs 64;" f
|
||||
terminalColor src/Dodge/Placement/Instance/Terminal.hs 61;" f
|
||||
terminalReturnEffect src/Dodge/Terminal.hs 276;" f
|
||||
terminalSPic src/Dodge/Machine/Draw.hs 29;" f
|
||||
terminalScreenGlow src/Dodge/Machine/Update.hs 35;" f
|
||||
@@ -6167,7 +6158,7 @@ turnTo src/Dodge/Movement/Turn.hs 8;" f
|
||||
turret src/Dodge/Placement/Instance/Turret.hs 35;" f
|
||||
turretItemOffset src/Dodge/Item/HeldOffset.hs 19;" f
|
||||
tweenAngles src/Geometry/Vector.hs 195;" f
|
||||
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 79;" f
|
||||
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 80;" f
|
||||
twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 28;" f
|
||||
twists src/Dodge/Creature/Test.hs 107;" f
|
||||
twoFlat src/Dodge/Creature/Test.hs 104;" f
|
||||
|
||||
Reference in New Issue
Block a user