From 5090341591cf85e825321fa45564ca902b538dbc Mon Sep 17 00:00:00 2001 From: coder-bot Date: Mon, 17 Aug 2026 21:24:43 +0000 Subject: [PATCH] Bring in Godot project + address review feedback (this branch had none of it) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This branch never actually had the Godot scaffold — a workspace-reuse bug (see agp source repo) let leftover backend/**/__pycache__/*.pyc files from an unrelated task get swept into this branch's only prior commit, which was checkpointed under this task's title despite containing zero Godot files. Removing that garbage and bringing over the real project from agent/997c429bc6b4 (the original PR's branch) with the review feedback addressed: - Play button no longer references the nonexistent scenes/game.tscn. - Wired PlayButton/QuitButton [connection] entries in main_menu.tscn. - Removed the invalid uid="uid://main_menu". - Added .gitignore for .godot/. - Removed the non-standard [export]/[export_options] sections from project.godot (Godot 4 uses export_presets.cfg, not this). --- .gitignore | 2 + addons/.gitkeep | 0 assets/.gitkeep | 0 .../app/__pycache__/__init__.cpython-312.pyc | Bin 161 -> 0 bytes .../app/__pycache__/config.cpython-312.pyc | Bin 2053 -> 0 bytes .../app/__pycache__/database.cpython-312.pyc | Bin 1602 -> 0 bytes .../__pycache__/dependencies.cpython-312.pyc | Bin 2357 -> 0 bytes backend/app/__pycache__/main.cpython-312.pyc | Bin 1934 -> 0 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 404 -> 0 bytes .../models/__pycache__/asset.cpython-312.pyc | Bin 2259 -> 0 bytes .../__pycache__/session.cpython-312.pyc | Bin 1638 -> 0 bytes .../models/__pycache__/user.cpython-312.pyc | Bin 1482 -> 0 bytes .../models/__pycache__/world.cpython-312.pyc | Bin 1869 -> 0 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 169 -> 0 bytes .../__pycache__/assets.cpython-312.pyc | Bin 8664 -> 0 bytes .../routers/__pycache__/auth.cpython-312.pyc | Bin 6650 -> 0 bytes .../routers/__pycache__/users.cpython-312.pyc | Bin 6194 -> 0 bytes .../__pycache__/worlds.cpython-312.pyc | Bin 7588 -> 0 bytes project.godot | 24 ++++++++++ scenes/.gitkeep | 0 scenes/main_menu.tscn | 43 ++++++++++++++++++ scripts/.gitkeep | 0 scripts/main_menu.gd | 14 ++++++ 23 files changed, 83 insertions(+) create mode 100644 .gitignore create mode 100644 addons/.gitkeep create mode 100644 assets/.gitkeep delete mode 100644 backend/app/__pycache__/__init__.cpython-312.pyc delete mode 100644 backend/app/__pycache__/config.cpython-312.pyc delete mode 100644 backend/app/__pycache__/database.cpython-312.pyc delete mode 100644 backend/app/__pycache__/dependencies.cpython-312.pyc delete mode 100644 backend/app/__pycache__/main.cpython-312.pyc delete mode 100644 backend/app/models/__pycache__/__init__.cpython-312.pyc delete mode 100644 backend/app/models/__pycache__/asset.cpython-312.pyc delete mode 100644 backend/app/models/__pycache__/session.cpython-312.pyc delete mode 100644 backend/app/models/__pycache__/user.cpython-312.pyc delete mode 100644 backend/app/models/__pycache__/world.cpython-312.pyc delete mode 100644 backend/app/routers/__pycache__/__init__.cpython-312.pyc delete mode 100644 backend/app/routers/__pycache__/assets.cpython-312.pyc delete mode 100644 backend/app/routers/__pycache__/auth.cpython-312.pyc delete mode 100644 backend/app/routers/__pycache__/users.cpython-312.pyc delete mode 100644 backend/app/routers/__pycache__/worlds.cpython-312.pyc create mode 100644 project.godot create mode 100644 scenes/.gitkeep create mode 100644 scenes/main_menu.tscn create mode 100644 scripts/.gitkeep create mode 100644 scripts/main_menu.gd diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dd2198a --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Godot 4 editor cache/import directory +.godot/ diff --git a/addons/.gitkeep b/addons/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/assets/.gitkeep b/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/backend/app/__pycache__/__init__.cpython-312.pyc b/backend/app/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b85585fd2c6b5543383cf26a2c5bdf4bf171f920..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmX@j%ge<81eXe%vq1D?5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!a?sDn&rQ`&NlZzp z)K5$=&@ay~$}TQQOitBL&QD1#icdB%G&N67PSa0HOwLZtOVLj(DA13O&&nC&o diff --git a/backend/app/__pycache__/config.cpython-312.pyc b/backend/app/__pycache__/config.cpython-312.pyc deleted file mode 100644 index 9d3ececc84f0f5be6e00fe24657d911d793df2e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2053 zcmZWqO>7fK6rNqL{}Lx5e-0!xI7Mw`fq#G`gcL;BQ$=sB=&iS&dhaC=sibqFs;Y`xAi0!N-;C`L#7g_-eeb<_Gw;oN zGrzaBwIKMO-nzf`tAxM%zsp%!IE9Us-muvs7OPTibDzw6WZ0}rntYf zuDWVtS9~~(l>*#C1jz!#D=tHnvWG~-tBIFEqj_W>M-oR~*-rwX^Ks;tgIpKjC@8mZ z)WT7#+{#giqc%CjQ9DN+avNy}FUL6QlsmYti=%G&7)L!E^~#;xGRzQUu1o9Fj%(hZ zPaNjEoAhY?q?br1zyfkTa3t5^^^?)}XrP&iYHMnGF*2#BH;JLqKx%Oj=Th^Tsy7)w z7f;ewCioTOVpdrOfFAXuUMwz7H#6(DxFcBbwjm^jMQilLe1nB&?|1hl1)naXFD@NDK&>b+JtKQc;#sk!Ne ze0J&D{EI=z1|3LEO=SuNytFWz$>GfP#cV!<=d-!xrA(oEX4Q4Aw>C1C97~>kM|vTd zOw!QQLcV~(_jEQ_p#F+gG8N6CEz65@3#l|tXY(&KwqnN;)+3t1Ufo2*K4V%)BJ zEAC2cEb5^FKzKzj5!%`0Ffmk9V?nj6P{Y_EhNHXsZ9;uEaVxf=3gEo?vC3uLwqFIZ zh3=xYrsl}F*67D0BB<=g4L@o0wV;Ycq>7(+A#_i;E37s9;mCw$mwqFD)gyuJJ)r

O~+DHl7RS$jn(0EBNtV5C2^x(qzT2cK*cVExV26@RnvBG!zV83j$7?-7I*v| z-G{KK69ZC1&tvDF#U`G_CZ5I8Ph#oc3OljvA00D~MmK$1p>IOpwmOv*+3XaHkFDHDuo3&v$rtCScY!uVE2Db+Q00PLv;;-(!KD~4gZ{N{2nwu7Lu z*>y{$8>U&ZTNw^9(#A*!Bb`8~M>kxaN4tl~!i=y3p&?k5lyE%-G+^1LMQnGSN-TK$ zeK7e6?E^*j5F`F3VViP(0rDk!-ZNCYwxRAwL%V&0wb{+?9cgg4D_qNL4DU$cJs&#p znNXYCJiQ~y0K&;ycEj0`62SLeuFY(EcBGGYdr#J-CwD)JZcC>gfsZJgd9^V!!>l89 z>r=afL)%jLJD521SN8|IoqfCgu=K!zU+VGI=JrC!*S;qT-dW+%@Qy0;7R{TusD>LUbaJbgn8+jeLTrai>dj#xQkj@m4J&zy=f1=TU(5ZjX x#DOm&%nBQK4-gw)UWEs__5Q$~C<@`t)mI1xNUGSz1usJ=bo}AO7XiNa{{bOK8nplb diff --git a/backend/app/__pycache__/database.cpython-312.pyc b/backend/app/__pycache__/database.cpython-312.pyc deleted file mode 100644 index 44b58534ece1b7dce3be836fed0875301a99200e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1602 zcmZ8h&rc&&9RI%g*_NS&uIz5t4K{#iUAKjG4H}JF0`5WO;JSzHWire>pfJ-ZZ-y;J zO~^uwMiX5V;a||eW<7W}_3CAj19jrXsEOQ)U|5LpumS7V{C<%^O5*?`|5v~($*-=VLC`-2L#7Z#& z0#J#@=F^>Yr+?HwcDm|FmTW28>XsC(OI;W*(k?1kvF-R4_Qt8C32+0f#5!1ARQXri zZD~}P5v=ZYsg$fIbE%bQie9~9W-Y@vrVWo~X=S!tp;@D1Wj*S7Ww(-@F-+fO_540h zoD%~r47nLugS5dD=xt}mSfDI8XEJK|RF6zi${Yz&6V$W~X87ehbR3JJD&|q&FIQ&0 zeSWt1<<2AX3m>+T)OW^A|idQJ!wOyqfb&_kE2Wkz+kqMNSc zlzo#o*&)&v4mA`ufkKJkii%W(bS-yfp zp6TSZ!kp{Sf@N4%y#jx3E3qSJQ>+KG^H5p>*xc8QGbb5&g?@)t0({*rg2Aa0KvWZoxQ;p8aZ8uHDZx> z5da&)rucy@!}}12_u#&?A#M_a(tH~nk$=QH(Q63LFjk6ULx^I&EiB7vO*osIK%I=i zC(q$`VG#T_7y*WWJs#HLJ^zo+)WV33u+|vJxTCvJgJtnH)OgmBK^ToHaxam0#JxOH z6A0W!Z(cp}zAx7BHdjU`Xcfh;z@9enP#ZW_(IIp_;I5Ba3Um+t^;7EN zA0UJwd+C9l^uTUsCJxbgZ_zevbB;RoJYDwl;c=H;#&O6vWEh`- zAo(9RmpP2Tr$GWoCvUoyner^-SPHa>;ycCh;>}6@*4u9e^2Fr$ts8+7JuWQ6lZC^@ zPoMF3B$_FHJ14Q1qq%;C4daqun>UB7B@#k@gpp%OBEkV6`!fOL%5U(*&+*GmN!yb$ zJ5r_@@BOs@qyA>Hr`db%C@v?2RplTFnJY~x(d@d=?7MWNN*UoH^c^J$iGTR&5#X;C Oi;?ta_7UJO?BpL={fL49 diff --git a/backend/app/__pycache__/dependencies.cpython-312.pyc b/backend/app/__pycache__/dependencies.cpython-312.pyc deleted file mode 100644 index fc4aa252c5d6533f0895a2317b62df4fc87ba618..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2357 zcmZuyU2NOd6}}WHQX(Zw){mnkjl(UTGo_9sr)iybL0Z?c>m+Rw#5U6Mg`ml6n=&P; zmsA{k3g9K%5DWv>0!6c61J?aKbV&9vpuis5hpyY(UZi<|RU$z<48>Mp55nSyBG|*u zrNr1^JZm~N9b>K5Im7Sc=%5Mw~>JqWH3g^VyYn} z#8AvyY?V{EYFG(Zd4=~m&JwB-CF0|-6|IVjSd|pXAM;kM8du^z7Oa74LP_{IVkN7C z%Ak*x22!#&dHk8o`D$qm%nr>oeOg3w} z)iBK3vV88!{P9K20Z*;rt`xqc$ICNbbh1{nUCqTtp7n&XKiTo(v-9(prmyL^?wWSZ z;~ns5IN+YSI0>^)T+$q8%_hdn81^RlkQagFrwOr%$5z%{aO53qVV$Dbq_bYr=dk0z zQZSA<*mdDVbUA(*yQ;AWh+A+l*+>+%x>=+LEL!%m>ASo3Dy}UM%M1I+3mJb_qe-kkGdX;B3B4JD}lfQ z0{SL$eL+&H65C_w!#&o4C#}oOz3}6`*d|*UeA36@gMeS>n%rin8M?tlQIn};pY(P2 z1)Q4;P%yi4Fkp83U9ZYhyKI2m!vSh?!78iYL@2;Pe-jzPx8cU#4c%tH9}c7I;byq< zwP5aUf42{>^G&|@9!Kj9qIdf-y}>m3IdlZMslYyh2+JUP zUu)i^?^`u_@sJd+c zZD3b3El*g%nt=&T15vYAKyhxw7d%B5S&9Ud8zkq2VV( z(B#u3Ofi&0}wtisYs~KJpo_Cdc(zp>YGsUdf~MdOt2R+4UaWzu9tFj&C-Z!*RX06wFbQx zH668gMlaPr%QNcC#mg_BEtjV+Tr1sB7z%tr?!sfVWp+GsttN zVYwbh35VvR+Ligf=8ZO-uI#TM^i=EWbR_th(MX`fj5oLyMzwq`8KVACO{7P%xPTjn%OdlONpb3V^!u?%2?n1`Fy#pM$*D;O27h=yRt~d&40C`ldlZ}O^92Xw2I^lYG{7ELu^|vti9PX(&YPBI z=_|Op?kmz8+9eA3np@E5_rKpT2+Jw> zLH9Ktx9NB1gzC_(Fyx`zQ-dc>^#rm2^M8#V!U~Ac%Xt(z4U04^e1@EcA^p}k--8CO zkzqbXr@uf?{T-cXqZ1F%_-APN0Xp;m6~91-AJCut*W^g6@Zw*RFKx!V{2?aUkuq=1 z-8uT+@vQ@;R<_iZ#=9)gpGOAY8vD8MKL5)^D^+YqO5HH95F=iEC{XkggA%zPb9a_o Wqt9&(PqcCq?SWI@k;u2;B>w@7-cW)7 diff --git a/backend/app/__pycache__/main.cpython-312.pyc b/backend/app/__pycache__/main.cpython-312.pyc deleted file mode 100644 index 875597527d43fa4b9c15c8756cab2c03d4027d64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1934 zcma)6%WoS+7@yf)zt)e&&ckV<(3Pr2a!6xnlk#Yal%i59)HG@k2Vbo1&e&dOA7*yl z)aFuXB{(J*!hr(^4n=A2`5(A6EmF)%hy#iQ5(k$Q33}q2Sv!eH1Rd?peDi(tJ%8WK z_vy5XU_ANwUj26kpKVm&%Z$Lt50})h01QW@^wp5ZZr)5jFm69T8#fsR`QdH0p zD`v+_aY09|gsqlTJ6THFsZz>Lm(mzfiNvTICL3{ErC!|S|q^g+z57V2GkOz@v>xH9dsal^p$|V_c z0<;G<<^R!69;=-txtG#T9jiS^hF(fLeXRB{89AbT_LvOwn>gf>(fep0seJ2XVXUpa zr+faw(lt$QG%VB5ebaR`>iDdsHC)s2XMW?V1sn|OUdu5I*YW8c-_{+yN*S{bG(F0^AiC-@i@>UTaKsB_@NV>i6rn=1 zA{nN=5gNM6MSseNwYP|%iHpAnTGJ=) zD&%wyyvmAM|6LnC;xFdD?lW#Ss; za-jBZg=OAiJkKCjflCF|WgPn;-`maD`*&l;aGA&WdljhAPOx<ZjLCQIheaL#`s4xxr?TD(fCj3+%7uxGdlki zorlUv!(BQ}Kp5G;FgpYbe%VwsMb+fm22)$vYhXeXs@r?k$%TqiyJJQ0aWcjfK? z!paWHZKGUA$#rsLJGtrY+;nGTtTQ;Wc1BFyB*KHwQ4~wv-2Umc*^P_q7r*&rYjSJ! zG0OdbE_aX|8d{s%m|vfNklMPs^_CD_IS^ggxU_!h!NgW=t0YA4|A&aD7Wq8?Y5t3e Sr#SyilJEtd+^C>L&He$-Pt%M5 diff --git a/backend/app/models/__pycache__/__init__.cpython-312.pyc b/backend/app/models/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4389d342f50a8398f91c181953dcb6e7e25e4893..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 404 zcmY*TJxc^J5KZ>;JXlUFti?juW`m&E9Dm+Y>|9kQkPBkb+`75)G_ z%Y|*UvJF=q~birXo7h7jPpSorSX@QN^uul7@;A@=faq>u7HM@wU*qH6Jx|I z4YUulI7%Q6yCLW?e$-5C(aM0ZHlM>x55_vLr|#H)^3}IBoeVfSy3&Uok_Ck{yF^mG5KWI7>Bv14kC^IrP&zQhB^O2HzyXmhPLbyR0)Mu8A)mc$!ZiuRHYHkD>QcA^RQoO)G(Dz zTc3rGUPq=&<(nqLE>)0g)NSm5m$r+rrJY1ncKta_#`7_%XquzjSkq`+(_p`DF+Qnj zH|o08-jPSf&R;H5`FyoBGC}1}MoQ%g2zlaSb*wyIp~~1qsr-?4vP9*H%9ZlR-wN9- zj2ETioNMDE(h+JD_1Ri+!6nzdnr`5t0ge#OIQ7oycMW5vIISDkv4e_wtybhddPSWD zRj4&c8ccD*D$F|qm%;iwp3c4c6iV-h%tqM)sGtnEXlx|U-vwcNuk zgFkyLr@NSV7qfRi!!i54$p&_S_M*f-RHxpd3s~e_BiYqpQFb(PT%#Y!5J9Rd9bi&; z2f@dl4i45s^CyDa*-O{ji}iH(?hgDP{D0ct?c-NL_aMq5alN;D<{>WY+b28R$mRQ? zuvxLu2(LM>k`K{DjX*1rhISoVTs9qqZ$1AT!ng!ot2lMb(x)v<;~b#*(0YK8ShvuG zK`_h$E;L~v3D28=TZ}>NTgWSzXi=$qm@p17QG{poy5*C%K#AG*VTLTa4hFsl)NVqT zv{mvUQUoQcxK6!>;0P*JL4zr>_R(r?tqx-bdsP0Eoi&~xCIbKQP??2CJa070*wcEi8S4( z@gQi%lLXU{xfLpNvt*bdk1+BYBd>QzA241P+82gK?qGB5SuDL2{kpP|YsJnqFKi{U z%Wtgo-95f4w-SYBX{&c=CATWIdf#r2Ze<6zl;oYMmCrWnE#<=}*?}E7+#6|L{ZkRL zgUdHpjJsc~R$G~q&5^Clz|z8Mu9YcpzP(pzWlq34cVOkz>d{uN*c{tR_b<)fUtB%@ zX!y)#u9d#jywVXJdo+A{Qw~Jjn*5#I%A5mycJRIe_@UyavMK$je6RcvZ)HcDS6{aA zpnB~=b?R~T+QaI#M^&wr{k(bgS#oG)U_)so-)ok)fFIl#Y9-(AOi6Z8&;fDphNWA^ z9JU*~Wf7DFOCB$YAUix|hj-Nr$kZ)t_+Fvrdj2fIu*K^I>bGmN;1WB?+Fl{k zQ@3dnrhkDI%{2TKNeYgoVb3S<8-?AV`gmIRr}~BRLGaf)M@9j{2DNt<$RA-*6n_;a z9}ANYg~_Kv@u~3UQ(^cQA@RF#XeSa8b4%f+%Dt)OsT~0pJH7ql**m4b1o-ee`Ugr% BNk0Gp diff --git a/backend/app/models/__pycache__/session.cpython-312.pyc b/backend/app/models/__pycache__/session.cpython-312.pyc deleted file mode 100644 index 5ccd8068855371f73159def8de1c29a1f63c06e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1638 zcmbVM&2QX96d!-A?e%^no2D%wD3u68t{^L>tnrhgL=EflEqPDjAeR#R2t(6u9)no3(e-N=QhI^j7$*=rX(UF!&kuK4*2-M5|+16r!c5j;TWQV z)Ublpjb?38xo3}fot4qpjNo$_E09+_t`%e}}7_$vcj_1~hv zHne&&%loX{$rqjKAinm0;{P-M(4gB9z#hTFSm@LSdyY0oj3Z2)Cvgmi!n8P3;wNKJ z-?irsgp{YLvV&LcyZGbAR(31xDcx|kKXJpDa7 z;6YDk>MNm7>e$A(S+|#?`bJ3C;>dPL-3c+FmUH^;Gw(RgQhm{O)<}Tsb`;fpaCvb( zuYWvhKGn{7w!et&iOu1>z45-K4Ew}25H0kh^V8Vh!D@)C6j9f= zY13Nc_ZO2TJN1%HEsY6{$Dw3(>iqoF`RNOAb+s^ntw};=_##L>&tCKhbf~0(yPgtO zZ~<_GzRWWNB7x_z83x1<=!==D3Rypg#`0|pk)8wxPn<>=9u$)sfPmO4@7RjMD1}Ev z;yL3e(=02nePUTmw=5tb^|)TPto79Pa!k#grcz<&TZ2ygQ4Z zM-l?BRN+RQ+=yICV#`jb#tlUmbSH74VE%hzQV?!1-Jt|3!hm9WRy5aXkt1ZDmyUwk zW0xM|TBR>IB>n-!7W#GcL~HhOap-Ghn|`CW zcm9)Z^?K{#UU_8u>~~{re7n&tPqi-W)sElN+GE`p>bGC-);?%m-Wxu)z0sDt!*8`N z9Xju5cjWupUG1LUtz7}oAnMSu+gR9bTz}M9c+gmQ*s!{_&svusmyUm{v^Tq@cfXj< z+Ta}+Lv#ctrpN1^?KvyNZ)WuNSmhk|SnTne(N{f0j)&CG7<$$S{*2f%Ty5y|3`! J2&P^e{{ZzSn!W%4 diff --git a/backend/app/models/__pycache__/user.cpython-312.pyc b/backend/app/models/__pycache__/user.cpython-312.pyc deleted file mode 100644 index b4bd324fd5bc20b0cc9f828d578e9aad1784ff17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1482 zcmbUhJ8T?9boOrdcJJr&Ikp2bpGXARhlrOT#|VOuY-1A}5hP+j+7!!pXY5;h_T$-I zoJ)0x6qJcl;E2Yhk*_#W1yRI^f`SI2L&76PC_)tOkPJ;4c(Zptn}UXs_RahMcYY|B z3kc3no1d=pEJD9Y;`nGir#YUNa6QTGK>sE?|l03w_a#=^EuCcP-|w zzb5qAAYc^x!gv$MblLT2O%Wwd8IIk+kLqp+w7Q!3j=X1aL>=k!_~d%X(MO6bgd$5J z$jT7K%4QH%sYWs+)5`Xf%1JJKI#Kt)LLR9>v{r6U?b4Rf*U|q|C*RjG`Z`)GznAIx zC`dUiLhM4HSL)f6fm=Mb0^Y#-GhM6GaIZ(SN`3pm|7Bn9+gHJUhzyVl8EjSi9XXS7 zhsc@Ma9?vc<&FG{H_{lbofYc)5e!dD07lETj3|cO^)PSP8?+%b*C+JG;meTvLM1REk$naj-~%-D9%y zDdbIT9E(D?Zi#av^&WK_5Q!Z4Vgzn*OXKKEbOdtrc+RW`9yJLjq+#N<&;+%OD8vpm zoq#}FovDkLUU8gNQ+A2^#Kd7}Lba4drc8Y@Z156zN`Z_SeFfka`ek^m`Oc$!<+i@F z+#c@ar<=0}m61EE+wa|7-yLo*@6UHCOU)|>rJ+01+t1y-yc4&l_Mh*Rt~BQlMxVO( z!Oq+l*V~smqpvpKJs2Fly|t@$1}`)h52|PH8N25@Pni40zWTlKt?^xO+bRxJv zasT{-iLWQVd7)FCZ!SHmjBPKrSASfvI+g1Xu>9oqcze84eyzE1f`78WUpg-0YOO2^ z(I&&psZ+0UGPHDH={V9Ez~=RpCIjwuJARr8^6sEY(6mX|NW2116PGV;w`Zor(!du1 zdu+VkU86VnG?4P;iOvD|BdaLNuW06HH1iORKSa;|j-LKAS5_{6HuV>REA{XX2$78J diff --git a/backend/app/models/__pycache__/world.cpython-312.pyc b/backend/app/models/__pycache__/world.cpython-312.pyc deleted file mode 100644 index 31139727bf639ed196c5d0f2dac9c9fc9633f8d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1869 zcmbVMO>ERg6dv!|Ua!~tn*>5dfff|9wCt)<(;um71te(`AVmY=H6=%E+du0%2ws!-Jfw^m6nT-rDG?k2g`lAoWy_cJr^ zee-_G=T!vHFV{X>7#0!wga33NsiSOu0m^-Z5f&We3cBE?^pu;{)2^tCuB1z@tjhwo zr<{zd=t``oovf?sYOIS+&ee1+)+Hye=fPKY3T{y^3Mhp>L^yLBVTI%u4s{pb{;s4G zT`$L;S@2Xzv4>WgQZ@ISyHsT+pYolC>#@v)7m+zanS3Flwl~MbX>v1S%BUHUY1<`C z9rr1*=e*OTSrwQ#Hg)kVd^JiOGqQazoVNpx&o(@3iYq70kXYM$LP+TRYz~5Q9}%Pr z80jf2=xLnNMV!{9rdX9&@v=`He8~>&8QZa=CX<84jAL6Y6Hxm)Y=>#H)FvJd4c~K` zQ*a2yFg(*GhQUZ& zpbkqCC*-~kt_4k6fK;*IR0+!H)M~odOPQnaX0W)@DKM5+<&{*DMpxpfEW~VMYLW?L4rg{nb$O$44|wyW zfECD>?XE`(3kQlf%pq$J!$I-Os-(YG|4{VqbQNo$^bQO&{E&$uPsaM zT&*>_Q5jt7Ul!Yy}98A-gW4{iZcRdH$M9(Q(UI?lzZw4a zSi3ydntY}WF70`!w6%9zV;lK>OGh6beSGS2JO9b8@#H-GDAhiuhSwa^vF3@}+^&66 zcV6Ym(HtdUiW>kd>ZPms)JRo)_zGrVCP`9+Aa7DN?`VZpYxETKdYG2{* diff --git a/backend/app/routers/__pycache__/__init__.cpython-312.pyc b/backend/app/routers/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 8880d221005fcecb02bab2e7f5a7a7e3db8ba31f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmX@j%ge<81eXe%vq1D?5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!^3c!7&rQ`&NlZzp z)K5$=&@ay~$}TQQOitBL&QD1#icdB%G&N67PSa0HOwLZtOVLj(D9|s;FD*$eD%OvW q&&a diff --git a/backend/app/routers/__pycache__/assets.cpython-312.pyc b/backend/app/routers/__pycache__/assets.cpython-312.pyc deleted file mode 100644 index ff8b406bb4716bc19266a5f6c4bc54919ea502f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8664 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

%&&(V--ze=HjF5Of7mDGpsYFKNakLHo zRfNz7pN3ye5*{`cCt;DFU-0`T0f}jheN;B_`Z9Sqc5W zl*9@Vml#Mxe)Wm@CH1e+0qG(P0q}x+HtYj%-86ld>iI3@|8HulOig`Fb$?BTe@pd# zO>O%Pwd-rD|2Ndoe^}h_`wON=R+b)E4nCrwdE|7`y~{@)QP4cv!q7v=hXyh(2J?^n z7yOHFtag7sUhtRbmmioZZ|}-GAN=J5&PPKg$6GZ*d(YinWuXNtw6y&Wdmb7o!x&vP zAafsz@m=sOj;}JSZx#d37knjp&jS%T}*>Pjy@6O$IwJ%F6vDNWA zu5EYS9V_%o?8DIAjvn$tdn@g(z>AE~-cxh%RTgM?DWvW@i_U>6hqq?R=BQebvQlOaaE1bl5c}n`!=9Z#tT&g^1LXc>q6IJ z>c-JRSBc*Dz^c!W#ihxB_8!a=3oY)_o+^iw88yN&DDB0n0eRa{TK9$S#f2LKh3*m^ zs?&(4+lfZd5{;nMGy)1`gsTSRb)gJcvvoL%()}>W-maDL59TU?L46)A9{Nq1$U@?t Y)l+4W&~ziDsvMFidEkKoNs^WSe=538I{*Lx diff --git a/backend/app/routers/__pycache__/auth.cpython-312.pyc b/backend/app/routers/__pycache__/auth.cpython-312.pyc deleted file mode 100644 index 1daf7d819010a300a93e6055175a082e91186b95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6650 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 Og|S`t$0*=;#eV>b=AG97 diff --git a/backend/app/routers/__pycache__/users.cpython-312.pyc b/backend/app/routers/__pycache__/users.cpython-312.pyc deleted file mode 100644 index ae2f7be801a587cb459382d8c74f1a789497f8ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6194 zcmcf_OKcm*b@oFp|D-Z{EI{c{B6o{bv5?^|}a@Kfii<{y#oK{)!*9;;tgs^E@HviAv%`!m!oA$+hCN8D?=|DVS z;*L~Hx;5U)5uQ--Vs+|x8&CET)p>@fF6z7}Smb!SNp%C&Q%4P&R4-6{b<_^pHXp5R zX}wncG)SfSk#$N9yA-I+qqfj?wUzSJ2Wzs?z(vmLGs|}aGApWWXVzER4f8x&YW^WXvYRz?P_lw z*G<56te&5R16OH&{7(9%zT1+x+uHl zah@<|IL9)Xtgh%(4U6z`=()pYyCF@|9L=bj;eB>``cUk6g68yOHe=W|=)9nXdBZub zX!Jlascmn23u?)bF&aq~!WA zP|p)e;vAR`e}qthiYhk>R8S^Sz zB)7=?z{>=!fM_iMen!f^meU8y?zYnh0XuVmp~;winhWbGXuhkkP;92Ks2wm7#irU+ zdyFNK@htO$&AiA@v{Rz#hGk2Wq3f)G$kjpnc3t~)`hL+wt5ijs{y2IApjr*hx_!t zsw8};pD+7C9M{?(cw1j<8$P+;8jRzb%j7X=sh5e$#Z47jl2C;#1p=C#N-9^SS*pZ= z0hp?EB&UKZO_>s41HkT%jap5p6V`6A6B|U(u)QIqA;3lryTSJQ2lKI&$5+*}PZz~O z{CaLhhp*SJii6hXaKJ4t3O43r)pJ2@1w(UN)(65=sUe{%$;phtt22qJuY{3=*x`Q~ z{@4Em)E5W`@>u5Pt9}?e)QVm+JEDs#m>Y%h{sWR*MT-9^s51OFlTdw(Y!SCa z%Fu`)JbC97ZBDKQj<8VY5dGLh)%8Z7A<^SBfiV@6LWX*3*pAInM$KVHtCmnw3X`)L zDrcFTftsO#S`Ib04}ZAxqdgz&`D9;da=HM&N2ZIRBgNoLCI3tLXUmemByBE8o3Bbk zU;2742x~j{U-cbWa~!DHo3q;e!R}8w|ImNAzwpRZF?6sPJXG=@YRYKps_)>MGi!Q z_paeS+v;@D)l(9C*2JE&+n;}-vYiB8=DvfGfgf`> zD}BV)akDJ;+|r&0>6{w##D=)bJ}%ZPUiOa-!^f2;x!8bsWpwOm`1lMyLgHtmU4Vby z&c!y1p9dwx2RMWw6K+PhBt+9R%&{%NHBs-0(eIkR8lAr7tM%LMcyqWUtou6C2E?UD z_E9~g&(Tm~ficMGQi~x}9l(+a%;Zd?2yM-!ASId0rXVE=N0R?W3-M27^-waMOPRSK zX#94V6_$m%0u?HihO>t(l?hN)Z*9t)r9-7TAWU5CZF}!}QyA+0ZF4m7=2Le2>_eC~}xakV) z;2aiGI(r-_<_VzXTc_y2Q#7p}FBj9;;U@qrtM`!hj`O?U+Wni^_ojcHDh-Sj21Y(? z|ETkW&X4yMc1#opCW~#ck~fy$TXwgU+(QNTP|>|5Klz2*Up4y4tG?KpBW78Xllb;> zw>0!$r^fiPVeYcXjcpSz+qM91xJ`9fF!QSf#Q)m`w_{qt??EEfjD`OpGM0N%1UTr8 zvXc|yvbdolaLuxZlPwTQn`9NsqI^5^f*zQQHxzSZ6FQ8%os~g8g}He{*&s^u^O(Um zlx49N_nSm%(NynMQ1LErsBg z74e*_j17GSsc%i%TJ9bybw>)_5oqvTySJFsjaGEC(tbM_?SjRFJx%nYJxv6`p2kMt zGv3;-`KI@lFn5H$rghnEf>OyOZnY_Jdpy?#bNlav8X*-{t1< zYTZzlg$-1ho5$O3L-~GVS>! zMaM&^qT@ZFqPq|u<;MHO%X>NjztYZ)L+TW?Bi_d$96&e~{*fWcvYJi6V~ky2%wa++ z06RmPRp7##OEOF;7@E12I-`Sxmz_mb!IX!g*E3&e443w5N=YT=XnN6%okqtxAwrMq z5e1*5l3C_P4jxRt;jXXDz)KeMAjyv;^RBH$%#dm3^L8skx1Mb9>A}3y8)7c2=|%t_ z$mEAdcE}TlV`I~?Ni(@N1cCw9h4^yPEE(A zrWu}V!$ZO?$EfvO^%Q#`z;WCcr2iYz_jj_VNcQ}NZ2gM#e?_9-kWF8a z(AUn^H+u8-8!mxsUG2U>pt|9)a}TXPaf3j0qm}12BOR)WkMNGydr$V3MXB7jsT}Ai z1s*H}9;`@&_g*I=&sSW%T%hdjtO!tFbF{1u|5mzSf7id(8Z9_R{$&H|b$6{_Wfa-< zoa|YNy*-@oDRR*YZ{sGo@*U#@BwrT@KVtQ$1ZpGqU+BY;k5zalP8_HRP&b(vs5pL? z*{{-t!~0J5t)woD=KG4=;}yQOIvnb2Exi>R)Nn^}wl?fQ0y;8!!W>cAhK%}8_OC2o l=qQCJ3gL--f03K4@Gh>yTn*GsRs&RI665}f9nBY={{nrA0JQ)B diff --git a/backend/app/routers/__pycache__/worlds.cpython-312.pyc b/backend/app/routers/__pycache__/worlds.cpython-312.pyc deleted file mode 100644 index 03201b6bde294fcdb77ee50eda8b468caaf0a275..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7588 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 diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..8dddf44 --- /dev/null +++ b/project.godot @@ -0,0 +1,24 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; but it can also be edited by hand. + +config_version=5 + +[application] + +config/name="AGP-Game" +run/main_scene="res://scenes/main_menu.tscn" +config/features=PackedStringArray("4.6.2") + +[autoload] + +[display] + +window/size/viewport_width=1920 +window/size/viewport_height=1080 +window/stretch/mode="canvas_items" + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/scenes/.gitkeep b/scenes/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/scenes/main_menu.tscn b/scenes/main_menu.tscn new file mode 100644 index 0000000..dd4847f --- /dev/null +++ b/scenes/main_menu.tscn @@ -0,0 +1,43 @@ +[gd_scene load_steps=2 format=3] + +[ext_resource type="Script" path="res://scripts/main_menu.gd" id="1_main"] + +[node name="MainMenu" type="Control"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_main") + +[node name="CenterContainer" type="CenterContainer" parent="."] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer"] +layout_mode = 1 +theme_override_constants/separation = 16 +size_flags_horizontal = 4 + +[node name="TitleLabel" type="Label" parent="CenterContainer/VBoxContainer"] +layout_mode = 1 +text = "AGP Game" +horizontal_alignment = 1 +theme_override_font_sizes/font_size = 72 + +[node name="PlayButton" type="Button" parent="CenterContainer/VBoxContainer"] +layout_mode = 1 +text = "Play" +size_flags_horizontal = 4 + +[node name="QuitButton" type="Button" parent="CenterContainer/VBoxContainer"] +layout_mode = 1 +text = "Quit" +size_flags_horizontal = 4 + +[connection signal="pressed" from="CenterContainer/VBoxContainer/PlayButton" to="." method="_on_play_button_pressed"] +[connection signal="pressed" from="CenterContainer/VBoxContainer/QuitButton" to="." method="_on_quit_button_pressed"] diff --git a/scripts/.gitkeep b/scripts/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/scripts/main_menu.gd b/scripts/main_menu.gd new file mode 100644 index 0000000..aa4efc5 --- /dev/null +++ b/scripts/main_menu.gd @@ -0,0 +1,14 @@ +extends Control + + +func _ready(): + pass + + +func _on_play_button_pressed(): + # No gameplay scene exists yet — wire this to the real scene once one lands. + print("Play pressed — no gameplay scene yet") + + +func _on_quit_button_pressed(): + get_tree().quit()