From fb5877b1923472544dd62a8fed7678fb217f39be Mon Sep 17 00:00:00 2001 From: Axsajim Date: Wed, 6 Oct 2021 12:50:35 -0400 Subject: [PATCH] first commit --- ...n.png-487276ed1e3a0c39cad0279d744ee560.md5 | 3 + ....png-487276ed1e3a0c39cad0279d744ee560.stex | Bin 0 -> 3413 bytes default_env.tres | 7 ++ export_presets.cfg | 41 ++++++++++ icon.png | Bin 0 -> 3305 bytes icon.png.import | 34 ++++++++ maze_unofficial/Level.gd | 9 +++ maze_unofficial/Level.tscn | 47 +++++++++++ maze_unofficial/Monster.gd | 48 ++++++++++++ maze_unofficial/Monster.tscn | 33 ++++++++ maze_unofficial/tiles.meshlib | Bin 0 -> 53821 bytes maze_unofficial/tiles.tscn | 39 ++++++++++ project.godot | 60 ++++++++++++++ system/character/character.gd | 73 ++++++++++++++++++ system/character/character.tscn | 30 +++++++ test.tscn | 24 ++++++ 16 files changed, 448 insertions(+) create mode 100644 .import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 create mode 100644 .import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex create mode 100644 default_env.tres create mode 100644 export_presets.cfg create mode 100644 icon.png create mode 100644 icon.png.import create mode 100644 maze_unofficial/Level.gd create mode 100644 maze_unofficial/Level.tscn create mode 100644 maze_unofficial/Monster.gd create mode 100644 maze_unofficial/Monster.tscn create mode 100644 maze_unofficial/tiles.meshlib create mode 100644 maze_unofficial/tiles.tscn create mode 100644 project.godot create mode 100644 system/character/character.gd create mode 100644 system/character/character.tscn create mode 100644 test.tscn diff --git a/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 b/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 new file mode 100644 index 0000000..7b61c3e --- /dev/null +++ b/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 @@ -0,0 +1,3 @@ +source_md5="47313fa4c47a9963fddd764e1ec6e4a8" +dest_md5="2ded9e7f9060e2b530aab678b135fc5b" + diff --git a/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex b/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex new file mode 100644 index 0000000000000000000000000000000000000000..3ca6461f885d763a3f3c745fe6819ed84bfd666a GIT binary patch literal 3413 zcmV-b4XW}-L{n5i0000$000040000001yWO0000v4FCX8PDdb#P)Px>?@2^KRCt`-oOyIqRi4K` z_q|t3DwRDDvWJ8v3xOaYMxhmm%?Ro+POE_3f;x`N^ijuly0ry+x?82;==AADnbV6% z3*wpJhB|}V;zHO21Cjt52w6x%Dr8?O^=f%<{wOLoTB9j1OQGAfLx=ZuSDl6UDNZ05M#NFq3e2+kVF}RQm0$I3LG^`XY0@rIYr9> zd`fsm*R>~w5Mh^y-%*9G>%BrqzXE=tqXVD_A))J<(9w4YxIqYkVhTes7?ETHLXs{m z*CT|kX=ol7ZkH3c+8YM?&vlpw%ojq^~vZbzNHxUKYNtod zl@v)?As|dKg=C`cx~VBqbF+Fb?_)}eY}U3_Rdk^Q{)yc*8##~LSyjd zWTmolNfFo2nt~)rd|lhdq1tvzYg(B(K9=tnX7Gcbyg)^DL%)8LGLm_1?T^^Br#R)6!zlG>y;qm-Fg7f8|)^sgUs5)7At)NM}H#)xvL{`d5Tvqo{k zo9Q{3eDAR}bavZA#&bv&P*hkzbflG~>vz#^clp)ZogTIxIK@44r*QSuNqvGuS}n|- zk;jIeC$T#{{ra5gQrS>a#oMKIyz$U=6crZm*2lX;#&bv&VDI%l?QoM4Pyqn%l-BW2 zGgA2ds)zcOx7(e(Q(8A5?QoOQZ;VhOqzdTh?g1duY@nXrfNfN_#6`rXw>(>KQX$VeWGqR7LhJ1kCDKeUuv=FJ9R=Yev5{g-#CYi!13H1Op8x3l>A zSyVUoP|?^mY(|DcMPnD$%{@H(=-m_+PK_-|zlM=FXe~z=Iy;@p+6E4kALn}u=it_1^PU>4CWU3!r1R42@3ZlpPX?tmEIZ(atMhqy*7Dggd^q>+2)W^&ifH_+{HvHGpUl-9J3P{hIE)^uLmUCojD4t{!bF3U5L`LOIX zuk1WYN3VC+85d>d;bn`dX=viJFUy9cIphpTh>vE=3qPi|-N{e>=MXMW|ED`4!HQk= z(9j-u)gLV+MTcQA$(*ot_bWHZg0*)PkQQxZ*%RxqHMa-s@0$TbE`qBcT#BR^So^^- zKj8sR*t##e@Bj_%y?(+2xI8**KRAY@7+C$_(jn;#s(@SP&*ti>lljAEmDoBR7tZZP zhON`VA3m$(>Zy~tb^h!@+YYLL328|*wAtBSb~>aCUJPt6J558Ioe614gSHz~0S!$p zB*j>mJ84WvnY$R6J829_F%}w{S_W-5r~-<&mr#DZhDVAf5of)8LS}JRBaakKqO78t z;_W4awjERf9!=w!-)%w>8jml`4k?qPiN_aaqX>8k_m;rftl~ zh~>t-aUo-Jv~XkIIA&zT^4m?@sB3HCa=CQk%kP}Kh+&(Lf>FF^< zh8d`7?qS=ZdJdloyblM9sj1Q2T98b7d^nxGE)LeTQM|u)K+iEHCJfc-;?0kOix~v% z3+Vd5=536{$O}sgNRF`p;BYudoiv6ylg9ApFDfbCe_>&)+h?V6-*>Y9Ml&{wyyPh6 z<&5QtHxAKecMhA^^AVCz@DGb7k{n~9va*tU@41gfH!Wt-O^Ycm-pa~3ndBr!2J9CZ zW*~9^*EuIKl9h8ZDK6gHNAKQy?xV7@lH?c*KP;LU3f4!ifN+z-wG-k|Rh3mwucErT z8t^``^)Ihy@9y0!$W8F;mo?VPmItq8%Y%hvjkWsKFUU<`@18xZe|bF)ht~+JuC8X) z)2mTcm1`%&_eF_Df)OhqJT5EY0@fQ8h32l|$MKrGR18YsC+r*R%mvUr zA0bgdZA%YXSy^Of_qP=!Nn+9BMI5MV9X8zqRjn*qya?&Mj8%4aHd$F&)VB2eeJB9n z#qHmqBY1wzb1YaepM-=2^73+7v*vkv%n5vQ%ra2uX-AQUZh} zyJdX8FoSjf^=rb6%Gt3x`RTS&PM-01g)amli(Z~Q)6JusOEDW{;;lyN+6Ipi>^k1e z`W?snz6XNKqqCu;iVY=Iq{M{L-0j5S@&s&qp$K{S*5UFDDLjBj(|Pw`eb97+p?M*= zyiY)d071_HS(dnSb~;P0N};yZj@zSA)!c)o>r^&*-^Z`2T4@Tw$~+jxMwpl}J{Eup zVa=F$P#I>7EA^ihZ@*K4uqf;AP^k4bhF}b_NcUUJ1MK{AST>EdTj6p(y-Qm(&|<=lvMRA zi?$euk1%oX+)SpX_*-=6;<4{eCS?fb>RRpm%Z4uptdF;vD6MJbm7OPP?o$1du=mUv zKROCfT`o)p|I|~v-9@|Ig{{MZk}hF3$N^VsSrQ~hn>kR`!mGQg{OSQ#UN@fU=`qNX zz!M<3Vm8PqvV^U}5ila`YtuU#uRu*h6RENOPKys+4mSY#DN%fLy0h=M4~bD`WJ#jJ z)-@pW6}B#Bj*lZT%Ivr5N0=3|&w7>T(>@m|u@+99J`k$hMnxh$&fk&pjTH##apCO!>cqf;oQI$l zaG?AIi@r09!mK#m{`-$gvXO~gc6Nr;c>S7&Q(qphG9Mu8ZoYuc#a5WARy4FIIbhsW}&u}{(=(>gggpe-#+oQUsp}C#7)LxwSZqRjf_)H+~SA?u902;am z%meWZXivG-UbANc=P)Px>qe(&U$es`gSqKCHF-lq>v1vga#%UF>TTrLR zW%{UNJKZi|Pj@Rc9GyPBD1CamMMf6SL~V^ag9~Vzut^L^0!Tv0LK0FTdnJ`x->EF(MZIP5kY*1-@^egP~7mH>({qi7{6 zQF;bN-XMq~+RzA8lI9AtJuz@PY*+{SP-Gbd@mZ(r*eE&`XO5!C>w#-pcmS28K^qzY zfTGCjor*I@ltgKb03nh#Fh$KpDL=o}gj-g4v6{}ZR1*mvXv?|gEA&Yr#r;Zw*d zUabIx8iHf+WoIO_c11Ba&!34XihSMF&C#YFDjU0)mmbXz3ex!D&t9UYp>;&R%(O(_ z*z^;&A84SWzKiQpqsdQ+Vs?rFS(f?R;c8xg_ft;Roec_~1KsVww}wzq5D}*5x6k|& zf~2A3@L4|ix|Q=L>rnmKE;B3UB=OMQxAK$Ce;LvDp?hwn-{Rn}Uo~U4IXTs4V%MQY zCWULcZFU0R%gbU;_Ef(A#76r1%|YWis0t`9$R{cyjFnsV(POrI)SGQi-l{mu{e?5R zepcp?AQ54D3g_mswd@RLn{z~;^Cl}>%j@}TWixL+audY``MmSV{-E(3R0Ws^U9%mk zmAond;N8k*{(f!}e^~d(i1Hq@jdv@XN2MLAl}3yaECf{nz5N3KMCjDCFzB_7)gkjj z>2Z={^e74l7u>P4oo1{Kc~sgFI`xP#f`uR}z_p~qLwws5)h)eLxAX=?+fB2_6kG)a zeE3U}YSi;Qc}gq*;kw|Tu5Oy{F)l`0;$$RA6)@d^I9>n9N^W1g0D!WJYJT&d@6p`W zfmWmD=^x$2@|)+=&@n(wn<-#M#zIY-iH42=UU>XI3i7l0^?#ILwb@CU63f5b_jeS| zn+d@CpB>^?Ti*1WuHSaRniWO-^Xl8!b+D0stAl$BQjr8G`KX-vGpCc0lEAKmjl6lN z5r?ddL)6hBi2|!`NM+@MRO*^qsi>~y`%4$%P+-S_M#8ibt8Pf;m7O23?cF^-X$52l zEV@3AM^`Q9vy(=)?W+gi)8lPCP&k!)Z(Bsa#m@S7j#1gzJx&pQ!yzlYvA==iExkN@ zTMnz!68Wg=9Ius~p?A=A>P(5$@#w1MG`6<$`Il8=(j0RI#KlIj>!qL4)MMjk|8*3* zbL8w!iwnbSb<*17eb=8TBt(Uv*Qz*e>>p9CRtapnJD-#&4Xd8ojIpD~Yk&6&7;_U` z|L{sgNzJAYPkIOsaN5{^*@Xva?HTkC9>DHY*!1B^L`lv1hgXhC$EO1BSh9fYXU*VG zpVwjRvs^m2ml?)B3xE2&j_YU5;Ep8=e75zefN3cSw04`>U3D&~3|AIJAJnEseqE*p>uF=1Cv$SfvI z!(+vnRMj+4vb)@8Tb~MW$}-RYemjyN^W@U3pfWj;cyehLk|6W*KkUFMkM3W9AE!Wb zTL-_}Udr6GXl}`!5;P_!3b*7=VQyM9zuR6)b6dxl?fo)@-u`$$Pu#bHB*W+#Gp!_Y z*ZdUbq#B3_QPbElK4*QE)$x+;qpGazKD1C!=jx=^ta=2+!&oRjmg4Jf{ z?T`J78TjoBD9Y&OtwFEhrIq<48uS2IEEbY8C$TVd5`X!kj*`Qd7RI`3elib!C*xb1 z(UIgPMzT12GEcpEly0*vU|ugqP(r~!E}l-JK~G&>9S_|9Aj@uD&azvVQ&RF4YZp!> zJ3hi|zlabu5u>=y+3^vqT{xAJlDCHFJ#hbn)Ya9IXwdWH;_1O)ef$at)k@qrEf%ZQ z%DU&)(a_KUxMpn2t6Mm@e?LVzaUT6LCWo=>;TzfYZ~+;U!#wJXa^g66-~d}*-Gas9 zGQt`f8d&$-daPC}H%^NkiV}?n<5oawj2=M{sHv&JXl(bWFDox6HP$o6KRY=Jl_;PR zMP?^QdD4vyrL3&XqugjTQd3idAPA(!=*P?c_!Z!e`f9aWuk~t4qQew;9IwMq>%w#92+*iNN#Qp zadB}J6)j=I#urf#czO3X!C*Z&LD5rfCLY^S$>ZP6}eFW#%-2L)+t{`cPyqLD6))yK1?m7F>6=?Y&8f)>3zbH1O)cT}QNtB4KL(A@1i zMzF88gDrb&hn~H`?o`-XUeDI@dXfwwboAS>*qvV6UMhkfzO~q$V+s%8loj4P(&9H= ze`sC`uI?L9L4e;YK&2A7XF)0}u1lh+%Z$S*Q{ORwtSHpAyWYpI>bqzU!p`gqlf$*l zO^*g(+T?Hq0n%ebkyIin(R#FM6&9;^6WJU5R)By&tZQ6PV zS^MWhqtcj}7)kON#>?4Gv(K#2=6mv)5;@W->l(1q*>9t&xfesIn$&3j4WxkffXaq0 zwwBkAD2vjoi4E8CK;cwoC3#wO!|}v-XOJ`obIo05{&DMQIRyHAd5@%-0xA%uA0UK2qng>xb(kvMzX)7t^ z);-|T`mgSsHKM$+a{!w|Mt5QLwD>sA+;u-+k%z_ZL?el$#&|kX?ygLfm zxZ^Fo^bOhx)w*6In?vS{Q|uk08cKRK}t+0ukQSCOyP$^HEC+zzX51M#=e-?*xHWMDRcLdIV41daHy{HimwDo z6!_O=*(}MK!YeyJpmgu(cF1tpEv}m;0s8{4z4HlHyMxDncn8zs!g+OXEk`CeEj}9N zq#Ag1$#jyV_5AjYQg*!mS->;`S^;iU)ih9D+eks)H2z`1RHny;F<^CEwk+}d^k^Ph zl);*XQ|ayL;rZWh=fA(G2#AJz1&r&as9I8S@9m3Owftrb5n*)pTluK^9LHOFIo{G2 zG}l$9R*{<+L2hCsOJ~Lt6Q-rRub*8X{*4{)e}>%=_&DxOFeq1LRia4Yyj*Tyynw>F zxkKf(MiaG0*L|V-^Zhtvg-(-|F0&1rU8bqab*n5TT8~C860O$|6Rt%P1=1(EjIQZ% z;Y^PU2VC*~^2!sG?mbBPS0~0yd-+086)+rHjhfk6>CB$t`o%;=kdYF9NwiKkwbIpN z;_FlOuHQHHSZ&@fUuSI-S*t`DjsiIB z{=1M@JKVC$a8z{2;xCPfRb{~T>uo#5rL4L+z9n`rSUt3Tt nAZ`TZm+q1gPVN84&*%Ra7her>#-hHS00000NkvXXu0mjf|6N@O literal 0 HcmV?d00001 diff --git a/icon.png.import b/icon.png.import new file mode 100644 index 0000000..96cbf46 --- /dev/null +++ b/icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/maze_unofficial/Level.gd b/maze_unofficial/Level.gd new file mode 100644 index 0000000..bda4f22 --- /dev/null +++ b/maze_unofficial/Level.gd @@ -0,0 +1,9 @@ +extends Spatial + +onready var monster = $Navigation/Monster +onready var player = $Navigation/Character +onready var nav = $Navigation + +func _ready(): + monster.set_nav(nav) + monster.set_target(player) diff --git a/maze_unofficial/Level.tscn b/maze_unofficial/Level.tscn new file mode 100644 index 0000000..c4fc569 --- /dev/null +++ b/maze_unofficial/Level.tscn @@ -0,0 +1,47 @@ +[gd_scene load_steps=8 format=2] + +[ext_resource path="res://maze_unofficial/tiles.meshlib" type="MeshLibrary" id=1] +[ext_resource path="res://system/character/character.tscn" type="PackedScene" id=2] +[ext_resource path="res://maze_unofficial/Level.gd" type="Script" id=3] +[ext_resource path="res://maze_unofficial/Monster.tscn" type="PackedScene" id=4] + +[sub_resource type="CubeMesh" id=1] + +[sub_resource type="SpatialMaterial" id=2] +flags_transparent = true +albedo_color = Color( 1, 1, 1, 0 ) + +[sub_resource type="BoxShape" id=3] + +[node name="Level" type="Spatial"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.01558, 0 ) +script = ExtResource( 3 ) + +[node name="Navigation" type="Navigation" parent="."] + +[node name="NavigationMeshInstance" type="NavigationMeshInstance" parent="Navigation"] + +[node name="Floor" type="GridMap" parent="Navigation/NavigationMeshInstance"] +mesh_library = ExtResource( 1 ) +data = { +"cells": PoolIntArray( 0, 0, 2, 1, 0, 2, 2, 0, 2, 3, 0, 2, 4, 0, 1, 5, 0, 1, 6, 0, 1, 7, 0, 2, 8, 0, 2, 9, 0, 2, 10, 0, 1, 11, 0, 2, 12, 0, 2, 13, 0, 1, 65532, 0, 1, 65533, 0, 2, 65534, 0, 1, 65535, 0, 2, 0, 1, 2, 1, 1, 2, 2, 1, 2, 3, 1, 2, 4, 1, 2, 5, 1, 2, 6, 1, 2, 7, 1, 2, 8, 1, 2, 9, 1, 2, 10, 1, 2, 11, 1, 2, 12, 1, 2, 13, 1, 1, 65532, 1, 1, 65533, 1, 2, 65534, 1, 2, 65535, 1, 2, 0, 2, 1, 1, 2, 1, 2, 2, 1, 3, 2, 1, 4, 2, 1, 5, 2, 1, 6, 2, 1, 7, 2, 1, 8, 2, 1, 9, 2, 1, 10, 2, 1, 11, 2, 1, 12, 2, 1, 13, 2, 1, 65532, 2, 1, 65533, 2, 1, 65534, 2, 1, 65535, 2, 1, 0, 65523, 1, 1, 65523, 1, 2, 65523, 1, 3, 65523, 1, 4, 65523, 1, 5, 65523, 1, 6, 65523, 1, 7, 65523, 1, 8, 65523, 1, 9, 65523, 1, 10, 65523, 1, 11, 65523, 1, 12, 65523, 1, 13, 65523, 1, 65532, 65523, 1, 65533, 65523, 1, 65534, 65523, 1, 65535, 65523, 1, 0, 65524, 2, 1, 65524, 2, 2, 65524, 2, 3, 65524, 2, 4, 65524, 2, 5, 65524, 2, 6, 65524, 2, 7, 65524, 2, 8, 65524, 2, 9, 65524, 2, 10, 65524, 2, 11, 65524, 2, 12, 65524, 2, 13, 65524, 1, 65532, 65524, 1, 65533, 65524, 2, 65534, 65524, 2, 65535, 65524, 2, 0, 65525, 1, 1, 65525, 1, 2, 65525, 2, 3, 65525, 1, 4, 65525, 2, 5, 65525, 1, 6, 65525, 1, 7, 65525, 1, 8, 65525, 1, 9, 65525, 1, 10, 65525, 2, 11, 65525, 2, 12, 65525, 2, 13, 65525, 1, 65532, 65525, 1, 65533, 65525, 2, 65534, 65525, 1, 65535, 65525, 1, 0, 65526, 2, 1, 65526, 2, 2, 65526, 2, 3, 65526, 2, 4, 65526, 2, 5, 65526, 2, 6, 65526, 2, 7, 65526, 2, 8, 65526, 2, 9, 65526, 2, 10, 65526, 2, 11, 65526, 2, 12, 65526, 2, 13, 65526, 1, 65532, 65526, 1, 65533, 65526, 2, 65534, 65526, 2, 65535, 65526, 2, 0, 65527, 2, 1, 65527, 2, 2, 65527, 2, 3, 65527, 1, 4, 65527, 2, 5, 65527, 1, 6, 65527, 2, 7, 65527, 1, 8, 65527, 2, 9, 65527, 1, 10, 65527, 1, 11, 65527, 1, 12, 65527, 2, 13, 65527, 1, 65532, 65527, 1, 65533, 65527, 2, 65534, 65527, 1, 65535, 65527, 2, 0, 65528, 1, 1, 65528, 1, 2, 65528, 1, 3, 65528, 2, 4, 65528, 2, 5, 65528, 1, 6, 65528, 2, 7, 65528, 1, 8, 65528, 2, 9, 65528, 2, 10, 65528, 2, 11, 65528, 2, 12, 65528, 2, 13, 65528, 1, 65532, 65528, 1, 65533, 65528, 2, 65534, 65528, 2, 65535, 65528, 1, 0, 65529, 2, 1, 65529, 2, 2, 65529, 2, 3, 65529, 2, 4, 65529, 2, 5, 65529, 1, 6, 65529, 2, 7, 65529, 1, 8, 65529, 2, 9, 65529, 1, 10, 65529, 1, 11, 65529, 1, 12, 65529, 2, 13, 65529, 1, 65532, 65529, 1, 65533, 65529, 2, 65534, 65529, 2, 65535, 65529, 2, 0, 65530, 2, 1, 65530, 2, 2, 65530, 2, 3, 65530, 2, 4, 65530, 2, 5, 65530, 1, 6, 65530, 2, 7, 65530, 1, 8, 65530, 2, 9, 65530, 2, 10, 65530, 2, 11, 65530, 2, 12, 65530, 2, 13, 65530, 1, 65532, 65530, 1, 65533, 65530, 2, 65534, 65530, 2, 65535, 65530, 1, 0, 65531, 2, 1, 65531, 1, 2, 65531, 1, 3, 65531, 1, 4, 65531, 2, 5, 65531, 2, 6, 65531, 2, 7, 65531, 2, 8, 65531, 2, 9, 65531, 2, 10, 65531, 2, 11, 65531, 1, 12, 65531, 2, 13, 65531, 1, 65532, 65531, 1, 65533, 65531, 2, 65534, 65531, 2, 65535, 65531, 1, 0, 65532, 2, 1, 65532, 2, 2, 65532, 2, 3, 65532, 2, 4, 65532, 2, 5, 65532, 2, 6, 65532, 2, 7, 65532, 2, 8, 65532, 2, 9, 65532, 2, 10, 65532, 2, 11, 65532, 2, 12, 65532, 2, 13, 65532, 1, 65532, 65532, 1, 65533, 65532, 2, 65534, 65532, 2, 65535, 65532, 1, 0, 65533, 2, 1, 65533, 2, 2, 65533, 1, 3, 65533, 2, 4, 65533, 1, 5, 65533, 1, 6, 65533, 1, 7, 65533, 2, 8, 65533, 2, 9, 65533, 2, 10, 65533, 1, 11, 65533, 2, 12, 65533, 2, 13, 65533, 1, 65532, 65533, 1, 65533, 65533, 2, 65534, 65533, 2, 65535, 65533, 2, 0, 65534, 1, 1, 65534, 2, 2, 65534, 1, 3, 65534, 2, 4, 65534, 2, 5, 65534, 2, 6, 65534, 2, 7, 65534, 2, 8, 65534, 2, 9, 65534, 1, 10, 65534, 2, 11, 65534, 2, 12, 65534, 2, 13, 65534, 1, 65532, 65534, 1, 65533, 65534, 2, 65534, 65534, 1, 65535, 65534, 1, 0, 65535, 2, 1, 65535, 2, 2, 65535, 1, 3, 65535, 2, 4, 65535, 2, 5, 65535, 2, 6, 65535, 2, 7, 65535, 2, 8, 65535, 1, 9, 65535, 2, 10, 65535, 2, 11, 65535, 1, 12, 65535, 2, 13, 65535, 1, 65532, 65535, 1, 65533, 65535, 2, 65534, 65535, 2, 65535, 65535, 2 ) +} +__meta__ = { +"_editor_clip_": 0 +} + +[node name="Character" parent="Navigation" instance=ExtResource( 2 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.73979, 2.41006, 0 ) + +[node name="Monster" parent="Navigation" instance=ExtResource( 4 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 22.103, 1.22928, -21.007 ) + +[node name="MeshInstance" type="MeshInstance" parent="."] +transform = Transform( 30, 0, 0, 0, 1, 0, 0, 0, 30, 15, 0, 0 ) +mesh = SubResource( 1 ) +material/0 = SubResource( 2 ) + +[node name="StaticBody" type="StaticBody" parent="MeshInstance"] + +[node name="CollisionShape" type="CollisionShape" parent="MeshInstance/StaticBody"] +shape = SubResource( 3 ) diff --git a/maze_unofficial/Monster.gd b/maze_unofficial/Monster.gd new file mode 100644 index 0000000..81f22da --- /dev/null +++ b/maze_unofficial/Monster.gd @@ -0,0 +1,48 @@ +extends KinematicBody + +const SPEED = 2.0 + +var target = null +var nav : Navigation = null +var vel = Vector3() + +onready var hitbox = $HitboxArea + +func _ready(): + hitbox.connect("body_entered", self, "on_hit_player") + +func _physics_process(delta): + if target == null: + return + + var path = get_path_to(target.global_transform.origin) + + if path.size() > 0: + move_along_path(path) + +func get_path_to(target): + return nav.get_simple_path(global_transform.origin, target) + +func move_along_path(path): + if path.size() <= 0: + return + + path.remove(0) + + var target = path[0] + + if global_transform.origin.distance_to(target) < 0.1: + path.remove(0) + + vel = (target - translation).normalized() * SPEED + + vel = move_and_slide(vel) + +func set_target(target): + self.target = target + +func set_nav(nav): + self.nav = nav + +func on_hit_player(body): + print(body.name, " got catch by the Monster!") diff --git a/maze_unofficial/Monster.tscn b/maze_unofficial/Monster.tscn new file mode 100644 index 0000000..ef6a2d2 --- /dev/null +++ b/maze_unofficial/Monster.tscn @@ -0,0 +1,33 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://maze_unofficial/Monster.gd" type="Script" id=1] + +[sub_resource type="CapsuleShape" id=1] +radius = 0.65 + +[sub_resource type="CapsuleMesh" id=2] +radius = 0.65 + +[sub_resource type="BoxShape" id=3] +extents = Vector3( 0.7138, 1.17588, 1 ) + +[node name="Monster" type="KinematicBody"] +collision_layer = 8 +script = ExtResource( 1 ) + +[node name="CollisionShape" type="CollisionShape" parent="."] +transform = Transform( 1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 1.02075, 0 ) +shape = SubResource( 1 ) + +[node name="MeshInstance" type="MeshInstance" parent="."] +transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 1.02075, 0 ) +mesh = SubResource( 2 ) +material/0 = null + +[node name="HitboxArea" type="Area" parent="."] +collision_layer = 8 +collision_mask = 4 + +[node name="CollisionShape" type="CollisionShape" parent="HitboxArea"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 ) +shape = SubResource( 3 ) diff --git a/maze_unofficial/tiles.meshlib b/maze_unofficial/tiles.meshlib new file mode 100644 index 0000000000000000000000000000000000000000..009767a0613bab1a20c25b6ebab5f0861f979f04 GIT binary patch literal 53821 zcmeHQTa(;I74F24#Dv@+F%Tf33aWggn0P}HoARzV4#Wl6DQZm>kD_O$XQr`kku-bZ z$v?ne-|aVk0*@4L;elu1AMhu5NS=msT54^tRvKwE(u`)+Q+2l0r%#_g-*@_=nTOu3 zn_Hid=yL)}Dc^+W8_XYF=UtC_d(xzIIfkC!1@V~gjJ+N+Os7XpBXA7A$81JkRoiT8 zG4i_5*nQ?1uE!mZ2YcijptIR-V7S!x$+w_3FzL`Y0*~6hOFd=>@&k3(Y~{T z<2Wwup^w)N+HGuQeR3*RZ8I-myN1b!qk!8(@@Cv(J4T@hACR|VJr3eJ+zt$% z|CuSSb{x;_LuA}FsZBldM%-nru?kRab1cF7OpPS9pMf#I

`96#gq3$`R;~5Bu`bHR! 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 O1&SZ+zjbr#lm7z&q~ieq literal 0 HcmV?d00001 diff --git a/maze_unofficial/tiles.tscn b/maze_unofficial/tiles.tscn new file mode 100644 index 0000000..ea64fbd --- /dev/null +++ b/maze_unofficial/tiles.tscn @@ -0,0 +1,39 @@ +[gd_scene load_steps=7 format=2] + +[sub_resource type="PlaneMesh" id=7] + +[sub_resource type="SpatialMaterial" id=14] +albedo_color = Color( 0.486275, 0.486275, 0.486275, 1 ) + +[sub_resource type="NavigationMesh" id=8] +vertices = PoolVector3Array( 1, 0, 1, -1, 0, 1, 1, 0, -1, -1, 0, -1 ) +polygons = [ PoolIntArray( 0, 1, 2 ), PoolIntArray( 1, 3, 2 ) ] + +[sub_resource type="CubeMesh" id=4] +size = Vector3( 2, 6, 2 ) + +[sub_resource type="SpatialMaterial" id=5] +albedo_color = Color( 0.180392, 0.180392, 0.180392, 1 ) + +[sub_resource type="BoxShape" id=6] +extents = Vector3( 1, 3, 1 ) + +[node name="tiles" type="Node"] + +[node name="floor" type="MeshInstance" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -2.37159, 0, 0 ) +mesh = SubResource( 7 ) +material/0 = SubResource( 14 ) + +[node name="NavigationMeshInstance" type="NavigationMeshInstance" parent="floor"] +navmesh = SubResource( 8 ) + +[node name="Wall" type="MeshInstance" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 ) +mesh = SubResource( 4 ) +material/0 = SubResource( 5 ) + +[node name="StaticBody" type="StaticBody" parent="Wall"] + +[node name="CollisionShape" type="CollisionShape" parent="Wall/StaticBody"] +shape = SubResource( 6 ) diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..600a1c6 --- /dev/null +++ b/project.godot @@ -0,0 +1,60 @@ +; 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=4 + +[application] + +config/name="A Vengeful Mark" +run/main_scene="res://test.tscn" +config/icon="res://icon.png" + +[input] + +move_forward={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"unicode":0,"echo":false,"script":null) + ] +} +move_backward={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"unicode":0,"echo":false,"script":null) + ] +} +move_right={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"unicode":0,"echo":false,"script":null) + ] +} +move_left={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"unicode":0,"echo":false,"script":null) + ] +} +jump={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null) + ] +} + +[layer_names] + +3d_physics/layer_1="Grid" +3d_physics/layer_3="Player" +3d_physics/layer_4="Monster" + +[physics] + +common/enable_pause_aware_picking=true + +[rendering] + +quality/driver/driver_name="GLES2" +vram_compression/import_etc=true +vram_compression/import_etc2=false +environment/default_environment="res://default_env.tres" diff --git a/system/character/character.gd b/system/character/character.gd new file mode 100644 index 0000000..3e684f7 --- /dev/null +++ b/system/character/character.gd @@ -0,0 +1,73 @@ +extends KinematicBody + +var speed = 7 +const ACCEL_DEFAULT = 2 +const ACCEL_AIR = 1 +onready var accel = ACCEL_DEFAULT +var gravity = 9.8 +var jump = 3 + +var cam_accel = 40 +var mouse_sense = 0.1 +var snap + +var direction = Vector3() +var velocity = Vector3() +var gravity_vec = Vector3() +var movement = Vector3() + +onready var head = $Head +onready var camera = $Head/Camera + +func _ready(): + #hides the cursor + Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) + +func _input(event): + #get mouse input for camera rotation + if event is InputEventMouseMotion: + rotate_y(deg2rad(-event.relative.x * mouse_sense)) + head.rotate_x(deg2rad(-event.relative.y * mouse_sense)) + head.rotation.x = clamp(head.rotation.x, deg2rad(-89), deg2rad(89)) + +func _process(delta): + #camera physics interpolation to reduce physics jitter on high refresh-rate monitors + if Engine.get_frames_per_second() > Engine.iterations_per_second: + camera.set_as_toplevel(true) + camera.global_transform.origin = camera.global_transform.origin.linear_interpolate(head.global_transform.origin, cam_accel * delta) + camera.rotation.y = rotation.y + camera.rotation.x = head.rotation.x + else: + camera.set_as_toplevel(false) + camera.global_transform = head.global_transform + +func _physics_process(delta): + #get keyboard input + direction = Vector3.ZERO + var h_rot = global_transform.basis.get_euler().y + var f_input = Input.get_action_strength("move_backward") - Input.get_action_strength("move_forward") + var h_input = Input.get_action_strength("move_right") - Input.get_action_strength("move_left") + direction = Vector3(h_input, 0, f_input).rotated(Vector3.UP, h_rot).normalized() + + #jumping and gravity + if is_on_floor(): + snap = -get_floor_normal() + accel = ACCEL_DEFAULT + gravity_vec = Vector3.ZERO + else: + snap = Vector3.DOWN + accel = ACCEL_AIR + gravity_vec += Vector3.DOWN * gravity * delta + + if Input.is_action_just_pressed("jump") and is_on_floor(): + snap = Vector3.ZERO + gravity_vec = Vector3.UP * jump + + #make it move + velocity = velocity.linear_interpolate(direction * speed, accel * delta) + movement = velocity + gravity_vec + + move_and_slide_with_snap(movement, snap, Vector3.UP) + + + diff --git a/system/character/character.tscn b/system/character/character.tscn new file mode 100644 index 0000000..7927596 --- /dev/null +++ b/system/character/character.tscn @@ -0,0 +1,30 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://system/character/character.gd" type="Script" id=1] + +[sub_resource type="CapsuleShape" id=1] +radius = 0.5 + +[sub_resource type="CapsuleMesh" id=2] +radius = 0.5 + +[node name="Character" type="KinematicBody"] +transform = Transform( 1, 0, 0, 0, 1.5, 0, 0, 0, 1, 0, 0, 0 ) +collision_layer = 4 +collision_mask = 9 +script = ExtResource( 1 ) + +[node name="CollisionShape" type="CollisionShape" parent="."] +transform = Transform( 1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, 0 ) +shape = SubResource( 1 ) + +[node name="MeshInstance" type="MeshInstance" parent="."] +transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0 ) +mesh = SubResource( 2 ) +material/0 = null + +[node name="Head" type="Spatial" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0 ) + +[node name="Camera" type="Camera" parent="Head"] +fov = 90.0 diff --git a/test.tscn b/test.tscn new file mode 100644 index 0000000..3d556fe --- /dev/null +++ b/test.tscn @@ -0,0 +1,24 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://system/character/character.tscn" type="PackedScene" id=1] + +[sub_resource type="CubeMesh" id=1] + +[sub_resource type="BoxShape" id=2] + +[node name="test" type="Spatial"] + +[node name="Spatial" type="Spatial" parent="."] +transform = Transform( 4.96785, 0, 0, 0, 0.357803, 0, 0, 0, 4.45636, 0, 0, 0 ) + +[node name="ground" type="MeshInstance" parent="Spatial"] +mesh = SubResource( 1 ) +material/0 = null + +[node name="StaticBody" type="StaticBody" parent="Spatial/ground"] + +[node name="CollisionShape" type="CollisionShape" parent="Spatial/ground/StaticBody"] +shape = SubResource( 2 ) + +[node name="Character" parent="." instance=ExtResource( 1 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.47987, 0 )