From e2fbe5f3bf832eb71ceb001449d2d5d78ec1d63b Mon Sep 17 00:00:00 2001 From: IMK Date: Sun, 3 Mar 2024 20:22:50 +0100 Subject: [PATCH] initial commit --- .gitattributes | 2 + .gitignore | 2 + Area2D.gd | 7 + HackerBasic.ttf | Bin 0 -> 8172 bytes HackerBasic.ttf.import | 38 +++ assets/chess_basic.ttf | Bin 0 -> 12416 bytes assets/chess_basic.ttf.import | 39 +++ assets/lines.png | Bin 0 -> 2271 bytes assets/lines.png.import | 34 ++ assets/meow.wav | Bin 0 -> 47686 bytes assets/meow.wav.import | 24 ++ assets/plr/face.png | Bin 0 -> 765 bytes assets/plr/face.png.import | 34 ++ assets/plr/head.png | Bin 0 -> 1834 bytes assets/plr/head.png.import | 34 ++ assets/plr/tail.png | Bin 0 -> 954 bytes assets/plr/tail.png.import | 34 ++ assets/plr/torso.png | Bin 0 -> 1227 bytes assets/plr/torso.png.import | 34 ++ assets/spritesheet01.png | Bin 0 -> 3865 bytes assets/spritesheet01.png.import | 34 ++ assets/textbox.png | Bin 0 -> 6156 bytes assets/textbox.png.import | 34 ++ icon.svg | 1 + icon.svg.import | 37 +++ lines.tscn | 184 +++++++++++ main.gd | 15 + main.tscn | 55 ++++ minibasic.ttf | Bin 0 -> 3072 bytes minibasic.ttf.import | 33 ++ plr.gd | 46 +++ plr.tscn | 567 ++++++++++++++++++++++++++++++++ project.godot | 67 ++++ typewrite.gd | 19 ++ 34 files changed, 1374 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 Area2D.gd create mode 100644 HackerBasic.ttf create mode 100644 HackerBasic.ttf.import create mode 100755 assets/chess_basic.ttf create mode 100644 assets/chess_basic.ttf.import create mode 100644 assets/lines.png create mode 100644 assets/lines.png.import create mode 100644 assets/meow.wav create mode 100644 assets/meow.wav.import create mode 100644 assets/plr/face.png create mode 100644 assets/plr/face.png.import create mode 100644 assets/plr/head.png create mode 100644 assets/plr/head.png.import create mode 100644 assets/plr/tail.png create mode 100644 assets/plr/tail.png.import create mode 100644 assets/plr/torso.png create mode 100644 assets/plr/torso.png.import create mode 100644 assets/spritesheet01.png create mode 100644 assets/spritesheet01.png.import create mode 100644 assets/textbox.png create mode 100644 assets/textbox.png.import create mode 100644 icon.svg create mode 100644 icon.svg.import create mode 100644 lines.tscn create mode 100644 main.gd create mode 100644 main.tscn create mode 100644 minibasic.ttf create mode 100644 minibasic.ttf.import create mode 100644 plr.gd create mode 100644 plr.tscn create mode 100644 project.godot create mode 100644 typewrite.gd diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4709183 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Godot 4+ specific ignores +.godot/ diff --git a/Area2D.gd b/Area2D.gd new file mode 100644 index 0000000..8715e3a --- /dev/null +++ b/Area2D.gd @@ -0,0 +1,7 @@ +extends Area2D + + + + +func _on_body_entered(body): + print("hai") diff --git a/HackerBasic.ttf b/HackerBasic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..046074a183c6e2113d762cac23ee1b630e06ae26 GIT binary patch literal 8172 zcmb7JTWlQF8UE+8H!rz3W@9ed#P%i_Vo26r7DH@@36~Hc7YHE)2oU2K5N0PtO|JOF3|B z6p7vBnAVYLSt}(SBBiHek*w1Z&s*+&COIIz>YvBR4{huHQyLytHzPAM zPe>$vaw?Enk-d=3V3=!R^Nb8=dq4USda*=&1R2{-rHS>ql45RzxfX^roFBR8?4z5E z&B4NarR6-}xaSe++vf6~I6Mtb+*1y{M?X8BJWpFb=iCL(jO-RC7OuS=8$&7o$o5nI z$uom-K6B5NAD<=nNoz7=e2x?RBDaRf%{OQxJPF*n!cLT}7~#|v5=tFy(RtUi@-sPw z7!m1{H`tr~>+E~8?>Z_BgHzsdW8cSxXZ8SY5a#lQVyUZq$)d$emUb`exwNvp_p-~c zxN=2x<*L5^f!gXdR}Ef$&Dx=BuUogiK0MO6zInswjW=x=8=u&CbF}G}TM_AZY`OEU zySHxJzT=*Iciy+_{@oAkdGMi!_dfFIWBVqv+`h8Ef4&)0$>8Hj=l^XruOPnc-$vOb z&&nD3qqofK^EP-py<^_<-YecI?``i7-WUF2f85{af5$)VU+}*O)&&m*PY2Hhr-C^6 zTbK{mg}Xu%o(Vq;|B>@^_1yN{qq&p0H*&wueU!VHzdFAqKa>Ay{=NK#{FjB*g{_6> z3U3xZEPPzd7grQVikpjjiZjKRi)V`O7ynfJPwBGKNa?oHQPs_{7Ys;IGNI}+}^<@3{xk4zP zjGWEqJ{mt4_~^>nfWtWspDX0OFUQZp1wI*RboX};Ho9vA-qKIcpZ8DyclUt*1U(~y zTIqvHY$2nYLy1gK|G5S(s^5>ki?vgfoXtPLnUx{ibzbw!xeb!2WUb0RR_fu z=rWO)dM%@V^++#dmwq7g44POhS}Zp`L3%OH;1eo)4@k}Hs)qpmMba%5)ksaQvDkx+ z$`EjYjAo1+hJ3Wc$$*Xmn7Gt3{tddy$aeHDy>J;gW8|0!b`l!Wvr=JL0$x&EFLBnc z=`1cS#nFyY#m}Lka1#L>WDvSx#{(4P`r$|z_sJJlT*t?S`(@Sh%(KVpW& zGT>#SiO0aA*=gY8!ygPdkq`7-A-b+M#k0DAEck25&~<0*KUZO-Cb@*XU=6gvBDJ}4$D%c|hCG#YRIO`3qpD!1<1mq317rl&BFH%5 ztHW2r_L*RpmAPBJw+8z|-d?ObOyiE4hpGnYXTJ4}1j;0x*xAGlIBd0P&iQe#)u#i4 zOw`VxE{G_OlHJTfn>oGqFuEGeAs-S#pfRuNGinDL6CQF!CL@>(y~A~Wtoo&Os)=ni zfUvR&e=I;CRmMC^-Hwq3ggE(BCTnTNJv3*%MG^aJkWckR$FWNHa(A%?A{8{ZyJ&UEl?e`HMq%1wAkJz5OLuFh zE=$Zyqe!zu$Vk1=WH<)7tA0oM$%>|ZEEn>L=15plT}Ww%yb2d;=1@4Y3|+U#aE1nj zyYnE2mJXN?dO9MN(XZ==7a(hKf8jS9u>!T}paa^d-E<9_R}oXNIh24cUI=52F=181 zxPz>9>(&uLhlpRS1G8ICBj*!tU%;J^W&%zNT&S4Lbac7aRvisA&XMU^y!urn-SahT zRgaqsNQa`qWIW#y>tNPKNwli~rjv%eeO@#ky6I*8sJz_5@UI$D0@}4o5986c6V#FP zl48-n7HQo>k;7Ji3T*+!AXrHL2pCou)Gu?DdcI9mFb%is&hDd{s|iLY&r~NJNiXzz zr;o(m*7sm*L_G~Z<{=YxYzb5P)IPc=k0gLaFQ=YzFa|Rh)WiiMj$Am>9i6g(5@$m& zgKFinx~IMZ<~3(?jl_287B;zJa*Z}#h{e4NclPjYo2iNGs)j4p2DFsR@eDFb>B+1jV+XfX_mrL!a&W&%UW~UkojFqAE}u7C7*rxGlRd8?lZ+ zB)3lio&2Dtp13Hk88k%LZh&9R`f z6af#ydqxZz-PiR%W$6o{-O#!m3cjLo2MNRagp=Kq<91{k6t>?Ll4Pcd5angA1<8@Z;UJCU zgRKoR6yIJtd2qU|Cpupx8>Sv?itW)@AZX^G(?PR1bbo529a&E^^L-(m&Av_8a{+<*^io=*6*M{ z)qxA{1?o5WsXo*OWqo_&7YVL0gAs%6yrrA+CVLoWE?U0z=Ik_urt(#v0@~IMOAfnu zNWONZ>rOh#S8Fph?kYy6HX{I0?ww%qTLGxGcG6aedm44-z1{Ug z%sJuuIq8#ET|bZU^KwuQ$x|W+58<*!CS?kD({fC1LH{_OPGNX*>Z$2tw@e;Ch?{MA zx*y{wKquR#_a8ig)`DzU2ms(4+CaVzqunY7MK~gdA$A>q!}vLrZ5{Wrd-~Y%gGUbc z)$7CS>h(HCz7A}Xzxd6#0X@z=rZMEf(gCcIgRTp(U`e`QflJ`ui(##$$ll8kBbTCT zEk_=|3~v%wpth{QJIYGzAp7v8V*uX{SIZi?3Sa21##jEeG9=f^by&c9UC0QyUoTC$ zK}O|9xk)z2n2gH=yy9l~@FwX0R=Eu}+$?usU3bb|ayNbl+$P&)hukCg%1*ftzhd1l zyX67dBM-_$_$7OsJzstyFBMK4K3K1B;%|nY{!Zw*~9r6s=5Qq&JFeD*{jlISO8?Ug5 zXoaHJszFf`HBl=iX<9`IjZli(Dp;vxRUvwRRB5H6s7k3+MM!ChqDBfy|4Ca_B20h3 zbMJfeX7P5B)&IJB#{>Qx}$2{(9xWVW-u}1$`6uXm2j5%IqM`Uz{{mnEr|dX; z;qnXr@`e9;8TA<7Z=Jt*YN___rn@kI3;KU}Vd;exxgwuO-#w^LJ-c*aIXt~IC9;R~ zd}HO}rOS8!-%U-CeW1tNMoRcS@!79G`o!qsf6KN24I=+Oef+-U*^b-dM?R}%F?`^I zIli<-9uK4)qZ}zD?Q%cowdK5=6bq6wJ#7nRua5D&fAW4Q1rhV7<_)xb-afsbNz<#K zRf>vK$JQ~E5XM-WyL|bKgfi9siKW3;u=WQ?J}KKd%6kOg5QVrMdto~^5n;AtA8iJ0 zNxSx;o&6r3Y$qxcVqS!D$a(mp?6EJYvkhg1BbHd}2P!p`AyyYME`qv9{jf$MGLoyrjcV#)ceASm=vv zzs?g2%Xd$OD-O3vXz`N{wn=2=iS`Kg0a)Zq;c*VyXcokQ2ifI!D-^)bpQFaoRt$>t zIfj-Yxmi9YpOUZ3H{=!hOZgl5U-RRsznYcyPvBD`Q?RR#%h$B`o87(bAGhCb{|7Aj zyY1K8-)UcMul(xMKYIP2pO%*#MoiEDctud_x;!<5o^j~(gF>-Xt_%zg4Ude<*!aZc zrs{Q@x4iHA_iwG;ux)C3dws{w8)t6XwYzcip1u2K_s=zNnZNbG2W~sKu-KB@KNudm z<4(ktyYKnXz4v|i=&}1Bc<}f`4?l9^(Z@dW(T_d;@sm&VAnac~vn+BtuX`zJd@?EE z`4r3NG7W1LHHOJ<_jgRr$`|ELZ>x9Kd(nHv`+@ha*&S4-b3y;I&@K34wY@|%?{ zm1C8!RDL+HX<%{S^1#)>^5F5o&kTNV@SUNFp@T!mht3RrZRp>I2Zrw${?za*!#^F_ zGO{>we&nkoe>d_!qc@D+JNo;h-x+;t?7Fer$DSVh^4Oc>1LJp$KR5oB@vGx+PXNTk z-ifmlpPTsR#5_1JDHXkU7q7r1em>V6pB|rSj@P$)W50Og4fE=+PHZ=408?!{GO<)-n@F?a zwY&wd+N{o?RAQ-C40}FtPdx-}9{mpCFP3qU$%fxD&1!RA=X;&;Mv|%2BTY6mA?EB7 z+1UtMrj8jcPk#;PS^%bAVpPDtW~s<5Duy< zNub2kt7aW!y|m@l#ix!9b$pu~lDkP$88iWV6Auc)cdXa^rj-(CB{|LNPEba9OoD}) zXL1pwjqkA(rPaKG_Ilc5Z3ZzomOWW{_H$ zw8nOV`|YlEb%mkYM;4}PrBxzis|f(Cm7%q2_sq4SDy?4V#o(!qN~1_<^VX@TYbDr; zwy!-~@g#Tw#`#Go)ASR_iH5Y`47z6NZ5Vh+GG~n^?UTMCu|zVe@>HWt%rBW5B?TRi zSrPt_@pK|YG62$48tHG~dnScxXzQ>q%60(`rfv)~LZOHE6j=vmQUYv^QAQN@0=~q!A}jbDmLm8+oGNcp>mYm(!4YiLoJZm|De??kTx7 zD;qGucz{?m4V!?=>0iqSK&UeHKp&DJ9~u?bh(WoS(ng?En-SFq^5|*AR&N0@+1ZVU z`0OnNiPIa6H96u+A@(ge-Gs=aW@Mk0lGiAt9MVS-;c5j9Z47>7FPF2n^uc1qOrBI9 z5%kf`6MQyUD1e)W@0_7ogJd_Po?e`k9WyBW0M8zoCr_}qRw=c%hM|URc+~X*b_YHg zCHu-S>cx}RwI{1D#5npGBC%a7R9D~*mf`;WIGw#-fkp@5vHH#)D>rh3*snh>^3x;L z2xg$5B-rOLqr~Ro)E+w{Bfovt;tRAsiioHKn1nSwxRbV0aQz|2x%k*agAOYX_)fw?4O9=*RS-XX<-kd?ANP;>eufX-q+glQj=`{aJ? zr=-v*a!r7F>8b!;ii~db8jS^wQdNx(8K34eW(I4-PFf^<8Kc+BY&z6wn2N$2=je<{ zOUWp35wX$gQVeO|FCVn=(#O(`Z)*T_Fp4#?vRGk(My!@bFthvfUff;pQ|lO+%>gwZ z-i0X8BIbf(OxDj%2%wtgfp;<~BwS>$tcO3cW0RRKzUdmcpSS~P3Q2eYD8MztfkxGO zEkH)@BOa`Wz{1b|I{Q=EHf-iyYz?M%P=KMi1fftzu!dxd&5nRFkk&&TWyWez@NsJs z^r|Zc`9p@9a)xyY%b+spiiv1?fvr>T#^twxL$PV^Ije%&7w)R*j< zr#1=F=c%Gv5qSi51c*Se94@m)dVu}9RVzc)U*Z`~QS^>M2F@B7ga`Xt9{7zhCwdd| zU9%BuaKY3D*Ji=#fTu{9hj_o4L5;h~Rz)eRFv*G529oq9G^lTAcB}gvY`_wp84U18 z$N=m95Z4$g@Rw`D3H0@z8M_4^j0slGWi_M?+GuK%y6452EOX@|3FR&qp`@7bq6AY= zDMz&d6R$_)HS{|hO6{0ieY-G#j6y<2M|jOv(b>{9AX#%Lgu(S1*&}RYPd{(MsS4$z z`xS;G>sg+WT-b4LYql}UR#;XNG+!niGmJ{iD!Ila5g)!w4I$9OaB=j4;M)sjt$Nlt zl;<{9e&A}#QLM+5dSi7IA>Uk*J?6GJ>%m^l^4{!w)bU=FQqd`;O`XE(biZ2$Zq=hj z;9pnVL7RvouGmC`*+P}pNnzxlH}&16bO=F~726sJ=&TF3>AI(99AF$F4NC+MfUx+{ z*@4k!oy}VCYwleVq>5AH3HB27#WLe4B?7LEvzj4U1i6E#^poG1I2?#XKMJu zbZ}_GXkkxFexqpQ7_juyhuu1$8pCE;RR_G-uyVVCg+TKMi@(YR9t#qG`)|a$SX-k) z+fh37R_Q@2N7L|Y+(R2^uFhZ8n5Bh2gs{d42gylFlIo+xB(dCfW zz^7Yw%}^4lti-ZxUfEeoRAP1+F|vj4vdZFF&9!3( zE_HD7ulX!?MHaLg1#){HdcfqtB!q%LwG0h^=GxI^MPO|sdnW0(h7~Xl0VBK?piM}$OI==Sbcb!uX!5JCDbCEQP4su6hyjSP}z`f z0V{2h7lUK$tg*|2NV&6G<>nE`V-)b4P-5tWXS!;8*1mK=XgCZXw?=ZTJ7d9GK?hp! z8C{$Sr%P2KIfhoyU6q+Pz-02yRAU0{ z`-zes7yDzwJOFW6Ib+CAgFa7&X_mZ&Kz>ISXKPJ_i37sd5#gx_#=$sPZK`Cwg;4zO=1b7Pg(4eH*sn%4ARWJs-fHzjb z1`d>J{u(MG`o4Ckgmh$(@I+tH^Gw7_fbS%!&MFZc3HDk)uO$v&2Rq$Hkb^xzhT|b%IoE_)r5hi5 z3jfy7Kreb*ce3u@=W#zdkUu_Yb@P1M$(=R_NOY7uao&V5MPt{zx>oqDtn``K;c~bD zwh=%qC3i-2EmmReokkBnw(+*rp1{z;?NKaJPMl$LW1o}v#)&vG&&Zbb{M5qL_%jL5 zw5JjD8jYq6oJLG$BTxoPSFyjPbR3`;A6GcPE3)#We8A>8F5=~^87|^&2xH=>A!O&y z2uhl?<05%}-8~aTpV+s?8bQp5xoD(hytgM|JoLgwNE2(&ZubNmu=4yN9h|(EsZ-kk zt(lm5lR6a5NqtGWl#pLZc!Kwv;ih!`xqD zIm8(NlphhCyKk$AC5ejd+l)+`0`(-AT$&}=oAlwPH#M(mBm=HfbkdDFEuB)#BG3V6qMLC>DQE|W zakV1w=`-Rue0nuyY;*cc+D)jrVTErWAu225W~UQ?ZY~u{*HoJyVQr6*cN|u0Mm`RO zz}5(Ww=tUF=oJ#QPkTx%i9P7uADf#gBQE_fC4jGgY}jM3HI3DMq| zm&lkZ0s+S(eLqee%LHPcP$n3NJ)1%O(7MLYDA*4lQ!(?DC~cpIEwd4&|fh zK8@z*F@=_^I=#72eY8o#dQL>o>L+&%Cn$<7JvKkZY-a(sLP4v=PsSQ z`0Ui|?Eby8v$JSf7basEKDf_E1k3s04S7hO2cv-$psNzz6|X=CgOKqsG&%~MP2ik^ z(!WkN%ND#5aJ{@AZ}`^a2IS3Ch}qi_sdiu=bR*8xZ-T$>hW2lU*X~6OAqR87eGBr9 zTXDkh0laT_P!?nn=To;!h<)ZA@b0@1YmVSv;2!yq+zWkv7;-;`TkHqqK{+lD$;0x9 zoRCN5G5Lsm6z>v0j{EJC@`OAoOP-Oxkk{p>@<;Mn`9rzt`Ci}^ykhD3XV1;f9-7tX z+~H<$`1$89veJa)_&jptFj63JukRpxD2?E|g>r^G_{RG)_y$^2Uqy`{{r!jczV#zk O{_%yzAwK!u{r>~QwR^k( literal 0 HcmV?d00001 diff --git a/assets/chess_basic.ttf.import b/assets/chess_basic.ttf.import new file mode 100644 index 0000000..78dc194 --- /dev/null +++ b/assets/chess_basic.ttf.import @@ -0,0 +1,39 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://dg1vp00r67f0f" +path="res://.godot/imported/chess_basic.ttf-3813103f7652f90732418ac2db8f4907.fontdata" + +[deps] + +source_file="res://assets/chess_basic.ttf" +dest_files=["res://.godot/imported/chess_basic.ttf-3813103f7652f90732418ac2db8f4907.fontdata"] + +[params] + +Rendering=null +antialiasing=2 +generate_mipmaps=false +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=2 +subpixel_positioning=1 +oversampling=0.8 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[{ +"chars": [], +"glyphs": [], +"name": "New Configuration", +"size": Vector2i(16, 0), +"variation_embolden": 0.0 +}] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/lines.png b/assets/lines.png new file mode 100644 index 0000000000000000000000000000000000000000..63a626f0d2685b4336482f5509976b6ccedd8089 GIT binary patch literal 2271 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 literal 0 HcmV?d00001 diff --git a/assets/meow.wav.import b/assets/meow.wav.import new file mode 100644 index 0000000..f6a0bae --- /dev/null +++ b/assets/meow.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://wc2udhbh21la" +path="res://.godot/imported/meow.wav-ab4f6e9438cd14a91feb98baed1a18bb.sample" + +[deps] + +source_file="res://assets/meow.wav" +dest_files=["res://.godot/imported/meow.wav-ab4f6e9438cd14a91feb98baed1a18bb.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/plr/face.png b/assets/plr/face.png new file mode 100644 index 0000000000000000000000000000000000000000..f4d24e06ebc7dc81638b56549e1178eb0e1c288b GIT binary patch literal 765 zcmVEX>4Tx04R}tkv&MmKp2MKrb>%c9PA+KkfA!+MMcC(t5Adrp;l+e)kfC0sZh(VB zV6;ft>pt%eclPbynpXdQ0F=OTv?Huo+5i9m24YJ`L;(K){{a7>y{D4^000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2j~L>3IZ_=sR17V000?uMObu0Z*6U5Zgc=ca%Ew3 zWn>_CX>@2HM@dakSAh-}0002gNklSU=)L3(_|6EU=U3PqfwJZ z#0|IsgCN+=2D>0`K-_}p4sJ1dgTeOw?dJ(Ey%Xomz+j$disP8twk7;x97oFYoa(xM zM00000NkvXXu0mjfe-TQ{ literal 0 HcmV?d00001 diff --git a/assets/plr/face.png.import b/assets/plr/face.png.import new file mode 100644 index 0000000..2365f53 --- /dev/null +++ b/assets/plr/face.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cw5k2tw74rt44" +path="res://.godot/imported/face.png-74e3633d4c4b722859cdc1fa4b46e775.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/plr/face.png" +dest_files=["res://.godot/imported/face.png-74e3633d4c4b722859cdc1fa4b46e775.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/plr/head.png b/assets/plr/head.png new file mode 100644 index 0000000000000000000000000000000000000000..4ff535a61e0bdae3444b4afe29c1db8cd9e2bf20 GIT binary patch literal 1834 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%0DQmJKo?W^|-nHm1IqW^YAUZu4-nR^wkk(n6 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 W@af;70FHboOktp7qTK*8wt literal 0 HcmV?d00001 diff --git a/assets/textbox.png.import b/assets/textbox.png.import new file mode 100644 index 0000000..5fd9ed7 --- /dev/null +++ b/assets/textbox.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b2wwc74rumj6b" +path="res://.godot/imported/textbox.png-d6c24738881ee746f8b556a776544dcb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/textbox.png" +dest_files=["res://.godot/imported/textbox.png-d6c24738881ee746f8b556a776544dcb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..b370ceb --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..d8bea08 --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://xy63upno21jg" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/lines.tscn b/lines.tscn new file mode 100644 index 0000000..228af9c --- /dev/null +++ b/lines.tscn @@ -0,0 +1,184 @@ +[gd_scene load_steps=4 format=3 uid="uid://cab0u1jewvqun"] + +[ext_resource type="Texture2D" uid="uid://tyvdq4i2kfx7" path="res://assets/lines.png" id="1_pcy5j"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_5rlqc"] +texture = ExtResource("1_pcy5j") +texture_region_size = Vector2i(10, 10) +0:7/0 = 0 +0:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:7/0/physics_layer_0/angular_velocity = 0.0 +1:7/0 = 0 +1:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:7/0/physics_layer_0/angular_velocity = 0.0 +2:7/0 = 0 +2:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:7/0/physics_layer_0/angular_velocity = 0.0 +3:7/0 = 0 +3:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:7/0/physics_layer_0/angular_velocity = 0.0 +4:7/0 = 0 +4:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:7/0/physics_layer_0/angular_velocity = 0.0 +5:7/0 = 0 +5:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:7/0/physics_layer_0/angular_velocity = 0.0 +5:6/0 = 0 +5:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:6/0/physics_layer_0/angular_velocity = 0.0 +4:6/0 = 0 +4:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:6/0/physics_layer_0/angular_velocity = 0.0 +3:6/0 = 0 +3:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:6/0/physics_layer_0/angular_velocity = 0.0 +2:6/0 = 0 +2:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:6/0/physics_layer_0/angular_velocity = 0.0 +1:6/0 = 0 +1:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:6/0/physics_layer_0/angular_velocity = 0.0 +0:6/0 = 0 +0:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:6/0/physics_layer_0/angular_velocity = 0.0 +1:5/0 = 0 +1:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:5/0/physics_layer_0/angular_velocity = 0.0 +1:4/0 = 0 +1:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:4/0/physics_layer_0/angular_velocity = 0.0 +1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-5, -4, 5, -4, 5, -2.125, -5, -2.125) +1:3/0 = 0 +1:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:3/0/physics_layer_0/angular_velocity = 0.0 +1:2/0 = 0 +1:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:2/0/physics_layer_0/angular_velocity = 0.0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-5, -4, 5, -4, 5, -2.125, -5, -2.125) +0:2/0 = 0 +0:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:2/0/physics_layer_0/angular_velocity = 0.0 +0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-5, -4, 5, -4, 5, -2.125, -5, -2.125) +0:1/0 = 0 +0:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:1/0/physics_layer_0/angular_velocity = 0.0 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-5, -4, 5, -4, 5, -2.125, -5, -2.125) +0:3/0 = 0 +0:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:3/0/physics_layer_0/angular_velocity = 0.0 +0:4/0 = 0 +0:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:4/0/physics_layer_0/angular_velocity = 0.0 +0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-5, -4, 5, -4, 5, -2.125, -5, -2.125) +0:5/0 = 0 +0:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:5/0/physics_layer_0/angular_velocity = 0.0 +1:0/0 = 0 +1:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:0/0/physics_layer_0/angular_velocity = 0.0 +1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-5, -4, 5, -4, 5, -2.125, -5, -2.125) +1:1/0 = 0 +1:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:1/0/physics_layer_0/angular_velocity = 0.0 +2:5/0 = 0 +2:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:5/0/physics_layer_0/angular_velocity = 0.0 +2:4/0 = 0 +2:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:4/0/physics_layer_0/angular_velocity = 0.0 +2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-5, -4, 5, -4, 5, -2.125, -5, -2.125) +2:3/0 = 0 +2:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:3/0/physics_layer_0/angular_velocity = 0.0 +2:2/0 = 0 +2:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:2/0/physics_layer_0/angular_velocity = 0.0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-5, -4, 5, -4, 5, -2.125, -5, -2.125) +2:1/0 = 0 +2:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:1/0/physics_layer_0/angular_velocity = 0.0 +2:0/0 = 0 +2:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:0/0/physics_layer_0/angular_velocity = 0.0 +2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-5, -4, 5, -4, 5, -2.125, -5, -2.125) +3:1/0 = 0 +3:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:1/0/physics_layer_0/angular_velocity = 0.0 +4:1/0 = 0 +4:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:1/0/physics_layer_0/angular_velocity = 0.0 +4:0/0 = 0 +4:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:0/0/physics_layer_0/angular_velocity = 0.0 +4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-5, -4, 5, -4, 5, -2.125, -5, -2.125) +3:0/0 = 0 +3:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:0/0/physics_layer_0/angular_velocity = 0.0 +3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-5, -4, 5, -4, 5, -2.125, -5, -2.125) +5:0/0 = 0 +5:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:0/0/physics_layer_0/angular_velocity = 0.0 +5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-5, -4, 5, -4, 5, -2.125, -5, -2.125) +5:1/0 = 0 +5:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:1/0/physics_layer_0/angular_velocity = 0.0 +4:2/0 = 0 +4:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:2/0/physics_layer_0/angular_velocity = 0.0 +4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-5, -4, 5, -4, 5, -2.125, -5, -2.125) +4:3/0 = 0 +4:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:3/0/physics_layer_0/angular_velocity = 0.0 +4:4/0 = 0 +4:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:4/0/physics_layer_0/angular_velocity = 0.0 +4:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-5, -4, 5, -4, 5, -2.125, -5, -2.125) +4:5/0 = 0 +4:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:5/0/physics_layer_0/angular_velocity = 0.0 +5:5/0 = 0 +5:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:5/0/physics_layer_0/angular_velocity = 0.0 +5:4/0 = 0 +5:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:4/0/physics_layer_0/angular_velocity = 0.0 +5:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-5, -4, 5, -4, 5, -2.125, -5, -2.125) +5:3/0 = 0 +5:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:3/0/physics_layer_0/angular_velocity = 0.0 +5:2/0 = 0 +5:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:2/0/physics_layer_0/angular_velocity = 0.0 +5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-5, -4, 5, -4, 5, -2.125, -5, -2.125) +3:3/0 = 0 +3:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:3/0/physics_layer_0/angular_velocity = 0.0 +3:4/0 = 0 +3:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:4/0/physics_layer_0/angular_velocity = 0.0 +3:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-5, -4, 5, -4, 5, -2.125, -5, -2.125) +3:5/0 = 0 +3:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:5/0/physics_layer_0/angular_velocity = 0.0 +3:2/0 = 0 +3:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:2/0/physics_layer_0/angular_velocity = 0.0 +3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-5, -4, 5, -4, 5, -2.125, -5, -2.125) + +[sub_resource type="TileSet" id="TileSet_uqloi"] +tile_size = Vector2i(10, 10) +physics_layer_0/collision_layer = 1 +terrain_set_0/mode = 0 +terrain_set_0/terrain_0/name = "line" +terrain_set_0/terrain_0/color = Color(0, 0, 0, 1) +sources/0 = SubResource("TileSetAtlasSource_5rlqc") + +[node name="TileMap" type="TileMap"] +tile_set = SubResource("TileSet_uqloi") +format = 2 +layer_0/name = "lines" +layer_1/name = "decoration" +layer_1/tile_data = PackedInt32Array() diff --git a/main.gd b/main.gd new file mode 100644 index 0000000..97d3696 --- /dev/null +++ b/main.gd @@ -0,0 +1,15 @@ +extends Node2D + +@onready var dial = $CharacterBody2D/CanvasLayer +# Called when the node enters the scene tree for the first time. +func _ready(): + await get_tree().create_timer(3).timeout + dial.typewrite("Oh what a wonderful day today!", load("res://assets/meow.wav"),2, false) + await dial.Done + dial.typewrite("I should do my chores!", load("res://assets/meow.wav"),2, true) + await dial.Done + $CharacterBody2D.moving = true + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + pass diff --git a/main.tscn b/main.tscn new file mode 100644 index 0000000..7938420 --- /dev/null +++ b/main.tscn @@ -0,0 +1,55 @@ +[gd_scene load_steps=9 format=3 uid="uid://bsndq7rws8lru"] + +[ext_resource type="Script" path="res://main.gd" id="1_lgqqv"] +[ext_resource type="PackedScene" uid="uid://ceqnn4bkdnnkg" path="res://plr.tscn" id="1_wgp3w"] +[ext_resource type="PackedScene" uid="uid://cab0u1jewvqun" path="res://lines.tscn" id="2_s78l6"] +[ext_resource type="Texture2D" uid="uid://qbyvdl153l58" path="res://assets/spritesheet01.png" id="3_umasy"] +[ext_resource type="Script" path="res://Area2D.gd" id="5_vkino"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mfrv4"] +atlas = ExtResource("3_umasy") +region = Rect2(64, 4, 33, 47) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5slll"] +atlas = ExtResource("3_umasy") +region = Rect2(7, 2, 34, 31) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_dl0fy"] +size = Vector2(39, 20) + +[node name="Node2D" type="Node2D"] +script = ExtResource("1_lgqqv") + +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(327, 192) +texture = SubResource("AtlasTexture_mfrv4") + +[node name="Sprite2D2" type="Sprite2D" parent="."] +position = Vector2(206, 179) +texture = SubResource("AtlasTexture_5slll") + +[node name="Sprite2D3" type="Sprite2D" parent="."] +position = Vector2(274, 178) +texture = SubResource("AtlasTexture_5slll") +flip_h = true + +[node name="TileMap" parent="." instance=ExtResource("2_s78l6")] +layer_0/name = "decoration" +layer_0/tile_data = PackedInt32Array(1376272, 131072, 4, 1376273, 65536, 0, 1376274, 327680, 4, 1376275, 65536, 2, 1376276, 327680, 4, 1376277, 327680, 4, 1376278, 196608, 2, 1376279, 0, 0, 1376280, 131072, 0, 1376281, 196608, 0, 1376282, 327680, 2, 1376283, 327680, 2, 1376284, 262144, 0, 1376285, 196608, 4, 1376286, 262144, 2, 1376287, 65536, 2, 1376288, 262144, 2, 1376289, 262144, 4, 1376290, 196608, 2, 1376291, 327680, 2) +layer_1/name = "lines" +layer_1/z_index = 1 +layer_1/tile_data = PackedInt32Array(2097173, 0, 0, 2097174, 65536, 0, 2097175, 131072, 0, 2097176, 0, 0, 2097177, 65536, 0, 2097178, 131072, 0, 2097179, 0, 0, 2097180, 65536, 0, 2097181, 131072, 0, 2097182, 0, 0, 2097183, 65536, 0, 2097184, 131072, 0, 2097185, 196608, 0, 2097186, 262144, 0, 2097187, 327680, 0, 1900580, 131072, 1610612738, 1966116, 65536, 1610612738, 2031652, 0, 1610612738, 1703972, 131072, 1610612738, 1769508, 65536, 1610612738, 1835044, 0, 1610612738, 1507364, 131072, 1610612738, 1572900, 65536, 1610612738, 1638436, 0, 1610612738, 1310756, 131072, 1610612738, 1376292, 65536, 1610612738, 1441828, 0, 1610612738, 1114148, 131072, 1610612738, 1179684, 65536, 1610612738, 1245220, 0, 1610612738, 2097171, 0, 0, 2097172, 65536, 0, 2097168, 0, 0, 2097169, 65536, 0, 2097170, 65536, 2, 2097188, 0, 6, 2097167, 0, 268435462, 1900559, 131072, 1342177284, 1966095, 196608, 1342177284, 2031631, 262144, 1342177284, 1835023, 327680, 1342177284, 1638415, 65536, 1342177282, 1703951, 131072, 1342177282, 1769487, 196608, 1342177282, 1441807, 65536, 1342177280, 1507343, 131072, 1342177280, 1572879, 196608, 1342177280, 1310735, 65536, 1342177282, 1376271, 131072, 1342177282, 1114127, 65536, 1342177282, 1179663, 131072, 1342177282, 1245199, 196608, 1342177282, 720913, 196608, 536870914, 720914, 0, 536870916, 720915, 131072, 536870916, 720916, 327680, 536870916, 720917, 0, 536870914, 720918, 131072, 536870912, 720919, 131072, 536870914, 720920, 0, 536870916, 720921, 327680, 536870914, 720922, 327680, 536870912, 720923, 262144, 536870916, 720924, 196608, 536870916, 720925, 327680, 536870912, 720926, 327680, 536870916, 720927, 262144, 536870912, 720928, 262144, 536870916, 720929, 327680, 536870914, 720930, 327680, 536870916, 720931, 327680, 536870912, 852004, 262144, 1073741828, 917540, 196608, 1073741826, 983076, 327680, 1073741826, 1048612, 65536, 1073741824, 786468, 262144, 1073741824, 1048591, 327680, 1879048194, 983055, 131072, 1879048194, 917519, 262144, 1879048194, 851983, 262144, 1879048196, 786447, 327680, 1879048192, 720912, 131072, 536870914, 720932, 0, 1610612742, 720911, 0, 1879048198) + +[node name="CharacterBody2D" parent="." instance=ExtResource("1_wgp3w")] +position = Vector2(266, 225) +moving = false + +[node name="Area2D" type="Area2D" parent="."] +position = Vector2(313, 196) +script = ExtResource("5_vkino") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +position = Vector2(13, 17) +shape = SubResource("RectangleShape2D_dl0fy") + +[connection signal="body_entered" from="Area2D" to="Area2D" method="_on_body_entered"] diff --git a/minibasic.ttf b/minibasic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..16c66a6d93a438cc370ed02c14bafbe9afaf6b42 GIT binary patch literal 3072 zcmb_eU1%It6#nj={Ykq`leA8wHQOfHw5g4@n~dAoB#Rr-Xpzu|#(=eGw`qPBnjf1V zQlT;r(uyxasi1Gs7qO_26hy>_MMZoF_01{)02-sF@QSkApHgD9fyzX?|S8r{*M7QL3(&( zGCyTAn@euTWEBMWoQXw|O*)Djr1-(Akp{}9h7BobNgUby+&3w3?JBM~73xcbxE z$Jh5(in#g`=^D_J0qPjeF%t*RjV1rkY)Qk}$y!AXEt<;ka@c1$N)4)8a;o3bj1I4R zyZRZ9+CVO1mXVW386(j(H#deHnz3Y|1ROJwm^?&OEr1boe}*e(R*w5WE);J&b4dqF z^aPhZSOHxupD`K%%U?|_wds7(&wcQN-z7m zJQ7ebE)Rv08p^5!9*Wz$LL?fC*KF9B*i^f@uD)T*)_d%2jrZQS{r;xvTFL6{|AEUF z=f8n@hp^ZG4d8jago}6|pWz3rsg0^tJ*I}$X>~z;q^_u&db8f6`}9%0pqKQQ`kG$T zYpfjSLUnOkEX1*ISz&+QN<4xaUCXiPw|y&?CW>WC*im7x#AE8uz7>}JMwipj($MZS zq*_(|udA#2(qF@^dQ7^Jlm4&?b=V3xnUtN%YR7gmPExmL9J`nkaLvHel8{jiWaFqc6-#BLR;vBBOx&<8$qGN~ zmA0tqumnk~7?w8_{Mg{KKfF;G8zswvJTJ#%v91z7dnRI<)pgu(=R)yYl(s#2mQ~_l z!rc;!D&~r1CkCS-$-c5ywO$WdTRJPsc^Lw^9OI^smaOXFc!(RjmtiF>mb@AS^C)@= zG*UCe@|yazh%!S=Dx+JfW`OZUOn*e*n={(*rps7i7&K;gvo^iVQmVtJOC$uLJY~LR zyjdO7XpTlm*bsgnyto@oQSk0?mpDnARGxQw1S2DlUyaO0-c@EJ-oiYX4yRN+%L|v3j*5TQwP?CYd)0vH`ZgsG z&*oNd!W>)dawbg0WIm*IG{_nAtQEr+#a6lA{(a`nmx;w2GOBvo!Il#}nw1A*_;+(9 zUveLcxB-j*zaFl5A2jiC@p&4oZI{DEidzv(cM^Dcd zrl*?I>CS!Wbef#I8(jZtDY*uJ@Y|x~Tmy zGB|*4cI+T}(2G7CQ93?9RY<4%(_+PZRe9Z%?r$ScK5Dh`AYME$`)c-`uZ8?-v7=vh H`R@H2U39p7 literal 0 HcmV?d00001 diff --git a/minibasic.ttf.import b/minibasic.ttf.import new file mode 100644 index 0000000..59fc6f1 --- /dev/null +++ b/minibasic.ttf.import @@ -0,0 +1,33 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://dr5efgewcuwmr" +path="res://.godot/imported/minibasic.ttf-153d0ea39bbb8ff049ab21eef9078644.fontdata" + +[deps] + +source_file="res://minibasic.ttf" +dest_files=["res://.godot/imported/minibasic.ttf-153d0ea39bbb8ff049ab21eef9078644.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/plr.gd b/plr.gd new file mode 100644 index 0000000..d7716e6 --- /dev/null +++ b/plr.gd @@ -0,0 +1,46 @@ +extends CharacterBody2D + +signal interact +signal interact2 +const SPEED = 300.0 + +@export var moving = true + +# Get the gravity from the project settings to be synced with RigidBody nodes. + +func handle_layer(direction): + if round(direction.y) == -1: + $character/body/tail.z_index = 1 + $character/body/face.visible = false + elif round(direction.y) == 1: + $character/body/tail.z_index = 0 + $character/body/face.visible = true + + +func _physics_process(_delta): + if Input.is_action_just_pressed("interact"): + interact.emit() + if Input.is_action_just_pressed("interact 2"): + interact2.emit() + if not moving: return + + # Get the input direction and handle the movement/deceleration. + # As good practice, you should replace UI actions with custom gawameplay actions. + var direction = Input.get_vector("left","right","up","down") + if direction == Vector2(0,0): + $AnimationPlayer.current_animation = "idle" + else: + handle_layer(direction) + + print(direction.x) + if not direction.x == 0: + + $character.scale.x = round(direction.x) + $AnimationPlayer.current_animation = "walk" + else: + $AnimationPlayer.current_animation = "vmove" + + velocity = direction * SPEED + + + move_and_slide() diff --git a/plr.tscn b/plr.tscn new file mode 100644 index 0000000..43f4ec0 --- /dev/null +++ b/plr.tscn @@ -0,0 +1,567 @@ +[gd_scene load_steps=17 format=3 uid="uid://ceqnn4bkdnnkg"] + +[ext_resource type="Script" path="res://plr.gd" id="1_37nf0"] +[ext_resource type="Texture2D" uid="uid://cw5k2tw74rt44" path="res://assets/plr/face.png" id="1_kh4l2"] +[ext_resource type="Texture2D" uid="uid://vc4ntnaq4xo8" path="res://assets/plr/tail.png" id="2_26rkd"] +[ext_resource type="Texture2D" uid="uid://bhoi16v2lge5s" path="res://assets/plr/head.png" id="2_ylo5j"] +[ext_resource type="Texture2D" uid="uid://e61exatotusn" path="res://assets/plr/torso.png" id="3_llt4k"] +[ext_resource type="Texture2D" uid="uid://b2wwc74rumj6b" path="res://assets/textbox.png" id="5_ljw5m"] +[ext_resource type="Script" path="res://typewrite.gd" id="6_bjl34"] +[ext_resource type="FontFile" uid="uid://dit6605nx68qb" path="res://HackerBasic.ttf" id="6_m1vy8"] +[ext_resource type="AudioStream" uid="uid://wc2udhbh21la" path="res://assets/meow.wav" id="9_kn63i"] + +[sub_resource type="Animation" id="Animation_kxab8"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("character/body/face:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(18, 17)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("character/body/face:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("character/body/head:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(16, 24)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("character/body/head:rotation") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("character/body/torso:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(16, 24)] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("character/body/torso:rotation") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("character/body/torso:skew") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("character/body/tail:position") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(15, 35)] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("character/body/tail:rotation") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} + +[sub_resource type="Animation" id="Animation_qoxyi"] +resource_name = "idle" +length = 2.1 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("character/body/face:position") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.3, 1, 1.2, 2), +"transitions": PackedFloat32Array(1.68179, 1.68179, 1.68179, 1.68179, 1.68179), +"update": 0, +"values": [Vector2(18, 17), Vector2(18, 17), Vector2(18, 19), Vector2(18, 19), Vector2(18, 17)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("character/body/face:rotation") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.3, 1, 1.2, 2), +"transitions": PackedFloat32Array(1.68179, 1.68179, 1.68179, 1.68179, 1.68179), +"update": 0, +"values": [0.0, 0.0, 0.0, 0.0, 0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("character/body/head:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 1, 2), +"transitions": PackedFloat32Array(1.46409, 1.46409, 1.46409), +"update": 0, +"values": [Vector2(16, 24), Vector2(16, 26), Vector2(16, 24)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("character/body/head:rotation") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 1, 2), +"transitions": PackedFloat32Array(1.46409, 1.46409, 1.46409), +"update": 0, +"values": [0.0, 0.0, 0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("character/body/torso:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(), +"transitions": PackedFloat32Array(), +"update": 0, +"values": [] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("character/body/torso:rotation") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.0] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("character/body/tail:position") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(), +"transitions": PackedFloat32Array(), +"update": 0, +"values": [] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("character/body/tail:rotation") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(), +"transitions": PackedFloat32Array(), +"update": 0, +"values": [] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("character/body/tail:position") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(15, 35), Vector2(15, 35)] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("character/body/tail:rotation") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.176244] +} + +[sub_resource type="Animation" id="Animation_hwcro"] +resource_name = "vmove" +length = 2.0 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("character/body/torso:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(), +"transitions": PackedFloat32Array(), +"update": 0, +"values": [] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("character/body/torso:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("character/body/head:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(16, 24), Vector2(16, 26)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("character/body/head:rotation") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("character/body/face:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(16, 17), Vector2(16, 21)] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("character/body/face:rotation") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.0] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("character/body/torso:skew") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0.0001, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0593412, 0.010472] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("character/body/tail:position") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(15, 35), Vector2(15, 35)] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("character/body/tail:rotation") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.176244] +} + +[sub_resource type="Animation" id="Animation_hhtsg"] +resource_name = "walk" +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("character/body/face:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(21, 17), Vector2(21, 19)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("character/body/face:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("character/body/head:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(19, 24), Vector2(19, 25)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("character/body/head:rotation") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("character/body/torso:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(16, 24), Vector2(17, 24)] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("character/body/torso:rotation") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.052949, 0.052949] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("character/body/tail:position") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(15, 35), Vector2(15, 35)] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("character/body/tail:rotation") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.176244] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_8tlfi"] +_data = { +"RESET": SubResource("Animation_kxab8"), +"idle": SubResource("Animation_qoxyi"), +"vmove": SubResource("Animation_hwcro"), +"walk": SubResource("Animation_hhtsg") +} + +[sub_resource type="Theme" id="Theme_lpkn8"] +RichTextLabel/colors/default_color = Color(0, 0, 0, 1) +RichTextLabel/colors/font_outline_color = Color(0.478431, 0.478431, 0.478431, 1) +RichTextLabel/constants/line_separation = -9 +RichTextLabel/font_sizes/normal_font_size = 34 +RichTextLabel/fonts/normal_font = ExtResource("6_m1vy8") + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_171aa"] +size = Vector2(24, 15) + +[node name="CharacterBody2D" type="CharacterBody2D"] +script = ExtResource("1_37nf0") + +[node name="character" type="Node2D" parent="."] + +[node name="body" type="Node2D" parent="character"] +position = Vector2(-17, 0) + +[node name="tail" type="Node2D" parent="character/body"] +position = Vector2(15, 35) + +[node name="Sprite2D" type="Sprite2D" parent="character/body/tail"] +texture_filter = 1 +position = Vector2(-3, -18) +texture = ExtResource("2_26rkd") +centered = false + +[node name="torso" type="Node2D" parent="character/body"] +position = Vector2(16, 24) + +[node name="Sprite2D3" type="Sprite2D" parent="character/body/torso"] +texture_filter = 1 +position = Vector2(-11, -2) +texture = ExtResource("3_llt4k") +centered = false + +[node name="head" type="Node2D" parent="character/body"] +position = Vector2(16, 24) + +[node name="Sprite2D2" type="Sprite2D" parent="character/body/head"] +texture_filter = 1 +position = Vector2(-16, -24) +texture = ExtResource("2_ylo5j") +centered = false + +[node name="face" type="Node2D" parent="character/body"] +position = Vector2(18, 17) + +[node name="Sprite2D" type="Sprite2D" parent="character/body/face"] +texture_filter = 1 +position = Vector2(-5, -4) +texture = ExtResource("1_kh4l2") +centered = false + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_8tlfi") +} +autoplay = "idle" +blend_times = [&"idle", &"vmove", 0.3, &"idle", &"walk", 0.3, &"vmove", &"idle", 1.0, &"vmove", &"walk", 0.3, &"walk", &"idle", 1.0, &"walk", &"vmove", 0.3] + +[node name="CanvasLayer" type="CanvasLayer" parent="."] +visible = false +script = ExtResource("6_bjl34") + +[node name="Sprite2D" type="Sprite2D" parent="CanvasLayer"] +texture_filter = 1 +position = Vector2(144, 6) +texture = ExtResource("5_ljw5m") +centered = false + +[node name="RichTextLabel" type="RichTextLabel" parent="CanvasLayer/Sprite2D"] +modulate = Color(1, 1, 1, 0.407843) +clip_contents = false +offset_left = 18.0 +offset_top = 9.0 +offset_right = 295.0 +offset_bottom = 99.0 +theme = SubResource("Theme_lpkn8") +scroll_active = false + +[node name="Control" type="Control" parent="CanvasLayer"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="CanvasLayer"] +stream = ExtResource("9_kn63i") + +[node name="Camera2D" type="Camera2D" parent="."] +position = Vector2(-1, -1) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(-2, 28.5) +shape = SubResource("RectangleShape2D_171aa") diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..57d4dc7 --- /dev/null +++ b/project.godot @@ -0,0 +1,67 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="Acerola Jam" +config/features=PackedStringArray("4.2", "Forward Plus") +boot_splash/bg_color=Color(1, 1, 1, 1) +config/icon="res://icon.svg" + +[display] + +window/size/viewport_width=576 +window/size/viewport_height=324 +window/size/resizable=false +window/size/window_width_override=1152 +window/size/window_height_override=648 +window/stretch/mode="canvas_items" +window/stretch/scale_mode="integer" + +[input] + +left={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"echo":false,"script":null) +] +} +right={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"echo":false,"script":null) +] +} +up={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"echo":false,"script":null) +] +} +down={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"echo":false,"script":null) +] +} +interact={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} +"interact 2"={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"echo":false,"script":null) +] +} + +[rendering] + +textures/canvas_textures/default_texture_filter=0 +textures/decals/filter=0 +textures/light_projectors/filter=0 +environment/volumetric_fog/use_filter=0 +environment/defaults/default_clear_color=Color(0.835294, 0.835294, 0.835294, 1) diff --git a/typewrite.gd b/typewrite.gd new file mode 100644 index 0000000..a3c013d --- /dev/null +++ b/typewrite.gd @@ -0,0 +1,19 @@ +extends CanvasLayer + +@onready var label = $Sprite2D/RichTextLabel +signal Done + +func typewrite(text,sound,speed, hide_after): + visible = true + label.text = text + label.visible_characters = 0 + $AudioStreamPlayer.stream = sound + var wait_time = speed / len(text) + for i in range(len(text)+1): + label.visible_characters = i + $AudioStreamPlayer.play() + await get_tree().create_timer(wait_time).timeout + await get_parent().interact + if hide_after: + visible = false + Done.emit()