Skip to content

InputForge v0.1.1

Choose a tag to compare

@KerimCETINBAS KerimCETINBAS released this 30 Jun 08:40
c616124

InputForge v0.1.1

A quick follow-up release, one day after the initial Asset Library submission — a few real bugs were caught by the new unit tests, and some practical features came out of building a demo scene.

New

  • Context equality — compare contexts by name with ==/!=, so you can check EnhancedInputSystem.GetInstance().GetCurrentContext() == GameplayContext without holding a reference to the exact same resource.

  • PreventFallbackContext — when enabled, only the topmost context handles input; nothing falls through to lower contexts even if it doesn't match. Useful for modal states like a pause menu or mouse-look mode that should fully take over input.

  • DuplicateContextBehavior — controls what happens if you push a context that's already active. Defaults to Replace, which moves it to the top instead of leaving a stale duplicate behind.

  • Stack & context signals — EnhancedInputSystem now emits ActiveContextChanged, ContextPushed, ContextPopped. Each InputMappingContext also emits its own Pushed, Popped, and PriorityChanged.

  • Throughput benchmarks — added stability/throughput tests comparing InputForge's dispatch against N classes each overriding _Input() independently. InputForge comes out ~1.5x cheaper at 10 handlers and ~6.8x cheaper at 500 handlers. Full write-up in SMOKE_BENCH.md.

Fixed

  • DeadzoneModifier now correctly zeroes a value exactly equal to the deadzone threshold (was <, now <=) — caught by the new unit tests.
  • Fixed a signal bug where ActiveContextChanged could fire incorrectly when popping a non-topmost context, or when re-pushing an already-topmost one.

Other

  • Fixed .gitattributes so Asset Library installs only pull addons/input_forge, not any other locally-installed addons.