namespace AcDream.UI.Abstractions.Input; /// /// High-level input actions. Each name matches an entry in the retail /// acclient.keymap "Bindings" header (see /// docs/research/named-retail/retail-default.keymap.txt). The /// Acdream* entries at the bottom are extensions for current /// debug bindings that have no retail equivalent. /// /// /// K.1a defined the enum and K.1c flipped the bindings table to the full /// retail preset. Runtime controllers subscribe by subsystem; actions whose /// owning panel has not landed yet (for example UseSpellSlot_*) may /// intentionally remain undispatched. /// /// public enum InputAction { /// Sentinel — no action. Reserved for "unbound". None = 0, // ── MovementCommands ────────────────────────────────── /// Move forward (run by default; walk if active). MovementForward, /// Move backward. MovementBackup, /// Turn the character to the left. MovementTurnLeft, /// Turn the character to the right. MovementTurnRight, /// Strafe (sidestep) to the left. MovementStrafeLeft, /// Strafe (sidestep) to the right. MovementStrafeRight, /// Hold-modifier — toggles forward motion to walk while held (retail Shift). MovementWalkMode, /// Toggle autorun on/off (retail Q). MovementRunLock, /// Charged jump — hold to power, release to launch. MovementJump, /// Cancel current motion / return to ready stance. MovementStop, /// Ready posture / sheathe-unsheathe (retail Y). Ready, /// Sit posture (retail G). Sitting, /// Crouch posture (retail H). Crouch, /// Sleep posture (retail B). Sleeping, // ── ItemSelectionCommands ───────────────────────────── /// Pick up the selected item. SelectionPickUp, /// Split a stack of the selected item. SelectionSplitStack, /// Cycle back to the previous selection. SelectionPreviousSelection, /// Closest compass-tracked item. SelectionClosestCompassItem, /// Previous compass-tracked item. SelectionPreviousCompassItem, /// Next compass-tracked item. SelectionNextCompassItem, /// Closest item in radius. SelectionClosestItem, /// Previous item in radius. SelectionPreviousItem, /// Next item in radius. SelectionNextItem, /// Closest monster. SelectionClosestMonster, /// Previous monster. SelectionPreviousMonster, /// Next monster. SelectionNextMonster, /// Most-recent attacker (for retaliation). SelectionLastAttacker, /// Closest player. SelectionClosestPlayer, /// Previous player. SelectionPreviousPlayer, /// Next player. SelectionNextPlayer, /// Previous fellow. SelectionPreviousFellow, /// Next fellow. SelectionNextFellow, /// Examine (Appraise) the current selection. SelectionExamine, // ── UICommands ──────────────────────────────────────── /// Use the selected item / interact (retail R). UseSelected, /// Cancel the topmost UI / clear selection / open log-out menu. EscapeKey, /// Log out of the game (retail Shift+Esc). LOGOUT, /// Toggle the help / control reference panel (retail F1). ToggleHelp, /// Toggle the plugin manager panel (retail F1+Shift+Ctrl). TogglePluginManager, /// Toggle the allegiance panel (retail F3). ToggleAllegiancePanel, /// Toggle the fellowship panel (retail F4). ToggleFellowshipPanel, /// Toggle the spellbook panel (retail F5). ToggleSpellbookPanel, /// Toggle the spell-components panel (retail F6). ToggleSpellComponentsPanel, /// Toggle the attributes panel (retail F8). ToggleAttributesPanel, /// Toggle the skills panel (retail F9). ToggleSkillsPanel, /// Toggle the world / map panel (retail F10). ToggleWorldPanel, /// Toggle the options / settings panel (retail F11) — opens /// our SettingsPanel in K.3. ToggleOptionsPanel, /// Toggle the inventory panel (retail F12). ToggleInventoryPanel, /// Toggle floating chat window 1 (retail Alt+1). ToggleFloatingChatWindow1, /// Toggle floating chat window 2. ToggleFloatingChatWindow2, /// Toggle floating chat window 3. ToggleFloatingChatWindow3, /// Toggle floating chat window 4. ToggleFloatingChatWindow4, /// Capture a screenshot (retail PrintScreen). CaptureScreenshot, // ── QuickslotCommands ───────────────────────────────── UseQuickSlot_1, UseQuickSlot_2, UseQuickSlot_3, UseQuickSlot_4, UseQuickSlot_5, UseQuickSlot_6, UseQuickSlot_7, UseQuickSlot_8, UseQuickSlot_9, SelectQuickSlot_1, SelectQuickSlot_2, SelectQuickSlot_3, SelectQuickSlot_4, SelectQuickSlot_5, SelectQuickSlot_6, SelectQuickSlot_7, SelectQuickSlot_8, SelectQuickSlot_9, UseQuickSlot_14, UseQuickSlot_15, UseQuickSlot_16, UseQuickSlot_17, UseQuickSlot_18, /// Create a toolbar shortcut to the selected object (retail 0). CreateShortcut, // ── Chat ────────────────────────────────────────────── /// Focus the chat input field (retail Tab). ToggleChatEntry, /// Send the current chat-input contents (retail Return). EnterChatMode, // ── Combat ──────────────────────────────────────────── /// Toggle combat-stance on/off (retail Grave / `). CombatToggleCombat, // Mode-dependent (dormant in K — Phase L lights them up) CombatDecreaseAttackPower, CombatIncreaseAttackPower, CombatLowAttack, CombatMediumAttack, CombatHighAttack, CombatDecreaseMissileAccuracy, CombatIncreaseMissileAccuracy, CombatAimLow, CombatAimMedium, CombatAimHigh, CombatPrevSpellTab, CombatNextSpellTab, CombatPrevSpell, CombatCastCurrentSpell, CombatNextSpell, CombatFirstSpellTab, CombatLastSpellTab, CombatFirstSpell, CombatLastSpell, UseSpellSlot_1, UseSpellSlot_2, UseSpellSlot_3, UseSpellSlot_4, UseSpellSlot_5, UseSpellSlot_6, UseSpellSlot_7, UseSpellSlot_8, UseSpellSlot_9, // ── Emotes ──────────────────────────────────────────── /// Cry emote (retail U). Cry, /// Laugh emote (retail I). Laugh, /// Cheer emote — celebratory jump (retail O). Cheer, /// Wave emote (retail J). Wave, /// Point emote (retail K). PointState, // ── Camera ──────────────────────────────────────────── /// Toggle alternate camera mode (retail F2 / Numpad-/). CameraActivateAlternateMode, /// Hold-MMB instant mouse-look — hardcoded behavior in K.2. CameraInstantMouseLook, CameraRotateLeft, CameraRotateRight, CameraRotateUp, CameraRotateDown, CameraMoveToward, CameraMoveAway, CameraViewDefault, CameraViewFirstPerson, CameraViewLookDown, CameraViewMapMode, // ── Scroll ──────────────────────────────────────────── /// Scroll up — wheel up or Ctrl+Up. ScrollUp, /// Scroll down — wheel down or Ctrl+Down. ScrollDown, // ── Mouse selection ─────────────────────────────────── /// Single left-click select. SelectLeft, /// Single right-click select. SelectRight, /// Single middle-click select. SelectMid, /// Double left-click select. SelectDblLeft, /// Double right-click select. SelectDblRight, /// Double middle-click select. SelectDblMid, // ── Acdream debug actions (existing F-key behavior) ── /// F1 toggles entire DebugPanel visibility (acdream-only). AcdreamToggleDebugPanel, /// F2 toggles collision wireframes. AcdreamToggleCollisionWires, /// F3 dumps player + nearby entities to console. AcdreamDumpNearby, /// F7 cycles time of day. AcdreamCycleTimeOfDay, /// F8 decreases mouse sensitivity. AcdreamSensitivityDown, /// F9 increases mouse sensitivity. AcdreamSensitivityUp, /// F10 cycles weather. AcdreamCycleWeather, /// F (existing) toggles between fly camera and orbit/chase mode. AcdreamToggleFlyMode, /// Tab — currently toggles fly↔player mode (will be reassigned to ToggleChatEntry in K.1c). AcdreamTogglePlayerMode, /// Hold-RMB chase-camera orbit (debug-only, not user-rebindable). /// Camera orbits around the player while held; never drives character yaw. AcdreamRmbOrbitHold, /// Fly-camera descend (Ctrl) — only meaningful while fly camera /// is active. K.1b binds it to ControlLeft; K.1c may rebind. AcdreamFlyDown, // ── AcdreamCameraCommands ───────────────────────────── /// Camera zoom in (held key, integrates Distance−= adjSpeed·dt). Default unbound. CameraZoomIn, /// Camera zoom out (held key, integrates Distance+= adjSpeed·dt). Default unbound. CameraZoomOut, /// Camera raise (held key, integrates Pitch+= adjSpeed·dt·0.02). Default unbound. CameraRaise, /// Camera lower (held key, integrates Pitch−= adjSpeed·dt·0.02). Default unbound. CameraLower, }