From 848f5009331cdd9718cd52c3d5412290a9f858a5 Mon Sep 17 00:00:00 2001 From: BambiTheLama <92307273+BambiTheLama@users.noreply.github.com> Date: Thu, 22 May 2025 17:21:59 +0200 Subject: [PATCH] feat: UI ammo, UI debuf --- .../Player/BP_ExoPlayerCharacter.uasset | Bin 35098 -> 35098 bytes Content/Levels/TestMap.umap | Bin 52645 -> 52620 bytes Content/Widget/WBP_Debuf.uasset | Bin 0 -> 28494 bytes Content/Widget/WBP_HpBar.uasset | Bin 31930 -> 0 bytes Content/Widget/WBP_PlayerUI.uasset | Bin 39607 -> 36267 bytes .../Private/Characters/ExoPlayerCharacter.cpp | 5 +- Source/Exo/Private/Widget/UWBP_Debuf.cpp | 25 ++++++++ .../Widget/{WBP_PlayerUI.h => UWBP_Debuf.h} | 18 +++--- Source/Exo/Private/Widget/UWBP_HpBar.cpp | 14 ----- Source/Exo/Private/Widget/WBP_PlayerUI.cpp | 56 ++++++++++++++++-- Source/Exo/Public/Widget/UWBP_HpBar.h | 22 ------- Source/Exo/Public/Widget/WBP_PlayerUI.h | 52 ++++++++++++++++ 12 files changed, 140 insertions(+), 52 deletions(-) create mode 100644 Content/Widget/WBP_Debuf.uasset delete mode 100644 Content/Widget/WBP_HpBar.uasset create mode 100644 Source/Exo/Private/Widget/UWBP_Debuf.cpp rename Source/Exo/Private/Widget/{WBP_PlayerUI.h => UWBP_Debuf.h} (52%) delete mode 100644 Source/Exo/Private/Widget/UWBP_HpBar.cpp delete mode 100644 Source/Exo/Public/Widget/UWBP_HpBar.h create mode 100644 Source/Exo/Public/Widget/WBP_PlayerUI.h diff --git a/Content/Blueprints/Characters/Player/BP_ExoPlayerCharacter.uasset b/Content/Blueprints/Characters/Player/BP_ExoPlayerCharacter.uasset index 2088f190edeac9f277934dc126910878c06a0543..e4017631d55d697f2bff16e572060e476731ca19 100644 GIT binary patch delta 76 zcmV-S0JHy^k^-8N0SMxDMulY;D;OtaPjBx(a7K~Ix`XBe{;Y-JIX i28Ok>@`5A-lR$#Hv&MjK0h0rLEVFuj6a%xnhF=2HvLC+y delta 78 zcmV-U0I~m?k^-8N0eMA?7vZa}`L(pEQ#a*36D`P#%9!(`vh|&5 zAMU|Sy_uOpUmz@k(aof?n+%Ewyc-x)YET!MGsw<@_pIKF1Hb?CoSOsh)Ogh3c+`xZ zL@P|A!IsPvw2;FIg~2@2W6PwmU;AkLVopXG&XE&48s|0teH;7>-!c=8rrB2uF@;1y zTM;7z=r3aMm0@bJLQ=7(n2}Ok;HMJ}C5%kqC_mp|sD!~U2ilDaiABGW0d2wb$yAIR zjzjqXg%1&WIW4W~)MKI$5<&;(S{sg;6w-_#6N8l_XfIXBIQmN&X~UE<2GK{=%jhkm zkabL@r<{^@G?X*w?NA#Ai<0ntxt4Tdh!2)eih;X=5W6V+Wy$sqb`859hPDA!T48++;)%w8AKTc<^>H3^R25XoVs zz-|f#tdy8AWM!~)OGI})C2!GR&mewSM7e=N;%z}M=hhKHhgCwUF&R?tL{cM#v{AtT z=dLk9$wtW@wAmPBdqoV|C~TP!la1LuUzz4~=H|;zqr|?5zLr_5R+gES z8Bbs43)zQ4(Sq7SOe$)L`Hp3%8D@caLt_waIF-t+xQgZ)Xv z7M9#5bUO6q=U^RcNgr%hpMIO(y5UYn#i+vWeZ?ni&)mI}y8qU1x#CY%Go8*Ks)v-- ztPR}`!R}(%Az<2O%w6MU3bwBiY%{)<`vtVE73>lA$^8>X*9yq=p{LZ#3>YpIQ0GI3 zKNokEPe;Cv!;b_t$sJp$jY-bhN>s}@WVGOoGB5LEv`j!sD|*VkYy`vQf*r-23ITJs z)3{c_p=>uXR>4^Z+A0O$UJ4_QYMe=?s0#%&7#Bh~>*#{})>p6rI)FeCF zsEtWJPEf7p@ca<9YIOmAu1<&diAcYJL)uZA2uNleBSzxwaU!qbFf)jUYrN1Jq%uh$6TBVjJgCQU7|41$k`VRHwsvMg+jiG!;-5+O|tMBQFR$GuPGap>xrm|!}31j znB>YEM7^7{)#!E$C?B9O;^ttyMdTh1NwfEgG6jq2)f!j5W&- zF!_%my*dY2Gb-L|^XJKbvN6BOzSLG^EHW45x$QQyVzd+&x3e!Kg=^=#Xj%g3FNLa+@- z4_msv(!J%4U4!m;`N{YD>I7T+(rWLWvnu!gqk7IAV;*?$ktTu-f2sDmM=DRay`)F_ z70<7`U!6d(w{u?E+PCuj;~zZpxhZRo?BDAwP^Q%OD{K+VS`5ztnjpJ zUnwbnc;xL{`mc`;cJIz4*oTc<-+r&~icfpLmc4n__L7V-1lwQ4*kH;tOI5#?xzOuw z(88Gu3#*nCYxNNi6)<)_ecp92M*rA_eHlxqJa2Nzl*t9zxyAXDvP$yua;N0x<>hA= zPbw%V%F8a8Tu3Np8cJE8{){2tLX|I|3lO?#7-P57=e&`OUD^EVukP7*pmP20$8YVP zUGS|sd**8?&uuB)dfChCHcuax1$@*8Bi&e6)`fjH_je8=%Ephcb50sRU-N0Ip-r5W zk;}^&yJN!UHp;0IPmiSh{xw{@OYIMV0&Iy?c>r=j_m8ucwIioTKFRI{Rm}2v8v=eU z5N7@I-#fcEhxkmX8tf0F242lU0av3QDptcP`?4`>1Xh;jsdvHry9n5ZF$5S(u@i<>}}F&y{=_! z=TPtRfgC~igQ>zueZ5bs@&*E$n=Q{6HE&R>!UbN#OE|2052T&fDBa8|L)^Mwzid z4S7{G`pQS|)N#V|v@0YR+|_Zr`#Qf)M-u|8>+?d}E+blt}?db{5z^JIl|W68Z= z%GQlNI4~U6{p`SlD{qF?)mJuYp^(?Dl|%wAu8Dr1U2;lyAci7FBg^>bAa^giD^kN+ zgC2^q&(FN#@qRWyjUEbn0}X6I+HucvxbD+KvjXnQpz89HzVp@<{sdN0WU7trJm$AI z!n%s|fDsNwTw&I%-*BCYK{6+KZz|9Kdm3RBYaTV?3zvq}U}J^u*4X`j-`fOU++;Kj z#1H%Y>z`kYjuv~3pihm?Q|mP!yXlLjEk_a1>GqNei*;87$}9_bbhdp-zpp{rEUK(O zU2}!2)NmtvcGit+K*$+@?%XwDP~S1C;%|_cGtl4-XzW2p@m@&G30_(tZkYM{Cm7SM zN~TUF&NxMO@15VhXtogXTRN%!%k?v1H_j&FP~jbAd%ryX9*hqTBQw!LTEL~T+cxjH z6VA$M4nUG-(Ced-;pd~HDx|r+ruuIFc>b{QNgz(0y3p(Mar2ElvHc+!kG4W{u~qMX zGX(1Q_;fYQ21Kua2G&-BJB#nHZ+qig@K~zR5F$~z`JiPRdY)Vh)$)#TTi(3xk4>P= zZ;GnEYD8}_`g~y(ytCqU*|jDtM*Wsu`EwwuGQ%9D9C7!a!E>PdxmvVY54jCiG_m4- z4C;BR5pJn!gY`MC%kywf^VFyw33KPPH0xJ=(9k?mr5Y-Nk+K0rMhO&Lu7*g%?9=b+ z2EY!>)fHZU#Lu3n*zE$9a?M|_g(_%HVHX^K-veOH1XZb|n=m``z17oT`6e)?vNIp} z^$bqW8{qW%opGrbhFPw=BR-8BJ$G*0{({4Qs`93yrJC;7!ZgnQ)c+oarqHe>_;nxm zoP%D#1m%EQI&#S;kPKj4&M$09xl;nFbYl?G2p^*kD(6x%)bf76}JQpmO~6@n2R>^B${GUCY!4ZJzE@ecqMS zEj<9X4RQe*>mQDu2Pq3_o%q473(y7g)-;@>|8~nM=qs6V%q{fZHL?nPhBVd37CimS z40!+f8u{-~ZAc9m9zEo*@;2#VcGlx>JqPK{*Y&VDJXjy?(E{kCMs3pE3%pvh*%P+v zsecq(@Ws0BpXJvhq{AhHE_@nH*0>rqzse45|7kNQ){u@g(-DT0?Q1QNX+QglpIQeF zYkb5+b^2A8L&&%>Smj?AzX^fW=$^36&z!aC^-UZc)LdSVmj(_u#Ji_ndO2iL6AoFb zK5<8ABsdaI@{07UPUbba&$O_z*md84g>a)rQ^UP~UV|Gxs4p5CsXztX*xWn$6Q5vH`tI7 zn{#1u3&^4Bp`2n?m*wLzL@fGxtgv5q$j?+zZAjDDvauI_HJm`L;YM@Cqs?-3@ zN*Kx~PQ%^UX90_fK1Hl>)N-+!t(JMw#TC@h(q!yejkOfkMJhUC_Qf=L?-U7YS&M=S%Y}(2C{HO_0^zVLmo&g)K{>h?-{xt97q5c z_L}`8FED`!^k}pp{Fpm%{dwqJouP$<_vrh<>Lw1dl~2k;f^aQGkOY|6hvr@vMd9G&BC4 z2ydk*Zx8PyqIX7;c&n1Y`;h2GlEC{1;jK>s?|s4xB#Eadi5E>0Z%vYTYm>w~J4w9r zlEl-Jz?J&TZP&+_1Q*pA9%V7sPNh#z z`qa<|3GWt?Nkqz`CGqX_@%)sCesQtHZa+^%AMdebExdPu4?qt7U%&;Wt2>!~SE6aB z-&n$%>F}!~{^?a*LjDV8cSxEeBuhV@|I|5$PXBA0{4tj`3sR8JHgWy>TyfDsmWcn) zZS-NE%LNV4KThcPl6f5v7R4RWhkYiZe|Pzz)Bn!KKjI+F$Z&Q5ha&Wvus{ z4E{t}eAXWQk8QLu|H>Gz7fWIFg3tm4U2#d$w1X4zZ>JAilJqftCH;pI(6`f-*NNyu z#Fz%fRK>?Gc!RG%8Lly|WddF*eW0H{^g%gZxFW}E667dH4jkmbLjpa#%>fNuqaNDE zHD149I>R;SbQjm)1JD0}gAeo@*YE{Li))Nq=o1NLuvxStuR&WT!~lrJ-=+_ElQd;J z63@zkM7WO;LkC_t@Fwdwr=+ZeISA}P=MKEiidgTSJyU!3=$+atwQrx^eba{aPdoC+ zwBg4L88CG0$noRGj2u0BV$RIT6SJmgjUGK^UcvMt=j^iC?|prT{fqtwr;_~lNT*^xiwEi zqxW@C zoxg8jedvYMK_m0_jM|T`@t!5uv2};kGpl2yVp6seLHZHy7Pv=zF1p(+tZ%wcfGn! zbq-iilsabfnuGpaIdtZX-(L9K&S=fgbmjPdHY-g4=UM+eqYJi?2Xlfo}{!>`+)$yQs>!q=FVqX(<(vjfE3irX?sZqU|rVqeF9BB?ga)#*AgyU}M`H zQ%1WrLLOS-H6I&zLvkYvU({|XRs=I~OB@vhvPn8##x1c&w^}9Si)0x##g69DoPA+A z$JT;vQ80tAwvCo;J6Gr#u~oIvJPtHvefYEx2UbM<^R=MQ>%vwEp*b&!4K|*|BT7pj zwBvzqLc&fTB!r4qVGARJrC23m0}OPAT0FYteJt^*WE==Uv-1k_rsPh_;bpY7f_7|G z27FN-%$BG=Lo*+{y@h;f?iq^hyYeW~!Lq3eVz(@Dk8Aw(vhI%-SEcN9dP%9VIrLq` z{H%$V4VE*5LnEw$9tw2&G!oRH8hu2qYPt&&9-tAz^{{Yw@dWk}SC^^_LfiaupS5I>E z(&8U*my-tS>7}BizLZ|7G*c~|q#VPI=^=4xH$gqd(V=O(ub|^34#LDgtYSIWcaS)8 z&|Vj_=WUfsS;hD;t><#HZDCy~aMT3U9HpEfDQ^qJ09u~Hh1I>{Y< zM_;8?oJrVnG)Y@)3)evtS(>08t7X4BQj}s$duVrUF>fnOts2xmT95gS!-i$dB%Kc;?eCAhl!v?3894vpqP~gc9JxtjX(wg9#0@1ha&OV_E4|u=^k_cF`dM@^rmQ`fv7i8I}x^!%N%jLgB~VL8MTcuL|~YBck+f})CSyLNt@5FQ4=LTmo=DEKm}6T?TgKLM)HvwHzS+lvd)ATl=a97) z67R5N@ZT2vIMIqMKh$=m{LpR<*EF88@C@MQI_{|a_@v|~M}dcCBM(t_FeRyaaz+Gq zrmcr*95oVm>8y^f%%`MuK}$Y|(Yta1kuxvs*H1KHwKC>uU*nQv7g-YK0tXu*Xi5wI zPmaQ4kuf6umeKb}(a-kfBc(Wn<}oM59Eckyk>ySj*Tp<{@-oDhPI?Lh##D+K3uy+N zL{VcA#gq;<>IWoOX*IA-H*FDduoDhSnzDw?&I zajy{}8OW!#m}hUR95E68+P7or|Fifz6Zy^ocW4PSD&ie@#LNV88lO}fG9t!XFF9jJ zh`QZ}O%Rk?`!M-_C7VZ$4mL5VHl-zkbND_7%MkTCOE0w)5x7V?rj%OGxNVioSh#(? z#5_0RaJ1oIXOQpCqR&)z3T-o;Kv&t~4kbDKdN@6~4d-Qf;(n62&*%52a4HgavM8G( za0|qJwrB?}pbfJvSu5LWBb&S#_yL}5C!5Bhgh~3@G=?Qiwvl7Ckz=)yBYM%2%N(mc zJawCN;6Y8k;4vgjwufhTz&uPPFJw@>iyq{V#{e{ot)_ds%rW`@`aVxz*E+6H<%d;)|;EH+FxWt8;8G`hfQPVuXp)M zTgwGbtg9yYX)i%LbwLq4w6(O?Vhy&9xWE>r&r`O=ynb zNE(RMceDWOLTXhA)0C_L;YWo+3X~4oBBT`mpB0Mz9Fi6E<41);3Y7kh6^acfZH`dz z{i8zJf0WB@SE1M^W>@HZx<_i|n`sOAfnu|aPszBHRxFYECNRv^a&vumQ6WAQpx8~6 z#LqNY0^TZf-2AgW7fs73-}ZFISk3q0Wp<_q#SvR4?rU065rCy4m#vqH`&yB=%1(}} zAbUQ!6{ZDPL({YQ`O`DcOqcA+yiVXr(ODBDMAcUmwiX-hhUaOK$l+jlg2ZhHLda%N z_Ct~mHnerFbjCnLl%y$0g-kQSt-ntcAc<&c?o%2eQ$^uSk>l4MJk1liR17+T6t7~e zO_=EfkxLRI#XY?&Hr@%q#^9&&EFTuKv? z>SBtEhbOzfcrnxa=UYoII&bUBed~7KiwQIyb{PIcDpRzWRCZ8C34SM?{kLiAgk#Hp zo8SA9y{{E4Nd)_M_8;HVz`}7PNYWGzVPM@vuKd4zV7>9j#pzEhySnTec3iRcNXajy zG$C2(fbd>$#`;&z-Z({_yM1iM%7-eo6BEG>V_->TqS<8AK@BYMd*j@qy^B8SJ?FNo zMwh?*`Lq1=$#~em^T0wM7Eai+>BiNY%I>=Ncaet0i%Jr~X4oXig@gbJvrBnYk*Bt$ z$_vFj3oR1TQd4UiHHDwts8BSh({Gz7@Y6#|7!hPMKSGW<77OCiP~H{6m(`{$umDM1 z9JDHfuPz=?uBVjT`cD5Db3S=-FvJiK!&wG0Sz^F5VOfCU6FP>}3{Uv^rpg$DeoN)k zCI&-vJR?rq9h;g;zrXS+VG3cCARSCh!XO-%rqC(HVFJ6BF-N(eKS8z=pC=;>4703^ zEI!vPpFx!Rs8X+o8_Dc6rGb9d#Gh4gLkHc` z8H*W;!q1O3ln9aJ&nTftK%tXX!(P%C9a`_MZxUq9 z8r}eJkd8^^r$h5bO?@};qi%h^C?Tj}#Q;lY9hZ2j!jJvv%xbqn#l#CtW`g1kk2b_( z6)4mALLXHcNt(}>fg27OH*Vpq`4wdqr9ue&agD|sox_O(Pu)t8h9@o4|5f$md(7i1^E zoo~S095Epz;hzVQgOBsiss~;arbS2fY9U_~KEi-65zZDbnq2aXcY3L$(C`Y9GXoxt z*+#vY*EXx@{3v!*p|Nc`BOY&P+&jRLSZ}8kKb;Bhr6c;er=gcw5xUY9)y*m6jaEqW z>rH6J6Vm;>kwz~aQyy|PM)|N+%1j3rpdj8Tsx^+5=%G%$tQ8og%JO(LwZw;1?VuV&ND5rK0^8iM3Ni%0-!E z$gqcyrAguk^E9`|0#q_K`QIAAg_C{K|03a5T==ggG-Cq2&J0s<+pI>-xtZHYkRRr* zc;)~8V9qDjbTyO8RllN?TPL(DwFnz<#Ce;6GM{^7P1~{eiqcV3X7r-&DjbsQWkkPo@mDi_LI zzhbw?*GaVn5^c7HM)67&sT11529`G4f}`)mw(y#z&9?ALHo3Ou5GIn;kEI6e78%Nm z5)@*>vTLGEDtO{(lL~AjDJodjXp;(#cSwo~9>LnAf<+xW6+CPq#ao5B`kJ_;g4c*G zc7bgqmzlNoy>EtDvTuf+fnx-^d@U}CO>T<}SSh56EZqMtQO|9w5JwJ5!M0jv zz)MUFUH+)NU=M1Ee}OB>_J5=jED6-bK6TV>Br-QIAVM;*MaV9G5@@pp z7&Jae?Y00UcxgCe7(~2l-$DN~-qoMovL@ri$6f%g^yYNQQ_~w$s#A9UZmiT3@c$2> C1@W8! literal 0 HcmV?d00001 diff --git a/Content/Widget/WBP_HpBar.uasset b/Content/Widget/WBP_HpBar.uasset deleted file mode 100644 index e769a46abfce2ae2be77c4f50534ecbabadade40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31930 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 E1&Z_iu>b%7 diff --git a/Content/Widget/WBP_PlayerUI.uasset b/Content/Widget/WBP_PlayerUI.uasset index 7a968b5e4737326e2c13544d3394fb144d4a3607..0389e308bd632a2fb2e26d238bb1d7ac70358de6 100644 GIT binary patch literal 36267 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 diff --git a/Source/Exo/Private/Characters/ExoPlayerCharacter.cpp b/Source/Exo/Private/Characters/ExoPlayerCharacter.cpp index e60497c..6180334 100644 --- a/Source/Exo/Private/Characters/ExoPlayerCharacter.cpp +++ b/Source/Exo/Private/Characters/ExoPlayerCharacter.cpp @@ -48,7 +48,10 @@ void AExoPlayerCharacter::BeginPlay() if (PlayerHud) { PlayerHud->SetHp(CurrentHealth,MaxHealth); - PlayerHud->SetAmmo(10); + PlayerHud->SetAmmoNumber(10); + PlayerHud->SetAmmoType(EAmmoType::Revolver); + for (int i=0;i<4;i++) + PlayerHud->AddDebuf(NULL,0.25f*i); } } } diff --git a/Source/Exo/Private/Widget/UWBP_Debuf.cpp b/Source/Exo/Private/Widget/UWBP_Debuf.cpp new file mode 100644 index 0000000..8e3c578 --- /dev/null +++ b/Source/Exo/Private/Widget/UWBP_Debuf.cpp @@ -0,0 +1,25 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Widget/UWBP_Debuf.h" + +#include "Components/Image.h" +#include "Widget/UWBP_RoundProgressBar.h" + +void UUWBP_Debuf::SetTexture(UTexture2D* texture) +{ + if (!DebufImage) + return; + FSlateBrush NewBrush; + if (!texture) + return; + NewBrush.SetResourceObject(texture); + NewBrush.ImageSize = FVector2D(64, 64); + DebufImage->SetBrush(NewBrush); +} + +void UUWBP_Debuf::SetPrecent(float precent) +{ + if (ProgressBar) + ProgressBar->SetPercent(precent); +} diff --git a/Source/Exo/Private/Widget/WBP_PlayerUI.h b/Source/Exo/Private/Widget/UWBP_Debuf.h similarity index 52% rename from Source/Exo/Private/Widget/WBP_PlayerUI.h rename to Source/Exo/Private/Widget/UWBP_Debuf.h index dce0020..88d1597 100644 --- a/Source/Exo/Private/Widget/WBP_PlayerUI.h +++ b/Source/Exo/Private/Widget/UWBP_Debuf.h @@ -4,27 +4,23 @@ #include "CoreMinimal.h" #include "Blueprint/UserWidget.h" -#include "WBP_PlayerUI.generated.h" +#include "UWBP_Debuf.generated.h" /** * */ UCLASS() -class UWBP_PlayerUI : public UUserWidget +class UUWBP_Debuf : public UUserWidget { GENERATED_BODY() public: - void SetHp(float hp,float hpMax); - - void SetAmmo(int ammo); + UPROPERTY(EditAnywhere, meta = (BindWidget)) + class UUWBP_RoundProgressBar* ProgressBar; UPROPERTY(EditAnywhere, meta = (BindWidget)) - class UWBP_HpBar* HPBar; + class UImage* DebufImage; - UPROPERTY(EditAnywhere, meta = (BindWidget)) - class UImage* AmmoImage; + void SetTexture(UTexture2D* texture); - UPROPERTY(EditAnywhere, meta = (BindWidget)) - class UTextBlock* AmmoText; - + void SetPrecent(float precent); }; diff --git a/Source/Exo/Private/Widget/UWBP_HpBar.cpp b/Source/Exo/Private/Widget/UWBP_HpBar.cpp deleted file mode 100644 index bf32830..0000000 --- a/Source/Exo/Private/Widget/UWBP_HpBar.cpp +++ /dev/null @@ -1,14 +0,0 @@ -// Fill out your copyright notice in the Description page of Project Settings. - - -#include "Widget/UWBP_HpBar.h" - -#include "Components/ProgressBar.h" -#include "Widget/UWBP_RoundProgressBar.h" - -void UWBP_HpBar::SetHp(float hp, float hpMax) -{ - if (!HPBar) - return; - HPBar->SetPercent(hp/hpMax); -} diff --git a/Source/Exo/Private/Widget/WBP_PlayerUI.cpp b/Source/Exo/Private/Widget/WBP_PlayerUI.cpp index fbb26b5..78442fd 100644 --- a/Source/Exo/Private/Widget/WBP_PlayerUI.cpp +++ b/Source/Exo/Private/Widget/WBP_PlayerUI.cpp @@ -3,18 +3,66 @@ #include "Widget/WBP_PlayerUI.h" +#include "UWBP_Debuf.h" +#include "Blueprint/WidgetTree.h" +#include "Components/CanvasPanel.h" +#include "Components/CanvasPanelSlot.h" +#include "Components/Image.h" #include "Components/TextBlock.h" -#include "Widget/UWBP_HpBar.h" +#include "Widget/UWBP_RoundProgressBar.h" void UWBP_PlayerUI::SetHp(float hp, float hpMax) { - if (HPBar) - HPBar->SetHp(hp, hpMax); + if (!HPBar) + return; + HPBar->SetPercent(hp/hpMax); } -void UWBP_PlayerUI::SetAmmo(int ammo) +void UWBP_PlayerUI::SetAmmoType(EAmmoType ammoType) +{ + if (!AmmoImage) + return; + FSlateBrush NewBrush; + if (!AmmoIconMap.Contains(ammoType)) + return; + UTexture2D* IconTexture = AmmoIconMap[ammoType]; + if (!IconTexture) + return; + NewBrush.SetResourceObject(IconTexture); + NewBrush.ImageSize = FVector2D(64, 64); + AmmoImage->SetBrush(NewBrush); +} + +void UWBP_PlayerUI::SetAmmoNumber(int ammo) { if (AmmoText) AmmoText->SetText(FText::AsNumber(ammo)); } +void UWBP_PlayerUI::AddDebuf(UTexture2D* texture, float procent) +{ + if (!DebufClass) + return; + if (!DebufPanel) + return; + + UUWBP_Debuf* NewDebuf = WidgetTree->ConstructWidget(DebufClass, FName(FString::Printf(TEXT("Debuff %d"), debufs.Num()))); + if (!NewDebuf) + return; + float angle=debufs.Num()*DebufAngleDiff; + float radians= FMath::DegreesToRadians(angle); + debufs.Add(NewDebuf); + NewDebuf->SetTexture(texture); + NewDebuf->SetPrecent(procent); + UCanvasPanelSlot* CanvasSlot = Cast(DebufPanel->AddChild(NewDebuf)); + + if (!CanvasSlot) + return; + + CanvasSlot->SetAnchors(FAnchors(0.5f, 0.5f)); + CanvasSlot->SetAlignment(FVector2D(0.5f, 0.5f)); + CanvasSlot->SetPosition(FVector2D(sin(radians)*DebufRange,-cos(radians)*DebufRange)); + CanvasSlot->SetAutoSize(true); + +} + diff --git a/Source/Exo/Public/Widget/UWBP_HpBar.h b/Source/Exo/Public/Widget/UWBP_HpBar.h deleted file mode 100644 index aa67363..0000000 --- a/Source/Exo/Public/Widget/UWBP_HpBar.h +++ /dev/null @@ -1,22 +0,0 @@ -// Fill out your copyright notice in the Description page of Project Settings. - -#pragma once - -#include "CoreMinimal.h" -#include "Blueprint/UserWidget.h" -#include "UWBP_HpBar.generated.h" - -/** - * - */ -UCLASS() -class UWBP_HpBar : public UUserWidget -{ - GENERATED_BODY() -public: - - void SetHp(float hp,float hpMax); - - UPROPERTY(EditAnywhere, meta = (BindWidget)) - class UUWBP_RoundProgressBar* HPBar; -}; diff --git a/Source/Exo/Public/Widget/WBP_PlayerUI.h b/Source/Exo/Public/Widget/WBP_PlayerUI.h new file mode 100644 index 0000000..d845f52 --- /dev/null +++ b/Source/Exo/Public/Widget/WBP_PlayerUI.h @@ -0,0 +1,52 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "WBP_PlayerUI.generated.h" +/** + * + */ +enum class EAmmoType: uint8; +class UUWBP_Debuf; +UCLASS() +class UWBP_PlayerUI : public UUserWidget +{ + GENERATED_BODY() +public: + void SetHp(float hp,float hpMax); + + void SetAmmoType(EAmmoType ammoType); + + void SetAmmoNumber(int ammo); + + void AddDebuf(UTexture2D* texture,float procent); + + UPROPERTY(EditAnywhere, meta = (BindWidget)) + class UUWBP_RoundProgressBar* HPBar; + + UPROPERTY(EditAnywhere, meta = (BindWidget)) + class UTextBlock* AmmoText; + + UPROPERTY(EditAnywhere, meta = (BindWidget)) + class UImage* AmmoImage; + + UPROPERTY(EditAnywhere, meta = (BindWidget)) + class UCanvasPanel* DebufPanel; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Debuf") + float DebufRange; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Debuf") + float DebufAngleDiff; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Debuf") + TSubclassOf DebufClass; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Ammo") + TMap AmmoIconMap; + +private: + TArray debufs; +};