From 3a2047fd2d1c47ba4b75412a8ea1fb7bd097b0e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojte=CC=8Cch=20Struha=CC=81r?= Date: Mon, 19 May 2025 20:08:10 +0200 Subject: [PATCH] Reuse portal prefab, new icon Using the portal like this makes it easier to change defaults --- components/portal_prefab.tscn | 58 ++++++++++ icon.png | Bin 0 -> 32054 bytes icon.png.import | 34 ++++++ project.godot | 6 +- world.tscn | 197 ++++------------------------------ 5 files changed, 119 insertions(+), 176 deletions(-) create mode 100644 components/portal_prefab.tscn create mode 100644 icon.png create mode 100644 icon.png.import diff --git a/components/portal_prefab.tscn b/components/portal_prefab.tscn new file mode 100644 index 0000000..725f87b --- /dev/null +++ b/components/portal_prefab.tscn @@ -0,0 +1,58 @@ +[gd_scene load_steps=6 format=4 uid="uid://dl3qjl3fwwvlm"] + +[ext_resource type="Script" uid="uid://cw1r4c1d7beyv" path="res://addons/portals/scripts/portal_3d.gd" id="1_1cbrx"] +[ext_resource type="Material" uid="uid://dcfkcyddxkglf" path="res://addons/portals/materials/editor-preview-portal-material.tres" id="2_rfxbf"] +[ext_resource type="Script" uid="uid://bxcel82b180o3" path="res://addons/portals/scripts/portal_boxmesh.gd" id="3_xuvre"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_o6p8a"] +_surfaces = [{ +"aabb": AABB(-1, -1, -1, 2, 2, 1), +"attribute_data": PackedByteArray("AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPw=="), +"format": 34359742487, +"index_count": 36, +"index_data": PackedByteArray("AAABAAQABAABAAUAAQADAAUABQADAAcAAwACAAcABwACAAYAAgAAAAYABgAAAAQABAAFAAYABgAFAAcAAAABAAIAAgABAAMA"), +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 8, +"vertex_data": PackedByteArray("AACAvwAAgD8AAAAAAACAPwAAgD8AAAAAAACAvwAAgL8AAAAAAACAPwAAgL8AAAAAAACAvwAAgD8AAIC/AACAPwAAgD8AAIC/AACAvwAAgL8AAIC/AACAPwAAgL8AAIC//3//f/9/AID/f/9//38AgP9//3//fwCA/3//f/9/AID/f/9//38AgP9//3//fwCA/3//f/9/AID/f/9//38AgA==") +}] +script = ExtResource("3_xuvre") +size = Vector3(2, 2, 1) + +[sub_resource type="BoxShape3D" id="BoxShape3D_godo4"] +size = Vector3(2, 2, 1) + +[node name="PortalPrefab" type="Node3D" groups=["portals"]] +process_priority = 100 +process_physics_priority = 100 +script = ExtResource("1_1cbrx") +_portal_mesh_path = NodePath("Portal3D_Mesh") +_teleport_area_path = NodePath("TeleportArea") +_teleport_collider_path = NodePath("TeleportArea/Collider") +portal_size = Vector2(2, 2) +portal_render_layer = 524288 +portal_frame_width = 0.0 +viewport_size_mode = 1 +_viewport_size_max_width_absolute = 1920 +view_direction = 1 +is_teleport = true +teleport_direction = 0 +rigidbody_boost = 0.0 +teleport_collision_mask = 32768 +teleport_tolerance = 0.5 +teleport_interactions = 0 +start_deactivated = false +metadata/_custom_type_script = "uid://cw1r4c1d7beyv" +metadata/_edit_group_ = true + +[node name="Portal3D_Mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.05, 0, 0, 0) +layers = 524288 +material_override = ExtResource("2_rfxbf") +cast_shadow = 0 +mesh = SubResource("ArrayMesh_o6p8a") + +[node name="TeleportArea" type="Area3D" parent="."] + +[node name="Collider" type="CollisionShape3D" parent="TeleportArea"] +shape = SubResource("BoxShape3D_godo4") diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e95e19d48fa01132ebfa1daa0a35e9acf3588246 GIT binary patch literal 32054 zcmZ5|1yoes_x7D(Xr!e}kdjnT=@~&nxA|H`H3aJx1$R<4geBxZx{2Y_Ld$jPb{r%og`Ve>Y7+tY%L^N z_3o+&s<_Bl+Sn@ix>;)Zs%k&=wSOvV!3vimknk1*1vpxIn6r30IykwDc}uch$rS^? z#{5`-mE~%RhrJ}LzKS}FjI*01%RPQUenD0#0u~833o9|rhjRZO2EUVJwej$95fc#b z^77*M65@Auvlh55Dk>@Ai2ODA_5XOI7zpl<7J>7f767M$S@E-J}-_x7FtZ`9!b8x_DDSm57@LDdQTPj}!q z|I@yu6R2`GP`4Iap0_}g>DtQ3s6UdCVNrK;wz74w1OS>?$LI#7Hg(E&H3y{(DoPIz zyeHV1uLr5V7VD~K%H*5==JSati2i1s#CnNKtV*n^O5E#&&58S`m=W*{2OlTMmZ5Iw5_QL6Aw~5ImvEX$$bhZ z7Z0Ay?+-W)sO`JBuq#1}RSb`wtydhG*l!#h|6Up_So)~5W>`^psZ(h8dqnvCo54(( zunG2fqd!bO^JIH&)TaKQ&sO!C=;|!VAY`OhpM0F4y!61ai}OBoz2Esx#~e|)DS9`) zY5m(%X8kyR<5ec#Hvti87m`^(8pH%U(vOxcS7B~gXD|AD4y9aoWD&53S06>i3@x}58}iwuwxbYm$WW+P^6Y-#aoghl;&nZv+0E*? z$a`?nzjMKVf5@_^EcG#Xr9evMPbShY5)IEzhm!}Ay(T^54VwZ3lG7Rfw|+KfbmgA4 zsyMhfTm9v5V2|r6Tsz)0u%>RS@l0A^^nZJhQ_e{5O*cq&$7xOr)k6DYo4tMmL!XwQ z$98mr-s8PQU45Eu@b|}0gsR*zhjH1N{$yO&y;4O{e^^oCIdPAR{okos1;wDLV#ves ziB)UDOR)w1SfH73`mnO9CfTW$TQy{wVCFv7P1siji+_3!lE(K~Js;KEJGd}Pg$pIF zUPnpx3=Y2cYv(bUJ$3}Ns7<^xy^d;Q+T*$Zw}u3SxEXn9jjY^YgRh@YUu=5iDM}m= z0a{Nv`?#?;*@fE^Q7Xyz618&w+diTfw%*k+OMQ8|a-P`G2m?$IH)h_Lo@dQ*Y%OlX*+4Ys|9JUOac2EMO5eziPl&zj8 z1}S3$99%b0lph{u)WU?tlDX?1$XN^Nb#XvP$!EGx?>C+Fbd#sX8z^c>pI-{*e6MP{ z*q91CqeSjdBR?ydlP3S}iFH?yYacOhw$7PqdB=QSYr?I{z` zFKyO1(xjlE*je%uE&SrX)LW_aYd&uym?^Rw8<>h(!coWb?(>_PbM8~a-Lnt+o*n8p zuhPPZ_aV`4-qLm|H7C)|;<2Z%*SDn@@*obf&N4Q(D$B08oYpFr+19k3UO3v{s|A~S zKfJ?_-?Xvbx?b3Iu`iw3t4xxD!TdQ-N&TIpI_paUmhPP{)63mTcdWNt{ACQOImUQd zUe@OL-}#}xSzT6g;&Xp&|A^)B`$lh}eNQhd&IdZ^*^j18&!WgfrDMYHP_@iCao6U6J9WAEg>Pt^4!CL5m<@ zI5(mhF5K@MANQbFR#qOo-SAf7w+C9qU4y<_OYPAf{h@9W+2_wO9(c3So)uY?8fJt6 zmgxII#fDYis?3(qAN3kOssJysgi7c60l}!$DeIkpQ6p=rJRh~(m3AUK)Z4!(%7qPy zylg8#JC0Y@l=v_3)GQQ}LNc^APp;<+7sADjdEo!SEq&1ZGIFxkvq0*XFjrV6F&5o^ zZvEz`x=lB~qfJH*d}E$}@n6B>(kFS;O?R=^vdh2~r3}o37`yk}6~>$k^U3%Lt8|`b zg2S7V+kPUa>^?vNxL{jxu;xE(?AL}eT!islI9JcUkXEPU2V8Ojj$6Xjkf#Ho68TP` zt6gEZ$=5{brkLqQUk}@!zO-?=PviByq`M6%l^agq=zh`rvhba46gu} zDW9eGFy8Gie0(?#nx4buude`s20U5%bT7AJ#6w`F%{buT_l}U=ZL@G`s;jdHy&$Do zSWbT_&jC10RNqd+o_T`kfeL^4ws!k3NJ|81L|!Ha#oz;bi#_fofd_?icBM}{B1ib& z`~#%H#O8c?w1xN`2cc!CG#I34W?m6VG^2ri^bh^Smp2uwgiRU>FZGL02&&r2G zr1bDFlm(5EpeJ(i{Vo3sRJP|U1*iku>6f^g+ha}16I zz^R_YOiZ(J&ElKYZMI5gBxVGECv#m7f?o{4J)ytlC9)iF7A z@_lEf6Hes26Cp2KY?O;qMlWvZpSOR_p>75J{u7x9cQkzrL18mE;h(>0I(~B}zGj!> zU*LVZm5rp*DZo59W9&7V(~dfI{mZQH;}EfO=;!)&prwhbV5|NB`9BuqVhg$jI#kI% z6al(ZBa!|$yAlb^Lx^&GZO8q-U$+{7X644y-zB-TvAwv0)xDvP97zO zCvTC?EKd){@fj-CZB6gmSh2$Zt9#&_c9gFFzm?=3fo?|9^hErJe@=~;CB~^8MoL@Y z6n(hfn>9^zh}e5fYXQ;f+7jLI2i8eLvB-hiLnC2}eaw{FjqYHBC&X0GVuCV65)Tsta&02yf zM^~BJD`C6-DDkcOa=(Y6|E;bHdz+2+TpL>O$UC%%Vze*Ci1h~{Vf=gNe`y{zDNXw_ ze68b_KaSZ5E*=I^GAd!jO4`G3t`Kiu#!NdK9k`po;j{n)q_jauc|q@_u$S_h?Vpho zN%Py5(^+nDWBllZ4zYw~p_v!^@(RxoBv9F?%Xk6PpKS6WxO$qv%-mQUf*%JwTZkTD z{MV17)4;Q#yRD_(UAB^cD=Nb5vgn6bypsOqkGFrtC_-nKk)UgD*6;Ny`B;i(>*xY3 zy`Vc%Va1gPbL(NEQ=J-|)I_}2cZ(0R6Hh6Gao`i*E41Qb#z2+No>i6I?~l8dWql0S zSpk@&=Ab<{L7LTDX-=$l!ud%+V&w zt^4}1KV7*b$Z;sxs@UmL`EO~E{6^vssU!%xfArQyp1-%8?qJ7;IgZ!*$Zdz3HQ#?c zLxCBRHKd2IOptqHIO4Wh8?xHhA2UqzqS?Jqa_QOT#LBzsi^FkaW8KRzWl+p^rh^ho zA8z$tuXx+i`@cbffN4@3Z%ki0G9R@P3V7HLe^LoBj%6KE1Telpg;4yr&r|kN=V_@b zzauB)C>R}fqNhu3zZHQQtkJmUy3N|ImH&(2<*??VV#5FrkaHbI`ulQXUmJ>J_L;v2 zxuruLYjCwkQH({vR3c`HGchOxmxQAM=h?6-!14+-Y9o<|%Vd8j#;E-w7|VmXM2_F( z_wV1kceR!NiMmtBqo{z{oSjO>dN#Ufc32a$<)MYa+#*7gmA_W`Lcw*m+$34mR%gcz zkSbMUtQ}UurT75z;HvUWn&0Ltz03HWNhH&{{S^>`a3A$C`^p_Mq%hgXCi4p(bl34F zoa9$1AwWpY-#sTPmTPMW^^pRaR&V|nM~}cv1istJHdW`4jc$KK&0e0ISmy#^DNo5$ z-~zdGv@h^p`}NmqR|QDfu^tpAKJ$HH(i?b3E_ zaT2fm5Q=idz(GWQpRWQ&d&_T75tq}aLshjpg}Mixj=$N4O)!U-I-Uv95fE4~y)qgL z8zvxLb##J*W|E(;=!!3h_QLIbI3}vJQ$QhLR%A4eg+Zcmsq%c{R+TU z*uk_Z`Lv}P94eZrWREU^e4!~Vfcr>RVV?hjCmgV^Mi7bzXmP4V*7uJ73v4z4V#}-a zO->Gxjix%4hN0eRX|eGvZ+`<9=r{eBX)KcVFE{B7fsb1j=+4F=K=x58;9|atWClpY zrM3S3D<53-MYq~71t5qm4MkupXnv+NK{`!Uw_}h$Qd{jZ^ z%I8PjVvHZazdzS;~1;hNsl zuCr-HNgnDme_o0l)5m!F$XBh5#ZOcO*D>VeOPW6bf;G8q5rBxUWZ%9#+Zv8*F0zjU z>nm`W{A$=fC4ve71DzTR%wbav%5{7(3$Q@hZf5*MPi)ik0i+R*`19OB|2*yB2Il9M zqu!9_N|@d4nThMNnO9q4hdK-}gD+J&N-lK*7SK8ICP{>+-w1&Zc30@i@2UI>lj9*W zuM!Fe*CQ+v3H9ZMLJuK)fUEc_SIE~q&@sV4tJ%FENx#G6pXh(-iIseG6ekM=paD@< zj2Y2HgmLS9eh?Ipdp-B{jvf$n`piO`PnOb6o1Y#a3BmB#gM9eQmLDHAUnM3(oJc=P zb8r?mwNXEtQZ_zu6$~t#yo3|`jsLNmP z-)4WBSri|Dlz@f>L6iD<=dCMR19Ka?iz8Dpa)7+sWG`vhJH0RPu>2LN=wHD<6fw!h zArJas6CQy72v8^;t9H#cEVqi7J7aUiS8k5c!q{F>0hNtT756$#S(!whLf-<>X6<}I zO}jizs~%DaXn4w%o;5+}(6Zg1HibL_mYdhc?2&zEpw|<-%wK^EJF8hXGH_Qf8+}QT zOA0Y_b1Q2yiV!)p%}ZUx__T*q^GibMDr(Gum|zZ=l$>hgY^&uKtrhZ|l2qa_^webbHKh(M!eTitn z>;}a6;4O)_a$ z!#D-kON5p@+F&jg=nt_0pESi;hbXmRo{Sa(VWJ$17s7(A1V(N*xXch$dCj6+m+b zabHQZPyjvj{)CIni-LRN-1tDi`@iD>2rX@l3>u7beI~ZRJpF~TN<2LTACO}W1-Aqy zEd=_1NrINF^k-A#Sr4Ag`*0Xa%EwJw zURxA*KCcTC(i!wY0cVFbVCdG3J2y?*E+FqKww-~(f-@cQC+fVmNDG!V{~kCRlUhuM zQkyIfeKMx^?Mk~1>P`lz;0qcya_{-yJP4avHk!|{(q`XT-R%xLK!iV336naSaF@yb z(DgTj9rpY5iZoBiqXEI2rsG!x{jBr7M-Aq@!WasvavUFWAa$3x*qQ5C!rKtY2V)O? zd2zAuQTnr^5{uqPJ0-JF0#ySLnYkDt^cN+DRi8Y3c$8k;;soAf8=0KUTp>KQaSr&p zqaOxUlh}D~dQ$Qe>6&BQNrZ5X5=s)kA^}0V%i2Ovi3j-gv)7!rdC+%H1wQez0~TMC zt~^3cFcu_iL^j?8h)|m`@=UID7u1I9g#FgBsDJRQpm&=whD?;`c?P19^VpZ~ zAYzHf_p?J-K4@sxIpWu!EG8=@$yh33*7+gx&%b@{{LVgNeS8=~U| zTD<~e05CcEy*c`E8v$;WpZ$tl@8A^9g97YiK>A)nrY1zNrYsOde5Rn2TR76=RHA(&PENTo1h2UVa36xAGS|&fgmQPDZol{%X_z%~=WNyB zLAk_O$qLy7lc)!~08w(1g}%3OE0akaUXm+L40KJ|+vW}HemJ!Wo8J^{%V*iLIBd=tsX!;6uB&Z-~iCpa-o^R`H~dVkTv{z)FGTTQt7*z6!^a$<@Z-Re@_ zVI}NLUl%eSA)DrC?h-DW=(yM6Nd;HT+Gt!Xwdd^>%#}m8^>gO%q8p0*i5@X#_ny6paL;A8%)giGUa*7bm`!aVp zMxOJipi_u=?ygJ1cv#z(_WMw+n9vtd6dkFm)$eADVe52qhlgCobdRczvaO|0R>=ox z%PSLI`g>NHPyL#jn1|bl3g}) z+gHnJ|H(KL-pOMb_1<`sir*-~_{nvJ@41&-^?RySJFkZfAjMWUfA~*$Ka3mcaShDeY>V@antmh-Yb>cr~XS=2!cp1A8-VyC99s7LpBmT`!szQk-TsQlt z!(_>LO$-^lIW8K+cR!eKc6RwCq&HcUc1#F2yykyha_!vu#6bU`r@ET$O--@PBE_#h z`}1;_XTLI;=gx@5cCD*DN7kEZ<2U2bU+y=UQf}Ss>FoWY`pwlms&yIHzKb#8St?1D zefC;_ze$I%%`dpy0F#|aL$XzV(Xs6}I;t^I?BKi*XsXtW{ z#cLb2uUHz}343(Mo+{*drh2tSHt9}5k*A@vi-%T}a)6`LvDVL$1A%)C@@T_Kho6ne zGVWKmi~#-83F_eh91>d!88Yq+atKZ|Pc z*Z%NNc-fa4HsqUOrXX>GZ8_3DQ=0SgHLQ|*h0cs){$f=$;jM8$C=J*>lCTCpUBToy2URc zjXXdnsrr*X+CW<~n)uC0zi1#gee0$9smQiXjbW1 zl`Z->y)n1W?jrVMS{EL*HZl7)rM#^vUodzFrom<6oR;{i!&%U*RIY_#W;`Q;M676qy{W zuwP-*A%}uRD7(+5bopo3x$B#949`9vjjKJmJwurN4F<=(WG!lQ6nbZ_5$42a>utPF zZA5VVXjvYMjDA2{#% zvSemdl6AcJ#rw0k;hXEYZ${R2!#%XhAFKb|{|%sRlE#zql2;HRk&Kr^wqcB3hItVp z>tCXz%d-zs?{>@dzpMTUNq|e|rUkEvpLANBxAnuHJ6RHOY+TrxkeY~}OC94$Dqr6gL>q8833mx7vTegDo)OT#QCH)p>~EwyB^neZAn(eE ze>nDs?|E|44!1~xD4d+K9)KVzs77o{Yt>j(;Bzw@#pw)_MN{XAf{_=>;QLl|r6b)% zh*IKv7z(P`=8W&ZVLuu6=`8x}xWh%0#n7-a}?#>?2z;@FJjVqBFy zLc_NsOreH^ZJA0A9qm)ZaQoC{;*H6P`Yo6f`E;1Atkd*IgE2vws?qUXrmsO22Szcb z>-W%|^C5;b_4TQ_Cw*mpQJ>I7Tr@$?sFLrqiNEPQFCq|3dFGycag+5$YOUvbAZ6rp z2UsuhDc*!INlVJ}(beu$KRVA9+v=#6bVjMRCXx-I-`|NY{8QzPPD3vh@(#ok*ciWk zUbDULxRNlg{P5LWziPXnR_5fnzEkeoXQsIt8KXTG#zNwHt3LN7y8BvflTyu%C;Idm z&aUYjDTxz1Pag4B$FmY+;}8&7&($uqNL+IwARMHmq-xu+W-=RdXoG%u6lBhHUjIm3 z7-`4B&>x6i+T1x3ll6kYu1Z9Ea zEo5`tXXBm3+#{&E+-IMl;Vd^SxJG)vzLJmR=iS8)iGEd~q0$7#sVUX+cduW6 z)RB8R(-qDk{MtY6QIqNzVRGU_e^`tv}&o4Yi^d4SvAk@|M@tWdLz%20W^1ajf1xf96t#5M4o9cJkufRNp zD_^kJXI9jy&E9lNs^JV?!!y18O?RoAc+zW1n5{0+A=K8Ia9w<>bJNgbWYqPHn4Tld zXmIEbyi3qVsVmvVP%JP4FuZphTFm4ZInpCoJ$_E(6d2R+l<>QtTts(V8`>EiHgrSV zLAW8yHi^k9Y-JASRQdih^E#DR_%nBq%Z6@!wtRE<*VCn*p*5mq%YG%+4b$4zM!e!Y zYJM|oIzm>)T=_a`IvcrXNhW536h~R4W>9G^VQ+JY`BZq?-O9b6G&mG}BG-@tVY8!o zvre(PUHcbv`{5Ti*FT59ytCtGuFY6P_tWC~6Wp!58S^E-y#T?c5PHdL?|#2wyo`Fw zD0uFl$M9@uNP|-)o$TvUSHO$V+=gw?DgC@G^3qSvd>M|CeEONe!1P}0&7}zUXcM#qeNu-@g;H%3E|-4ir3Ry}<&FKyKz;~F z`9ObSQB9Ja+SeiSMeBArm^j!o$nl&9A=$7|sfQ~wM>&nD2=N=1 z^fPaYs9L~Vjv3DzOg$RZ*vzfNnn(kM1M*13L!S$oyK#NtbrT3$SyG}+r*lH`tuqk! zgpCstxRgWkQl*=D9|T?Ek%VH8u?3kCapW1~H9sL>JU91<)9So$54}+Jj#v#6JPa%T zp89!cP<&gh6)j3RK$0QKhZYe#VV-$%8qoKVqUT=3%f-z>*MTTTfw||5_pB3^D8{&A%D3)% zq=q~>+6?V7w_cLMzhDp!)0qy-1zdRVa8n*fiVBXhs%GazTx7?M)U7x>C3(p2G)TIf z2`_JE%^l-euSu%(=q5W=e)Z1%MEAha+(T<8N%cq4^M2*Am3uuyed{&>-$rUP59qSx zVsj5SJDma_xu@*#5*zk)ZiYg}u$m}JnXUY%`p#{W#P4vLx!KH%2PP0^^aU?=w-OjN zF)V6U({>ON2#VI3LFKq^j)b>LJlCSxmWF<^&R)k3arKUvjr}FU!TD`s{?+XxUfo2= z+ux-qotCls;lWc;#AxyAb;G>=9k$`=pmA!pR)&pyj=Ht23Jpe=?+I2 zN7XXfbJOpeA8|aM)9N1>vlJr;HQS+^V%}{b8*4e){VA%2Dx5F1Lf-*jCHpC( zjJ<+nWSlb*-#pFZI@jfU1F&mJ8urWBB)JhDws5K(XJ|*&O5fSTMb?D%{T`!hXM3|= zV%-b>yf6;u~hzu#oGdh`{ym+ebYiPd7`_T{nx>W-8a` zFN$!K2}tthOgOYlZ;iaKO$6Bnt^)T&P$V(d4g)0z6VnO@hTuJ73#3UtA!A`H%3=bGHe1+1B#e zj@TT=e(w54#KoqHi0^A9FyEDo&^@LU+t9*|7F<#ZSR;JLchAtWq8ZiyAgGwR^%-7P z{9Sbhg9`3SrxZQQu5al?ch{fV+~}Bv6K6hQD9#$@(h@*4e?ax;`dr(`U;f^ydSe#( zE3!9jW!FANDU(`$k9UIQ3B1Q>W85_TwZr1o;JZ>W|zb938~0~^p~JV2xR z^O9y-cNny#3KpY(Dsq1Jno5D70KuT%6TKU{)1EVZlez5zZ30lnbC1EAbc+tBRPo1? z@6NB69awg>n{paDd2XWAOLzI^*8R%vzLD1@l3Q90Q(>UX)H-4d^#5TgK}yL1H4iE$ zqNEb>|D%l6!@c~p|6buX-}%FyM%Xhu0^B7;I(7igzHNV3rl>t4Kk|wJe%)!59@&N~p%Qw^- zZneVUNohK91JsECdyeK}8m-~Ld@NlUnJMK;OVNSQ3?WPCpsiz|e0;570^b_~RG>)% zA1$v>M^u$Hd9QbEs?dx^r9Z?)u7-6&!%R|?76ihZL<&~PGK8Dcgw-AP$DYG_3*4%| z5;HR%h&=9f#lxrAX6{h`L5LRIreUd&$Po04S6GF2v}{-JyjWS7(w8@%PStw!LFnD}9W zMdhOh9~b#B*kLaDF+bj~g9T7FdFfkIcGs$<`)9enUuzEYxu`;H7z&1B{SjP|W_U@Q z(cX@S#9=vjm)~fB>Y-?wy?L0uy)7Tc&jZh-NS~? zkl=S#!0mYK4?;f&YfB!K)a?Hn!hX*Tr(cQdD?&>xDm|V$n)G6pb8-&eZqZ|)= zgsBy`G7KKYEqdRP(+5puc?^NHBCKBHmtDInf7Yf{lPQ2DVcwR2R?CB zQHy|`L#>{j_hrnPUMemH{&8mMm*x#PBzf#|m^m2&Y~SQeF>6o1N+vrS1ohW4YjDiq z)_{nWeL+dHH}v$NKOSrZF(Kk(huY$)myY9IL<+|&y)KW=$_J6fC3B1GJ)hX-(p1={ zv*)=I|F@)f=x}xc0S9BoFRp=kkhp&TWGFxd+0NF{T)4pk$#_{N2tl2htM=BneYH32 zi1{P7d?Y;(AU_|+0+4D-;+wHIZ?ElpaM+GCgfkyLL|pNl>DkAEvRV zdxSiQLBC*H`(9JB_B;N-xA^U_OZ7`Vftzh^_~MtUU#bJCwrHcC5CU+;oKRFMOGK|4 z6hXFr!2`T(<^&yQ^v+l!eR+8kZITc`2@_0QlmZ&49xK8YSp|`wn!lJ^BkwqNFMdsq zk|p2kOFi@P!w1|=C&N!%1OVkZ2R#4OJ4r+vp|Z2>WHVO81@-tDTSwCiN6_Z(w_oPL zatYQLzKp~VAlqlM;U-&_L%?U8EapuKphlMARdf<0C{qb*t%TvP^4w`vPZHJ7V!VPr zSAreH$g^~Nz-nrT9UJI+jSoc&NNk4WvTQpNg3Va?(2-G2ox4z#73_->j@}D4Y(S#i z1oFNxOA+A8l28UjUM!Se3N@}cDMDuNEt4SJQ=1JlPFn79li}gl3ww0(LoHdGZ@?RQ zzYC=8g$oG)!m`KQTB07`-@s7(W_J#(ikD*Qvysp(qyc zQcOJ%I&u7*76>#?+C^#mfQ3hA9k0k~9?(4JN8*lyDtv;Y#esKD&L7VrNYf@}Qc)I3 zl4Jdm1mg6knF#2^GShkqFL+BD4X8hS0Ada6_KjYEh#%0`RUti|o^6qwIVK9bX&*9x z5PDaPx;B5WOy21+i8nwJUIOe$07%xE&gQjmkHA~8w-3vnf$NP41X(V@%kf-B3@nO7JziTd?29|w7=wxRMti7>IO@)9&%2n{@C+(4#@_ z56^jAw&j*JAb1K7*8>L5d3A5U4sLerPr;sv3{uKCDKI}(x@yught&gu5fSQ71IaRA zsMgM-`WO?){zG94*wC|HK$(gM(Err;Jan4$nB9f|nnVV`xWRj@KX~du^QrZxkVAQ> z5|k@4AW9s(350OHGa~?SSpZl%r1$2e6#3`k5K5TCni+FE&qvHX4Uyc8$QT?C@F!d) zfzk0^H;%;uuY*Jpj!JJ+;Rht5Sc0cpM;fFvg%BskxxCN{Pg2qk;O)aM8>%;59(=8* z%?Vu$^ND^BUJyz1ZQNZxYWOoO5cqryx$82<;~sTX;))w6gA%R9dmId~D7-?X!HOh1 z_n0hI=%GLdA_+oMgaU711xG?9KfML|vHD$Fj@#YIW*#-3X93MoPvYfWAIvyQkKcz~ zs*O~5mP#ySr@TZs;>~Cy0`Xo#0iq2U*Q1uj#+yjH*U1R_qIGeA^9GyUp#9@Lp7uL{o?1A_2v0->AMueA=0**u3Y!23(Y@<{8WwL09jeAI6&6&p z%%u$8wwpmYfQLdrAOXTui-E>kmwJ&Ou!#NnBbTBPn(zY82x1wG3Xqv`?A(*H0S$+k z!_S{vHO78BEiwCqO&IA-krC46JHW&H0;DhXGg`3N|4j-Iy$X;)5yEObw@n|o?__BA z;7Pdm*f4R8J__fcPTlf-lJ35zXFf!nJn~N7+Y4;EI9FPVbJtP94UH`MX-5w96EmeU z?R90*^<+IH5rD94wa$>FL!0qEF0Us-6j*169@r5;C&avM=U?2=!G-pnrMgM9)2QCf z;ICVKFHax@ucm?`Mup&6=aOM(S@;s+_cMgJ zw}WM=qmJum;kI0&q+GP_ii`cGIU1(_>IUG#ib|J_xrGaQi%%RDj~F%(h~D+~vGn}6E=U$HRvI}xXhkexEHh*@a8i%SVV}afdQWd&sbIAoT%oBn9PV+mT zPsf&7zQ=a^th{Vb9H0blNnw#n&jdFk$$aX0@w|P^;wxyNbWPN4240UInGr)~>SUp+8aPST&`b7MZeDuRsuT98T7j@hycz8F6f>%5g1btG8-C56OI`jeOB%c z0dOt*CQ4HqD28xl(VXi6CxjsQ!JH&)sh}KkmH?NMH^00o`PJ4_MXNp*jvNe0}7w*Cn=EM&_J#Tx(YT}Mb_qX@Sr;yry1YXdT@AZhPv9af!R zcdN%ST2nE)QrXUbk2-m0M~0yARxSY)b?Cv{NdpG3VZU)rq$Bl!0yxHQ_RH7`S1E< zebR28kKgu-`dWrfE#2BsuQ}SsS566tV4>*q(R~qaruZb2&-UG`z&@(yG8#uTg?<+x z?rR;sHhcoLw24?s-(v98wPV;5c-mE_Slr~H3uD&JGGqJA+WfmJ-(G^gm`LZ7V!PYn zsP)p@Noj19QCh~}tE{B*T=#`8Vf&`{c<-Z|Tel@T$QMg~82svhTPsGXWLN=K-tU`p z%Yj{9*t5$Nh=?KtAq4nj>5hR{(CnNDb3BzywBW5G2c{f3B?J^PbL; zMdaNCzO=;@3d8nqr=Gu-cCa1+yA_9kV_D#jP@6TZasnGgCZXly^u2eQ5aN%mj$UX+ zL*}V*_fI~lEivODplcRp%tNPM3Nw>!99e67Y|W~X8;F7HB*hs(|D7b&Y|1_iqCTKt3_A7dek9){0vTjycU_l;qGDkjs%X?Rn9*q1?kU%Pw z5JY~jaX?|fG_-CSr-z*+IdhtLvgA*vSwb!v`(mo}>khIks{YzVP4bfQbjKter6*Ay zZ}_#*hr3}9JPBC0NJ4e(cG>cnn+ zy0yS%k{-wX$)jzUA8XPx#a%!X)A%z@RcQqj`E;K|DmLOmHlWK8n|!k&H-Q7WEa&Ki zsR&#_3$QOEA0Cu1InM*&0}EVE_&`k@R-vf9pT(lD06RaX&5NC**_AX&x&g|iMvE~l z?>QBM0=nCnh%q{8&|C5u5j<(23HRZ3TE4K$sOKQsPn4Dq$p0}(X0J--HpieW*ZrV; z+IfDK$KV+dZvb~bEN%BDKpk|VgxF&jm_xenu?CgyXusqHqlf2!{xgxYuO(s94S$G$ z!uY`%82D=fGgJbbmA6F#YLg%eeRib@MJtc71Zl*Lb%=s&9W<1lsXy|%En2W;+&SP8 zknXnlT`b_ZyDF3vpiv@kCMqNw6UK_>^e>z@!kuZKmT=DfB5Q_#cAz2DPx|~~f6u4C z7e5*pITAWypWjK+m7>1r8VU>gk-FyKPJK6|!|d@u!p61tkDFjOfqkW->EreD3nD}l zwXXQ3q1%tkOVM8!+|N_t^4`WFmmQ@fhYVtBf%_Z?t`$r8 zn9pol5db#CC$f~FzVp+rIAUo3MFaGhl2(T}esVdeLkN zWS#pdO@GSEJJ;s*Aj$duhIkM}1JYK}6pGlC4H}y&H2~7ETx7o=xL>yLVz#1w&=NW^ZrjfGI4hK$J8vEh$PYc7(PH2l8euP<-Hmj7N4|VbF1e z4yBo)$ARg2k!4{bisdm>>5Z@g*)PC!C7FBgo=1V!)Lq4uH;B9V522{28H7@!wXw4B2X)ZnBN`N9m(a85 z;~_huJo)>4@h!s?h|_4klJqnG?VDS<&85Br@0W_3-NBBTx@i3sot?ehqW!QN+ue0P zxqFy7u#Lw_Ac36d?deS8V@3zE7Xgra{%MzoftvYFMqfhhh`Y4>G1NggQk_0aH`w7)-{g6{lMrG7VjCKI`R*{t!@zMsgB-c0m|0f?Uq zq}r$T&N`L*qPhN@`%n8xr03R_G!w~6PrMSI$`Hiw1uC0DyNit8s|!E}8jq?@$9XDS z_inO4Sk!7=$7JsHyNdlTa|ta7Ad4;skov{zdMs5pB{ruDLvnAa>;A|}hdEkl>5sJv zcu*s3x#trxYMa7HD6wX9oU{14F)=-<-jxXS^a*fQp{huwG^Fpj;WQ9XVyieWHvZKTJW#b zD}$8bMWrMGJvC2F(`zJ~h(vVTcKZ=Fx#3Dr3eEX=@JA~h@)s$>xW4GTzQJguAsg_6 zUM2wFW!f(#SzpW|@K)f-F-<^Qf)Q9`wCckMq; zAyId4A7lD`oCLQ$VJ?y9F}lR%3Lu^vldAi%b{uPx6Q&wF(kd0t$anVGu7tP0yAtt+ zGGQk)h`D(3obPd-#|E7cA0y9xes`Yj3s+Wj=e8H##xtcvR&`Ej(cH(SoLd@vP~HzB zV#B^ITi8uP_mRJgGWyxR9M#GX%|3G$%HF>KyPN&ECCT!cf^H{Yd^8!dkAHgbz=xXq zEa;(W^bwy@a^Tll?2CJVvy`Fvu#l2-kUyf^dtcXparL$ddym`SLo=FTLM2373eFr4uuZCze<99r;OBg5 zP_0a6g9rJ25=7`bC4moMwb7r1HvTC*+*=;Iyk1RaOyAi5^Se`^)gf~DvP5Bu$1QBC z92T_9Z=Q1LT*UJ*gAS(Ow?n^tD3t$AW{@X7k{THt*Zky$N4=&lT zTMqDfNHcZYbApd?d5PIEhtO-V{cwc*dcdz#y$HN5im{M8dG|fnuN&U^J~*wC?j{p} z$Mw#Li;N5pFGYerP!Cv zgHaz(xXmK(hUzXSDPq2us@~8dYq0ruS(b$yOn6zqvh9l7Ojoj#(vKPxQyT*ha`>4nRbjgv zq<2FIU70IzeA-mw12dtBTHfEhadK!O?2o1wM1-RcGpHdcX$A(KWAs+msZGdz5km8i z+zAoZlv1F`4^9;+(#;6wmhVFDiiTh%xDQkH98uLfRrdPM;zutWdMR645n-J5qmBmp z7?yC~TGs=8*|c&u@NiE}MXm1XNShSFU1q+RXKdlY^_!#m&_=#NB1Ga3kV-%01kv^N zPJ?C9Cg9%S$xY#G?E*_h`{k)tZ?#F-E5Fm2e7!Ex$m$_+{!N`VOA7WLV6_&--(HGJ z7i|*xIYs_ns7|F*XA|0-9VImei)2hA(@CkAurK#`IYc9H$40Mi`vJ?xl0RK2f%M_8 zjI0|HIG)!oZe%=gE?Rq-!3@<9s%Ehxu&TnlxH+_5y{;!v4KTl<(_D~R_g(+o@uK@l zyTH=2DIrAT+cknE+IV)Xe#*5MW360$4H9y|CL90%RmD7X+;Gs8@220#Avh zeeCyysgfeBxaE8jDPzlTmF#cDlZgk|^aB02t}5qU-jMv(x*di6o;{NsHADExFRGuP z<;AQwXsos((K1VdC%vRJOH~_gnoqs&9(JE?f1k4!^p)zVVJ~rWTCsPlHR%0bhCf3D zC|BT!ma8V#gB{@+r;%27Q*ur5s%hYV8np`gu#+HM&IYQR4;VMxXw=hE$Mat)r#Ev) z(5C!|IntE`{~`ouKbPph+AfcjkiG%`zfOL$6fV7B!G)PEyGxI-#pYQK|Su9vzY9?|e4VOpVE=g}E3{$OX8mjH_3 zk4aa+Nm%|h0fAU7 z9hx3`IBb%h;b%*(4o9V{^^!T8L2W5Y1bwGN*azgMlLU7xOV?p_;=MI5ZGIn7qMnMq zF$hAO2%v0_sQb`Qh6+t)*@I6uVa00!Nga37ROaLrV0->i8!m+%rAGTb!9Ey#`Bf$@ zq6!x)0X?J~ytHF+j~*&DqJ>I%leJ={0%gUdkIqBEn>WQCgYZo<65>-9fH2^NMa(O_ zJ(exW6@|@jii{R+H3U2TNI>W%ztg*}YE6&ehccNHpC!Y;kYw{e+4I+c92Z^|MMUZvyu@EY@-rIcLBZ(&{bY^LcIClarBv9R_6w6!YG}Xd1aINnNB9@gK7<1fL&seWk8DGu}5SV|=0=}4hLdKZ`xl$jm9V((lbu%6p^B*)TzpmPUFF4tN8x)W^ z;r2O~lkU5}XrKQoW7cBh_Cb9r^5^W&t(n`eWlBho4!qs2Vx)S~u=0-jMn=oGHc2sd zj%1GYa0B0lCBLeXID<&xe*0*-WK~iZ{PWPa%t{~1cW^($o+2W6Vw3> z7F2%!Omgogx|>6??HX1dx=&a7Uf$Id1mJXZ=avyB9kQq0rjx_Q(34E7V@#u-1wY)A z6T^t3hpe@xe1Bey&(UbGk3sBF>b*+1G}u%g`+cPyL=_shmjJ_$bUJUVt$*cci&u$!*qoU3RnWZxk1 zx%nLRfwbhX8TE_~_K^12<-EqJN4Ue<@MqhkvDW>0m+1FZv^ zgo$d9&DcGw2t~oxbqdz5%b#U`9I~(7e&4j_DnP@}7&1HQ*h>}st&eW;l&_DML5RC@ zLG4o_2w0ia*cl>g`hq5+8qq{+k2t0huyl6>A5)~^8Znr?E($`l#5Vs7?fdG|Cmdpz zVGMRQ@ram{{k__0jm%RVSp~lj4%ZOCH~E|I%i8#h{rUn9&V&xlB=DGR>gskEiqvE*xp+^d4qO zZ8*EL5ydMM@{ucKW4%s)4wxvY`Cr&Js;rH2-E_?iqnai-&QR$+I=Z+fbD-FR$#H}y zT$g|dD9DK#D?hDhpx`KDNoGPlXhQ-*bu*(Ktw*1|86^;cc7A3LtWq`y%>V3oK?cvz z;*dlp&2gqYnYT5vQ|NT?#Rj9s&6Bm~pWX~_jOFD>mLjRe`;W)5?vtZv=@)nAkLvcn z3Vjs_A*c1d6B41aDWdG2&x}?klgoGjqMT+=Uc<;5dgw$wZiD=p0XNutR6u?T1AM2C zJ9uvMjqRH+zps_2FxQ}Kdw(GL-RNuCNc||~w4iH4?RWulNQsq5vOfZH-J-U4q}=z8 z75}Cb5FAuJb2E@UGs+-BX>H8CPgK_QkHx_F1A*VD@~|lDdjhq&wZ4jXg)M%!xk%1& zClm#0C9RUF**?lZcP$g5d8fa*Q49b@8^^LcBv_zCE#ITN zys4;P@#jbG(;%^QnB&hKUbWNmxKN+xv5T%J#h(PGxC=-wks2ubm_5WhgTPhk9(-BZ@ z4avTj3*A1)tLY^-mE^-~P`sf0^v^vRvTTmOG}{E}!t#w%V-4QXdpqCk(9zX6JI4Uc2vY)D>$!Ogsjc{eWVNx(ZfvA93RS2hm9 z`^n(oi1BJ4#bZYNF+2TbC^Z;+IOn_d?(y9M%foYBYG7qgSv-iSE0|q}a=0ul-kM4N z`MaB_NctocgPrt>DJIS(GmU6rx4-#dEtrN+MF6@%vS@NoO^x5<9KLQ>@2C5lWu?O1 z?G4R4BxB|e&x^=h5YO9-$sj-ZbrJR+prp*$TA{D{ zL%N)<+sx7z?wA_jE+hXo;JPa6RE=iJWLW^}ieOUUKsIpE%VWK-S&?)zUS2wYWld|q zQO$yw%-G(qH}t7}){yqK)^Tts20nir%#L^uOh36`#xmaYe^E62b@Uum#d`bs-_aP_ zr*`4q5zOQ&uEkN-lbRBekeoB-o(P6B69A5hhQ35dJl2Fv)RWY|WR(FWJ|T*nQpgsM{)hM%3)r<)CO&$Ygc{YL9J z7X>b;utg9Gri4aSKK!6Y#a?`_2VUM-ZP(VTlM%^=bm(~x_SGR; zmL+Mbt1P(ZmX-QGuSv@vah-5Bh#VXj2|v-a90=5F?g=84w8Un_%*VdYT*7r4KGze{ zucj+8hBUc|{9#is4&IJ62Gf*BA0W@w%Hfz|h195Jw&pIbz4QMWf}XtQQx;W89kjq$ z6MUcP7&k8NamchU1mapb&inxhkox{kQUKa;$3$&vCJy~(I%Znyi~*-Tb0qW-5vlU0QLbVYTT7%?t$ndLZuh@Jao_bpoYNgvOMsp97K zb@>Cvzh5BfY>||iSQ@GKqOI%K%t`7&Rk-&zW(f&RC%VJmLnYt;v_z%(&nG8ozQuie zq3AN&GU7XF!+Uy#Wb&t4{*|6RsZ3uf<*BYo7h&3y9#QL`I5J5GpVn&X$$ay=z9RV3 z)|Yr6qh`>sv+syHr%lCOnTS6Q#Bhfs2z#tEXLuERiMmw^9V1OS#$}$b`H&s`DeFU` z?m4f>5p{dQ)jS5Pw3V0M5RT`KK8o=sZ|~-qTdShI&!rK6p*hQ~aDMj!d`jlmlNYw1 zelCYQ|Mu3W*7b2TD0DlA}hMoa?y~U@_CS`RKk;rNT68bL!A0O=QqO0EXtn?bYSL#~rO( zowa=OyB_-`%Gc)A-YMo7-Zyfy>Yfh%cHI9q@O!n(IMs2)CJde9EIYFyh(02rmU*L< z)f)Fb1G)tL3OXU96jfUDN-!oj{FuD2 zTD0<(<5;zXdR01`g8B<`YmxBz<#%d*3r#&-KbiYh7OUgv)9Qv!YRJMh?z2lPa_~x< zWq`a_*jhEcZ?@HYqfe%DN}J72`#%l`){2c(;h0+<*wpKpT{lhKX`PJ(zGrzHe5G%8&TnimMm*@$K|&B^8=Zr!M|;8 z7{)=7!^XiupJELYN`>W*=laas+cJpd{U$q_SHV{Wn1s+N$gKSD{_X>BdQRtrdrlX| z*BmAe8ALPg6G1ODa{Fd(oWBMYLzEoyD_%jKvGO|{jZdDkH0E+IrpA_JJ@utdhJU59 zQ98FR)@9qLo)wD;q|Ifd9` z|4M$2buFjAi_t7-@4}0Wh`UmDQ?T_Nce9ABKK>? z3th%d$9Et7&dKkeBG-TQ*19zO9b7Byc4^YV9QvJ7DcIc>x(d=Jr}n>IKdP^s_;a;! znym8AJNG{HyRy{KT&E+Sdk$^E6kc9fbsK#q8Hxc=(~uFKQgn5eBcfy3X-n>R5kbb& zls%_y@)aeaE$QRJ1CrQcDfwd36{S??ig}8#zpEZ8Y`?0$luwK}shhACCLwR)SQiq>be^ zFBGrJRmqx4Kg#x6o_f@>rro0HwX(8tSm&lrCB2$zSenFhC-3WhvNXBlMcX`U_1OR- zxzjn<;~-Yvf~V`nHb)_fT1Ew7eZ9&!=*Yhh$1$FNnbr?GqM&nrEYAkXZy9aA2&P zLYFvjBPTk4NXidv%V~^y|JvB*J(;0Y+_1f~LRA~9nRrwFG;?wFys)FSR;y7NsDYWb zcUU-8p)1l#3I4M;F#C+rtF(M{5fmGa=W+Llmz$4emos^>-_c?7o+&y0tDX2OB&DM_ z`EZBkdabU6`0Q~X+hHr4%uJit6JP(S1$i%p%cu2<;xs&7uL-cGiQh_GslD<^eXIjN zxC{i|{MxgmR$FZUa@1IO*eM+a6@+n&alb3Rej{$M-I(Kvc9V_`+RzcXLsvCVOfAl& zGd<0bHQRFmE0HGc5?XRc-NqxOZ%Tr$HEU8RT5^%GN7YCAlqn-Ac7@k5@n%S9DABvb zhZl@>kGg+sWOBR-|6(qIo!3de#a#X!5t23fJw7O{T-5BzXNd}(-*WcL@%7K60*Rx2 z=3UszLB-m0*KG%faeMU(HpD$*6UaUCrf!b;q&^3fI})d0B#I4RyN zS(`LJY5y+Vj=Pg`^kl^KhjUX{Dd z63+L&MJpC(b4V7tHIqFsn_Xnd&+Ok!6PRhil5C%2>V9vpaNu^ymd#b1vbmnaRG@5N zXRp0?Y~l%ryw&#h9;VlO_*T`(2*%xS0#x2-Bn8+%X_hUp&9fR)R^9BTQWiGa$>Y|4 z!NKqDEAg1R+PI|Uz{W=EUCLmqvFxRXh98T_xatg7gkd4AtKo>mw*HQkx{f5o{nrxO zdOk!!x-<5vCR2rB-I6P|L_%~8&YaDX^~j5+Rf8$7NvKY{bY3%45XMx9X-YT|?W3i1 zMn~O5lhY*Y>XF?#kz*e|bg?J%2d#4?m-|OQvtN)ZJf6QQ@we@$qoglm@6!ShKc}Vi!>4AjL|&Ke6x`mn>~ZTt4Hd2* zH|Km(|6nZ5dn|@R66#vREUtz9ZJye(w@TZ$w|&+|>mkZ`QcqwBuhCoqS4Ttv7uLHSZWS9MD)B<`{yo z93y6q>TZz!b))r<9v!`@{qh?`I3XPqKZWaaXxC;@rD_BemWKvi@JhA`__kflZ++Bt z)Rn|WrHZ?XeEPNQcECELh3$0KbIsXhFylAn$8+yay;NV!9Urq_Z`;|8cba-POzF+% z|Hqr?-Q#;}@(&YPql=$fh97-@UVOgq*9UhP?%fTuyq*K>IarsD_%34WZdzS}8g(p^ zaAG3mWts`r8@D%E73F-GI9j&AzQ4Tui|gsn62#v6B=R9G){hhdueRi0D(;Vkk=Qzq zvrIs*g?nDmNE=Ov-j9CA@5aO;Nxpw;qt{=}erzh-nS<+oUl)fkPd#w0izMTl^-Qra z$qxjz7Pg>zwaF<@L&hwy&Pw4#b=L`xs23=ne( z#Wd$XUsjP`#U}HoSE_GzudS;Q$H%gp4{SXmRGs*2{Ppd@UP+7BJlEqEHAZ^bA~z}W zRT7zSa^`PA!=0}~#>vTF;sjJ@FiH%p)V(Y8Ou2C}(oPW-%*4r-{FpD6ap=)vJ2W#H zow*#!W`?-0?pxkDWUiY3GP`mOi98~>LEzc4;Fx97O?5|?@Cs}M_7P{;jjYBIy4=;w zGM&mtP2@LC)H`2FdruXiEdDeFELWY53LZ$LIwd;&ZRPf8`8%An&3?e9C-ZQ;!1KOU zscl{gk^p-Ttk;!C;$qEO1J{m2eVvyFjcX_C=P&F(DE3cFk=7m8iRxO!6FrU$v{YG#j+;0PI&SMjFrpHc4z zHa*S2ZETpfrG$ZNL&G$izajjy*fzI(nOQ`a%#LQwYqtf8SlXMpip$BW3UapR{|N6D zkO}5i8=c8j~MQxXim~e9PZQiDn z(J&MH2fvykxWL(=R&jUvgV1A>fLh{rE&Dm+VoVQ-&^8%cf$ba3+WNlf9D*YT>E zpd9e7vcK*YSk)@=dT8q6q|HE2l}*4ClOqXUxm|wB7r$5p6ANcv(52W%AZPn0Q*O$S zQCKs*k>-v#{Bq3{C+$48=-hBfaqj>EzJL4TwBvYd8cc;kgm zbv|T;f@Leiw&NF7fNOK>byJ8-ll?0v*{~@116IMkC}B4}@#-WrWrdEg>R3EyP~OI{ zXlaYHCI|axE8wAL#cH_KQ!;X1^D4X;)$)JwiSD~hiTm!o)#neWg|bFRxsk6PRhyBP z+UBN2dVMrH(7G`10)GGQO2&b(J8AQT*42|7o=OvGkrH}aK zl6bAeyCj9}Il{U}M^C7AfZ6$-WVCqI|DO138z1$`eN}~IJ^N%HugcKdrwjSP04Zs$ zv{S?#kECx_6K{6@{dH|{1kl5S(P(_c0?=;q4;UHE?DeDS?{;b>jx;d{8Fq$~kAC|6 zq$^dT?_!SRLi;|eav2@fMdDv0n}2R!3aR41tJ#+&#vOu8dn8rReT9y}ulLmhI;Y_k z6|>(r(4)NCSL$WD+i7dVZt$um4sqs=52nmNqa{0aqzW5xy8Y$wOI<(&`_t}7f>@KF z{x3Etrnb;BNzwWp{Ysl=qWy}>`tI?d<5d&hqH-c28*7xSlSo-VP87E#n)f{2Dz(DO zD<%6_apA>P2kU*w^B3WYB;|vJSJnOb82Da4v&E*#xsos6>xtx0Tbf@FTcB9+U_9{b zaA90`?l*hxU6mhZobcksx8tMbV(*1?|4-SzJ+i+UWRmq0s|yflW`?9u0MlBXaV)Ft zZKq>I8i^T0*n2*~!xOCoc%l(=0*iZ$(gXMM@Ib4$%a{z+5iN=w-}|3%{93|h-(GVk zX90YTKQGnCqNOK>Ul9MgeTE)L27gFLW&2=<4|&)@|M@(RE*u=*btY^#4|MART)ZEH zcN6U6E7SE6s+?@Fis#0*W}Ji}9|VGwweA}r$j(F8cjMG10XW{f=gUFhmAv6a%%c#4 zb-$t7kMXN7=RK#d1@Xz50T?T@bfqtVFu^Pv$69syCdlseqn@fji6F)RAn<6dw~HeC z$57oYH8eBh?}otRF#uOQ*MK`+cStRLbq20@L_Jk`t4es|LI9WEC|v#ar|MqF^|Six zpLjsB|4@n0LlcLglM!*>%-U@bCoIt|0UaLQ3VX)WlcN>n^H2u!~c?*eAUtQQQ z0H>=e5m<_L-GsApBx$&@h3A_|hIV)O`z-(&W{s+_I%r}X$-)$^&oK$XtRdG5 zLpAU`NH+n92Ys*M~1lB!h#UkSj-ftE0Okld!74v}cPW0{w{mr!4GL zPm{wKj`A~7%8kZ)F6w4X(Vt=R5^-XNiVR%*M@NaOOcT1)P;iX7hujl@5DAN{!%LWx z4-V?C@N*caXbrNm#0D1|sqRFcAy)#}z(*l~e!}FsfRSj@b}tgSt)&Sq5_~v&1VG1lFU4TNmHc_BWVs(JZGk55SYy z>`5U3lizuaU?lMvdTsn|#4lk?Ad!Y&vak_lVNg}j5TND-n1^!yL-SiMYa|pODmv@( zO=|$+>)ibGoE#q~sXfX&3ywkivL4!*RXXqb_ALhgQOlyhBk!gDo11211SzD*wAF3} z5bIF-CHTcpkC%`yLcWr4B5;44aQsVpmv2t$e1#@t};$w3-t@ zInMM0EYJ#0y#)k?5!k%exR&)dQl9>W-#EK2b{AeDe0Gi6c0e!8B6;oO=g*&IW~Q6f z$7Wii?s}UDv!05YRdfY=E{x5OB7XXGvGaYlqVO*Qy)pgAS%6*c^zK^6>;7 zxEFg5O+3bvVPeT4ANqqKl`|8>e+6jypSBPm9n@82-Ew%KS4KV5NLFcIu%Ltw4$tp&t;f&ykVdO(fQ;(dQG=HEE-FTftO zt=BAzR0f?MeY9(Q5F|y=cfNZA2GAU1ftR*5Aj98BO#e*t8j+3DuUa(@Un*(!NDp1a zkd$b%{q4(0eUSRmDMdhHrDt%osX#UsPV{H=0N=Hy0HWR2$bc-&J>eAs z+W3qYT~ci+zX4wOA5qr3OM}ispDdILJZ1UNR(ai~QkD<^>I6t#HTOZ{Dn5IdEu`R6 z&G!t3I|=Uax1v_*vRwc+;_A^*7BXo_n1>&~M7X)Z64^7^?-Z%kB8SVzt7a3Tfzlkl z!Lgoh8wmV2kw?_S096)=%5wr!BmDI`IfU1iRLLV*$`oUu>x7PDzO><|y z;G!M}-WD;78UUThH3zvg2THjV-;JIw^<{|1KixW0h(o%A;Wi}(7xKE}wc71Q8^Sfc zMH|$>zyP;;Q-5Qip0YYNrcNgQEccrK1qMU{H`|H{KADt#3!G({bhTrS&xK(;A2_6W z8nNzfOmpKazCQa?Yi3D6VfVzAA4necCg=ZyK)z26%%1|^6kW!Fs+4$|t%!RXZ0e@g z_CjxL8FGmk?Ye_oDeGOT#kqB~pJ8!#b7G1cv4A6~CV2RAH{95nXbOQqiwm52CGj_r zTW766X|?(!9&FbIFI1wOgk=iM%WU=WSFKUAb3S`I#yt0C^;;qAZ0#_AY*@T|rjQCSuLGB$?UYk@ z$wL6TN&F%%Xv#`q>KE}}Q0(Ujbtmj>0uMOh* z!U$E(h22&N*e_NIUNR2ZRXtNHepnERBM6nTTfFIXdj2pBnK5v8M|Az3_{(}$@a3W6 z*h<2ytEp&!V}A9>VQ?@DxqAv*?!eniYbFp&OtE>7O(z4RQA7xxO{-1Ng&HHgJ}qej zi@rLGG8g<-JbYDoa8CtgcsgcFcR4Nn7XJG8>zpTd#sEQ;`A7q;&mR({!peK|&3+)y zkX7nNHcobm{|o_MH8UClPQh#R(Zu?yORzt81>vu)^QeP0T+Q;Q2ZHxx@m&GGnRKvG zhW3)uZph>NdP&e1kmxFW{RCqB{htT8o(Nl>p(+G|sMjj|zl>@MGvq}-QD}rYb#z2l;ysiV<(!RZN8FYFq zFtoqSp|AsB#!w_W{THw>#bK5P3)mWoQHDeAZ~*T=d{akm#{u*E(;28P3h|r7+;h+n zTaNPkwF#sH@ZIsgy?oH>zxg1#gc-zLttypU#XmT8FukRhsGZ3RfoXli00EUPjT99AHyO@|Pe27_@DPc!0+yE-@Yw7mQ!^}P!L)fDQn~Sg)&(8pFED_&Xvb|RS5N= zf>y)8ml1zb3BGK$9`AOh(?T%ztN0CE22M9{={DZ9z6p5yofNuoYFwHwFmR?vg7E1I z%txSMviNCk1h%`tF#Ja|UY!B_au`_N4Ts$>dr87Gsc671U`Ls&4+r4eXFi4SpHI2i zM;v12T+K7VaHrKBewhavUd))wRtY}J&-oV`UW}6s$ z_~3g15}Ig1SSi2yb^)Pqx-;NAAu>=d$PJBoPX=y=0ogN!|Hq2QeF^xl>6IP-iS2Zn z`P@b`<7*I}@oKc*zcN@n8hb2g-TIHXq&)!xXidgj8Ld`a^m9PJxS)sQHBusqY)5q2 zacckc@)F`8`L}^#4=F$3c2NmF)5=1>4m=?X@Jn>~{ZTA|;an>E2RUSH73gXHO>T$p zI@dqWBvc1Uz{xB}th+(DJ6uB;?*QEwbf^p>ur0e94F6UbEf^QZqSos$)o?l$txpbA zVUp5{-zG^=^WVTPPLbl3WwQcP3e?RM1{huzrpf<9$iIkZx_K002h_D34v?_zKFxeT zBP4i+lE$0Sp=Hm2*VtDu(CNS?s(SY<@OB2PdetmUcb58>8FDd05mvfd`V32 z{>Lq-M~D}DDG+-igc*G4WFT|oaPsBBP;RxB+y88q0m8ZFZ>|i|PJu5|3})T&is#C+ zY9YWD^gIki;{PX+^V}tVyGuT1oMo03?r<_X=tn$@I!@keE-wyza{#X#fBXrgTzuR=h6XsO1{Yiz$ zXiPrp|7XYUnbc{Vfl;dhMx_HcP7zmWsU->L>mtx4bzC;lT|(|N2!6cX;l=FZ9{eiY z>`*${XkJ^ZUGF(!_%Ogy4FNRxrBZ#>e`_R?ZVJ8+cAxycq)Z>6jTSoH7D3$MnpHL~ za_FJmKT3^EKKxoVLElQJ69XJvz`aB%1Kaa|(<{Y`*Nafhtu#6@ahUaFL!k5i+PE9d z|6g~c_%O`t=UA?`=*mWd{WG8n1Nso;8n`F@e=Ayrq8PBZ72N4izX)ygWw`DX z_hK1L=WEUo*`J|E!A{v)hFota6!Q{H3E7Qktfn6M8^V8sc}ab6(1v6eB@sGGMK=*b zXZs%JuwRSF|9eO?$)!p{245W%Ky^Q}B^-f~4T++_c zs6{>mC~&|?8ag!@{~4yAFHl?M7|8`hs)DSPWH>0>2E7ChRYacWpM>@3@bQ5+AmwyB zkyHy{Di(uH;Wss-wcuR=T|(La6k*EeYRrd=K>q;++|u>iM=QlI0kYJ+l7hAfN?=imkS^tNAU}Gq?0jOYe1<-g3Dig<>Ebp_CsVVsLeGv+fS!%uMoo$PiUy_U*Fe+rJr_ZZ+=vQED9u6$g zd+s=+eADX3b~OkZL8`3Ft9~DINeuygV6+3Q3I2WNJO(#8aawShQq_%>W1lO4T9buC z`B6Eo&@L>1N}iCMTs|c_=M4!Xi&aaHk)G?i?lYO>d%7>YrAa3-tw`zn^Ab(6vJ%Y5 zw-EISNA1&Nq_C@8nifaaQrwqo_q6l#b&?iGNJI3=?(lsm*v!!Q_-lE$v!kDn79C3g zqdw6*RP6Q4F67Z$4!ZyFi>cI?5xJZFJNB|89m#qo1-I|N^{iSS7!(Ms_#$p!r1Mvi zdFv(I%<}S^w%IH04);ERXG-kDT+k4lhqi=r|9pC!Auc|U=H}?wsa9^&9EQPM#W>RUX@%2ZB)*cW<8I6i=1dV zzv5oLJwCfX$sbK?xwM*T*G0CUcR#z{6coZr!Jd&}YxZ1~GW#uN`XCrCx4gdV zHv!Y)rITi&s9R_veol%q*ckE&)1W+|47|}U{IAD{)Xy~FGYk}w+F<$)7qw#GptmR} zL=xUP_rtT+Vx8v}Igy$U{L+EHv%=X>P?=)zG@XTG4K(I&L{yWuF@-|$`Hfc)qF}Jo z6B~c3a?P3MtYLd2s%*q#boG}eJe`qZ>nTKkGFtR@NIbN$?dyLXCF7?4;!$#$K!b9P z6#CjIcG?kg5lkZqr!@oU*3Qf*HS~3Ir9I}~;OR9u@Bg)y%G{DC`4oRjKA6BN^luO! z2t^X23Wk;|d7kXfeBYnk-LzoZ4*m(y$j`nwN25n8#vVKFD7i%kg$Db|CB4N9i-eP! zFEb}>{XF=Lm9Cfj>?1v;kkL!1(BMP4w+viopTu3-h?>f1X~zANB!3=iE(KuPDD~7$ literal 0 HcmV?d00001 diff --git a/icon.png.import b/icon.png.import new file mode 100644 index 0000000..69172a5 --- /dev/null +++ b/icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dys7bqm5frcfe" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.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/project.godot b/project.godot index c41bd2d..a140ffe 100644 --- a/project.godot +++ b/project.godot @@ -14,11 +14,13 @@ portals/gizmo_forward_color=Color(0.464396, 2.33434e-06, 0.285212, 1) [application] -config/name="AntichamberStairs" +config/name="Many Paths To Nowhere" +config/description="This is a recreation of an Antichamber puzzle called Many Paths To Nowhere. It serves as a showcase of my portal plugin." +config/version="1.0.0" config/tags=PackedStringArray("demo", "dp", "game") run/main_scene="uid://by4fsuj02uyb3" config/features=PackedStringArray("4.4", "Forward Plus") -config/icon="res://icon.svg" +config/icon="uid://dys7bqm5frcfe" [display] diff --git a/world.tscn b/world.tscn index b5c8267..31bcac0 100644 --- a/world.tscn +++ b/world.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=20 format=4 uid="uid://by4fsuj02uyb3"] +[gd_scene load_steps=16 format=3 uid="uid://by4fsuj02uyb3"] [ext_resource type="Script" uid="uid://7uicahbwx5vb" path="res://scripts/antichamber.gd" id="1_2o6r5"] [ext_resource type="Script" uid="uid://bdclx4q3c332j" path="res://scripts/player.gd" id="1_f3sb7"] @@ -10,9 +10,7 @@ [ext_resource type="PackedScene" uid="uid://dg8u30dpogytq" path="res://meshes/Hall-Win.glb" id="8_ioo17"] [ext_resource type="PackedScene" uid="uid://bwox38sbk15lq" path="res://meshes/Hall-AfterStairs-Outline.glb" id="9_hiqwa"] [ext_resource type="PackedScene" uid="uid://bxbrle74hc0x7" path="res://meshes/Hall-Win-Outline.glb" id="9_wse8f"] -[ext_resource type="Script" uid="uid://cw1r4c1d7beyv" path="res://addons/portals/scripts/portal_3d.gd" id="10_ic0uy"] -[ext_resource type="Material" uid="uid://dcfkcyddxkglf" path="res://addons/portals/materials/editor-preview-portal-material.tres" id="11_2o6r5"] -[ext_resource type="Script" uid="uid://bxcel82b180o3" path="res://addons/portals/scripts/portal_boxmesh.gd" id="11_k3n1d"] +[ext_resource type="PackedScene" uid="uid://dl3qjl3fwwvlm" path="res://components/portal_prefab.tscn" id="11_ic0uy"] [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_f3sb7"] sky_horizon_color = Color(0.662243, 0.671743, 0.686743, 1) @@ -34,44 +32,12 @@ glow_enabled = true radius = 0.375 height = 1.5 -[sub_resource type="ArrayMesh" id="ArrayMesh_70uel"] -_surfaces = [{ -"aabb": AABB(-1, -1, -1, 2, 2, 1), -"attribute_data": PackedByteArray("AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPw=="), -"format": 34359742487, -"index_count": 36, -"index_data": PackedByteArray("AAABAAQABAABAAUAAQADAAUABQADAAcAAwACAAcABwACAAYAAgAAAAYABgAAAAQABAAFAAYABgAFAAcAAAABAAIAAgABAAMA"), -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 8, -"vertex_data": PackedByteArray("AACAvwAAgD8AAAAAAACAPwAAgD8AAAAAAACAvwAAgL8AAAAAAACAPwAAgL8AAAAAAACAvwAAgD8AAIC/AACAPwAAgD8AAIC/AACAvwAAgL8AAIC/AACAPwAAgL8AAIC//3//f/9/AID/f/9//38AgP9//3//fwCA/3//f/9/AID/f/9//38AgP9//3//fwCA/3//f/9/AID/f/9//38AgA==") -}] -script = ExtResource("11_k3n1d") -size = Vector3(2, 2, 1) - -[sub_resource type="BoxShape3D" id="BoxShape3D_hiqwa"] -size = Vector3(2, 2, 1) - [node name="World" type="Node3D"] script = ExtResource("1_2o6r5") [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_tlwt5") -[node name="Player" type="CharacterBody3D" parent="." node_paths=PackedStringArray("camera")] -transform = Transform3D(1, 0, -1.58933e-08, 0, 1, 0, 1.58933e-08, 0, 1, -4.42657, 1.05097, 10.9577) -collision_layer = 32769 -floor_max_angle = 0.872665 -script = ExtResource("1_f3sb7") -camera = NodePath("Camera3D") -SPEED = 3.0 - -[node name="CollisionShape3D" type="CollisionShape3D" parent="Player"] -shape = SubResource("CapsuleShape3D_f3sb7") - -[node name="Camera3D" type="Camera3D" parent="Player"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2, 0) - [node name="Hall-BeforeStairs" parent="." instance=ExtResource("2_fj7yv")] [node name="Hall-BeforeStairs-Outline" parent="Hall-BeforeStairs" instance=ExtResource("3_ioo17")] @@ -173,157 +139,40 @@ omni_attenuation = -1.25 transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 2.8) text = "YOU WIN!!!" -[node name="StairsPortal" type="Node3D" parent="." node_paths=PackedStringArray("exit_portal") groups=["portals"]] +[node name="Player" type="CharacterBody3D" parent="." node_paths=PackedStringArray("camera")] +transform = Transform3D(1, 0, -1.58933e-08, 0, 1, 0, 1.58933e-08, 0, 1, -4.42657, 1.05097, 10.9577) +collision_layer = 32769 +floor_max_angle = 0.872665 +script = ExtResource("1_f3sb7") +camera = NodePath("Camera3D") +SPEED = 3.0 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Player"] +shape = SubResource("CapsuleShape3D_f3sb7") + +[node name="Camera3D" type="Camera3D" parent="Player"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2, 0) +near = 0.001 + +[node name="StairsPortal" parent="." node_paths=PackedStringArray("exit_portal") instance=ExtResource("11_ic0uy")] unique_name_in_owner = true -process_priority = 100 -process_physics_priority = 100 -transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -6, 1, 3) -script = ExtResource("10_ic0uy") -_portal_mesh_path = NodePath("Portal3D_Mesh") -_teleport_area_path = NodePath("TeleportArea") -_teleport_collider_path = NodePath("TeleportArea/Collider") -portal_size = Vector2(2, 2) +transform = Transform3D(-1, 0, -1.50996e-07, 0, 1, 0, 1.50996e-07, 0, -1, -6, 1, 3) exit_portal = NodePath("../StartPortal") -portal_render_layer = 524288 -portal_frame_width = 0.0 -viewport_size_mode = 1 -_viewport_size_max_width_absolute = 1920 -view_direction = 0 -is_teleport = true -teleport_direction = 2 -rigidbody_boost = 0.0 -teleport_collision_mask = 32768 -teleport_tolerance = 0.5 -teleport_interactions = 3 -start_deactivated = false -metadata/_custom_type_script = "uid://cw1r4c1d7beyv" -metadata/_edit_group_ = true -[node name="Portal3D_Mesh" type="MeshInstance3D" parent="StairsPortal"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.05, 0, 0, 0) -layers = 524288 -material_override = ExtResource("11_2o6r5") -cast_shadow = 0 -mesh = SubResource("ArrayMesh_70uel") - -[node name="TeleportArea" type="Area3D" parent="StairsPortal"] - -[node name="Collider" type="CollisionShape3D" parent="StairsPortal/TeleportArea"] -shape = SubResource("BoxShape3D_hiqwa") - -[node name="StartPortal" type="Node3D" parent="." node_paths=PackedStringArray("exit_portal") groups=["portals"]] +[node name="StartPortal" parent="." node_paths=PackedStringArray("exit_portal") instance=ExtResource("11_ic0uy")] unique_name_in_owner = true -process_priority = 100 -process_physics_priority = 100 -transform = Transform3D(1, 0, 1.74846e-07, 0, 1, 0, -1.74846e-07, 0, 1, -10, 1, 6.9) -script = ExtResource("10_ic0uy") -_portal_mesh_path = NodePath("Portal3D_Mesh") -_teleport_area_path = NodePath("TeleportArea") -_teleport_collider_path = NodePath("TeleportArea/Collider") -portal_size = Vector2(2, 2) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 1, 6.9) exit_portal = NodePath("../StairsPortal") -portal_render_layer = 524288 -portal_frame_width = 0.0 -viewport_size_mode = 1 -_viewport_size_max_width_absolute = 1920 -view_direction = 0 -is_teleport = true -teleport_direction = 2 -rigidbody_boost = 0.0 -teleport_collision_mask = 32768 -teleport_tolerance = 0.5 -teleport_interactions = 3 -start_deactivated = false -metadata/_custom_type_script = "uid://cw1r4c1d7beyv" -metadata/_edit_group_ = true -[node name="Portal3D_Mesh" type="MeshInstance3D" parent="StartPortal"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.05, 0, 0, 0) -layers = 524288 -material_override = ExtResource("11_2o6r5") -cast_shadow = 0 -mesh = SubResource("ArrayMesh_70uel") - -[node name="TeleportArea" type="Area3D" parent="StartPortal"] - -[node name="Collider" type="CollisionShape3D" parent="StartPortal/TeleportArea"] -shape = SubResource("BoxShape3D_hiqwa") - -[node name="BluePortal" type="Node3D" parent="." node_paths=PackedStringArray("exit_portal") groups=["portals"]] +[node name="BluePortal" parent="." node_paths=PackedStringArray("exit_portal") instance=ExtResource("11_ic0uy")] unique_name_in_owner = true -process_priority = 100 -process_physics_priority = 100 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.6, 3.2, 2.1) -script = ExtResource("10_ic0uy") -_portal_mesh_path = NodePath("Portal3D_Mesh") -_teleport_area_path = NodePath("TeleportArea") -_teleport_collider_path = NodePath("TeleportArea/Collider") -portal_size = Vector2(2, 2) exit_portal = NodePath("../StairsPortal") -portal_render_layer = 524288 -portal_frame_width = 0.0 -viewport_size_mode = 1 -_viewport_size_max_width_absolute = 1920 -view_direction = 0 -is_teleport = true -teleport_direction = 2 -rigidbody_boost = 0.0 -teleport_collision_mask = 32768 -teleport_tolerance = 0.5 -teleport_interactions = 3 -start_deactivated = false -metadata/_custom_type_script = "uid://cw1r4c1d7beyv" -metadata/_edit_group_ = true -[node name="Portal3D_Mesh" type="MeshInstance3D" parent="BluePortal"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.05, 0, 0, 0) -layers = 524288 -material_override = ExtResource("11_2o6r5") -cast_shadow = 0 -mesh = SubResource("ArrayMesh_70uel") - -[node name="TeleportArea" type="Area3D" parent="BluePortal"] - -[node name="Collider" type="CollisionShape3D" parent="BluePortal/TeleportArea"] -shape = SubResource("BoxShape3D_hiqwa") - -[node name="RedPortal" type="Node3D" parent="." node_paths=PackedStringArray("exit_portal") groups=["portals"]] +[node name="RedPortal" parent="." node_paths=PackedStringArray("exit_portal") instance=ExtResource("11_ic0uy")] unique_name_in_owner = true -process_priority = 100 -process_physics_priority = 100 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.6, -1.2, -2.38419e-07) -script = ExtResource("10_ic0uy") -_portal_mesh_path = NodePath("Portal3D_Mesh") -_teleport_area_path = NodePath("TeleportArea") -_teleport_collider_path = NodePath("TeleportArea/Collider") -portal_size = Vector2(2, 2) exit_portal = NodePath("../StairsPortal") -portal_render_layer = 524288 -portal_frame_width = 0.0 -viewport_size_mode = 1 -_viewport_size_max_width_absolute = 1920 -view_direction = 0 -is_teleport = true -teleport_direction = 2 -rigidbody_boost = 0.0 -teleport_collision_mask = 32768 -teleport_tolerance = 0.5 -teleport_interactions = 3 -start_deactivated = false -metadata/_custom_type_script = "uid://cw1r4c1d7beyv" -metadata/_edit_group_ = true - -[node name="Portal3D_Mesh" type="MeshInstance3D" parent="RedPortal"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.05, 0, 0, 0) -layers = 524288 -material_override = ExtResource("11_2o6r5") -cast_shadow = 0 -mesh = SubResource("ArrayMesh_70uel") - -[node name="TeleportArea" type="Area3D" parent="RedPortal"] - -[node name="Collider" type="CollisionShape3D" parent="RedPortal/TeleportArea"] -shape = SubResource("BoxShape3D_hiqwa") [connection signal="on_teleport" from="BluePortal" to="." method="_on_blue_portal_on_teleport"] [connection signal="on_teleport" from="RedPortal" to="." method="_on_red_portal_on_teleport"]