package Ġopen vr . assets . steam VR . input Ċ Ċ import Ġk ool . set Ċ import Ġopen vr . lib .* Ċ import Ġopen vr . plugin 2 . Steam VR _ Input _ Source Ċ import Ġopen vr . plugin 2 . Steam VR _ Input _ Sources Ċ import Ġopen vr . unity . Application Ċ import Ġopen vr . unity . Time Ċ import Ġorg . lwjgl . open vr . VR Active Action Set Ċ import Ġuno . kotlin . plus Assign Ċ Ċ // ======= ĠCopyright Ġ( c ) ĠVal ve ĠCorporation , ĠAll Ġrights Ġreserved . Ġ= ============== Ċ Ċ /** ĠAction Ġsets Ġare Ġlogical Ġgroup ings Ġof Ġactions . ĠMultiple Ġsets Ġcan Ġbe Ġactive Ġat Ġone Ġtime . Ġ*/ Ċ object ĠSteam VR _ Action Set _ Manager Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġraw Active Action Set Array : ĠVR Active Action Set . Buffer ĊĊĠĠĠ Ġprivate Ġvar Ġchanged Ġ= Ġfalse ĊĊĠĠĠ Ġfun Ġinitialize () Ġ{} ĊĊĠĠĠ Ġ/** ĠDisable Ġall Ġknown Ġaction Ġsets . Ġ*/ ĊĠĠĠ Ġfun Ġdisable All Action Sets () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( action Set Ġin ĠSteam VR _ Input . action Sets ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Set . deactivate ( Steam VR _ Input _ Sources . Any ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Set . deactivate ( Steam VR _ Input _ Sources . Left Hand ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Set . deactivate ( Steam VR _ Input _ Sources . Right Hand ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġlast Frame Updated Ġ= Ġ 0 ĊĊĠĠĠ Ġfun Ġupdate Action States ( force : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( force Ġ|| ĠTime . frame Count Ġ!= Ġlast Frame Updated ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Frame Updated Ġ= ĠTime . frame Count ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( changed ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Action Sets Array () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(:: raw Active Action Set Array . isInitialized Ġ&& Ġraw Active Action Set Array . has Remaining ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġerr Ġ= Ġvr Input Ġupdate Action State Ġraw Active Action Set Array ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( err Ġ!= Ġvr Input . Error . None ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . err . println ("[ Steam VR ] ĠUpdate Action State Ġerror : Ġ${ vr Input . error }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// else ĠDebug . Log (" Action Ġsets Ġactivated : Ġ" Ġ+ Ġactive Action Sets . Length ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Debug . Log Warning (" No Ġsets Ġactive "); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Changed () Ġ{ ĊĠĠĠĠĠĠĠ Ġchanged Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Action Sets Array () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġactive Action Sets List Ġ= ĠArrayList < VR Active Action Set >() ĊĊĠĠĠĠĠĠĠ Ġval Ġsources Ġ= ĠSteam VR _ Input _ Source . all Sources ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( set Ġin ĠSteam VR _ Input . action Sets ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( source Ġin Ġsources ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set Ġread Raw SetActive Ġsource ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactive Set Ġ= ĠVR Active Action Set . calloc (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Set Ġ= Ġset . handle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpriority Ġ= Ġset Ġread Raw Set Priority Ġsource ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrestricted To Device Ġ= ĠSteam VR _ Input _ Source Ġget Handle Ġsource ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinsertion Index Ġ= Ġactive Action Sets List . indexOf First Ġ{ Ġit . priority Ġ> Ġactive Set . priority Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactive Action Sets List [ insertion Index ] Ġ= Ġactive Set ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġchanged Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ(:: raw Active Action Set Array . isInitialized ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġraw Active Action Set Array . free () ĊĊĠĠĠĠĠĠĠ Ġraw Active Action Set Array Ġ= ĠVR Active Action Set . calloc ( active Action Sets List . size ) ĊĠĠĠĠĠĠĠ Ġactive Action Sets List . forEach Indexed Ġ{ Ġi , Ġset Ġ-> Ġraw Active Action Set Array [ i ] Ġ= Ġset Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Application . is Editor Ġ|| Ġupdate Debug Text In Build s ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Debug Text () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Set From Handle ( handle : ĠVR Action Handle ): ĠSteam VR _ Action Set ? Ġ= ĠSteam VR _ Input . action Sets . first OrNull Ġ{ Ġit . handle Ġ== Ġhandle Ġ} ĊĊĠĠĠ Ġlateinit Ġvar Ġdebug Active Set List Text : ĠString ĊĠĠĠ Ġvar Ġupdate Debug Text In Build s Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Debug Text () ĠĠĠ Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval ĠstringBuilder Ġ= ĠStringBuilder () ĊĊĠĠĠĠĠĠĠ Ġraw Active Action Set Array . forEach Ġ{ Ġset Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder Ġ+= Ġset . priority ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder Ġ+= Ġ'\ t ' ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder Ġ+= ĠSteam VR _ Input _ Source . getSource ( set . restricted To Device ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder Ġ+= Ġ'\ t ' ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder Ġ+= Ġget Set From Handle ( set . action Set ) !!. short Name ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder Ġ+= Ġ'\ n ' ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdebug Active Set List Text Ġ= ĠstringBuilder . toString () ĊĠĠĠ Ġ} Ċ }