From d1c50e2629f1048155baee76e71fbdfa777a8e91 Mon Sep 17 00:00:00 2001 From: Jakob Feldmann Date: Tue, 6 Jun 2023 16:50:25 +0200 Subject: [PATCH] feat: controller type detecting buttons in menu --- .../basic_tileset_blobb-jakob-remix.png | Bin 5933 -> 5914 bytes project.godot | 98 +++++++++--------- src/Actors/BlobbyCam.tscn | 3 +- src/Levels/1 Tut Level.tscn | 10 +- .../Screens/ControlsMenu/ControlsMenu.tscn | 4 +- .../Screens/ControlsMenu/InputLine.gd | 21 +++- .../Screens/ControlsMenu/InputLine.tscn | 13 +-- .../Screens/ControlsMenu/InputMapper.gd | 1 + .../Screens/ControlsMenu/SaveButton.gd | 1 - src/UserInterface/Screens/HUD.gd | 10 +- src/UserInterface/Screens/HUD.tscn | 2 +- 11 files changed, 84 insertions(+), 79 deletions(-) diff --git a/assets/environment/blocks/basic_tileset_blobb-jakob-remix.png b/assets/environment/blocks/basic_tileset_blobb-jakob-remix.png index c842fd42cbaa4e37d85b0a934e6d0631e8b7c2c4..dc32037c572a4f54acb7b540c3b912cac629cae8 100644 GIT binary patch delta 5812 zcmV;l7E9@^E}AZoF@MxaL_t(|ob6p(Y+J{f{zx6kB#*4SXeyRu(U)8t+c69YRvag( zV`SU9%|jYs6%<(%#iB2DchT)b7Mq7Y?8^d+1vW@(V1a#DWSa%*1&Tc6QncAP>uoM9 zVz{X+RdHgO5=F-nC6c=EkhCu3J{->BoZ-38p-9R6UP#WF8-LIIGxN`U|3Bk_%joLv zF1nqkn@A;-9{P7zcX#o<%a?F9GKq;BpCjw>qqjYP+1WS_9O%dFY#f1(E^MxEV6(6V z09aW{U~g+H)-o9YP`>Z$9|Qnwu5UnSX-0NArQ~toKtC2&vIrD&2p>F*3+GSc!q`Os zfR*y;e4T)#Wq?e)u-hi5R9PKL-HZnNMQs)*SxlgMSaOKh&+8Hec`|orqP0rxP*D zd1$4j>o76?M=Bqzr=*ZEEx|pRO zfB$Xn|9`u$e-Qb6Uin^4WS6x^zV)p7(=1#oJ+}aKb$1tk^&hX|^vH-R{PxTore1vw z-~R6NI5;%mC~vbo*fOoAKRq&np(97};tzkS(pSPq9svM+cI`TH`Foh1jU$)82P~(M z%in|Fw?~Of8lQak`FsH6#v*a)JZ5L(7#ThV(SNrGl9aLZ|NHv-EX6ZRclYjH^!4@O z?%lf;aa|b!VzC&$oQ_w7KXP~gA4jg?m)_T0sE8Zv?nEM)Rw-^o32Pxr zV8*!dNL-<%8DNw^01(AMg#fH(wddeRl)3RWm{;40WJx^v4;;~;)`iq{e7hJ z;eV|;{sMUOVA2yUyj~ECsdXUIgY|l?9_XG=(wXJqiU3S}F^%MM9^r$B-NbEEcD&q9@_38E;tI*0L7!0a@AA9%^u0|%6-{YmaEv~5RXa=qLW_h?a0$hzuB6|B4 zvL3%1Syl~X9e(WLLrU1S8&S=;c6y&4^ndc8%Ot{Biw@-42teb+!-otN4?Q>;!mQ*; z>M~B%ldW?tL8j1&8=r4`*{%q{;NT#V%U>$L@7}$O+1a@5;nR-t!jmT;*Vzo!ngXKwCh2dvbJi#8L0Hvy8ElmzFk7*LnDOSa%wz7KV?9E5h8Ea)0c? zwT&PxkdeSHsxcCnL6WkXieNR6NF)Hr0+323Jr~9<7XSY5evGM`x3;Bx8dVhl0(#G! zK#!cz3)f4}ey5?ggXRWSmJ+J1U?1mh;Ne3> zZ=)gE>Q*qDM` zi|AKV3LUG5ef@)2h{qs`A|y$Y%Pf62;{>8#O##qe?h#_@!q~-arPDnxy!e-@0_ovY zkIz1K{3M%Za@J|6=9n>xp!wJNojDe zF93RMX!eWPD8=IeJ(_GclqtaJyh-4+2a}#yE6_ckfbR7$XyC1_Em!IwNfO$7f)yhU z0L?HhghC+zz|DzqJanx5PJid;=T&iTPK+xSOzk~E2t-phaVYVmQUZ+0j+W*|BSG^Php z6e0LUghC;FJ#!m-TU+6O;|u^`;m$nTUXg|1>zUi|`t+4r!K`uho`36c*gFlI8ogI* z7~XD}nVBubV`!)9>3`!4UJiaA0Pt>G1e0%sfFFEfT8^a=fNaIm)FR7a?^KvIw&9$- zvFchqNV#2fq9-W5Qu+hcskH;Q+z{05;?8loR)l_@N) z7*GDB(OF)3J2ok{1Ap`jx2gkFV??MZyEN>xN-F)EOaV71#?ki5ZM^e0vJK=r_zgm@ zC$W~v;GttD@W8*G!Ih~`kiEMCaY9|D@Mw6yqYBp(oyr69;;lBSs-dbd0@zIxk4`IE zedzV_Gt&59&)mk3d_TjrSKdS$0JOHM(hJes_6dlmpB&vaBY!}>fEGl-FKQ}&dTEFv z2td*PA3Amd*PmNKc=!z7&C656@LMmHM}mLK$RmIg4m!EKW;@MJf?jXbn<8qt3>3Ug zn4h07Yxa0dZHOadV=)DYur%K>CLR2oFD`j08kjHVa!2oN&;?r%vL+*hNBM z)U_|59hkj%CkmroDEXGA0IgL3O+5?VCPfHBp^$1vkRbGWQZ*9LX@%iaCv8`D(gfAu%O4!jyj^NKzU%6T*pU+oeXTbiZ8-Jf}bQbhx5D}Wq!WM+5M;|q< z5Y0^!k5(SPIxWZunYbZMD3V>n+*q(>+^vsYiu-v87T3jg&(6S&IP;OtyPj z(7K7x(tnI}B8|1xRd`!`iuKiEA^|CpfVag5X?+t|*Zv>E$gu4xKsD!Q(n&~?gd-0< zXe$%J+XSJd*-*-@f`^Z<~*+c<=GL(Px>2)O{{aq`} zjep_aEmX@OqgJrW1+a0gjLa;XD3G4KmdRi;dPjLkf7c2l=?cYNvk|x>!9z`N<|GJ& zJtFq*094-z*yq{h6xK4Cnwc~2HqZ@ewNdRbhgwi6feZ22j@1En1N00+Y^8BhF0k`; zfZYJSUT;JOSv46qLPH0r6I6I2Ns=iU#D6wED=b>5U=zvSF*)fHu%-hLWYS41|F5dp zP0K(6t7H%jD|-Q~K&du@_Vo`c`^fZnvd8Rg@hRWy3A=3>NTBB}#6lEB+nkERCIZ_2 z^)#Wdm`GGKJkPiN}j>B+E4L3^~^U^YP?-e z*{J~Vg1ofW&TiFN{#LQFlu#L5=na*6X9bWR>t*~3Yw`YwcQJupo!RF;pASM|J+GpJ zwK!!h5IR^|=dQmakRG#`NSM~u41WrpsxwsT&9AfovF_O&9UTD7-LqNN)h_6fV{1Kc z%h7c)k>IC;&DNbfn-xa>@}vj50W&(490{Wb9`|hC_eXCa6*bN)Fmrx&g%0L1NT?^U zbSk~EqE}a5_iTXwd;$VCy_uym;L=twk3j;dl&%0V^PAhCUx*R+Ze%_VIDd1`CcT^Y zd;-0^S!mUrdn=gRAi-~b!j_eMox+YEp4Lm{anIJvllOcAD?ML{%S#8h_XN2N5{v|h z9)g|FrB=Y3SAY1BWA|)59fyY5nL)hu=ca?X4H672T3BIGVVh6Y(mKEa0GE3<+X1S5 zK7rPM;MM_n4HE1aKU4#DU4O9^NM)VCse3k^ucPw`pf8x3^F153vC6Ll@WSpK%sNl< zf_`yY+`HBkq^cLEd$!#TEIl}#7P#qP`u41y2wDJHMU+sdD^T}TIt{OTwifK3Phb^V zD;ZbmU?&C%b}L^En9-?5|B2T|*k| zXS3xQmSsa>G~2gO@&WkiU><`68b(8~8}@J20Iz#?UXs0bot#f#ST6$wn-2G!Jv+)} z)aM2lV78U4Wf?=bfZWEGBQl7jcj_EV1en*k*6972v3caXT{e(lZFLm_FQH=UUk?}_ zr?$7P4T4`(yj@wCNq>89FzAR5CUE-y2_0Sa_h)iG0S}$r8w|?#1?2O2M|`-OY+QR! zP*I@b(P{LD%g4~MY?>R&5oy5OMp_S`5fUQfe=}V`0z$-wSmqyv0SKZ?C?NF+P zd=`ab5nhjn+nB{FwBmmAFTM!?_;OnNSba&7;PrTr%in|Fw?_%DmmO5yTf^-1bSHd1 z`!d%u8OxMv@HKg3#fx&!cWTU{xAUe4_W3V=^%el&!GA;j_(P;Jz9@m9ZzRgXs*0Z2N#L>3VOr>Ari{2}s5=~KQAPOI#ChP)NbVQk@)&)>{R zs4tW!4^!AtZXY9LC^Gwglkc%@#r){ zuY2?<)dN!eT9YFWE-k*kKGia?9-$I|YErINK~t*n=(OSkz*4G2koI~!TsnXr%shq& zNKYr9(V01ueh(HZN0%dG7FGa^>Sy$fT)IU@0P-CG#&^KAI;K;Aol$|8&nJyf$MyMq zSkaTd4;g=*&6YmPb3XmO-baIqRe)wBi`&F*@cC>U(vVu)y@Iz%Wtc*kG5XY!OgdT7 z@NV3dOzKGvy{7Xf*W3#&&AKP3Sh1ek4rs0d?81skm5~6M`o{yhPLxFG*cVM2U8@1; z22|TU)`r5PE|_u8I&oo3?)!Wa(6e^Jchh(qno2k`Lk|`IdC{tlclDN<6C#QXDZOO9JMj@X?eyfOp zDEqcA#A86I4jVar_inxVuNRL`G7on5Uw8p*0XCkaG+md0vA`ZIDP5_qPK71 z^pk&Q@K-NBkKg|8w;0_2J#+>K@$1WP+P-Fny|Cl#+0i2HZVr^ErR;L5qCSCQ4#$q4 z#M7gX;=>?l*Mo4fSNXUh~?nl0VH-q9(W z;inTZJag_TyfF5X>UpTQOZEHGFJ4pPgnECw5I*)q5hx1+ZCl{Phf-Mu)au3!tqQAj z5{s)4r}cmQ$tN6_zop@iPj&&>yOtk3)UOant4nie^2<8P)1&J2#J&Ik?#w4Kb!!e2 zl37x?~Jbv!EVk(*RkR#>odS?>|K~~h7T|v z#xMWtzg6*~cdjG6zZaeUO?32xl#u}dmeVOLFU?~qB`<()PE8`Y(5}QAfB$Wh1`;2C zuSk>i_%ZhVAL!~A`Q-ml$Y-%q zvOUP~6p??(AV<6qCJiJ%h?AA;V^tP63OMg zKN9)OwCw229HeCnMxl(UnVXk)*IWR$(?7nN<&#yw_!rX{9UTDx-QEw#7Q^A80R+1` zZPpk_F6S{}k!R4NrbUtBRBV^-G93HIyF3Co^3UH`EpIqU^1gp2ox~@fYWHe?cEc+= zGl#_$3u{LTWF2pH1ke-0Yd4|*>OcT?I?MEG4ihmQPzX(n%(7%_z%A0*?`&oJl7YANTOkKn0(C<-`BOzx>-}TNP%( z-u@lz=|QgaC;UDi5=%>5`ELiB{USbm|ATEc{yX>V`65w%dCC`z_+&|v6d!l;2>{2A z%bzcdy;Q+x17%K|aM_`M-Y(29rYfG#FQ)Lv7pE{`0L50mv`acJ1o~wHOKL^MQEwK`K@OG@q<@Ei7%`WCT4fo5fBXO6fZ9 zcw%3$ev%r@XIxR-%O(6Vte8v(RV%b?TK zpm!K|Dr%t&y0r>16acTsgY0q&k%*d>v}(m-wb$=NZMxQf%RskQAp)S!Cl`uE#rcu; zc_+{dXJM2cnM`9D=mO539W6T9Of%gIX6Z>YUwG2cR`Y9sANO*3?D2~VLuiLA6U_Kz zy2qON!kZa2*fn%$z#6>Rvdj(C&8T(m+4Du-+e#YXhqu-hXrQ)e2*7=gnh8MN%tiM( zY9;_Xap|{z8_}2o?sGH*;66t~0Pb@%1mHeLLjdk`G?sz)IU38r`y4e9fCdLpKd7pA z@HfssquJ1#_v{^v)Ijwh&@N8A&Xw%5jhuw=-~g6VY4ntiLyN}d(CimW&Xo<+8Um|~ ySy9gH@Xb;-2LM<~rQt8RpKau%M&s8B{vTP21ewYY5PxI<0000n@il8J*mMK}IAxDfX z+mStPnoA#C&Dfb#nLJc|sntIC!86rEJn2l`nLM-^U!Lk0H*TlNjK>d-o2IVqs__LG zYZQk9L&+8i5`-)gBnVz`0Eic$4~KiOXL0U(K!6m!7XW+qhJUmF?*6;q|L=O>G6s(g z6y46#O+;@_dg$MS#|DaTy!JA#M#d1m@ddITKe}22n4V7H;K3eDPbUy)>%hj^IyMTM z0D$F%B=$BpV>Ocj0OkAso<0D;#@afBrbc9!7L_~>9_+#Vau$JN4&i~r_|8*jaOv_D z0DzV9>3p4lq<>}e5FF*E0n+fFeDt4~onHh1y#0%}@ciY!RmCIEXoR{t%ASR~IxsuG zsLDettrkdr0Py;2ui(OS7nR=^p1oKE$_2qHmKTyrLz9Lf-{%r>}5lrU-#s zmAm@>yXZf1982j%EG^7pVR0D%aBF-Fskv6Pb%xN^Ug|L<9su2EW_e6~^+)s{IbK#5 zv-G3yzkkd9fA{zFA)n7H-z$milJ>~AmQ{b6g=?kf7J$KH1I2&(=}&NGcvuxaIW>dv zpS^-_fA1L#^!GZ-+bj>ZOsnb73=gCK$Z@>z;!7%hC4A%|0Kn(ht|OPfhw14Aa`}6} z(js#Cd+_`AC~-;SlkYyC4}jcQBrcuD^mGElLw~0s`u0GQGM4^-cXzj?cxLJD-o1X8(S7>Sk7$pz@L@`h%04rJT`8pE$+|FNBFg;z~7FuC|O9C)>>=2?iCvf$* zk$>`sw`ceZ;LU?cPqgq_K|HS3fk+S5>$Q5Idp=2LmWL|>5WP8p)KVVdfx~WOw=Ia? zoKXE1#Xwn{?(S~go?{hSc?5$&)$hS$hj2AAru-h=s@wdsx{hYhif@*OYa_tb$QWXi zw~_Vu-N>?HAnWkKV~3QmYd2z=aqaXzJ%8xsL6=E{u^Ju7wGn{E$zz8M6%Rc)8N#gO zN$N66)swArH9@A(=#4M7y=+$mps%kFsiiNK-*@lc#q@N-_V8&(dEvR!M00Mf? zoIsD9&w2=oXFtKmi@huI#u6(mz> z)o-IA+3Hp>n@2L01{&1$i{6~{ynpnQe<%VnS0RT@s8%YK!nO(kP~JFtjm3r=HLxBT zVi&Qm#uYkN5Bq!iFqeo!6h%mqB$v7M-Ha26eKih1d$~u5sY{oyY%87ax$ymGRRz++ zsUDv_c;XbE7dXQ$wy)4yLAj)CO3rPS#qhG`yt~*=84G*1yBuNlO(L8bmAOL*5W;dXKhO)4YoZP#!lB6`a z*B1aiHZ=N0tZ&8R0X>>*HAXqcv!pMdW5FlgY-%}rP8AW0HhJA-8- z4gk$CErdcL0Kl#2D2@)6-hb)r?5rxzt>~y?!PMFrgg`W9GwygdV{#0e2efmnRVAi;L&wuqe?45=Ujozy@ z3~x8g%*^HzakNtP^uKu)F9v@A0C=w@g0VM4z>hvPEyvObK(=COYLVrzcPh*p+i*@^ zUvaG-q+GiEd_J$*a01kVv5}LIh)uxj@nG)GEZ%F8?J>UV8^NzW{53*bX^4KHRi-e% zY&`jsMrV2D?bxK)4u8-u+^P;xi4mc!?5$y+RZ{8SWD2+y9YxEPN&M<>WE;p|;nxVg zn!;)(gQJ5d@xVWy#fRgcB71ikVpLtG@NoEmqYBp&oyr69;;lBSs-Y?{0@zKHh)pP3 zedyKFGt&59Pfg;ld@tbImAB9W0L{&+^g?XXJ^}H>V2aSJOVi3pi@h$w$tn+==DauDWaOoK*8I9 z+1c5Wrk}~+f&Ky9ijE>Q)r=fI#Wl#v;CFo^s*ynOHb8K~L5pIud88c*x{+yxPfIAe zfu}GPAd$ZK4rU- z)#9!z0n(^i4XW4RBz!)ZRKkuwbOe7K|H{=m`Fy@IJAVWAH{JMjqqCqlgNV><6gD9| zG4il!g=lV?c(n5P)oGzxoPZlW`CcxMJ$@07oIZv1oTNJ?7(HXr+8I=sN-YrfkRAa5 z*;APy(AJ@NFw-FM1#bfc(x6u1cEeX2t1G3YT-TPpKHal*mwHsV7n>?Y&`2p{pEViK zz+}6Z1%IuZ2u+PhC(~G6S%J67r&wRjCzFtpNqC!lkk&SUHSPZ)95`5RoM?mt2g9m4 zKa);Dk|Z2C`k<|R1aAX`rba_4w+bFUzS( zA<@bZ$;PQR6IV${lBByIAVQwL_O`SrVZ=m@4u3PFlLbJYH;fn~Efn%u&H2SHczf>g zhmLU9p%!6>4BE&^#s(z@Y@*60kkF55_ds?6&B!1EEB1&ihyW=9 zu)L7Ok6(NqAAfcoAO7|;{P@M^RSEw7r?0D?)7oaWv74p=b}zz+3}WNcr5r67BK#icx6G@Ux$so4zSz*ya8JkG$=v zfHfU}Ad^m6`F|C~ZdwKsSS5pKSlJ6;1xmFMw7;iM*+-_olRai{lTZ0xOW1A8Kmt8) zAr_)2+U8UgHWASFucrxx`DC)J;du@&uESjjeo^HkK*JIjpx2N_>{7k)WjsO|)PFc3 zvjDj_8hHUZUFKOyFR*lCS1_nFI6DfkVF2K7EcdLn0>Rr*lhcV^u=z)nppHD!*rZ=;623*<-<}pYhmC_X;W`BNj8}th? z;@*wS#{p;V*`#;#o=>2cHw&%0b8iK68zlJ6PuQ}OuT$9Z!_#`HJnq?gdGel5V5R3P zae3+B*3KZ8L4uJ0(L=Bky3`7I^Xds7a_pY1r{mBtJ2Qy4{@iphw?Tq|MGGq|Ds1zq zT3QD<0N`@ZW;;No&nM9O4}aV`0IxxU9pi^ez^*H{0;!}EICama^L2DS0rUk^bG~Q8 z)>rs-0AARggIVWEUeGU2i+k6af>ib5bkDZCfu#qh(*idgOy8ch6G00gtB4ZnbQ$WN zN~hs<&(?z7^9ig%YbE0<9qhy)!EWU%0W&()=s)qgXR|_J=X?S?(0|LvRXW&-K>`h< zA-Iy8MtXFrm0e6;_iVO2!?J8BjAr{5NKeD7!PrblFfrP2A~;*TD9kZ9u<+_?^(Wr~0DL*2eXPDDN$`3+$mQ?B@7tq< z*UAp6?yX^Vdb$%npM9CDnT%yhHTa6WvEoIk=Q}lK(SO@{(*yhb=l}5z0N}wxJ@{Ru zJiaK32()#ei70_J=2OXiZ5$7uPwO4FC{>R~839N-yF?Zd0;i{R6Z|gn>DH%w9h_F# zwG4SHn8Vn@DWAWQlT>9r&_7_CQhnfGawz1pj*MCK>SgPH0|*c7>{HX_tzZi#NLIEL zji6`xL=eKYDAh!40-;wu`jqNc{A!aH4=ye4?rzmGuoj^bfJ#!XRzXv$iP(hV1He+M zM3DA+JX|_}9?U$32uM#SpRuVKlW`9gDqDvmV-{8bjOu6fj9j`!Mga0107iGfwK}F# zfSpl+m(M4SPsjE7d|1|#u@4!4p3ZK4mgao=d##TKWvc+qNEWw=-Qe@tIHV!9wtEF{ zgUT?4Fk|$oC7E=ptl{0bE1A@j9C}UXO|H2Yni_RaP_be?wH?r01=xiZlPV(tGWCxK zbe$-P(6KL?G`dy;&<&=_*I+kO5Bq}Mx&mb+Xl`u<^Frtf2DvIi_-xvLUXZ0z70#RC zwn>lW@sFqLF8D>|H{I|gOzVI0QrddfR7yA_J47F;=8fSr1WTq|q@qlPB}w8wtDl_q zt+ge~P8)@M7WvI00;25OK9`6CTXk5^>AQF9)qkx3}wD(SvaP0I-%_#leF; z3KKZLoW+^bClQ;xjWdsboy8Bo{|tWf-@ifMfj>ukun%wl;w>!MbPs1Q>^OIBq)5A) z1EpyxyR=wVpFlB(!4s$O#K^odS?>|K=m4* zz%BpyS}33F1-}(BG?spBWxT|B>T( z;l-DVfUMm5eDZ%NH^?~e>~6p??(AV<6q0FiJ+6m z4ngl`*13etBamr94-Xyg#V3(#_#|>o74B;+XvX*Y0%#5FmFvWRD1iVF+}93CDk&>f z7XZip@h;um&E=oJRR^v0ekAg_Y1y%<8AwYOj6xYxGdC~quDSqhr+<7U%O|UV(VG(( z85sru-QEw#7Q^BGUIaVZZPpk_E#(ol$TMhB)1pXmDz-~^8IJwqT^<1(`RA{%ls23s zdEY;iPT|wfw0kvwyWtg^n!)_Cg|#CEvW~Yp0_X|hwHq-2H6Q>x9cBa*4X?+e-0Vrx z5qknX&~^qiyJ&R;FhflWK&AZSD^b23VkwuuhbAVzndOk)^S(Z7OFuK~q?!`|C;stn z-WOn}e7igfZ5B@GY@(g(p}V_VQ=x1L@Ez7YbV9x|xTXYuz>a@>SFm)Uf?M0bPW_p+xBhcJE>^5CHPT7OZci!8NCJ-$pPWgj6d(6+ ze{UI|{NYFchkt+jzid^QMH}oJNX2F!4vZ5h377o@!3F$(91!!eSa?z_0v40wbFRr&qREdCrF4%jMyPJ7@e=69UU8(?0B?C?ee7 zTV_$RnUiZDZ0$`s{Zt3jBN_Ji0t^1E0SDu-1*=#%-|NFs*HPz61`1s?9=ls)8RrSV9 zTKISbQ2^9@@>+IP@nttMT0Ap6Y?!egm(Ai|-}wlD{8DY#zD7`uk$^rQh-V+9Y!yKB z$$Hnq(&kM@(BraM?8KpzuJca5xYG7AP|Li3$q*KfP1%Vr(2WziY5|V+0m1`^U8?{& zS*wofz_I|8*|^oQD_|-BS~hO9C#+do)?*e>Z%@u`KNnI51 zrmMXSbZZqN0Q!7#p;%O$A8DU=0=;k+M(L5s)R%!S;M}>9qLa-u)2(2Zo;34?Ck<^i zzdHDFFPFz2zo;;TcE~cpj8CR}teG#onNfpXLx(!7!HZ4H+(6BYTIZjBs>pj=Nge#~ zR=WaqR2OvtxX)2F0jQa|=sri)1YjqBF8y{R>Qlgdj=BKc=co(7eU7>S+~=qZz1XdZdqMX^`o26_H0I;x_hJVZbY&|E{8^1>I{}fab1p|J~ R=N13}002ovPDHLkV1gnIL_+`o diff --git a/project.godot b/project.godot index 7006991..bd949ae 100644 --- a/project.godot +++ b/project.godot @@ -156,6 +156,55 @@ ogg_vorbis={ [input] +up={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":87,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) + ] +} +duck={ +"deadzone": 0.5, +"events": [ Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":83,"unicode":0,"echo":false,"script":null) + ] +} +move_left={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":14,"pressure":0.0,"pressed":false,"script":null) + ] +} +move_right={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":15,"pressure":0.0,"pressed":false,"script":null) + ] +} +jump={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":16777232,"unicode":0,"echo":false,"script":null) + ] +} +boost_move={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777237,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) + ] +} +interact={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":69,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) + ] +} +pause={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) + ] +} ui_accept={ "deadzone": 0.5, "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777221,"physical_scancode":0,"unicode":0,"echo":false,"script":null) @@ -197,55 +246,6 @@ ui_click={ "events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null) ] } -pause={ -"deadzone": 0.5, -"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"physical_scancode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) - ] -} -boost_move={ -"deadzone": 0.5, -"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777237,"physical_scancode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) - ] -} -up={ -"deadzone": 0.5, -"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":87,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) - ] -} -duck={ -"deadzone": 0.5, -"events": [ Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":83,"unicode":0,"echo":false,"script":null) - ] -} -interact={ -"deadzone": 0.5, -"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":69,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) - ] -} -jump={ -"deadzone": 0.5, -"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"physical_scancode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":16777232,"unicode":0,"echo":false,"script":null) - ] -} -move_left={ -"deadzone": 0.5, -"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"physical_scancode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":14,"pressure":0.0,"pressed":false,"script":null) - ] -} -move_right={ -"deadzone": 0.5, -"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"physical_scancode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":15,"pressure":0.0,"pressed":false,"script":null) - ] -} [layer_names] diff --git a/src/Actors/BlobbyCam.tscn b/src/Actors/BlobbyCam.tscn index 588cf42..0c0f818 100644 --- a/src/Actors/BlobbyCam.tscn +++ b/src/Actors/BlobbyCam.tscn @@ -971,10 +971,9 @@ texture = ExtResource( 8 ) [node name="AnimatedSprite" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"] frames = SubResource( 7 ) -frame = 6 playing = true [node name="AnimatedSprite2" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"] frames = SubResource( 8 ) -frame = 11 +frame = 5 playing = true diff --git a/src/Levels/1 Tut Level.tscn b/src/Levels/1 Tut Level.tscn index d4b41cf..edd6c5f 100644 --- a/src/Levels/1 Tut Level.tscn +++ b/src/Levels/1 Tut Level.tscn @@ -103,20 +103,14 @@ wait_time = 20.0 unique_name_in_owner = true drag_margin_bottom = 0.3 -[node name="Sprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer2" index="0"] -visible = true - -[node name="Sprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer3" index="0"] -visible = true - [node name="Emitter3" parent="BlobbyCam/ParallaxBackground/ParallaxLayer4" index="1"] visible = true [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 4 +frame = 13 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 11 +frame = 6 [node name="Blobby" parent="." instance=ExtResource( 9 )] unique_name_in_owner = true diff --git a/src/UserInterface/Screens/ControlsMenu/ControlsMenu.tscn b/src/UserInterface/Screens/ControlsMenu/ControlsMenu.tscn index a9d890f..e16a64b 100644 --- a/src/UserInterface/Screens/ControlsMenu/ControlsMenu.tscn +++ b/src/UserInterface/Screens/ControlsMenu/ControlsMenu.tscn @@ -6,7 +6,7 @@ [ext_resource path="res://src/UserInterface/Screens/ControlsMenu/InputMapper.gd" type="Script" id=4] [ext_resource path="res://assets/meta/ui_theme.tres" type="Theme" id=5] [ext_resource path="res://assets/meta/montserrat_extrabold.otf" type="DynamicFontData" id=6] -[ext_resource path="res://assets/environment/background/space.png" type="Texture" id=7] +[ext_resource path="res://assets/environment/background/starry-space.png" type="Texture" id=7] [ext_resource path="res://assets/environment/background/Spaceship-Wall.png" type="Texture" id=8] [ext_resource path="res://src/transparency.gdshader" type="Shader" id=9] [ext_resource path="res://assets/sounds/EpsonStart.ogg" type="AudioStream" id=10] @@ -57,6 +57,8 @@ script = ExtResource( 4 ) [node name="background" type="TextureRect" parent="."] anchor_right = 1.0 anchor_bottom = 1.0 +margin_top = 46.0 +margin_bottom = 46.0 texture = ExtResource( 7 ) expand = true stretch_mode = 1 diff --git a/src/UserInterface/Screens/ControlsMenu/InputLine.gd b/src/UserInterface/Screens/ControlsMenu/InputLine.gd index 7866061..387fadc 100644 --- a/src/UserInterface/Screens/ControlsMenu/InputLine.gd +++ b/src/UserInterface/Screens/ControlsMenu/InputLine.gd @@ -2,12 +2,29 @@ extends HBoxContainer signal change_button_pressed +export var button_size: Vector2 = Vector2(30,30) +export var interactable: bool = false + func initialize(action_name, event): $Action.text = action_name.capitalize() - $Key.texture = ControllerIcons.parse_event(event) + $Key.add_child(create_controller_button(event)) func update_key(event): - $Key.texture = ControllerIcons.parse_event(event) + $Key.remove_child($Key.get_child(0)) + $Key.add_child(create_controller_button(event)) + +func create_controller_button(event) -> ControllerButton: + var event_path = ControllerIcons._convert_event_to_path(event) + var controller_button: ControllerButton = ControllerButton.new() + controller_button.path = event_path + if(!interactable): + controller_button.focus_mode = FOCUS_NONE + controller_button.enabled_focus_mode = FOCUS_NONE + controller_button.mouse_filter = MOUSE_FILTER_IGNORE + controller_button.rect_size = button_size + controller_button.expand_icon = true + return controller_button + func _on_ChangeButton_pressed(): emit_signal('change_button_pressed') diff --git a/src/UserInterface/Screens/ControlsMenu/InputLine.tscn b/src/UserInterface/Screens/ControlsMenu/InputLine.tscn index 1e70003..88baa33 100644 --- a/src/UserInterface/Screens/ControlsMenu/InputLine.tscn +++ b/src/UserInterface/Screens/ControlsMenu/InputLine.tscn @@ -1,7 +1,6 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=2 format=2] [ext_resource path="res://src/UserInterface/Screens/ControlsMenu/InputLine.gd" type="Script" id=1] -[ext_resource path="res://addons/controller_icons/objects/TextureRect.gd" type="Script" id=2] [node name="InputLine" type="HBoxContainer"] anchor_top = 0.5 @@ -21,19 +20,11 @@ size_flags_vertical = 1 text = "Up" valign = 1 -[node name="Key" type="TextureRect" parent="."] +[node name="Key" type="Control" parent="."] margin_left = 305.0 margin_right = 335.0 margin_bottom = 30.0 -grow_horizontal = 0 -grow_vertical = 0 rect_min_size = Vector2( 30, 30 ) -size_flags_horizontal = 0 -size_flags_vertical = 0 -expand = true -stretch_mode = 1 -script = ExtResource( 2 ) -max_width = 30 [node name="ChangeButton" type="Button" parent="."] margin_left = 582.0 diff --git a/src/UserInterface/Screens/ControlsMenu/InputMapper.gd b/src/UserInterface/Screens/ControlsMenu/InputMapper.gd index c4ed0b4..cbcb2f3 100644 --- a/src/UserInterface/Screens/ControlsMenu/InputMapper.gd +++ b/src/UserInterface/Screens/ControlsMenu/InputMapper.gd @@ -41,6 +41,7 @@ func erase_action_events(action_name, event): func initialize_profiles() -> void: var actions: Array = InputMap.get_actions() + actions.sort() for action in actions: var input_events = InputMap.get_action_list(action) for event in input_events: diff --git a/src/UserInterface/Screens/ControlsMenu/SaveButton.gd b/src/UserInterface/Screens/ControlsMenu/SaveButton.gd index 1f50ea0..84bdd8a 100644 --- a/src/UserInterface/Screens/ControlsMenu/SaveButton.gd +++ b/src/UserInterface/Screens/ControlsMenu/SaveButton.gd @@ -1,6 +1,5 @@ extends Button -onready var signalManager := get_tree().root.get_child(3).get_node("%SignalManager") onready var mapper := $"%InputMapper" func _on_button_up() -> void: diff --git a/src/UserInterface/Screens/HUD.gd b/src/UserInterface/Screens/HUD.gd index 1123a68..06b2ea4 100644 --- a/src/UserInterface/Screens/HUD.gd +++ b/src/UserInterface/Screens/HUD.gd @@ -37,9 +37,11 @@ func _zoom_timer() -> void: func update_interface() -> void: - - var wallet = GlobalState.gsr.wallet + levelState.currency + var wallet = GlobalState.gsr.wallet + if levelState != null: + wallet += levelState.currency + kills.text = "Kills: %s" % levelState.kills + frees.text = "Freed: %s" % levelState.frees currency.text = "Orbs: %s" % wallet - kills.text = "Kills: %s" % levelState.kills - frees.text = "Freed: %s" % levelState.frees + diff --git a/src/UserInterface/Screens/HUD.tscn b/src/UserInterface/Screens/HUD.tscn index 00a627c..e503b0b 100644 --- a/src/UserInterface/Screens/HUD.tscn +++ b/src/UserInterface/Screens/HUD.tscn @@ -39,7 +39,7 @@ tracks/0/keys = { pause_mode = 2 anchor_right = 1.0 anchor_bottom = 1.0 -mouse_filter = 2 +mouse_filter = 1 theme = ExtResource( 1 ) script = ExtResource( 5 )