From 4d5db7bb618a783307312172650518d939de1daf Mon Sep 17 00:00:00 2001 From: Vaillant Jeremy Date: Sat, 16 May 2026 19:40:03 +0200 Subject: [PATCH] Make Main, Settings, ChooseScene, and gameplay run in Godot 4.6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Catch-all commit for everything the --convert-3to4 tool missed during a manual playtest of the game. All errors raised by clicking through Main -> Puzzles -> level were fixed. GDScript: - PackedScene.instance() -> instantiate() (ChooseScene.gd) - String(x) constructor doesn't exist -> str(x) (MBase, MScene, MLevel, Animation, Levels) - 'x as int/String/bool' doesn't parse strings -> explicit int()/str()/bool(int()) (MScene, MLevel, MSetting) - BaseButton.pressed (property) -> button_pressed; set_pressed() -> direct assignment (Settings.gd) - AnimationPlayer.add_animation() removed -> go through AnimationLibrary (Levels.gd) - PhysicsDirectSpaceState3D.intersect_ray(from, to, ...) -> PhysicsRayQueryParameters3D.create() (Levels.gd) - @export with type-hint-in-comment ('# (String, ...)') -> explicit @export_enum (candle.gd) - Get effective material with get_active_material() instead of get_surface_override_material(), with null guard (Levels.gd) - get_node() -> get_node_or_null() so missing items from ahog.json (e.g. sm_super_dager in Home) don't crash (Levels.gd) Scenes/resources: - Remove 14 Tween nodes from WarCraft.tscn — Tween is no longer a Node in Godot 4. Rewrite Animation.start_dissolve to use create_tween().tween_method(). - Rename property material/N -> surface_material_override/N in every .tscn (10 files) — Godot 3 -> 4 rename that --convert-3to4 missed. Without this, MeshInstance3D.get_active_material(0) returned the glTF-imported StandardMaterial3D instead of the project's custom dissolve ShaderMaterial. Shaders: - One-shot scripts/migrate_shaders.gd walks every .material under assets/ and fixes Godot 3 -> 4 shader code in-place. Fixed 17 materials: depth_draw_alpha_prepass -> depth_prepass_alpha, hint_color -> source_color, NORMALMAP -> NORMAL_MAP. Result: Main, Settings, ChooseScene, and the WarCraft level all run without script or shader errors. Remaining noise is non-blocking (visual_shader graph in text_outline.material, baked lightmap binary format from Godot 3, and empty animation tracks). Co-Authored-By: Claude Opus 4.7 (1M context) --- .../props/apple/materials/MA_apple1.material | Bin 840 -> 2344 bytes .../props/apple/materials/MA_apple2.material | Bin 840 -> 2344 bytes .../props/apple/materials/MA_apple3.material | Bin 840 -> 2344 bytes .../props/apple/materials/MA_apple4.material | Bin 840 -> 2344 bytes assets/props/book/sm_book.tscn | 2 +- .../book/textures/tx_Paper_BC.tga.import | 4 +- .../book/textures/tx_Paper_NM.tga.import | 4 +- .../book/textures/tx_Paper_ORM.tga.import | 4 +- .../props/book/textures/tx_book_BC.tga.import | 4 +- .../props/book/textures/tx_book_NM.tga.import | 4 +- .../book/textures/tx_book_ORM.tga.import | 4 +- assets/props/candle/candle.gd | 2 +- assets/props/candle/sm_candlestick.tscn | 4 +- .../candle/textures/tx_candle_BCS.tga.import | 4 +- .../candle/textures/tx_candle_NM.tga.import | 4 +- .../props/dagger/materials/MA_book.material | Bin 855 -> 2430 bytes .../props/dagger/materials/MA_coin.material | Bin 863 -> 2430 bytes .../props/dagger/materials/MA_dagger.material | Bin 921 -> 1708 bytes .../dagger/textures/dagger_BC.tga.import | 4 +- .../fiole/materials/MA_fiole_blue.material | Bin 851 -> 2348 bytes .../fiole/materials/MA_fiole_green.material | Bin 849 -> 2349 bytes .../fiole/materials/MA_fiole_red.material | Bin 844 -> 2347 bytes assets/props/godet/sm_godet.tscn | 2 +- .../godet/textures/tx_godet_BC.tga.import | 4 +- .../godet/textures/tx_godet_NM.tga.import | 4 +- .../godet/textures/tx_godet_ORM.tga.import | 4 +- assets/props/growler/sm_growler.tscn | 2 +- .../growler/textures/tx_growler_BC.tga.import | 4 +- .../growler/textures/tx_growler_NM.tga.import | 4 +- .../textures/tx_growler_ORM.tga.import | 4 +- assets/props/parchment/sm_parchment.tscn | 4 +- .../textures/tx_paperParchment_BC.tga.import | 4 +- .../textures/tx_paperParchment_NM.tga.import | 4 +- .../textures/tx_paperParchment_ORM.tga.import | 4 +- .../textures/tx_woodParchment_BC.tga.import | 4 +- .../textures/tx_woodParchment_NM.tga.import | 4 +- .../textures/tx_woodParchment_ORM.tga.import | 4 +- .../materials/MA_pinte_beer.material | Bin 838 -> 2353 bytes .../textures/tx_rock_floor_bc.tga.import | 4 +- .../textures/tx_rock_floor_nm.tga.import | 4 +- .../textures/tx_rock_floor_orm.tga.import | 4 +- .../spyglass/materials/MA_spyglass.material | Bin 828 -> 2339 bytes .../textures/tx_spyglass_BC.tga.import | 4 +- .../stack gold/materials/MA_gold1.material | Bin 854 -> 2372 bytes .../stack gold/materials/MA_gold2.material | Bin 852 -> 2372 bytes .../stack gold/materials/MA_gold3.material | Bin 852 -> 2372 bytes assets/props/stool b/sm_stool_2.tscn | 2 +- .../stool b/textures/tx_stool_b_BC.tga.import | 4 +- .../stool b/textures/tx_stool_b_NM.tga.import | 4 +- .../textures/tx_stool_b_ORM.tga.import | 4 +- assets/props/table/sm_table.tscn | 2 +- .../table/textures/tx_table_BC.tga.import | 4 +- .../table/textures/tx_table_NM.tga.import | 4 +- .../table/textures/tx_table_ORM.tga.import | 4 +- .../materials/MA_weapon_gun.material | Bin 838 -> 2353 bytes db/MBase.gd | 2 +- db/MLevel.gd | 20 ++--- db/MScene.gd | 14 +-- db/MSetting.gd | 10 +-- db/ahog.json | 40 +-------- developers/aurelien/CheckLightmap.tscn | 70 +++++++-------- project.godot | 12 +-- scenes/UI/choose_scenes/ChooseScene.gd | 2 +- scenes/UI/settings/Settings.gd | 12 +-- scenes/levels/Levels.gd | 42 ++++++--- scenes/levels/warcraft/WarCraft.tscn | 84 ++++++------------ scripts/Animation.gd | 14 ++- scripts/migrate_shaders.gd | 61 +++++++++++++ 68 files changed, 274 insertions(+), 253 deletions(-) create mode 100644 scripts/migrate_shaders.gd diff --git a/assets/props/apple/materials/MA_apple1.material b/assets/props/apple/materials/MA_apple1.material index 8b8b71f26e7d231de7735bab27f71d9672f9c44b..e9b07198067945b059bd67309f4318deeb005b1f 100644 GIT binary patch literal 2344 zcma)8TW{k;6do29Xt;}uxCsU%Anj(8ZHsu=YFQP!h?Taxr~zKBiG7j`*fVBkoKg@H zfm|IWOO=s3R)L&Wc_Spmli2;! zJT38mY$lL-6U&jel}jnfZL0Dl*u63<}cQ>V)yp2OBy?I{Uo zWi8@~GBE&s?&znAOnMd-?0oJih!-M5rGb61%F7*s1$jkYyxO7VDy@uiI-Fh5T_|nD z+a0-6(u-xFEb+mSS%jr{r^79^StO;!&jof$d0yqpC7Jd?8K5w)Od7N`F|L;VgARaQ zybg;k%~7bFsSoiQ7?~{)Q*x?YnUGPl95B4nqsJ4!(Icv&%yp;$Y@c(E;9EVNx$8jq z?iI{6obO-3??8K%{RlHx;i=95DQA8efsRL8pimqNGAVRfsM5!JjpYyvBel78iNpEC z78E_HA}8;o6>V1Jf_NTufVPjcl`5^PPWi-GSD-*(GgealSN}pW18X}8AU06^QNs|I z>#Qou^ZasQp%TzDN$IqW6~tv}=;x4>s)@tLu8N&dZ^1&ugmh0-KBLSE38f8QfR)No z@?SDkXzx)=Nd!WCaG9M}MisU)L40_b5USJLe1#^fy~fhs2x-RU=ozI;J+(#}PjDo7 z#xN$a_is-oyW(#q;ptNMgnV|Bx-UL&sGos}F#>&{O2JP`XG=d(Wtr2YXa<&_93Li; zv^!qY#93p3>uOqO;u^NRc-maYaBGgqog+~r0kiL5(B!qiG?E#WVTlwI=M?!Umue)_ zD$lv8V;dd}29?os)RbIN`l+mQCU47T^2PKVv@)I>lHA^ryqM$-g;pb4Z8I6o^@Qb} z=z6%jeeP$TTNPxhR;Q&C>vY9N1HrmX?>r$J5o-+#?-Wu&~xNA+-?)nNG-(aw^ zI+GYNi-JrTZp&W>TOHuI3UQt$mf=N^M&Er86I+K5zPNYv2vRlHW4D;eo#qegGXY|Q ztr~>-s2!tin2q(3gx#@&N)NS_$}586?)a9xDScsWSo%Qau(ePhbR>HOc|*3ajbt4F zM}F`4{&af((L>n8nfHfneriuU{ePXK=NS3=}`TaSsoqsZdxfp2>5Di(XMv+t_b4cLBQ@YVhi z7K`xnF&3NQ=M${8N&Y{?;yduqKd#;V>+$0|yoC7u?lx%ba;M=lt-EeC{1M)3dmQG? QhCar-8A$CZPw28fPjF2 zfPjF2fRK@;^V*VazrDBNF4-oRkiQyY#s_R~1dm|wa|dFm@Mvm{WWJuB{aTEvbMcX- zT>xbOX#iDq&!t5RL;o!fQy<-UQ49YMI8%{pzb0@eALTjPO3D8M?wGsIN2&gQ@#gqK z?3yKOUlcn@{jWG%8w;ExQ{7~3a488JQ}mL}^#6nZ5)SuKu8Tt1ZT0zYfZ`AAAQl(@ zm>_YFX$tuRP-slA`ocAXM^JV@#~xm{NH36s*LX>5C!9(ssTSqyeimn3ItIa=tff2K zg7?l=Us#fl&PLhA1LuA+R#g<4)^5|fKyxj)7L~E}{>OMXLu)gymFRI5lJvpp(6A^j ztt(+@GT)V1LTFo|C2ZzT6chsRAn-&(v$w(QgqrpHT%Hd%uBqbP5Mlw=o)55~hcvwdI zz&4s1*%B=cG56#sfQqQWAtOREB@!e_l5{WvLy$7F4iZ3QG0s8e6d_7YonikCWL7fX zHDbY#@xl@6?|0$(y>WtH7bq}PV6DI-Fl7OmyckV)DRy$F3q~1KeJ&qqDG@+v$3%Mt z@bcWKDuyNYVr6jeliin0Cf6$pB& z2QmN|sV0UJM|A{(dQ|H$|p4>A=EyR=qD6LTm{F@kD;lyP!Ja}F{dES`tieruz~ zo(SQh0@dx=dm|IWOO=s3R)L&Wc_Spmli2;! zJT38mY{rmz6U&jel}jnfZL0Dl*u63<}cQ>V)yp2OBy?I{Uo zWi8@~GBE&s?&znAOnMd-?0oJih!-M5rGb61%F7*s1$jkYyxO7VDy@uiI-Fh5T_|nD z+a0-6(u-xFEb+mSS%jr{r^79^StO;!&jof$d0yqpC7Jd?8K5w)Od7N`F|L;VgARaQ zybg;k%~7bFsSoiQ7?~{)Q*x?YnUGPl95B4nqsJ4!(Icv&%yp;$Y@c(E;9EVNx$8jq z?iI{6obO-3??8K%{RlHx;i=95DQA8efsRL8pimqNGAVRfsM5!JjpYyvBel78iNpEC z78E_HA}8;o6>V1Jf_NTufVPjcl`5^PPWi-GSD-*(GgealSN}pW18X}8AU06^QNs|I z>#Qou^ZasQp%TzDN$IqW6~tv}=;x4>s)@tLu8N&dZ^1&ugmjNpKBLSE38f8QfR)No z@?SDkXzx)=Nd!WCaG9M}MisU)L40_b5USJLe1#^fy~fhs2x-RU=ozI;J+(#}PjDo7 z#xN$a_ivBKd*W{<;ptK*LO#1m-4~xX)X%`g7=b=erQpYd zmFL{lu?-IfgUaYRYD%ss{Z!UDlec9v`C@twS{cs`Np5l^FD7|Iq1A|1+e}7tJz;q# zx*qOrpZl5TRt4Fr)oJO(dLBocx+b8$jW+Y}y3{71=gfkJw?>lV(ak17x#`HL8``j*DYppr}@MBOn}&6 zs|KMyYR70BW@CLMVRzR-rH9%|HOc|*3ajbt4F zM}F`4{&af((L>n8nfHfneriuU{ePXK=NS3=}`TaSs!QDpJ;z&Aa26^p&s*>_dz25dht_-g+M zi$(bP7>mvD^9k14B>x{`@g4Z*AJ^{w_4x4}UPAnScN;Wzxzq5O)?GIm{s`~2Jr46` QL*K=_8A$CZPw28fPjF2 zfPjF2fRK@;^V*VazrDBNF4-oRkiQyY#s_R~1dm|wa|dFm@Mvm{WWJuB{aTEvbMcX- zT>xbOX#iDq&!t5RL;o!fQy<-UQ49YMI8%{pzb0@eALTjPO3D8M?wGsIN2&gQ@#gqK z?3yKOUlcn@{jWG%8w;ExQ{7~3a488JQ}mL}^#6nZ5)SuKu8Tt1ZT0zYfZ`AAAQl(@ zm>_YFX$tuRP-slA`ocAXM^JV@#~xm{NH36s*LX>5C!9(ssTSqyeimn3ItIa=tff2K zg7?l=Us#fl&PLhA1LuA+R#g<4)^5|fKyxj)7L~E}{>OMXLu)gymFRI5lJvpp(6A^j ztt(+@GT)V1LTFo|C2ZzT6chsRAn-&(v$w(QgqrpHT%Hd%uBqbP5Mlw=o)55~hcvwdI zz&4s1*%B=cG56#sfQqQWAtOREB@!e_l5{WvLy$7F4iZ3QG0s8e6d_7YonikCWL7fX zHDbY#@xl@6?|0$(y>WtH7bq}PV6DI-Fl7OmyckV)DRy$F3q~1KeJ&qqDG@+v$3%Mt z@bcWKDuyNYVr6jeliin0Cf6$pB& z2QmN|sV0UJM|A{(dQ|H$|p4>A=EyR=qD6LTm{F@kD;lyP!Ja}F{dES`tieruz~ zo(SQh0@dx=dm|IWOO=s3R)L&Wc_Spmli2;! zJT38mY$lL-6U&jel}jnfZL0Dl*u63<}cQ>V)yp2OBy?I{Uo zWi8@~GBE&s?&znAOnMd-?0oJih!-M5rGb61%F7*s1$jkYyxO7VDy@uiI-Fh5T_|nD z+a0-6(u-xFEb+mSS%jr{r^79^StO;!&jof$d0yqpC7Jd?8K5w)Od7N`F|L;VgARaQ zybg;k%~7bFsSoiQ7?~{)Q*x?YnUGPl95B4nqsJ4!(Icv&%yp;$Y@c(E;9EVNx$8jq z?iI{6obO-3??8K%{RlHx;i=95DQA8efsRL8pimqNGAVRfsM5!JjpYyvBel78iNpEC z78E_HA}8;o6>V1Jf_NTufVPjcl`5^PPWi-GSD-*(GgealSN}pW18X}8AU06^QNs|I z>#Qou^ZasQp%TzDN$IqW6~tv}=;x4>s)@tLu8N&dZ^1&ugmh0-KBLSE38f8QfR)No z@?SDkXzx)=Nd!WCaG9M}MisU)L40_b5USJLe1#^fy~fhs2x-RU=ozI;J+(#}PjDo7 z#xN$a_is-oyW(#q;ptNMgnV|Bx-UL&sGos}F#>&{O2JP`XG=d(Wtr2YXa<&_93Li; zv_D?c#93p3>uOqO;u^NRc-maYaBGgqog+~r0kiL5(B!qiG?E#WVTlwI=M?!Umue)_ zD$lv8V;dd}29?os)RbIN`l+mQCU47T^2PKVv@)I>lHA^ryqM$-g;pb4Z8I6o^@Qb} z=z6%jeeP$TTNPxhR;Q&C>vY9N1HrmX?>r$J5o-+#?-Wu&~xNA+-?)nNG-(aw^ zI+GYNi-JrTZp&W>TOHuI3UQt$mf=N^M&Er86I+K5zPNYv2vRlHW4D;eo#qegGXY|Q ztr~>-s2!tin2q(3gx#@&N)NS_$}586?)a9xDScsWSo%Qau(ePhbR>HOc|*3ajbt4F zM}F`4{&af((L>n8nfHfneriuU{ePXK=NS3=}`TaSsoqsZdxfp2>5Di(XMv+t_b4cLBQ@YVhi z7K`xnF&3NQ=M${8N&Y{?;yduqKd#;V>+$0|yoC7u?lx%ba;M=lt-EeC{1M)3dmQG? QhCar-8A$CZPw28fPjF2 zfPjF2fRK@;^V*VazrDBNF4-oRkiQyY#s_R~1dm|wa|dFm@Mvm{WWJuB{aTEvbMcX- zT>xbOX#iDq&!t5RL;o!fQy<-UQ49YMI8%{pzb0@eALTjPO3D8M?wGsIN2&gQ@#gqK z?3yKOUlcn@{jWG%8w;ExQ{7~3a488JQ}mL}^#6nZ5)SuKu8Tt1ZT0zYfZ`AAAQl(@ zm>_YFX$tuRP-slA`ocAXM^JV@#~xm{NH36s*LX>5C!9(ssTSqyeimn3ItIa=tff2K zg7?l=Us#fl&PLhA1LuA+R#g<4)^5|fKyxj)7L~E}{>OMXLu)gymFRI5lJvpp(6A^j ztt(+@GT)V1LTFo|C2ZzT6chsRAn-&(v$w(QgqrpHT%Hd%uBqbP5Mlw=o)55~hcvwdI zz&4s1*%B=cG56#sfQqQWAtOREB@!e_l5{WvLy$7F4iZ3QG0s8e6d_7YonikCWL7fX zHDbY#@xl@6?|0$(y>WtH7bq}PV6DI-Fl7OmyckV)DRy$F3q~1KeJ&qqDG@+v$3%Mt z@bcWKDuyNYVr6jeliin0Cf6$pB& z2QmN|sV0UJM|A{(dQ|H$|p4>A=EyR=qD6LTm{F@kD;lyP!Ja}F{dES`tieruz~ zo(SQh0@dx=dl|f=zr%hQzB~o>2vftDvMdBk=+@K6Sbb;w5a2)t-`Y zTGk?-C=&zFXO4cV$fT!H!Omu$f_Nn|R2tY9tGwPJSdf?G#hV>kuF}dVr^D$v-MP|6 zyx);KAw6FN$`T(OnR!@<4?5gZn|V@N{G4N_l;>5hT#{)YlmQB}%A`SC6XR;xKj;A1 z#oMsh(j0}#nfefKfsxq)F(oI;l?fR&%>lz3J$gLxJ3XQ*%3OyE!1g(32)@_TnYj*x zA6~*-!TIqe{0_92*^e-D6`tq}kaFf15$JfdISR$0Ad^Cug(`il*H{j*FjAXampGhH zY(UYIDsu8ZTG3`nE{K;w2WWdpTdC5z>Xc86bp;9pHe)5#fAudEGqAFg0Ad5hA2ked zxlXI1Jj*W^7AgTflax-|SV3HthJFr7shT)^?5fxa^%g8dOi1@wTXhS^vjN!Z(iOx<8rRfAkPGapt{Yo1fa#RzG1lRx1)S&qu2v`0m>SSh+kV1l$Rs7hfl)-{K|z z3>t!`+&9XHhkWHe(18R~`4fQO{FM+nkLxk9dl*@KJ@8G>UBzM_b@pA=x&hk{48Gbw z#bObDKEq-&{CtkJGRgmkSbPWm`Nx&Je?5JAhnEn)-`xa_U2Zjerghi#hCjl4Wsk$W R(a^W?ZU$0&%42*Z{R^!28fPjF2 zfPjF2fRK@;^V*VazrDBNF4-oRkiQyY#s_R~1dm|wa|dFm@Mvm{WWJuB{aTEvbMcX- zT>xbOX#iDq&!t5RL;o!fQy<-UQ49YMI8%{pzb0@eALTjPO3D8M?wGsIN2&gQ@#gqK z?3yKOUlcn@{jWG%8w;ExQ{7~3a488JQ}mL}^#6nZ5)SuKu8Tt1ZT0zYfZ`AAAQl(@ zm>_YFX$tuRP-slA`ocAXM^JV@#~xm{NH36s*LX>5C!9(ssTSqyeimn3ItIa=tff2K zg7?l=Us#fl&PLhA1LuA+R#g<4)^5|fKyxj)7L~E}{>OMXLu)gymFRI5lJvpp(6A^j ztt(+@GT)V1LTFo|C2ZzT6chsRAn-&(v$w(QgqrpHT%Hd%uBqbP5Mlw=o)55~hcvwdI zz&4s1*%B=cG56#sfQqQWAtOREB@!e_l5{WvLy$7F4iZ3QG0s8e6d_7YonikCWL7fX zHDbY#@xl@6?|0$(y>WtH7bq}PV6DI-Fl7OmyckV)DRy$F3q~1KeJ&qqDG@+v$3%Mt z@bcWKDuyNYVr6jeliin0Cf6$pB& z2QmN|sV0UJM|A{(dQ|H$|p4>A=EyR=qD6LTm{F@kD;lyP!Ja}F{dES`tieruz~ zo(SQh0@dx=duwx16gJQTS)hQps9XdF3D~5Y-6nxQjZl>|MO129lr8-`^3Hf?-Okv9?b#3z z5wPo^jLSo>VV`{j1LiT89NGHH*6msW|Q zHDc@~%>HSgDEuFj32bg+Sm{h{Q<)Sd6-DAr;!>$4yV2EYQA&0llGJ39y@H8Lt*ShG z4O4BDlZij88WSgF#s-kjt^BE$Iz0;xWXM{hm;iRiS*1#P&7k z8T_ER{$cq&g!x{uP+e`Ou(5*DyvLj5YbZ0pM6q^HVzj~RX7RF6e>h4QSON-W->F3 z!|9UF1Esby`7aw;D(AqZBqV};b`?&v5v8fMXP;kX1a>-8EOE%1RRgszg)}2NI?B?O zD@BlYr5CUg<>N_%xqHNR@P&48XEH%{q<53bn#xTwk>|)pyY}ikIlMRaxrn`o+7-ct zHUfwpc1R5aPglCjp1pcmy2t)#rQblgK7_Juer|Gnkj#vEK3+-K-z@+!blTMPMNDZ> z7}wDz+l0{>#ah#mnoaw5R>jQO`=>EX`i`8xB$2+yNiQ{Yal z=W#?5v;p-oB8RZ*LTQiFt8+QLJ=(prT!dpM_~Ln*b>C`^OKa(+7_q0TX-P8^-!H zD{b`)hHXWYPfEFTWGcKcYYHhssMvQo2mg zo9-Jy^CUJ0Qqdm`-5Kaqk=ZAmdDpc$fbptAmxM1c$b_CRF$jj9uP|1S^gYC&e^bVO wzuO&~kdWO9V+-@E>~29$p^Y$BxD@VoD<9)cSbyHU_VmW~Uw2nwpWx>8FPyQ&W&i*H literal 855 zcmV-d1E~B`Q$s@n000005C8x?2LJ#+0{{RhwJ-f(JO-^90467VINIrKsPMy;0$%`T0B`^m zWXq}#wsf_T^k3pH71EU%wekOeGbOn;Yyy81QpQSKsrg^PA9Gg>QmX$?yjemLKX=XA z8O3i>|0B-V%8IjOs@<$EE;XZLie|H!{0SY_GT%oznIGr+7EVYcsD_vouW{oDB_Ea%tTe zNt=%*)Y=FK<%nI|pemu&JX)JTaj9K&lAz3{3G_IQw&8OzW>n)a#oSt0T-UPnIjds) z8ozl>pt!Iu){U{3ii!9GOn7*w!-1T5`l9gOAz|Sh8UJ`Z9zVplsvVIKN4cstA}S)4 z|Ck5=F%CXHXjHI3SakTmVX)wX!=C`b|IB|16c;FxjHUcP@C_O*)Icg+Fag2PbfBb^ zh(skPB%F-aI2hNq>YP_MjkeMGWN}L%+S#zIG)`v9OdyOls%R(FQbtHZOh7UdXv4C? z(S%xN($F@VD*39GlG=j-fQ+cIp(8UgBqEX|NjfkBLXd)19TLD(F^`grDFGE~iVB5c zzXP+)+Vr>x23A;793L234IXr7MkNDy`vb#B<^-Wh`-UB&3?=~zve&|yPYMjg6+GZ` zp%|`Yz0f@R%AjAkv`pcxxSLs$(I%?RaqZhHguoM>I6_kP8&kZ=LvtXJ8sWNX5w>+Z z2H{0w0B%7f)uK`2s175+o4rYmXs9KUGh&r5H`so7$2PJwq;cpBB1k|0(|`Yv)iYZfcOPedLhaLf?d~WM4(%TJRzv3I)L$49?%VFPUBS+ zjY8%LWu&5rc;PqxC(SflBk1)hh_e6`3iN{v2?sJl(@x-kx=f29l4`ICJPq~h$dlq+ h3Uvo3d0M7i?IZW8^hdNyd4;PM*L+X7Knzk-Lqmx_knsQj diff --git a/assets/props/dagger/materials/MA_coin.material b/assets/props/dagger/materials/MA_coin.material index 33aab1de3947bc8ecc1f4ae6c81cc15498494568..5d3b8fac2509cf63ca44fb3d3cb84a0339e3b54b 100644 GIT binary patch literal 2430 zcma)8TW=gS6gHOvS?&TVZUR#Y*d*KCCV`hms7jh5Dm5+27G6i*8Skvij6K+%4FMtX z2LFq9UU=e{@Ce`W%sP`v7BP}{Jm>QH_?*vYeKI|{%i8Bzyq{~wt9VZrB9r!5cxja= zS|i4u!R(**iNgOenZV|43@e?fZ7P$(q@qZ?Nn9$mWUq8}T9lGqgCsSXWY1&bQmZP@ zUc^)zZ}gnXv)nb1T2ErB2U+gPG5r^z7xJ5UHoN$mO+;z(Bl|j=j;56(X&* zu*#oZ@XdwN?A?ytsZ{yG%Peu;N}c-!d#|Idl+KgN;OBxml|@k(!X}w=UT9=tUhC8= zqeEO#{X}`BoxKIbD6`VnRyUh?6N=1~h$%T0wo0THvjS;&y(bSlzTOjxvMQ9Xk=VZG zJcIA_eCD>3!uQuGSLyt4jlPrGb@(C8#KKdRA*EFLMM!kmS`MOE5HcxMRf@_5z6Lr3 zVx*=pHnG?r+km5!qAa9y0Y&Mhw4S{LIg+-AvQ;8&SSMVfjV(bCU^(J{Pg~P`e_y z&_)2U!w#uo;OR1zmUuRwz;dyjx3fzhH zJdQ|$HlRL6t5PU48q z*iReF@M4li-+T**je`e=_l_RHs>$`(<}<$4evm&2U^dujlF)3m0~*6@(MKG(V+)sF z)|R5EB^-CgxA;x&N@M)Od07o3LbK5k?+N%ek7*n6CIE{3-tqnE^!}rVz{H;ShOs`) zN?ZMcVO!B8RGzlhq~PnX4uG;gCIs9Gp%-5#rk}%gflfa4%P)oV59!bQf%1}(lr9tW zru#T@B=sn$26-iTrao;W%sLC!)q65HgfP9Gl}hlQwb&IqI}&C zDss zR_%y{ILcNcE25SEmSdNBQr82B9bIYIxqr4kaA`n62Mb2 zkCKcj0TpVB3WZ_61GCM7>Cp%(R}?88KN(pK3v}m0B_mjibGt>#M4-}p!{(u^C1DA& zYvIf%#RMV?9`J`yv{$fRHjR2?_-8L(X7n!ZYLvvZh;MUT>-Gi^e4=CLNWy-<3N-m? z4&+fIWK%6-wB08lyhsko9*CqGG)fTF0VKZf8+AmJS|&R{9J1vGYY+e6MxKGRLL4sO z9Ecb$aujSX4yE<%8`82mz@{`}HNPpqueU$1MQR4X|9@!&tLO)6U2zcsjT)9N>c+Ug z0)cKobNa5LXcRCHlpzttMHhH-zck+rIDWp3P${~3uvlhN zk&Sh+f)CH-yfEb5I;RA1WVR5@Gb3-;c}?c3U^=}N>mvma9|<7Hedt&>E5dH8wM|aZ z1no0)&6G}OzT9vcUNQOnD1Htqob#n_(0HC@43glJOeCEsniuIA6rV0c{E0fL z=q~lA%2vD+d^FF?OsJiGdQ;o~*x-bQ4YRZ`%&n>{f|xdZ1)P4hRO{QD*SyX$$qfzL zoH8q@*Sv#zK7lGm5dVsy;>A?d+l`%n!UZT7uDSvFMbSd02|ZJMnv25JH|fu)wo+(3 zh>(xxQomW$#>pu_)Vlp|z5OA0Ic=J1I-y&Bf&0+_Zc)t@!KJza8fbd-1_j)vf-RM* zEqFE;uyMQDrXQ%zr8F~bL|G3AF3|?980dQ%%GRKc05b0l4#(re;Spd$&L8VR9~Wt> zDj1{{T&(h#nk&KaK^IVN=LCdTC{*~Za*Aq$-j8m-f4B#D?PeQjj)o`S4~}}{v9)}$ zwX_^K^Z2HidzbdLe#dSCNmdD)46*<1b|{IhEwg6Ckyw*nsmZ1`*A s#f}Xx0G#`~#NGr5^AtLcH9z9jgX?F0L`+=2@FPA3xW*Vbj^Lg83-v|${Qv*} literal 921 zcmV;K17`eEQ$s@n000005C8y02mku+|63{Ic~6ii{V@gCsg%*@P8Dgz)YOaWy8Yyfot8B4#| z6&u4Yj3D-68TwD)Avac@o5k|KfwwjL+Gr0P(pXy)@wMpx0*Br9YOz}OKgMm(7;5-3 zdhKR4q}Kld?~G@H_iW2PdY@#A%GXxisO|cH!vBm*jjskWJ2#r~g;y%6^(Kwh z#;hr9kYp<3%G!Hy%i6o6o@lJvs}1LZw~cgS_nKX=eOk7GG|nVvmCk4RKZ0A^GLy)~ zNfQbuiQL)Q#Wmz$q@rokm{cNtO|F-z3`s1Ji*q70YD+C+TiqEkx8Ym|t3@uWG!*AH zO%-ejVjJO;a}m~NLz+#MK$6%!aa=2R;Xk zj%%#Ag`zfo0h=72kLUk|g$kz-0RjjWzk>#xQT)u-I{z6w#Z;XL8Bs2d1ZJbbY&;!~ zG*urypA4sC#7D;?O;v?baTmwoq0wMUWH!>Y!Cf4tgMo&Lw#j;5jRh1$!@!=-YBu!NY2f8Zd;yNNSAv73isw5^p0)U~Y!J#8FG9;2D zNs=@MFako5VrD!NpkqCaa*8Q3WHO4=f@Hq~zxd)k0}smU6Tntz7C>1`M5+FAE!TCm zJ>+7r*FM9fqIW#TH1Pd+CXo|Tf2IN2yCD;iZo(VzY2wTI7j>_DCDOi#+=P9-GbE(_;@fVOW z_?%vb@ vEsBx6L20;;RJ26K88=c`!hlMqWy&3BWGNM>NU<}oGIeonJ8lDaQd2`i>(8w$ diff --git a/assets/props/dagger/textures/dagger_BC.tga.import b/assets/props/dagger/textures/dagger_BC.tga.import index 6118372..55c3690 100644 --- a/assets/props/dagger/textures/dagger_BC.tga.import +++ b/assets/props/dagger/textures/dagger_BC.tga.import @@ -24,7 +24,7 @@ compress/rdo_quality_loss=0.0 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="" @@ -38,4 +38,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/assets/props/fiole/materials/MA_fiole_blue.material b/assets/props/fiole/materials/MA_fiole_blue.material index d052b4f43228fe5b9aaa95e9d70e41025370c505..d31c3dbd26c75fba0b52f33b3229f5725d4baec5 100644 GIT binary patch literal 2348 zcma)8TW=dh6do=GV(#K1Zh`@EaZ=ZA5}p!Tl#(JUH7$yP*VTA^Y!B?tEHkqX0afCM z!G9_*x)uLFO$iN8Xk$r6jYd%93CcpOPW*Qk!Q~PT~qEshyH|78{>BT?Fwww#I5t zNjNPk5l=J~J`i$f!vM7+&qr|4K0fD?14wHcE^Uik(nx!9v7@bdOXvp{W%TN^86T zE2X34|70lF-lLY12!#0XB0G(Y%57K zbdW?6@>bGtMHdfhD_mRSDjQE?%Zn$@6%4rgsN6jgbrLZD_Iq`1b4(;Tr6MelX5zde zC&fYyWLjn!H+F2r{a&v$dWO1^OG-bNRo>*Dtfya0(S9T2xhcu*9Ln>FUQ=i^qSYpw z(OgGZ-iWUI+nZ;8W|>t%HfmLBTCtwR(WI{qsB5FiKD;ip3FtdBr~dW9&YHW%ROPO# z!148ZORJ|6V`iR{3H?p^TW_NU99JUFQ^(Rj57OZKA7EnR;O?#4hxZ{>VLf#7iQKCH zus#zY*4wB+sE*n)+JsqKA4u38I;eC|TPhS36t{=hYxMJA;_z; zfo&kG066m7M|Z~KJNNIwCeFOuZ}L-l+Uh0@$7)1k=J{w91mAvh04tZrgn(NibmD8p z^dMgJPoN=q(tWLbxX0J-T^&d;l|KXc&0h+U^IbJ6b`B$puL!>FxvN<0{noy%S~Xzv zk-^vdCs-`P&!<>yhM&){Rwns>AB*q7zaBok@#i03-2D5|qnkqf{^cfU>~gE-Gp)U@ Z*8Bn9D|;N~wVFP}yB!MJ$_6q$kK=B8Z zr#%!Na*=V603`lFQJ%kIf@7N17p@yzg0lNr?BTVGG!r#=jhVz&!l{I^a#6nShw;Xx z#Ui*Awsfac@ZRa_3s3UV=_p&#z`37{S0zQJwcW%r(Oe8JMrCxp|25vt5Zlb_MS20& zlci|_;dp466qnYOaJ2c*fLbE~p$sRs{i*R?&C{BNic1Zna`a+0O&^P)X!}_X!mMf> zrqk^;;X0S4mb>a?tFa}q=>zxGo!xlCR0@m#0FKe}4rfs0+z1NQ7{yS&5!F-DNpWmOiwzX<=!c%#@iv98E-`9Z*vt zDamj$l9@i678Z^M)H2hDw$aqc7-{LK1%QaC(H$d0G9(ftNs@Fh0z#BBvknpfWHHb| z<`f}HO`T!?4X2{Mha&{XtC$nO7vBzVvFLrVVj}no08-@@NnXoFkPh5h=x03b!4I dowQ83*oV`n?2kB0d5)_V*S_;m;0{t#Lqo&}j*kEU diff --git a/assets/props/fiole/materials/MA_fiole_green.material b/assets/props/fiole/materials/MA_fiole_green.material index 1fb866adafca990192945737aa409c45504beff8..f1d76a83d757b0c44f628b1a443da18e76e178c2 100644 GIT binary patch literal 2349 zcma)8TW=dh6do>x#@xk4+ynzs!AV`aNqA~RP-u#%)U+t3eO<=uV|!qCW|^6F2nfU@ z{7d)?m1_jsYE@EH*Spp>(D?#A{$oZH}0d6XlA8jGAPC;gt?Op7@OpQRPLZLkVEJoHGR9>gdc| z3&M9VVXokO{}O%++RN-mn7Im1^c0YC<`)s@c(geR#i1aRTo<`2e5}`44zVy&n^~7Q zoKI{((UZzE@;+M8W=SrH=RpT(yGUE1(yHo|PmFar3IsM|B~^d*j}$YovXcN}1I6z& z3~{+m%DgzsFBcXn0X>rxPTN>PT$YA@2uY#pIDG7?*a_7ZEJRF5_efDw8jgt zQaVchONMgoJ!&b5K!^`6veU?@+?FPY4=)lzb$XjE(PWj^SlVkLO}HFAqjaIC#z^f6 zjs(vb#w7Oste6+`?|o8jUbSLt{XTV6bJu3*B|XXW;hD3pK!xYw(bn`0!&DHUOXJQF7t zNhua;Ak#9-xU*v~?)7@5(K8g5TvGaptP&@0$$I?79PKqSp1YFV&Y?V?={1E$BU)|J z8O?Qs<)_hge|z)H&n&Yl$VRQoO)J*3IGX&`0d;LO>4(>aHUW)i=G4DA*jaPen5x`$ z6*#_LZ)x>ZV$RHSGNHdIf9h?tfa6lcdFojD=Rq1gd;}942lqa|bNB#K71l#HpUAEH z59>1lV!e$DgzBg*qfMB#^?`)lp@T{XwWZ2Rg5vh@ro172Zf#ijKt;c?P#tt2I|O-M zHn0t36#z$m=jiTueD}e9*ur`1@~H_y2nQc>m8ozS$Sz*UvUVW0zYspK0xN az2*<_UfJU?Z`AZ5-t|;!PI-(ErGEjDbgM@I literal 849 zcmV-X1Frm1Q$s@n000005C8!31^@s#0{{RhwJ-f(@&$bv0EVW0K_IOr9Z~=%073vl z073vl0Neny_WxV5?YH+f+$Gy2k;?0wkfR6Q9s(~$H>E=HY4B(ZFp~LtdiHBEW|8Q7 zmI7V?X8>vd*Hx|O(xio>{}+d;k8aGWh5rYftH`xq6SyTGs*#v?y8fm#+Jk;58PLGcH;?CD=hv4IEIIJA~Pj92STA5qZrCJqIya?sjl3;6eSWG zRzfTPDzyQODf8>LS6C*J(DMm6#lu(f1f2PBKjg*%ciab^RBe;l;_GzFE98N$S znvfI~lTgS6rG#UlHO}PPSCta$*3mpV9~s<|hjunCERBrGLP8`GBuSEVFakrADzgp}AY?JnLB6|9$yqpC415f__@y__;&SU`+zk^26~3;&QAmyc`CqEdxI>wwsfh))+H$s{vdF7T(kmRMSV9ms^`V z$XR$iAKm@cMvGk%TSXOAfkX5i^yxuZ*$v*bGv=U%(!7Q|4-N=>P&*yLq_{_+vI9XU ba317#@xV8g6lDIRpa;NW0l&+wz6202R83mA1R60lr!j`%N-n&zPBUN;xEc z2K-hQ!SjwC*L7NirHLo+JKli2vw=`x6?u{BnEO2S!L zi+G|;3_zbd`mrLDo<#*apL+`8*~n07U|+2ALWf{MUXd3sb!fRtE2EqaXBTuAN*nQd zNA8sLVi_n)d~jqIVJY6|a7%3#NonzOft^yGSGjUYrhQNbD9kI925n7@t7U($17H`g zz+y{t6e?%xL%a+|W(&lWoGMo)WYjDN3@`TR@x-t8h^i=a9V!6Z=bR(>T2E*0IuO2j z1#=DO+gI>A&|YOf!pv28sxv^!nO{brLBX@eJFrE-+~ zmkbr!d(=`Afe`OpW~Y@=g{@2w?_MT^>hv~Wp~-5mv9vcrnsGULM(I*dt&zqP90{H= zj7jYM+mp$z_=`z+y3{@K-cy^@eR0@OKL!(H1o}Xgf}fPmmVPqVHm6C^3@kr6K1?Dh zag>eMWbtcbgiC8$C*x6UdGWxxhWXZf30O53fsY0@}_jXn1S1x8bfeRlDmeaD0Qo z%IZvF$}9>pVYn@S8Ekcc<3hxFnplPxK^lGg9ZYN;-uwK{(E~`;SdZOeCU=@Ytj`39 z4Yq0!>Z5jywqZ8bM-q0&4k|s=Rw}Ouio4@m@}~5KwPEQ4mBZFTebABY5#$Zo!Zwn1 z037+9wI|9>OfUVCrB+@v+RN$C}WI3|)_%{gXlf6lO>MMs=oQ@7ZVFSTTbrOsVj zmI7S>W&mgaRdo-hMGHg!EiO|Z-FQ(8|6`n~$hBV&xRa0a9BrlKe*t&QUFV}z|G#*1 zd?9wtlC>|2ouvL(oUM%n&XK8ZvNpJsgpDbB$!7Xr<3EJMeU$5}P%;w4EQ#}KsrT!ZkUScmCsTTQqPW~pmc zo$MGpX-OWqukLKdQ>Ic>{1g8H{KDlPj%jNpDpOk%L-|5ePf6$0mAiMEM%qFeT0SlR zDIPdrumD4dUqi%*3o|n%5+L}m>F_^eCFXr1PnQ1&4x)pRu#ycNQc5^BA}cH?pAU-4 zNrwVsoyoPUDy7w|gMD~_TyRGo>cM$&VI7U6kvtp>B%&T9jK$<6LrRH8@^D^UIvWzE zkv=farbf0zOGC^(Ig+H1PJoH1!5t$)LM0L;Ns@Fh0z;H4vknsAgE7!S#uOn+O`T!? z4X2WiQTs+B7$3776?`amdlD8I_gxJNjA`2^upyWQh)mv0EW89fX{QTDDGYs99*MqC zQo?1zvI75dZd4e?(MdHJAM&8ax z!~U?*&5nqb@&}dI*?b3mdJtAhgE#Grsi@&J+adph2Vo!7t|NdH_bC)gAa+uYWxgCu WpQ?X^TFR@WTB`XKwZR=yQ$s^Q1AGYp diff --git a/assets/props/godet/sm_godet.tscn b/assets/props/godet/sm_godet.tscn index 4a51c5d..d129adc 100644 --- a/assets/props/godet/sm_godet.tscn +++ b/assets/props/godet/sm_godet.tscn @@ -7,4 +7,4 @@ [node name="sm_godet_lod1" type="MeshInstance3D" parent="."] use_in_baked_light = true mesh = ExtResource( 1 ) -material/0 = null +surface_material_override/0 = null diff --git a/assets/props/godet/textures/tx_godet_BC.tga.import b/assets/props/godet/textures/tx_godet_BC.tga.import index 6d9e86c..beb4cc4 100644 --- a/assets/props/godet/textures/tx_godet_BC.tga.import +++ b/assets/props/godet/textures/tx_godet_BC.tga.import @@ -24,7 +24,7 @@ compress/rdo_quality_loss=0.0 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="" @@ -38,4 +38,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/assets/props/godet/textures/tx_godet_NM.tga.import b/assets/props/godet/textures/tx_godet_NM.tga.import index b053b70..5c1e152 100644 --- a/assets/props/godet/textures/tx_godet_NM.tga.import +++ b/assets/props/godet/textures/tx_godet_NM.tga.import @@ -24,7 +24,7 @@ compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=1 compress/channel_pack=0 -mipmaps/generate=false +mipmaps/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -38,4 +38,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/assets/props/godet/textures/tx_godet_ORM.tga.import b/assets/props/godet/textures/tx_godet_ORM.tga.import index 79cb16e..1b625ec 100644 --- a/assets/props/godet/textures/tx_godet_ORM.tga.import +++ b/assets/props/godet/textures/tx_godet_ORM.tga.import @@ -24,7 +24,7 @@ compress/rdo_quality_loss=0.0 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="" @@ -38,4 +38,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/assets/props/growler/sm_growler.tscn b/assets/props/growler/sm_growler.tscn index bdc1da8..567c379 100644 --- a/assets/props/growler/sm_growler.tscn +++ b/assets/props/growler/sm_growler.tscn @@ -7,4 +7,4 @@ [node name="sm_growler_lod1" type="MeshInstance3D" parent="."] use_in_baked_light = true mesh = ExtResource( 1 ) -material/0 = null +surface_material_override/0 = null diff --git a/assets/props/growler/textures/tx_growler_BC.tga.import b/assets/props/growler/textures/tx_growler_BC.tga.import index 48f1181..546c2b5 100644 --- a/assets/props/growler/textures/tx_growler_BC.tga.import +++ b/assets/props/growler/textures/tx_growler_BC.tga.import @@ -24,7 +24,7 @@ compress/rdo_quality_loss=0.0 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="" @@ -38,4 +38,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/assets/props/growler/textures/tx_growler_NM.tga.import b/assets/props/growler/textures/tx_growler_NM.tga.import index df46a5b..fc12520 100644 --- a/assets/props/growler/textures/tx_growler_NM.tga.import +++ b/assets/props/growler/textures/tx_growler_NM.tga.import @@ -24,7 +24,7 @@ compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=1 compress/channel_pack=0 -mipmaps/generate=false +mipmaps/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -38,4 +38,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/assets/props/growler/textures/tx_growler_ORM.tga.import b/assets/props/growler/textures/tx_growler_ORM.tga.import index d506ccc..b350bc3 100644 --- a/assets/props/growler/textures/tx_growler_ORM.tga.import +++ b/assets/props/growler/textures/tx_growler_ORM.tga.import @@ -24,7 +24,7 @@ compress/rdo_quality_loss=0.0 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="" @@ -38,4 +38,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/assets/props/parchment/sm_parchment.tscn b/assets/props/parchment/sm_parchment.tscn index c6a9fa3..a607357 100644 --- a/assets/props/parchment/sm_parchment.tscn +++ b/assets/props/parchment/sm_parchment.tscn @@ -10,10 +10,10 @@ script = ExtResource( 2 ) [node name="sm_wood_parchment_lod1" type="MeshInstance3D" parent="."] use_in_baked_light = true mesh = ExtResource( 1 ) -material/0 = null +surface_material_override/0 = null [node name="paper" type="MeshInstance3D" parent="."] visible = false use_in_baked_light = true mesh = ExtResource( 3 ) -material/0 = null +surface_material_override/0 = null diff --git a/assets/props/parchment/textures/tx_paperParchment_BC.tga.import b/assets/props/parchment/textures/tx_paperParchment_BC.tga.import index 0eb493b..1a8b8a6 100644 --- a/assets/props/parchment/textures/tx_paperParchment_BC.tga.import +++ b/assets/props/parchment/textures/tx_paperParchment_BC.tga.import @@ -24,7 +24,7 @@ compress/rdo_quality_loss=0.0 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="" @@ -38,4 +38,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/assets/props/parchment/textures/tx_paperParchment_NM.tga.import b/assets/props/parchment/textures/tx_paperParchment_NM.tga.import index 610327e..dff77d8 100644 --- a/assets/props/parchment/textures/tx_paperParchment_NM.tga.import +++ b/assets/props/parchment/textures/tx_paperParchment_NM.tga.import @@ -24,7 +24,7 @@ compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=1 compress/channel_pack=0 -mipmaps/generate=false +mipmaps/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -38,4 +38,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/assets/props/parchment/textures/tx_paperParchment_ORM.tga.import b/assets/props/parchment/textures/tx_paperParchment_ORM.tga.import index 9cddc9a..7b6f8b2 100644 --- a/assets/props/parchment/textures/tx_paperParchment_ORM.tga.import +++ b/assets/props/parchment/textures/tx_paperParchment_ORM.tga.import @@ -24,7 +24,7 @@ compress/rdo_quality_loss=0.0 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="" @@ -38,4 +38,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/assets/props/parchment/textures/tx_woodParchment_BC.tga.import b/assets/props/parchment/textures/tx_woodParchment_BC.tga.import index 1e8f165..89d155e 100644 --- a/assets/props/parchment/textures/tx_woodParchment_BC.tga.import +++ b/assets/props/parchment/textures/tx_woodParchment_BC.tga.import @@ -24,7 +24,7 @@ compress/rdo_quality_loss=0.0 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="" @@ -38,4 +38,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/assets/props/parchment/textures/tx_woodParchment_NM.tga.import b/assets/props/parchment/textures/tx_woodParchment_NM.tga.import index d649064..c8eb1c6 100644 --- a/assets/props/parchment/textures/tx_woodParchment_NM.tga.import +++ b/assets/props/parchment/textures/tx_woodParchment_NM.tga.import @@ -24,7 +24,7 @@ compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=1 compress/channel_pack=0 -mipmaps/generate=false +mipmaps/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -38,4 +38,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/assets/props/parchment/textures/tx_woodParchment_ORM.tga.import b/assets/props/parchment/textures/tx_woodParchment_ORM.tga.import index 26939cc..bddfbfc 100644 --- a/assets/props/parchment/textures/tx_woodParchment_ORM.tga.import +++ b/assets/props/parchment/textures/tx_woodParchment_ORM.tga.import @@ -24,7 +24,7 @@ compress/rdo_quality_loss=0.0 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="" @@ -38,4 +38,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/assets/props/pinte beer/materials/MA_pinte_beer.material b/assets/props/pinte beer/materials/MA_pinte_beer.material index d38bbeedebc47f26845cc5651ff7331aa2f8877b..e37f7446d91592f0e63eea0f65e00a144eed30ec 100644 GIT binary patch literal 2353 zcma)8Yi}Gi6m@|DS>ECyUIJ4I*reOtCgD>fr~)ZascBKRuvPASi;T)8CEJ}3hg=9Ni1W%9RNjHOoQ68$Eg4@jE@CD#~1k3dHs`XAHjA^O?I2 zg&$s_T+{jS75WafSK&vRxeAYU21+^e%Sd$G+5&~*P>@NX%R-et)@v+>SQx3ztxFvC zCpO^dNfkMHA5pYfkqhEw$U)jJ(pIXpt~%utV_ks)0cNbE`mg?tVg}YY2`Dyj{8SV^_sasHadNVnVtnDxXnig@n@uT>whu zDETiNDzx{gr6dv|KDi91wNZtwOb|CNGeUKGo3GGh^{TP7FN8GXa`ep7r7N`{%}Q8E z@EOCL#NNL%nQV(|+~s(>(jBq+;zjAM_^y%Og%ZaI{J|;(KPjCp@vBWBIU_JxG^duI z9PTGkp0IqpmW$H{iVJL7r{oz-d2m42amqFO09IXsel(w1(D3$X=fZL=RJ~l^ zf#VwtR#s;cXU(D@6Na1e_rXSoI4(!*r-@~Fo}|%}9|5tk|KRI;2ajM?b3Jy8ncQmr zus;i6HrS|1sJGeyZNqHPM-sSW2bUgeE0tFS$L;ZLc}x1j+OYJ2%3+I8Z*(Mk0(n!m zw2fpP07riB@cwjq|ItHWV$Zw7Hb3=BTm6J#TdhgVJa4V0;D_(`fpT?B2)GkMFTPGp zf5hAV8XAI+yKj{b5BctWpaTh(^0xrL`Ewy^9@po^&Ouc1J;7H#cNLp`)R}i(>jrGU zH29AH6oXCp`3!?$`1u@T4axt97zGCI1h&W9~X1rTYKHo8t?y zYnH5iQS2o3zv66dG;oegb(6Khr6g=j(MvYd{}BF9INV3M?g?eL)#v{Kia#F~7xxHo z;vLfj@(ZZYm|oR|YX*;??0$|zyl#3fa6#UPC_>Y0&@;;Gg%Kro(vB5%^NCyulA{v?xl$4Usr{si$V}UWw zwWNHY_WQlaVr#M}vVxv=hQoMo2c8h-4(shGm7L31JyY1lwq8 zWJ|O(#N3l3N%9DQim1UMBSJzX5+q5IbT9%#kTSCl5+HOj&OzoBAxcf1VgC(eRx;i- zQo)FE!cpt*b?NzfgABedP+*AFS^%mp&}ZuH&d*~y&ljPj`Cb4H|Hi2$k{lk64P zmvf`S7{=L)&A{Hr{e9JfR#h$F)+W6#f-~q?2nwxp?Z$UbW4{Kj>1ocbY7De1PqPY3;gN@fP0T3$% zpq8*~mV*m8X{~aVtX7=o#1l9CW=H$rc9ArGK&Li-CYoo?a z2&tk9s>9iTw|{t$R(7Lr+7J^_QEBNzz6Za+IjE$Lm=xDgxa~mbq@2psKAJw&{s@

Xq35H6*rrGW`2@j|dLTOV(q^3nl+gEGWKIl5ulZU1Fq{pqa$&M0%>?>K#viBFd(Y3Ds-rk*dgaUgC7la7Ot1V zPp@IF)A{)|{9bCWvmevUC_L2}Qp%NI#ze=^asb5vkV&blQdK_UHNqhRBejKfi9>v1 z1B#whS&;Y9iZ&~9LA(w+lD3PoRVr;zr+i|pD*+JLj7Vx;^=}j_u(p#R#RiJMXc%I+ z&g-%|uP*}&NI=gdmD4sNh+%2ySx73?`r%_&2?<7X1PdM$$~_B^tQ{q)m{Vr2mZ4I6 z54H_(A#2#Mrv-2@V(^HoFV5q6Ib5U8EJ2N4mWYkj~kmi z2jW}2q2=$)X2<{qKdYRr{LEKpc>&5gW*nZOBn>gSdv6+Y)r}dROl&ny3|QJ0yF44P z`qUk<_3CBnt~hL|dtm;TCuKY7{OoAIb7i`wioaSj49R9Risy0U&CdLdLz_KrIth3M zjLp4K3yBhgOlDMtCD1_(2b8&5s)Yy^n)JhdKL2-L}Ti%ksv^Fe#plaM%Xo8!_ z0YPrbE>)AZ&g|^{qr;Pv!$%Kc6LId2yHYkc-5eH4_9(I199k3gPe1O%%Jn|M;hqZv z|9U?C5x@7`);#cjP(D25ukQmLNHCTE4e*oyFhtJduJf72Ukd){bCnm(F!|QA8wMl*-x9@A&O}z8xQHVdk@9&$SunSw*YkhWW($a6?$%BU1 K+O=c+J^B|~;HuLA literal 828 zcmV-C1H=4MQ$s@n000005C8z=1^@sg0{{RhwJ-f(IRF3v00000 z0001hC`sV4wsv;!n@Km5+sXnwj__wc&1E_>$D$>zef;oX115HQm^cpP`kCva7vfIk@-@@_-QdjO?N&09D z*YE?lgiFUCxQ*#mRk&Vo2+Ho~_`~ZK>Gg5&8ZT)r#;JsIYEi!KXR%~0-PtbQJ6l!Z zNIp6nWfu>e`^i{UDl)CzrgeShT5v5YW9$82@ot9JUS2EeaTTCV1_y@2ScQp0HNJ{{ zFecJL8BS}PSyX~vyrO917=E^&YY<)&%P^g7s|mMxSn66;Cp*SYTG0mXt2>+VT&WTx zehG>W*K|yzwl`uGEUsj3M9X-%a{-Mx@nnJx8{bOs?Qo|OL<2>&e& z7+etXFHn%+f5nN)^F*E~{}DWd2IH^}h72X02^fzP6cUez#AGBxfw9cw+Eta(YNo+9 zG#nS)(1vO*(Iwh^D5~Kw6p;~-lFlXCWN_HPG8hiKL?BoOrbf1?r6A^>3`J2#W&^`i zTv}JcfQ6`$r86|a%mgA*n54xp0z-^qSRE3;gDp==1(|@zH02hi{S23A&|mBpd@Cg4 zN&JyBN$Hh$4Uuesf*8y&E!UAuT|esb^7JGUkUDOhg~*7$yHKFwXEL}_aS?m;h~dS( za2esf#c^E1Lk&ke2&o-R31J^DNCi2;5L>Yk_Ys44DxIE+%HzNgV(;V6w;Q%4pz25o z6^bxUMn^^IOK>NTA+x;K%?us95w9x<5j-#b0}U6u$xSwSJ35{R>!Jj8!X)HlVXp1l zDSDS`EIS81^TBWekSe*oL4j>(T3}J|1t2Nxf3_pIZUsG}nnc?F59E0YA~Q9BXo}7SHG6eihI0Tx8N72`{Y@ zc@$#o8Jzx!t0Df6!w52OVq57q&pKzv$tDvXHw1PUS^5&R_d9bvv*qDQt4Sz8vI;hr!vp0T-YR2&I=6`rj<^; zGCIW7u)kFvu(R8+*wC!>mDTknZh?`R0x>0L!j_5DVv+-f*E;lY<2O1)QIxsz6@cw> zE)aaHqcgQF2;aSixrFomYxpf_ud^RurYbyB86c(1&jZlmYBLmyML{NoDhpA%P_LmJ zLSdvPH#V`jA6tW>lcLC_bHR$z3u!%j33PzAgS3?*t*cJBL>pV6KwvXeQvFx`AVUV0 zb`n6Wp?Iobh{|KsjyH9=$WLn%7hA{vefc>pOhlT;X+r1PNF^ znPD7CD?AS?m6geV$;d)EhgwPk5bT4i>@+f>FqQV~&Q(IFPG|B3nymI3N_!=w36-NG zl&S&0d%c+F z0@I0Svh;JLTvCpapK>k+JgxGanmn}SUawbaHARi_g-k!;@&EmS(FEks^PC~gfm`2+3>WBlBC zS@s(X^+gA~L*Vy$1KWVt0Z`-*j~*J?yU=ILrR1Ydq} z04vwWgn(NibmD8p^iz20Q)AH7`&>AGOt0X_%FEC$)IP+euZF<+svaBLhe45E7xd;| zcGr8Yb6d4;#^!^AMm4Ra+FhKNjrt+ZWRliB?4^17-^Zr+;~&5NwSRZ-&;8$iKiy~S l=TFu_qbN5bpJ?rUKk^57F71);2a!I+GY+c;j}v@9{R{o!sw@Bi literal 854 zcmV-c1F8H{Q$s@n000005C8xP2LJ#*0{{RhwJ-f(2?nJZ05+z5K_IOr9S9NxA_3R{ zNC02}FaYqHLqMXvq2z%BVG&(hXP{vU9Qx$Ati>i-yT zj&H=4!({EOVoO&4Eza0R1Lw$9J6RpvNSU|2C9&xP_tl-Ex3rbRJskS!NQ_@Lw7!v;*@OGBP9*BuSEVFakpmIr1XW6~y9I@s_?;ZY zQS@+3HO9c);~@M{8Nf5NM@~^ruQ+{Q}K5U=5{>Y}3S4p*0^A+O)F;Y`QL+?G4r~m)} diff --git a/assets/props/stack gold/materials/MA_gold2.material b/assets/props/stack gold/materials/MA_gold2.material index 6a3476882ac7d9f0f2ae33822e0596798a4823a8..ab37050fb336b7ff03549c1d3c8e0683782f6bb5 100644 GIT binary patch literal 2372 zcma)8+ioK@7&eCm8qVS%P6C6(l6JF6n{w5PqCyw3(zc75h1-!c<0NKh?7{Y=6okYr z?*cEdyu%qpFFWps$E zVSleYU}tZ@VnegiS60`TcpZ$)6o@G~6ShpG7SkLsyxO6M8^75hilWSwuK;Y9bAjO7 z9i5qNLHOP^%oUs;T*Gfcd!79NGgaZ4$^a>4ei48USDT|yEDACyR9T49g?bI;5DFtT zxv`1G{n!Q+ofJhboeNf!UP|lP3!nqEU8JoPXTK=!E(R79y5N_ekVZnHk2R zw8rzWQdyb&my9fwbEu^x0Kq=I%1$FA3R7v%KDtT>)#*&WM3dECLus#tG^KKMgwmCs z8Y9sY95I?Pgh}ZAz0qig{Y@mSHg(LlpIfKyvXe;N0~2Ee`ao5BH!7_u-3T3(KIC(g zXQLucEjKzoOo%cbu1M^+XoYHPQfGr^8m%X>pNLPIJ~zOK*QQS5s2Pu0xZjI;E-;;V zCQH9S$|dC(`6(A-z|$(vsmViI?)Q3?Rx{KXU&{1TUgwbS@i+-Xy7n6xM-3|N_=sOl z`kF$c5v(?u4dyz+{IlS?zq5JaXO zjMv;XrfPRx1&XiNTN;&djGTEPweN58pL-iE;HWBbpBPL3GDw4Ozk`X5!+T%cIl2$2 z8tb8*Px)5-L;6I3SZ|{Sp}uO%XcK0%KH#uBv{31wwiJ0Kp|~^L=C`>kjPVQSW!Y~m z)E6D_4uRj|4QvBm2SAbEIleoY+`WGSo4E6CzsXPSX{(zsT&ocYnWwAO5Pb9XA*@^< z69R69(21`V(=XwrPmMuS?*t%G hQIuPePqg;F75M`^SN6#F?MNTu8HZJa$0@#_{sl6As-ge@ literal 852 zcmV-a1FQT}Q$s@n000005C8xP2LJ#(0{{RhwJ-f(2?muJ05&FlKp?Fq9RLgfFaWHX zBn$)r1OYNz>%S%2etU2FyJVXrQmVNJWfzVQ4h{}$C`UJ?!K0})lKI8Ee3u$bor@nV z1zrGU0BZnOwH`~87LNW~+@(IcF{>8-CvdJJ*M42#mVA_FX=^3_54gqLbv|14|BE-r zH)6|SvUXOnC9D4xXKbT^bL6U>tPXA^q2r2XvYGzR_%GpbALY6xl&!r&{|`|70iAnT zWZV^J6&zzNj^FqWh){$_mlCeq{y_kn^-2Ai^0XHjIQ@T#=99}i+R0BkFV3@*>q%> z6qnYOaHQ#EK3Ws;P=*uR2G#hk_G!&R#ifQ(IeIahCXmHYwEZjxVOF&b)9Ln_a2?B1 z%UyM{)!35Q1cLkO&Tc$iDn$i=Ux?1}xDXSnG0K9H)H+mKo9Zd)q`GqVQq-qE0U1(4 zDgP-VKyc9DLWmz^BVq)|%L@sR5+zJ5P%vR|_>XbY@f{)#<+U8RSM^|0qa-7B&$@&pEB>*(q zPb9v?2>-B&m=(;+>`~PimWYd$S$MCz0#%(>ui6RMVtNOJ7U%?3O0c^Hg_`)C9K=!d za7;DEz}({?{7@OdGqgud1tkvZ2vuRVZ|)HZitotLWysjK)RNXw^z0XL>*8Y%Ay`VH zd~!XAwuj0IP>Thq%EPf5hy}34cKw~CW}W}f;l>_y`UNm12cEWV`*vs(Q8}+wt0)`| zHx2iC-G#=CU&r$DFq?% z%G>e>mOqLF-*G%?nrRW1Jn@{nzjH}Wr>9@BxSqxHxwv1&bGi_jw8z3rt3(ln7<&e% zf8uJ1|Kl)$%-h&jI#b(JCWT2wk$981RBFjy>GHHFCA$GiYBI^5$HApmRi3?wqc+OP z#GhA>HQ&oAlb zLTUDHNA66jeBou5IB%uS{er#M;Z{oLNoDYJiJi)#s0(3}OgS$!P?*;`^~&fFSIhoU zdBD!zgvFL-rLV1SF7XB!nJE!dawcq*NG)asV0f)Z4>x|RM-*jMC|?8EKIa0#cX~Q= z+kx=?YnUrIKfH$Df%ZE40cNVgGnD~S%KRb#9j=z6P%H{EDOFX9%7uCj z#r@a@6rB`hA)O0WlwL~f*-M}Uv^}J)5@}O)!X?_+5(NUAp^}=v>K7R@u(Fc?VhzPd z3Wlg$XLVU!A0|ZE8?Q+0k7$KzYuaRkW*V)hv7d@hnm#wch}Wi0;;0#qS$Hsrc`h-XcqS{q zK*}ZM82PCdV#L$BD5%LpTOJGswN`V~7+=ctGv4Ho@AEhbL%I%H8AlB&?d}o3ob)w? zRwGz#GaJnHg!$*e^>AnN!q2=g!t++GNmD1*i#Xa;#(?@Z+Dd@eh0-29sB<~o9__BV zYfUxo`U(`^V6ZeQ;}|)4DYYMN@?QrV9pI=cai18=@G?lF?|*=ajl&0D-aC2-sRrw@ z&1ZZo{vmxLKy0wlfY4mEW3&x3S|4%P9b2gMP+N+kmQdUoZ}U6cmB#pm^RgPY7MhEW zc#ptu^A@%dZvvpm?;YQtPVYZFflb_bZ`kIi@wC-X7_QZdgv`^`8VJ7q<`7n{j|l;H zLg>ZUiRriS(x=9tsrR*T{)Aq^50saoU8sGCOJ5Cv^IbDGc8`K0y)Nj@zv`|JI_Iux z(~Rv02aRf4E47btUN!0`IFm_QpJK1f)Bhnhy&wO2^5pKHj~`>-yvx|{Uu=R#QEo*( c(YpI~z>% literal 852 zcmV-a1FQT}Q$s@n000005C8xP2LJ#(0{{RhwJ-f(2?muJ05&FlKp?Fq9RLgf3;+xO z3?u-+1H(jbz}U#P-`<=4F4-oDlxprl*@feSgM-sGl=1Cp@Mvm{WPb53Ke{SY=i&!T z0bT%Q0BZnOwcbjT7LNW?yrn+6F{>8-CvdJJ*M42#mVA_FX=^3_54gqLbv|14|B5%q zH)6|SvUXOnC9D4vXKbT^bL6U>tPXA^q2r2XvYGzJ_#feLALY6wl&!r&{|`v~0iAnL zV7w#1h<7N;^9z{Zm}ZrQYX+B~?0yz^ca?tFa}q=>zxGo!xl0REY@yuMnN%;Xq2L#wZI)QsYoGk0V%;_x2d9(4Eqy3Qqmt4#mf{)#<+U8RSM^|0qa-7B&$@&pEB>*(q zPb9v?2>-B&m=(;+>`~PimWYd$S$MCz0#%(>ui6RMVtNOJ7U%?3O0c^Hg_`)C9K=!d za7;DEz}({?{7@OdGqgud1tkvZ2vuRVZ|)HZitotLWysjK)RNXw^z0XL>*8Y%Ay`VH zd~!XAwuj0IP>Thq%EPf5hy}34cKw~CW}W}f;l>_y`UNm12cEWV`*vs(Q8}+wt0)`| zECyUIJ4I*reOtCgD>fr~)ZascBKRuvPASi;T)8CEJ}3hg=9Ni1W%9RNjHOoQ68$Eg4@jE@CD#~1k3dHs`XAHjA^O?I2 zg&$s_T+{jS75WafSK&vRxeAYU21+^e%Sd$G+5&~*P>@NX%R-et)@v+>SQx3ztxFvC zCpO^dNfkMHA5pYfkqhEw$U)jJ(pIXpt~%utV_ks)0cNbE`mg?tVg}YY2`Dyj{8SV^_sasHadNVnVtnDxXnig@n@uT>whu zDETiNDzx{gr6dv|KDi91wNZtwOb|CNGeUKGo3GGh^{TP7FN8GXa`ep7r7N`{%}Q8E z@EOCL#NNL%nQV(|+~s(>(jBq+;zjAM_^y%Og%ZaI{J|;(KPjCp{p6SwI!-PsGbx%= z%TEsXlUklYK3>bkX#>RtHmy_g45mCdpzAp0n*DMMNfb-KA-Fea5?tU|k{Oj@iChyW z7l|pCY9!Mt&$+u}Kkf|%mCEZU~**f#wsvujpIzOFQ&*Erv*aXzaXiEUAF0~10KC__V?a|JK=rY* z)%;<97Qk$wI+7NOqgNcIHs zrfg{&$vOaz{NCaH>Gb}ihrq<1cZY3$>Xo+o3B$HplbCtlT1~+Z-|qwE>X;C4Cxl*n zotXZJxBWFV1RrFktq`kM literal 838 zcmV-M1G)TCQ$s@n000005C8!11^@sq0{{RhwJ-f(@C79q00!oIKOn6p9RLgfQ3D79 z2m%NKj7N0FM@zQ-_TGlOWSd+<{%VLBAF#azGCI1h&W9~X1rTYKHo8t?y zYnH5iQS2o3zv66dG;oegb(6Khr6g=j(MvYd{}BF9INV3M?g?eL)#v{Kia#F~7xxHo z;vLfj@(ZZYm|oR|YX*;??0$|zyl#3fa6#UPC_>Y0&@;;Gg%Kro(vB5%^NCyulA{v?xl$4Usr{si$V}UWw zwWNHY_WQlaVr#M}vVxv=hQoMo2c8h-4(shGm7L31JyY1lwq8 zWJ|O(#N3l3N%9DQim1UMBSJzX5+q5IbT9%#kTSCl5+HOj&OzoBAxcf1VgC(eRx;i- zQo)FE!cpt*b?NzfgABedP+*AFS^%mp&}ZuH&d*~y&ljPj`Cb4H|Hi2$k{lk64P zmvf`S7{=L)&A{Hr{e9JfR#h$F)+W6#f-~q?2nwxp?Z$UbW4{Kj>1ocbY7De1PqPY3;gN@fP0T3$% zpq8*~mV*m8X{~aVtX7=o#1l9CW=H$rc9ArGK&Li-CYoo?a z2&tk9s>9iTw|{t$R(7Lr+7J^_QEBNzz6Za+IjE$Lm=xDgxa~mbq@2psKAJw&{s@

void: + var player = $ListObjects/AnimationPlayer + var lib = player.get_animation_library("") + if lib == null: + lib = AnimationLibrary.new() + player.add_animation_library("", lib) + lib.add_animation(name, anim) func _process(_delta): _check_dissolve_mesh() @@ -113,16 +121,25 @@ func _process(_delta): _check_victory_condition() func create_dissolve_mesh(key): - _node_to_mesh(key).get_surface_override_material(0).set_shader_parameter("dissolve_amount", 0.0) + var mesh = _node_to_mesh(key) + if mesh == null: + return + var material = mesh.get_active_material(0) + if material == null: + return + material.set_shader_parameter("dissolve_amount", 0.0) func _check_dissolve_mesh(): # Event dissolve in object searched by gamer for key in meshes: if bool(meshes[key].lock()) == true and meshes[key].mesh() != null: + var mesh = _node_to_mesh(key) + if mesh == null: + continue if meshes[key].tick_reference() == 0: meshes[key].set_tick_reference(Time.get_ticks_msec()) _node_object_list(key) - GlobalAnimation.start_dissolve(_node_to_tween(key), _node_to_mesh(key).get_surface_override_material(0)) + GlobalAnimation.start_dissolve(mesh, mesh.get_active_material(0)) if Time.get_ticks_msec() < meshes[key].tick_reference() + TIME_MAX: meshes[key].set_value(meshes[key].value() + 0.01) @@ -209,13 +226,10 @@ func _check_victory_condition(): Global.goto_scene("res://scenes/UI/ending/Ending.tscn") func _node_to_mesh(key): - return get_node(meshes[key].mesh()) - -func _node_to_tween(key): - return get_node(meshes[key].tween()) + return get_node_or_null(meshes[key].mesh()) func _node_to_area(key): - return get_node(meshes[key].mesh()+"/Area3D") + return get_node_or_null(meshes[key].mesh() + "/Area3D") func _node_object_list(key): var animation_played = null @@ -232,7 +246,7 @@ func _node_object_list(key): var diff = child.get_meta("counter") - child.get_meta("counted") var txt = child.get_meta("name") if diff != 1: - txt = txt + " " + String(diff) + txt = txt + " " + str(diff) animation_played = child.get_meta("animation") child.get_node("Label").set_text(txt) @@ -250,7 +264,11 @@ func _physics_process(_delta): _check_collider(space_state) func _check_collider(space_state): - var result = space_state.intersect_ray(from, to, [], 1, false, true) + var query = PhysicsRayQueryParameters3D.create(from, to) + query.collision_mask = 1 + query.collide_with_bodies = false + query.collide_with_areas = true + var result = space_state.intersect_ray(query) from = null to = null if result.has("collider"): diff --git a/scenes/levels/warcraft/WarCraft.tscn b/scenes/levels/warcraft/WarCraft.tscn index 1572ac9..97b6bc7 100644 --- a/scenes/levels/warcraft/WarCraft.tscn +++ b/scenes/levels/warcraft/WarCraft.tscn @@ -176,7 +176,7 @@ collide_with_bodies = false transform = Transform3D( -0.210773, -0.635682, 0.742619, 0.949185, -0.314721, 0, 0.233718, 0.704883, 0.669714, 0.0481223, 0, -0.094099 ) use_in_baked_light = true mesh = ExtResource( 12 ) -material/0 = ExtResource( 13 ) +surface_material_override/0 = ExtResource( 13 ) [node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Fioles/Fiole1" index="0"] collision_mask = 2 @@ -185,13 +185,11 @@ collision_mask = 2 transform = Transform3D( 1, 2.98023e-08, -4.47035e-08, -2.98023e-08, -8.9407e-08, 1, -1.19209e-07, -1, -1.49012e-07, 0, 0.0801148, -2.98023e-08 ) shape = SubResource( 3 ) -[node name="Tween" type="Tween" parent="HiddenObjectsItems/Fioles/Fiole1" index="1"] - [node name="Fiole2" type="MeshInstance3D" parent="HiddenObjectsItems/Fioles" index="1"] transform = Transform3D( 0.655275, 0.636944, -0.4061, 0.670978, -0.243833, 0.700239, 0.346993, -0.731333, -0.587153, -4.19531, -0.894133, 2.66915 ) use_in_baked_light = true mesh = ExtResource( 12 ) -material/0 = ExtResource( 19 ) +surface_material_override/0 = ExtResource( 19 ) [node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Fioles/Fiole2" index="0"] transform = Transform3D( 1, -2.98023e-08, 0, -2.98023e-08, 1, 0, 1.49012e-08, -1.19209e-07, 1, -2.38419e-07, -0.0202575, 0 ) @@ -201,19 +199,17 @@ collision_mask = 2 transform = Transform3D( 1, 5.96046e-08, -8.9407e-08, 2.98023e-08, -8.9407e-08, 1, -8.9407e-08, -1, 0, 2.38419e-07, 0.0823998, -1.19209e-07 ) shape = SubResource( 4 ) -[node name="Tween" type="Tween" parent="HiddenObjectsItems/Fioles/Fiole2" index="1"] - [node name="FioleSocle" type="MeshInstance3D" parent="HiddenObjectsItems/Fioles" index="2"] transform = Transform3D( 0.6773, -1.86265e-09, 0.735707, -0.0293841, 0.999202, 0.0270513, -0.73512, -0.03994, 0.67676, -2.27881, -0.11528, -1.23929 ) use_in_baked_light = true mesh = ExtResource( 3 ) -material/0 = null +surface_material_override/0 = null [node name="Fiole3" type="MeshInstance3D" parent="HiddenObjectsItems/Fioles/FioleSocle" index="0"] transform = Transform3D( 0.919703, -0.349433, -0.179005, 0.316708, 0.929754, -0.187758, 0.232039, 0.115989, 0.965766, -1.19209e-07, 0.1147, 0.00100636 ) use_in_baked_light = true mesh = ExtResource( 12 ) -material/0 = ExtResource( 21 ) +surface_material_override/0 = ExtResource( 21 ) [node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Fioles/FioleSocle/Fiole3" index="0"] collision_mask = 2 @@ -222,13 +218,11 @@ collision_mask = 2 transform = Transform3D( 1, 2.08616e-07, -7.45058e-08, -5.96046e-08, -1.49012e-07, 1, 5.96046e-08, -1, -1.04308e-07, -1.78814e-07, 0.0560231, 0 ) shape = SubResource( 5 ) -[node name="Tween" type="Tween" parent="HiddenObjectsItems/Fioles/FioleSocle/Fiole3" index="1"] - [node name="Dagger" type="MeshInstance3D" parent="HiddenObjectsItems" index="1"] transform = Transform3D( -0.625025, -0.777847, 0.0655765, 0, 0.0840072, 0.996466, -0.780606, 0.622816, -0.0525065, 0.69073, -0.117415, 0.830941 ) use_in_baked_light = true mesh = ExtResource( 17 ) -material/0 = ExtResource( 14 ) +surface_material_override/0 = ExtResource( 14 ) [node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Dagger" index="0"] collision_mask = 2 @@ -237,13 +231,11 @@ collision_mask = 2 transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0.0802139, 0 ) shape = SubResource( 6 ) -[node name="Tween" type="Tween" parent="HiddenObjectsItems/Dagger" index="1"] - [node name="Spyglass" type="MeshInstance3D" parent="HiddenObjectsItems" index="2"] transform = Transform3D( 0.652362, 0.137749, 0.63579, -0.234678, 0.889605, 0.0480562, -0.606736, -0.195981, 0.665013, -2.884, -0.292075, -0.429783 ) use_in_baked_light = true mesh = ExtResource( 23 ) -material/0 = ExtResource( 24 ) +surface_material_override/0 = ExtResource( 24 ) [node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Spyglass" index="0"] collision_mask = 2 @@ -252,13 +244,11 @@ collision_mask = 2 transform = Transform3D( 1, 0, 2.98023e-08, 1.86265e-09, 1, 3.72529e-09, 0, 5.58794e-09, 1, 2.38419e-07, -1.19209e-07, 0.0177531 ) shape = SubResource( 7 ) -[node name="Tween" type="Tween" parent="HiddenObjectsItems/Spyglass" index="1"] - [node name="Beer" type="MeshInstance3D" parent="HiddenObjectsItems" index="3"] transform = Transform3D( 0.996658, -0.053142, 0.0620432, 0.0548108, 0.998171, -0.0255105, -0.060574, 0.0288258, 0.997748, -2.8842, 0.173697, 1.98168 ) use_in_baked_light = true mesh = ExtResource( 22 ) -material/0 = ExtResource( 5 ) +surface_material_override/0 = ExtResource( 5 ) [node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Beer" index="0"] transform = Transform3D( 1, 0, 7.45058e-09, -1.16415e-10, 1, -1.86265e-09, 0, 0, 1, -2.38419e-07, -0.21161, -1.19209e-07 ) @@ -268,13 +258,11 @@ collision_mask = 2 transform = Transform3D( 1, 0, -1.61817e-08, 1.83936e-08, -4.28408e-08, 1, 0, -1, -4.65661e-08, 9.53674e-07, 0.0746492, 2.38419e-07 ) shape = SubResource( 8 ) -[node name="Tween" type="Tween" parent="HiddenObjectsItems/Beer" index="1"] - [node name="Weapon" type="MeshInstance3D" parent="HiddenObjectsItems" index="4"] transform = Transform3D( 0.540284, -0.813497, 0.215212, -0.009216, 0.250018, 0.968198, -0.841432, -0.525085, 0.127583, -2.7508, -0.359206, 1.19589 ) use_in_baked_light = true mesh = ExtResource( 7 ) -material/0 = ExtResource( 8 ) +surface_material_override/0 = ExtResource( 8 ) [node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Weapon" index="0"] collision_mask = 2 @@ -283,15 +271,13 @@ collision_mask = 2 transform = Transform3D( -1.49012e-07, 0, 1, -1, -1.49012e-08, 0, 3.72529e-08, -1, -5.21541e-08, 0.0388942, 0.0484145, -8.19564e-08 ) shape = SubResource( 9 ) -[node name="Tween" type="Tween" parent="HiddenObjectsItems/Weapon" index="1"] - [node name="Apples" type="Node3D" parent="HiddenObjectsItems" index="5"] [node name="Apple1" type="MeshInstance3D" parent="HiddenObjectsItems/Apples" index="0"] transform = Transform3D( 0.849809, -0.0462348, 0.525058, 0.0744364, 0.996689, -0.0327109, -0.521807, 0.0668814, 0.850438, -2.20275, -0.0779731, 2.45146 ) use_in_baked_light = true mesh = ExtResource( 4 ) -material/0 = ExtResource( 15 ) +surface_material_override/0 = ExtResource( 15 ) [node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Apples/Apple1" index="0"] collision_mask = 2 @@ -300,13 +286,11 @@ collision_mask = 2 transform = Transform3D( -1.45286e-07, -2.98023e-08, 1, -1, -1.11759e-08, 0, 1.86265e-08, -1, -8.9407e-08, -1.90735e-06, 0.00575864, 0 ) shape = SubResource( 10 ) -[node name="Tween" type="Tween" parent="HiddenObjectsItems/Apples/Apple1" index="1"] - [node name="Apple2" type="MeshInstance3D" parent="HiddenObjectsItems/Apples" index="1"] transform = Transform3D( -0.190449, 0, 0.981697, 0, 1, 0, -0.981697, 0, -0.190449, -1.71166, -0.0869397, -1.29534 ) use_in_baked_light = true mesh = ExtResource( 4 ) -material/0 = ExtResource( 9 ) +surface_material_override/0 = ExtResource( 9 ) [node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Apples/Apple2" index="0"] collision_mask = 2 @@ -315,13 +299,11 @@ collision_mask = 2 transform = Transform3D( -1.49012e-07, 4.47035e-08, 1, -1, -1.49012e-08, 0, 3.72529e-08, -1, -1.49012e-08, -4.76837e-07, -0.00566041, 0 ) shape = SubResource( 11 ) -[node name="Tween" type="Tween" parent="HiddenObjectsItems/Apples/Apple2" index="1"] - [node name="Apple3" type="MeshInstance3D" parent="HiddenObjectsItems/Apples" index="2"] transform = Transform3D( 0.823731, 0.226496, -0.519776, -0.248954, 0.96813, 0.0273319, 0.509401, 0.106886, 0.853865, -0.718663, -0.36046, 1.92043 ) use_in_baked_light = true mesh = ExtResource( 4 ) -material/0 = ExtResource( 20 ) +surface_material_override/0 = ExtResource( 20 ) [node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Apples/Apple3" index="0"] collision_mask = 2 @@ -330,13 +312,11 @@ collision_mask = 2 transform = Transform3D( -1.71363e-07, 0, 1, -1, -3.72529e-08, 1.49012e-08, 2.98023e-08, -1, -1.19209e-07, -3.57628e-07, 0.0142345, 2.38419e-07 ) shape = SubResource( 12 ) -[node name="Tween" type="Tween" parent="HiddenObjectsItems/Apples/Apple3" index="1"] - [node name="Apple4" type="MeshInstance3D" parent="HiddenObjectsItems/Apples" index="3"] transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.38775, -0.940515, 0.233058 ) use_in_baked_light = true mesh = ExtResource( 4 ) -material/0 = ExtResource( 10 ) +surface_material_override/0 = ExtResource( 10 ) [node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Apples/Apple4" index="0"] collision_mask = 2 @@ -345,15 +325,13 @@ collision_mask = 2 transform = Transform3D( -1.49012e-07, 0, 1, -1, -1.49012e-08, 0, 3.72529e-08, -1, -5.21541e-08, -4.76837e-07, 0.00115258, -1.17347e-07 ) shape = SubResource( 13 ) -[node name="Tween" type="Tween" parent="HiddenObjectsItems/Apples/Apple4" index="1"] - [node name="Coins" type="Node3D" parent="HiddenObjectsItems" index="6"] [node name="Coin1" type="MeshInstance3D" parent="HiddenObjectsItems/Coins" index="0"] transform = Transform3D( -0.958704, -0.0851446, 0.271362, -0.0825332, 0.996367, 0.0210433, -0.272167, -0.00222202, -0.962248, 0.215021, 0.00178671, 0.520763 ) use_in_baked_light = true mesh = ExtResource( 2 ) -material/0 = ExtResource( 18 ) +surface_material_override/0 = ExtResource( 18 ) [node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Coins/Coin1" index="0"] transform = Transform3D( 1, -4.65661e-09, 0, 2.68919e-08, 1, 4.65661e-10, -1.19209e-07, -1.14087e-08, 1, -0.0781975, -0.0532835, -0.0615574 ) @@ -363,14 +341,12 @@ collision_mask = 2 transform = Transform3D( 1, -4.65661e-08, 0, -1.38185e-07, 0.999999, 3.14321e-08, 4.17233e-07, -4.19095e-09, 1, 0.0276761, 0.00212932, 0.0336302 ) shape = SubResource( 14 ) -[node name="Tween" type="Tween" parent="HiddenObjectsItems/Coins/Coin1" index="1"] - [node name="Coin2" type="MeshInstance3D" parent="HiddenObjectsItems/Coins" index="1"] transform = Transform3D( 0.250245, 2.79397e-09, -0.968183, 0.0456076, 0.99889, 0.0117882, 0.967108, -0.0471065, 0.249967, 0.752443, -0.000386238, 1.36745 ) layers = 3 use_in_baked_light = true mesh = ExtResource( 2 ) -material/0 = ExtResource( 16 ) +surface_material_override/0 = ExtResource( 16 ) [node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Coins/Coin2" index="0"] transform = Transform3D( 1, -1.49012e-08, 0, 0, 1, 9.31323e-10, 1.49012e-08, -3.72529e-09, 1, -0.0553267, -0.0679173, -0.0739018 ) @@ -380,13 +356,11 @@ collision_mask = 2 transform = Transform3D( 1, 0, 2.98023e-08, 7.45058e-09, 1, -9.31323e-10, 5.96046e-08, 0, 1, 0.0499306, 1.19209e-07, 0.0191208 ) shape = SubResource( 15 ) -[node name="Tween" type="Tween" parent="HiddenObjectsItems/Coins/Coin2" index="1"] - [node name="Coin3" type="MeshInstance3D" parent="HiddenObjectsItems/Coins" index="2"] transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.74641, -0.885448, -0.198129 ) use_in_baked_light = true mesh = ExtResource( 2 ) -material/0 = ExtResource( 6 ) +surface_material_override/0 = ExtResource( 6 ) [node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Coins/Coin3" index="0"] transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0744205, -0.0795707, -0.040606 ) @@ -396,8 +370,6 @@ collision_mask = 2 transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0358186, 0, 0.0109152 ) shape = SubResource( 16 ) -[node name="Tween" type="Tween" parent="HiddenObjectsItems/Coins/Coin3" index="1"] - [node name="MainSceneProps" type="Node3D" parent="." index="6"] [node name="sm_book" parent="MainSceneProps" index="0" instance=ExtResource( 33 )] @@ -471,19 +443,19 @@ transform = Transform3D( -0.596381, 0.0184557, 0.802489, 0.0225364, 0.999726, -0 transform = Transform3D( -0.927966, 1.10978e-07, -0.372664, 6.91459e-08, 1, 1.25617e-07, 0.372664, 9.08001e-08, -0.927966, 0.457262, 1.00485, -0.058084 ) use_in_baked_light = true mesh = ExtResource( 25 ) -material/0 = null +surface_material_override/0 = null [node name="sm_candle_top2" type="MeshInstance3D" parent="MainSceneProps" index="19"] transform = Transform3D( 2.94906, 0, 0, 0, 2.85, 0, 0, 0, 2.94906, 0.347704, 1.00342, 1.16015 ) use_in_baked_light = true mesh = ExtResource( 26 ) -material/0 = null +surface_material_override/0 = null [node name="sm_candle_b" type="MeshInstance3D" parent="MainSceneProps/sm_candle_top2" index="0"] transform = Transform3D( 0.553417, 0, 0, 0, 0.553417, 0, 0, 0, 0.553417, 0.0504003, -0.0129334, 0.00162044 ) use_in_baked_light = true mesh = ExtResource( 27 ) -material/0 = null +surface_material_override/0 = null [node name="Tableleft" parent="." index="7" instance=ExtResource( 28 )] transform = Transform3D( -0.958482, 0, -0.285153, 0, 1, 0, 0.285153, 0, -0.958482, -2.60247, 0.0491341, 2.15903 ) @@ -520,31 +492,31 @@ transform = Transform3D( -0.236782, -0.0445638, 0.970541, -0.0267146, 0.998868, transform = Transform3D( 17.6823, 0, 0, 0, -2.06229e-06, 7.98594, 0, -6.6644, -4.9309e-08, -3.48147, 2.21218, 4.82163 ) use_in_baked_light = true mesh = ExtResource( 36 ) -material/0 = ExtResource( 39 ) +surface_material_override/0 = ExtResource( 39 ) [node name="wall_roof" type="MeshInstance3D" parent="Building/walls" index="1"] transform = Transform3D( 19.0333, 0, 0, 0, -2.05553, -1.80384e-05, 0, 1.78061e-06, -20.8236, -3.43417, 4.19346, -0.500263 ) use_in_baked_light = true mesh = ExtResource( 36 ) -material/0 = ExtResource( 39 ) +surface_material_override/0 = ExtResource( 39 ) [node name="wall_right" type="MeshInstance3D" parent="Building/walls" index="2"] transform = Transform3D( -6.12822, -1.14249, -5.98427e-08, 0, -2.8759e-07, 7.88397, -1.08057, 6.47934, 3.39384e-07, -0.343511, 2.21218, -5.27151 ) use_in_baked_light = true mesh = ExtResource( 36 ) -material/0 = ExtResource( 39 ) +surface_material_override/0 = ExtResource( 39 ) [node name="wall_right2" type="MeshInstance3D" parent="Building/walls" index="3"] transform = Transform3D( -6.12822, -1.14249, -5.98427e-08, 0, -2.8759e-07, 7.88397, -1.08057, 6.47934, 3.39384e-07, -5.52464, 2.21218, -6.18509 ) use_in_baked_light = true mesh = ExtResource( 36 ) -material/0 = ExtResource( 39 ) +surface_material_override/0 = ExtResource( 39 ) [node name="wall_background" type="MeshInstance3D" parent="Building/walls" index="4"] transform = Transform3D( -3.92366, 6.98897, 3.66077e-07, 0, -3.1021e-07, 8.50407, 22.2522, 1.23234, 6.45493e-08, -7.48147, 2.21218, -0.975186 ) use_in_baked_light = true mesh = ExtResource( 36 ) -material/0 = ExtResource( 39 ) +surface_material_override/0 = ExtResource( 39 ) [node name="GridMapFloor" type="GridMap" parent="Building" index="1"] mesh_library = ExtResource( 37 ) @@ -564,31 +536,31 @@ __meta__ = { transform = Transform3D( 0.173648, 0, 0.984808, 0, 1, 0, -0.984808, 0, 0.173648, -6.41226, 0, -3.39909 ) use_in_baked_light = true mesh = ExtResource( 35 ) -material/0 = null +surface_material_override/0 = null [node name="sm_column2" type="MeshInstance3D" parent="Building" index="3"] transform = Transform3D( 0.173648, 0, 0.984808, 0, 1, 0, -0.984808, 0, 0.173648, -7.23782, 0, 1.51736 ) use_in_baked_light = true mesh = ExtResource( 35 ) -material/0 = null +surface_material_override/0 = null [node name="sm_column3" type="MeshInstance3D" parent="Building" index="4"] transform = Transform3D( 0.173648, 0, 0.984808, 0, 1, 0, -0.984808, 0, 0.173648, -7.73765, 0, 4.20657 ) use_in_baked_light = true mesh = ExtResource( 35 ) -material/0 = null +surface_material_override/0 = null [node name="sm_column4" type="MeshInstance3D" parent="Building" index="5"] transform = Transform3D( 0.173648, 0, 0.984808, 0, 1, 0, -0.984808, 0, 0.173648, -5.90352, 0, -6.13626 ) use_in_baked_light = true mesh = ExtResource( 35 ) -material/0 = null +surface_material_override/0 = null [node name="sm_fireplace" type="MeshInstance3D" parent="Building" index="6"] transform = Transform3D( 0.173648, 0, 0.984808, 0, 1, 0, -0.984808, 0, 0.173648, -7.17176, -2.38419e-07, -1.02066 ) use_in_baked_light = true mesh = ExtResource( 38 ) -material/0 = null +surface_material_override/0 = null [node name="FireplaceLight" type="OmniLight3D" parent="Building/sm_fireplace" index="0"] transform = Transform3D( 0.173304, -0.0109248, -0.984808, 0.0629123, 0.998019, -1.78701e-07, 0.982857, -0.0619565, 0.173648, 0.00967455, 0.654315, 0.510273 ) diff --git a/scripts/Animation.gd b/scripts/Animation.gd index ff6850c..d9149ac 100644 --- a/scripts/Animation.gd +++ b/scripts/Animation.gd @@ -5,7 +5,7 @@ var current_material = null func level_hud_slide(node): var animation = Animation.new() var track_index = animation.add_track(Animation.TYPE_BEZIER) - var node_element = String(node.get_path()) + ":position:x" + var node_element = str(node.get_path()) + ":position:x" animation.track_set_path(track_index, node_element) animation.bezier_track_insert_key(track_index, 0.0, 0.0, Vector2(-0.25, 0), Vector2(0.031, 190.492)) @@ -16,7 +16,7 @@ func level_hud_slide(node): func level_hud_warning(node): var animation = Animation.new() var track_index = animation.add_track(Animation.TYPE_BEZIER) - var node_element = String(node.get_path()) + ":position:x" + var node_element = str(node.get_path()) + ":position:x" animation.track_set_path(track_index, node_element) animation.bezier_track_insert_key(track_index, 0.0, 0.0, Vector2(-0.25, 0), Vector2(0, 78.1)) @@ -29,9 +29,15 @@ func level_hud_warning(node): return animation func start_dissolve(node, material): + if material == null: + return current_material = material - node.interpolate_method(self, "animate_dissolve", 0, 1, 1.5, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT) - node.start() + var tween = node.create_tween() + tween.tween_method(animate_dissolve, 0.0, 1.0, 1.5) \ + .set_trans(Tween.TRANS_LINEAR) \ + .set_ease(Tween.EASE_IN_OUT) func animate_dissolve(progress: float) -> void: + if current_material == null: + return current_material.set_shader_parameter("dissolve_amount", ease(progress, 0.4)) diff --git a/scripts/migrate_shaders.gd b/scripts/migrate_shaders.gd new file mode 100644 index 0000000..c678478 --- /dev/null +++ b/scripts/migrate_shaders.gd @@ -0,0 +1,61 @@ +@tool +extends SceneTree + +# One-shot migration tool: walk every .material file, fix Godot 3 shader code +# to Godot 4 syntax, save back. +# +# Run with: godot --headless --script scripts/migrate_shaders.gd + +const REPLACEMENTS := [ + ["depth_draw_alpha_prepass", "depth_prepass_alpha"], + ["hint_color", "source_color"], + ["hint_albedo", "source_color"], + ["hint_black_albedo", "source_color"], + ["hint_white", ""], + ["hint_black", ""], + ["hint_aniso", "hint_anisotropy"], + ["NORMALMAP", "NORMAL_MAP"], +] + +func _init() -> void: + var fixed := 0 + var checked := 0 + for path in _find_materials("res://assets"): + checked += 1 + var mat = ResourceLoader.load(path, "", ResourceLoader.CACHE_MODE_IGNORE) + if mat == null: + continue + if mat is ShaderMaterial and mat.shader != null: + var old_code: String = mat.shader.code + var new_code := old_code + for pair in REPLACEMENTS: + new_code = new_code.replace(pair[0], pair[1]) + if new_code != old_code: + mat.shader.code = new_code + var err = ResourceSaver.save(mat, path) + if err == OK: + fixed += 1 + print("FIXED ", path) + else: + push_error("Failed to save " + path + " (err=" + str(err) + ")") + print("Done. checked=", checked, " fixed=", fixed) + quit() + +func _find_materials(dir_path: String) -> Array: + var result := [] + var dir = DirAccess.open(dir_path) + if dir == null: + return result + dir.list_dir_begin() + var name = dir.get_next() + while name != "": + if name == "." or name == "..": + name = dir.get_next() + continue + var sub = dir_path + "/" + name + if dir.current_is_dir(): + result.append_array(_find_materials(sub)) + elif name.ends_with(".material") or name.ends_with(".tres"): + result.append(sub) + name = dir.get_next() + return result