From ec10f0e54b97fb09e729423f5b06bb0cfa72fb14 Mon Sep 17 00:00:00 2001 From: kziolkowski Date: Tue, 12 Nov 2024 22:42:34 +0100 Subject: [PATCH 1/3] created 3D abandoned street mockup scene --- graphics/mockups/darktree1.png.import | 13 +- graphics/mockups/darktree2.png.import | 13 +- graphics/mockups/darktree3.png.import | 13 +- graphics/mockups/darktree4.png.import | 13 +- graphics/mockups/darktree5.png.import | 13 +- graphics/mockups/darktree6.png.import | 13 +- graphics/mockups/darktree7.png.import | 13 +- graphics/mockups/darktree8.png.import | 13 +- graphics/mockups/darktree9.png.import | 13 +- graphics/mockups/field_placeholder.png | Bin 0 -> 5384 bytes graphics/mockups/field_placeholder.png.import | 35 + graphics/testingground/Doll.png.import | 13 +- .../testingground/IveSeenSomeShit.png.import | 13 +- .../testingground/TakeThatCandy.png.import | 13 +- graphics/testingground/chestnut1.png.import | 13 +- graphics/testingground/chestnut2.png.import | 13 +- graphics/testingground/concerned.png.import | 13 +- graphics/testingground/mushroom1.png.import | 13 +- graphics/testingground/mushroom10.png.import | 13 +- graphics/testingground/mushroom11.png.import | 13 +- graphics/testingground/mushroom2.png.import | 13 +- graphics/testingground/mushroom3.png.import | 13 +- graphics/testingground/mushroom4.png.import | 13 +- graphics/testingground/mushroom5.png.import | 13 +- graphics/testingground/mushroom6.png.import | 13 +- graphics/testingground/mushroom7.png.import | 13 +- graphics/testingground/mushroom8.png.import | 13 +- graphics/testingground/mushroom9.png.import | 13 +- scenes/2DTestingGround.tscn | 3 +- ...d_street.tscn => abandoned_street_2D.tscn} | 80 +- scenes/mockups/abandoned_street_3d.tscn | 822 ++++++++++++++++++ 31 files changed, 1080 insertions(+), 198 deletions(-) create mode 100644 graphics/mockups/field_placeholder.png create mode 100644 graphics/mockups/field_placeholder.png.import rename scenes/mockups/{abandoned_street.tscn => abandoned_street_2D.tscn} (76%) create mode 100644 scenes/mockups/abandoned_street_3d.tscn diff --git a/graphics/mockups/darktree1.png.import b/graphics/mockups/darktree1.png.import index 337d73b..7d1041d 100644 --- a/graphics/mockups/darktree1.png.import +++ b/graphics/mockups/darktree1.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://cg1cxmqbo1pa" -path="res://.godot/imported/darktree1.png-6c9c1843804e0501b0678ae7981cd027.ctex" +path.s3tc="res://.godot/imported/darktree1.png-6c9c1843804e0501b0678ae7981cd027.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/mockups/darktree1.png" -dest_files=["res://.godot/imported/darktree1.png-6c9c1843804e0501b0678ae7981cd027.ctex"] +dest_files=["res://.godot/imported/darktree1.png-6c9c1843804e0501b0678ae7981cd027.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/mockups/darktree2.png.import b/graphics/mockups/darktree2.png.import index ea0561a..50a8d54 100644 --- a/graphics/mockups/darktree2.png.import +++ b/graphics/mockups/darktree2.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://fcm6etmmj65d" -path="res://.godot/imported/darktree2.png-bc0ff27335e63d23792e6feab3fd4ae4.ctex" +path.s3tc="res://.godot/imported/darktree2.png-bc0ff27335e63d23792e6feab3fd4ae4.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/mockups/darktree2.png" -dest_files=["res://.godot/imported/darktree2.png-bc0ff27335e63d23792e6feab3fd4ae4.ctex"] +dest_files=["res://.godot/imported/darktree2.png-bc0ff27335e63d23792e6feab3fd4ae4.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/mockups/darktree3.png.import b/graphics/mockups/darktree3.png.import index 9fd6bc2..5c1c130 100644 --- a/graphics/mockups/darktree3.png.import +++ b/graphics/mockups/darktree3.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://c8h24ouqcqlxv" -path="res://.godot/imported/darktree3.png-402f41198d5cec5befc9ed8b825ec529.ctex" +path.s3tc="res://.godot/imported/darktree3.png-402f41198d5cec5befc9ed8b825ec529.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/mockups/darktree3.png" -dest_files=["res://.godot/imported/darktree3.png-402f41198d5cec5befc9ed8b825ec529.ctex"] +dest_files=["res://.godot/imported/darktree3.png-402f41198d5cec5befc9ed8b825ec529.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/mockups/darktree4.png.import b/graphics/mockups/darktree4.png.import index 6c20c88..67edc7e 100644 --- a/graphics/mockups/darktree4.png.import +++ b/graphics/mockups/darktree4.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://dcimm8umxko8" -path="res://.godot/imported/darktree4.png-ae0a0014c089a2b4be72c1152d2d368a.ctex" +path.s3tc="res://.godot/imported/darktree4.png-ae0a0014c089a2b4be72c1152d2d368a.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/mockups/darktree4.png" -dest_files=["res://.godot/imported/darktree4.png-ae0a0014c089a2b4be72c1152d2d368a.ctex"] +dest_files=["res://.godot/imported/darktree4.png-ae0a0014c089a2b4be72c1152d2d368a.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/mockups/darktree5.png.import b/graphics/mockups/darktree5.png.import index bbcc928..c489a99 100644 --- a/graphics/mockups/darktree5.png.import +++ b/graphics/mockups/darktree5.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://rk30f4q2a1vm" -path="res://.godot/imported/darktree5.png-881d40bfdb6059f71c7e02910ea20291.ctex" +path.s3tc="res://.godot/imported/darktree5.png-881d40bfdb6059f71c7e02910ea20291.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/mockups/darktree5.png" -dest_files=["res://.godot/imported/darktree5.png-881d40bfdb6059f71c7e02910ea20291.ctex"] +dest_files=["res://.godot/imported/darktree5.png-881d40bfdb6059f71c7e02910ea20291.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/mockups/darktree6.png.import b/graphics/mockups/darktree6.png.import index f00a8f8..fa6baef 100644 --- a/graphics/mockups/darktree6.png.import +++ b/graphics/mockups/darktree6.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://xd1ob1jfq7pi" -path="res://.godot/imported/darktree6.png-521759c8c41c7d7d8b1927848573fb31.ctex" +path.s3tc="res://.godot/imported/darktree6.png-521759c8c41c7d7d8b1927848573fb31.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/mockups/darktree6.png" -dest_files=["res://.godot/imported/darktree6.png-521759c8c41c7d7d8b1927848573fb31.ctex"] +dest_files=["res://.godot/imported/darktree6.png-521759c8c41c7d7d8b1927848573fb31.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/mockups/darktree7.png.import b/graphics/mockups/darktree7.png.import index 670fd88..68f099c 100644 --- a/graphics/mockups/darktree7.png.import +++ b/graphics/mockups/darktree7.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://bxfwua8h235xp" -path="res://.godot/imported/darktree7.png-792eec1560e1d356fcfe4dc06b6826b5.ctex" +path.s3tc="res://.godot/imported/darktree7.png-792eec1560e1d356fcfe4dc06b6826b5.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/mockups/darktree7.png" -dest_files=["res://.godot/imported/darktree7.png-792eec1560e1d356fcfe4dc06b6826b5.ctex"] +dest_files=["res://.godot/imported/darktree7.png-792eec1560e1d356fcfe4dc06b6826b5.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/mockups/darktree8.png.import b/graphics/mockups/darktree8.png.import index 4141b2e..33392e5 100644 --- a/graphics/mockups/darktree8.png.import +++ b/graphics/mockups/darktree8.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://bradm5u7vjjxq" -path="res://.godot/imported/darktree8.png-c82977a598fa7488efa01b0060f473e5.ctex" +path.s3tc="res://.godot/imported/darktree8.png-c82977a598fa7488efa01b0060f473e5.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/mockups/darktree8.png" -dest_files=["res://.godot/imported/darktree8.png-c82977a598fa7488efa01b0060f473e5.ctex"] +dest_files=["res://.godot/imported/darktree8.png-c82977a598fa7488efa01b0060f473e5.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/mockups/darktree9.png.import b/graphics/mockups/darktree9.png.import index 79f97a0..d7fd8a1 100644 --- a/graphics/mockups/darktree9.png.import +++ b/graphics/mockups/darktree9.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://bryqg0hb4f0ry" -path="res://.godot/imported/darktree9.png-7e06c76477609c96f145e40553614f03.ctex" +path.s3tc="res://.godot/imported/darktree9.png-7e06c76477609c96f145e40553614f03.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/mockups/darktree9.png" -dest_files=["res://.godot/imported/darktree9.png-7e06c76477609c96f145e40553614f03.ctex"] +dest_files=["res://.godot/imported/darktree9.png-7e06c76477609c96f145e40553614f03.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/mockups/field_placeholder.png b/graphics/mockups/field_placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..0c01bf6d07456c45c6172c6217f408ced627c8ca GIT binary patch literal 5384 zcmZ`-c|6ql|9^ePW~g>Uy_t0M_bm>iY?bVKYd#rztZtjDH44< zD57YI8fL$~mH0U}B1cTCLncP6aSi78dcS8>`*{3*e>5M{=QFSO>v$fonWGN&)*9-1 z>Hwf&YqQo7fP;T>KvfwpAH!+~@uC)JYbW`~q_0Zz1<)ye+{ zZBgmI*^#wjs{Vv{m7}Rze|V02vwFPs2hNOH->jT6qdjT%8lJkl_M-nB{X=!l6sKRA zs3S+T5|`VYGTJA2a_q#Tu{u@;hm59cTRr%CrSX9aT{p9iwbr@aUT|}xbMlrb7s+sR z_ol;9H}4lZJJ*l&wPe(FWpB+e0EdJFI>2Irs_=hb1TW0_qD8_BX$Hs3D)P@r4&}Ie z)J^bOP@Z^~@oLFh=i=R&_og*BXKS+5)bLyX{J8S(e8u%Yi4six@=g0J0%TE*Ss8hD zO;!AsmdLJSA+EWHI`bsE#x+VMO;U+jm)V|tNuz&Ud2h(G=(ypKrko!B$40%N{9ti@ zR{fj24>SG3+}!e?1vcN1JUkK1Z?6?z9c~s$lY_dSUyy(4IDc`=3R+x2|`iS#83kuq6Gh9n5>JOC1wGN0bWsCF{ekW z7YXtTLsAYWRn@zDyJqh%#wVlSO4~d8Bl$NEd3O#^O74^vo!grs%4;3i>lPZdAgXqM z&&}3>cbeJPoQEqzQz4*UniWi9HS;X)eXgVlpJmwX3FH`G`QFm;FA(WjcHa{*4a#__l@~kzt zO@)1|ImU32sBeR6e{RH7D65pMF8IaUC4k&I=o_v)awju1!KnLBzB+ilm3{mA&D*j; z6N?zQH{N4mhPh7n4mC~+zXu#bM#OW?ig(oQdEd_nADPDev%>els^VO7qj>w?=qs7d z4Ih*Qw+5bwXZ0VO1XX7x8h%<3`eRhba6*~ko8quGCUtpf&+9i4wbP(0_Q&NP zs?H7fxCYFJGaFmp_osCE_A9Z{Al+2+xv~>EDJw0)V0Oyg3$3z|oFXeeBW&?q-!1!( zojwz`Q7qFMWT2~R6Z`1onN`m{f^UPv$_Cf6ijx^jpjo8dJ?u5yJ^du`YDONs)`G4W z)&2tqxoq##BCXnq;P@*mUMTIVH~3Rku<@+qnV&k$;fYoI^VV=#L&ptZ6Raz&IIIc* zPWbohCl27FB3pj>1e_{M`j<5nZO~whlCzI0!{i}`jl2~0=7x&LR5fUkYQezq27>?I!fup(v&MN^}@2-c%o9BX!uf7__u+Ol8YOX4nSIl56Cm6x2t7_UX zSNFRyo;vtOH<5eKX%*Pa2~wvwd2w9!4xSNZ4LpWpX`cv8s?}v%7O%o1J{&IFHYt&t zjuH0ZY2>}S5^G`!rB944A>F}8ljx3l#Z380caL+~10Ep#@-`c|=YS8qGyZ(zGC8Qm255vEhH8LKGD_QNO#5=tekS9YNGWUd1 z(qmPSc0RWwhnt*++hmA1Z5pe`253#&*K){2u#d~Icjn3KIP#%W5Lu-ufEdb9yq}a0 z0y~KPVJ|9UOh=4K2%rtUV<`w`VJVb0-;(Ca=aL4GNavA-!nMO-bZv_QCy2{5I+8?? zDz1kW*NxAR)ladwiF(!?0mc2S)8MIzRU)-0;A>)M0yv~Z8^e6^u--aa3B@(7l&4m0 zWJGaJE55uLC>ao(gzipLK9NkBVJz+6o`zI1WCWvprr~fMbCHaZlPg`#0f4=D{q!`c z11VwkC?|oAZl^J{nl=$ zJ@Y>_77oXX)@y7@9xO!Jql3ph2!x18r4f;Gn2;LEAcjXpbpk=hB%CN!;_%5Vp~D;m zE{Q_tt{B8b<_|s~2kEFm6xD*sN_sbl3dB)}1+FE;ZM%+x7`jtDs#bQK$=Qc&I(6h)) zFXJqz7^kaYil19bXpBfjhVhQk^2zk+@T%|2xkAmC$RbY#r-TDKp>Q#(!J}${eo>7m zpJ>2nlhn&mS+U9bT4+|nd!xX?AUlZO>Lw})5xoTORBH*j!APDbW{3Hn+N|InnFWEX z8}{WBL>7_^C|*9j5Xq;8jxjN`Q5tgf3zJv@3#X1l&;9Jj4%mp<*fU=PHA=G2oTrfU zMRbf}T5hK+U>BlgkRzaed&~v`ml(DzJiu!G2^dIdwdggl^vrq0)Jz|YVO(VFQ!Dv`t&@rFYGf<|j_z$_Tfp2D3uFg9|I^xL%aU8XBZ{#t*8vkk z;RW)g6OCpPWwZ&SH)b3af6^ebvan>6SVk-zm#@Fc8#etOvDP^}6$<4qT0qLM_r_J= zZ_68M-01Q~hKfc6x5;u#7U9X{_++`!)3w0KM^CY_p?Okj;5_} zH;4t4jtB6}mhTbrF9RJ+-~xbUGwv(1HyjcE7y*R})%!K;L6@ybYCs{2jy4vd88tq5P(675JC5aCLyNW0?-L#R)AgTU<2kr>yy!&;MIyLgevuyzV`y{;_&aQQE5X@aI6l+7ACxv!_m zD{9j%{O&k#ENA3Zp~Z^I@vI4VD7avt=F&UdEmC+<;W19VHQCKJ;Il?hm5@}tc@Ny% zU-44*W138*)9_ur9@nsYa(K%`fKYxR6TY*o= z6R(t^Bx$6>M^(!SoW%SwMcJ8)B*)d1*`|*LIW2Cz55*0AO45vHJ9`_dmP>@rWp=sl z`6JEI3n6eT6najwbUJ|M^~N1a47Q^8)4l>W+nJ-b~3=7^HY!`HZE`^qAO-kR(*nato#K+6xZDlh)Fx{{nW*pSz--M=-^=X*a{Qkl2qt#r@cx1IHOM@GV3^CV6F$3mo6 zbNyQymbU-2rz;}FP9v?eEzY7ZX>YCMre2olx0bw)X7SbB&O*IQc^)N&?xM$Cb-}~I zX88%O9pMGn+)p;)OUZ$W!3JYHj!XUFu$Vyse6Ql_<<%b;95Y|Z$0mFN@DOgrr$&L0NDF4t1bTD-vL<^ gEmR3|X-=0h%E{ry$E{vv;#;s?XTLVf%JZN93qKYK-T(jq literal 0 HcmV?d00001 diff --git a/graphics/mockups/field_placeholder.png.import b/graphics/mockups/field_placeholder.png.import new file mode 100644 index 0000000..3d76eaa --- /dev/null +++ b/graphics/mockups/field_placeholder.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cygt1j1m0vpqg" +path.s3tc="res://.godot/imported/field_placeholder.png-be0fb818475a680edf7ae1e8920c3ab2.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://graphics/mockups/field_placeholder.png" +dest_files=["res://.godot/imported/field_placeholder.png-be0fb818475a680edf7ae1e8920c3ab2.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +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=0 diff --git a/graphics/testingground/Doll.png.import b/graphics/testingground/Doll.png.import index a442e7e..8454453 100644 --- a/graphics/testingground/Doll.png.import +++ b/graphics/testingground/Doll.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://dj1syhq0dmf3p" -path="res://.godot/imported/Doll.png-6f0443c64ba885f03fa15b69fdd4a622.ctex" +path.s3tc="res://.godot/imported/Doll.png-6f0443c64ba885f03fa15b69fdd4a622.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/testingground/Doll.png" -dest_files=["res://.godot/imported/Doll.png-6f0443c64ba885f03fa15b69fdd4a622.ctex"] +dest_files=["res://.godot/imported/Doll.png-6f0443c64ba885f03fa15b69fdd4a622.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/testingground/IveSeenSomeShit.png.import b/graphics/testingground/IveSeenSomeShit.png.import index 04253d9..e2bad95 100644 --- a/graphics/testingground/IveSeenSomeShit.png.import +++ b/graphics/testingground/IveSeenSomeShit.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://bcah7lrg2oae1" -path="res://.godot/imported/IveSeenSomeShit.png-a70e0f6edf8bc1e32ae477ef1b86b685.ctex" +path.s3tc="res://.godot/imported/IveSeenSomeShit.png-a70e0f6edf8bc1e32ae477ef1b86b685.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/testingground/IveSeenSomeShit.png" -dest_files=["res://.godot/imported/IveSeenSomeShit.png-a70e0f6edf8bc1e32ae477ef1b86b685.ctex"] +dest_files=["res://.godot/imported/IveSeenSomeShit.png-a70e0f6edf8bc1e32ae477ef1b86b685.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/testingground/TakeThatCandy.png.import b/graphics/testingground/TakeThatCandy.png.import index 2ca9dce..612e335 100644 --- a/graphics/testingground/TakeThatCandy.png.import +++ b/graphics/testingground/TakeThatCandy.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://cumdgxn0ibpv7" -path="res://.godot/imported/TakeThatCandy.png-f01b70ef03aa14681b514f7be251778e.ctex" +path.s3tc="res://.godot/imported/TakeThatCandy.png-f01b70ef03aa14681b514f7be251778e.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/testingground/TakeThatCandy.png" -dest_files=["res://.godot/imported/TakeThatCandy.png-f01b70ef03aa14681b514f7be251778e.ctex"] +dest_files=["res://.godot/imported/TakeThatCandy.png-f01b70ef03aa14681b514f7be251778e.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/testingground/chestnut1.png.import b/graphics/testingground/chestnut1.png.import index 372ba59..d57ea39 100644 --- a/graphics/testingground/chestnut1.png.import +++ b/graphics/testingground/chestnut1.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://dfynp0xqtpcke" -path="res://.godot/imported/chestnut1.png-21a267aa266521f1b5d3f4d8a3c58228.ctex" +path.s3tc="res://.godot/imported/chestnut1.png-21a267aa266521f1b5d3f4d8a3c58228.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/testingground/chestnut1.png" -dest_files=["res://.godot/imported/chestnut1.png-21a267aa266521f1b5d3f4d8a3c58228.ctex"] +dest_files=["res://.godot/imported/chestnut1.png-21a267aa266521f1b5d3f4d8a3c58228.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/testingground/chestnut2.png.import b/graphics/testingground/chestnut2.png.import index d747e42..5fe3745 100644 --- a/graphics/testingground/chestnut2.png.import +++ b/graphics/testingground/chestnut2.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://63rgrra0tdef" -path="res://.godot/imported/chestnut2.png-08cf9d087b4c2a8247e0363130550373.ctex" +path.s3tc="res://.godot/imported/chestnut2.png-08cf9d087b4c2a8247e0363130550373.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/testingground/chestnut2.png" -dest_files=["res://.godot/imported/chestnut2.png-08cf9d087b4c2a8247e0363130550373.ctex"] +dest_files=["res://.godot/imported/chestnut2.png-08cf9d087b4c2a8247e0363130550373.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/testingground/concerned.png.import b/graphics/testingground/concerned.png.import index dbbf074..72881e6 100644 --- a/graphics/testingground/concerned.png.import +++ b/graphics/testingground/concerned.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://cvn2p215jq2am" -path="res://.godot/imported/concerned.png-205741d8bc7fe187c462562cc67cb650.ctex" +path.s3tc="res://.godot/imported/concerned.png-205741d8bc7fe187c462562cc67cb650.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/testingground/concerned.png" -dest_files=["res://.godot/imported/concerned.png-205741d8bc7fe187c462562cc67cb650.ctex"] +dest_files=["res://.godot/imported/concerned.png-205741d8bc7fe187c462562cc67cb650.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/testingground/mushroom1.png.import b/graphics/testingground/mushroom1.png.import index 7f9c2db..e0f96ab 100644 --- a/graphics/testingground/mushroom1.png.import +++ b/graphics/testingground/mushroom1.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://c1iyeflkwaqxf" -path="res://.godot/imported/mushroom1.png-e27fd7d2f556707904d2f859e371da23.ctex" +path.s3tc="res://.godot/imported/mushroom1.png-e27fd7d2f556707904d2f859e371da23.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/testingground/mushroom1.png" -dest_files=["res://.godot/imported/mushroom1.png-e27fd7d2f556707904d2f859e371da23.ctex"] +dest_files=["res://.godot/imported/mushroom1.png-e27fd7d2f556707904d2f859e371da23.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/testingground/mushroom10.png.import b/graphics/testingground/mushroom10.png.import index fb8ba96..15cebae 100644 --- a/graphics/testingground/mushroom10.png.import +++ b/graphics/testingground/mushroom10.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://bednd2jncey0i" -path="res://.godot/imported/mushroom10.png-7643aad497bc0ec349fbaa9d7d07927a.ctex" +path.s3tc="res://.godot/imported/mushroom10.png-7643aad497bc0ec349fbaa9d7d07927a.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/testingground/mushroom10.png" -dest_files=["res://.godot/imported/mushroom10.png-7643aad497bc0ec349fbaa9d7d07927a.ctex"] +dest_files=["res://.godot/imported/mushroom10.png-7643aad497bc0ec349fbaa9d7d07927a.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/testingground/mushroom11.png.import b/graphics/testingground/mushroom11.png.import index 107288b..e2bf768 100644 --- a/graphics/testingground/mushroom11.png.import +++ b/graphics/testingground/mushroom11.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://cam7x7byvqtb2" -path="res://.godot/imported/mushroom11.png-f358b483aa3f778bb3de2ca731fdf765.ctex" +path.s3tc="res://.godot/imported/mushroom11.png-f358b483aa3f778bb3de2ca731fdf765.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/testingground/mushroom11.png" -dest_files=["res://.godot/imported/mushroom11.png-f358b483aa3f778bb3de2ca731fdf765.ctex"] +dest_files=["res://.godot/imported/mushroom11.png-f358b483aa3f778bb3de2ca731fdf765.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/testingground/mushroom2.png.import b/graphics/testingground/mushroom2.png.import index 0728e51..761afbf 100644 --- a/graphics/testingground/mushroom2.png.import +++ b/graphics/testingground/mushroom2.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://clqou4xqud8br" -path="res://.godot/imported/mushroom2.png-3d05f5ddfc64a24a97ae9ed335b94856.ctex" +path.s3tc="res://.godot/imported/mushroom2.png-3d05f5ddfc64a24a97ae9ed335b94856.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/testingground/mushroom2.png" -dest_files=["res://.godot/imported/mushroom2.png-3d05f5ddfc64a24a97ae9ed335b94856.ctex"] +dest_files=["res://.godot/imported/mushroom2.png-3d05f5ddfc64a24a97ae9ed335b94856.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/testingground/mushroom3.png.import b/graphics/testingground/mushroom3.png.import index 2b2b1e1..80e82d1 100644 --- a/graphics/testingground/mushroom3.png.import +++ b/graphics/testingground/mushroom3.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://cj1bfgpunfsoq" -path="res://.godot/imported/mushroom3.png-8d3ea6150747f891c0044b399a46a7b6.ctex" +path.s3tc="res://.godot/imported/mushroom3.png-8d3ea6150747f891c0044b399a46a7b6.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/testingground/mushroom3.png" -dest_files=["res://.godot/imported/mushroom3.png-8d3ea6150747f891c0044b399a46a7b6.ctex"] +dest_files=["res://.godot/imported/mushroom3.png-8d3ea6150747f891c0044b399a46a7b6.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/testingground/mushroom4.png.import b/graphics/testingground/mushroom4.png.import index e26338b..51233c4 100644 --- a/graphics/testingground/mushroom4.png.import +++ b/graphics/testingground/mushroom4.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://bnb3bjk274vgn" -path="res://.godot/imported/mushroom4.png-225b82126c9976b66663819da707d84f.ctex" +path.s3tc="res://.godot/imported/mushroom4.png-225b82126c9976b66663819da707d84f.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/testingground/mushroom4.png" -dest_files=["res://.godot/imported/mushroom4.png-225b82126c9976b66663819da707d84f.ctex"] +dest_files=["res://.godot/imported/mushroom4.png-225b82126c9976b66663819da707d84f.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/testingground/mushroom5.png.import b/graphics/testingground/mushroom5.png.import index c601b2c..705352b 100644 --- a/graphics/testingground/mushroom5.png.import +++ b/graphics/testingground/mushroom5.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://0oy8by6pd2wg" -path="res://.godot/imported/mushroom5.png-c59ec4efb34f378729e1d88ff8f24356.ctex" +path.s3tc="res://.godot/imported/mushroom5.png-c59ec4efb34f378729e1d88ff8f24356.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/testingground/mushroom5.png" -dest_files=["res://.godot/imported/mushroom5.png-c59ec4efb34f378729e1d88ff8f24356.ctex"] +dest_files=["res://.godot/imported/mushroom5.png-c59ec4efb34f378729e1d88ff8f24356.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/testingground/mushroom6.png.import b/graphics/testingground/mushroom6.png.import index 5732470..b0abeff 100644 --- a/graphics/testingground/mushroom6.png.import +++ b/graphics/testingground/mushroom6.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://b1h55mnc1giqu" -path="res://.godot/imported/mushroom6.png-28853bdab5924a577c8b03ddf5606732.ctex" +path.s3tc="res://.godot/imported/mushroom6.png-28853bdab5924a577c8b03ddf5606732.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/testingground/mushroom6.png" -dest_files=["res://.godot/imported/mushroom6.png-28853bdab5924a577c8b03ddf5606732.ctex"] +dest_files=["res://.godot/imported/mushroom6.png-28853bdab5924a577c8b03ddf5606732.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/testingground/mushroom7.png.import b/graphics/testingground/mushroom7.png.import index 710b65d..353219f 100644 --- a/graphics/testingground/mushroom7.png.import +++ b/graphics/testingground/mushroom7.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://c5lsjern0iqmc" -path="res://.godot/imported/mushroom7.png-00f11afdca674c7e9c74d6dc31d3d14c.ctex" +path.s3tc="res://.godot/imported/mushroom7.png-00f11afdca674c7e9c74d6dc31d3d14c.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/testingground/mushroom7.png" -dest_files=["res://.godot/imported/mushroom7.png-00f11afdca674c7e9c74d6dc31d3d14c.ctex"] +dest_files=["res://.godot/imported/mushroom7.png-00f11afdca674c7e9c74d6dc31d3d14c.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/testingground/mushroom8.png.import b/graphics/testingground/mushroom8.png.import index 5f4ceb9..52a470c 100644 --- a/graphics/testingground/mushroom8.png.import +++ b/graphics/testingground/mushroom8.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://bg465y2vkrvfm" -path="res://.godot/imported/mushroom8.png-25b2fc63bd00dc22c8c7376f86d0c6b0.ctex" +path.s3tc="res://.godot/imported/mushroom8.png-25b2fc63bd00dc22c8c7376f86d0c6b0.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/testingground/mushroom8.png" -dest_files=["res://.godot/imported/mushroom8.png-25b2fc63bd00dc22c8c7376f86d0c6b0.ctex"] +dest_files=["res://.godot/imported/mushroom8.png-25b2fc63bd00dc22c8c7376f86d0c6b0.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/graphics/testingground/mushroom9.png.import b/graphics/testingground/mushroom9.png.import index d41266b..5609b78 100644 --- a/graphics/testingground/mushroom9.png.import +++ b/graphics/testingground/mushroom9.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://6xxebx7ry6o8" -path="res://.godot/imported/mushroom9.png-8c495f592b9590dd761af5dfd2b49b77.ctex" +path.s3tc="res://.godot/imported/mushroom9.png-8c495f592b9590dd761af5dfd2b49b77.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://graphics/testingground/mushroom9.png" -dest_files=["res://.godot/imported/mushroom9.png-8c495f592b9590dd761af5dfd2b49b77.ctex"] +dest_files=["res://.godot/imported/mushroom9.png-8c495f592b9590dd761af5dfd2b49b77.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 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/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/scenes/2DTestingGround.tscn b/scenes/2DTestingGround.tscn index 64da492..a69f8e0 100644 --- a/scenes/2DTestingGround.tscn +++ b/scenes/2DTestingGround.tscn @@ -9,10 +9,9 @@ y_sort_enabled = true [node name="player" parent="." instance=ExtResource("1_c1tk0")] -[node name="Camera2D" type="Camera2D" parent="." node_paths=PackedStringArray("followNode")] +[node name="Camera2D" type="Camera2D" parent="."] position = Vector2(166.03, 0) script = ExtResource("4_qljgx") multiplier = 100.0 -followNode = NodePath("") [node name="World" parent="." instance=ExtResource("7_yb6mq")] diff --git a/scenes/mockups/abandoned_street.tscn b/scenes/mockups/abandoned_street_2D.tscn similarity index 76% rename from scenes/mockups/abandoned_street.tscn rename to scenes/mockups/abandoned_street_2D.tscn index 3948d8f..def7c5c 100644 --- a/scenes/mockups/abandoned_street.tscn +++ b/scenes/mockups/abandoned_street_2D.tscn @@ -1,20 +1,20 @@ [gd_scene load_steps=12 format=3 uid="uid://dx7gn5yiq1aki"] -[ext_resource type="PackedScene" uid="uid://dd3giw31imfk4" path="res://scenes/player.tscn" id="1_kndfx"] -[ext_resource type="Texture2D" uid="uid://cg1cxmqbo1pa" path="res://graphics/mockups/darktree1.png" id="2_mxft2"] -[ext_resource type="Texture2D" uid="uid://fcm6etmmj65d" path="res://graphics/mockups/darktree2.png" id="3_sr86a"] -[ext_resource type="Texture2D" uid="uid://c8h24ouqcqlxv" path="res://graphics/mockups/darktree3.png" id="4_51h5w"] -[ext_resource type="Texture2D" uid="uid://dcimm8umxko8" path="res://graphics/mockups/darktree4.png" id="5_lvo5e"] -[ext_resource type="Texture2D" uid="uid://rk30f4q2a1vm" path="res://graphics/mockups/darktree5.png" id="6_13fgy"] -[ext_resource type="Texture2D" uid="uid://xd1ob1jfq7pi" path="res://graphics/mockups/darktree6.png" id="7_okbpt"] -[ext_resource type="Texture2D" uid="uid://bxfwua8h235xp" path="res://graphics/mockups/darktree7.png" id="8_ndent"] -[ext_resource type="Texture2D" uid="uid://bradm5u7vjjxq" path="res://graphics/mockups/darktree8.png" id="9_kx3ah"] -[ext_resource type="Texture2D" uid="uid://bryqg0hb4f0ry" path="res://graphics/mockups/darktree9.png" id="10_5slwi"] -[ext_resource type="Texture2D" uid="uid://c1iyeflkwaqxf" path="res://graphics/testingground/mushroom1.png" id="11_pggjo"] +[ext_resource type="PackedScene" uid="uid://dd3giw31imfk4" path="res://scenes/player.tscn" id="1_i63wh"] +[ext_resource type="Texture2D" uid="uid://cg1cxmqbo1pa" path="res://graphics/mockups/darktree1.png" id="2_mb5hf"] +[ext_resource type="Texture2D" uid="uid://fcm6etmmj65d" path="res://graphics/mockups/darktree2.png" id="3_4vs7w"] +[ext_resource type="Texture2D" uid="uid://c8h24ouqcqlxv" path="res://graphics/mockups/darktree3.png" id="4_88a82"] +[ext_resource type="Texture2D" uid="uid://dcimm8umxko8" path="res://graphics/mockups/darktree4.png" id="5_ua5wd"] +[ext_resource type="Texture2D" uid="uid://rk30f4q2a1vm" path="res://graphics/mockups/darktree5.png" id="6_5bpbl"] +[ext_resource type="Texture2D" uid="uid://xd1ob1jfq7pi" path="res://graphics/mockups/darktree6.png" id="7_yup5b"] +[ext_resource type="Texture2D" uid="uid://bxfwua8h235xp" path="res://graphics/mockups/darktree7.png" id="8_1cter"] +[ext_resource type="Texture2D" uid="uid://bradm5u7vjjxq" path="res://graphics/mockups/darktree8.png" id="9_w3fwj"] +[ext_resource type="Texture2D" uid="uid://bryqg0hb4f0ry" path="res://graphics/mockups/darktree9.png" id="10_dc0id"] +[ext_resource type="Texture2D" uid="uid://c1iyeflkwaqxf" path="res://graphics/testingground/mushroom1.png" id="11_i1j1a"] [node name="AbandonedStreet" type="Node2D"] -[node name="player" parent="." instance=ExtResource("1_kndfx")] +[node name="player" parent="." instance=ExtResource("1_i63wh")] z_index = 1 z_as_relative = true position = Vector2(586, 343) @@ -28,105 +28,105 @@ position = Vector2(578, 327) y_sort_enabled = true position = Vector2(159, 107.5) scale = Vector2(0.681208, 0.926282) -texture = ExtResource("2_mxft2") +texture = ExtResource("2_mb5hf") [node name="Darktree2" type="Sprite2D" parent="background"] y_sort_enabled = true position = Vector2(290, 97) -texture = ExtResource("3_sr86a") +texture = ExtResource("3_4vs7w") [node name="Darktree3" type="Sprite2D" parent="background"] y_sort_enabled = true position = Vector2(445, 108) -texture = ExtResource("4_51h5w") +texture = ExtResource("4_88a82") [node name="Darktree4" type="Sprite2D" parent="background"] y_sort_enabled = true position = Vector2(50, 116) -texture = ExtResource("5_lvo5e") +texture = ExtResource("5_ua5wd") [node name="Darktree5" type="Sprite2D" parent="background"] y_sort_enabled = true position = Vector2(585, 95) -texture = ExtResource("6_13fgy") +texture = ExtResource("6_5bpbl") [node name="Darktree6" type="Sprite2D" parent="background"] y_sort_enabled = true position = Vector2(716, 94) -texture = ExtResource("7_okbpt") +texture = ExtResource("7_yup5b") [node name="Darktree7" type="Sprite2D" parent="background"] y_sort_enabled = true position = Vector2(826, 122) -texture = ExtResource("8_ndent") +texture = ExtResource("8_1cter") [node name="Darktree8" type="Sprite2D" parent="background"] y_sort_enabled = true position = Vector2(962, 114) -texture = ExtResource("9_kx3ah") +texture = ExtResource("9_w3fwj") [node name="Darktree9" type="Sprite2D" parent="background"] y_sort_enabled = true position = Vector2(1093, 93) -texture = ExtResource("10_5slwi") +texture = ExtResource("10_dc0id") [node name="Darktree10" type="Sprite2D" parent="background"] z_index = -1 y_sort_enabled = true position = Vector2(1018, 108) scale = Vector2(0.681208, 0.926282) -texture = ExtResource("2_mxft2") +texture = ExtResource("2_mb5hf") [node name="Darktree11" type="Sprite2D" parent="background"] z_index = -1 y_sort_enabled = true position = Vector2(72, 65) scale = Vector2(1.24457, 1) -texture = ExtResource("3_sr86a") +texture = ExtResource("3_4vs7w") [node name="Darktree12" type="Sprite2D" parent="background"] z_index = -1 y_sort_enabled = true position = Vector2(340, 79) scale = Vector2(0.66092, 1) -texture = ExtResource("4_51h5w") +texture = ExtResource("4_88a82") [node name="Darktree13" type="Sprite2D" parent="background"] z_index = -1 y_sort_enabled = true position = Vector2(647, 92) -texture = ExtResource("5_lvo5e") +texture = ExtResource("5_ua5wd") [node name="Darktree14" type="Sprite2D" parent="background"] z_index = -1 y_sort_enabled = true position = Vector2(899, 50) -texture = ExtResource("6_13fgy") +texture = ExtResource("6_5bpbl") [node name="Darktree15" type="Sprite2D" parent="background"] z_index = -1 y_sort_enabled = true position = Vector2(785, 30.5) scale = Vector2(1, 1.41197) -texture = ExtResource("7_okbpt") +texture = ExtResource("7_yup5b") [node name="Darktree16" type="Sprite2D" parent="background"] z_index = -1 y_sort_enabled = true position = Vector2(510, 90) -texture = ExtResource("8_ndent") +texture = ExtResource("8_1cter") [node name="Darktree17" type="Sprite2D" parent="background"] z_index = -1 y_sort_enabled = true position = Vector2(398, 74) -texture = ExtResource("9_kx3ah") +texture = ExtResource("9_w3fwj") [node name="Darktree18" type="Sprite2D" parent="background"] z_index = -1 y_sort_enabled = true position = Vector2(211, 40) -texture = ExtResource("10_5slwi") +texture = ExtResource("10_dc0id") [node name="foreground" type="Node2D" parent="."] position = Vector2(577, 365) @@ -137,66 +137,66 @@ z_index = 2 y_sort_enabled = true position = Vector2(-148.175, 1329.47) scale = Vector2(0.645939, 9.86782) -texture = ExtResource("2_mxft2") +texture = ExtResource("2_mb5hf") [node name="Darktree20" type="Sprite2D" parent="foreground"] z_index = 2 y_sort_enabled = true position = Vector2(-92.472, 1049.58) scale = Vector2(0.372823, 11.4754) -texture = ExtResource("3_sr86a") +texture = ExtResource("3_4vs7w") [node name="Darktree21" type="Sprite2D" parent="foreground"] z_index = 2 y_sort_enabled = true position = Vector2(-50.7635, 1438.31) scale = Vector2(0.313822, 9.20193) -texture = ExtResource("4_51h5w") +texture = ExtResource("4_88a82") [node name="Darktree22" type="Sprite2D" parent="foreground"] z_index = 2 y_sort_enabled = true position = Vector2(97.6169, 966) scale = Vector2(0.462093, 10.9798) -texture = ExtResource("5_lvo5e") +texture = ExtResource("5_ua5wd") [node name="Darktree23" type="Sprite2D" parent="foreground"] z_index = 2 y_sort_enabled = true position = Vector2(-6.03674, 1142.87) scale = Vector2(0.393303, 10.4205) -texture = ExtResource("6_13fgy") +texture = ExtResource("6_5bpbl") [node name="Darktree24" type="Sprite2D" parent="foreground"] z_index = 2 y_sort_enabled = true position = Vector2(30.1837, 919.352) scale = Vector2(0.359898, 13.0444) -texture = ExtResource("7_okbpt") +texture = ExtResource("7_yup5b") [node name="Darktree25" type="Sprite2D" parent="foreground"] z_index = 2 y_sort_enabled = true position = Vector2(60.6419, 1321.69) scale = Vector2(0.394639, 10.7981) -texture = ExtResource("8_ndent") +texture = ExtResource("8_1cter") [node name="Darktree26" type="Sprite2D" parent="foreground"] z_index = 2 y_sort_enabled = true position = Vector2(152.016, 1531.61) scale = Vector2(0.384475, 10.3028) -texture = ExtResource("9_kx3ah") +texture = ExtResource("9_w3fwj") [node name="Darktree27" type="Sprite2D" parent="foreground"] z_index = 2 y_sort_enabled = true position = Vector2(126.223, 855.211) scale = Vector2(0.274398, 10.5544) -texture = ExtResource("10_5slwi") +texture = ExtResource("10_dc0id") [node name="road" type="Sprite2D" parent="."] modulate = Color(0.368627, 0.368627, 0.368627, 0.898039) position = Vector2(577, 365) scale = Vector2(3.64435, 0.128623) -texture = ExtResource("11_pggjo") +texture = ExtResource("11_i1j1a") diff --git a/scenes/mockups/abandoned_street_3d.tscn b/scenes/mockups/abandoned_street_3d.tscn new file mode 100644 index 0000000..75b5948 --- /dev/null +++ b/scenes/mockups/abandoned_street_3d.tscn @@ -0,0 +1,822 @@ +[gd_scene load_steps=29 format=3 uid="uid://c1j5u0cjdswvp"] + +[ext_resource type="Texture2D" uid="uid://cg1cxmqbo1pa" path="res://graphics/mockups/darktree1.png" id="1_u6vd6"] +[ext_resource type="Texture2D" uid="uid://fcm6etmmj65d" path="res://graphics/mockups/darktree2.png" id="2_tcvf7"] +[ext_resource type="Texture2D" uid="uid://c8h24ouqcqlxv" path="res://graphics/mockups/darktree3.png" id="3_v2fdw"] +[ext_resource type="Texture2D" uid="uid://dcimm8umxko8" path="res://graphics/mockups/darktree4.png" id="4_yrcwc"] +[ext_resource type="Texture2D" uid="uid://rk30f4q2a1vm" path="res://graphics/mockups/darktree5.png" id="5_3ynl8"] +[ext_resource type="Texture2D" uid="uid://xd1ob1jfq7pi" path="res://graphics/mockups/darktree6.png" id="6_ijjvr"] +[ext_resource type="Texture2D" uid="uid://bxfwua8h235xp" path="res://graphics/mockups/darktree7.png" id="7_lwa45"] +[ext_resource type="Texture2D" uid="uid://bradm5u7vjjxq" path="res://graphics/mockups/darktree8.png" id="8_wu13e"] +[ext_resource type="Texture2D" uid="uid://bryqg0hb4f0ry" path="res://graphics/mockups/darktree9.png" id="9_4i1d4"] +[ext_resource type="Texture2D" uid="uid://c1iyeflkwaqxf" path="res://graphics/testingground/mushroom1.png" id="10_my8if"] +[ext_resource type="Texture2D" uid="uid://cvn2p215jq2am" path="res://graphics/testingground/concerned.png" id="10_oy1dv"] +[ext_resource type="Texture2D" uid="uid://cj1bfgpunfsoq" path="res://graphics/testingground/mushroom3.png" id="12_50we8"] +[ext_resource type="Texture2D" uid="uid://cumdgxn0ibpv7" path="res://graphics/testingground/TakeThatCandy.png" id="12_jgqen"] +[ext_resource type="Texture2D" uid="uid://bcah7lrg2oae1" path="res://graphics/testingground/IveSeenSomeShit.png" id="13_gcssn"] +[ext_resource type="Texture2D" uid="uid://dj1syhq0dmf3p" path="res://graphics/testingground/Doll.png" id="14_qxv15"] +[ext_resource type="Texture2D" uid="uid://bnb3bjk274vgn" path="res://graphics/testingground/mushroom4.png" id="16_5f343"] +[ext_resource type="Texture2D" uid="uid://0oy8by6pd2wg" path="res://graphics/testingground/mushroom5.png" id="17_odxxd"] +[ext_resource type="Texture2D" uid="uid://b1h55mnc1giqu" path="res://graphics/testingground/mushroom6.png" id="18_i7vrp"] +[ext_resource type="Texture2D" uid="uid://c5lsjern0iqmc" path="res://graphics/testingground/mushroom7.png" id="19_yb8aa"] +[ext_resource type="Texture2D" uid="uid://bg465y2vkrvfm" path="res://graphics/testingground/mushroom8.png" id="20_2ds7x"] +[ext_resource type="Texture2D" uid="uid://6xxebx7ry6o8" path="res://graphics/testingground/mushroom9.png" id="21_jip6m"] +[ext_resource type="Texture2D" uid="uid://bednd2jncey0i" path="res://graphics/testingground/mushroom10.png" id="22_1s1o0"] +[ext_resource type="Texture2D" uid="uid://cam7x7byvqtb2" path="res://graphics/testingground/mushroom11.png" id="23_m1mer"] +[ext_resource type="Texture2D" uid="uid://dfynp0xqtpcke" path="res://graphics/testingground/chestnut1.png" id="24_ohuks"] +[ext_resource type="Texture2D" uid="uid://63rgrra0tdef" path="res://graphics/testingground/chestnut2.png" id="25_j83yj"] +[ext_resource type="Texture2D" uid="uid://cygt1j1m0vpqg" path="res://graphics/mockups/field_placeholder.png" id="26_7nyv4"] + +[sub_resource type="PlaneMesh" id="PlaneMesh_8dxh5"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_f4rkw"] +albedo_color = Color(0.505882, 0.588235, 0.494118, 1) + +[node name="Node3D" type="Node3D"] + +[node name="Camera3D" type="Camera3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.766044, 0.642788, 0, -0.642788, 0.766044, 0.0327415, 0.426147, 0.642299) +current = true +fov = 58.9 +size = 0.85 + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +mesh = SubResource("PlaneMesh_8dxh5") +skeleton = NodePath("../Camera3D") +surface_material_override/0 = SubResource("StandardMaterial3D_f4rkw") + +[node name="background" type="Node3D" parent="."] + +[node name="tree" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.102578, 0.119419, -0.747793) +billboard = 1 +shaded = true +texture = ExtResource("1_u6vd6") + +[node name="tree2" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.164495, 0.119419, -0.829471) +billboard = 1 +shaded = true +texture = ExtResource("2_tcvf7") + +[node name="tree3" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.30683, 0.119096, -0.69378) +billboard = 1 +shaded = true +texture = ExtResource("3_v2fdw") + +[node name="tree4" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.466273, 0.120625, -0.798476) +billboard = 1 +shaded = true +texture = ExtResource("4_yrcwc") + +[node name="tree5" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.709182, 0.147986, -0.589548) +billboard = 1 +shaded = true +texture = ExtResource("5_3ynl8") + +[node name="tree6" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.494517, 0.108343, -0.589548) +billboard = 1 +shaded = true +texture = ExtResource("6_ijjvr") + +[node name="tree7" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.148489, 0.111307, -0.589548) +billboard = 1 +shaded = true +texture = ExtResource("7_lwa45") + +[node name="tree8" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.375699, 0.111307, -0.738924) +billboard = 1 +shaded = true +texture = ExtResource("8_wu13e") + +[node name="tree9" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.696664, 0.13729, -0.543319) +billboard = 1 +shaded = true +texture = ExtResource("9_4i1d4") + +[node name="tree10" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.287227, 0.119419, -0.721983) +billboard = 1 +shaded = true +texture = ExtResource("1_u6vd6") + +[node name="tree11" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.5543, 0.119419, -0.803662) +billboard = 1 +shaded = true +texture = ExtResource("2_tcvf7") + +[node name="tree12" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.0829748, 0.119096, -0.66797) +billboard = 1 +shaded = true +texture = ExtResource("3_v2fdw") + +[node name="tree13" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.0764678, 0.120625, -0.772666) +billboard = 1 +shaded = true +texture = ExtResource("4_yrcwc") + +[node name="tree14" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.319377, 0.147986, -0.563738) +billboard = 1 +shaded = true +texture = ExtResource("5_3ynl8") + +[node name="tree15" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.884322, 0.108343, -0.563738) +billboard = 1 +shaded = true +texture = ExtResource("6_ijjvr") + +[node name="tree16" type="Sprite3D" parent="background"] +transform = Transform3D(0.0999822, 0, -0.00188484, 0, 0.1, 0, 0.00188484, 0, 0.0999822, -0.538294, 0.111307, -0.520366) +billboard = 1 +shaded = true +texture = ExtResource("7_lwa45") + +[node name="tree17" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.765503, 0.111307, -0.713115) +billboard = 1 +shaded = true +texture = ExtResource("8_wu13e") + +[node name="tree18" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.231314, 0.13729, -0.840139) +billboard = 1 +shaded = true +texture = ExtResource("9_4i1d4") + +[node name="tree19" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.59089, 0.119419, -0.666389) +billboard = 1 +shaded = true +texture = ExtResource("1_u6vd6") + +[node name="tree20" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.323817, 0.119419, -0.748068) +billboard = 1 +shaded = true +texture = ExtResource("2_tcvf7") + +[node name="tree21" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.795143, 0.119096, -0.612376) +billboard = 1 +shaded = true +texture = ExtResource("3_v2fdw") + +[node name="tree22" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.899468, 0.120625, -0.509008) +billboard = 1 +shaded = true +texture = ExtResource("4_yrcwc") + +[node name="tree23" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.916255, 0.147986, -0.248355) +billboard = 1 +shaded = true +texture = ExtResource("5_3ynl8") + +[node name="tree24" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.785074, 0.108343, -0.418221) +billboard = 1 +shaded = true +texture = ExtResource("6_ijjvr") + +[node name="tree42" type="Sprite3D" parent="background"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.917235, 0.119419, -0.508767) +billboard = 1 +shaded = true +texture = ExtResource("2_tcvf7") + +[node name="tree43" type="Sprite3D" parent="background"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.523234, 0.108343, -0.61479) +billboard = 1 +shaded = true +texture = ExtResource("6_ijjvr") + +[node name="tree44" type="Sprite3D" parent="background"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.74063, 0.111307, -0.34558) +billboard = 1 +shaded = true +texture = ExtResource("7_lwa45") + +[node name="tree45" type="Sprite3D" parent="background"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.714098, 0.111307, -0.616197) +billboard = 1 +shaded = true +texture = ExtResource("8_wu13e") + +[node name="tree46" type="Sprite3D" parent="background"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.360267, 0.13729, -0.743018) +billboard = 1 +shaded = true +texture = ExtResource("9_4i1d4") + +[node name="tree47" type="Sprite3D" parent="background"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.756501, 0.119419, -0.536722) +billboard = 1 +shaded = true +texture = ExtResource("1_u6vd6") + +[node name="tree48" type="Sprite3D" parent="background"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.652256, 0.119419, -0.795821) +billboard = 1 +shaded = true +texture = ExtResource("2_tcvf7") + +[node name="tree49" type="Sprite3D" parent="background"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.258255, 0.108343, -0.901844) +billboard = 1 +shaded = true +texture = ExtResource("6_ijjvr") + +[node name="tree50" type="Sprite3D" parent="background"] +transform = Transform3D(0.0613486, 0, -0.0789706, 0, 0.1, 0, 0.0789706, 0, 0.0613486, 0.441907, 0.111307, -0.605384) +billboard = 1 +shaded = true +texture = ExtResource("7_lwa45") + +[node name="tree51" type="Sprite3D" parent="background"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.449119, 0.111307, -0.90325) +billboard = 1 +shaded = true +texture = ExtResource("8_wu13e") + +[node name="tree52" type="Sprite3D" parent="background"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.883555, 0.13729, -0.567455) +billboard = 1 +shaded = true +texture = ExtResource("9_4i1d4") + +[node name="tree53" type="Sprite3D" parent="background"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.207396, 0.108343, -0.733205) +billboard = 1 +shaded = true +texture = ExtResource("6_ijjvr") + +[node name="tree25" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.46999, 0.111307, -0.508144) +billboard = 1 +shaded = true +texture = ExtResource("7_lwa45") + +[node name="tree26" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.112614, 0.111307, -0.65752) +billboard = 1 +shaded = true +texture = ExtResource("8_wu13e") + +[node name="tree27" type="Sprite3D" parent="background"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.646804, 0.13729, -0.461916) +billboard = 1 +shaded = true +texture = ExtResource("9_4i1d4") + +[node name="tree28" type="Sprite3D" parent="background"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.900771, 0.119419, -0.592793) +billboard = 1 +shaded = true +texture = ExtResource("1_u6vd6") + +[node name="tree29" type="Sprite3D" parent="background"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.74172, 0.119096, -0.731858) +billboard = 1 +shaded = true +texture = ExtResource("3_v2fdw") + +[node name="tree30" type="Sprite3D" parent="background"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.739281, 0.120625, -0.922587) +billboard = 1 +shaded = true +texture = ExtResource("4_yrcwc") + +[node name="tree31" type="Sprite3D" parent="background"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.430205, 0.147986, -1.00701) +billboard = 1 +shaded = true +texture = ExtResource("5_3ynl8") + +[node name="tree32" type="Sprite3D" parent="background"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.935996, 0.120625, -0.58507) +billboard = 1 +shaded = true +texture = ExtResource("4_yrcwc") + +[node name="tree33" type="Sprite3D" parent="background"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.626919, 0.147986, -0.669496) +billboard = 1 +shaded = true +texture = ExtResource("5_3ynl8") + +[node name="tree34" type="Sprite3D" parent="background"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.560079, 0.119419, -0.951965) +billboard = 1 +shaded = true +texture = ExtResource("1_u6vd6") + +[node name="tree35" type="Sprite3D" parent="background"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.777209, 0.119419, -0.776313) +billboard = 1 +shaded = true +texture = ExtResource("2_tcvf7") + +[node name="tree36" type="Sprite3D" parent="background"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.401028, 0.119096, -1.09103) +billboard = 1 +shaded = true +texture = ExtResource("3_v2fdw") + +[node name="tree37" type="Sprite3D" parent="background"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.256982, 0.120625, -1.11966) +billboard = 1 +shaded = true +texture = ExtResource("4_yrcwc") + +[node name="tree38" type="Sprite3D" parent="background"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.0315572, 0.147986, -0.987731) +billboard = 1 +shaded = true +texture = ExtResource("5_3ynl8") + +[node name="tree39" type="Sprite3D" parent="background"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.49657, 0.111307, -0.763219) +billboard = 1 +shaded = true +texture = ExtResource("7_lwa45") + +[node name="tree40" type="Sprite3D" parent="background"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.820336, 0.111307, -0.550602) +billboard = 1 +shaded = true +texture = ExtResource("8_wu13e") + +[node name="tree41" type="Sprite3D" parent="background"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.359324, 0.13729, -0.883899) +billboard = 1 +shaded = true +texture = ExtResource("9_4i1d4") + +[node name="foreground" type="Node3D" parent="."] +transform = Transform3D(-0.999657, 0, -0.0261769, 0, 1, 0, 0.0261769, 0, -0.999657, 0, 0, 0) + +[node name="tree" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.102578, 0.119419, -0.747793) +billboard = 1 +shaded = true +texture = ExtResource("1_u6vd6") + +[node name="tree2" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.164495, 0.119419, -0.829471) +billboard = 1 +shaded = true +texture = ExtResource("2_tcvf7") + +[node name="tree3" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.30683, 0.119096, -0.69378) +billboard = 1 +shaded = true +texture = ExtResource("3_v2fdw") + +[node name="tree4" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.466273, 0.120625, -0.798476) +billboard = 1 +shaded = true +texture = ExtResource("4_yrcwc") + +[node name="tree5" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.709182, 0.147986, -0.589548) +billboard = 1 +shaded = true +texture = ExtResource("5_3ynl8") + +[node name="tree6" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.494517, 0.108343, -0.589548) +billboard = 1 +shaded = true +texture = ExtResource("6_ijjvr") + +[node name="tree7" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.148489, 0.111307, -0.589548) +billboard = 1 +shaded = true +texture = ExtResource("7_lwa45") + +[node name="tree8" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.375699, 0.111307, -0.738924) +billboard = 1 +shaded = true +texture = ExtResource("8_wu13e") + +[node name="tree9" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.696664, 0.13729, -0.543319) +billboard = 1 +shaded = true +texture = ExtResource("9_4i1d4") + +[node name="tree10" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.287227, 0.119419, -0.721983) +billboard = 1 +shaded = true +texture = ExtResource("1_u6vd6") + +[node name="tree11" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.5543, 0.119419, -0.803662) +billboard = 1 +shaded = true +texture = ExtResource("2_tcvf7") + +[node name="tree12" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.0829748, 0.119096, -0.66797) +billboard = 1 +shaded = true +texture = ExtResource("3_v2fdw") + +[node name="tree13" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.0764678, 0.120625, -0.772666) +billboard = 1 +shaded = true +texture = ExtResource("4_yrcwc") + +[node name="tree14" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.319377, 0.147986, -0.563738) +billboard = 1 +shaded = true +texture = ExtResource("5_3ynl8") + +[node name="tree15" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.884322, 0.108343, -0.563738) +billboard = 1 +shaded = true +texture = ExtResource("6_ijjvr") + +[node name="tree16" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0999822, 0, -0.00188484, 0, 0.1, 0, 0.00188484, 0, 0.0999822, -0.538294, 0.111307, -0.520366) +billboard = 1 +shaded = true +texture = ExtResource("7_lwa45") + +[node name="tree17" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.765503, 0.111307, -0.713115) +billboard = 1 +shaded = true +texture = ExtResource("8_wu13e") + +[node name="tree18" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.231314, 0.13729, -0.840139) +billboard = 1 +shaded = true +texture = ExtResource("9_4i1d4") + +[node name="tree19" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.59089, 0.119419, -0.666389) +billboard = 1 +shaded = true +texture = ExtResource("1_u6vd6") + +[node name="tree20" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.323817, 0.119419, -0.748068) +billboard = 1 +shaded = true +texture = ExtResource("2_tcvf7") + +[node name="tree21" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.795143, 0.119096, -0.612376) +billboard = 1 +shaded = true +texture = ExtResource("3_v2fdw") + +[node name="tree22" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.899468, 0.120625, -0.509008) +billboard = 1 +shaded = true +texture = ExtResource("4_yrcwc") + +[node name="tree23" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.916255, 0.147986, -0.248355) +billboard = 1 +shaded = true +texture = ExtResource("5_3ynl8") + +[node name="tree24" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.785074, 0.108343, -0.418221) +billboard = 1 +shaded = true +texture = ExtResource("6_ijjvr") + +[node name="tree42" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.917235, 0.119419, -0.508767) +billboard = 1 +shaded = true +texture = ExtResource("2_tcvf7") + +[node name="tree43" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.523234, 0.108343, -0.61479) +billboard = 1 +shaded = true +texture = ExtResource("6_ijjvr") + +[node name="tree44" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.74063, 0.111307, -0.34558) +billboard = 1 +shaded = true +texture = ExtResource("7_lwa45") + +[node name="tree45" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.714098, 0.111307, -0.616197) +billboard = 1 +shaded = true +texture = ExtResource("8_wu13e") + +[node name="tree46" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.360267, 0.13729, -0.743018) +billboard = 1 +shaded = true +texture = ExtResource("9_4i1d4") + +[node name="tree47" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.756501, 0.119419, -0.536722) +billboard = 1 +shaded = true +texture = ExtResource("1_u6vd6") + +[node name="tree48" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.652256, 0.119419, -0.795821) +billboard = 1 +shaded = true +texture = ExtResource("2_tcvf7") + +[node name="tree49" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.258255, 0.108343, -0.901844) +billboard = 1 +shaded = true +texture = ExtResource("6_ijjvr") + +[node name="tree50" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0613486, 0, -0.0789706, 0, 0.1, 0, 0.0789706, 0, 0.0613486, 0.441907, 0.111307, -0.605384) +billboard = 1 +shaded = true +texture = ExtResource("7_lwa45") + +[node name="tree51" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.449119, 0.111307, -0.90325) +billboard = 1 +shaded = true +texture = ExtResource("8_wu13e") + +[node name="tree52" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.883555, 0.13729, -0.567455) +billboard = 1 +shaded = true +texture = ExtResource("9_4i1d4") + +[node name="tree53" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.207396, 0.108343, -0.733205) +billboard = 1 +shaded = true +texture = ExtResource("6_ijjvr") + +[node name="tree25" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.46999, 0.111307, -0.508144) +billboard = 1 +shaded = true +texture = ExtResource("7_lwa45") + +[node name="tree26" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.112614, 0.111307, -0.65752) +billboard = 1 +shaded = true +texture = ExtResource("8_wu13e") + +[node name="tree27" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.646804, 0.13729, -0.461916) +billboard = 1 +shaded = true +texture = ExtResource("9_4i1d4") + +[node name="tree28" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.900771, 0.119419, -0.592793) +billboard = 1 +shaded = true +texture = ExtResource("1_u6vd6") + +[node name="tree29" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.74172, 0.119096, -0.731858) +billboard = 1 +shaded = true +texture = ExtResource("3_v2fdw") + +[node name="tree30" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.739281, 0.120625, -0.922587) +billboard = 1 +shaded = true +texture = ExtResource("4_yrcwc") + +[node name="tree31" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.430205, 0.147986, -1.00701) +billboard = 1 +shaded = true +texture = ExtResource("5_3ynl8") + +[node name="tree32" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.935996, 0.120625, -0.58507) +billboard = 1 +shaded = true +texture = ExtResource("4_yrcwc") + +[node name="tree33" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.626919, 0.147986, -0.669496) +billboard = 1 +shaded = true +texture = ExtResource("5_3ynl8") + +[node name="tree34" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.560079, 0.119419, -0.951965) +billboard = 1 +shaded = true +texture = ExtResource("1_u6vd6") + +[node name="tree35" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.777209, 0.119419, -0.776313) +billboard = 1 +shaded = true +texture = ExtResource("2_tcvf7") + +[node name="tree36" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.401028, 0.119096, -1.09103) +billboard = 1 +shaded = true +texture = ExtResource("3_v2fdw") + +[node name="tree37" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.256982, 0.120625, -1.11966) +billboard = 1 +shaded = true +texture = ExtResource("4_yrcwc") + +[node name="tree38" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.0315572, 0.147986, -0.987731) +billboard = 1 +shaded = true +texture = ExtResource("5_3ynl8") + +[node name="tree39" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.49657, 0.111307, -0.763219) +billboard = 1 +shaded = true +texture = ExtResource("7_lwa45") + +[node name="tree40" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.820336, 0.111307, -0.550602) +billboard = 1 +shaded = true +texture = ExtResource("8_wu13e") + +[node name="tree41" type="Sprite3D" parent="foreground"] +transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.359324, 0.13729, -0.883899) +billboard = 1 +shaded = true +texture = ExtResource("9_4i1d4") + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.878467, 0.477803, 0, -0.477803, 0.878467, 0, 0.578004, 0.455086) +light_color = Color(0.81, 0.49329, 0.4374, 1) + +[node name="road" type="Sprite3D" parent="."] +transform = Transform3D(0.329771, -0.000931354, 6.51372e-11, -1.45041e-16, -1.09278e-09, -0.04, 0.0122939, 0.0249826, -1.74724e-09, -0.243499, 1.60336e-05, 0.10753) +sorting_offset = -0.475 +modulate = Color(0.45098, 0.407843, 0.423529, 0.678431) +shaded = true +texture = ExtResource("10_my8if") + +[node name="player" type="Sprite3D" parent="."] +transform = Transform3D(0.04, 0, 0, 0, 0.04, 0, 0, 0, 0.04, 0, 0.116035, 0.10753) +billboard = 1 +shaded = true +texture = ExtResource("10_oy1dv") + +[node name="player2" type="Sprite3D" parent="."] +transform = Transform3D(0.04, 0, 0, 0, 0.04, 0, 0, 0, 0.04, 0.329996, 0.116035, 0.334039) +billboard = 1 +shaded = true +texture = ExtResource("12_jgqen") + +[node name="player3" type="Sprite3D" parent="."] +transform = Transform3D(0.04, 0, 0, 0, 0.04, 0, 0, 0, 0.04, 0.290469, 0.116035, -0.275782) +billboard = 1 +shaded = true +texture = ExtResource("13_gcssn") + +[node name="player4" type="Sprite3D" parent="."] +transform = Transform3D(0.04, 0, 0, 0, 0.04, 0, 0, 0, 0.04, -0.568754, 0.116035, -0.275782) +billboard = 1 +shaded = true +texture = ExtResource("14_qxv15") + +[node name="details" type="Node" parent="."] + +[node name="mushroom" type="Sprite3D" parent="details"] +transform = Transform3D(0.02, 0, 0, 0, 0.02, 0, 0, 0, 0.02, 0.16742, 0.049829, -0.134812) +billboard = 1 +shaded = true +texture = ExtResource("12_50we8") + +[node name="mushroom2" type="Sprite3D" parent="details"] +transform = Transform3D(0.02, 0, 0, 0, 0.02, 0, 0, 0, 0.02, -0.213234, 0.049829, -0.0385236) +billboard = 1 +shaded = true +texture = ExtResource("16_5f343") + +[node name="mushroom3" type="Sprite3D" parent="details"] +transform = Transform3D(0.02, 0, 0, 0, 0.02, 0, 0, 0, 0.02, 0.439114, 0.049829, 0.288457) +billboard = 1 +shaded = true +texture = ExtResource("17_odxxd") + +[node name="mushroom4" type="Sprite3D" parent="details"] +transform = Transform3D(0.01, 0, 0, 0, 0.01, 0, 0, 0, 0.01, 0.439114, 0.0399265, -0.274104) +billboard = 1 +shaded = true +texture = ExtResource("18_i7vrp") + +[node name="mushroom5" type="Sprite3D" parent="details"] +transform = Transform3D(0.01, 0, 0, 0, 0.01, 0, 0, 0, 0.01, -0.245921, 0.0399265, -0.274104) +billboard = 1 +shaded = true +texture = ExtResource("19_yb8aa") + +[node name="mushroom6" type="Sprite3D" parent="details"] +transform = Transform3D(0.02, 0, 0, 0, 0.02, 0, 0, 0, 0.02, -0.394128, 0.0399265, -0.163411) +billboard = 1 +shaded = true +texture = ExtResource("20_2ds7x") + +[node name="mushroom7" type="Sprite3D" parent="details"] +transform = Transform3D(0.01, 0, 0, 0, 0.01, 0, 0, 0, 0.01, -0.41057, 0.0579707, -0.0786379) +billboard = 1 +shaded = true +texture = ExtResource("21_jip6m") + +[node name="mushroom8" type="Sprite3D" parent="details"] +transform = Transform3D(0.02, 0, 0, 0, 0.02, 0, 0, 0, 0.02, -0.0635555, 0.0579707, 0.357456) +billboard = 1 +shaded = true +texture = ExtResource("22_1s1o0") + +[node name="mushroom9" type="Sprite3D" parent="details"] +transform = Transform3D(0.01, 0, 0, 0, 0.01, 0, 0, 0, 0.01, -0.00889933, 0.0579707, 0.35657) +billboard = 1 +shaded = true +texture = ExtResource("23_m1mer") + +[node name="chestnut" type="Sprite3D" parent="details"] +transform = Transform3D(0.008, 0, 0, 0, 0.008, 0, 0, 0, 0.008, 0.22631, 0.0579707, 0.0106865) +billboard = 1 +shaded = true +texture = ExtResource("24_ohuks") + +[node name="chestnut2" type="Sprite3D" parent="details"] +transform = Transform3D(0.008, 0, 0, 0, 0.008, 0, 0, 0, 0.008, 0.135594, 0.0579707, 0.000677824) +billboard = 1 +shaded = true +texture = ExtResource("25_j83yj") + +[node name="fields" type="Node" parent="."] + +[node name="field" type="Sprite3D" parent="fields"] +transform = Transform3D(0.02, 0, 0, 0, -8.74228e-10, -0.02, 0, 0.02, -8.74228e-10, 0.17571, 0.0607805, 0.369449) +shaded = true +texture = ExtResource("26_7nyv4") + +[node name="field6" type="Sprite3D" parent="fields"] +transform = Transform3D(0.02, 0, 0, 0, -8.74228e-10, -0.02, 0, 0.02, -8.74228e-10, 0.497358, 0.0607805, 0.369449) +shaded = true +texture = ExtResource("26_7nyv4") + +[node name="field2" type="Sprite3D" parent="fields"] +transform = Transform3D(0.02, 0, 0, 0, -8.74228e-10, -0.02, 0, 0.02, -8.74228e-10, -0.254384, 0.0607805, 0.369449) +shaded = true +texture = ExtResource("26_7nyv4") + +[node name="field3" type="Sprite3D" parent="fields"] +transform = Transform3D(0.02, 0, 0, 0, -8.74228e-10, -0.02, 0, 0.02, -8.74228e-10, -0.254384, 0.0607805, -0.0765149) +shaded = true +texture = ExtResource("26_7nyv4") + +[node name="field4" type="Sprite3D" parent="fields"] +transform = Transform3D(0.02, 0, 0, 0, -8.74228e-10, -0.02, 0, 0.02, -8.74228e-10, 0.457693, 0.0607805, -0.0765149) +shaded = true +texture = ExtResource("26_7nyv4") + +[node name="field5" type="Sprite3D" parent="fields"] +transform = Transform3D(0.02, 0, 0, 0, -8.74228e-10, -0.02, 0, 0.02, -8.74228e-10, 0.0528325, 0.0607805, -0.0765149) +shaded = true +texture = ExtResource("26_7nyv4") -- 2.52.0 From 421a90ec172a2d8f7b741e16fff35c6d09799be8 Mon Sep 17 00:00:00 2001 From: cblech Date: Mon, 2 Dec 2024 18:49:36 +0100 Subject: [PATCH 2/3] Added camera preview addon --- .../GuiResizerTopLeft.svg | 1 + .../GuiResizerTopLeft.svg.import | 37 ++ .../GuiResizerTopRight.svg | 1 + .../GuiResizerTopRight.svg.import | 37 ++ addons/anthonyec.camera_preview/Pin.svg | 1 + .../anthonyec.camera_preview/Pin.svg.import | 37 ++ addons/anthonyec.camera_preview/plugin.cfg | 7 + addons/anthonyec.camera_preview/plugin.gd | 87 ++++ addons/anthonyec.camera_preview/preview.gd | 404 ++++++++++++++++++ addons/anthonyec.camera_preview/preview.tscn | 200 +++++++++ .../Fonts/Roboto-Bold.ttf.import | 1 + .../Fonts/Roboto-Italic.ttf.import | 1 + .../Fonts/Roboto-Regular.ttf.import | 1 + 13 files changed, 815 insertions(+) create mode 100644 addons/anthonyec.camera_preview/GuiResizerTopLeft.svg create mode 100644 addons/anthonyec.camera_preview/GuiResizerTopLeft.svg.import create mode 100644 addons/anthonyec.camera_preview/GuiResizerTopRight.svg create mode 100644 addons/anthonyec.camera_preview/GuiResizerTopRight.svg.import create mode 100644 addons/anthonyec.camera_preview/Pin.svg create mode 100644 addons/anthonyec.camera_preview/Pin.svg.import create mode 100644 addons/anthonyec.camera_preview/plugin.cfg create mode 100644 addons/anthonyec.camera_preview/plugin.gd create mode 100644 addons/anthonyec.camera_preview/preview.gd create mode 100644 addons/anthonyec.camera_preview/preview.tscn diff --git a/addons/anthonyec.camera_preview/GuiResizerTopLeft.svg b/addons/anthonyec.camera_preview/GuiResizerTopLeft.svg new file mode 100644 index 0000000..fe4dbf5 --- /dev/null +++ b/addons/anthonyec.camera_preview/GuiResizerTopLeft.svg @@ -0,0 +1 @@ + diff --git a/addons/anthonyec.camera_preview/GuiResizerTopLeft.svg.import b/addons/anthonyec.camera_preview/GuiResizerTopLeft.svg.import new file mode 100644 index 0000000..9584d3b --- /dev/null +++ b/addons/anthonyec.camera_preview/GuiResizerTopLeft.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://btc01wc11tiid" +path="res://.godot/imported/GuiResizerTopLeft.svg-eb563f557424c74239e878a1213a5bf4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/anthonyec.camera_preview/GuiResizerTopLeft.svg" +dest_files=["res://.godot/imported/GuiResizerTopLeft.svg-eb563f557424c74239e878a1213a5bf4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=2.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/anthonyec.camera_preview/GuiResizerTopRight.svg b/addons/anthonyec.camera_preview/GuiResizerTopRight.svg new file mode 100644 index 0000000..dd00953 --- /dev/null +++ b/addons/anthonyec.camera_preview/GuiResizerTopRight.svg @@ -0,0 +1 @@ + diff --git a/addons/anthonyec.camera_preview/GuiResizerTopRight.svg.import b/addons/anthonyec.camera_preview/GuiResizerTopRight.svg.import new file mode 100644 index 0000000..4a1fa5d --- /dev/null +++ b/addons/anthonyec.camera_preview/GuiResizerTopRight.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://04l05jxuyt7k" +path="res://.godot/imported/GuiResizerTopRight.svg-cc1dc8556d51357c5eb0b01d09d8f049.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/anthonyec.camera_preview/GuiResizerTopRight.svg" +dest_files=["res://.godot/imported/GuiResizerTopRight.svg-cc1dc8556d51357c5eb0b01d09d8f049.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=2.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/anthonyec.camera_preview/Pin.svg b/addons/anthonyec.camera_preview/Pin.svg new file mode 100644 index 0000000..8e5935c --- /dev/null +++ b/addons/anthonyec.camera_preview/Pin.svg @@ -0,0 +1 @@ + diff --git a/addons/anthonyec.camera_preview/Pin.svg.import b/addons/anthonyec.camera_preview/Pin.svg.import new file mode 100644 index 0000000..27d274f --- /dev/null +++ b/addons/anthonyec.camera_preview/Pin.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://do6d60od41vmg" +path="res://.godot/imported/Pin.svg-83b09f5c00a829c5d8b136bf5bae65bc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/anthonyec.camera_preview/Pin.svg" +dest_files=["res://.godot/imported/Pin.svg-83b09f5c00a829c5d8b136bf5bae65bc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=2.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/anthonyec.camera_preview/plugin.cfg b/addons/anthonyec.camera_preview/plugin.cfg new file mode 100644 index 0000000..4ad0d4c --- /dev/null +++ b/addons/anthonyec.camera_preview/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="Little Camera Preview" +description="Shows a picture-in-picture preview of the selected 2D or 3D camera" +author="Anthony Cossins" +version="1.3" +script="plugin.gd" diff --git a/addons/anthonyec.camera_preview/plugin.gd b/addons/anthonyec.camera_preview/plugin.gd new file mode 100644 index 0000000..4e74dd8 --- /dev/null +++ b/addons/anthonyec.camera_preview/plugin.gd @@ -0,0 +1,87 @@ +@tool +extends EditorPlugin + +const preview_scene = preload("res://addons/anthonyec.camera_preview/preview.tscn") + +var preview: CameraPreview +var current_main_screen_name: String + +func _enter_tree() -> void: + main_screen_changed.connect(_on_main_screen_changed) + EditorInterface.get_selection().selection_changed.connect(_on_editor_selection_changed) + + # Initialise preview panel and add to main screen. + preview = preview_scene.instantiate() as CameraPreview + preview.request_hide() + + var main_screen = EditorInterface.get_editor_main_screen() + main_screen.add_child(preview) + +func _exit_tree() -> void: + if preview: + preview.queue_free() + +func _ready() -> void: + # TODO: Currently there is no API to get the main screen name without + # listening to the `EditorPlugin.main_screen_changed` signal: + # https://github.com/godotengine/godot-proposals/issues/2081 + EditorInterface.set_main_screen_editor("Script") + EditorInterface.set_main_screen_editor("3D") + +func _on_main_screen_changed(screen_name: String) -> void: + current_main_screen_name = screen_name + + # TODO: Bit of a hack to prevent pinned staying between view changes on the same scene. + preview.unlink_camera() + _on_editor_selection_changed() + +func _on_editor_selection_changed() -> void: + if not is_main_screen_viewport(): + # This hides the preview "container" and not the preview itself, allowing + # any locked previews to remain visible once switching back to 3D tab. + preview.visible = false + return + + preview.visible = true + + var selected_nodes = EditorInterface.get_selection().get_selected_nodes() + + var selected_camera_3d: Camera3D = find_camera_3d_or_null(selected_nodes) + var selected_camera_2d: Camera2D = find_camera_2d_or_null(selected_nodes) + + if selected_camera_3d and current_main_screen_name == "3D": + preview.link_with_camera_3d(selected_camera_3d) + preview.request_show() + + elif selected_camera_2d and current_main_screen_name == "2D": + preview.link_with_camera_2d(selected_camera_2d) + preview.request_show() + + else: + preview.request_hide() + +func is_main_screen_viewport() -> bool: + return current_main_screen_name == "3D" or current_main_screen_name == "2D" + +func find_camera_3d_or_null(nodes: Array[Node]) -> Camera3D: + var camera: Camera3D + + for node in nodes: + if node is Camera3D: + camera = node as Camera3D + break + + return camera + +func find_camera_2d_or_null(nodes: Array[Node]) -> Camera2D: + var camera: Camera2D + + for node in nodes: + if node is Camera2D: + camera = node as Camera2D + break + + return camera + +func _on_selected_camera_3d_tree_exiting() -> void: + preview.unlink_camera() diff --git a/addons/anthonyec.camera_preview/preview.gd b/addons/anthonyec.camera_preview/preview.gd new file mode 100644 index 0000000..3c07d04 --- /dev/null +++ b/addons/anthonyec.camera_preview/preview.gd @@ -0,0 +1,404 @@ +@tool + +class_name CameraPreview +extends Control + +enum CameraType { + CAMERA_2D, + CAMERA_3D +} + +enum PinnedPosition { + LEFT, + RIGHT, +} + +enum InteractionState { + NONE, + RESIZE, + DRAG, + + # Animation is split into 2 seperate states so that the tween is only + # invoked once in the "start" state. + START_ANIMATE_INTO_PLACE, + ANIMATE_INTO_PLACE, +} + +const margin_3d: Vector2 = Vector2(10, 10) +const margin_2d: Vector2 = Vector2(20, 15) +const panel_margin: float = 2 +const min_panel_size: float = 250 + +@onready var panel: Panel = %Panel +@onready var placeholder: Panel = %Placeholder +@onready var preview_camera_3d: Camera3D = %Camera3D +@onready var preview_camera_2d: Camera2D = %Camera2D +@onready var sub_viewport: SubViewport = %SubViewport +@onready var sub_viewport_text_rect: TextureRect = %TextureRect +@onready var resize_left_handle: Button = %ResizeLeftHandle +@onready var resize_right_handle: Button = %ResizeRightHandle +@onready var lock_button: Button = %LockButton +@onready var gradient: TextureRect = %Gradient +@onready var viewport_margin_container: MarginContainer = %ViewportMarginContainer +@onready var overlay_margin_container: MarginContainer = %OverlayMarginContainer +@onready var overlay_container: Control = %OverlayContainer + +var camera_type: CameraType = CameraType.CAMERA_3D +var pinned_position: PinnedPosition = PinnedPosition.RIGHT +var viewport_ratio: float = 1 +var editor_scale: float = EditorInterface.get_editor_scale() +var is_locked: bool +var show_controls: bool +var selected_camera_3d: Camera3D +var selected_camera_2d: Camera2D + +var state: InteractionState = InteractionState.NONE +var initial_mouse_position: Vector2 +var initial_panel_size: Vector2 +var initial_panel_position: Vector2 + +func _ready() -> void: + # Set initial width. + panel.size.x = min_panel_size * editor_scale + + # Setting texture to viewport in code instead of directly in the editor + # because otherwise an error "Path to node is invalid: Panel/SubViewport" + # on first load. This is harmless but doesn't look great. + # + # This is a known issue: + # https://github.com/godotengine/godot/issues/27790#issuecomment-499740220 + sub_viewport_text_rect.texture = sub_viewport.get_texture() + + # From what I can tell there's something wrong with how an editor theme + # scales when used within a plugin. It seems to ignore the screen scale. + # For instance, a 30x30px button will appear tiny on a retina display. + # + # Someone else had the issue with no luck: + # https://forum.godotengine.org/t/how-to-scale-plugin-controls-to-look-the-same-in-4k-as-1080p/36151 + # + # And seems Dialogic also scales buttons manually: + # https://github.com/dialogic-godot/dialogic/blob/master/addons/dialogic/Editor/Common/sidebar.gd#L25C6-L38 + # + # Maybe I don't know the correct way to do it, so for now the workaround is + # to set the correct size in code using screen scale. + var button_size = Vector2(30, 30) * editor_scale + var margin_size: float = panel_margin * editor_scale + + resize_left_handle.size = button_size + resize_left_handle.pivot_offset = Vector2(0, 0) * editor_scale + + resize_right_handle.size = button_size + resize_right_handle.pivot_offset = Vector2(30, 30) * editor_scale + + lock_button.size = button_size + lock_button.pivot_offset = Vector2(0, 30) * editor_scale + + viewport_margin_container.add_theme_constant_override("margin_left", margin_size) + viewport_margin_container.add_theme_constant_override("margin_top", margin_size) + viewport_margin_container.add_theme_constant_override("margin_right", margin_size) + viewport_margin_container.add_theme_constant_override("margin_bottom", margin_size) + + overlay_margin_container.add_theme_constant_override("margin_left", margin_size) + overlay_margin_container.add_theme_constant_override("margin_top", margin_size) + overlay_margin_container.add_theme_constant_override("margin_right", margin_size) + overlay_margin_container.add_theme_constant_override("margin_bottom", margin_size) + + # Parent node overlay size is not available on first ready, need to wait a + # frame for it to be drawn. + await get_tree().process_frame + + # Anchors are set in code because setting them in the editor UI doesn't take + # editor scale into account. + resize_left_handle.position = Vector2(0, 0) + resize_right_handle.set_anchors_preset(Control.PRESET_TOP_LEFT) + + resize_right_handle.position = Vector2(overlay_container.size.x - button_size.x, 0) + resize_right_handle.set_anchors_preset(Control.PRESET_TOP_RIGHT) + + lock_button.position = Vector2(0, overlay_container.size.y - button_size.y) + lock_button.set_anchors_preset(Control.PRESET_BOTTOM_LEFT) + +func _process(_delta: float) -> void: + if not visible: return + + match state: + InteractionState.NONE: + panel.size = get_clamped_size(panel.size) + panel.position = get_pinned_position(pinned_position) + + InteractionState.RESIZE: + var delta_mouse_position = initial_mouse_position - get_global_mouse_position() + var resized_size = panel.size + + if pinned_position == PinnedPosition.LEFT: + resized_size = initial_panel_size - delta_mouse_position + + if pinned_position == PinnedPosition.RIGHT: + resized_size = initial_panel_size + delta_mouse_position + + panel.size = get_clamped_size(resized_size) + panel.position = get_pinned_position(pinned_position) + + InteractionState.DRAG: + placeholder.size = panel.size + + var global_mouse_position = get_global_mouse_position() + var offset = initial_mouse_position - initial_panel_position + + panel.global_position = global_mouse_position - offset + + if global_mouse_position.x < global_position.x + size.x / 2: + pinned_position = PinnedPosition.LEFT + else: + pinned_position = PinnedPosition.RIGHT + + placeholder.position = get_pinned_position(pinned_position) + + InteractionState.START_ANIMATE_INTO_PLACE: + var final_position: Vector2 = get_pinned_position(pinned_position) + var tween = get_tree().create_tween() + + tween.set_ease(Tween.EASE_OUT) + tween.set_trans(Tween.TRANS_CUBIC) + tween.tween_property(panel, "position", final_position, 0.3) + + tween.finished.connect(func(): + panel.position = final_position + state = InteractionState.NONE + ) + + state = InteractionState.ANIMATE_INTO_PLACE + + # I couldn't get `mouse_entered` and `mouse_exited` events to work + # nicely, so I use rect method instead. Plus using this method it's easy to + # grow the hit area size. + var panel_hover_rect = Rect2(panel.global_position, panel.size) + panel_hover_rect = panel_hover_rect.grow(40) + + var mouse_position = get_global_mouse_position() + + show_controls = state != InteractionState.NONE or panel_hover_rect.has_point(mouse_position) + + # UI visibility. + resize_left_handle.visible = show_controls and pinned_position == PinnedPosition.RIGHT + resize_right_handle.visible = show_controls and pinned_position == PinnedPosition.LEFT + lock_button.visible = show_controls or is_locked + placeholder.visible = state == InteractionState.DRAG or state == InteractionState.ANIMATE_INTO_PLACE + gradient.visible = show_controls + + # Sync camera settings. + if camera_type == CameraType.CAMERA_3D and selected_camera_3d: + sub_viewport.size = panel.size + + # Sync position and rotation without using a `RemoteTransform` node + # because if you save a camera as a scene, the remote transform node will + # be stored within the scene. Also it's harder to keep the remote + # transform `remote_path` up-to-date with scene changes, which causes + # many errors. + preview_camera_3d.global_position = selected_camera_3d.global_position + preview_camera_3d.global_rotation = selected_camera_3d.global_rotation + + preview_camera_3d.fov = selected_camera_3d.fov + preview_camera_3d.projection = selected_camera_3d.projection + preview_camera_3d.size = selected_camera_3d.size + preview_camera_3d.cull_mask = selected_camera_3d.cull_mask + preview_camera_3d.keep_aspect = selected_camera_3d.keep_aspect + preview_camera_3d.near = selected_camera_3d.near + preview_camera_3d.far = selected_camera_3d.far + preview_camera_3d.h_offset = selected_camera_3d.h_offset + preview_camera_3d.v_offset = selected_camera_3d.v_offset + preview_camera_3d.attributes = selected_camera_3d.attributes + preview_camera_3d.environment = selected_camera_3d.environment + + if camera_type == CameraType.CAMERA_2D and selected_camera_2d: + var project_window_size = get_project_window_size() + var ratio = project_window_size.x / panel.size.x + + # TODO: Is there a better way to fix this? + # The camera border is visible sometimes due to pixel rounding. + # Subtract 1px from right and bottom to hide this. + var hide_camera_border_fix = Vector2(1, 1) + + sub_viewport.size = panel.size + sub_viewport.size_2d_override = (panel.size - hide_camera_border_fix) * ratio + sub_viewport.size_2d_override_stretch = true + + preview_camera_2d.global_position = selected_camera_2d.global_position + preview_camera_2d.global_rotation = selected_camera_2d.global_rotation + + preview_camera_2d.offset = selected_camera_2d.offset + preview_camera_2d.zoom = selected_camera_2d.zoom + preview_camera_2d.ignore_rotation = selected_camera_2d.ignore_rotation + preview_camera_2d.anchor_mode = selected_camera_2d.anchor_mode + preview_camera_2d.limit_left = selected_camera_2d.limit_left + preview_camera_2d.limit_right = selected_camera_2d.limit_right + preview_camera_2d.limit_top = selected_camera_2d.limit_top + preview_camera_2d.limit_bottom = selected_camera_2d.limit_bottom + +func link_with_camera_3d(camera_3d: Camera3D) -> void: + # TODO: Camera may not be ready since this method is called in `_enter_tree` + # in the plugin because of a workaround for: + # https://github.com/godotengine/godot-proposals/issues/2081 + if not preview_camera_3d: + return request_hide() + + var is_different_camera = camera_3d != preview_camera_3d + + # TODO: A bit messy. + if is_different_camera: + if preview_camera_3d.tree_exiting.is_connected(unlink_camera): + preview_camera_3d.tree_exiting.disconnect(unlink_camera) + + if not camera_3d.tree_exiting.is_connected(unlink_camera): + camera_3d.tree_exiting.connect(unlink_camera) + + sub_viewport.disable_3d = false + sub_viewport.world_3d = camera_3d.get_world_3d() + + selected_camera_3d = camera_3d + camera_type = CameraType.CAMERA_3D + +func link_with_camera_2d(camera_2d: Camera2D) -> void: + if not preview_camera_2d: + return request_hide() + + var is_different_camera = camera_2d != preview_camera_2d + + # TODO: A bit messy. + if is_different_camera: + if preview_camera_2d.tree_exiting.is_connected(unlink_camera): + preview_camera_2d.tree_exiting.disconnect(unlink_camera) + + if not camera_2d.tree_exiting.is_connected(unlink_camera): + camera_2d.tree_exiting.connect(unlink_camera) + + sub_viewport.disable_3d = true + sub_viewport.world_2d = camera_2d.get_world_2d() + + selected_camera_2d = camera_2d + camera_type = CameraType.CAMERA_2D + +func unlink_camera() -> void: + if selected_camera_3d: + selected_camera_3d = null + + if selected_camera_2d: + selected_camera_2d = null + + is_locked = false + lock_button.button_pressed = false + +func request_hide() -> void: + if is_locked: return + visible = false + +func request_show() -> void: + visible = true + +func get_pinned_position(pinned_position: PinnedPosition) -> Vector2: + var margin: Vector2 = margin_3d * editor_scale + + if camera_type == CameraType.CAMERA_2D: + margin = margin_2d * editor_scale + + match pinned_position: + PinnedPosition.LEFT: + return Vector2.ZERO - Vector2(0, panel.size.y) - Vector2(-margin.x, margin.y) + PinnedPosition.RIGHT: + return size - panel.size - margin + _: + assert(false, "Unknown pinned position %s" % str(pinned_position)) + + return Vector2.ZERO + +func get_clamped_size(desired_size: Vector2) -> Vector2: + var viewport_ratio = get_project_window_ratio() + var editor_viewport_size = get_editor_viewport_size() + + var max_bounds = Vector2( + editor_viewport_size.x * 0.6, + editor_viewport_size.y * 0.8 + ) + + var clamped_size = desired_size + + # Apply aspect ratio. + clamped_size = Vector2(clamped_size.x, clamped_size.x * viewport_ratio) + + # Clamp the max size while respecting the aspect ratio. + if clamped_size.y >= max_bounds.y: + clamped_size.x = max_bounds.y / viewport_ratio + clamped_size.y = max_bounds.y + + if clamped_size.x >= max_bounds.x: + clamped_size.x = max_bounds.x + clamped_size.y = max_bounds.x * viewport_ratio + + # Clamp the min size based on if it's portrait or landscape. Portrait min + # size should be based on it's height. Landscape min size is based on it's + # width instead. Applying min width to a portrait size would make it too big. + var is_portrait = viewport_ratio > 1 + + if is_portrait and clamped_size.y <= min_panel_size * editor_scale: + clamped_size.x = min_panel_size / viewport_ratio + clamped_size.y = min_panel_size + clamped_size = clamped_size * editor_scale + + if not is_portrait and clamped_size.x <= min_panel_size * editor_scale: + clamped_size.x = min_panel_size + clamped_size.y = min_panel_size * viewport_ratio + clamped_size = clamped_size * editor_scale + + # Round down to avoid sub-pixel artifacts, mainly seen around the margins. + return clamped_size.floor() + +func get_project_window_size() -> Vector2: + var window_width = float(ProjectSettings.get_setting("display/window/size/viewport_width")) + var window_height = float(ProjectSettings.get_setting("display/window/size/viewport_height")) + + return Vector2(window_width, window_height) + +func get_project_window_ratio() -> float: + var project_window_size = get_project_window_size() + + return project_window_size.y / project_window_size.x + +func get_editor_viewport_size() -> Vector2: + var fallback_size = EditorInterface.get_editor_main_screen().size + + # There isn't an API for getting the viewport node. Instead it has to be + # found by checking the parent's parent of the subviewport and find + # the correct node based on name and class. + var editor_sub_viewport_3d = EditorInterface.get_editor_viewport_3d(0) + var editor_viewport_container = editor_sub_viewport_3d.get_parent().get_parent().get_parent() + + # Early return incase editor tree structure has changed. + if editor_viewport_container.get_class() != "Node3DEditorViewportContainer": + return fallback_size + + return editor_viewport_container.size + +func _on_resize_handle_button_down() -> void: + if state != InteractionState.NONE: return + + state = InteractionState.RESIZE + initial_mouse_position = get_global_mouse_position() + initial_panel_size = panel.size + +func _on_resize_handle_button_up() -> void: + state = InteractionState.NONE + +func _on_drag_handle_button_down() -> void: + if state != InteractionState.NONE: return + + state = InteractionState.DRAG + initial_mouse_position = get_global_mouse_position() + initial_panel_position = panel.global_position + +func _on_drag_handle_button_up() -> void: + if state != InteractionState.DRAG: return + + state = InteractionState.START_ANIMATE_INTO_PLACE + +func _on_lock_button_pressed() -> void: + is_locked = !is_locked diff --git a/addons/anthonyec.camera_preview/preview.tscn b/addons/anthonyec.camera_preview/preview.tscn new file mode 100644 index 0000000..77b3ced --- /dev/null +++ b/addons/anthonyec.camera_preview/preview.tscn @@ -0,0 +1,200 @@ +[gd_scene load_steps=8 format=3 uid="uid://xybmfvufjuv"] + +[ext_resource type="Script" path="res://addons/anthonyec.camera_preview/preview.gd" id="1_6b32r"] +[ext_resource type="Texture2D" uid="uid://do6d60od41vmg" path="res://addons/anthonyec.camera_preview/Pin.svg" id="2_p0pa8"] +[ext_resource type="Texture2D" uid="uid://btc01wc11tiid" path="res://addons/anthonyec.camera_preview/GuiResizerTopLeft.svg" id="2_t64ej"] +[ext_resource type="Texture2D" uid="uid://04l05jxuyt7k" path="res://addons/anthonyec.camera_preview/GuiResizerTopRight.svg" id="3_6yuab"] + +[sub_resource type="ViewportTexture" id="ViewportTexture_hchdq"] +viewport_path = NodePath("Panel/SubViewport") + +[sub_resource type="Gradient" id="Gradient_11p6r"] +offsets = PackedFloat32Array(0, 0.3, 0.6, 1) +colors = PackedColorArray(0, 0, 0, 0.235294, 0, 0, 0, 0.0784314, 0, 0, 0, 0.0784314, 0, 0, 0, 0.235294) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_4dkve"] +gradient = SubResource("Gradient_11p6r") +width = 256 +height = 256 +fill_to = Vector2(2.08165e-12, 1) + +[node name="Preview" type="Control"] +z_index = 999 +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_6b32r") + +[node name="Placeholder" type="Panel" parent="."] +unique_name_in_owner = true +visible = false +modulate = Color(1, 1, 1, 0.705882) +layout_mode = 1 +anchors_preset = 3 +anchor_left = 1.0 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -40.0 +offset_top = -40.0 +offset_right = 410.0 +offset_bottom = 410.0 +grow_horizontal = 0 +grow_vertical = 0 + +[node name="Panel" type="Panel" parent="."] +unique_name_in_owner = true +clip_contents = true +layout_mode = 1 +anchors_preset = 3 +anchor_left = 1.0 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -520.0 +offset_top = -908.889 +offset_right = -20.0 +offset_bottom = -20.0 +grow_horizontal = 0 +grow_vertical = 0 +pivot_offset = Vector2(450, 300) + +[node name="SubViewport" type="SubViewport" parent="Panel"] +unique_name_in_owner = true +handle_input_locally = false +gui_disable_input = true +size_2d_override_stretch = true + +[node name="Camera3D" type="Camera3D" parent="Panel/SubViewport"] +unique_name_in_owner = true +current = true + +[node name="Camera2D" type="Camera2D" parent="Panel/SubViewport"] +unique_name_in_owner = true +ignore_rotation = false + +[node name="ViewportMarginContainer" type="MarginContainer" parent="Panel"] +unique_name_in_owner = true +clip_contents = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +theme_override_constants/margin_left = 4 +theme_override_constants/margin_top = 4 +theme_override_constants/margin_right = 4 +theme_override_constants/margin_bottom = 4 + +[node name="TextureRect" type="TextureRect" parent="Panel/ViewportMarginContainer"] +unique_name_in_owner = true +layout_mode = 2 +texture = SubResource("ViewportTexture_hchdq") +expand_mode = 1 + +[node name="Gradient" type="TextureRect" parent="Panel"] +unique_name_in_owner = true +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = SubResource("GradientTexture2D_4dkve") + +[node name="OverlayMarginContainer" type="MarginContainer" parent="Panel"] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +theme_override_constants/margin_left = 4 +theme_override_constants/margin_top = 4 +theme_override_constants/margin_right = 4 +theme_override_constants/margin_bottom = 4 + +[node name="OverlayContainer" type="Control" parent="Panel/OverlayMarginContainer"] +unique_name_in_owner = true +clip_contents = true +layout_mode = 2 +mouse_filter = 2 + +[node name="DragHandle" type="Button" parent="Panel/OverlayMarginContainer/OverlayContainer"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +focus_mode = 0 +flat = true + +[node name="ResizeLeftHandle" type="Button" parent="Panel/OverlayMarginContainer/OverlayContainer"] +unique_name_in_owner = true +visible = false +layout_mode = 1 +offset_right = 60.0 +offset_bottom = 60.0 +size_flags_horizontal = 0 +size_flags_vertical = 0 +mouse_default_cursor_shape = 12 +icon = ExtResource("2_t64ej") +flat = true +icon_alignment = 1 +expand_icon = true + +[node name="ResizeRightHandle" type="Button" parent="Panel/OverlayMarginContainer/OverlayContainer"] +unique_name_in_owner = true +visible = false +layout_mode = 1 +anchors_preset = 1 +anchor_left = 1.0 +anchor_right = 1.0 +offset_left = -60.0 +offset_bottom = 60.0 +pivot_offset = Vector2(60, 60) +size_flags_horizontal = 8 +size_flags_vertical = 0 +mouse_default_cursor_shape = 11 +icon = ExtResource("3_6yuab") +flat = true +icon_alignment = 1 +expand_icon = true + +[node name="LockButton" type="Button" parent="Panel/OverlayMarginContainer/OverlayContainer"] +unique_name_in_owner = true +visible = false +layout_mode = 1 +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -60.0 +offset_right = 60.0 +pivot_offset = Vector2(0, 60) +size_flags_horizontal = 0 +size_flags_vertical = 8 +tooltip_text = "Always Show Preview" +toggle_mode = true +icon = ExtResource("2_p0pa8") +flat = true +icon_alignment = 1 +expand_icon = true + +[connection signal="button_down" from="Panel/OverlayMarginContainer/OverlayContainer/DragHandle" to="." method="_on_drag_handle_button_down"] +[connection signal="button_up" from="Panel/OverlayMarginContainer/OverlayContainer/DragHandle" to="." method="_on_drag_handle_button_up"] +[connection signal="renamed" from="Panel/OverlayMarginContainer/OverlayContainer/DragHandle" to="." method="_on_drag_handle_renamed"] +[connection signal="button_down" from="Panel/OverlayMarginContainer/OverlayContainer/ResizeLeftHandle" to="." method="_on_resize_handle_button_down"] +[connection signal="button_up" from="Panel/OverlayMarginContainer/OverlayContainer/ResizeLeftHandle" to="." method="_on_resize_handle_button_up"] +[connection signal="button_down" from="Panel/OverlayMarginContainer/OverlayContainer/ResizeRightHandle" to="." method="_on_resize_handle_button_down"] +[connection signal="button_up" from="Panel/OverlayMarginContainer/OverlayContainer/ResizeRightHandle" to="." method="_on_resize_handle_button_up"] +[connection signal="pressed" from="Panel/OverlayMarginContainer/OverlayContainer/LockButton" to="." method="_on_lock_button_pressed"] diff --git a/addons/dialogic/Example Assets/Fonts/Roboto-Bold.ttf.import b/addons/dialogic/Example Assets/Fonts/Roboto-Bold.ttf.import index 694a2ae..16d9a06 100644 --- a/addons/dialogic/Example Assets/Fonts/Roboto-Bold.ttf.import +++ b/addons/dialogic/Example Assets/Fonts/Roboto-Bold.ttf.import @@ -15,6 +15,7 @@ dest_files=["res://.godot/imported/Roboto-Bold.ttf-a0c3395776dbc11ee676c5f1ea9c0 Rendering=null antialiasing=1 generate_mipmaps=false +disable_embedded_bitmaps=true multichannel_signed_distance_field=false msdf_pixel_range=8 msdf_size=48 diff --git a/addons/dialogic/Example Assets/Fonts/Roboto-Italic.ttf.import b/addons/dialogic/Example Assets/Fonts/Roboto-Italic.ttf.import index d7c809a..9034952 100644 --- a/addons/dialogic/Example Assets/Fonts/Roboto-Italic.ttf.import +++ b/addons/dialogic/Example Assets/Fonts/Roboto-Italic.ttf.import @@ -15,6 +15,7 @@ dest_files=["res://.godot/imported/Roboto-Italic.ttf-844485a0171d6031f98f4829003 Rendering=null antialiasing=1 generate_mipmaps=false +disable_embedded_bitmaps=true multichannel_signed_distance_field=false msdf_pixel_range=8 msdf_size=48 diff --git a/addons/dialogic/Example Assets/Fonts/Roboto-Regular.ttf.import b/addons/dialogic/Example Assets/Fonts/Roboto-Regular.ttf.import index 16d8db1..3f33bc5 100644 --- a/addons/dialogic/Example Assets/Fonts/Roboto-Regular.ttf.import +++ b/addons/dialogic/Example Assets/Fonts/Roboto-Regular.ttf.import @@ -15,6 +15,7 @@ dest_files=["res://.godot/imported/Roboto-Regular.ttf-d9ce0640effe9e93230b445b37 Rendering=null antialiasing=1 generate_mipmaps=false +disable_embedded_bitmaps=true multichannel_signed_distance_field=false msdf_pixel_range=8 msdf_size=48 -- 2.52.0 From 4ce0367f15b77996823bc4925d6cce7697baac15 Mon Sep 17 00:00:00 2001 From: cblech Date: Mon, 2 Dec 2024 18:50:26 +0100 Subject: [PATCH 3/3] Added 3D Controller --- project.godot | 25 +- scenes/mockups/abandoned_street_3d.tscn | 558 +++++++++++++++++++++++- scenes/props/Player3D.tscn | 37 ++ scripts/camera_pivot.gd | 22 + scripts/player_3d.gd | 30 ++ 5 files changed, 653 insertions(+), 19 deletions(-) create mode 100644 scenes/props/Player3D.tscn create mode 100644 scripts/camera_pivot.gd create mode 100644 scripts/player_3d.gd diff --git a/project.godot b/project.godot index f65766e..47aa938 100644 --- a/project.godot +++ b/project.godot @@ -11,8 +11,8 @@ config_version=5 [application] config/name="Babushka" -run/main_scene="res://scenes/2DTestingGround.tscn" -config/features=PackedStringArray("4.2", "Forward Plus") +run/main_scene="res://scenes/mockups/abandoned_street_3d.tscn" +config/features=PackedStringArray("4.3", "Forward Plus") config/icon="res://icon.svg" [autoload] @@ -73,39 +73,44 @@ project/assembly_name="Babushka" [editor_plugins] -enabled=PackedStringArray("res://addons/dialogic/plugin.cfg") +enabled=PackedStringArray("res://addons/anthonyec.camera_preview/plugin.cfg", "res://addons/dialogic/plugin.cfg") [input] move_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) +"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,"location":0,"echo":false,"script":null) ] } move_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) +"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,"location":0,"echo":false,"script":null) ] } move_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) +"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,"location":0,"echo":false,"script":null) ] } move_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) +"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,"location":0,"echo":false,"script":null) ] } dialogic_default_action={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":88,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":88,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } +click={ +"deadzone": 0.5, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) +] +} [internationalization] diff --git a/scenes/mockups/abandoned_street_3d.tscn b/scenes/mockups/abandoned_street_3d.tscn index 75b5948..5c2f157 100644 --- a/scenes/mockups/abandoned_street_3d.tscn +++ b/scenes/mockups/abandoned_street_3d.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=29 format=3 uid="uid://c1j5u0cjdswvp"] +[gd_scene load_steps=32 format=3 uid="uid://c1j5u0cjdswvp"] [ext_resource type="Texture2D" uid="uid://cg1cxmqbo1pa" path="res://graphics/mockups/darktree1.png" id="1_u6vd6"] [ext_resource type="Texture2D" uid="uid://fcm6etmmj65d" path="res://graphics/mockups/darktree2.png" id="2_tcvf7"] @@ -26,25 +26,32 @@ [ext_resource type="Texture2D" uid="uid://dfynp0xqtpcke" path="res://graphics/testingground/chestnut1.png" id="24_ohuks"] [ext_resource type="Texture2D" uid="uid://63rgrra0tdef" path="res://graphics/testingground/chestnut2.png" id="25_j83yj"] [ext_resource type="Texture2D" uid="uid://cygt1j1m0vpqg" path="res://graphics/mockups/field_placeholder.png" id="26_7nyv4"] +[ext_resource type="PackedScene" uid="uid://dbd1niu3tp8y5" path="res://scenes/props/Player3D.tscn" id="27_mqdni"] [sub_resource type="PlaneMesh" id="PlaneMesh_8dxh5"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_f4rkw"] albedo_color = Color(0.505882, 0.588235, 0.494118, 1) -[node name="Node3D" type="Node3D"] +[sub_resource type="BoxShape3D" id="BoxShape3D_neui6"] +size = Vector3(2.01563, 0.160522, 2.00824) -[node name="Camera3D" type="Camera3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 0.766044, 0.642788, 0, -0.642788, 0.766044, 0.0327415, 0.426147, 0.642299) -current = true -fov = 58.9 -size = 0.85 +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_rdjax"] +height = 2.70765 + +[node name="Node3D" type="Node3D"] [node name="MeshInstance3D" type="MeshInstance3D" parent="."] mesh = SubResource("PlaneMesh_8dxh5") -skeleton = NodePath("../Camera3D") +skeleton = NodePath("") surface_material_override/0 = SubResource("StandardMaterial3D_f4rkw") +[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D/StaticBody3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.000976563, -0.0739136, -0.00112915) +shape = SubResource("BoxShape3D_neui6") + [node name="background" type="Node3D" parent="."] [node name="tree" type="Sprite3D" parent="background"] @@ -53,318 +60,583 @@ billboard = 1 shaded = true texture = ExtResource("1_u6vd6") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree2" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.164495, 0.119419, -0.829471) billboard = 1 shaded = true texture = ExtResource("2_tcvf7") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree2"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree2/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree3" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.30683, 0.119096, -0.69378) billboard = 1 shaded = true texture = ExtResource("3_v2fdw") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree3"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree3/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree4" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.466273, 0.120625, -0.798476) billboard = 1 shaded = true texture = ExtResource("4_yrcwc") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree4"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree4/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree5" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.709182, 0.147986, -0.589548) billboard = 1 shaded = true texture = ExtResource("5_3ynl8") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree5"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree5/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree6" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.494517, 0.108343, -0.589548) billboard = 1 shaded = true texture = ExtResource("6_ijjvr") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree6"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree6/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree7" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.148489, 0.111307, -0.589548) billboard = 1 shaded = true texture = ExtResource("7_lwa45") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree7"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree7/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree8" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.375699, 0.111307, -0.738924) billboard = 1 shaded = true texture = ExtResource("8_wu13e") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree8"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree8/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree9" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.696664, 0.13729, -0.543319) billboard = 1 shaded = true texture = ExtResource("9_4i1d4") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree9"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree9/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree10" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.287227, 0.119419, -0.721983) billboard = 1 shaded = true texture = ExtResource("1_u6vd6") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree10"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree10/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree11" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.5543, 0.119419, -0.803662) billboard = 1 shaded = true texture = ExtResource("2_tcvf7") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree11"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree11/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree12" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.0829748, 0.119096, -0.66797) billboard = 1 shaded = true texture = ExtResource("3_v2fdw") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree12"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree12/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree13" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.0764678, 0.120625, -0.772666) billboard = 1 shaded = true texture = ExtResource("4_yrcwc") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree13"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree13/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree14" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.319377, 0.147986, -0.563738) billboard = 1 shaded = true texture = ExtResource("5_3ynl8") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree14"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree14/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree15" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.884322, 0.108343, -0.563738) billboard = 1 shaded = true texture = ExtResource("6_ijjvr") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree15"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree15/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree16" type="Sprite3D" parent="background"] transform = Transform3D(0.0999822, 0, -0.00188484, 0, 0.1, 0, 0.00188484, 0, 0.0999822, -0.538294, 0.111307, -0.520366) billboard = 1 shaded = true texture = ExtResource("7_lwa45") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree16"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree16/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree17" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.765503, 0.111307, -0.713115) billboard = 1 shaded = true texture = ExtResource("8_wu13e") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree17"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree17/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree18" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.231314, 0.13729, -0.840139) billboard = 1 shaded = true texture = ExtResource("9_4i1d4") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree18"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree18/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree19" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.59089, 0.119419, -0.666389) billboard = 1 shaded = true texture = ExtResource("1_u6vd6") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree19"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree19/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree20" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.323817, 0.119419, -0.748068) billboard = 1 shaded = true texture = ExtResource("2_tcvf7") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree20"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree20/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree21" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.795143, 0.119096, -0.612376) billboard = 1 shaded = true texture = ExtResource("3_v2fdw") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree21"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree21/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree22" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.899468, 0.120625, -0.509008) billboard = 1 shaded = true texture = ExtResource("4_yrcwc") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree22"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree22/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree23" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.916255, 0.147986, -0.248355) billboard = 1 shaded = true texture = ExtResource("5_3ynl8") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree23"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree23/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree24" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.785074, 0.108343, -0.418221) billboard = 1 shaded = true texture = ExtResource("6_ijjvr") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree24"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree24/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree42" type="Sprite3D" parent="background"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.917235, 0.119419, -0.508767) billboard = 1 shaded = true texture = ExtResource("2_tcvf7") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree42"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree42/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree43" type="Sprite3D" parent="background"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.523234, 0.108343, -0.61479) billboard = 1 shaded = true texture = ExtResource("6_ijjvr") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree43"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree43/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree44" type="Sprite3D" parent="background"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.74063, 0.111307, -0.34558) billboard = 1 shaded = true texture = ExtResource("7_lwa45") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree44"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree44/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree45" type="Sprite3D" parent="background"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.714098, 0.111307, -0.616197) billboard = 1 shaded = true texture = ExtResource("8_wu13e") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree45"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree45/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree46" type="Sprite3D" parent="background"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.360267, 0.13729, -0.743018) billboard = 1 shaded = true texture = ExtResource("9_4i1d4") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree46"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree46/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree47" type="Sprite3D" parent="background"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.756501, 0.119419, -0.536722) billboard = 1 shaded = true texture = ExtResource("1_u6vd6") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree47"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree47/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree48" type="Sprite3D" parent="background"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.652256, 0.119419, -0.795821) billboard = 1 shaded = true texture = ExtResource("2_tcvf7") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree48"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree48/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree49" type="Sprite3D" parent="background"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.258255, 0.108343, -0.901844) billboard = 1 shaded = true texture = ExtResource("6_ijjvr") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree49"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree49/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree50" type="Sprite3D" parent="background"] transform = Transform3D(0.0613486, 0, -0.0789706, 0, 0.1, 0, 0.0789706, 0, 0.0613486, 0.441907, 0.111307, -0.605384) billboard = 1 shaded = true texture = ExtResource("7_lwa45") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree50"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree50/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree51" type="Sprite3D" parent="background"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.449119, 0.111307, -0.90325) billboard = 1 shaded = true texture = ExtResource("8_wu13e") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree51"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree51/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree52" type="Sprite3D" parent="background"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.883555, 0.13729, -0.567455) billboard = 1 shaded = true texture = ExtResource("9_4i1d4") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree52"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree52/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree53" type="Sprite3D" parent="background"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.207396, 0.108343, -0.733205) billboard = 1 shaded = true texture = ExtResource("6_ijjvr") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree53"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree53/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree25" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.46999, 0.111307, -0.508144) billboard = 1 shaded = true texture = ExtResource("7_lwa45") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree25"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree25/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree26" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.112614, 0.111307, -0.65752) billboard = 1 shaded = true texture = ExtResource("8_wu13e") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree26"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree26/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree27" type="Sprite3D" parent="background"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.646804, 0.13729, -0.461916) billboard = 1 shaded = true texture = ExtResource("9_4i1d4") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree27"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree27/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree28" type="Sprite3D" parent="background"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.900771, 0.119419, -0.592793) billboard = 1 shaded = true texture = ExtResource("1_u6vd6") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree28"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree28/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree29" type="Sprite3D" parent="background"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.74172, 0.119096, -0.731858) billboard = 1 shaded = true texture = ExtResource("3_v2fdw") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree29"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree29/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree30" type="Sprite3D" parent="background"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.739281, 0.120625, -0.922587) billboard = 1 shaded = true texture = ExtResource("4_yrcwc") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree30"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree30/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree31" type="Sprite3D" parent="background"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.430205, 0.147986, -1.00701) billboard = 1 shaded = true texture = ExtResource("5_3ynl8") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree31"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree31/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree32" type="Sprite3D" parent="background"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.935996, 0.120625, -0.58507) billboard = 1 shaded = true texture = ExtResource("4_yrcwc") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree32"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree32/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree33" type="Sprite3D" parent="background"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.626919, 0.147986, -0.669496) billboard = 1 shaded = true texture = ExtResource("5_3ynl8") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree33"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree33/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree34" type="Sprite3D" parent="background"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.560079, 0.119419, -0.951965) billboard = 1 shaded = true texture = ExtResource("1_u6vd6") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree34"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree34/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree35" type="Sprite3D" parent="background"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.777209, 0.119419, -0.776313) billboard = 1 shaded = true texture = ExtResource("2_tcvf7") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree35"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree35/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree36" type="Sprite3D" parent="background"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.401028, 0.119096, -1.09103) billboard = 1 shaded = true texture = ExtResource("3_v2fdw") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree36"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree36/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree37" type="Sprite3D" parent="background"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.256982, 0.120625, -1.11966) billboard = 1 shaded = true texture = ExtResource("4_yrcwc") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree37"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree37/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree38" type="Sprite3D" parent="background"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.0315572, 0.147986, -0.987731) billboard = 1 shaded = true texture = ExtResource("5_3ynl8") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree38"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree38/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree39" type="Sprite3D" parent="background"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.49657, 0.111307, -0.763219) billboard = 1 shaded = true texture = ExtResource("7_lwa45") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree39"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree39/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree40" type="Sprite3D" parent="background"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.820336, 0.111307, -0.550602) billboard = 1 shaded = true texture = ExtResource("8_wu13e") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree40"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree40/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree41" type="Sprite3D" parent="background"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.359324, 0.13729, -0.883899) billboard = 1 shaded = true texture = ExtResource("9_4i1d4") +[node name="StaticBody3D" type="StaticBody3D" parent="background/tree41"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="background/tree41/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="foreground" type="Node3D" parent="."] transform = Transform3D(-0.999657, 0, -0.0261769, 0, 1, 0, 0.0261769, 0, -0.999657, 0, 0, 0) @@ -374,318 +646,583 @@ billboard = 1 shaded = true texture = ExtResource("1_u6vd6") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree2" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.164495, 0.119419, -0.829471) billboard = 1 shaded = true texture = ExtResource("2_tcvf7") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree2"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree2/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree3" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.30683, 0.119096, -0.69378) billboard = 1 shaded = true texture = ExtResource("3_v2fdw") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree3"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree3/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree4" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.466273, 0.120625, -0.798476) billboard = 1 shaded = true texture = ExtResource("4_yrcwc") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree4"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree4/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree5" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.709182, 0.147986, -0.589548) billboard = 1 shaded = true texture = ExtResource("5_3ynl8") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree5"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree5/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree6" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.494517, 0.108343, -0.589548) billboard = 1 shaded = true texture = ExtResource("6_ijjvr") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree6"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree6/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree7" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.148489, 0.111307, -0.589548) billboard = 1 shaded = true texture = ExtResource("7_lwa45") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree7"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree7/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree8" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.375699, 0.111307, -0.738924) billboard = 1 shaded = true texture = ExtResource("8_wu13e") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree8"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree8/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree9" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.696664, 0.13729, -0.543319) billboard = 1 shaded = true texture = ExtResource("9_4i1d4") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree9"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree9/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree10" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.287227, 0.119419, -0.721983) billboard = 1 shaded = true texture = ExtResource("1_u6vd6") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree10"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree10/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree11" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.5543, 0.119419, -0.803662) billboard = 1 shaded = true texture = ExtResource("2_tcvf7") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree11"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree11/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree12" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.0829748, 0.119096, -0.66797) billboard = 1 shaded = true texture = ExtResource("3_v2fdw") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree12"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree12/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree13" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.0764678, 0.120625, -0.772666) billboard = 1 shaded = true texture = ExtResource("4_yrcwc") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree13"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree13/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree14" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.319377, 0.147986, -0.563738) billboard = 1 shaded = true texture = ExtResource("5_3ynl8") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree14"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree14/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree15" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.884322, 0.108343, -0.563738) billboard = 1 shaded = true texture = ExtResource("6_ijjvr") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree15"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree15/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree16" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0999822, 0, -0.00188484, 0, 0.1, 0, 0.00188484, 0, 0.0999822, -0.538294, 0.111307, -0.520366) billboard = 1 shaded = true texture = ExtResource("7_lwa45") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree16"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree16/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree17" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.765503, 0.111307, -0.713115) billboard = 1 shaded = true texture = ExtResource("8_wu13e") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree17"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree17/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree18" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.231314, 0.13729, -0.840139) billboard = 1 shaded = true texture = ExtResource("9_4i1d4") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree18"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree18/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree19" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.59089, 0.119419, -0.666389) billboard = 1 shaded = true texture = ExtResource("1_u6vd6") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree19"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree19/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree20" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.323817, 0.119419, -0.748068) billboard = 1 shaded = true texture = ExtResource("2_tcvf7") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree20"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree20/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree21" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.795143, 0.119096, -0.612376) billboard = 1 shaded = true texture = ExtResource("3_v2fdw") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree21"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree21/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree22" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.899468, 0.120625, -0.509008) billboard = 1 shaded = true texture = ExtResource("4_yrcwc") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree22"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree22/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree23" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.916255, 0.147986, -0.248355) billboard = 1 shaded = true texture = ExtResource("5_3ynl8") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree23"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree23/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree24" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.785074, 0.108343, -0.418221) billboard = 1 shaded = true texture = ExtResource("6_ijjvr") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree24"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree24/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree42" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.917235, 0.119419, -0.508767) billboard = 1 shaded = true texture = ExtResource("2_tcvf7") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree42"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree42/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree43" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.523234, 0.108343, -0.61479) billboard = 1 shaded = true texture = ExtResource("6_ijjvr") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree43"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree43/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree44" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.74063, 0.111307, -0.34558) billboard = 1 shaded = true texture = ExtResource("7_lwa45") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree44"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree44/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree45" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.714098, 0.111307, -0.616197) billboard = 1 shaded = true texture = ExtResource("8_wu13e") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree45"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree45/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree46" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.360267, 0.13729, -0.743018) billboard = 1 shaded = true texture = ExtResource("9_4i1d4") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree46"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree46/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree47" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.756501, 0.119419, -0.536722) billboard = 1 shaded = true texture = ExtResource("1_u6vd6") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree47"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree47/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree48" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.652256, 0.119419, -0.795821) billboard = 1 shaded = true texture = ExtResource("2_tcvf7") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree48"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree48/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree49" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.258255, 0.108343, -0.901844) billboard = 1 shaded = true texture = ExtResource("6_ijjvr") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree49"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree49/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree50" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0613486, 0, -0.0789706, 0, 0.1, 0, 0.0789706, 0, 0.0613486, 0.441907, 0.111307, -0.605384) billboard = 1 shaded = true texture = ExtResource("7_lwa45") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree50"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree50/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree51" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.449119, 0.111307, -0.90325) billboard = 1 shaded = true texture = ExtResource("8_wu13e") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree51"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree51/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree52" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.883555, 0.13729, -0.567455) billboard = 1 shaded = true texture = ExtResource("9_4i1d4") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree52"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree52/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree53" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0628262, 0, -0.0778002, 0, 0.1, 0, 0.0778002, 0, 0.0628262, 0.207396, 0.108343, -0.733205) billboard = 1 shaded = true texture = ExtResource("6_ijjvr") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree53"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree53/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree25" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.46999, 0.111307, -0.508144) billboard = 1 shaded = true texture = ExtResource("7_lwa45") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree25"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree25/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree26" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.112614, 0.111307, -0.65752) billboard = 1 shaded = true texture = ExtResource("8_wu13e") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree26"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree26/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree27" type="Sprite3D" parent="foreground"] transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.646804, 0.13729, -0.461916) billboard = 1 shaded = true texture = ExtResource("9_4i1d4") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree27"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree27/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree28" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.900771, 0.119419, -0.592793) billboard = 1 shaded = true texture = ExtResource("1_u6vd6") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree28"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree28/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree29" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.74172, 0.119096, -0.731858) billboard = 1 shaded = true texture = ExtResource("3_v2fdw") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree29"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree29/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree30" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.739281, 0.120625, -0.922587) billboard = 1 shaded = true texture = ExtResource("4_yrcwc") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree30"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree30/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree31" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.430205, 0.147986, -1.00701) billboard = 1 shaded = true texture = ExtResource("5_3ynl8") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree31"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree31/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree32" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.935996, 0.120625, -0.58507) billboard = 1 shaded = true texture = ExtResource("4_yrcwc") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree32"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree32/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree33" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.626919, 0.147986, -0.669496) billboard = 1 shaded = true texture = ExtResource("5_3ynl8") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree33"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree33/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree34" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.560079, 0.119419, -0.951965) billboard = 1 shaded = true texture = ExtResource("1_u6vd6") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree34"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree34/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree35" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.777209, 0.119419, -0.776313) billboard = 1 shaded = true texture = ExtResource("2_tcvf7") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree35"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree35/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree36" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.401028, 0.119096, -1.09103) billboard = 1 shaded = true texture = ExtResource("3_v2fdw") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree36"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree36/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree37" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.256982, 0.120625, -1.11966) billboard = 1 shaded = true texture = ExtResource("4_yrcwc") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree37"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree37/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree38" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.0315572, 0.147986, -0.987731) billboard = 1 shaded = true texture = ExtResource("5_3ynl8") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree38"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree38/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree39" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.49657, 0.111307, -0.763219) billboard = 1 shaded = true texture = ExtResource("7_lwa45") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree39"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree39/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree40" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.820336, 0.111307, -0.550602) billboard = 1 shaded = true texture = ExtResource("8_wu13e") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree40"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree40/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="tree41" type="Sprite3D" parent="foreground"] transform = Transform3D(0.0559526, 0, 0.0828813, 0, 0.1, 0, -0.0828813, 0, 0.0559526, -0.359324, 0.13729, -0.883899) billboard = 1 shaded = true texture = ExtResource("9_4i1d4") +[node name="StaticBody3D" type="StaticBody3D" parent="foreground/tree41"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="foreground/tree41/StaticBody3D"] +shape = SubResource("CapsuleShape3D_rdjax") + [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] transform = Transform3D(1, 0, 0, 0, 0.878467, 0.477803, 0, -0.477803, 0.878467, 0, 0.578004, 0.455086) light_color = Color(0.81, 0.49329, 0.4374, 1) @@ -698,7 +1235,7 @@ shaded = true texture = ExtResource("10_my8if") [node name="player" type="Sprite3D" parent="."] -transform = Transform3D(0.04, 0, 0, 0, 0.04, 0, 0, 0, 0.04, 0, 0.116035, 0.10753) +transform = Transform3D(0.04, 0, 0, 0, 0.04, 0, 0, 0, 0.04, -0.0237094, 0.116035, 0.0958161) billboard = 1 shaded = true texture = ExtResource("10_oy1dv") @@ -820,3 +1357,6 @@ texture = ExtResource("26_7nyv4") transform = Transform3D(0.02, 0, 0, 0, -8.74228e-10, -0.02, 0, 0.02, -8.74228e-10, 0.0528325, 0.0607805, -0.0765149) shaded = true texture = ExtResource("26_7nyv4") + +[node name="Player3d" parent="." instance=ExtResource("27_mqdni")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.110292, 0.0067718, 0.0825893) diff --git a/scenes/props/Player3D.tscn b/scenes/props/Player3D.tscn new file mode 100644 index 0000000..c380cec --- /dev/null +++ b/scenes/props/Player3D.tscn @@ -0,0 +1,37 @@ +[gd_scene load_steps=5 format=3 uid="uid://dbd1niu3tp8y5"] + +[ext_resource type="Texture2D" uid="uid://cvn2p215jq2am" path="res://graphics/testingground/concerned.png" id="1_5jpx2"] +[ext_resource type="Script" path="res://scripts/player_3d.gd" id="1_08wm4"] +[ext_resource type="Script" path="res://scripts/camera_pivot.gd" id="3_drcdp"] + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_1vdrh"] +radius = 0.0478421 +height = 0.234557 + +[node name="Player3d" type="Node3D"] + +[node name="CharacterBody3D" type="CharacterBody3D" parent="."] +script = ExtResource("1_08wm4") +SPEED = 0.5 + +[node name="Sprite" type="Sprite3D" parent="CharacterBody3D"] +transform = Transform3D(0.04, 0, 0, 0, 0.04, 0, 0, 0, 0.04, 0, 0.110813, 0) +billboard = 1 +shaded = true +texture = ExtResource("1_5jpx2") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="CharacterBody3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.119886, 0) +shape = SubResource("CapsuleShape3D_1vdrh") + +[node name="CameraPivot" type="Node3D" parent="CharacterBody3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.159723, 0) +script = ExtResource("3_drcdp") +canPitch = true +canYaw = true + +[node name="SubPivot" type="Node3D" parent="CharacterBody3D/CameraPivot"] + +[node name="Camera3D" type="Camera3D" parent="CharacterBody3D/CameraPivot/SubPivot"] +transform = Transform3D(1, 0, 0, 0, 0.871025, 0.491238, 0, -0.491238, 0.871025, 0, 0.658355, 1.24487) +fov = 28.5 diff --git a/scripts/camera_pivot.gd b/scripts/camera_pivot.gd new file mode 100644 index 0000000..6608b21 --- /dev/null +++ b/scripts/camera_pivot.gd @@ -0,0 +1,22 @@ +extends Node3D + +@export var canPitch: bool = false +@export var canYaw: bool = false +@export var rotateSpeed: float = 0.003 +@onready var sub_pivot: Node3D = $SubPivot + +func _ready() -> void: + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + +func _input(event): + if event.is_action_pressed("click"): + if Input.mouse_mode == Input.MOUSE_MODE_VISIBLE: + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + + if event.is_action_pressed("ui_cancel"): + Input.mouse_mode = Input.MOUSE_MODE_VISIBLE + + if event is InputEventMouseMotion: + if Input.mouse_mode != Input.MOUSE_MODE_CAPTURED: return + if canYaw: sub_pivot.rotate_x(event.relative.y * -rotateSpeed) + if canPitch: rotate_y(event.relative.x * -rotateSpeed) diff --git a/scripts/player_3d.gd b/scripts/player_3d.gd new file mode 100644 index 0000000..1bec08c --- /dev/null +++ b/scripts/player_3d.gd @@ -0,0 +1,30 @@ +extends CharacterBody3D + + +@export var SPEED = 1.0 + +@onready var camera_3d: Camera3D = $CameraPivot/SubPivot/Camera3D + + +func _physics_process(delta: float) -> void: + # Add the gravity. + if not is_on_floor(): + velocity += get_gravity() * delta + + # Handle jump. + #if Input.is_action_just_pressed("ui_accept") and is_on_floor(): + # velocity.y = JUMP_VELOCITY + + # 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("move_left", "move_right", "move_up", "move_down") + input_dir = input_dir.rotated(-camera_3d.global_rotation.y) + var direction := (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized() + if direction: + velocity.x = direction.x * SPEED + velocity.z = direction.z * SPEED + else: + velocity.x = move_toward(velocity.x, 0, SPEED) + velocity.z = move_toward(velocity.z, 0, SPEED) + + move_and_slide() -- 2.52.0