From 2de83ac01d347d97864a8c6576b937351b4591c0 Mon Sep 17 00:00:00 2001 From: David Gilbert <gilbert@vr.rwth-aachen.de> Date: Tue, 12 Dec 2023 17:16:20 +0100 Subject: [PATCH] refactor(pawn): Starts refactoring of InputMappingContext. - Removes all specialized IMCs from components - Adds two main IMCs to Pawn: General and Navigation - Adds one default for general, one for left and one for right handed navigation - Can be set in pawn --- .../Grabbing/BP_GrabComponent.uasset | Bin 15175 -> 14953 bytes Content/Components/Grabbing/IMC_Grab.uasset | Bin 6376 -> 0 bytes .../BP_ContinuousMovementComponent.uasset | Bin 15824 -> 15341 bytes .../Movement/IMC_MovementLeftHand.uasset | Bin 20286 -> 0 bytes .../Movement/IMC_MovementRightHand.uasset | Bin 20331 -> 0 bytes .../BP_TeleportationComponent.uasset | Bin 15743 -> 15260 bytes .../Movement/Turn/BP_TurnComponent.uasset | Bin 15516 -> 14799 bytes .../Movement/Turn/IMC_DesktopRotation.uasset | Bin 3491 -> 0 bytes .../BP_RaycastSelectionComponent.uasset | Bin 15461 -> 15204 bytes .../Raycast/IMC_RaycastSelection.uasset | Bin 6614 -> 0 bytes ...BP_RWTHVRWidgetInteractionComponent.uasset | Bin 15990 -> 15720 bytes .../IMC_WidgetInteraction.uasset | Bin 2852 -> 0 bytes Content/Input/Default_IMC/IMC_General.uasset | Bin 0 -> 12688 bytes .../Default_IMC/IMC_MovementLeftHand.uasset | Bin 0 -> 20746 bytes .../Default_IMC/IMC_MovementRightHand.uasset | Bin 0 -> 20791 bytes Content/Pawn/Base/BP_RWTHVRPawn_Base.uasset | Bin 25074 -> 25699 bytes .../CAVEOverlay/BP_CaveOverlay.uasset | Bin 24546 -> 24289 bytes .../CAVEOverlay/IMC_Overlay.uasset | Bin 2785 -> 0 bytes .../CAVEOverlay/CAVEOverlayController.cpp | 12 +------ .../CAVEOverlay/CAVEOverlayController.h | 3 -- .../Interaction/Interactors/GrabComponent.cpp | 8 ----- .../RWTHVRWidgetInteractionComponent.cpp | 30 ++++++---------- .../Interactors/RaycastSelectionComponent.cpp | 8 ----- .../Private/Pawn/InputExtensionInterface.cpp | 9 ----- .../ContinuousMovementComponent.cpp | 8 +---- .../Pawn/Navigation/MovementComponentBase.cpp | 14 -------- .../Navigation/TeleportationComponent.cpp | 8 +---- .../Private/Pawn/Navigation/TurnComponent.cpp | 13 +------ .../RWTHVRToolkit/Private/Pawn/RWTHVRPawn.cpp | 32 ++++++++++++++++++ .../Interaction/Interactors/GrabComponent.h | 3 -- .../RWTHVRWidgetInteractionComponent.h | 14 +++----- .../Interactors/RaycastSelectionComponent.h | 4 --- .../Public/Pawn/InputExtensionInterface.h | 3 -- .../Navigation/ContinuousMovementComponent.h | 9 ----- .../Pawn/Navigation/MovementComponentBase.h | 3 -- .../Pawn/Navigation/TeleportationComponent.h | 9 ----- .../Public/Pawn/Navigation/TurnComponent.h | 13 ------- Source/RWTHVRToolkit/Public/Pawn/RWTHVRPawn.h | 7 ++++ 38 files changed, 59 insertions(+), 151 deletions(-) delete mode 100644 Content/Components/Grabbing/IMC_Grab.uasset delete mode 100644 Content/Components/Movement/IMC_MovementLeftHand.uasset delete mode 100644 Content/Components/Movement/IMC_MovementRightHand.uasset delete mode 100644 Content/Components/Movement/Turn/IMC_DesktopRotation.uasset delete mode 100644 Content/Components/Raycast/IMC_RaycastSelection.uasset delete mode 100644 Content/Components/WidgetInteraction/IMC_WidgetInteraction.uasset create mode 100644 Content/Input/Default_IMC/IMC_General.uasset create mode 100644 Content/Input/Default_IMC/IMC_MovementLeftHand.uasset create mode 100644 Content/Input/Default_IMC/IMC_MovementRightHand.uasset delete mode 100644 Content/RWTHVRCluster/CAVEOverlay/IMC_Overlay.uasset diff --git a/Content/Components/Grabbing/BP_GrabComponent.uasset b/Content/Components/Grabbing/BP_GrabComponent.uasset index 5e0430e93aee43918ea62d4465f86e3812efe423..40c5437d25b66fce44d8073ff8f40103941f70bd 100644 GIT binary patch delta 2029 zcmX?J_OfKc52hsT$@WZELJSNH46zIh4310;42%p63>Kd@3y1PNc@VqoB4U|?9l z%fJ9q2jVXffGE2lz`$@rfPvwQ00V<dMcnn}mU<pDe<ZyUdvgEF^(^KZ9)C6ORu7*G z^H$`xf{X>31G0vdfti7c;h*>Z$>$i|mBIuW7)-4|b|LWp|Ns9dX)`c5GcYh%T5UFG zYG>Yjj&&*1=H(oR7)5v(7#KYB3Q9{HlS?x5^B9CA5_l%B;+kIX3N^tGN`LzQ|9=pa zZ2+Y~6gG9?APEKr27Ky1{{R0!0=K$)2AIVlg^{=w!qt8F|Np-ik?On&s;g&U02$~* zP$5KJAQ9@`|Ns9#ga~!-{{R0UQ;$WV2UHAZ2*|(ys2FlkyF<mop!Dbe|Nn<V*~sc( zQ5OZ315uz<0;1~)DRcp;!V$;F2Er^MWS$$Ud61ZdX+|~>77Bz6^n@8WIgC#qlso4c z$xU9$rz7SImEdGxV1NZ*i|*u!f^w5t`E|tnq0*KN3=Eo3_7&a98x7Sb=kY6x1w(~E z8E_+%{TCvAj$c^}l=NZw(}o!$zfKRV8z#-f04WB1SRm4`48hWU0?K015D^BDlFv}x zW@eM;8L3TvE1)74!vHBPKz4&NE=aYe6<D{QU?0;Rfyws-P1#-uFfasZZ<ZALB`FCi zW-{(Ff=eQhY7-E_z`$TQSw}}kOclz5I)njiujAx69dSm($z?hk&e~7~VExiijvAB( zc@xCE03sL|7;K?5STRhI?c|3#27)jtm_^o;1NmhnEub1;vI0=P)8s&YX}$wDZZ;hN zi6m<09I%|+perK?i*kFAFxVGsb!8Y0C!f+aW3-*jsAs_oQvp(7FxgGdJ|9^G6rzeC zDUe<$4RaF1m;e9&BP)g#qlV}TK?SNlR1g*hu-Gu1ET|80i^k*veE~*;$&LELaPPy? zxaQ<QehGUGs2La*{Qm#{zdBSB76YIt2Md{jNd^Xk$$#|gICY>ro5^>KGdOjjJWyC@ zOqMYO*{^G8&1f`P*GQ665Grdh`6HhQE65VF$p=jnCbJl6FxpMlHBw|W0J)3N04&<0 z&p}mpo5OAYqp!%R2j!_wPBJdU>x)tokT2Ryu=-;1e8beqv8I^rKgno1x!X*E(O~jK zLFLKk&0HA`CX1SDFmg`THCLXTXs*P_I(eU!#N@qJlAD{&6B!w`Cfi!+GdgS*wN!_5 XCg)n2vw~vSc=By49Y%x69M<*#k3uCs delta 2066 zcmaD^a=dK94<==u$@WZELJSNH42cX34310;42%p63`*RS-59lF9l048I6zW-3=AS5 zX>JCFL_vs>iGmCaGX)tKwhA&Z+)1}rwNI>c*uPf$;eCf+)z`C_Yk2(CyjwkdF3ekz z+X^xgYz_kh11keF10%y3wl$N_F}f>>3o$SVTZ61e;Q#;s|5w&wU~pkzU=X+7Y|hlq zECAB&>FexXl$gZuV%@Il&HGrFGBN5**5y#=@pX;|i<fqse7HH8;}D}GCj$e6CrmhF z$%p$qAc4Gs(h|qylFa-(1|f+A9*~DTL1Mm%1qGRT>CX9iC8-r94Bss5A5XUAnqKb? zby5J7{_y|*{}3qK5K4n6Z0e#x5)2Fs_|(1s|NnmsZguqxFpEJ7V{t2lt9$qV|9>AM z)%g-sSI@uzGSH8pLWsIxBGkS8|Nnm&5$fLj|NlS10E<E|s2I!;kbyx^F~iA?yuyr; zlNq^%8NqDLD5%WG|Ns9-K-t(LByRFU9${OoGEiM0$`wT5h|;*phP=Y{giL@X6hi7e z@Yw{F15vQhfSRWS5@Uc_5(nl%2yY0*U^sayuRbWxA25`g{DfDB(SNcapD>fF-sFn{ za+6*7bi@LoDlHip7~G)jsd|$y8mLWP!>7U+I{6}>Fw<>_01v+kWAtQ0eqp8_eXt6M zz(jswrV~bBfiwInjPa8{@(VMGm`^@ns5V(gK!q`3a-e`P6T3B7MUOx~(_F#HvVx{; zD+L)CgmpGY2>z0k1m(?)T6S<*1agHbh+tq~Fq)jLEhDA|<*`6%1||ju2B*n$wZ$2Y zCU4c&aMpoIfC?UIC`TPigTz403m}4lfx!++gDrz8vYV`+V;~5Vf>~rU`J#Y~Bq(e^ zdSJ2wAPxfqgY)ExeA0XeZrp4-01`>m&N*N;dB2W~AT)j$96-WgU%b(gVKkb|scXh) zH`zhgf)}O&q`+`;tFAptT4H8kU{D1~f%HOYn3EVj|NsAA5h`c|rQwoa{{R1vY&NW< z#ZU+;b72_{6hOQnlR%{=h&GyRtOs$ahUsS(fjQ?-e(~!GOh3?h%Hb}u=`tY2NFfSK zKw6V0@=2&^LS-@R{{8>|e+{Ul&SXa;2}Z-oa{6_gx==CO$^VQpIQ5`BP=IMnwlff5 zG@R^jV9jVe+22rd@?T>PM#ISy`9vm5nWRouGt^+TpX_g_2o?jGr)Xk0dAFfCJVsHR zW>1{cpbh|4MPQ}{m}Fo8xmJ-=AIejk++tLS*X`4dL2h4RjNx`xP)JxzhPYLKa=i(5 zU+7PEHqB%-o4nRkfzfdCMFHi>A5C2u4JVtMX-xiL=C}F2StKK)_T-6{`izd7GcDBN joXH0*%^6uI?>Cc}yw6OM6%@}VlmA-kFd9zQva$yN1~^w` diff --git a/Content/Components/Grabbing/IMC_Grab.uasset b/Content/Components/Grabbing/IMC_Grab.uasset deleted file mode 100644 index 47abc9f0ea07957df2f54c0c80f683d07a14fadc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6376 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 diff --git a/Content/Components/Movement/ContinuousMovement/BP_ContinuousMovementComponent.uasset b/Content/Components/Movement/ContinuousMovement/BP_ContinuousMovementComponent.uasset index 83b1677640b9495da4155029b2b3f320a66ccb81..6885feec7ec19c1fd7f5771d379225ebd86dd0e1 100644 GIT binary patch delta 2168 zcmcam{kD9<6DD5W$v#ZcLJSNH4Dk#M41P=u42%p641wH}Gi}uqLBa*x3=A9$3=9+a z7#Ktt7#KkO34#!12Lu@yP6#qEJP~AI;PX9kc2jz;%Yv;31Txn2OSAk)n_L{r<=cPg zf^x}=*_I$<LFRz0VP#-uU}E^^y?^p;Mt7woAqIw>)*!nO`2YX^|9N#87@Qdx81`Ck zc42B~-u#F46Vv8=P7Wp!9tH*m&%A=t6366{%=|nCA&CT@$&a|F*SkSY@Q2bL{{R0U z0%aROX%K}?T_i|?fq?;^y7&M8|Bu40uATvAF-T!FZiR4l@BaV)?@gpSAA;)Y85lqY z`Vv$KQ5Q^vy0`!T{|_KS-JAda|Hsv1QRoR3gBb!cFbFD!9Mm3Au?Q&r>Hq)#VNf<c zbszu#{~r!jSC6a^7RNDANe~4}P9U0)Iv0>49BBdBJXch85dUMd7$!!@Vs}&n!918= zWQ$>;ifW!TSUm%>LNACAgTZ7y0evQ3-ANX5lWPTZ#QdP*oD2*Mu&B}3pR6b-H~FrB zj#wa6+LD2R0cL-_{^UeqwaKo6Dq^8fX;6mV2xT9ING}ys5d&o<Sbn!*hRBy0fOW&9 znHV6&iVq7!dXq6&I#ozTEEXcd08+9Zs{5b$Bn!34M}<_x;us)h56EgzIRH|;)*7r? zRd_DT89@ey$@W|_lOGAIvfU75VEC)EnO9_{lq9I^%BW=r7jGavCLn@=fx&R{emxm6 zWhf8o8V0cCj*~y?i8C5b=G514)`lto>xYIjg9=m-<W~^$0*GK>V6cVKV8t*+wv$Wr z4Fq9QFpI1w9~6+0w18@W$qGREP9RyUP5I>qKmv){IR`)y0%FU92nGfQm^lm#3=Q_M z)L;*lG@R^UAj4=lIo808(RT7dV~xps3<P*#sz8biCf_u$k4F{(1-K?i3KTX_8g9v# z|NsAMK?Mz=G+grY|NsAyO|pV2Fr2*6P()H6%7cX!Eba^^-!p`{&eljk71;zCs2*6b zz*3_6<bwhd_G(aB42S&w|Np-#R1y|%pyUD;G6Rzg3<i@=8r5;?KzTNk1B^2`b)h^^ zSXnR{O#WqT&1f{a-&~Q=VDd(D2}ZNYg(e-0c9Z+fB`4=ta4;Hx+`(utxzHp*k``_? zhq?#kR>jE+%s3d8C+nLP;&HWx;M=^vQff8FUFX|qzcpy{a5I=3Y>w&+bC7!{YguSu z_sQgU7MYx;P@CnTK2#J`o;=6WmC<1GBTEfN&dI+ll_%@k8g0(DVq#>}n4D*=&*-pu gp0zrhGx?j1`D8sSTUJnf8&6KL)nPQ4Jki!30C2T2EC2ui delta 2248 zcmaD`exZ886Q*r?lYN+?g%}tZ7}6LR82p$R7#JBC7@~M4w^^$vf`lu17#KJh7#J)C z7#JiN7#Ki&OJRtzOkoCwLSY7mUSS4?j@>SqC(cQ`?reR1h1JS$HOr5*$;Gi;zWs+T zD3`pLZ3!|KWDdw0Rt9DUMuszNYbM`jbXVdQVPKeJ3$hD=|NsC0f14fygDV3A!vfpQ zE==vrh5`%>44%HuzWHUTxv6<2KB;LX3>(XjRSKet2W6&blrZE?vs<$HH0viOMvKY* zOlne|zRvN;Iz1BeQW)%~w6|JfNP`Uk%U{zxc5(Aw4i2VzQHULwM(9sD^+F6y5@EnH zS-qt^AlbZv(h|qylFa-(1|f+A9ub(BZ(>0~W?s5;eqKpxMG3<<3;V~s3=9n3Mt=Dz zsqwC5sd*&~#jR13-*Pp}dO?FH7)rnS|Nnmklx;M*kWW|?StbFi%<KRE|AV8Ifq?;4 z4@f2ntDaZ?|Nr;LDHDKGCJ?7gI98dL|Ns9FL6)h9`RB#||Nm2AGEf>s`GN=r1_qce zkO^T>F(W7qqI^IE0|P@Gl>YGl|Nkf`8;`ol-?@1MvB}3n^}hT6|9=dWjZfX%|NsBT z!qkCciZOZeMP6Y>NDL%HWk8f0h=9cnWAbE0K5VKykX4By>-R*KVN3?wg=vd7vMLn) zun@)6;|JH%%BK%1Hy)bFO}@gX!x%J~kzbhc#^gX_`N<~yI%1(vg_aBq3=L4WhT-Ii zMrxDi@T)LJPCm#l%(Ma`@P}W8F=4WzfG|^}5m*I8piw}WX{sq$V2^+bW6I=*0>VrW zEhj%TQ=2R!sKS^!*-=oKX@V_SMUCKGrc&X_(n8Msjlv8J%k&_2GBGerwi8y_JW(h| zDj8I8W&AA%mu(<vGZ4YRz+eoeS)eq-_y7O@gGwn7Ull|!FfhO+nHU%toS}lC;ta%u zDK?&*psOLK3laihkhC<2!N9<vHhG?|xR^bZ2X=!Rlw&{nw61|5ObTX^?c{@kGLlv> zHBcH<{DGJ*lO6Rm7_BE~>B;E95}hMR0-Jw8&QpL%PTrzt#%MqJo}q?p?KRKOLKB62 zR?g?Qdl2&H0L&neQlrTR`u6q6BFqd749XxWY*u{w|Np-VF3FGo|Nqy<CHdw5|NlBT zB=s3S|Ns9V*%3B4R5F0-3d6~Ty5fw+lYi?&eK<MFKtL5)y9`u2EU;lYO>=T1zXYcS zRMvR%1_Kc-btn%OouE(z3t50k1_qeH+>;FrB`32R#&SYa9fRHET*C}beW*H6U|TR6 zO%^w@W;B^xU?w>^$B2W`XmTUJ2<z|v|NmP|o@it+`L>zC<ab6Ij1H3v%oM@05{#hi z0G5%Yio-3T4nlD_rvX${b+V61As#PiOpZ4dU^JRsV2a%vmXjggFq!Oarh?TQGdazn zcFBRlo6%_UK|$roJI!4gjVAv$*O(k(tuoo(+IDlT1rsBq*5n3DeMYCv8!Xk~oXH&4 Y=99fGj95WA%XD(1wGN}v<aO5e0OFXi@&Et; diff --git a/Content/Components/Movement/IMC_MovementLeftHand.uasset b/Content/Components/Movement/IMC_MovementLeftHand.uasset deleted file mode 100644 index d871b2eb4545c1acbc81470a80ae950683a574bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20286 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 diff --git a/Content/Components/Movement/IMC_MovementRightHand.uasset b/Content/Components/Movement/IMC_MovementRightHand.uasset deleted file mode 100644 index b1eb664d5e755f86858f40ad6737e87e9dd29a0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20331 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 diff --git a/Content/Components/Movement/Teleportation/BP_TeleportationComponent.uasset b/Content/Components/Movement/Teleportation/BP_TeleportationComponent.uasset index d83f23de6da316687028de4c6a45713918bee2f4..724895615850f01d9d665e8b40569d5829fc4574 100644 GIT binary patch delta 2119 zcmexgHK%;S1*Q`^ll7Pag%}tZ7!ny67z~&g7#JBC7&dZGHf7X~y}-@Dz|O$H@PUtk zL4<*U0mPpm2vM>}kb&WdAOph#K?a7`Oa@Q3clCR&F4Osu709{ymj5yX+0~nUX72O| zT6vY_Fvv)dIUp-o8JHQE82)+hpS+jRT`5F}fg!^hWIY1^|NsC02^|IoX9fm_9P7<$ zOjDURzhT|Nv{{j}nMs6)fq}s@ub{NVF}Wl&KaW93B7tWzKhLRp4+aSEgHQ~g{{R0U z0A(9MX%OWOA{ZDL0-^MW|NsAoLfM4WMdDUh4>$1r|NsA^a4SSn7fXb?cmMzY_aUgR zo`C_R(3hY>h&os(;qx)bybvPHd;9<Y|Acxh3O%7>5m5T`|NsBPp=@M}y`W;zQ2OKl z|Nmp4Y-Dw?sEdQjfhbTa0nzn@6uN*^fzmjX22t1ybOlKeq0S9e9mN0G41|dhav&@L z6H@1mYB8AS%^(e?84@5A11L^{p=^W6eFFNRtiE5sOUxfC$jQLK0Lva{^(Hq8%1yQv z)Da7UN*gjTFeF3Svig$~h1Di66;u%mg9>qg3JEB?0V2&Rq#_2&AE3+*lD1)n$Qv4f zb;G2Y7#J8p(mpH@>0D#5^id%dv3Q6G14zkwsP3KSlm83tVmTqmz%aR=OJ?#-VFk7; zf(#5hbT<DNPLh%Y6-yWE_`#(XNV^G$U|?V{oLr?Rqo)GpLG5Ay8|?@c1UVGM1i1!8 z8%{o=r{Sy(VuCP8S_Z^mU|>*%(jYMq^8$!qU|_I?(qQXhifkwA>l+Bdq+nKCPgWF^ zk+gtnfXNC#`A(A+1*In+(C1~eoP17SMi7<;6ru8llYi@*G1^YPV5l)U%0Pe@CJ&M} zm|SjPFNrJy3Og;36gVI_4P}f$(FqcOxrPB$$l8HKKuVxAT=L8R|NjjpH|h(EVd(q! z|Nnpe$&H5MjE0kE8bX|8p^9v|EYviZ7h(BCW3r;4guOac7Q^6Q|NsA2gG$2U02VV0 zW>5)($p=goCoeUM<<x<S*i7a&&fwIA@*n}U#8`mQVDeUDYeu8VAB`0m4JIoJicD@W zXJIs({L#c{a-2yRqy6NM#*&lInQ(w*B^V8$GJ2B(OgZ3@M-8`|L)`{;JEtC$r!x7K zX(3);{51plg3lb&7v^xcJ~h|C<CB#ZnVhCj`{Y5P&uB2YQBZkuxTPzj!Q{D?8k4VC z3Qrcb5}f?P#%Qye6%!+)=Hx~jeMX1Pk=E*P&g6|Y=8O!J*IG)z)U$%}f$?N{+XMhD C2s0P} delta 2574 zcmbPJ{=aI%1*Ss1$$CtILJSNH3>gdz3<gXL42%p647+$HJ6fwJf`o7KFfgz)Ffhy% zU|^77U|<08ErlV<QiT~9a)lWfI)xb+q-~pW7X9_}Y?kA@r}O-C#x4J42C}O+`^?<w z5w!9u%VChQAag+0ure?+FfyEBTQhktqr1{yVFm_oTaaA{{Qv*||Al%C46Y0e4F0y8 z)tII-8wxNmFnIbphot7D7UUO|_@t(lFnkG{xLOcZJSa0gql6*YEY4x`Zq_YKj24p( znbf2_eVyZd^UG3mQ}e(&JreU$80@FCw_1XvrIDq<27u+SX&$@iIoXiOeDiV+Z>D-t zh((y@=ubKILJUn3VahUDy`?-L*}Q_%6366{%=|nCA&CSY5tx{7VnIP>Ub=IBUP)?2 z3BxxF`^UTt3=G~ze)%b>@vdd5c_j?Rtx=PuxVP2&K*J~qO27O6|9=RSZ3Lx3lsAZA zU|<M^(r^C%{~rlu6H=FeTU|Zez}Nr({|6@!1_lOv27=V3;5HC$-mCxr{|69MSI@uz zQW!{3Aw(T4l<+waWL^Xj=Dqy?|9^Tt7KOf0u{bFG@&Et-(NH$B#V~d8P`MBP|NoDH zvhk^V|NsC0Sg5*GWQBfE!6YdC_W%F?$xt@3I#^mrh01{_P{sn$Sk+B7<P)~VDg)92 z#qLlVtGdaJe8TluWuUr1lqZP5k$jNd>P4hFm_MQRLgET0h-@G%6G0V%jmM_WA1s5K zzF}hNP&rVt2#2zf&HMR(@+UqePyt(SBsbZFUxzVxaw5MlQ<=f!gMxCCr||2Dg+a9$ zGB7aAg|d$sOb#?soBW4gg)wTfqJS_{vLRR?MnHuzVREB@Fq4Q8lE6a&VWt36uz-x9 z3S-)2M?qnxIhK>_jnpRB2u@)s6lP$Ue3w&ZvVo8Sf2}YBL!utUA|?ig$sYyfH`fVS zNlAjr^^5<$gNuHUv>AwCU|=wwd{IY6PYudrfzk|23=9m;P!6bA2QfK71Xzo-u7<NN zlm|9Z2Fg)~(l9L-pnQ8M4OR?OWIwr0*FX>^1+&_A@<BlvNh_!Zm@KGb013HFe#kF9 zSzM1-&l<#KU|>*y(lGrD3=9qSuvk)rN*YfN(lcYUpZr!|L$=mcAz{Dcd*2l++9OW? zd%X~*7Npc@@;N<wNn{ab1_lNdkQCVC3Hl=SsxTguhFkpk|Ns9wP(foT4VV1-|Nnnb zi4PLTkOWnQ4j>tjB~Ti!^V9$T|B+lI&tL;pfnm(Q|Ns9RPM)VP&S*S&n?A(97OF^k z8DybaVZrJK<!eoT$S+~93FToJ{OkY!{~Az9SiHkh1A_%r!f5hBgSyH8j5!$XCO4X7 zaOy+F!J#gA^-s~Wzdz)i7FnkU-LFzIFq(YH(3;U?GM|wmqtWDt{35I%ODrY}8tYG< zz|S(-!B}_lN+S(M$H{y~lALl-vp^~(7>$rrnZgqgHT+@;w`ZY&BBueAr#6}0q!5?S zCQF$LFd9wPHpTRfC6YUJCpYM^OlC7vA?PEB%2Q^kjOLRK%oP}oCI^~lFd9wXWv;=< zIhom7dGaqS+szghOpJ`$ldUcF8J#v~TdKo3lMh>&GqO%ru#lK6Zz0JF%890vZLAXj DQ8llP diff --git a/Content/Components/Movement/Turn/BP_TurnComponent.uasset b/Content/Components/Movement/Turn/BP_TurnComponent.uasset index e135a8eca226aa6043ca8dcdb87932775aadc93b..a572594744827a04a0a6a6b1912e80ef9be86297 100644 GIT binary patch delta 2042 zcmbPJdA@kU1=fFB3=Ec&FK}p2Vie_zWnf^CV`5-nWME)e!!_B_Mm>>%fq~&P7Xt%3 z0|UcsUIqpsDBoHDqAXp2fgxXjfuUP~fq_^4_+x=@+ngHz7QM<^9$R*BR@8$-A4)tn z*{1)^Ib_2EG8SYG$Qo7#W(FpPf8P5iuV!@DeJjAgFxwJj7XttP|NlS8b<PY74D*rX zpsp3%9L?mwy!j<-D%0fi9MzlqI9D->@Gvkic;*$9mN+JtWaj5F2uURHOy18usoo80 zt{;^C^#A|=ASl}aN`okD>cT-13=9nT)P4N_|9=E-b@dD|i$Mw_aVvzY`|$t&e=j1{ zc@tDu&%gjO(1)Nxh`K-`)V=@z|9=b?bskW$Fev@y|Ns9X^-vCS5TYym{Qv*|P%P?T zQ4$4}15uzf0iu!3!=}y!q=<omp`MUJSExcl>R^@-Qs<6p9wa7Vnvs3tiK-CHgNea{ z7ZlV1U>ODmgUM_H`b__{Cf6IwO%4^%5%Yyga56A3z!Wj-PJSpPH+idoj+j4G8kB(& zpzL7X$$`ddlVt@}#Dbwh91IK$8=>sY5b0V$6){lK2jyCjv<)*vK1C0#8z#-fz`y{K z_F;iYFE9j4+X|_OMMFdwKuXp_b-yv4TyLy4d9F}5Q?bBgEn!psdI1K8cUlmoObiT@ z4MoH@w+KIwlmrzu8TXmNr4dNl1Vk_}Fc?m*)s+!bh4P@*GJtJyoV;FFoY8Rdaa|2Y z?a3c>MfB95%0RvVF)x4!1_lOOC=E6prpR`(k)DAdObTYQ^<+jt8A%JM2AHe>l<zc| zQBaz1!A9xo0}Kod2mT4=9I%{xQBOt?mPC}G3JoX!(=%hVo&457V{)v%0541)ByBLc zO5dK*VDc_~O-=`p0N9&v^kwV~p*)yl7{2}g{~uYa6;uI+LQwgsKY5-3C_J_qKy0>9 zMb;_@)e7?xEPZNDW)zgL*MQ1m82tPH|NrVxNo^<%N&#S|8JGm6(}jk0oH|gR&E!VY z3{G7r4;%)9>%F$<CM0D!&T^=i_A9={XfXMbku{^yWIkg>MuW)<1w>du7MV>JG|`{D zL4aklgNg3smBt#3c9Z#xB{}7xW*LCo%4mS3$`l@f)bNiv+@6Joikx~-p6X<F(?Wc{ zn=EA}z-Ta8+YHl3=16YUoy=rT*hjjPkC|sOnoc&bP+&Be9B7dNN+}i^jGUACEtMHr tC(GMNOqR2e+{|Wa&&a4Xd7iaCqy6SGD|I+$@;PgBR!|Nwo@`^2005_FHYfl9 delta 2647 zcmX?KJg0KP1=bQ>1_sN?j2zmN7)ANg85kJkm>3us85kIhcqW%vswXlqFfau2Ffgz) zFfa%TFfd3!`5T2G%I*p=FgyjZg&7#`Ml!u%ed^&mHF@95mguuN2WLe+IP{^!W0P(A z-<(4>EFfb+=76kWWngAtWH`gNX7XxAcim)R28Ik9kX;D;|NsC0AlJDuFfimG$w6H! zxH+21f!R-(fq}u(*V!etIJ+djASk~iu_QA;k71J1P8LCkly81nYHn&?NxV;LS_y;u zj?fMvG>M?h^o$Y)sj4}TH_v8GWn#3L%*df8<>~7j57P_M>XDe2!eBq8y%ppDRB5mQ zVEJpB$1YCdsAja8%*df5?&}<n?y&9^w>EFC=2*p8F9LA|hKlV^Qgub4av1jOPdW8M z3{4VY`!ZR*r92?nyn@ma$7FCw2uURHfUN?F`6d<=Wagzi=jWAhq*jzLe6z5BJlT?K zQoRo}+(V%BoB#j+M?l%eP#Q#GQwL5X3=9nT)V==y|9=w50PO1O8DJKJ6ei<V2v_&& z|Ns91M5+rUsIH!Y0c2nhL4^=?;Y6r=`Tzg_G%V`;pknb*`u+d^|D)=m9ONKGSNQJ# z|Nqf=)FnXWKK}pzKNiZyW*$u4hyVZo$3fNA<5T$d|Ns9nP=(0qU}+%*DhHxKnH5A6 zQs)j*gh&ez|6?=I163iIhfSR)SO$9{M0TJTR&@~j8ITovV^s(dL{<lL3?U!;LbPJd zB`HY78-qU<g)lK#f&wM3Fqpc@6L|HRN^~b5<n<B@h6-{rFfhQfN2UH`MLsXFP^gq8 z0|Uc$DEp-T<VHR(u}CPFgMoozBb41>F!>>$ml!B>gUW4?lnpaP&d?Ap#l*nC0Fv@y zfk@?=OkT+EC6)@|F@U7kLv`)6n9L}!k?Ez-<ShcGY+r>K7*cdMzZdu~nGC8^GX8%D zS34k$<{*NBfx!eyL(OJj`2PR@e~@h;aSaf`z`y{P1li>R6$H5$#Dpm}nH;FCA*Kfs z0%4G}EQrCtz@Ry~Ut3(v0m=irK@-Yxn7l{ZKoBMcv&e3;BA<+;HB1eZ7J$;OlNI@- zC;RH~GTKaz){zl}B?~2}yvgJa9WzFU$qITJlb`Dd@WSLl(#DfnbnO|9C%fos);og) zu!X_b|NsAk%5#uBMgV>L|Np-lNCunEFaQ7lSH~s!`Tzg_st8F)f`oaQ;nV;B|B+p4 zi%<z>!4-lkZKKH-b;TJ?Cco5$c+^4_S*sja0|NsrSYaiG&SXVC343j*EQZg1|NsAA z3n~eVM_BAKfRZ#w&Umtbk>cd9da<1PAT9#~gZ<=a{R~b6C=U|sU-ShSjVH4jSTmYV zb~I3AG@h);Co=hhF$<&RWJg1z$?FWl7#$}&8c0r-GvolvN-!EjW%MR5Fyw$I32M0A z3hFkn+c^!PJdMd#Mum8N;cE=?MVv9FFRb8hH8s(|<CC8znVc3-`xHQ-&uBckkxzN@ za#L4E<H>JLH72W>2~VDGCb~J_%$ku=ck*g;eMYCvx6RezoXN(P=94YWj95WA%4~AJ GWdZ=3hoV#f diff --git a/Content/Components/Movement/Turn/IMC_DesktopRotation.uasset b/Content/Components/Movement/Turn/IMC_DesktopRotation.uasset deleted file mode 100644 index d68fb4eae4e33f04237249477b5a9994cb6b2721..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3491 zcmX@utTpe)|Ns9Jm>C$jm>3v7GBbbyBLf4&+l&oQUOG+r!hOqdk>hSRJq-p11{O{R z1{($j2K}J$5Rb5+ko^3d?938<=ltA){Jhk>l45<|{Ib;C)Vvb?kkX<&eNSKKc$d`T z?2`O~p!|}=lFa-(u=&~y3=EAROBfg!ezGz!C^9fGm^(UIS~?lJnV1^68e14RS(v(- zn!6ZS7@Hb9n;5xSfHi^?GchnQSh6!Pa6mQxWCu$zFmf<}u^<Nn!&kf4OCQ~N?b#TV z!v0x)d&(!pE`KxI*}l70G^;(|XUPPz8)Od1A*>9{42%qC*w!!#F)%P_Ylpg;Y6qp} zq$U=p>YC~qGl1k77*^>l!XXc_oq?ex=V}s&?a9Hwkk1QZA@KkI|NnymPnLm!p%_UH z<aEbmaJanZb}i;(U|?`8DoU&jD9SHLEh?#G@Z9h?6XdKU&*Ffb#LCnn-^7A~#H5^5 z2HgtNH6W9m^7C`x$^}?9bO|spFt}tE7vv;XIwzK-rso$`GR!*p^cxRC+%GXVm7!|t zGbc#~1_sx>jKsX;)D(z2yi+SdR%GU-GfbOjZ342vHLo-mZbRVpxem%8U8v6SPOS`1 zEh)*&OLt1mNG!|DFDhn8FIAmuN0d@4E6==))S}E1s2Rm>Mftf9_b?P~_m^g2U|{f0 ztz_6@8!-hG?cS-CU@z1K7l1;Q0qWvnhPww#(>NIz7<^Mp5>paO5*eN}oP5Cr639=< zOv_9yDrQi;laUQF!#BUQIMv97fyHdXB~}Io2C#vavKBW%UIuaCUT*rt;RRNapO?z; zh50BiKLZ1Ue^ORzatU0G<L%9_K#?1en4F!Mp6ZjIoS2hY1y1oGvx*B6lT#UlN-8@* zA&wDr{so{UP|UEgac!d%0|Ntw0$8{(?5h2ISPVl2O#iv!he3i23=Bb;=@}(p4?2~W zl;r0z#2?!C9h5Gh=D^~J!EVvfFCgCpmlTyE`Nn`@&L2=Pgrrs=ym-W_WIHHqLy9uf z(?KEm$RT&7H7TWmBSvBHE?RrN0cl2n3KoXfUK0;dS`c-wxV2dXWOs0KQDy<C6e~&% zg+wdE4^Le?P%!I5<zRWlGq0eugyHJC({I=q7#N&$5{ru&O3EuH3NtV;cw%~QzPZ~x zP+IeJj0ZdW>s_{`AS<zzi`$>1>VmQ;*a~Rc7m`Te0jmdD3r*zC`FSO&6(tPcEbJeH zq63uFT_8z)%Vdyc&?LxE?A{>?igPF*u5PZ*l2ip~(WC^WfBygfA5_4DxS-+&M1wH8 zI#6Yy4w7JCU_e#}D!@U)Y9NAvf#LW6|NlXy1c-}I-LL=u|Equ$p_vD>R}(4+qCnXT zL?fGrO`RM_5fSFW^b#@;<~L+@|Nj5~548qNse(xc25trh1}#u&1+6Th!Wa~&{sCc- z1gLHR(a0EGObaRrs<RxSY&}p8g|b0rfiRSdLZO?5B8kQUnSm?8fyJ>@=&T$J3_m~# zkAZ;!t{;m!kRPz-Cp~bIM@!xylR(+QFR>)EEEST|T(Rd?J+Q1g(PpcIn-2S+UI$qM zVuCCL(SM<BAW%6B;xmB49Hs~+cmk>jR0@C<p%daz0hop^C|?vxV^FZj1eGKpNoXPh zF&P*@*%-tEmF*xJ8rq0F2&$ey64D@ofq?;3FhH3M4B(UsGY_{4So)TMYJ>#{Oef4` zU};cG1;oIs2&4dnVLD+ZG5q=e|39c!21&v~2$t1h;vhK`49Z&|0gONZRbU_qm<K=+ z2I52G2*iY9P~{6^f|^|*8WxT)8Xj(-vLB=X!{s1Bm_4I$3<?b>#t5muRE=W^s5P*# zr&k=q>;qYk%m(p6X&+Q5g4m!+f?y8@)ZLo?ZE1s^^^uDp55RI7$N&&7yJr!|a%#UO Ls6_<ggVX~6)Bka8 diff --git a/Content/Components/Raycast/BP_RaycastSelectionComponent.uasset b/Content/Components/Raycast/BP_RaycastSelectionComponent.uasset index 4900352dfaa28d6b6f38c595e44bbc889891c947..8b06b970f91a7b78d47d15123f69c62cfaab798f 100644 GIT binary patch delta 1703 zcmaD_@uY0R52je1iN8E~V;LA2e3%#*7#SECWG4qO>crY`Gca&4Ffj1&F)#=*Fff4l zJc1AvHi8TcE`kgU34#m^Q7%_yHoY`;pL{83THFlN=)eg5?+HED&TE`!EDZ3^C;^!W zG6!S>D+4nF6T?66{gZDpx+~ohWMD9`W<UY||Ns9VtHZ$H%)r24V!hdksf~H_6V`J~ zn?G{gWEA0HU|{gfD<~~-OfJdH&tnjhNZ^?)&b?FC6>5kdl>Yqx|NkH;TYvIHUSUyW znJ{D-M!(4ud4(BKRek#Z|9=FsD!BfS|NsB@!YSj8Q^p6UOdwX75C8xFkH#wV{{R2~ zF>o0}K4H;NDDTVv|NldvY>0m%p*#=;3Q`b_DdPeXW?*0d%P>ZQ!V4N6$ok!oRf!_Y zcp%HzBFlKfWS}&Nf~ki24&>7SkObHTPx<tjVs$15n#oNz;n!jGot(%o%v7&8Sy4!C z@)Uj@F@LB^Lk0#0O(^@k-sFkKYLox)t1t#nRum9s`T-G$5l~?ao7^ZM%(PM;tO6qN zP(YaJsS#K}Mo@(@YO<rCFq5JA<UljE$u)v1j4_iJ3JNo+Sc6sE5uDB9A;`cm`5>pv z<mp1nY$1XS48A&>4+s@XNrLi4##<(Et^v8l7(_5IFc?hs(v{Iuf$~_OGy@X@1A`-! z1IiX4CMauwXoJa9bTyo{Kuiz@NlSwm3=9maP#Po#VqO3d3=9mmP#SDKOp)#6|GEZ( zFe#YT){_;5WF#%18ep;lP`=aThy2o$C+P7qT27v)CnKm26}N}d29r<g$uJsBexYZ^ zXggV6-+~vW0;E8Ha*DovJ+cThDD#4(KtTbeVJ>0#`v3obWW`oc1qM(Wt`Jld=s^Wx zUI!HbAR(AyaFDVxFfdHEH&6q+O=EJOfq*Kq1u`HFNWle5#~PC#@=I{4LuCynE0~BV zsX=+Lc!0$YgBespf3lQe9j7*wXES-BVFsrTlm`kLjmcI<0*v~Ty^X9H4JSV^RRm=u zei7E+|Ns9toBYtsaI%k?{$wR%4Mw}k4@@N|?=|B9tB?SZ5LrnQ9Lx!K@MK0qkQq{j zik!Mo_oz&6Fe$|6R>4@0M>01wHoD9&opLQO+ssRU@)A=NcTe7HlsdWE47Y2ICp(*` za+*SIlmi7RqyA(?A?3+$&0QJwCmUO6OwO?oo_yBAc=91@qs<E~5*ZmaCr4ZBGdgTG dwo-?4CU;w#bAh7S2yE8mKt^>&{mE)J_5d9@IOqTX delta 2017 zcmaD-_OxQc4<<+5iN8E~6B!s7e3%#*7#SECHck#;)QP>o&A`CHz`*c<kAXpifq?<U z{~!oap&-P-pdrM-;3CApAZ7ixuP$x3|HLEHtyfolTo@Rk|2?6{+IfxhjD-RI86_YS zLFRyLU}a!tU}QMMwr288Mt7xsLJSOsHVi1>|NsC09d#KPTo@P_Ol>whF|{$vfNb~l zbq-3bOinB=2~N#PO)kmI&tvG+c(HTy3D$E=jOG*ns!DqLI>%$ES^Jq~+vaH;HyM3J z85kI_Dml{l?HUhAGOwVt#1Ue&kVFCx*jkX7Z(>0~W?s5;eqKpxMG3<<3;V~Do4Iz% zx<g$a0Hr_v|NlP($~KsMkVjY)Stbgr%!mK~|3~ALiNPxK{{R2~J~(B3amx7NlnKTv z^X~uu|MAE&sWAV%{r~@e0!#)<gD6iB!N9-}0i{3x|NlP>$~J(~APS}~62xI(VEFX^ z|Nn3(8xnG{P#%Z^r3DZTmSK#Y+{i7=2xf~St8xP=VPIeY%P_`*!XJw&4`fv+`n`~4 zY>`d&hRHx_5Cu~W3m;He1%V{ME@0%-XL8h?9AGLpIe<?`)E_Fr$-uw>3&P~d8~NoY zZ{X7r4TQ=XGB7Z}Jh6H5Mt<wbI{X5np-@>+7TO49|D3#$-&+inpkSHHh8ZHY%3!jg zpxWdLeig7Z69Xg<`>;TypBaOtEd*4=;vganASIunx{WL*2bii&o*|$j28vyn;h@X` zQmtwO*8M|ZHiwQ71A_zu1H<G4S`w2t3o5f&fbz2L<~xFgQpuo<ld+c@T$X_JnScle z1_qD^K}@J)7#P0)|NkH4FOZ-rh+tq~fJ=fL<^&Z4xdg<7DK?zEK}SPO8zcn6AZck3 zgMooTZSp%EaWOk659|gtD93KHw61|5ObTWZ$Wt<smM}F?S^!ErPoAi&!Duykm#&N+ zECoA2<uLpMa-ITAax#ma8Kd1~K|>8$o4KY!p)1TCyTTtN9T$$;4>Jg))L?Rho_##B z2q-dCKvLL(?92cE|4ng8e*ORdKe9>IFolyD^+g!<Cm+-iXEdBFASg1~NnZ)#w#mKv z0;<S*WT1Lr!30Z@nv)F$CDb&avKU_f{r~@eb*QBFWE*1%MuW+c26db|P%+!d3k)(i zb)h^^uvma{C!g@-SVIj)qsjM86d4UBGn!UTRy5LJw4Z$6L~`;TQw~N@dIp(w&@e#~ zuhZ;_a~jkEpqK(PEx;tG)Q~h#<kW-mR43OP7vgcdhG4A6Bbgf-8(rp?PPrDCZRTY# zd9jH#l0PIEEhZl{Oqg6{io-XP?aVSc&7k(lfdUuoSLMlX%v>1_CL5V+Fmg`5ZLU0- z-$HBiE%Qi5My<&`R{D&Nn^P>+;hf2Ptjs4bFgM}?WdUQbX_EsP)fo*Yt6JLw05^AR AH~;_u diff --git a/Content/Components/Raycast/IMC_RaycastSelection.uasset b/Content/Components/Raycast/IMC_RaycastSelection.uasset deleted file mode 100644 index c8107a17d2a2759c51d57c42495245273d290947..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6614 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 Gq#gilpz&M) diff --git a/Content/Components/WidgetInteraction/BP_RWTHVRWidgetInteractionComponent.uasset b/Content/Components/WidgetInteraction/BP_RWTHVRWidgetInteractionComponent.uasset index bbbac1fc6516d46209168216f4d8b502e88f0a38..904f5d3363442da0ff916b54041f595a4e023ffc 100644 GIT binary patch delta 2238 zcmexX^P+0P4<>QF$<a(<lLHu8cvBb{7-E?i7#JBC7!)TbGU~)S@GvlNFfcGA@G~%o zFfcHH_z6M~6*Ghw7#0XIFzgXxVBqwZdHiT+ukUgP-sIGjrfs(xjFb5{l>5%ns$D<p zY|d1Wi6C=8Hn1`<GcYmy^WH!C6{EY7i!cL&i7f*P`2YX^e{nqq1`h@X1`FHG!Ax(M zH^;CEGH>3_Da<6o!@$7cnO9I+;+R~LnV-iXB$2=~S%T+ey${q7CMf;(|Ns91P__w_ z22tK1f`Ne{1WJGW|Nnmklubxo3~qJxa05U5|NlQ0w?Y(kaYU$l|NsAge}d}j85lqc zVZO)b6Og(<f(Am&3nEfocs&sc-~IppKM9LEU#M6#l>Yqx|Nkf`8=FVsp>iM!luAH! zJt2jjAXN+u420Bq5vdNAj-cj2{0|dEb|EZbLKT9I$EMB?EQ9Jmm>4Y7Kp_~0MV$`= z)RttZ<fs4t|0hD($QJ+n|NlQ!n1O|XfdQ67G#OYJ1fUY)dXviq;+WL+Cg)kmP5vsN zBNhym;Y8A*V=(!liQME+K^?JBsI(yi149p#T?3L<o4i+0MJy631S$eH!q|qBADXC5 zmK9PF17#{$31Pzwk>80b4NBD@-98{EGcYiGH393sE2JWp0MWnzQt}z9+tG4zo`u?E zTVV;tx0Az!Co(M&n*37OgLQ)t0|WbJGm%45nxNur!d`xGVFxk+IgCJj3lPD;z+gIA zQC~(+6Uu{H&j7Z~1u6(~JBSH#Ac!`doUO0ntPf&>Fi2Vs#9&}x(1Ow+F%a_th+tq~ zaD>ue=fD&>PQIpZAPAF!S#3Xgp`eVU4O9b678Z4`lNSm~Pfj=B)q@qPN>G(B{R|8Y z4fZhKDnlhrCoeKEV|1LXZ=xZ4=EAzSI;nDg8{gI4o2Siv0HzkC)MT=pp}iim2*_A< zkQ6AapfpGf%zX3z|9_3i-G&N+ZeTtGgFBQqoqW?!CfpRtgKGeV3$p2UPz4wY|NZ~} z-xw+h(gb3HY6cK(Iyq5TWO9O$62wE3R~reaA{#0XQiK%fFt_PWUMMKRsRNZYoy=$~ zqNNSx!D15@#|&0b37Ek=lM{`^Cx;owa~eQp947BG&fo-P36KCNY%Lf~CTEyfGn!34 zXdyXyuL%dE$z(@C5!PS-|Npm|{LsX3vaY56WP4K$MyJUKEfg6|Kn`LAC3UcjBnb}Z zggbn)oUsHaiYvJp8H_+qVqjp<oIKa85RZ#BCT}noU^JP0&>X|nlW&=%PQGBkGI@@L z3Rd^d;IxF=q6qhg@?<V6S4NY`0ahB5JFSE#zp^r(eBaiHkzsOzl>|s+^D8S;Mn=8K c3O4$T&YJ^l)Zv`TD{ReKK~Zf!S<Eg003nAv9RL6T delta 2305 zcmaD+^{r;Y4<-)%$<a(<lLHu8crzFn7-E?i7#JBC7!FNNWYmd$$iu+E!N9-}D8RrV z#=yV;;s**tRCEe6FiaF?U|1{6z_8R@JpYxAoYTaIX9ZYy%F5qrFiz&*Q0_ZNt9JdY zvpG{iCW6cX*}%%c%)rQShHcH{SB&mTrXmasPIe3^;Q#;s|2gy-7(5vm7~JeO2Q$54 zmK9}SVDR*H4$n+UPc8AxD@iR%OfJdH&tsTzdcN{zdp1F4MyJVqoCcD<&heOvIFsw2 zZVuoSX7U61!V{~Ssk5p&ctEz~6_l1ZLJSv@NZ=8HiTNfL6lCV5JLl(>q*jzLe6z5B zJh`0vWW68M@k~(q_5c6>gP?3vC=H@~K?DN>Ll~5P|NsC0C@7ndx&++n>fr{y`~Uxc zB5s8!>XL|1_xAt)|A7S6)iW@F6vBLu&nF;t!2}J2m={8%y2yGW6u$ZY|9=`5b^cJX zI4J$;|Ns9nP&TqhVCv$bav%Ty{~rrwiy|w8#c}fFKt5qxtTIq-Aj%6wFfcG+RX2Gd zpKvNx8K^E0<pUycnE;goQ80I5HE;4qKH)&DG9ax`8~~+})xpGIK?@4z2$(vMsfOuL z-iQDH|EEIP$R_;!|NlQ!n1O|XfgxyeA-^!FOlsqgW0KIHoM0|DnMFW{F?6z_fH0G+ z;pB-za+6a8bi~4;x(pc@7*;~rxgcq^$!7#q7^5eD6cA<-Gnzb6NNuu?pbBHc<Um1T zrsK#08wG`#n9aZ{-UzBNrc4$T5@zzZnw(&+HrYo=g7Nj_RH2D1Q-v8ACVO+qOcoQ? zVqGZA!0=<UtMDNyO;ABH;jbOIumstU>?;u85=1aCFqlm?(38>Ag7QFq1T#U|#TCqg zl%^misDuR3W|OP*G@K1UOb`YYo^l`t0|SFLlm>}`m={0<0|SE-lm<HorpRgXQ#}Jg zm=w%vhshI#WF&2&8ep;lP`=ybjRMlv56)a^JOCECRdN7UIxB$%7{KuaWj5HuysZos zF`K+m-;B{|vZArZWB~&KUYI;c+H|t6fxRBG2*^zuASqBlL1~Z}nEC4e|NokkXBjBy zxr6x(4C+wY3`)b5e*XXezXw#%Z1QOX87&MYpb$g0+8(Z4&`?Cu1j+-c0x>}q0f;u6 zTp%PeIml26>ZQ4c0;<TS$b%Fig})n=uQz$4fP|VZl!xJ%U;qFA*MUkJO!hIAU^Jbq zX;jAvO3ff)$H^OvGB}MuOpxJ|6^$(zO(#bgTQizZes8A8XgXQYymGRki3X$d<o9Nh zlh2rQFq(p_WHg<8(Kta8ue0ola~9NcSfXUGfeL_Js>o>!<!MdsH!Z~DZVkb`8Jj*< z?5OgdX((=f_vE)*rjs|DA^Ssu(FWw^$zA3+d^6e4B9qe!YM&z1mlK7QC;zc<Wi*}a zWU0Z(HTkur@??1{t<A42BN-X>C(p6bXLQ+IVyzD6Og>{{K6!(s5i2N)Ehcl=CIA4; C^Kx_m diff --git a/Content/Components/WidgetInteraction/IMC_WidgetInteraction.uasset b/Content/Components/WidgetInteraction/IMC_WidgetInteraction.uasset deleted file mode 100644 index d3751897c41b760e653f74954ff29956897cd671..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2852 zcmX@utTpe)|Ns9Jm>C$jm>3v7GBbbyBLf4&+l&oQUOG+r!hOqdk>hSRJq-p1hD;6y z1}6pv2K}J$5Rb5+ko^3d?938<=ltA){Jhk>l4AYv%#`%h63@Jn)S|@XlFa-(eNSKK zcnndnEg%!yK~^y^Fsx!_U{GXWU~qOeGBz_YF>rIVbg?jWc5*avGIMn^Hn%WxG<P+y zFac`>DQ03|V3@_mz`zF89K{ZnVn||V0OKNd28I<L(n5TbCcCt>K1{BBc<1Po-O+8X zA#GmsOkYUOW~tZ!vKwR$$RVr@%nXbSXV}&-3NbJ+XlsYMnra87=A<STr|O#O88d+7 z85maSEW#lVv7LcowSLS}5PJ<f1H%U{5DS6-|Ns9V6ofJi3=Ch8<Ume$1cw&Gdv4ca zJ_ZH`$D*Rd%7CK$g4CjtN(Rpjk268eO7biY$VseBE%Hq)C`e4oNoCNjFkQpTz`)>? zpPvI)F2J&(OMroa!6mb}ASbcXIk6-)J-?`uVb;l~-*^z>eu=rM3{_K~IY}}wFu3Mr zB<3Zjra;``omvU9A~P?YVcI-v6OawAd8N5<8v?J-bx;QBLUoRJYGrV0Nl9j2x>IUK zVp(Q>Q87b$sp?!iqLf-$dFExL7G;(|%_w#&%Fl(khoNY@zcdR21A}*JCBqimh$$Qp zHrNYw!38WJ@A{;smH6hD7N<IumXze@F$jLu-OS0rzyS40F~i-1rD<S+)RM%M#F9jY zCk-cGfa1Y7KP59QGqtFgLGeyTHY)=I1K40oS&N$>uY)*nuQz?-@B*vI&r4<a!hDpM zpMinFKPf9Uxdg7p@%H9dvJ4Ci0g1`kiRr06`N@ennN^9P`~WhmxF9h(l|iVavI7+I z7(wV?08&`Yu(5G%qZG&#lqg4paWTWL+Rul@FjT<wpDTVC1PT{uaKfU5!EVvfFCa$; zmlTyEIog0>&L5C(LsBacJ~?7lvK<s;Aw`+#>7W35<dD14n$#k|5n2K`=VT^lGo0#3 zsiaOR!kJwER0QOh;N+sr0#HFzlo|?&3x*$_x^|$j(TB>x61ZnxL1_uY)pe)efQk<1 zoW$Z{hLZA%iJ%biM0IFZ*Cq>)5!j2csk5p&K)DHQAT*f@NhI)q90V4FraR~Sypq(4 z5{7RU_K!h9>6==T=mJT7TPB0jF*KDh6uWnbg5nFxhpU^bvm{jxT8bz@>EHkV|5t^w zK_vr}$$+lz*Z=?jRiKi{>g1tfpiB&6{`vp^KdAf#v60om%u@qNKryKJ0x=1xgXtxt z4(1kQb^reV{|~YQhLxZUZUzPhH&B@kt&O0<7!;^z2Vsx|sMrP3$QWHr9V!Vj+7ZfL z4=Ng<Y>-(X4CSIw=w_ivqH#cG;7TC4lUf=(14Aq*sW31wfK0%xQVS_Jprm*`Y)KMi z7AOh(C6;8Cr9$$8E0PJ$`SARt2bNXGnwzkhtq!i4^`PDdl`9}7$U+b;2?}Qh1_n_1 z2jYW$1yckQd;(Ps%BNsO=!7^_0H&b}$`^&w7!;^x1qlj+2nGfQP>lj*GBAL$9*83d zA{ZDLpyAEH085vkQXeD-Dw9DpC^Lg-Fb1bqn0dHWz|4{cYl6fkhzZjPa~VjC0aPS` z7|?KlI~PR}NC61L1YssI{Qdv`KP&~qLP!&&l7WE%CJyByC{X?a@h}1bluSSpFb_Z@ zkOA6a1W7@$1e6A~YCud_IKpTKSh#^wF-QT1%Rz!LdtfxO7>EtRpl|_YCJ-A`coA$o pg4(;&zb$Rhvp#YW<N;Vo1~LGI%kEhOvYgtlX#nCdFff4B0{{?tNooK9 diff --git a/Content/Input/Default_IMC/IMC_General.uasset b/Content/Input/Default_IMC/IMC_General.uasset new file mode 100644 index 0000000000000000000000000000000000000000..eda268398333a091619597aacd0c1dcf9c968807 GIT binary patch literal 12688 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 I6*wUE0B8xxV*mgE literal 0 HcmV?d00001 diff --git a/Content/Input/Default_IMC/IMC_MovementLeftHand.uasset b/Content/Input/Default_IMC/IMC_MovementLeftHand.uasset new file mode 100644 index 0000000000000000000000000000000000000000..9b2aaf0578dc8427b0fa75dd604714885463aa12 GIT binary patch literal 20746 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 literal 0 HcmV?d00001 diff --git a/Content/Input/Default_IMC/IMC_MovementRightHand.uasset b/Content/Input/Default_IMC/IMC_MovementRightHand.uasset new file mode 100644 index 0000000000000000000000000000000000000000..44f4a88ed6719fb9bce0d3df925eb10fb58257d0 GIT binary patch literal 20791 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 literal 0 HcmV?d00001 diff --git a/Content/Pawn/Base/BP_RWTHVRPawn_Base.uasset b/Content/Pawn/Base/BP_RWTHVRPawn_Base.uasset index bb1b9efe6103923e4c78cf3360ae385a63370e01..365910726f91633d9c128c5c2332139e31dfe8d1 100644 GIT binary patch delta 6162 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 delta 5537 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 NNy4C>|74XEdjL_{a`FHG diff --git a/Content/RWTHVRCluster/CAVEOverlay/BP_CaveOverlay.uasset b/Content/RWTHVRCluster/CAVEOverlay/BP_CaveOverlay.uasset index b98ef4a0d92337e6354a2b13a7b5fe78156bca8e..ab15ee9eb49fa5f0687da7bfff83330b505d4e03 100644 GIT binary patch delta 3814 zcmaE~pYh>d#tl4-OubH%`52w}8W<QDBAFN%m>3us%K0Y8F=|^J<YQnEWME(j6k%YH zXJBBc<Y!>mD8<0Q$iToLD$T$kE6u=QDb2v}zD`Hxkn3f?9V&}gKR5l(JNY1^1TV-u zRt9DUCWe3B`zJqRbXS@#&A_lWjsXSy|NsAguM-196axdp#<<P?Ovx;pud=DIFzQVf zWYpQ5%$>}{pI1;?;+R~LnV-iXB$2?gnU#-)sXhs6Oa_#G@&Et-Y$)3bN`t6)5W&E} zkO`$<|NsBL0Lmt$t^~KbdK3doaVvzYd-ebS|1u)gl@nA~&%p5V|Ns9f1QkNmr4p$w zjYxI*^+YPHB2ry7k?MS*>gw^u9VldKp$hS-1Em>Q`axEg2-RB*rQiMk|Gx;zhN^@3 zAC|Z(ppqa8l#)R-R3V7TfK6RAScZXtkh&PG>LB(rAX^-ZRUt$WSsg3~60#WPXsqg> z_Jd7N0F#7$0?V?<2Ez2h(g~<M$iZSBOr1YeuKw-+|Nm>C9Bc-{6u$ZY|9>4Gb+B{- zve=tQbv_IXVPK`$EJijk2&@V<WRjs`un>Iz|Ns9ysF>AcHBo&~ft=_gH@Q?)M=TvG z!O6hDkPBs3yH0*6EjRh9sE$|`RLGKnfq?~7Dl;%Jyl|a7(O-SCotUy%Ayk@!fq`Kw zl>NpHE*%aP0!gohvKP98rT>X3i-Af%keMK98)k^Sp9hLGsICA>JFq~cyS!1PL7G6) zK2YgX{$Oc231u-*i3u}&0*JxDz#tX^madaf7ORAq2d<2+ut7M>LMJEss7<~rp&|wg z3QYzE1}%szLsbk|x1FT27%Ty4GO#cRK&6+&OpbRIo7^jDA_gjJKvsgB_6#b$1)}?( zq_P;Oh=ECiEC8vP6$>^zPD)t}mPkN``+?*b7#I%6f(>6QWiq)@N`y%;4#pLOr2u5r z@et`;>5EK?(vuxzjM;Rh85nAvHdo3#QIiB!v<v^fuLn5+WV|DYU|?XdnOx;8W2_J5 zK|_=Q96}%$gT!q>1Sly$X$C$928OW72Ry_XZ6-f-)?l=m%;lmXX9|-BMIS5)t3U+} zCI`5Piv>b?VB-y-oWRMoE(U@yDVPiVCM$}`NP583KxtU8M^1hyt-<IyS;kdH5oVPf zR1G$hBxFJUCc-p9m}%Nj(`+U`aW!KMoGjp{VYRU2qIrIPgzJnSN{{*;-%^LE1u4ZF zSXPs3-Rvcim4ni-8%Q5G3KqDF)Wf0_BeX$HB_EhlC=ClGa5{t~9SoiP3=9nRP#qYO z5C8xFFNTnm1~cL2e)#|YzdKk6ltdP|%P<B^-s`U7gzN_|m^_q*YyS8D|9?=~0TKr# z1`rL4Ih)DK9#)X>oZRLiphdia&;)nG!w90?bnBMbeLcb&UNd{Xd$9Q=X&@V=3bGT_ z#)Q(aur{8oC?>&a1QoTJ92hF1WC-QK5-=zOgN0ncBm;xh<o%v?oMup7z~uS98Jy-& z9yn!8zV9W#Xf^qRmo=l^<PYAGljr$yFj`Gk6cd@e+b?zUac>RAkjWps6~ST>j8>B$ zN*hm(^D%{|da|7740Qs?d5WACP@eu|Ro_B9j<sO4n(XO^;ZW9}|NsAYhB{1lvVuQ$ zCxc{ICcp4kVYHq6!CPdqVt|H{HPmKU_=8M>3PC6;`PUU<8aO(T{hJzy+rI%pApdp- zVfc4)l6UIlgkW60ObBL~tPzsR=rp-6L;)OO%9AgJ_!1LgMmW<GtY(A-6lxmU9|}rC z7ecMErWIXAtH~?EG#J??#Y#;6ALBjwLRcZA$z=X$O~%m8IpG%=;hgly<p_>tGz*+F zIU}Zy6;uv7O!kj;(}cMK8mcHQMv#~YhyWK)`(kAnZ6@E2m0=8?{3F(sGXg3DN&9he z0`+=O5sWM(0hK_uOcE-FQ6%v)ptfmXjV%m?&;I}a4=O=H27x3eFLoCM=PhA1;`B^j T;4VT)!&78S5E>@0i#GuP7xgLD delta 3942 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 Q5z_D&*%E|?$!p_G0Ee1AvH$=8 diff --git a/Content/RWTHVRCluster/CAVEOverlay/IMC_Overlay.uasset b/Content/RWTHVRCluster/CAVEOverlay/IMC_Overlay.uasset deleted file mode 100644 index 23003cc697e730b961e3f32adad94eb1c46d8f37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2785 zcmX@utTpe)|Ns9Jm>C$jm>3v7GBbbyBLf4&+l&oQUOG+r!hOqdk>hSRJq-p11~m=_ z22%zG2K}J$5Rb5+ko^3d?937<&pD^GxFoem-`O$D)xRvYC?~N}-_zGQ9?AwA3^Jq& zWI6)_Lp3V{gCYY1gQbg$p^34vlasNdqqCulg@Ln?n~9l=xv`^#vx}>RBUmFyF%ts= zLpB=&0~=JcHal2~!I+%^jGfsT7`D9W@14ZB-l@ZAmguJg^@eAi&-~n@T;kaDb(W|1 z9_Ij%-5_&74q;_rW?*DE!?uP|h=GAYTRYU%R68g&CpED+Ro7I{m;ofuz_3bZ5e|8X z?F<YLUoZF$Vi&VBFs$VQu@LzG|Ns9%p(ew?z_1ZX4&-#l<dV$%Jcjq&uEl%|3=ED% zMTwOGMfnA(MJ1ICo*N!#f}EA)Ssaj)SeaVnn^;hgn3R*spj%<OhL?eX!6`pK2d-Rz zWkZ($0|SFgW^qAIVx@CpNosn2Q6<BylTW|#AjJI=b5j|rrap6$WME)$&C5v4OHNIJ zxWhZO5@bbYUOL0HdDbQ%8(i~BbKy1wUZ3lr4AO<_9PiZ1;M9_m%)E4`)QrTk%>1Ha zhV)X^xpqV;wX*We%SbKCEP<L)>{gVY3vmxa(RP1n76t|eH$wx4TPC*kAhvgECBqim zh$$Ql3=H0>m0<7G1sAYzGB7YeU0=*__h4xnSRl0|F(t7ik>N?h$rqro_svhqOv_9y zDrQi;labBJz`y`Dz*5%YCdj)W4&1v<pE$h0D)RGE8NM(d<>hB!VDL}MN=+_-t8u)& z`IRgK14BS!a&}^Rs!x7$VoqjNA}CftW)&ACCZ{q8l~i_sLK`F4{0l$|iy1aHu5FY8 znSv6{h;S`t*j4-auo#94nErFc4}(Ba4-G<CG%(mLI{F3V=-`r~QY1$kFwFS_@@+_J z1;QsstV*_nf-IycGd&#?K#v@9S6Y#j(;eeO^3&6EQeoMBBR|7!vdfAstnXfnfUFNr zF3Kz@(Ra=-N)3gCKEn@BT{}={=tJdT$=EZmptOYH>blc!Km~+zPGWH}LrHnXL_r1y z22XU?ZJ!{j49XYC1(aiwdN^1NWDqnF3P~jJfE)rg9Gb$M^YcnlD@qu?S=c`Y1)6Va zNumoRoo$&6N}15~z)<YoAqt8aC?BqFuFjHFIcOQ70HuHb|NmbV$_C|oD3bwQ-LL=u z|EoYHk=4mV#XwmU#QgLB|9?>F3SuLxgPErWl7M1R;RIq5QU}vZNFB^A$m;(6|NkFk z2MjAg8Qh>84l0qM)eBS@g8~)YAPkZK6{;W_8KaA-LnT2*L#hx4h8$2K02K$B1;S7+ z3WaVKiX<8bWCpGT0!~awHJ~{=1A`POfiN&Ifb^luYayk0lvJ&UE&0Jr@JlSoEK7x? zcUL46kn)TkSXLctj=^TOI=GJ2gL)NIT7Z}!3qiCbC`=g`7(k^Oh!6G)Oc6}*2~;&G zFM<`J6XH+-n1(JWUldAXP@p;zBq$6b7#J8p^#PR0zyQi-APy+AgJ@_dGcdr?AgC+{ zNq|aP5Dm(>AR3IpDHCQMZWS=Iq`{gXaR_3<bi!N)5@P@ry&wiO9N^AHQ3O%|!Z1OY zNeqAg|Njrl8X!qn2x)>i3=9k~aVQr-fzlI*hY<*{bPw|YGy)l*%{`DFD3*ZIp!Nxf z2@6LU%>WBGPzelDfZ=kGAj}>ZjVuOYgD@yuKp6+b1{G8Un}MLl>hy0*8}zJ?Tm*Rl aR%(F^0O7KG7J)3M_G=n|I1CI7AoT!zmMFLY diff --git a/Source/RWTHVRCluster/Private/CAVEOverlay/CAVEOverlayController.cpp b/Source/RWTHVRCluster/Private/CAVEOverlay/CAVEOverlayController.cpp index 157e44d8..08d44b21 100644 --- a/Source/RWTHVRCluster/Private/CAVEOverlay/CAVEOverlayController.cpp +++ b/Source/RWTHVRCluster/Private/CAVEOverlay/CAVEOverlayController.cpp @@ -2,7 +2,6 @@ #include "CoreMinimal.h" #include "EnhancedInputComponent.h" -#include "EnhancedInputSubsystems.h" #include "IDisplayCluster.h" #include "MotionControllerComponent.h" #include "Camera/CameraComponent.h" @@ -165,7 +164,7 @@ void ACAVEOverlayController::BeginPlay() // Input config if (URWTHVRUtilities::IsPrimaryNode()) { - if (CycleDoorTypeInputAction == nullptr || IMCCaveOverlayInputMapping == nullptr) + if (CycleDoorTypeInputAction == nullptr) { UE_LOGFMT(LogCAVEOverlay, Error, "Input action and mapping not set in CaveOverlayController!"); return; @@ -174,15 +173,6 @@ void ACAVEOverlayController::BeginPlay() UEnhancedInputComponent* Input = Cast<UEnhancedInputComponent>(PC->InputComponent); Input->BindAction(CycleDoorTypeInputAction, ETriggerEvent::Triggered, this, &ACAVEOverlayController::CycleDoorType); - - if (const ULocalPlayer* LocalPlayer = PC->GetLocalPlayer()) - { - if (UEnhancedInputLocalPlayerSubsystem* InputSystem = - LocalPlayer->GetSubsystem<UEnhancedInputLocalPlayerSubsystem>()) - { - InputSystem->AddMappingContext(IMCCaveOverlayInputMapping, 0); - } - } } // Bind the cluster events that manage the door state. diff --git a/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlayController.h b/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlayController.h index 23434422..148897a8 100644 --- a/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlayController.h +++ b/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlayController.h @@ -128,9 +128,6 @@ public: UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = "CAVEOverlay") UInputAction* CycleDoorTypeInputAction; - UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = "CAVEOverlay") - UInputMappingContext* IMCCaveOverlayInputMapping; - UPROPERTY() UDoorOverlayData* Overlay; diff --git a/Source/RWTHVRToolkit/Private/Interaction/Interactors/GrabComponent.cpp b/Source/RWTHVRToolkit/Private/Interaction/Interactors/GrabComponent.cpp index fcc3abae..5dcc020c 100644 --- a/Source/RWTHVRToolkit/Private/Interaction/Interactors/GrabComponent.cpp +++ b/Source/RWTHVRToolkit/Private/Interaction/Interactors/GrabComponent.cpp @@ -4,7 +4,6 @@ #include "Interaction/Interactors/GrabComponent.h" #include "EnhancedInputComponent.h" -#include "EnhancedInputSubsystems.h" #include "Interaction/Interactables/InteractableComponent.h" #include "Interaction/Interactables/InteractionBitSet.h" @@ -89,13 +88,6 @@ void UGrabComponent::SetupPlayerInput(UInputComponent* PlayerInputComponent) if (!Pawn) return; - auto* InputSubsystem = GetEnhancedInputLocalPlayerSubsystem(Pawn); - if (!InputSubsystem) - return; - - // add Input Mapping context - InputSubsystem->AddMappingContext(IMCGrab, 0); - UEnhancedInputComponent* EI = Cast<UEnhancedInputComponent>(Pawn->InputComponent); if (EI == nullptr) return; diff --git a/Source/RWTHVRToolkit/Private/Interaction/Interactors/RWTHVRWidgetInteractionComponent.cpp b/Source/RWTHVRToolkit/Private/Interaction/Interactors/RWTHVRWidgetInteractionComponent.cpp index bcbea769..020ae40b 100644 --- a/Source/RWTHVRToolkit/Private/Interaction/Interactors/RWTHVRWidgetInteractionComponent.cpp +++ b/Source/RWTHVRToolkit/Private/Interaction/Interactors/RWTHVRWidgetInteractionComponent.cpp @@ -4,7 +4,6 @@ #include "Interaction/Interactors/RWTHVRWidgetInteractionComponent.h" #include "EnhancedInputComponent.h" -#include "EnhancedInputSubsystems.h" #include "Interaction/Interactors/GrabComponent.h" #include "Logging/StructuredLog.h" #include "Misc/Optional.h" @@ -35,39 +34,32 @@ void URWTHVRWidgetInteractionComponent::SetupPlayerInput(UInputComponent* Player if (!Pawn) { UE_LOGFMT(Toolkit, Warning, - "URWTHVRWidgetInteractionComponent::SetupPlayerInput requires a Pawn as Owner, which is not the case. Not setting up any input actions.") - ; + "URWTHVRWidgetInteractionComponent::SetupPlayerInput requires a Pawn as Owner, which is not the " + "case. Not setting up any input actions."); return; } - // We can be owned by a pawn, but not be the locally controlled pawn in a MP setting. In that case, just return and - // don't set up any inputs. - auto* InputSubsystem = GetEnhancedInputLocalPlayerSubsystem(Pawn); - if (!InputSubsystem) - return; - // Because we cannot use the regular debug ray (only works in editor), we set up our own (mesh) ray. SetupInteractionRay(); - // add Input Mapping context - InputSubsystem->AddMappingContext(IMCWidgetInteraction, 0); - UEnhancedInputComponent* EI = Cast<UEnhancedInputComponent>(Pawn->InputComponent); if (!EI) { UE_LOGFMT(Toolkit, Warning, - "URWTHVRWidgetInteractionComponent::SetupPlayerInput: Cannot cast Pawn's InputComponent to UEnhancedInputComponent! Not binding any actions!") - ; + "URWTHVRWidgetInteractionComponent::SetupPlayerInput: Cannot cast Pawn's InputComponent to " + "UEnhancedInputComponent! Not binding any actions!"); return; } - EI->BindAction(WidgetClickInputAction, ETriggerEvent::Started, this, &URWTHVRWidgetInteractionComponent::OnBeginClick); - EI->BindAction(WidgetClickInputAction, ETriggerEvent::Completed, this, &URWTHVRWidgetInteractionComponent::OnEndClick); + EI->BindAction(WidgetClickInputAction, ETriggerEvent::Started, this, + &URWTHVRWidgetInteractionComponent::OnBeginClick); + EI->BindAction(WidgetClickInputAction, ETriggerEvent::Completed, this, + &URWTHVRWidgetInteractionComponent::OnEndClick); } // Called every frame void URWTHVRWidgetInteractionComponent::TickComponent(float DeltaTime, ELevelTick TickType, - FActorComponentTickFunction* ThisTickFunction) + FActorComponentTickFunction* ThisTickFunction) { // We should only tick on the local owner (the controlling client). Not on the server, not on any other pawn. // In theory, this should never happen as we only activate the component for the local player anyway. @@ -103,7 +95,7 @@ void URWTHVRWidgetInteractionComponent::SetInteractionRayVisibility(EInteraction InteractionRay->SetVisibility(NewVisibility == Visible); else UE_LOGFMT(Toolkit, Error, - "URWTHVRWidgetInteractionComponent::SetInteractionRayVisibility: InteractionRay not set yet!"); + "URWTHVRWidgetInteractionComponent::SetInteractionRayVisibility: InteractionRay not set yet!"); } // Forward the click to the WidgetInteraction @@ -173,7 +165,7 @@ void URWTHVRWidgetInteractionComponent::SetupInteractionRay() // turns off collisions as the InteractionRay is only meant to visualize the ray InteractionRay->SetCollisionProfileName(TEXT("NoCollision")); - //the ray model has a length of 100cm (and is a bit too big in Y/Z dir) + // the ray model has a length of 100cm (and is a bit too big in Y/Z dir) InteractionRay->SetRelativeScale3D(FVector(InteractionDistance / 100.0f, 0.5f, 0.5f)); SetInteractionRayVisibility(InteractionRayVisibility); diff --git a/Source/RWTHVRToolkit/Private/Interaction/Interactors/RaycastSelectionComponent.cpp b/Source/RWTHVRToolkit/Private/Interaction/Interactors/RaycastSelectionComponent.cpp index dc88e037..e10a44b0 100644 --- a/Source/RWTHVRToolkit/Private/Interaction/Interactors/RaycastSelectionComponent.cpp +++ b/Source/RWTHVRToolkit/Private/Interaction/Interactors/RaycastSelectionComponent.cpp @@ -4,7 +4,6 @@ #include "Interaction/Interactors/RaycastSelectionComponent.h" #include "EnhancedInputComponent.h" -#include "EnhancedInputSubsystems.h" #include "Interaction/Interactables/InteractableComponent.h" #include "Kismet/KismetSystemLibrary.h" @@ -82,13 +81,6 @@ void URaycastSelectionComponent::SetupPlayerInput(UInputComponent* PlayerInputCo if (!Pawn) return; - auto* InputSubsystem = GetEnhancedInputLocalPlayerSubsystem(Pawn); - if (!InputSubsystem) - return; - - // add Input Mapping context - InputSubsystem->AddMappingContext(IMCRaycastSelection, 0); - UEnhancedInputComponent* EI = Cast<UEnhancedInputComponent>(Pawn->InputComponent); if (!EI) return; diff --git a/Source/RWTHVRToolkit/Private/Pawn/InputExtensionInterface.cpp b/Source/RWTHVRToolkit/Private/Pawn/InputExtensionInterface.cpp index ddee0870..03ea498f 100644 --- a/Source/RWTHVRToolkit/Private/Pawn/InputExtensionInterface.cpp +++ b/Source/RWTHVRToolkit/Private/Pawn/InputExtensionInterface.cpp @@ -2,12 +2,3 @@ #include "Pawn/InputExtensionInterface.h" - -UEnhancedInputLocalPlayerSubsystem* -IInputExtensionInterface::GetEnhancedInputLocalPlayerSubsystem(const APawn* Pawn) const -{ - const APlayerController* PlayerController = Pawn ? Cast<APlayerController>(Pawn->GetController()) : nullptr; - const ULocalPlayer* LP = PlayerController ? PlayerController->GetLocalPlayer() : nullptr; - - return LP->GetSubsystem<UEnhancedInputLocalPlayerSubsystem>(); -} diff --git a/Source/RWTHVRToolkit/Private/Pawn/Navigation/ContinuousMovementComponent.cpp b/Source/RWTHVRToolkit/Private/Pawn/Navigation/ContinuousMovementComponent.cpp index 9954fc63..988d1618 100644 --- a/Source/RWTHVRToolkit/Private/Pawn/Navigation/ContinuousMovementComponent.cpp +++ b/Source/RWTHVRToolkit/Private/Pawn/Navigation/ContinuousMovementComponent.cpp @@ -3,7 +3,6 @@ #include "Pawn/Navigation/ContinuousMovementComponent.h" #include "EnhancedInputComponent.h" -#include "EnhancedInputSubsystems.h" #include "Engine/LocalPlayer.h" #include "GameFramework/PlayerController.h" #include "Utility/RWTHVRUtilities.h" @@ -13,7 +12,7 @@ void UContinuousMovementComponent::SetupPlayerInput(UInputComponent* PlayerInput { Super::SetupPlayerInput(PlayerInputComponent); - if (!VRPawn || !VRPawn->HasLocalNetOwner() || !InputSubsystem) + if (!VRPawn || !VRPawn->HasLocalNetOwner()) { return; } @@ -23,18 +22,13 @@ void UContinuousMovementComponent::SetupPlayerInput(UInputComponent* PlayerInput { MovementHand = VRPawn->RightHand; RotationHand = VRPawn->LeftHand; - IMCMovement = IMCMovementRight; } else { MovementHand = VRPawn->LeftHand; RotationHand = VRPawn->RightHand; - IMCMovement = IMCMovementLeft; } - // add Input Mapping context - InputSubsystem->AddMappingContext(IMCMovement, 0); - UEnhancedInputComponent* EI = Cast<UEnhancedInputComponent>(PlayerInputComponent); if (!EI) { diff --git a/Source/RWTHVRToolkit/Private/Pawn/Navigation/MovementComponentBase.cpp b/Source/RWTHVRToolkit/Private/Pawn/Navigation/MovementComponentBase.cpp index 48562102..2020468f 100644 --- a/Source/RWTHVRToolkit/Private/Pawn/Navigation/MovementComponentBase.cpp +++ b/Source/RWTHVRToolkit/Private/Pawn/Navigation/MovementComponentBase.cpp @@ -3,27 +3,13 @@ #include "Pawn/Navigation/MovementComponentBase.h" -#include "EnhancedInputSubsystems.h" #include "Engine/LocalPlayer.h" #include "GameFramework/PlayerController.h" #include "Pawn/RWTHVRPawn.h" -#include "Utility/RWTHVRUtilities.h" void UMovementComponentBase::SetupPlayerInput(UInputComponent* PlayerInputComponent) { IInputExtensionInterface::SetupPlayerInput(PlayerInputComponent); VRPawn = Cast<ARWTHVRPawn>(GetOwner()); - - if (!VRPawn || !VRPawn->HasLocalNetOwner()) - { - return; - } - - InputSubsystem = GetEnhancedInputLocalPlayerSubsystem(VRPawn); - if (!InputSubsystem) - { - UE_LOG(Toolkit, Error, TEXT("InputSubsystem IS NOT VALID")); - return; - } } diff --git a/Source/RWTHVRToolkit/Private/Pawn/Navigation/TeleportationComponent.cpp b/Source/RWTHVRToolkit/Private/Pawn/Navigation/TeleportationComponent.cpp index 3e1e14b8..fd805c92 100644 --- a/Source/RWTHVRToolkit/Private/Pawn/Navigation/TeleportationComponent.cpp +++ b/Source/RWTHVRToolkit/Private/Pawn/Navigation/TeleportationComponent.cpp @@ -4,7 +4,6 @@ #include "Pawn/Navigation/TeleportationComponent.h" #include "EnhancedInputComponent.h" -#include "EnhancedInputSubsystems.h" #include "NavigationSystem.h" #include "Engine/LocalPlayer.h" #include "GameFramework/PlayerController.h" @@ -19,7 +18,7 @@ void UTeleportationComponent::SetupPlayerInput(UInputComponent* PlayerInputCompo { Super::SetupPlayerInput(PlayerInputComponent); - if (!VRPawn || !VRPawn->HasLocalNetOwner() || !InputSubsystem) + if (!VRPawn || !VRPawn->HasLocalNetOwner()) { return; } @@ -44,18 +43,13 @@ void UTeleportationComponent::SetupPlayerInput(UInputComponent* PlayerInputCompo { TeleportationHand = VRPawn->RightHand; RotationHand = VRPawn->LeftHand; - IMCMovement = IMCTeleportRight; } else { TeleportationHand = VRPawn->LeftHand; RotationHand = VRPawn->RightHand; - IMCMovement = IMCTeleportLeft; } - // add Input Mapping context - InputSubsystem->AddMappingContext(IMCMovement, 0); - UEnhancedInputComponent* EI = Cast<UEnhancedInputComponent>(PlayerInputComponent); if (!EI) { diff --git a/Source/RWTHVRToolkit/Private/Pawn/Navigation/TurnComponent.cpp b/Source/RWTHVRToolkit/Private/Pawn/Navigation/TurnComponent.cpp index 31e57513..bcf78e6b 100644 --- a/Source/RWTHVRToolkit/Private/Pawn/Navigation/TurnComponent.cpp +++ b/Source/RWTHVRToolkit/Private/Pawn/Navigation/TurnComponent.cpp @@ -4,7 +4,6 @@ #include "Pawn/Navigation/TurnComponent.h" #include "EnhancedInputComponent.h" -#include "EnhancedInputSubsystems.h" #include "Pawn/RWTHVRPawn.h" #include "Utility/RWTHVRUtilities.h" @@ -12,7 +11,7 @@ void UTurnComponent::SetupPlayerInput(UInputComponent* PlayerInputComponent) { Super::SetupPlayerInput(PlayerInputComponent); - if (!VRPawn || !VRPawn->HasLocalNetOwner() || !InputSubsystem) + if (!VRPawn || !VRPawn->HasLocalNetOwner()) { return; } @@ -21,22 +20,12 @@ void UTurnComponent::SetupPlayerInput(UInputComponent* PlayerInputComponent) if (bTurnWithLeftHand) { RotationHand = VRPawn->LeftHand; - // we use the same IMC for movement and turning - // therefore if we move with the right hand, we turn with the left hand - IMCTurn = IMCMovement_Right; } else { RotationHand = VRPawn->RightHand; - // we use the same IMC for movement and turning - // therefore if we move with the left hand, we turn with the right hand - IMCTurn = IMCMovement_Left; } - // add Input Mapping context - InputSubsystem->AddMappingContext(URWTHVRUtilities::IsDesktopMode() ? IMCDesktopRotation : IMCTurn, 0); - - UEnhancedInputComponent* EI = Cast<UEnhancedInputComponent>(PlayerInputComponent); if (!EI) { diff --git a/Source/RWTHVRToolkit/Private/Pawn/RWTHVRPawn.cpp b/Source/RWTHVRToolkit/Private/Pawn/RWTHVRPawn.cpp index eee71132..f31909fe 100644 --- a/Source/RWTHVRToolkit/Private/Pawn/RWTHVRPawn.cpp +++ b/Source/RWTHVRToolkit/Private/Pawn/RWTHVRPawn.cpp @@ -2,6 +2,7 @@ #include "Pawn/RWTHVRPawn.h" +#include "EnhancedInputSubsystems.h" #include "Engine/LocalPlayer.h" #include "GameFramework/PlayerController.h" #include "ILiveLinkClient.h" @@ -132,6 +133,37 @@ void ARWTHVRPawn::SetupPlayerInputComponent(UInputComponent* PlayerInputComponen { Cast<IInputExtensionInterface>(Comp)->SetupPlayerInput(PlayerInputComponent); } + + // bind the current mapping contexts + AddInputMappingContext(PlayerController, CurrentGeneralInputMappingContext); + AddInputMappingContext(PlayerController, CurrentMovementInputMappingContext); +} + +void ARWTHVRPawn::AddInputMappingContext(const APlayerController* PC, const UInputMappingContext* Context) const +{ + if (Context) + { + if (const ULocalPlayer* LP = PC->GetLocalPlayer()) + { + if (UEnhancedInputLocalPlayerSubsystem* InputSub = LP->GetSubsystem<UEnhancedInputLocalPlayerSubsystem>()) + { + InputSub->AddMappingContext(Context, 0); + } + else + { + UE_LOGFMT(Toolkit, Warning, + "ARWTHVRPawn::AddInputMappingContext: UEnhancedInputLocalPlayerSubsystem is nullptr!"); + } + } + else + { + UE_LOGFMT(Toolkit, Warning, "ARWTHVRPawn::AddInputMappingContext: LocalPlayer is nullptr!"); + } + } + else + { + UE_LOGFMT(Toolkit, Warning, "ARWTHVRPawn::AddInputMappingContext: Context is nullptr!"); + } } void ARWTHVRPawn::EvaluateLivelink() const diff --git a/Source/RWTHVRToolkit/Public/Interaction/Interactors/GrabComponent.h b/Source/RWTHVRToolkit/Public/Interaction/Interactors/GrabComponent.h index 84e1eea6..f2ef437a 100644 --- a/Source/RWTHVRToolkit/Public/Interaction/Interactors/GrabComponent.h +++ b/Source/RWTHVRToolkit/Public/Interaction/Interactors/GrabComponent.h @@ -22,9 +22,6 @@ public: virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override; - UPROPERTY(EditDefaultsOnly, Category = "Input") - class UInputMappingContext* IMCGrab; - UPROPERTY(EditAnywhere, Category = "Input") class UInputAction* GrabInputAction; diff --git a/Source/RWTHVRToolkit/Public/Interaction/Interactors/RWTHVRWidgetInteractionComponent.h b/Source/RWTHVRToolkit/Public/Interaction/Interactors/RWTHVRWidgetInteractionComponent.h index 35e32044..4b1139cf 100644 --- a/Source/RWTHVRToolkit/Public/Interaction/Interactors/RWTHVRWidgetInteractionComponent.h +++ b/Source/RWTHVRToolkit/Public/Interaction/Interactors/RWTHVRWidgetInteractionComponent.h @@ -11,16 +11,15 @@ UENUM() enum EInteractionRayVisibility { Visible UMETA(DisplayName = "Interaction ray visible"), - VisibleOnHoverOnly UMETA( - DisplayName = - "Interaction ray only visible when hovering over interactable world UI widgets"), + VisibleOnHoverOnly UMETA(DisplayName = + "Interaction ray only visible when hovering over interactable world UI widgets"), Invisible UMETA(DisplayName = "Interaction ray invisible") }; -UCLASS(Blueprintable, Abstract, ClassGroup=(Custom), meta=(BlueprintSpawnableComponent)) +UCLASS(Blueprintable, Abstract, ClassGroup = (Custom), meta = (BlueprintSpawnableComponent)) class RWTHVRTOOLKIT_API URWTHVRWidgetInteractionComponent : public UWidgetInteractionComponent, - public IInputExtensionInterface + public IInputExtensionInterface { GENERATED_BODY() @@ -30,7 +29,7 @@ public: virtual void SetupPlayerInput(UInputComponent* PlayerInputComponent) override; virtual void TickComponent(float DeltaTime, ELevelTick TickType, - FActorComponentTickFunction* ThisTickFunction) override; + FActorComponentTickFunction* ThisTickFunction) override; UFUNCTION(BlueprintCallable) void SetInteractionRayVisibility(EInteractionRayVisibility NewVisibility); @@ -44,9 +43,6 @@ public: UPROPERTY(EditAnywhere) TEnumAsByte<EInteractionRayVisibility> InteractionRayVisibility = EInteractionRayVisibility::Invisible; - UPROPERTY(EditDefaultsOnly, Category = "Input") - class UInputMappingContext* IMCWidgetInteraction; - UPROPERTY(EditAnywhere, Category = "Input") class UInputAction* WidgetClickInputAction; diff --git a/Source/RWTHVRToolkit/Public/Interaction/Interactors/RaycastSelectionComponent.h b/Source/RWTHVRToolkit/Public/Interaction/Interactors/RaycastSelectionComponent.h index 45095c3a..b77f9ca8 100644 --- a/Source/RWTHVRToolkit/Public/Interaction/Interactors/RaycastSelectionComponent.h +++ b/Source/RWTHVRToolkit/Public/Interaction/Interactors/RaycastSelectionComponent.h @@ -22,10 +22,6 @@ public: virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override; - - UPROPERTY(EditDefaultsOnly, Category = "Input") - class UInputMappingContext* IMCRaycastSelection; - UPROPERTY(EditAnywhere, Category = "Input") class UInputAction* RayCastSelectInputAction; diff --git a/Source/RWTHVRToolkit/Public/Pawn/InputExtensionInterface.h b/Source/RWTHVRToolkit/Public/Pawn/InputExtensionInterface.h index 51963c0a..5d38f4f2 100644 --- a/Source/RWTHVRToolkit/Public/Pawn/InputExtensionInterface.h +++ b/Source/RWTHVRToolkit/Public/Pawn/InputExtensionInterface.h @@ -24,7 +24,4 @@ class RWTHVRTOOLKIT_API IInputExtensionInterface public: // Called by VirtualRealityPawn::SetupPlayerInputComponent virtual void SetupPlayerInput(UInputComponent* PlayerInputComponent) {} - - // Helper function to get the local player subsystem - virtual UEnhancedInputLocalPlayerSubsystem* GetEnhancedInputLocalPlayerSubsystem(const APawn* Pawn) const; }; diff --git a/Source/RWTHVRToolkit/Public/Pawn/Navigation/ContinuousMovementComponent.h b/Source/RWTHVRToolkit/Public/Pawn/Navigation/ContinuousMovementComponent.h index adbcef6f..06e715c5 100644 --- a/Source/RWTHVRToolkit/Public/Pawn/Navigation/ContinuousMovementComponent.h +++ b/Source/RWTHVRToolkit/Public/Pawn/Navigation/ContinuousMovementComponent.h @@ -31,12 +31,6 @@ public: UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VR Movement") bool bMoveWithRightHand = true; - UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "VR Movement|Input") - UInputMappingContext* IMCMovementLeft; - - UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "VR Movement|Input") - UInputMappingContext* IMCMovementRight; - UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "VR Movement|Input|Actions") UInputAction* Move; @@ -53,9 +47,6 @@ public: virtual void SetupPlayerInput(UInputComponent* PlayerInputComponent) override; private: - UPROPERTY() - class UInputMappingContext* IMCMovement; - UPROPERTY() UMotionControllerComponent* MovementHand; diff --git a/Source/RWTHVRToolkit/Public/Pawn/Navigation/MovementComponentBase.h b/Source/RWTHVRToolkit/Public/Pawn/Navigation/MovementComponentBase.h index d2a68713..f9d03b51 100644 --- a/Source/RWTHVRToolkit/Public/Pawn/Navigation/MovementComponentBase.h +++ b/Source/RWTHVRToolkit/Public/Pawn/Navigation/MovementComponentBase.h @@ -24,7 +24,4 @@ public: protected: UPROPERTY() ARWTHVRPawn* VRPawn; - - UPROPERTY() - UEnhancedInputLocalPlayerSubsystem* InputSubsystem; }; diff --git a/Source/RWTHVRToolkit/Public/Pawn/Navigation/TeleportationComponent.h b/Source/RWTHVRToolkit/Public/Pawn/Navigation/TeleportationComponent.h index e66968a3..30863464 100644 --- a/Source/RWTHVRToolkit/Public/Pawn/Navigation/TeleportationComponent.h +++ b/Source/RWTHVRToolkit/Public/Pawn/Navigation/TeleportationComponent.h @@ -34,12 +34,6 @@ public: UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VR Movement|Teleport") float TeleportLaunchSpeed = 800; - UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "VR Movement|Input") - UInputMappingContext* IMCTeleportLeft; - - UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "VR Movement|Input") - UInputMappingContext* IMCTeleportRight; - UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "VR Movement|Input|Actions") UInputAction* Move; @@ -73,9 +67,6 @@ private: UPROPERTY() UMotionControllerComponent* RotationHand; - UPROPERTY() - UInputMappingContext* IMCMovement; - bool bTeleportTraceActive; float TeleportProjectileRadius = 3.6; float RotationArrowRadius = 10.0; diff --git a/Source/RWTHVRToolkit/Public/Pawn/Navigation/TurnComponent.h b/Source/RWTHVRToolkit/Public/Pawn/Navigation/TurnComponent.h index de3f274e..25576574 100644 --- a/Source/RWTHVRToolkit/Public/Pawn/Navigation/TurnComponent.h +++ b/Source/RWTHVRToolkit/Public/Pawn/Navigation/TurnComponent.h @@ -39,16 +39,6 @@ public: UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "VR Movement|Input|Actions") class UInputAction* DesktopRotation; - UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "VR Movement|Input") - class UInputMappingContext* IMCMovement_Left; - - UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "VR Movement|Input") - class UInputMappingContext* IMCMovement_Right; - - /**Input Mapping Context that maps buttons for desktop mode*/ - UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "VR Movement|Input") - class UInputMappingContext* IMCDesktopRotation; - /** * Called every tick as long as stick input is received to allow for continuous turning * @param Value Stick input value determines turn direction and turn speed @@ -75,9 +65,6 @@ private: UPROPERTY() UMotionControllerComponent* RotationHand; - UPROPERTY() - class UInputMappingContext* IMCTurn; - /** * If we just use VRPawn->AddControllerYawInput(Yaw), rotation is around tracking origin instead of the actual * player position This function updates the pawns rotation and location to result in a rotation around the users diff --git a/Source/RWTHVRToolkit/Public/Pawn/RWTHVRPawn.h b/Source/RWTHVRToolkit/Public/Pawn/RWTHVRPawn.h index 50b98e0e..9f676d11 100644 --- a/Source/RWTHVRToolkit/Public/Pawn/RWTHVRPawn.h +++ b/Source/RWTHVRToolkit/Public/Pawn/RWTHVRPawn.h @@ -31,6 +31,12 @@ public: virtual void NotifyControllerChanged() override; + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Pawn|Input") + UInputMappingContext* CurrentGeneralInputMappingContext; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Pawn|Input") + UInputMappingContext* CurrentMovementInputMappingContext; + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Pawn|MotionControllers") UMotionControllerComponent* RightHand; @@ -82,6 +88,7 @@ public: protected: virtual void SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) override; + void AddInputMappingContext(const APlayerController* PC, const UInputMappingContext* Context) const; /* LiveLink helper function called on tick */ void EvaluateLivelink() const; -- GitLab