From 7127ade9ee73871f0d1443037dd4da24a98a448d Mon Sep 17 00:00:00 2001 From: Kingsmedia Date: Thu, 5 May 2022 17:57:57 +0200 Subject: [PATCH] 80 - Blaster HUD and Player Controller --- .../Primary/Crosshair_Bottom.uasset | Bin 0 -> 5033 bytes .../Primary/Crosshair_Center.uasset | Bin 0 -> 4965 bytes .../Crosshairs/Primary/Crosshair_Left.uasset | Bin 0 -> 5020 bytes .../Crosshairs/Primary/Crosshair_Right.uasset | Bin 0 -> 5021 bytes .../Crosshairs/Primary/Crosshair_Top.uasset | Bin 0 -> 5009 bytes .../Primary/DefaultCrosshair.uasset | Bin 0 -> 5808 bytes .../GameModes/BP_BlasterGameMode.uasset | Bin 19389 -> 19904 bytes Content/Blueprints/HUD/BP_BlasterHUD.uasset | Bin 0 -> 21249 bytes .../BP_BlasterPlayerController.uasset | Bin 0 -> 18619 bytes .../Blueprints/Weapon/BP_AssaultRifle.uasset | Bin 30707 -> 31819 bytes Source/Blaster/Components/CombatComponent.cpp | 48 ++++++++++++++++-- Source/Blaster/Components/CombatComponent.h | 4 ++ Source/Blaster/HUD/BlasterHUD.cpp | 11 ++++ Source/Blaster/HUD/BlasterHUD.h | 38 ++++++++++++++ .../BlasterPlayerController.cpp | 5 ++ .../BlasterPlayerController.h | 17 +++++++ Source/Blaster/Weapon/Weapon.h | 19 +++++++ 17 files changed, 137 insertions(+), 5 deletions(-) create mode 100644 Content/Assets/Textures/Crosshairs/Primary/Crosshair_Bottom.uasset create mode 100644 Content/Assets/Textures/Crosshairs/Primary/Crosshair_Center.uasset create mode 100644 Content/Assets/Textures/Crosshairs/Primary/Crosshair_Left.uasset create mode 100644 Content/Assets/Textures/Crosshairs/Primary/Crosshair_Right.uasset create mode 100644 Content/Assets/Textures/Crosshairs/Primary/Crosshair_Top.uasset create mode 100644 Content/Assets/Textures/Crosshairs/Primary/DefaultCrosshair.uasset create mode 100644 Content/Blueprints/HUD/BP_BlasterHUD.uasset create mode 100644 Content/Blueprints/PlayerController/BP_BlasterPlayerController.uasset create mode 100644 Source/Blaster/HUD/BlasterHUD.cpp create mode 100644 Source/Blaster/HUD/BlasterHUD.h create mode 100644 Source/Blaster/PlayerController/BlasterPlayerController.cpp create mode 100644 Source/Blaster/PlayerController/BlasterPlayerController.h diff --git a/Content/Assets/Textures/Crosshairs/Primary/Crosshair_Bottom.uasset b/Content/Assets/Textures/Crosshairs/Primary/Crosshair_Bottom.uasset new file mode 100644 index 0000000000000000000000000000000000000000..957da0eac1f0c1ab4850d295c848bb1f24a6b807 GIT binary patch literal 5033 zcmd@YYj_h?_NGZ+p@pVEkuHz46bpSn(l%wk+Pu?X=__dq0+wkqZ3Ahh%uImd2jw9O zMPZAAs|adQR=@`jfn^o82<{@TAiBH?C=_t93t9?lL16Zt$xI1tU3LHN`M$}Wd(OG% zdGEPrvVU>h`Yw*+rb!W!`yq4{j{q>7^IRSqYua#r*5_gC+RrA8QefP|y4+tgTr%HlQ6dp58 zrW9SeUaiunq-E<rOvy5&WMyg7fgk1KW6Lb^zTArmu_QUv<9&0~3bd_1Pd`_lR4_~*NfaeLrhjrBhcqI>`clLPNZVH~^z zJcQr1uDTjRPt77}qMEeT&?Hksxf~4IUb*yf%#O4)P1G0BR2@mP^~kdIqB9Jz3`4S( z+B%A64FpS|D{mFsAP+hhWuF0)2%p8xW~#cKiHSHfA=ry8qMU9P&G%U3Ap$~-@f%-cjt5*m zQBTr>?x!zyRDh0rXLSvD$lK7cso4ky@tgUk^rO%qn0RU@IO`a+KJMCCxp!`LIqf8a zQj(61fT$N%PABbbw@unJJKBe1bP-{nfww?DWhY$Dxde*?T|m^5OdVk-Q8-(_6mNJ0 zzD-1jn&S3}vq`AonZnZ$CU1;US@yQwpvKD59v?L+=;b>Q5SzZj=y0+WZLw2s#LU-x z@H@bI)8vz&?o?{0YEAq?-%O&s*oG#Eq|K@~Rp4!e7B|Ex!C#xzRG~AMXw@iSQ~OYe zNE!B)qE+bXzAY2S;d!zdyOqrEU?y2m%p~h+ieYL9C(R@m(au_euD_3}&`~T))gqU> z^Ap%{$yPhR41?I&bDH3obSo1j z51GGD5AIALS%N=MmlnMD92hTT1u^EOgW=!_^KQO%39pm9+urD;8PL7Enqx7T6X0R* zfbQVK4&@I391x)=-%pqiS6d!_i7)=Y@QoE{Fo-((lIP1ex(|8xusxzEIBlYBfb)Y2 ziUEq+uK|IbXT@T><%(;2;^G7X=+p}DA&_AKK%TEm5#Mv{DHrH>d+3i97U8;$6yPX^ z2|l{Kn7)5~?dVIFxXPDLgOM$mxf$!?PI2c^*m#r0gd~_p0#0#fkRJ653X%r}_LB$8 zLqqz7Du#tC1`JR{4~-l&Y-~(?+?bfy*u*qVR$@v{N^Gn;KRZWn%(LXhXBL(gm~0wz zo)LsdLPA3o0~Ar=;Zeq<*d*g`2CfAuf{+Gjq>^alr;tb$67C=xiS6{4@X+m^pH$`_ z5Ev9J?}r(7hT;7omHNq~{{Au<=AI|C*cJb2Xum5%BoA&FSH*S9a!;f9JZi8PEB=x$5f4!bz zyM6sqV88riGN~*O{F3<1#*b7X^N&gm2-g+|5;F%zr!5Q`q-%O@+y3BD=_MV5E9qnM zh#1v{(bvH>-m_ol*rNZ*vu?-k`_+munCb!XZXm8wd$DvL-{rIWyKa58l+qCTIfBwf%h@e8As^QIzbT6?vf2-hM6?Fs}<>u^Bl zI}yP}Z_`$k(?p#wVbTKxV9GBv=$r(@--9XqP2N|>)Vs~%v*mQ*DDvsHnJNrq72$EQ z2zCJO7xO8?QCJ5(AHypZ$zUc{YNjbq9U2H`8YkLHON{1{!qTFOa*B32_&s4QG3)Mc z4*0GpbJDDbaEbjli&I>S8&`gRnFtp{BIt1oNc`b}J4HpXZ2mnVA08RxDN@0W=3eb}gsx1$YCjcl4074-7GXQgOAx{vQg+{O! zb9ZAXN&yMtE`dV|Am;2BQ*f{C^|r28kC-;3=e%9h|EZ&5k3GaI=YCjxwTaS|0#mdw z{>GsrR}85b0C7G-lqA*x(LXOiZ zu&-Jr2{|oEfr8Nw{u{E}W3PO1N%>tthrlBd(k(IfC29Wo`^YTyY1FE%@8eu;-87K7F{M{@1dG5KOmh)nY?#~m$~&kL8WT;=X>zVc{O zOhLrtoc@8hn+pn4Y8K!=j(<77(vLZE@rGr@yN(hOe0x;3uQ~E}lFQzjBBD?2Pi_8|~xn%BOtXwZ0`?_U*aV(-V#)OGoW6 zP>UXKJP|Wv({z>O(dQ!8g}fRxYwh;%t)Fgg3|PG&`c&=V@hzEK;v!X@+)qy=Ca(8y moU(fKeS5&Lb^c#&oHHn<(f?tn#>iqUFubFiwrD^8lkPt|h3U!w literal 0 HcmV?d00001 diff --git a/Content/Assets/Textures/Crosshairs/Primary/Crosshair_Center.uasset b/Content/Assets/Textures/Crosshairs/Primary/Crosshair_Center.uasset new file mode 100644 index 0000000000000000000000000000000000000000..e939fb7beda7c4d83823af608cbb3734c163e902 GIT binary patch literal 4965 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 literal 0 HcmV?d00001 diff --git a/Content/Assets/Textures/Crosshairs/Primary/Crosshair_Left.uasset b/Content/Assets/Textures/Crosshairs/Primary/Crosshair_Left.uasset new file mode 100644 index 0000000000000000000000000000000000000000..748b07c8fda130e193c3f05cf244655df073bb42 GIT binary patch literal 5020 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 T_6Zra#hO1C&R*D#|Csv^L+sk@ literal 0 HcmV?d00001 diff --git a/Content/Assets/Textures/Crosshairs/Primary/Crosshair_Top.uasset b/Content/Assets/Textures/Crosshairs/Primary/Crosshair_Top.uasset new file mode 100644 index 0000000000000000000000000000000000000000..0d3dfef7c7e97eca3c4d72c14fc7b23413324e61 GIT binary patch literal 5009 zcmd@YYgkiP@`MC=2ueWlQHlYvK@dq|62Lx4$cy+PuLRJx7B9&Kq9MV1Z&d7BKx?bE zwX3zZ)wK_>RepC3lNIK zy-cl=XQU~#N<)?*OFhAmZqTL671}J7T(2@H6msB48F)GDLNLH93Fd|%j)aPE4=rdQ zLaR1BKDRw$!=!g*^F<5RD^@-B+~-H-r$%P)a-BaFS9Z@Dtdo-i8-N`l^x~=%K_u=| zQ;Q6$)I!op5;U2j8ZYzFe{LAd(UX%gJ=vemEyq70TMs-7<5a9a2SoV+b|wqfkH$C{ z0}RJwt+Tq4(79)m6j4E1D=Ct$bUW=d+FG{wu|YtmD555xa#xcSQ-jQ#zjs6cmZnL@ zTvhF+7(Kxd=!drptPqDRr`t9YFnQ(Wn1e=BWmlfXT2YqU?d*{fA=J;*~q>!mi>_2Hnb0)Pr;nVK`9Vf-!voqnPm_ulgD94y8Nz6I0j}r zVs_prhi!Y^LE0^jc_f+^{*e{jXLd1aWsfll(Z?o-c(M6zhl@c^c+8<;J_PUMH@{U+ z0$dJJLsCB7Pk-N03OaHe6_sEiw};w|4F=c{cbKmTKMN0riKl9^qnbvqCS5!p>YZDh z4jV}$+4zI8;Pt$+8KjNr*^~BIbNjs*oln?i;vOpJc7ZF&Lyfyx|*<&D3YmJ zj1N2l+oquX%acClXH!w_vw5xHCa;fCamJP%pvJ;b9zQiQ^p|dMh*ei=usawxWwyCp zh<-w|`yRl0!{isBo=|G1X^q@M|45>2Y3*|Gq}8G`mf~ZC7S<+7z+S7xSej)j)TW~W z8{0>KM~bnvZc2$Re7tE&8lI<`uvw|x38qthis@7x<)-OM!a>og`IMuIplWWTO0Di{ zba>^ceQ?}TEjG$g&7|tw6j|i;CAwx#c?fLgX$Dt?13xfNX%?BmPdX<-(}c-a`9zForJr8&C-N1bKo#o*7_>%t%-&h|FI$lSA^8ES6^ds*U-VZMd?is%~ z!0`ll&h7@_spSES<(Km)?m6t4;6aja0y?$6aTi3+2O!U1CXc_f?@!mwJM>F^i|~t$ z#9%0f`{5|v1^DlyKV7^Ce?ARHwqWK4tcyL$o*S&#U4XCG%z?gG&pEr zXh>*y*uZdcOr&`5U~&A2kwap}CL|{%CP<|z3Qbyy>_M4Snx2#Kpw5tO&Q4b673CVO z8dJ6bgb2dI!^MNeagmX6hVjzzhCd8!3law-4blh&@hCtn5Q+utr)U)3XP|(C9`gc( zqQC(`!6BgoF~hb96d(`^14P2WK#>S@&ldy;kw_dE87J2ch$j1cwyy>t6qBfmDLT6>)u@d)`pEuTbtkCwtdG3J3rj_ z$)}%v{@48nzWCJuUCJ&cD)Pi5+I@1Ed1-W z4DZ|DE-|(%KqL~1g1|08z#QC!Vo_k6d_bhOAc&Y16|bld9+I{EjV*gaMo%d07+OXh z42@1uemCY4n8sOlcZMzapDgP!?6zHPC`>58!4ry6ChAN|Y^V#pvmNPpt$W!>>CM`` zENYB?{+hm9$0E(W7JN(3uqbp zUtNz;?df9CYb-LV?8VQlZ#+G%tn+l+7muvjv?TU)_B&-2$98Vb7AAyk&rDi#OPm?O zqOXIjENaQf+*hYaY*>n*9bwUv&7Wpoi9M9rp~$f{fgS>V#l#)`6rLC=)LPKx?(Ffpdkf)TP@oP zC!zNn-#39w#kuzv-%AMmeK~qdfX4-18@;27bkR7=(+F~uS~*v(M388*3EEo}RuV23 z>Ex;aW22){PQGRKOn{wK@17RsNW!*j* z@F7v`pcoI~A>#P}Js<_)7zqhM4F_fhrbiP=No#ljC0?`H#UJ zaHYY$0CBke?nf$LsKjtf5Eoq-!Y%C=G#CpF>Tm#l;X+W20jJ#lfiJ)K1-u4`bH8w{ zIVR%anyb3i7b}|9os`%{__*N95diKA2O9i4(mO=`5~KeU5%vrpbO3!;0uhcHK#wl( z6#E(O3;?`_0C4{R;7V{H@%8X}0^G?6?<@xpCjkBv+~-K{0sx+0$OV^Y_7#5|4w!f^ z!iD94mjV<1l)w!Ixa$zS(s-}^%%Byfr^mjuNK>$N0AE)R^UAsH7JqHLbcv5C-q-)Z zt|OCoDenM&9?MJO9|7JzFJ6N?8#(X1u*i13wc+~C_H$%R+vpjz)Hdp;gG~*wVfPIC z@MOvHNBPRB_kSNdJhrlvhr9RsbodP8c?H`3Bq{gYcjL(s*$EGP(5hU5pYQO{kr3T* zbGE(^_Zn!yU`3N-*1vGK->lbK=L#+!Js7%A78dyRVU|6=boygSjZ2yOb7AWeZB@BH zPpOzWC_oe(A<@*~(hUarxvxu$A6UQBa=7#5=vhABsGUi@d=zX2b<<%$3R literal 0 HcmV?d00001 diff --git a/Content/Assets/Textures/Crosshairs/Primary/DefaultCrosshair.uasset b/Content/Assets/Textures/Crosshairs/Primary/DefaultCrosshair.uasset new file mode 100644 index 0000000000000000000000000000000000000000..b3711cc981116477a2e6b761b1d297ec826026e4 GIT binary patch literal 5808 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 literal 0 HcmV?d00001 diff --git a/Content/Blueprints/GameModes/BP_BlasterGameMode.uasset b/Content/Blueprints/GameModes/BP_BlasterGameMode.uasset index 2455cb486e9226627a4016198c3e92f2a7ed3366..aa6573fe296b0d2b0cc5f9e3598e6ccce09fc13e 100644 GIT binary patch delta 4664 zcmb_feQZ-z6u-A_gN-4t>$^ZMFuZ6%)My?gID zzjw~L=bU?Pd*%)P$q_#OgJZIhv2@1Rijm;~7}D4nyl-+b)miR_nWVY!F10e|gwX|y zxAPd|FfVs7RtwK^c28P)Cj!@r(%Q7p?nhAoAHEsT({$0D+3xgk5P53f)^J1{i zdWZU790>VGhDSpqLqjl=m(BetUL=Z75$mH4*0m%*W2d<;pjjJR&0M~*SH5| zOJg;dfUzQ0_|AvtCoW`i?$N+@l*T?k+xOLp!ue7BSOox@<6KrV@p;xB9$pVnq>b{; z*slbRXL;C=*s8&bsefqhAdc8m%)rignsMci`=7fxn)G)0Bar- zTMN8Z-KbEPSjfMVxuj)06X!J63vG3q?+${$H7*aV8_+mM`KrJj7`(u<*nX>?&e_ z))}y}8z!yj4IUhVzl2yIZ#Ow1G<$^={YB_+@aaGB+!bDX4__+|*@KpPhqz>K%xHo8 z?`q>jQC@vX7_U$ONv$wtt@r}+=mXrpim)oO)EtwKWC+POWX64o`&@|T;e*R2D_TmsVP8iT;A8fgt2r;6rweZk7rXhf5-ms`l;SR;@+NxG2( z%jP9E5>ClTuTn}eHax*DQ8kkglRircsl?S120Uww*&-38&DUV?#H&r(2HGP6=}L%m z0jtLhr0#^NAaFiv0OG7f))C6)iOHtLk+y%+bdnI7o%IU)3wV{d08*KibF(?D53l4# z%o*Xq^Hn>O@Gb}&C|%^K@hJ$W$YxNfz_TbxoXpA#*VIMryFlTuMmQOz9x7 z>76~Xw|C394Jw$>iBaY0}+)>`(9vIV0=$uPi zY);i8DT@>woxVq~;KC0pDTRd0vRe?pdL^XZLC!M25|AAk72w6jj{`G6WpMTx$K zbGT4R)QvKY4t;miXWDB*+(AG02x&T{8u^O@*&soc1nC7~r+M5W=4;PWh@ceJUJfShHZ@ zm{uw({Q>6^#ixu%)pp;#rGS2XQEex#Dn}b`xT4LKa4)soeK_DK!2iQYSn8vp-2<}! zU~}peb%B~3yjGA5@q=PV;7}0DAA4fl*VwhD6#!o4o`lL_^jQRQzSpqKU=+R^L9qij*b@j<1$ z(c2brr?WbIzp@eEF(~c`Fwf!6loZ#g@D9tJNr=DAs1K}AAUM$Cy{;6$e=8&F`nd8qA?^D=L^cl@=06bFn$(ltl| Pqf?_Av+c8cE8qGT$xSrf delta 4168 zcmcgvU2M};6u)n1~612SrFkbVi)#-2XY{-w)c#gD3g-ew^Pu z=bqm^_uTEmd-B}7^28PUt_C6Ugb=-x6Z@gb6^Ey9KeF!aWkM{6VI*G&D|96EPe6MT zzR%%%^_97SolAGLe0<~R%|n*qkQ$aQd00I!2UmEULVOtpyh-Lk(9xi}CWmHva~9^# zj4U`JXXX|Xg{eD`U&*|%4^@^yJIq%3mUxAXdICn zDX?pZ^ru4R5Hf;GLCS-;Q{UevqgW5|`m@m!*a4YTvbkQJw>wm@FyDhS2k{34jjqOJ zAoFc%y0uDOvMmCr*Mq9PT4Au`r@p^i9a}!&LDQJ8>W0JW#2doumq@)ijF!|HXN3jH!TsD+-#h!{5X_gWa8YI6DJbbKb=u`os>oye z5Jr8J7>F)ZXBw8zd{Xp z|6;Y4t@e-=raN|wSSzYniN{#KfJUf^mxVOsfH|CMq(hZ9S%=vj0@J308OVhQ$>sfV z)KYkLW}t4VnriaheL`-TE)M$3U;MK83+A{$(OIENnB8GkIQ8sZcQHC({k$36o(SZ6 zApQYlBWXE__-b<$`YIxy$Q=4bN#=Epp@`*P9Iw%R-+cA$8!JC+dFN{Nt|(Q8ZkRD(&vCmd|FWW^73Xyv!1?t zgv@awjZ&;6WEr(=qSP2eK6**Ro|A1*g-<#pDfk`jQa^1Tb3aU$QuFd+&?*D!^j~jb%WB{KvD(7EsEx6zydk%Q zdfws~$-w9TMyD8&{e)?qcbYL>A>1awDPiDqxaS42{;jS`*{iO1H{==6vt1!OLvhPP2lkCKYHfGWiF16jVu4VCZIikauHJ@!f}kYdcys+S_wB}l*o(w9L*Tnp$VzoA;;_KK(ptjm zbYz43Q5tc^#8q>Z+hdK^5+bSA@vCRvM~J}u#&GOhMfCyT^~GROG6HK{1~54^G-LLC J@p#qge*xB2-7o+E diff --git a/Content/Blueprints/HUD/BP_BlasterHUD.uasset b/Content/Blueprints/HUD/BP_BlasterHUD.uasset new file mode 100644 index 0000000000000000000000000000000000000000..4e6c0daef0a45759762a1a9f592b19d7f94834e9 GIT binary patch literal 21249 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 cikjz`{Kx<>yTn+a literal 0 HcmV?d00001 diff --git a/Content/Blueprints/Weapon/BP_AssaultRifle.uasset b/Content/Blueprints/Weapon/BP_AssaultRifle.uasset index 21fc72141825299574c0ed4fb05b8ecfcce58b11..9064d825cb112314d2a6b3867f9046c4ed56ca41 100644 GIT binary patch delta 11247 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 J7dDU2`Cqc(=5GK1 delta 10168 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 diff --git a/Source/Blaster/Components/CombatComponent.cpp b/Source/Blaster/Components/CombatComponent.cpp index 5f7bf29..9d51a6e 100644 --- a/Source/Blaster/Components/CombatComponent.cpp +++ b/Source/Blaster/Components/CombatComponent.cpp @@ -4,6 +4,8 @@ #include "CombatComponent.h" #include "Blaster/Character/BlasterCharacter.h" +#include "Blaster/HUD/BlasterHUD.h" +#include "Blaster/PlayerController/BlasterPlayerController.h" #include "Blaster/Weapon/Weapon.h" #include "Engine/SkeletalMeshSocket.h" #include "GameFramework/CharacterMovementComponent.h" @@ -36,6 +38,47 @@ void UCombatComponent::BeginPlay() } } +void UCombatComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) +{ + Super::TickComponent(DeltaTime, TickType, ThisTickFunction); + + SetHUDCrosshairs(DeltaTime); +} + +void UCombatComponent::SetHUDCrosshairs(float DeltaTime) +{ + if (Character == nullptr || Character->Controller == nullptr) return; + + Controller = Controller == nullptr ? Cast(Character->Controller) : Controller; + if (Controller) + { + HUD = HUD == nullptr ? Cast(Controller->GetHUD()) : HUD; + if (HUD) + { + FHUDPackage HUDPackage; + + if (EquippedWeapon) + { + HUDPackage.CrosshairsCenter = EquippedWeapon->CrosshairsCenter; + HUDPackage.CrosshairsLeft = EquippedWeapon->CrosshairsLeft; + HUDPackage.CrosshairsRight = EquippedWeapon->CrosshairsRight; + HUDPackage.CrosshairsTop = EquippedWeapon->CrosshairsTop; + HUDPackage.CrosshairsBottom = EquippedWeapon->CrosshairsBottom; + } + else + { + HUDPackage.CrosshairsCenter = nullptr; + HUDPackage.CrosshairsLeft = nullptr; + HUDPackage.CrosshairsRight = nullptr; + HUDPackage.CrosshairsTop = nullptr; + HUDPackage.CrosshairsBottom = nullptr; + } + + HUD->SetHUDPackage(HUDPackage); + } + } +} + void UCombatComponent::SetAiming(bool bIsAiming) { bAiming = bIsAiming; @@ -123,11 +166,6 @@ void UCombatComponent::MulticastFire_Implementation(const FVector_NetQuantize& T } } -void UCombatComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) -{ - Super::TickComponent(DeltaTime, TickType, ThisTickFunction); -} - void UCombatComponent::EquipWeapon(AWeapon* WeaponToEquip) { if (Character == nullptr || WeaponToEquip == nullptr) return; diff --git a/Source/Blaster/Components/CombatComponent.h b/Source/Blaster/Components/CombatComponent.h index a2a2a70..2e25cde 100644 --- a/Source/Blaster/Components/CombatComponent.h +++ b/Source/Blaster/Components/CombatComponent.h @@ -41,9 +41,13 @@ protected: void MulticastFire(const FVector_NetQuantize& TraceHitTarget); void TraceUnderCrosshairs(FHitResult& TraceHitResult); + + void SetHUDCrosshairs(float DeltaTime); private: class ABlasterCharacter* Character; + class ABlasterPlayerController* Controller; + class ABlasterHUD* HUD; UPROPERTY(ReplicatedUsing=OnRep_EquippedWeapon) class AWeapon* EquippedWeapon; diff --git a/Source/Blaster/HUD/BlasterHUD.cpp b/Source/Blaster/HUD/BlasterHUD.cpp new file mode 100644 index 0000000..2f7eece --- /dev/null +++ b/Source/Blaster/HUD/BlasterHUD.cpp @@ -0,0 +1,11 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "BlasterHUD.h" + +void ABlasterHUD::DrawHUD() +{ + Super::DrawHUD(); + + +} diff --git a/Source/Blaster/HUD/BlasterHUD.h b/Source/Blaster/HUD/BlasterHUD.h new file mode 100644 index 0000000..c12a473 --- /dev/null +++ b/Source/Blaster/HUD/BlasterHUD.h @@ -0,0 +1,38 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/HUD.h" +#include "BlasterHUD.generated.h" + +USTRUCT(BlueprintType) +struct FHUDPackage +{ + GENERATED_BODY() + +public: + UTexture2D* CrosshairsCenter; + UTexture2D* CrosshairsLeft; + UTexture2D* CrosshairsRight; + UTexture2D* CrosshairsTop; + UTexture2D* CrosshairsBottom; +}; + +/** + * + */ +UCLASS() +class BLASTER_API ABlasterHUD : public AHUD +{ + GENERATED_BODY() + +public: + virtual void DrawHUD() override; + +private: + FHUDPackage HUDPackage; + +public: + FORCEINLINE void SetHUDPackage(const FHUDPackage& Package) { HUDPackage = Package; }; +}; diff --git a/Source/Blaster/PlayerController/BlasterPlayerController.cpp b/Source/Blaster/PlayerController/BlasterPlayerController.cpp new file mode 100644 index 0000000..1e0f308 --- /dev/null +++ b/Source/Blaster/PlayerController/BlasterPlayerController.cpp @@ -0,0 +1,5 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "BlasterPlayerController.h" + diff --git a/Source/Blaster/PlayerController/BlasterPlayerController.h b/Source/Blaster/PlayerController/BlasterPlayerController.h new file mode 100644 index 0000000..1398b46 --- /dev/null +++ b/Source/Blaster/PlayerController/BlasterPlayerController.h @@ -0,0 +1,17 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/PlayerController.h" +#include "BlasterPlayerController.generated.h" + +/** + * + */ +UCLASS() +class BLASTER_API ABlasterPlayerController : public APlayerController +{ + GENERATED_BODY() + +}; diff --git a/Source/Blaster/Weapon/Weapon.h b/Source/Blaster/Weapon/Weapon.h index daaf321..2682438 100644 --- a/Source/Blaster/Weapon/Weapon.h +++ b/Source/Blaster/Weapon/Weapon.h @@ -27,6 +27,23 @@ public: void ShowPickupWidget(bool bShowWidget); virtual void Fire(const FVector& HitTarget); + // Textures for the weapon crosshairs + + UPROPERTY(EditAnywhere, Category= Crosshairs) + class UTexture2D* CrosshairsCenter; + + UPROPERTY(EditAnywhere, Category= Crosshairs) + class UTexture2D* CrosshairsLeft; + + UPROPERTY(EditAnywhere, Category= Crosshairs) + class UTexture2D* CrosshairsRight; + + UPROPERTY(EditAnywhere, Category= Crosshairs) + class UTexture2D* CrosshairsTop; + + UPROPERTY(EditAnywhere, Category= Crosshairs) + class UTexture2D* CrosshairsBottom; + protected: virtual void BeginPlay() override; @@ -69,6 +86,8 @@ private: UPROPERTY(EditAnywhere, Category= "Weapon Properties") TSubclassOf CasingClass; + + public: void SetWeaponState(EWeaponState State); FORCEINLINE USphereComponent* GetAreaSphere() const { return AreaSphere; }