Skip to content

Hammer Feature: Hammer entity to set Per-Map bindings #1772

@Hexxiiii

Description

@Hexxiiii

game_map_bind

Entity that allows indiviual maps to have bindings that get reverted to their default bindings (if there were any) if the player leaves the map or closes their game.

Outputs:

OnAnyKeyPressed
OnAnyKeyHeld
OnAnyKeyUnpressed

OnKey1Pressed
OnKey1Held
OnKey1Unpressed

OnKey2Pressed
OnKey2Held
OnKey2Unpressed

OnKey3Pressed
OnKey3Held
OnKey3Unpressed

OnAllKeysPressed - Fires when all ENABLED keys are held
OnAllKeysUnpressed - Fires when all ENABLED keys are no longer pressed

Inputs:

Changekey1 (paramater override needed)
Changekey2 (paramater override needed)
Changekey3 (paramater override needed)

Enablekey1
Enablekey2
Enablekey3

Disablekey1
Disablekey2
Disablekey3

Enable
Disable

Keyvalues:

targetname - Name - (just like any other source entity.)

overrideuserbinds - Overide User Binds - If the player already has a binding set to this key already, do we override what they have set? (Default: Yes) (When set to no, fire outputs and do whatever that key would usually do)

holdtime - Hold Time - Time (in seconds) the key must be held down to fire any of the OnKeyHeld outputs (Default: 0.2)

startdisabled - Start Disabled - Disable this entire entity by default (Default: No)

disabledkey1 - Start Key 1 Disabled - (Default: No)
disabledkey1 - Start Key 2 Disabled - (Default: No)
disabledkey1 - Start Key 3 Disabled - (Default: No)

keyid1 - Key 1 - Key to be checked for presses/unpresses (dropdown list of keyboard keys & gamepad controls)
keyid2 - Key 2 - Key to be checked for presses/unpresses
keyid3 - Key3 - Key to be checked for presses/unpresses

Spawnflags

Disable Key After Press - When an enabled key is pressed, fire it's outputs, wait for an unpress, send the unpress output and then disable that key.

Dev Only - Disable this entity if this map isnt from a local addon and developer 1 isn't enabled (not sure how useful this spawnflag could be TBH)

Notes
Actual implementation (assuming it actually does get implemented) could have less or more keys

Probably useless to add mouse controls because of game_ui, so that's why they aren't mentioned here

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions