From b2cda8948970faf4b8db81166eda3b86f8aec993 Mon Sep 17 00:00:00 2001 From: Clevertop Date: Sat, 10 Aug 2024 16:00:46 +1000 Subject: [PATCH] playing around with gridmaps --- Assets/Materials/floor.tres | 14 ++ Assets/Textures/church_0.png | Bin 0 -> 1805 bytes Assets/Textures/church_0.png.import | 34 +++ Assets/Textures/cobalt_stone_4.png | Bin 0 -> 503 bytes Assets/Textures/cobalt_stone_4.png.import | 34 +++ Assets/Textures/crystal_floor_0.png | Bin 0 -> 1144 bytes Assets/Textures/crystal_floor_0.png.import | 34 +++ Assets/Textures/crystal_wall_2.png | Bin 0 -> 1241 bytes Assets/Textures/crystal_wall_2.png.import | 34 +++ Assets/Textures/ice_0_old.png | Bin 0 -> 1239 bytes Assets/Textures/ice_0_old.png.import | 34 +++ Assets/Textures/rect_gray_0_old.png | Bin 0 -> 802 bytes Assets/Textures/rect_gray_0_old.png.import | 34 +++ Assets/Textures/stone_2_dark_0.png | Bin 0 -> 2326 bytes Assets/Textures/stone_2_dark_0.png.import | 34 +++ Assets/Textures/stone_2_gray_0.png | Bin 0 -> 747 bytes Assets/Textures/stone_2_gray_0.png.import | 35 +++ Assets/Textures/stone_gray_0.png | Bin 0 -> 815 bytes Assets/Textures/stone_gray_0.png.import | 34 +++ Assets/Textures/white_marble_0.png | Bin 0 -> 2547 bytes Assets/Textures/white_marble_0.png.import | 34 +++ Levels/TestZone.tscn | 242 ++++++++++++++++++++- Scripts/Player.gd | 23 +- Scripts/fpsController.gd | 12 - TODO.txt | 1 + project.godot | 37 ++++ 26 files changed, 650 insertions(+), 20 deletions(-) create mode 100644 Assets/Materials/floor.tres create mode 100644 Assets/Textures/church_0.png create mode 100644 Assets/Textures/church_0.png.import create mode 100644 Assets/Textures/cobalt_stone_4.png create mode 100644 Assets/Textures/cobalt_stone_4.png.import create mode 100644 Assets/Textures/crystal_floor_0.png create mode 100644 Assets/Textures/crystal_floor_0.png.import create mode 100644 Assets/Textures/crystal_wall_2.png create mode 100644 Assets/Textures/crystal_wall_2.png.import create mode 100644 Assets/Textures/ice_0_old.png create mode 100644 Assets/Textures/ice_0_old.png.import create mode 100644 Assets/Textures/rect_gray_0_old.png create mode 100644 Assets/Textures/rect_gray_0_old.png.import create mode 100644 Assets/Textures/stone_2_dark_0.png create mode 100644 Assets/Textures/stone_2_dark_0.png.import create mode 100644 Assets/Textures/stone_2_gray_0.png create mode 100644 Assets/Textures/stone_2_gray_0.png.import create mode 100644 Assets/Textures/stone_gray_0.png create mode 100644 Assets/Textures/stone_gray_0.png.import create mode 100644 Assets/Textures/white_marble_0.png create mode 100644 Assets/Textures/white_marble_0.png.import delete mode 100644 Scripts/fpsController.gd diff --git a/Assets/Materials/floor.tres b/Assets/Materials/floor.tres new file mode 100644 index 0000000..259f650 --- /dev/null +++ b/Assets/Materials/floor.tres @@ -0,0 +1,14 @@ +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://cr4ra7ijk1uec"] + +[ext_resource type="Texture2D" uid="uid://dmywcofis4bkh" path="res://Assets/Textures/stone_2_gray_0.png" id="1_adegu"] + +[resource] +albedo_texture = ExtResource("1_adegu") +emission_enabled = true +emission = Color(1, 1, 1, 1) +emission_energy_multiplier = 0.05 +subsurf_scatter_strength = 1.0 +uv1_scale = Vector3(3, 2, 1) +uv1_triplanar_sharpness = 0.0583145 +uv2_triplanar_sharpness = 0.170755 +texture_filter = 0 diff --git a/Assets/Textures/church_0.png b/Assets/Textures/church_0.png new file mode 100644 index 0000000000000000000000000000000000000000..4fd15d99b551060ecdfbe984242597ce546cb118 GIT binary patch literal 1805 zcmV+o2lDudP)Px*$4Nv%R2Ufr!A*-TNfiaqeLf;G@2yv@Hna$eV-cMC|3~6f9VqCa6@|97eIHf# zW@bd3yAGk^d9{PoYj%kRJY+uN5P#<<43NSYbffQ6YwBv}+W=IyH=gEhuUYQNoEy8)bY z*1B%@*IF}MwsxD>0k<_5f!_O{{_y)8<9L6*jpH%bT;p;#iraPrFjg7N%~;cq6nTxK zYLOH6rs5n=n$7cBK;QP;jo104RBK-6qhv8R#8nmHk!`=-!{haPKo8M;ZZb24I zYmVM~l>qC#ubL8jzpXXrI04`Gn@9F-ck^HT@>h=h%b$NI5u@f@Ip-*rv;Zttdbpbz z)*2E4BRS{H>{SZ}5u}lVR8?jMz|C0&13a(mDAl^=zyTo7^KqSzF)x=pjMVcuGKPBy zl(=RA*mo35hs;7^t!s=0006}~4tQ>@IbbL*npxjo%q+9*+x{Vk2nlAr zrA30}?sJWnn+a>NYDz0YTp_q?OxT#$b)Hc5ZI?{2WX-CYb4I!widt2y6&bB<8Bs+5 z@DNMVoWtGBG9o0)+yJx|W;W-gBDr9Ig+URK=kd7Cx0-7XNfK3Sh!yUl~*%uc>UE zB&C2&YL2HFC~{rbdB7~+zI>!;pjo(^NAIm?YXWL~Hba4{ro%G3!3;FB*1C%3kP1@E zW@f-@v6ZS;saCe#%~Gs6hgd7>@p$ij6KDqaX#0&KffQ8*w<<-3SpzJ3H<(9|tfEAT zh`^fW4tQ@pGINY$tpYHw>pYIN=5-uJI;^A&&)Z9DS*yr3G*&GUhDkQ}gdkRFvB+B2 z`7pV}-tU=_*>cRW#u?tKW|3BPjf-4G7J1ul*?P+@oNG-17=p*DA{oXKA%Sw3xmT5V ziX3%GO=KDntpTBVnZeA?^L=H5OyZ*|+txC(HFv+?UTc53o{vbu0HEeHv(`45D0u|J z1ac5wV_exH7rjIRZVng#&PlU5u80t+%C%t@h~%q znVIGWxC0{G!^{A%XpsgGtXiptq&ZgAIFIu@YR+iQ-RET0QA$IYA-!3*zIB6D5vE*g z6-z3MG&6~7O^9HT5|^3z7TLSO$GDE;ZLJxZa3>%T?rtg3qnW!A1``}c5h*i|fSb4^ zk)&WSgEGT?%WV6;ZQFg-x{k*jlVk)`RcjW@-C=;aL;zJa=koAc3#JsLs#P`T^L_|UBm{oNikK_5g-(Rld{kGqq`1JbK*AKpB+du#Cec$(S vJ2(arx4Twc};CYkZ100000NkvXXu0mjfO5<~p literal 0 HcmV?d00001 diff --git a/Assets/Textures/church_0.png.import b/Assets/Textures/church_0.png.import new file mode 100644 index 0000000..0d00d6d --- /dev/null +++ b/Assets/Textures/church_0.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c1kbx6r2wr4s5" +path="res://.godot/imported/church_0.png-0bb62c2cd9ef6f8c8b8a9385a8b84d23.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/church_0.png" +dest_files=["res://.godot/imported/church_0.png-0bb62c2cd9ef6f8c8b8a9385a8b84d23.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/Textures/cobalt_stone_4.png b/Assets/Textures/cobalt_stone_4.png new file mode 100644 index 0000000000000000000000000000000000000000..9b6cb8447942c17199a7207c1111e4816872f574 GIT binary patch literal 503 zcmVMN0KmWi;NS>m0EGYm0hCEZK~#9!MUe}F#2^SmMFczd zzwo|<&MbbbA%=8S^}WyY`8@ae(AcoMitdxSDsvN_9Qpf-*paJq)21^9?Kv0#?*G{= z1_kMcoOP4q%~?;v1BI?D$)~Z`BgYJ%OaXY= zcP!=-Lq#kYpaoDw_GZ9O4>*WL6=HZR@9fNGm4+&Gt`TYR1OWVtZXlFd-zp~EevLn1 zgdYtb6?m#^Lw@yJb~hkV&|GGg%+l*9*0^0zyj5IVlpOWlm+Nbr32QJwirYtzAeY!u z@bAM8NGO2pNBKdWCfzZZ;TCd3YbL2F^_1H*h%M4DOI_#gP@nRUlK1dW0NZ6TxSUf#ONyD*@&=7}@ z*D@duDpbnr-{do_q4!v+3)0N>HN#GJ0LVi`DXqkF92v`iFqUO$vVU|nS8?8={JDJR t_V!%qE4N?XcOC%2b4OEpDSEl<=nwSP42XzTkFx*(002ovPDHLkV1l@i-;e+R literal 0 HcmV?d00001 diff --git a/Assets/Textures/cobalt_stone_4.png.import b/Assets/Textures/cobalt_stone_4.png.import new file mode 100644 index 0000000..93dd73c --- /dev/null +++ b/Assets/Textures/cobalt_stone_4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dd150xco2ee5q" +path="res://.godot/imported/cobalt_stone_4.png-2f556b8c80fb9db7f21adb51a7786967.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/cobalt_stone_4.png" +dest_files=["res://.godot/imported/cobalt_stone_4.png-2f556b8c80fb9db7f21adb51a7786967.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/Textures/crystal_floor_0.png b/Assets/Textures/crystal_floor_0.png new file mode 100644 index 0000000000000000000000000000000000000000..79c61944fc2475e8d513ef22eec77c02bdcbda4d GIT binary patch literal 1144 zcmah{Z)lcP6#u>3=+(Kkw-)(ivR$GNQPgf9wCVbAZSUHaHlJ$HA8VW+J}(;`<)5DIR0qdtxfoO|K&yXW`& zopas|J6fwNmsJ9&Zg0y!>2EQYi^~0(KfG%cC`Y)iv&8`xV88$xAV2|f9vuKV|EQD+ zLng9Ok^#(DwF#u)8A6DjXs2nTHuF~}g)Pz0$UB!Zclnep-QVzHPcNfbq4 z7)mK~x!ktr+CJXWHTGW5b+*i3O34q_1Fzd&Kc@#(-E1$nA60L zq?t^{Z@~XX>!wX*!@boWw>WBhwij4ZJC_;k+wXT1+1J}2Z^@P_?!2|3>Dcov7RW4V z&#&ohJoCYx%$^aksN$_3ID2hq>t+4+`NKyxcdz)m@I>(7Y^i>I%r>5rAo zXP4Ej?&9ex`M~6v4Hqv|n3dg=SJcFXTjb(94&40txvGYNf?2-%&0Reo^^d(WP#Sbw z@UqGdKXvK&(V>mkf8DUIvixkvJ8OIIFWWe=>Y?$~-}c_Lzv+|aZN<+{pFX(vzSdHq zFTd)~sp;Rg-o*_=nf1p{*n=fkUlY{T?K?NN{^=K%);!v$zwA@BFNF=`)wMO3b~oR) zv$6ZN*}wK?lc^6k|CCu;Q+)CJX>M9x_Y4=-OkLd(&kheJVM+50lq=98~^|S literal 0 HcmV?d00001 diff --git a/Assets/Textures/crystal_floor_0.png.import b/Assets/Textures/crystal_floor_0.png.import new file mode 100644 index 0000000..ee6de93 --- /dev/null +++ b/Assets/Textures/crystal_floor_0.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cuxfe4lobcjrd" +path="res://.godot/imported/crystal_floor_0.png-b744e33cb5e930747430f06e80744c94.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/crystal_floor_0.png" +dest_files=["res://.godot/imported/crystal_floor_0.png-b744e33cb5e930747430f06e80744c94.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/Textures/crystal_wall_2.png b/Assets/Textures/crystal_wall_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a4c89ea43d478a1d6ee771f558482b86e0783fa9 GIT binary patch literal 1241 zcmah{e@s?Y7=Au}NuRQ=h<2mWlM7=`+Zik&v3X!00}9zys0o{TswGxrH*k8D1xE@s zWqE6rEOi|$>9)4|97NV;oX8{%HWq0N(~h}nxok{F8Liz8to~%Z+k4J-_MG>5p7(uU zbSg^HqM1%qOV3lj zuY({oI;JtqIc1DcY74=o^px_o4npI08UvJ5!iY_6F1RN>U-^L!l)+D9fO1Y4vnl05 zcvAXG1zIapd>R7=NC>lS^G|r5^nDcsS}CJGbfGzv1IZvLI03UwpD1U9QJV@bq$icH zbfCjYf>1*%C_So3i(9lpk z9`}9UbzR4CD5aKVHP@6L-MaqF{`wz}w1hn`hr=ImhlnQ^%hr39Wcrf_ZfG8cl2?@q zm&-O!1-?ERL?RKh0sk8%b#(~`8`2E!CbzV@0hl>wG9!57kl9Vl*iyEtc*bbbZRz=U zZ2UU54~W#2#R{wPzk0m#{D&_Pt7}QP>FM?C*6zou^RDAWZOIq+A1qI2_ss4bU-4eY zo_0I$V)eouk!RA{YUkelY<-5;d;HR1{ql@$D^{P_(7pDDYlX`eji+=hy|le{a9!fr z#=NVSYxa*ddv)z+nK%FSzn0}bv|ylr$;Pf@bFuH$k9OZ;6*|^vw6%S>Dd*10*^;h0 zI(m8coVL;nEt${zgEg5Srxb5Gne+2+1y>8>Yw+2^@1E%C{&LpZD~`4O`h8is<=K07 z_4QxuE?S&gUJ;-^fe-d1{Bmq0<+Plaw9839qkb8Lt`1ivZUF8#}$y?3eG(^u`cyyp3=f=0& zWX{gytevk|@z+{sjx0Lf@@I#vT)KDUR9Zr3ZEvvP^8@m{+}aV{url>i@yOw>)W+MR shuT&r#oAUL`RSc&`RgY7db6+Gd|>(bAFWn;|KuFYiYsF87x9*V07z2R_5c6? literal 0 HcmV?d00001 diff --git a/Assets/Textures/crystal_wall_2.png.import b/Assets/Textures/crystal_wall_2.png.import new file mode 100644 index 0000000..34c6873 --- /dev/null +++ b/Assets/Textures/crystal_wall_2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dc23iehev1s8w" +path="res://.godot/imported/crystal_wall_2.png-43c04d21b06c37d08c09bdfa81be4afe.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/crystal_wall_2.png" +dest_files=["res://.godot/imported/crystal_wall_2.png-43c04d21b06c37d08c09bdfa81be4afe.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/Textures/ice_0_old.png b/Assets/Textures/ice_0_old.png new file mode 100644 index 0000000000000000000000000000000000000000..a39605341486babc360deba84c50f281784d52fb GIT binary patch literal 1239 zcmV;|1StE7P)R^cp<-Uw;PNxh%qAPEZ}2|aLxgM z><=Me#!EQKOPq6vG0MkUD;Drwj}!E6x05yc%#;%PzK3&8*7kk>2Y`s^s~95y2pF!L z`ZJ{@^C=~qPN!lnrG)i*eWx9QdZs1LIrM%1P*mP~EEWsAy}dmY8^Q8I?|s3_<#G|m z`o4$vUiQrZAcSydSqMP@#TYRRgNTam;X1mBbL;h5DDS#XF6JHDtqwEy)UQVsyih$>VXehD zjxw&3P+ix;B#o%53gbBb3&XZ;3u|eePA1;_LcR3;>2$i&PS}bZKBDDA z5wfZ^O>@`T@Ql;xRAf-r1f9~!F3+7Y4C%iqb-E6Ge}7B4C7rDQ0PfCte}9*%=bXcS zzn4%vpU-~`kQQCV7K=quXkv^wpU;AxZqj)`Goy0~@Gm@vVYmzRr`Oll->ERB>62qR zvCutT*A*()u56k{SkUL`s`{)id{nO)a?AzVLQ12P`=PG1i)PcqLI_3vcg|t8T8WBJr&E#BX+5=|^9Y%s0opK0 zM0!IAp%58Cv8U4)G))6W5a)G=L1bN5Rv3oiFACTJ^B)oy z@ArFLuUAp94m-L`(>yI|y72JPof3dQ4e%088M|9u`E<6_4;j)8skWT&ZQF`|`o8~j z0Z}zggUjV2$Tix&?~Bfs3fJ9~&iUG{ZQFu{PoF7WaaC2=Y&N)DE=5<%{*Lduv!w{x zsPMyPW3$=d^Yc@BOA1dxB9fZC| z#J~oDkR=+|bzM_XT%ROCt^aa>iymJp zCwh9KhE;~4A|RFX__x+@;bBdjEY=>svn2Ft(z`p+0qCNaWEN*P=H=-uo;kEE3x3V> z{QLEK4T-|*I1bG7-0%Co4+xxoJT88eShD5JVbEYSuwpz`Dj84+0v0c|S9Yp^dT0diuxu^y0a1N9%#q>)V{qDW$PDT^v;+mR<^ua99Wk9!!UBMDWs@*(3!1mf@!X;#2M{6xnEYZ#8e& zS1!Q#HKTye;>@29n{2YG$0|#E7xh~EfaivfVjs^`=w+=X=Rk&W?9=T`h=TsXqVJyV znG?MC9LUCTrcf1~C08kBNLv3A(ma@)N~g|SuQw?*;2$6SYEpgLA9^1srMykBY%)59 zynHYzaG#>yo+nb7QAkhJsGiYs%#>%c&g?LbwT6{0Z?hQ_9;PfQv;Hw@O?&NTWuvnq z>j?nf{tsjwv;$B&G8*+0T7i-=WyAY`GLp6Mh#3DHW-;>6__WN76S(S8VA`tx0I>e4 gPTz1O5&!@I07*qoM6N<$f&c&j07*qoM6N<$f=ai7KL7v# literal 0 HcmV?d00001 diff --git a/Assets/Textures/rect_gray_0_old.png.import b/Assets/Textures/rect_gray_0_old.png.import new file mode 100644 index 0000000..10c8572 --- /dev/null +++ b/Assets/Textures/rect_gray_0_old.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cubqlybfo1q3r" +path="res://.godot/imported/rect_gray_0_old.png-807f3bb9249ff79f864fa4ceefd71090.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/rect_gray_0_old.png" +dest_files=["res://.godot/imported/rect_gray_0_old.png-807f3bb9249ff79f864fa4ceefd71090.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/Textures/stone_2_dark_0.png b/Assets/Textures/stone_2_dark_0.png new file mode 100644 index 0000000000000000000000000000000000000000..f80422ba400aaecb8a3e050dd57dabfc14e81a5e GIT binary patch literal 2326 zcmWkweIV0m9RGQ#Rym~6Xqd>$bZ*tEk*>^Jgm5G;qn##1W^c&5)2LlXSB#lk$XqE7 z;Y!|H%SkF}Y0VVcEorf&nYicvcz(~z?|Htz@ALhBKA-RJyuY94cNu=rpK-o_MI?F;WgD>&b^hsSvbr^Z!i);&2gQaUIRe*L~e94HI1h z6t;=c0+x(v?#F4aNr{Q1Gc?GRLL$;gCs8SJv{;mq@ZD91eOYc9SD>JbRmoWtj$V9?8#FN+rq-HDl*rqacy*o!C_EH4LN zbqMZ0rBvC7AQ%1OVcA@!xrO%RT-m|`{a8pyn)=JER?gGd`w4qpN3hLfJMKj2N*AYD zKV~f-uJSMLc`&)NOVQHQR~Cj;tf+73=gb9d5)A`Nb${XS%Sldu0i_ z>Tiod>ZYx(9Kgf!^*^gKJ!&>h&LIdQJ2NvA5fxQ4S@mT%2hM9a~VYRK5!Fsovr-fZh@9lj? zrs{ZE+b$i(Aawp5jR%)m+4^OE`pC+PI*CRQE@pCutR-jIYIXXR)Jw871hbcnv#Ru4 z6>$}_vvXkMnWUsmcyf9=D^Wb3ZPC4HF=X}#u8}uW5AsNV5te+6> zoA5Be8z0wuF&M;?SS)V;e#>`U{k*Y+FU5H{n^Mx;(!z`loii-ch;0qK9rnG~Bb=g3 zp#{KnJTkIWB=~vLu=20OipWNrbeGmJ!D8k+r7GI+{=Ww^z8>0kX+pr-0(fVv(T~CC zXhGt(WI{;k=^uG@Qbja^>C-Ql+tt_CM-T|aP$K|BRfb>7*cB)^c>9HFPt(E_Nh}uD z@9%NK*=#e@f=QgX+o0Xt-fpvSNJNhiZNIRs9Nmw(X8k;VkHPu;1PY{7EjMlOt~CgN z143_qJ4^>)9assw#hk?5%T$+Qbhf`loV;l)lgTnv)9lY@4}iU62}Z(XK)b3S^v;T* zvSFDX1mfDfEx*qm9qx*m55akE0rZO|tp< z`6$Nj;NY>>udhkYOyYC_Hk{MH{0a_Szlw+H>ghQ;IaMF4Po`4)$+)SdB~D0VB#12@ z#z;w-PUn#)l+7%aez*f$3so`Xy@%!1*43qZs9jt#rJikU-2S{ViUzXi z7I6RLM+dQ3%;oWRSNh%Q>?Dy$=Yr4+$C;(10CWi%xz2Y4p|cip@cpGxtqh3Tj%~KyPm@m#hBP#a(}Sz-pFJ(b;(bdi?mYKAxPNy$Yd9iNV3^ z^Kt-7z+KgfZkvjse{wC2`1q=xsO)dsYePn`KwU*M7Wu^nT<_YiZ&^P8K?X6sZWtaO z-fTJ;gGJ~7SeNnb3WVm_%K@cN$T&9<-Fes&rU~+WZCgV_gQmX&8=xf$(Dqq5DHJH{ zu5ukb4DNoZ<7jPQk+SF2D~|K#`$N|w97g0cVE~+!1Yl-BN zk99zBNs;-%dHIM9umB1I&FTA7=TWdv&P5R32&`A7a-60Z z2M2=+*^h~B7eA6w{f-_j_p8I2e5c})LT`uNDxhAyQ5|OjzQzdLqnosBss|q&9JIRZ z1@ME10g)T#9c2IZQK2aJv4&Zst}HvwGQvw^^|fD1r7g|PeW}hdDJg75hi`|(LqrGG z*Y_9K*47qKdqq*%LmerKuaiXwzec^1)lL4Lj)uBdSJbOivjXRpWofj!n>yd<6L4i+ h!G*kP+uyZTwd0<5@8h51yMlif$jjZ&tpR@`?>|a1X$SxS literal 0 HcmV?d00001 diff --git a/Assets/Textures/stone_2_dark_0.png.import b/Assets/Textures/stone_2_dark_0.png.import new file mode 100644 index 0000000..67e3c01 --- /dev/null +++ b/Assets/Textures/stone_2_dark_0.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bdpdhwywerhnu" +path="res://.godot/imported/stone_2_dark_0.png-b41635e52a7d59c9a2cc8b975e836c38.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/stone_2_dark_0.png" +dest_files=["res://.godot/imported/stone_2_dark_0.png-b41635e52a7d59c9a2cc8b975e836c38.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/Textures/stone_2_gray_0.png b/Assets/Textures/stone_2_gray_0.png new file mode 100644 index 0000000000000000000000000000000000000000..fd04eba156d9d5d52163919fb859df4a242055a2 GIT binary patch literal 747 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 JPDHLkV1h=J(j5Q* literal 0 HcmV?d00001 diff --git a/Assets/Textures/white_marble_0.png.import b/Assets/Textures/white_marble_0.png.import new file mode 100644 index 0000000..c4e6e20 --- /dev/null +++ b/Assets/Textures/white_marble_0.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://rqtcsf0bqlje" +path="res://.godot/imported/white_marble_0.png-633ce60960cf39f2124328d8fffb59e9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/white_marble_0.png" +dest_files=["res://.godot/imported/white_marble_0.png-633ce60960cf39f2124328d8fffb59e9.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/Levels/TestZone.tscn b/Levels/TestZone.tscn index ca2420d..3006444 100644 --- a/Levels/TestZone.tscn +++ b/Levels/TestZone.tscn @@ -1,12 +1,207 @@ -[gd_scene load_steps=8 format=3 uid="uid://bojbawyoy11i4"] +[gd_scene load_steps=12 format=3 uid="uid://bojbawyoy11i4"] -[ext_resource type="Texture2D" uid="uid://contqwyu7r114" path="res://icon.svg" id="1_gnwph"] [ext_resource type="Script" path="res://Scripts/Player.gd" id="2_0sf88"] +[ext_resource type="Material" uid="uid://cr4ra7ijk1uec" path="res://Assets/Materials/floor.tres" id="2_8fy0v"] -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kgnq8"] -albedo_texture = ExtResource("1_gnwph") +[sub_resource type="Shader" id="Shader_gv186"] +code = "shader_type spatial; + +#define USE_ALPHA 0 +#define USE_ALPHA_CUTOFF 0 +#define USE_EMISSION 0 +#define USE_REFLECTIONS 0 +#define USE_NORMAL_MAP 0 +#define USE_OCCLUSION 0 +#define USE_ANISOTROPY 0 +#define USE_BACKLIGHT 0 +#define USE_REFRACTION 0 + +#if USE_ALPHA +render_mode depth_draw_always; +#endif + +#include \"includes/base-cel-shader.gdshaderinc\" + +#if USE_EMISSION +#include \"includes/emission.gdshaderinc\" +#endif + +#if USE_REFLECTIONS +#include \"includes/reflections.gdshaderinc\" +#endif + +#if USE_NORMAL_MAP +#include \"includes/normal-map.gdshaderinc\" +#endif + +#if USE_OCCLUSION +#include \"includes/occlusion.gdshaderinc\" +#endif + +#if USE_ANISOTROPY +#include \"includes/anisotropy.gdshaderinc\" +#endif + +#if USE_BACKLIGHT +#include \"includes/backlight.gdshaderinc\" +#endif + +#if USE_REFRACTION +#include \"includes/refraction.gdshaderinc\" +#elif !USE_REFRACTION && USE_ALPHA +#include \"includes/transparency.gdshaderinc\" +#endif + +group_uniforms BaseProperties; +#if USE_ALPHA_CUTOFF +uniform float alpha_cutoff: hint_range(0.0, 1.0) = 0.5; +#endif +uniform vec4 color: source_color = vec4(0.7, 0.12, 0.86, 1.0); +uniform sampler2D base_texture: source_color; +uniform vec4 specular: source_color = vec4(0.3, 0.3, 0.3, 0.5); +uniform sampler2D specular_texture: hint_default_white; +uniform vec4 fresnel: source_color = vec4(0.2, 0.2, 0.2, 0.3); +uniform sampler2D fresnel_texture: hint_default_white; +group_uniforms; + +varying vec3 SPECULAR_COLOR; +varying float SPECULAR_STRENGTH; +varying vec3 FRESNEL_COLOR; +varying float FRESNEL_STRENGTH; + +group_uniforms Tiling; +uniform vec2 uv_scale = vec2(1,1); +uniform vec2 uv_offset = vec2(0,0); +group_uniforms; + + +void vertex() { + UV = UV * uv_scale.xy + uv_offset.xy; +} + +void fragment() { + ALBEDO = color.rgb * texture(base_texture, UV).rgb; +#if USE_ALPHA + float alpha = color.a * texture(base_texture, UV).a; + ALBEDO *= alpha; +#elif USE_ALPHA_CUTOFF + ALPHA = color.a * texture(base_texture, UV).a; + ALPHA_SCISSOR_THRESHOLD = color.a * texture(base_texture, UV).a; +#endif + +#if USE_REFRACTION && USE_ALPHA + EMISSION += refraction_fragment(alpha, NORMAL, SCREEN_UV, FRAGCOORD.z); +#elif !USE_REFRACTION && USE_ALPHA + EMISSION += transparency_fragment(alpha, SCREEN_UV); +#endif + + SPECULAR_COLOR = specular.rgb * texture(specular_texture, UV).rgb; + SPECULAR_STRENGTH = specular.a * texture(specular_texture, UV).a; + FRESNEL_COLOR = fresnel.rgb * texture(fresnel_texture, UV).rgb; + FRESNEL_STRENGTH = fresnel.a * texture(fresnel_texture, UV).a; + +#if USE_EMISSION + EMISSION += emission_fragment(UV); +#endif + +#if USE_REFLECTIONS + Surface surf = reflections_fragment(UV); + METALLIC = surf.metallic; + ROUGHNESS = surf.roughness; +#endif + +#if USE_NORMAL_MAP + NormalData normal = normal_map_fragment(UV, NORMAL, TANGENT, BINORMAL); + NORMAL = normal.vector; + NORMAL_MAP = normal.map; + NORMAL_MAP_DEPTH = normal.depth; +#endif + +#if USE_OCCLUSION + OcclusionData occlusion = occlusion_fragment(UV); + AO = occlusion.ao; + AO_LIGHT_AFFECT = occlusion.ao_light_affect; +#endif + +#if USE_ANISOTROPY + AnisotropyData aniso = anisotropy_fragment(UV); + ANISOTROPY_DIR = aniso.direction; + ANISOTROPY_RATIO = aniso.ratio; +#endif + +#if USE_BACKLIGHT + BACKLIGHT = backlight_fragment(UV); +#endif +} + +void light() { +#if USE_BACKLIGHT + DIFFUSE_LIGHT += backlight_diffuse( + ALBEDO, + LIGHT_COLOR, + LIGHT, + NORMAL, + ATTENUATION, + BACKLIGHT + ); +#else + DIFFUSE_LIGHT += diffuse_light( + ALBEDO, + LIGHT_COLOR, + LIGHT, + NORMAL, + ATTENUATION + ); +#endif + +#if USE_ANISOTROPY + SPECULAR_LIGHT += anisotropy_specular( + LIGHT_COLOR, + SPECULAR_COLOR, + SPECULAR_STRENGTH, + NORMAL, + VIEW, + LIGHT, + ATTENUATION, + UV, + ANISOTROPY_DIR, + ANISOTROPY_RATIO + ); +#else + SPECULAR_LIGHT += specular_light( + LIGHT_COLOR, + SPECULAR_COLOR, + SPECULAR_STRENGTH, + NORMAL, + VIEW, + LIGHT, + ATTENUATION + ); +#endif + + SPECULAR_LIGHT += fresnel_light( + LIGHT_COLOR, + FRESNEL_COLOR, + FRESNEL_STRENGTH, + NORMAL, + VIEW, + LIGHT, + ATTENUATION + ); +} +" + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_0th4j"] +render_priority = 0 +shader = SubResource("Shader_gv186") +shader_parameter/color = Color(1, 1, 1, 1) +shader_parameter/specular = Color(0.3, 0.3, 0.3, 0.5) +shader_parameter/fresnel = Color(0.2, 0.2, 0.2, 0.3) +shader_parameter/uv_scale = Vector2(1, 1) +shader_parameter/uv_offset = Vector2(0, 0) [sub_resource type="BoxMesh" id="BoxMesh_67chd"] +material = SubResource("ShaderMaterial_0th4j") size = Vector3(10, 1, 10) [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_drsh3"] @@ -16,10 +211,24 @@ data = PackedVector3Array(-5, 0.5, 5, 5, 0.5, 5, -5, -0.5, 5, 5, 0.5, 5, 5, -0.5 [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_a6eig"] +[sub_resource type="BoxMesh" id="BoxMesh_21vdj"] +material = ExtResource("2_8fy0v") + +[sub_resource type="BoxShape3D" id="BoxShape3D_nndy8"] + +[sub_resource type="MeshLibrary" id="MeshLibrary_udrkc"] +item/0/name = "dsa" +item/0/mesh = SubResource("BoxMesh_21vdj") +item/0/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/0/shapes = [SubResource("BoxShape3D_nndy8"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)] +item/0/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/0/navigation_layers = 1 + [node name="TestZone" type="Node3D"] [node name="MeshInstance3D" type="MeshInstance3D" parent="."] -material_override = SubResource("StandardMaterial3D_kgnq8") +process_mode = 4 +visible = false mesh = SubResource("BoxMesh_67chd") [node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D"] @@ -27,9 +236,21 @@ mesh = SubResource("BoxMesh_67chd") [node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D/StaticBody3D"] shape = SubResource("ConcavePolygonShape3D_drsh3") -[node name="Player" type="CharacterBody3D" parent="."] +[node name="MeshInstance3D2" type="MeshInstance3D" parent="."] +process_mode = 4 +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.95936, 0.687725, -3.34325) +visible = false +mesh = SubResource("BoxMesh_67chd") + +[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D2"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D2/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_drsh3") + +[node name="Player" type="CharacterBody3D" parent="." node_paths=PackedStringArray("camera")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.83982, 0) script = ExtResource("2_0sf88") +camera = NodePath("Camera3D") [node name="MeshInstance3D2" type="MeshInstance3D" parent="Player"] mesh = SubResource("CapsuleMesh_5q2rg") @@ -43,5 +264,14 @@ shape = SubResource("CapsuleShape3D_a6eig") [node name="OmniLight3D" type="OmniLight3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.94042, 0) +light_color = Color(0.69761, 0.418962, 0.0472636, 1) omni_range = 15.748 omni_attenuation = 0.210224 + +[node name="GridMap" type="GridMap" parent="."] +mesh_library = SubResource("MeshLibrary_udrkc") +cell_size = Vector3(1, 1, 1) +data = { +"cells": PackedInt32Array(65533, 65534, 851968, 65532, 65534, 851968, 65533, 65533, 851968, 65532, 65533, 851968, 65534, 65531, 851968, 65533, 65531, 851968, 65532, 65531, 851968, 65531, 65531, 851968, 65530, 65531, 851968, 65529, 65531, 851968, 65532, 65526, 851968, 65531, 65526, 851968, 65530, 65526, 851968, 65529, 65526, 851968, 65528, 65526, 851968, 65527, 65526, 851968, 65526, 65526, 851968, 65525, 65526, 851968, 65526, 65525, 851968, 65527, 65525, 851968, 65528, 65525, 851968, 65529, 65525, 851968, 65530, 65525, 851968, 65531, 65525, 851968, 65532, 65525, 851968, 65533, 65525, 851968, 65525, 65525, 851968, 65524, 65525, 851968, 65524, 65526, 851968, 65523, 65525, 851968, 65523, 65526, 851968, 65522, 65527, 851968, 65523, 65527, 851968, 65523, 65528, 851968, 65523, 65529, 851968, 65523, 65530, 851968, 65523, 65531, 851968, 65523, 65532, 851968, 196595, 65525, 851968, 196596, 65525, 851968, 196597, 65525, 851968, 196598, 65525, 851968, 196599, 65525, 851968, 196600, 65525, 851968, 196601, 65525, 851968, 196602, 65525, 851968, 196603, 65525, 851968, 196604, 65525, 851968, 196605, 65526, 851968, 196604, 65526, 851968, 196603, 65526, 851968, 196602, 65526, 851968, 196601, 65526, 851968, 196600, 65526, 851968, 196599, 65526, 851968, 196598, 65526, 851968, 196597, 65526, 851968, 196596, 65526, 851968, 196595, 65526, 851968, 196594, 65526, 851968, 131059, 65526, 851968, 131060, 65526, 851968, 131061, 65526, 851968, 131062, 65526, 851968, 131062, 65527, 851968, 131063, 65527, 851968, 131064, 65527, 851968, 131065, 65527, 851968, 131066, 65527, 851968, 131066, 65526, 851968, 131067, 65526, 851968, 131068, 65526, 851968, 131065, 65526, 851968, 131064, 65526, 851968, 131063, 65526, 851968, 131064, 3, 851968, 131063, 3, 851968, 131062, 3, 851968, 131062, 4, 851968, 131063, 4, 851968, 131063, 5, 786432, 131064, 5, 786432, 131065, 5, 786432, 131065, 4, 983040, 131064, 4, 851968, 131068, 8, 851968, 131063, 9, 786432, 131056, 0, 786432, 131059, 5, 786432, 131058, 5, 786432, 131057, 5, 786432, 131056, 5, 786432, 131056, 4, 786432, 131055, 4, 786432, 131055, 3, 786432, 131055, 2, 786432, 131056, 2, 786432, 131056, 1, 786432, -65550, 0, 786432, -65549, 0, 786432, -13, 0, 786432, -12, 0, 786432, 65524, 0, 786432, 65523, 0, 786432, 131059, 0, 786432, 131058, 0, 786432, 65522, 0, 786432, -14, 0, 786432, 65521, 0, 786432, -15, 0, 786432, 196594, 0, 786432, 196593, 0, 786432, 131057, 0, 786432, 65520, 0, 786432, -16, 0, 786432, -65551, 0, 786432, -131087, 0, 786432, -196623, 0, 786432, -196622, 0, 786432, -131086, 0, 786432, 262130, 0, 786432, 262129, 0, 786432, 327665, 0, 786432, 262128, 0, 786432, 196592, 0, 786432, -196621, 0, 786432, -131085, 0, 786432, -65548, 0, 786432, 196595, 0, 786432, -262158, 0, 786432, -262157, 0, 786432, -131084, 0, 786432, -65547, 0, 786432, -11, 0, 786432, 65525, 0, 786432, 131061, 0, 786432, 196597, 0, 786432, 196596, 0, 786432, 262132, 0, 786432, 327667, 0, 786432, 393203, 0, 786432, 393202, 0, 786432, 393201, 0, 786432, 327664, 0, 786432, 131055, 0, 786432, 65519, 0, 786432, -17, 0, 786432, -65552, 0, 786432, -131088, 0, 786432, -262160, 0, 786432, -327694, 0, 786432, -327693, 0, 786432, -262156, 0, 786432, -196620, 0, 786432, 131060, 0, 786432, 262131, 0, 786432, 327666, 0, 786432, -65553, 0, 786432, -131089, 0, 786432, -196625, 0, 786432, -196624, 0, 786432, -262159, 0, 786432, -327695, 0, 786432, 131062, 5, 786432, 131062, 6, 786432, 131062, 7, 786432, 131062, 8, 786432, 131062, 9, 786432, 131063, 6, 786432, 131063, 7, 786432, 131063, 8, 786432, 131064, 6, 786432, 131064, 7, 786432, 131064, 8, 786432, 131064, 9, 786432, 131065, 6, 786432, 131065, 7, 786432, 131065, 8, 786432, 131065, 9, 786432, 131066, 5, 786432, 131066, 6, 786432, 131066, 7, 786432, 131066, 8, 786432, 131066, 9, 786432, 131067, 5, 983040, 131067, 6, 786432, 131067, 7, 786432, 131067, 8, 786432, 131067, 9, 786432, 131065, 3, 983040, 131066, 4, 983040, 131068, 5, 983040, 131068, 6, 983040, 131067, 4, 983040, 131066, 3, 983040, 131066, 2, 983040, 131065, 2, 983040, 131067, 3, 983040, 131069, 6, 983040, 131069, 5, 983040, 131068, 4, 983040, 131067, 2, 983040, 131066, 1, 983040, 131068, 3, 983040, 131069, 4, 983040, 131070, 5, 983040, 131070, 6, 983040, 131068, 2, 983040, 131070, 4, 983040, 131071, 5, 983040, 131069, 3, 983040, 131068, 1, 983040, 131069, 1, 983040, 131070, 2, 983040, 131070, 3, 983040, 131071, 3, 983040, 131069, 2, 983040, 131068, 0, 983040, 65536, 5, 983040, 131071, 4, 983040, 65536, 4, 983040, 131070, 1, 983040, 131071, 2, 983040, 65536, 3, 983040, 65534, 0, 983040, 65534, 1, 983040, 65535, 1, 983040, 0, 1, 983040, 65533, 0, 983040, 65535, 0, 983040, 0, 0, 983040, 1, 0, 983040, 1, 1, 983040, 2, 1, 983040, 65533, 65535, 983040, 65532, 65535, 983040, 65534, 65535, 983040, 65535, 65535, 983040, 2, 0, 983040, 0, 65535, 983040, 65534, 65534, 983040, 65535, 65534, 983040, 1, 65535, 983040, 2, 65535, 983040, 0, 65534, 983040, 1, 65534, 983040, 65535, 65533, 983040, 65534, 65533, 983040, 0, 65533, 983040, 2, 65534, 983040, 1, 65533, 983040) +} +metadata/_editor_floor_ = Vector3(0, 0, 0) diff --git a/Scripts/Player.gd b/Scripts/Player.gd index 91c388e..db577ce 100644 --- a/Scripts/Player.gd +++ b/Scripts/Player.gd @@ -1,5 +1,7 @@ extends CharacterBody3D +@export var camera : Camera3D +@export var mouse_sensitivity : float = 0.003 # TODO: this is sketchy check that its framerate independant pls const SPEED = 5.0 const JUMP_VELOCITY = 4.5 @@ -7,6 +9,8 @@ const JUMP_VELOCITY = 4.5 # Get the gravity from the project settings to be synced with RigidBody nodes. var gravity = ProjectSettings.get_setting("physics/3d/default_gravity") +func _ready(): + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED func _physics_process(delta): # Add the gravity. @@ -14,12 +18,19 @@ func _physics_process(delta): velocity.y -= gravity * delta # Handle jump. - if Input.is_action_just_pressed("ui_accept") and is_on_floor(): + if Input.is_action_just_pressed("jump") and is_on_floor(): velocity.y = JUMP_VELOCITY + + #free the mouse for debugging + if Input.is_action_just_pressed("esc"): + if (Input.mouse_mode == Input.MOUSE_MODE_CAPTURED): + Input.mouse_mode = Input.MOUSE_MODE_VISIBLE + else: + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED # Get the input direction and handle the movement/deceleration. # As good practice, you should replace UI actions with custom gameplay actions. - var input_dir = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down") + var input_dir = Input.get_vector("mov_left", "mov_right", "mov_up", "mov_down") var direction = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized() if direction: velocity.x = direction.x * SPEED @@ -29,3 +40,11 @@ func _physics_process(delta): velocity.z = move_toward(velocity.z, 0, SPEED) move_and_slide() + + +func _input(event): + # camera control + if event is InputEventMouseMotion and Input.mouse_mode == Input.MOUSE_MODE_CAPTURED: + rotate_y(-event.relative.x * mouse_sensitivity) + camera.rotate_x(-event.relative.y * mouse_sensitivity) + camera.rotation.x = clampf(camera.rotation.x, -deg_to_rad(70), deg_to_rad(70)) diff --git a/Scripts/fpsController.gd b/Scripts/fpsController.gd deleted file mode 100644 index 350caa6..0000000 --- a/Scripts/fpsController.gd +++ /dev/null @@ -1,12 +0,0 @@ -extends Node3D - -@export var camera : Camera3D - -# Called when the node enters the scene tree for the first time. -func _ready(): - pass # Replace with function body. - - -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta): - pass diff --git a/TODO.txt b/TODO.txt index d86b57e..db39496 100644 --- a/TODO.txt +++ b/TODO.txt @@ -4,3 +4,4 @@ - [ ] level deign - [ ] level funciton - [ ] command functions +- [ ] test camera controls for framerate independance diff --git a/project.godot b/project.godot index 5d45833..517bd98 100644 --- a/project.godot +++ b/project.godot @@ -14,3 +14,40 @@ config/name="Chrono Chamber" run/main_scene="res://Levels/TestZone.tscn" config/features=PackedStringArray("4.2", "Forward Plus") config/icon="res://icon.svg" + +[input] + +mov_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) +] +} +mov_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) +] +} +mov_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) +] +} +mov_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) +] +} +jump={ +"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) +] +} +esc={ +"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":4194305,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} + +[rendering] + +textures/canvas_textures/default_texture_filter=0