From ad1a9f71f910265ad852a6d4d8f240b4daffad87 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Fri, 21 Jun 2024 09:38:30 +0200 Subject: [PATCH 01/15] Add Speaker Textbox example (mainly for testing) --- MainMenu/Menu.gd | 8 ++- MainMenu/Menu.tscn | 64 +++++++++++++----------- SpeakerStyle/Assets/harold.png | Bin 0 -> 361007 bytes SpeakerStyle/Assets/janette.png | Bin 0 -> 361007 bytes SpeakerStyle/Assets/kristen.png | Bin 0 -> 361007 bytes SpeakerStyle/Assets/leana.png | Bin 0 -> 361007 bytes SpeakerStyle/default_speaker_style.tres | 55 ++++++++++++++++++++ SpeakerStyle/speaker_1.dch | 38 ++++++++++++++ SpeakerStyle/speaker_2.dch | 29 +++++++++++ SpeakerStyle/speaker_scene.gd | 6 +++ SpeakerStyle/speaker_scene.tscn | 12 +++++ SpeakerStyle/speaker_tml_1.dtl | 4 ++ project.godot | 12 ++++- 13 files changed, 197 insertions(+), 31 deletions(-) create mode 100644 SpeakerStyle/Assets/harold.png create mode 100644 SpeakerStyle/Assets/janette.png create mode 100644 SpeakerStyle/Assets/kristen.png create mode 100644 SpeakerStyle/Assets/leana.png create mode 100644 SpeakerStyle/default_speaker_style.tres create mode 100644 SpeakerStyle/speaker_1.dch create mode 100644 SpeakerStyle/speaker_2.dch create mode 100644 SpeakerStyle/speaker_scene.gd create mode 100644 SpeakerStyle/speaker_scene.tscn create mode 100644 SpeakerStyle/speaker_tml_1.dtl diff --git a/MainMenu/Menu.gd b/MainMenu/Menu.gd index 17d4167..908d399 100644 --- a/MainMenu/Menu.gd +++ b/MainMenu/Menu.gd @@ -30,6 +30,13 @@ func _on_smartphone_pressed(): get_tree().change_scene_to_file("res://Smartphone/phone_example.tscn") +func _on_speaker_pressed() -> void: + display_button_ripple(%UnitTests) + await fade() + get_tree().change_scene_to_file("res://SpeakerStyle/speaker_scene.tscn") + + + func _on_unit_tests_pressed() -> void: display_button_ripple(%UnitTests) await fade() @@ -94,4 +101,3 @@ func display_button_ripple(button:CanvasItem): tween.tween_property(button.get_node('Effect').material,"shader_parameter/time",1.0,0.5).from(0.0) await tween.finished button.get_child(-1).queue_free() - diff --git a/MainMenu/Menu.tscn b/MainMenu/Menu.tscn index bee2a1d..6b39c96 100644 --- a/MainMenu/Menu.tscn +++ b/MainMenu/Menu.tscn @@ -157,17 +157,18 @@ layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -offset_left = 151.0 -offset_top = 182.0 -offset_right = -151.0 -offset_bottom = -181.0 +offset_left = 107.0 +offset_top = 117.0 +offset_right = -101.0 +offset_bottom = -66.0 grow_horizontal = 2 grow_vertical = 2 -theme_override_constants/separation = -12 +theme_override_constants/separation = -10 [node name="HBoxContainer" type="HBoxContainer" parent="MainMenu/VBox"] layout_mode = 2 size_flags_vertical = 3 +theme_override_constants/separation = 40 [node name="DialogicLogo" type="TextureRect" parent="MainMenu/VBox/HBoxContainer"] layout_mode = 2 @@ -183,11 +184,11 @@ layout_mode = 2 size_flags_horizontal = 3 size_flags_stretch_ratio = 0.3 -[node name="VBoxContainer" type="HBoxContainer" parent="MainMenu/VBox"] +[node name="VBoxContainer" type="GridContainer" parent="MainMenu/VBox"] show_behind_parent = true layout_mode = 2 size_flags_vertical = 3 -theme_override_constants/separation = 17 +columns = 4 [node name="VisualNovel" parent="MainMenu/VBox/VBoxContainer" instance=ExtResource("4_dtbjh")] unique_name_in_owner = true @@ -216,6 +217,15 @@ focus_neighbor_right = NodePath("../VisualNovel") image = ExtResource("5_vikv7") title = "Smartphone" +[node name="Speaker" parent="MainMenu/VBox/VBoxContainer" instance=ExtResource("4_dtbjh")] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +focus_neighbor_left = NodePath("../SmallRPG") +focus_neighbor_right = NodePath("../VisualNovel") +image = ExtResource("5_vikv7") +title = "Speakers" + [node name="UnitTests" parent="MainMenu/VBox/VBoxContainer" instance=ExtResource("4_dtbjh")] unique_name_in_owner = true layout_mode = 2 @@ -225,31 +235,28 @@ focus_neighbor_right = NodePath("../VisualNovel") image = ExtResource("7_ymxpl") title = "Testing" -[node name="About" type="Button" parent="MainMenu"] -unique_name_in_owner = true +[node name="HBoxContainer" type="HBoxContainer" parent="MainMenu"] layout_mode = 1 -anchors_preset = -1 -anchor_left = 0.640625 -anchor_top = 0.421296 -anchor_right = 0.695313 -anchor_bottom = 0.469136 -grow_horizontal = 0 +anchors_preset = 10 +anchor_right = 1.0 +offset_left = 7.0 +offset_top = 7.0 +offset_right = -7.0 +offset_bottom = 38.0 +grow_horizontal = 2 +alignment = 2 + +[node name="About" type="Button" parent="MainMenu/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 size_flags_horizontal = 0 -size_flags_vertical = 4 +size_flags_vertical = 8 text = "About" metadata/_edit_use_anchors_ = true -[node name="Quit" type="Button" parent="MainMenu"] +[node name="Quit" type="Button" parent="MainMenu/HBoxContainer"] unique_name_in_owner = true -layout_mode = 1 -anchors_preset = 1 -anchor_left = 1.0 -anchor_right = 1.0 -offset_left = -49.0 -offset_top = 9.0 -offset_right = -7.0 -offset_bottom = 48.0 -grow_horizontal = 0 +layout_mode = 2 size_flags_horizontal = 0 focus_mode = 0 theme_override_colors/icon_normal_color = Color(1, 1, 1, 0.509804) @@ -262,6 +269,7 @@ expand_icon = true [connection signal="pressed" from="MainMenu/VBox/VBoxContainer/VisualNovel" to="." method="_on_visual_novel_pressed"] [connection signal="pressed" from="MainMenu/VBox/VBoxContainer/SmallRPG" to="." method="_on_small_rpg_pressed"] [connection signal="pressed" from="MainMenu/VBox/VBoxContainer/Smartphone" to="." method="_on_smartphone_pressed"] +[connection signal="pressed" from="MainMenu/VBox/VBoxContainer/Speaker" to="." method="_on_speaker_pressed"] [connection signal="pressed" from="MainMenu/VBox/VBoxContainer/UnitTests" to="." method="_on_unit_tests_pressed"] -[connection signal="pressed" from="MainMenu/About" to="." method="_on_about_pressed"] -[connection signal="pressed" from="MainMenu/Quit" to="." method="_on_quit_pressed"] +[connection signal="pressed" from="MainMenu/HBoxContainer/About" to="." method="_on_about_pressed"] +[connection signal="pressed" from="MainMenu/HBoxContainer/Quit" to="." method="_on_quit_pressed"] diff --git a/SpeakerStyle/Assets/harold.png b/SpeakerStyle/Assets/harold.png new file mode 100644 index 0000000000000000000000000000000000000000..f8829e662118d94207cffa0df4448057f77c2b11 GIT binary patch literal 361007 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

%@=2M>6x` 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

%QKbj|OmNnut0Ec^_K_E;HlcdWU(o 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

J*zcsn@UALe7 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

+V4TP(%(3_U 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 z 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¬M*}8M`8M{Tel_g)W?45C(94t_Oh&{`PhH?3rhS> z+N}k!7oadKUkCbc|JsLGXET@Isfd!FgU{A2=X^toQ(uTacEslhXtdz_GGyPGN|zhF z`PDa-6}>&>tsnZo5-EBW6gC)bDl4N6657?bwJf5qZ@l?s#~<+2AZt~W=&)E z(6*go*3sNGXLxr}-Qpg!MEi_>GNISrjT_5EW*BEMlkCDms~RnmYP!DVJQ}vO_dHbO z6XJ`BIEp!_?7Cz{+KM63qG(@CFMf-|Tmj}BRpCzWg*TAJrg1vKE11NuO4({V&eCbF z8gn8E9ki@~xDaiSlkuT(-Yzs!!}_+iBj-cFAp_0C&Xr}t*+cBcdWu?+&)Gp}h+t5F za{Q#p;bFC1V>2u}0c3!98~p4MEi^(=eYxU=F%Ay$@GV^lNofE~rQKgZz}mSMI^_r=!(--5W^(a|_t&8aQCUl&p!hWD()#n7*S@a&*2g|pe(o1O9N*8g&pwmcIk$G!`7T(g znb_e9WCD`#>j>lur>d{aqJT@EN_*(Q^)i?M<3QkV0#?8Q5>#!re)n3#w{b@-TDeYzCEa<-ou$Ww zf|Hr3&7x%lSibS~uatv*J4y3E4rahk ztW(5>^9S8&1P z9*1%wPdByT8aj6zXFiiUmea!GP;jT62|fq2VXjR$1MRSlb_;A0{z`T~z)_$02#)^o z&K&4?HLe2bh<0TRg=(jWtrN^`F9vz(gx5C}0#acMroAbgEvQ3enOE(>ka%gS8H3&s zMr8=(k{TjlghExHncAg;704>2mGp$}MlR_W0 zve3<>?II|}o7%p$$$=t`;@UP*Q%5~udyRAlO z+Bwc1j(^Kh8MWo!w28>MySj4l_uIDt>vwJ4=w!8%kw$7 z*81j}u~TFBcQCVPT@0yk;@};xyQO^PTMw4I9(fVE-6hH}HrF9!sVmE(kAC^_;3f6BEtY$!`st}K7?=}(pYTlz}Z%3iD$ z%zo%RMEC-ia4;wkIogEDBtYnhu4k>j(Z^1pu*U8T{6RlLY?_9g(OzfwV#UyZuDa%- z$Rxmk;3hAOa>|4l2p8qR0WyxgZ6Hn8FA(%~qJS@BE#_|YH#iSj-C9pAd= zo8{N<_zxs_T9S^n19VK+*)>f*7TwL7l{g~(K8|2nkd?MqZA^w&6Ok5nqW3m@LK)Ry zI5i814$Wj-2bro_NUKmEVH992t7=V#mDfIO_?4!h38;m6o#kYS0uS8TKk$9z793q? zVcj)DqfOCgPTJUKIk?Z?t*dqP^QKJ%d2*f4i(izw`L2)0ln(leiQRyg~|p-DT4lUMpUxMsi&r^qe7UV4n38>=Rj;YYss9&l@Xe(~Lv z;Zs>$r~o_I{Ne}SStbJt1H^b4f8-)XLEfO(EM!!UIFj^?V(csPIIjeZF28(D5{4ZE zTu(6&967izGpErI`?i#6>?8K}cfAK8K35LyJ&YWVV6M9$5}y!sp}5dfn#Ny9bF7m< z5g#yp;KYDHDb01QsKFrWB<5;oa8ky_M=cq(FZd0hP-~;e1olp3$HfOlr2f5n3Seq(wEe>a5%1o*u5P!s7ihtW21kyS%4!p`rdVkx!GWez(r02p{N|2vD&*6E>cCY#lw8K-FrdO<9 zUf%o0TgxAP?yiJc2x!BARx><)Ml*2C49W^`(S!lX_OlqoYv+0kyY zd-@*`N;nh^6bDE7PVsfO4Zdrg=_HLmleP=2=|1T&Wf}o*JmBOB7Njw%B@YC4w9(uG zjR|$^JnCHwpz@jk2CB*M`d@;KEFx0Pi_@0I3v|s0l1i6^@EQu|yBdQdu_FM#`8$79 zFBA1^rKqo9nQ6@iQ`rVd?w?EW&~*6JCq7aB>M#C0)8baqDDy>&y34iKU0-f{!yC(E zkFh5_@kE_novg0CEHtoHW~Wors7KW_G@H_1h~Yvrzd(WrX+Q@0SiS;ZK}_JNFFVT- zzVau6=iozMsKKa72^yLtYD$e&+BLL5&E^av}rNnojCTxtN(C}J#wjld~x4xDr{D}bVLHdCpQ9?GVPfQKSG#HyU zZ)KYww)AEo+qiKvIhDVOw#D9L$B&l9i+f{kjbQ3laH7xR>m`4S^2h+Ev)mjt%9#|) z5*eD-LS%Sc4*P9aY1mm!JbL}jyC2_5!RQBGAWk!GkAE| zMy1uk6t)Qu3SRcnIb202jvF~Z{kVN*S9fVSwxtaBJy^~i+g(oVrGMEiw`tOBBH}T% z;k{N&Y4@i$2G2HtuDF5Fte|n)O*zuuL97{|aq!lvXiV9S`=Q^&@F6MI!BU7{HrImvaj-Ywr z$dhT+2+Wf*3I9aL)LCrmMs_=jH-)3_whCt4YbE}-j{a+h50+A60sgmc_!nQKN%+1G z{0O_OeyM!p?z=NpuP|sT?PP?#19S0{pZcTBC|ylVlIDeApc$m_R&CZ!qrK3fCg84G zlmVU5Y@ojk7A=%3H8G9x5?J&hdACBwW9fLcC^(HHoevXee*2?pyT1!)0S)@1`m;va zng?wF&0s3Oz4z)hWzX@G<;mR#GP9}E-Z-S>D59S{6coYNwpcgU^63Yg$LRWpAN`p` z+P|=Ucg(rjgfn!&v~@YZd$~_ah=nOD1Y&tgQ&2F_bkryK!*6~i;EONAw$Sl{mCK9n zy8jVoKTV_1kuv)C>@V+p(<>>bCIU<4WE9HtkY+Ew^V#q96sIFCyp6phQhrW-xK8Wf z4DOOyGp3Xmh?sw3V_)fH<45b{q>}RD^?L|>or*8aItlP5DzonG%tmTLn)j!bSgoln zqna}JGL{4pJj*17xqxOc3#kUTZOdjH)L1!2&eK+=XENbo6?M_Lmd|K<(=Av(`>}=} z&=+b}v`P8X+G(9OyNsK&8WM2Li9O{4U}8E8Cp>`j0H4>NgPs&0EO$~NE0FzxLz4J| zZ))Vqty-0uowy+{$Yr{W1bG3cZPK*T((aBOEoBlD4lR?(JxyGf*rKTy6B_Nz@7h=9 z@6KcrZL!{(y^RS7H7*Zx3bnKl3gV2QC@o+_JL0p#BjX#|KZG!NjjSHE((^DU&jSH< z;vzuYSD=&q&gTxI@VOsmG_$4mTX}|ulkC#`x@>S)^_3O(GH*P3@`B(qFtXR3C zTzA6_fS3uv>*@kcKW+G3{R35{r!i_lm4j$MeNkD*R!W0PpR^x_?d|Q2U?0bX2{ZA# zbW+>WA0fxtw-(~Sp|)i|XdWt5j=*XL0?tu@YA$ z8e&aBS$#fgAo`g+ZdreMxo+*s@_WDhZ_AIq`4xcLU^4WbLF;gxqh(DbK+{;UXP$j7 z&#sdTRhyehlC2lE?kxR#a9Gm@>EK#P!S;t<|BBL$X|;LFwgBDwE7p}GWQ_ah?|!-t zmNr&N^Od6tw}h!@{9A!P#PT{BdhA-h@GIXXB)?@arTtRwl{Z`&fpZO|{bT|wXWZ3b zogsGpsP}qnS7#@n#o}mal@K4=+{WVTw%IdFE81oUt^|*R2M=UsPw;Vh)zBcW0?fe? z*0!kWn9f4QfT1Qbrs*gUd;PhDK=82qrm}#00G^7!OAAN&$w0;R%D9>**CsB^0Rr%% z+u#NGPB2QFDUN$AzYXOf{wj*f&NFnrLE({0Xl4MYsUn)$j8xvT9_In4am+4G;9gD7 ziGXV}39#D61EO4~Vq}DX+LMY-Tou$U12JVddnj;5W29*g*3K5kZpRL7 zS6o?c+;CHQ-EFs(b?dIo44H#~4rzlQu3^WbAF zWOgugy`puTho+)Q_1p_Dw`JtcU`owv)u7BA0R`<{<4KS ztGT)J>HoO%AIfKmTu%#SsM^T-oxfoqo>`B|UkYYkp3gmFKl>)bd7d}TM77Y>y$c9n zoj_pg!GNxDO)fEV+jO;nQ)ptgPpx_Gyg8AJEnBv7Piw4)L1Y7an|`lmn~!k@UaitW z%x9=LXgYOF!Ff$TyY|-s!-|X$Y}?Gtpxjl|!{CFbZjn%T%@`UXW6I^3JRmsW^VMF>wvovt6dnGd z8iF}q>;lcq8qh~N;vGHIo_v^ql?KE&g_cD}+bK?=YA!mHpc*&imKZcZCPWM}GU}Vs zq;vPy?BE)LP&tTWz-eYe>_iBmrWJG@V>p@=t=_n>OZm8-JiOOmcWt@%Ti+=6ef_R- zl#$hRJ_6YsroUy%BZm%TbT)iLUx>_bgzR>%o7240JQILa+hsawF901tdy9Vxx=JHy z?+7pGNw0tidrYaKM_Ue)S3pyZ_c_t3DA$=k&8h$%G^@SUL%=!=_8?2*rq8GN>&W6zkP#sujet9urdS8lk9pksIltzr^w`mJC5 zV0kA&nQCBk zZ+`8|%UfQ49X_E=WqaRtG70u3Tj8(#)+fvJo3`cp09Gn$Wd)v>zBuQ=e4aF_0AXct ze$Qd8(!hET^wxZK=6gx!yz+({)+MyUw((Pd-9f^&qJmBaTIwmFU%q-387j!)K}*fY zJPNQm(Aak)OelEhz&6vNGl*)ghIyPkek35MIqD!bLYkm+EV0tLF74606@5iS~%Wr*EM&M*iQwje*5u9cRhtq#-z zr=bw;=Io$QlZP?sq7%)=QcFmRvln$QrW%Ya7zJsmS)JbILJ6IYQn3^jK~WlsAxhi@ zp%65>5fnH=)V#z{O%=@IG~`l85gmUnQ*qY{JFhzTa0qg(LaFcxQe2gWNJOidmwzs? z!x8UK|Lo6-ftmN;e}DPzgAbG)OkeNYGf)nbfxsOnHEX1u$>LpXet#jLyc!s@V4>@?LfqA^`RoAms z4KqZTN%pG_d;^Pr=a+wqj0&$xnx2Q)?9b&o_OsbA6l~4SC!TyVJf|jlTO;M2uh|gGLEoLAE1lIwjdN2|Itj4b2Mz`v z)&HhRg-J-zZU!BG8)Bw$_N*CblT1_qRxa;yM_7~Tb9eR|JBtbJzGtIZ?m}Voq2TE- zp)boNKmv{NQ$Eft2m+!jQ^s*!O9#Fm+%hH~P*cqkF1{Oe?t!ckQ$D?lkDInpAHl1BwpJ|XL#EG=TUjs<>0vuDAs5jECk>Pr zm6ZgV1JKDiJw``43e}Br)f`o#7^E72s~O=4>r|+AHkVSt8surmiM$iraR5dDfDbxZ zN8%(L;w?P5NyZ0N`8m$<>JI^kXk4aO$52?}s%0cUPG)Z?TjyeCWE{QJ0URYzExFf4 znlg*!q*DAy8!qx*g9W+ek~x+vSz12xna?C^g67r3k333D(xxoO&>3w$EhEqUJg}SG zPzc#VBBp1}WETtm#fh691_BT)h0~~TflC3fZxoCp%sA;>?g#9m?f3&nv=5nw4wgRB zQ_ak>1bh#fOJ9@2jm&4+0+)62xDgYur)y5R;kCDL|G2Vw$3O%;DO|`!Wj-p|RaM== ztS)44W(EvE<{6f^e$}!JN|UFNEPcjID@NTJrK#7i{N%gK>o;5(P2>f%BZb(GH89?G8Z?-wzUz>N@)g{rBQ$ql$uszDTP38tYyEBG`c+HI&1+X=u<>`b zVb5z4nlYnq$BqmLp*ZK;@x2MehX^6*z~OG6ojybu2q3j)&6@PBeoT`w4gxCeIPTSm zG;SBwr{(b-5f>rF~9l+4%IUKx@B)5kqH;8N*MFc4!zx6cS`zpmC7N z;A5E-DBx+fW$Pb4H?h;lI0C=1`ekO+>moQzX3v8sF7AoK?AuB!PmCs+7}NOtcVGWDArZU7PddhLz40o37jo4qd2p!9=g3m!yGS%bn4gFN z%FX%WEm8;i2zI=?KYOSL4UPJ~YDG`^+}G}lM$(|a^`DAqzN^0<;TmCa{ETRi-QC^k zmt*voJFlMDx2K#VQT~;r&2g)4o#Z}i%Vt6YxNrKr%lO9AQdgT<`_C9EW4%-`bl=1j z(?QSG0@Qh(;nYumlZwT-$vE|A<4bf*7(7xg9NiwCI*TP#eV~9M?K?k=-;rlohGhvV zYCmd3%BT3_b@ETPbvE`2`BXa|hfHgt$BhA4c|YBfYXw$cmMR)rH@RGX6rki;m6EE( z%9qxs2IA^)H$!Qi2&fvCON^RlE$+F)Q8K0<7vqHg&L?hub14^N0ca3HFoBp3)lMUE zFF;fuoCMu8M6F6fM|U6Nt9C~T;1VOItgC6N6^YF0qQEi z<)|fq>8I&HnA;6^VEXhTcv0j(KiokI{_7m8R$pGOxtb-kb{r#`{uxEU#j=U;rDKdu za_yfT=s&tAriI^K4k7pm6dN&pba3nRwr34eH2lG!&91Hm2{~|<$=p;jj%s*jjRY|0 z?e;!uegats*V*rl!)FSJ0*~eP0D`Yt-CJJ%=GWl!YGIAviSmj6{`cgBI+OaYSxb&8 z>fj8R^-O33BkBnz9!wGA@ev}$*BjUgqfW-ZBPh25KCVl23m&SJ(1x3?(9d(QJl|J0 zH#B97=44%;IGXGYd&q*IDXU35g}OQ14OlR55swF+JPg7aDdPyAP>o67n z-H+T}e&XG4ijY#t+Em{uCx@pr3!#r~$u*vXca;Y_%C^<>yz}e`ms^sjU3V{A*9of#Nt2JdIGnaA+xQ*aX>nbe^uHjY` zkkbcC>)?P!9Xy~9nzqt>cab=E`b0IqkXyB=37Cr@O~6bC`Z)kn<;8kNpKHVVB0?Zq zJ?8{5)jy@&{uXSVSPKC2F6cQJCwzf-HGVa(ACfGPQ$qLjyrcqSfpucn2(I<~$qDY23oJJyqeih8r2y~cRjun$w`buhi7l_X_ zLuVKr1V|d<5+R*&2ChoTsMZP@FLxB>^7<^9181Y4ulfmHX z&;fV0cpDB9}RHyn?glgy(aCZmURvz#f7GefekLxdAR&IMa5#IpQRHC@! z$KkwY{nVM$U`Cgf;5I-jpUpEq@$Y}OEd0~Ymrs87PIA*fmz^-&GRI8{4NC2rJ*`{~ z7~S*WW92A9;}$n&oOo`_j`IEwf2`bn-y`K`KX`jtw|sGV2MPTYnp8-;NCJ&9jC}3) z02EhL^Un`lX9E~4y)>WYHTuFs?LbX&6ah+kUI9@jO`eE@{8ahSyWUiG?mbxk{(;Bi zUtGOg3Zl8nb@r6#H_LI zlUX#i3lH;2@rUi()yk+J^)jW5!QR%#0ZKEjd3=?l1ZFCmZR9MYZ7!=B9h{6H0e%RQ z?i|#l%)UDD;(9=XRgDO6hSym^*Zi4w#>9I8aH^oJr{dH-DQr+wZHK%PUn{>`WfxqV zpKBb0ncGu4Q8ONZY~r(NZltw9Bq&>C8})P+UB1Hc$#Vrku!x-Z#^$+?TKwD4qIu?` zg?Fg!1U)4J1Zddv!!T#{5mdCb(;T&V91jw#d}swaK}tt!9Q9FCDU55|P~D>riq2si zE9?EDITa@M#LNwjt}gL$7e+O#Nla@_VI-P@c`$w z%&L?1|NO-dmz`|*;I5!*6bi0@W{1-fK+V*}Y)O00bDF zyt4p=UAy{YVya#3g6YkfE@BBL#(K%vW<*eXQUlOwubHav$aQV<#}RyNJ9h5!W4VQh z_t(GS);#|JL75-_qrWbji9+vPyqJytmd8olaQdHSQLz3>>%W6G*@oZznfI6F%ofUp zQ!$MifMx&q*%_cA7?AGgdM-n7uV1&SY~J2qHt`Z%oro~Ys#@exw%+*|GmRhmz}s0q zR2ORRAn{)fJ}l*FW(KFBX}v;I(1SwNRs%RM9pQYSulj4=L#VVGKIPqi^%}qWdF-7s z-4-Vm=9JgSchM@~?;9~yUHS0{*-ZDLQ8^oHDrF<~F9U$gP1e~tKN~JiA$@ZIhB6yk z$MYLsAZ<=xX@ei;E?ESf^!KR!RsOba4h))fx>1aWQj;=wopn)Dk&hhQYw###qZH_d z89#4XY3W*@1Or5hmgeJIGb`ycq`j^m$uvTC1%bqjtyvIl+W{G~jQDKnX*LNX114eh zG)*K!E%2f?rKJ_;x-870EL%5eV)#M}0AyQzcQ#W#QxlEri2Gw*q`eh`jNyt~L%gsP zcvl&6(m{+EUkAymzD4a~Bo~C}CT^6l-pD_QMUmv?p=MMd4swuA@X0o})I<;wh{)`k z>udM|*Q-H60I|+Mw)n3oFUZ`)=ryiJ%PQQ0Wu1Zr93hk-XM?SKc&>hwHa}3u|NUS7 zGy8|BL6ZHK?VJAN`4Ul$WjSDIfpyzsJ%3bat8T>F!38#Uw_H zFrS%#5XUq?Bna%rPq~}P2DMYcYR1AvoX6xD4>*hovXxX;MworG0@55|;vCusDps@< zepkCu`?BACsdRWv^MrOPt*~QGYQiD-E!5jR$}(%owVLU!ORUhrU+U?zbeu;{pPIS0))}P;VlY@<`k_>Z52(fPI~a!`yr@N0u&sx zwpB%j&-&v+H^Lj7{G(z37j2p{XYL&V9d$YW>ulFVY;1z&BFw7p>C2)6DacXY85AEZ zki~B0;a1ol^#QFQrRi+q7!=qjT*sa>7pl5(CUc#pr$8lfVlHyd&E)j=OhG-KM7&D- zA)KDYDlk@R;XhWVYH`K)7KGs@pI4`l3UArMDxYLIF214LGvT3Jm? zpOew;E`xD^aRIcoxT&X$aEwFcyL%3myEg48YuQEST6Rp8H4KoIk<=`7j;mQY9WQvc zBapxLfwz_A%XeLTuhlipCvnU>vI)uo{{bN_>hSd270v^E9DHFvZyb}{^jya z#2CODDC0UemrzSGm3Nu7vNX-+MOn>kr8T<$X`Jo6bDbMmWW@q8QA5l?`v9Blq>j0| zG+P}+b=@fUt^w9REx%;(GfV5NmuaM;R3Mb{u-GEylUt>47ZgT(Jpxd55|t^kz{ zXpB&HI8CNP0D6AcJannfFle4iL$sRA9)aUIs;k6V7%`=?@1^1^mIp99R&p(yFdoCqn$Am1Uz>c%Qt4R1+pXP zlTSX*nQ_sSWB^S(XXuQWm&1%%QgwGtn_F3Fve%K1cRL<1amLNi0n1*FY1h4|JANj2 z-Vv&5xdQ;2%gX#(8I}Exc_Ksh57b?PUfsolR{`+o z$+Co{Iqj1f*>lKEzO1T%;Ah+fXp9bc3WvNTuS~^>y>9uEa^J&GlwD*@b-LWWA3Jah z-1D7B%8uRp%4=V7W0rt9GIOKF)`QO}**}7pzfoomf6KKBB)pp|>$#lgIu}esfn4YB zDW7_ps<>)iDY%yB?_-0zbsvQm2LJBexxeh(LU=~gL?$Z^Wy?4F$#9ebG~C0Ow*r{o zHR)T>lv&>!?aKZVoDBJKvLogkU?@;HS>XWZM3%FBbym;1>MJsm-3cArz>Di#V~84K zEz5+ttC?Y2!DmQ&mUuymrVJ;3Tyli@#lWL4tcFymC^h4| zqhB>W$FrSWfQNbm#wsGtbPFsnACCOSET)gZ zvTA?XR$53Svdn1O{CRhn5ma-|z0{5K5Rq-AXsDAkL5D$fgo}dfwm~}DQlEg@7<=UT z72vEa;R*!J#Y9O*dsSr?2>@(SnM!oEt7v9)Km{v+%0;7wIN)@4ar8up+D1ezgIemF z=TnDE_0ZY=u6N#Ej6GVlY6Z+xJ1AfUGght2K4z4rkk21`vI0^ z>n_it*cbby(eIQ%TP?@+rUIbl2^{js0-XLU7I&2g9(%UzBK3{Q@@5l{rN8c;2Oi4) zhOfEhy7WCaSr}zO)0F8m{OnWxQ#n#$)@;ewdddqbpb1v>+r_KvZ_tnaxS(^IYe21f z)!6-784x6|vuK{KyWRN6^JU}V!SWC}u8!@+x457yn(-_asB0R|C$>z*z&@J9W+ojh zgmxmzI%m+PCQf|WUyR?Oig_Y(mJn=#0Mbb%#$(qe?qz6)Feq>HcBstj|m*;)iT)zMqx zs~RLjgKG$_o4L6JIzf0aghdXFR9%ZwXd{uvbb;6(-}wwAiA>(oQu=ePU6l zxKgl{@1yzA_rzx{xI=_XaGIS10lnB!+i6oPt|p`%>mguNr@J6TfiO-sZ4~7>@|Qo3 zAX35H)!8+J-*vFJAxNgHrFa@+S_zR=Gm%k-iWwL;k!#v<+;{Na!Km9YrG_}LsZY#K zu=WSSJpA_``PK5dFZ^9`CdujfsKtzQrXx|+mMNvLfxMawuFq4;oqO3_!V#t62d0<4F|G^8kVV11Q#JdfXP}o1bgGA&E?HEUQzD&>G#IWJk1Q6 z#|ivlyZW}5USqUzpaeOMLg2qzc1q>D0^xaHw7Y6jo~d<^U->11b@4jSK-Wke zZ~CwWEIGLp1vB*S}sQN17d1C$Ypl2!L$lUA=oeacdJ(2%AhW92xw|h zrb15iJN3OV>+&*T-pVYWDF$Tjew03SSrF0sB=s9Iksx)tKzx=>Yxp)zYM}Nfs3hMy zG#g>Yb{KGx2u-aFhJ-)qmy^HL$c(oXv}~hoPI~~KSYY(68XQm?P(xv(Xr3E$7hvS+ zHa$@WAY_8b0V++@%&zi`xS)7;^UU5wcgT*aZ;se@iWjM}$HB;BL_7}}KjtFDNv)`1 zkTBO)hKNe%(>a7V8Af1o1%4Ys*i2(-ja8(E3K*Th@KQ$^GaM2)3M01>uqIedhEb=C z%^2#>G6fC(#EiJmAq~yLF0nsu6=fcHw~}}Lpk~_C=`#aPF3&Jgo3s`H+=|{T2Octw z=~Si?=CF9_it@ssJ&Q z{k1DnQ{N{@X%pWBzfsi)g*madZR;!ZrnZ;=^z%Pj z=3F+TEL_f3^8n($odYo^&#<-D)@L@AdHBbsklE9_^9&2|NWb|9vzR`1RMinIFE~i9 zT8i@;E&B^!zb}3*(=fa6**Lbp{=%2bA~vH~yJ86i)dDNKS>9OTe8|Vf*F3O-PA+n^ z^d_D^c2nNu`NFh9kqkHhg z5hmzPCLF_p<#o+W`@y{!t#>}#x*Db073nSrG@e0} z^PW1(p_6iahW`O}tk_E^wp+o}>nmD0w0gZZ;Ykq7QOiRvHrcuoynXu)QiPr=fA~v3 zQF`Xjfs^zEx0jVyt}gR?d&OO8Dj{BXxc9Da-dkRC(={w+6cIU;RLTk;`dN`h zV)(&d^Lu?{eWusvd*fYRhKE(HRI$7-X)%;m`se}(rGrb=z=ej{$BlPm3r@3D(56RU zD0@d+%hPR)N?b1j?cKJC0J~|4cTi6J=g8%Xc=H5Jnmv;`V-HaWO%iTF4pae=bnG%m zraG%dOOQt$ZE6*oM6si2g44`8lWe7dO}0M{P0GqzpLti7aWj{v{fq~A;hzFENNfhJ z&$IcZ>+VG1VeHoG423MpET|~b>VcO~@&O{BIF&YR!0{x)BHUGgwf3)d3~yN4*cUsf29i({F0vC6DQbssnPs=5C+pFz2Z2}^ z!b#2rF=7)!D0NAbZfQdq;4&FCU@FW!aWZyc!wc`a9U5~f1J?GwZRJ-#@)4Hq&rMu{ zNwj8?D|bKOvyW+`hHk$HZ?g_A>HRw&{Gnp-`mP!b z=gANOI;UY?he!u6``>$ICi!67b~68AhyKQozrEZ-=(_vEsqRg|juS9u%*H8o<>lC{ zC(9v{q&u7rZ0ak|Kl&8T&Gs@IfK!zU1IY+75)bgNxm~nve2znX7P7(*f2*psa6tw= z6Fl`UTUK6pVRQM`{STGbV670_#dBp>feKoh7%pCS z1UTSiJ!rSTE0ih8`>ns_@mU37-_CtyU~7MQcG`ln4=uncycP!B;|EYVQD2<#Fv8cq z(l)YxRCQGbCZGl@dj>pN89_?9Yo*=NAoKblf#=PQt&=%E9KI`aeikega=q^jYGwuv zFd8>+eQBE68|TrvvqWU>Wk!efNr@$*ZAp(n+t1?266oUX#|Bk)+f0C^{8A5nJ9!>$ z7r4%j0#>L~m4JW>{agnmcm*4C_{cs$o-LqTQQ=M>N98k@db<>}}WtjwF*fdD#Xs58q*(hfAN zOdI|H0M@2WFO)z27on?t+CGvA1s{k`J50^&F<`bVp9v|CiqOs`Ad4UtP`- zi1p}>z2z7ViD}qbJ-thDIJB3?zxOcPz-gMWml%4zIZoXC&P9waW|L-zi3k<6^tc<1 zskY)GKEvqgfM_N%gP+@(-Ea|~E48CBq47-vP#j%lBApY0s(_gbMqM*t6jmY+~8flTU?_&PpJ)zBS-S-()Z-1GBDCy z9-D|wsI3UiVgn(#`?hb(S{)-w)o$f)orgLy_YDjLu(Y$VWkQG4i+XFv2@F2nX7JTf zKZ^^aK|u#?IJ54l{ro@Ny?2~t*H!1cD|c0Qbx!IWs&i77T9Oql$w4-foG=)SF=2r5 zFyP1d@!<3DdqbKxgyGH1V@P9?4P&se5g4#+3rm)j)#{+mId@m5>gvjMZ_W4nJ5@r= zXa0Zk9I5)=d(J*Pti9ISEA6!#*^pJ#tb+KkT}px z^FOx$F3S>S(G$aAZ9~htL@g6@K@(LRpaArm_^f`t_5Rhu?d2G!z+5K7Ko0KS34^(k zRaXDEyJuYxK0xUAM<2R_RcEx!nKq?-_np_5|M(BzCe`MFawDg7&RM|Wct}JmN#}T# zxq1EK)fm2vB0YBEc$mqO#fw=`eKx8vo!K^6r~yhuOP=xylbR(fu$Wja;|i zdMhVsR2lM45lrN+-svzn=U&xDANy4@*A2t8ZeFpt{J_Hxm)i-7(#WL&suN=toRNSU z=3NP0d|^`EkoFGtu{i%bzWH22uayW7@7Pn05h6Zo;r!%7(P}+=(E{MpS?>SfBk?Ru zg8^PVb1nolZ|pqjbI4&aYn0JGoX$x++{(6pD zCjtENW2J#;-VU}QK(h9fcac8mww|X*aq>>Io&^KzB4QaN4%LHHi7 zLOlZ3m3Nr3ZCKpYc@gx&MLoVpE4%=MrB%|_xcJMo&{@GIT2#nppJM|n5a_f4CwFFT)qru?h>Z!3TP(yp?LoWj~JR&{k{i_|#qHfHYHM!ih zbwgP)Z&q1k@+*ko#EDbcnLH1M=fWW_nC1Ws#3pG}C$q<@@524?``#IQ$qoXm#1}9J zVy~AAC(k(Dyvz4vr^^*q-5VdeCk)GlQCr_tn0^a(k_9lWe|Ua-S&56S6VU ztxa2QEYCjst@5k?-=CJ-ZrH?r9YWv)uk7FUdN~Ty6#jiz zd#fGVGCH0sz0~&o!6)zyRj~lfVI&Ot?Dg%oZhWmMpE zx0+{IkQb;ttLM)1zv_uNzd@gJWm zm+`=iEhK^#sX6bH;*&oRQy3W%Xe_94x57I?Rj;T9IZ)SeO(vyx;&~+FJWnM-9Y^T){IXxF-7Hf)tv@ z3O|XQF+dUK57QD4nBb-vi%U!IaqcSE*lR5GnGTsgjEpgjj8I3$U;%cGvv|n3EUy{L zvB@trD>)0=6CJJ6TeE5Zf^ae*UeNqcE3g}Yfqzb;c^DTJd0!oRl(V&+PherSAyQij z*M`x!KZ87CaC1a;O86(@#;=K(JB*&d^o^{#u^RsCYwe&Td_WW{ymc=zQP*tJp3A~BV2HPe?G6y}**uDl*wyp;2} zUL<*!_AZmD8&9DMITQEgo_%|>F;R7G4zUEQR&|vl2lgZVttqqV!(6icnFeCn(uLs( z&ZTqR!H!+$!C~28ClZTkMq9pz{cp>E`o*8&JTTmugz68BZ%Ev@dIfO#N;VzNU$8KCtx*to4vc!! z#!cmg7oIQwnOr%yaq!_}Z94*1l%bQoxKA&_=+D7$4`R&UzimfWY$XzMNQL<4FPL8z zcP%4|cXpYD8mHBcQ^EnVGA=gX|s%*1;osmqYc~#{z>f#4o*QL z@<^OIk-Ihesr$#g$C*eA25K@RBrv#(`+VG?iP1 zdTk+A2@$W1UOdX?#to%@^*pXs)I!Qgc@!bCkp z@M-0@R~_cr#C*DmxoO7I#h;$U#KfLNA-SAk(TZvMy~AN)S|UP-kio_#z>R9hv*XEA zdluuJo(}pH1_lO)s~hZ-E!}WU!`~~Tq5fn5#BaSR24uBSu3dW;tGRX>PY3OsMgk(d zVtNeUIBG}Yps)7#t#%2wKmOxChWWIW)$2Ik1YqwbPq2Esxpqxc&<@tUjf{HpN$|aN z)e@LAIb4Vjn8m&nL;SBpReYIn^c}D7LTV+G9-HpYpf;@|mE=-V37jSW$>~d1V1mGm zb_@hE&`EeGwb=(fiP}-zxjc`0RY#pO?JK9xp2@Cg8JSX;M*aPV4wG8qT3I&L*aHX# z0_;Xz>hJ9fA$xLxK5PaAgTm7Uaa_G}HNJCKaiwS%8QZTIu~I=pSwZH%bEr{0=RL%) zT6wi;4uR}nJ9(C|pe~<2U-lk6TpoYNJt2I(NvaTMyDyb5Jo&9e+Pd?*1LL-1Q>E0I zuVPV!dSUPpTG6DUoT(%^Dmd@|L&=B1hus1{Dnv`bFnereD`hn zyZyd9%GL+(E?w)p$~>F{(~y3Jq2Ak0;6ItUnF5io-L$rxV?U9!JsauIv%Ze*K2o~b zFnMrYhZi;&>Jm$KZS!*P+*U1BV&TC2IEgp@Zcz zi_R#En<}P++#*weVN9U-Fe<6PT46#82Rg=NGD<%Zs8WsQotSudY0Ad8m&R#}!cb&# z4QF5CU7Z}2sm2`14$8=3>CsFD;;a$B+93x?hNq`CY9_qF@w*r`v`)eKf>42Urn+mc z90iU^EXbqX2Y~|xJ6Y(!wItK)xey7e4bML;Cv7^nt<>pQRXM|hm_3~bM(whkWt4^^SHUHQB+^l6;+Pw!r3K(DNWfmT+dcmm`g0NlgU z)Qwvqi0H7X8l(nJsh_$;5XD}jOU-Sf=fOWW$aMfXkLc~3Hs_y(IM8(Z!Rx8Z=H5z| z5uQ&z`PD>QnmB73Qqa*uhZ6E2!;%?vFxHz0YMP5Qwq(_!bYIcjbe_rG0%N-Wwk_p3 zB!icb40Mf8W->R$t?08pGs6pVCJ{!zJM{F6;(gGnKXs2J5|o7m+087YLc?L+YUN(!qYJ9H<8d zyLt}5aC%|3&ZF*mr6}jP+W%7R>|VWTbvXtD?xS4pgA1oH;6Baq$V!5SdmN_i$KG*o zxejSZ`)2Y8BXxf1Yu`%Zu-UU_$06ZXfk`l~+1T_B;p{M~whc!5-Usf$KGk3TE9-+~NU< zP>+V$aNVkC_e|n70!L4~4;BLmKyB1=FIss9CMFC4hb3F3P}7lCDQlJ6+m_ zh+DhvC1KX$sEyLh$gvktuX>TZU>ek=x3Ntv3Uxc-N4(<#=Y3B{9U_QIjmq|P(kX~| za_Sg6uB%<%@CNR?eMRSjfn*SJ8M%0<40j(XgFP3^a4%}UhZjyG?4R?z?6c`8?6-?n z>{`Isg-xT8jMI&fF+DLB)mLqYYJLpC5Qll6Hf}<$EV3(IMUtXsS4_iNWn}95Niyvx zvZ1yoK_-A`i{}EedIy#nz*e>|4RDB}OpMt8E8`^wP=IWH4)uETP|yOe0YFwwUBaE{ z{Ovqz2SKL5usT_(-UxjcF7)HA%CNM746#!F)tA0p=Ce0u@zUj}HP_0n9Xq+Nft5Hl zCg2uM5}gks&tJAM22<+I=u%5eBcKR-LAru>P`{sMMRctP63t!p}h6e2QdQ-GoidM>1?9 z!dRP}i-7rgdI;q|h$?I9+V6hk-f{^^=;<$i75oD~!I4hJ`_Km-DfhnX-m(NILJsGn zKf+q75x2wCAYk#;dlG0E7|)`@@>?6NjHjPdieLHq3*{Q>(%4P+ma~o6*O+VVmohBV zmJY*YJ?TLSX_N$ThA4EvpxRJ%uVFJhi(|w*K%M+{@mEDOHAmN~HL)*lzWzp3^fi$- zLNC__iR!(IjgO>j{0#!9W@w~h6eKXi%pkMU?qv5()nKSa$Ljk_3mN{JbRO_v?Ci^M zi{5zOWDj~@_0A3UVjPzd0Wa^H%r5FDV~#KZUgbP8z!QE+c0c0ZnOY?^gqLwiNk*7R z(kXa%G4sd=+R=_WrV=$vox(hfSFQ_uVmo7=+%T!h!HtjFD!m`(4CA7r;Fez8cEX$p zaaizar^j%2V?*R@iksQF3KJ92a?lvhMF0nA5@{KXDo$cK#>*!g8IzM(67a$2a%JBW z$pbVyD)1b+;DO6lJEKt@m9pT}iD6-Yo*6!sRn48z9T4h7h(j1Tb-q;@mLoIv<`4hy zGvx|9VppzO%`V@?Fsp%b24t03os@16dl#z8U%$G$+(GUV_oGZDFj95A+VIJ$#^f#n z@t0!YoG#O5kA+f!qVsyr+}e7>`tlTcVveFND%t4@_KH-@T&TLKI?ccnxM%NPRGcZ1 zWK|D0-EcGgIhF7Q=i59m^N?EHEqxl}^cbH^yOIfq|aI;H;O;ITGPy z5W4rTaYCz7Mkk4(nD`*RlMNlw_esQTZ7NGQvOAlg)6YKj0*;ze)~#Dhk$M7Qm!O)x z3sue4*I-8_($9b88|4(L;X+RJFnr%Mty5t{GM@ngT3>znr7{nR>BEmaP!nHTWrwP&(3;nE@+&g<@#GVG?tMI(rrS+MxpnNQXhdE?(a5 z^MLswNBra{&%pa;}73^Gvv(T}?Mdq3?lE4_I2jfg)eQ-b< zZcG=bn1;gJCt*();17&r){=#vmQhLkuKwo3aM0BXg}1=Y^UM`g-BiSiXOG@Gw@zwB zfQ-!v0U@ZH`e0mm1XS-R7UP|XbOcN_SRe>N$+88Kn+&yOwKPMNN?xdu(^y?QK~R&w zXJ<4WHm42D_$@7AiSRR#02Ft>^yR;fnzD4|in95JTe2frW_IbyrE(JW=q!x<1goa; zM>nrR0zj(N;}U5JQ$|0=_%rMhRz26HtgTNZ@HpPZt5#tDm{IPAX+8bYj&kq>>KyQr z;XBC!-uW@MWgaeeGc_J2YTdKFoW~9%-%S|x5ANTWlQWK=!1xOSyYJ^zH!)rdW|g&f z-&}fG{rg~qNnrp}@>m%68(l%-(ype8)`|3C5TJ^Vd%%bU_c;qu>8NoCoCO5fCDw-{@lvJogNF_r$37450dYDu{-D zB`T#U23!5{jxcnIzHyG!@X#mT_fhdt3eK{AX)m1E1&loA4km<-VM z94t5I33s#Hb+CX;0w3>>!&W9wssr&5~6ce6yU zT(hohd;U3+(qU^GPaPYZBFr<9@yvm{kf&~bhy?J2R$$|z*)n+O+k``~%U!1fuvH@T zNUYi*M?_OVX{k{L0S&)F)0A}qP1L$fihk4@IG_N!cDI5DA{vXOWNFNxww*=UFpXPj(QT{98N4P_>NbmmIiH8F|q~Z8Y5S$0ENv2L6r_vD=Trc zvR}EO(A7dfcyzF*5y-5jXv3NaB8A79%7Hn4%QGw)hQ~v{!s`F6XP+gIvM0`j1#IeD zyM6;J=Vo%dtS+6v?*utuRxX@V?m_Y}`+v@ZVv=1LdXZSV*{b3MYIE@rIqibxBVLEJ zqDOEhQj=*hpMPz4IRMkri0;-XFDKt@i86#`Fb30)9y@*_xrj}6H4D4YvK1@KaqKJR zW**=my=&OKvS2~ntFf=01gU%JS2t2#8%fr;KK}mF(s}*AdHFM?RIvb46JI0)xCov4~jYkt=ltzwnY_%t-oIZM* zP>CZ|?%}t+r(DIO*NgpZ5a#E?Fa#X67mDkuH*Q^0a!^{y;;;J1Ura5G*D<>bq=lR` zlL_&d3L~0|Lu4|E?gx?D&T*#Pes-YmetkD7GtPt=N|XknDk!+vFJC6V`-e9Zmq!$zYY(;{-sG1py=3%g98^giVa|6YDmaR&bT?jzEvA_A>F% zcj+B}O1cV9sE*i8c>{LC4dWl8-oY5MQX|5t-3kPyBgPhHMLpKdYk-J~t=uxklT`Ou zO)$JSH1iyyQOwt9U*k`x$Wav@t$jjG(jKDfp%GrShUR!qBYaOeo8+fgJ}16cx8Ab< znm*yPpZ#3<_{Tq1zVem7OT_j9TKcm!Y1Ir8tj>*jdD;?9NXD^3)vO)IzEetUWOrI!-uxMub0vTygUvS!1k@;%@G(elN=_&kR63*}~FvKCHlD>ISG z&a%Ct*STRHzvn|AEf3uN_Og8O@^XbeYJc>bzg$lL>E}ux{XBBwB&&22AsOpvvr;9@ z8rYA@WU_e=%>x^mPY3~TTDIqagi7NgrSWFw$T@iEFga&lE_dC!1q^|hsOu6=0MWr| zAEqxuFbVBx#=Bj**qy$KTgUeuDNPX69q)dqtX@NqC&;3M;4=2PE0?cEl?-wLyWqOS z!1}B0MrpzY^$M!-w98W??Oi}6Rod-AqMHk>FPtKCA53^Q84yS2;)x^7!>}C*sPeGO z0F-3#rokYk4Vj6m{)l5&T7UsaOfs|#h`Du~F`gq*%QTwsz|CUuHW%>-5|j>*bKTvg z`BG9A9wY%MDfXMcmeWLC$n3EC^kf0S$i{U11RB27QVp=upnjXz_pnWocjYsY>m(os++XEKL5nm$_3Ox zaj_Sb?F@_~DlyWVhUK0sWX&@~1BPz~J+~e$MIxJv2lm#7?kzXnenW8cGSb@KS9X-+ z2am>p9XrYd?f^So@TTDH$EI|JaD|hkV>of-WO?c7m&!N3@>JRL+TQZQGcN|t*I-;1 za6TB$)3J#i3(QaO7u$)D{8ucn?u^?MDX*2{hAa=1|j;vBV)^kHHsHLD)~> z>O3}M-m!f(tL!qMOyclZl$5+Dq6VCAbJw_9#CT69WvV(c48MR2BvF^9inPlZ4Q!3E zfA)$cpQh&lG~9_gs)ps3s(=>CQ5#h1;5C%d#dOFCqlZE*SKfu0NgNeFSEVF2Xi6ul zAY6${RV6#JQE{9sCrvT3PR96FJ%j+r)TA0(Md+!hhm+0Xfc?hYGiGrBHWeddf?N&W z>X$3Sh7B9a`#$i2@_`S2uzcvTM@#3Cy=8qzb9rd(>T);Rbc{w8<6NDXjEdnZatWc-%QvH#vmBoQZS;NJERr61a8Kn)3V$FP9@{FUAp|8ZNdtF0O{F*kT{Y6LSh=$7X4CNt+YXfZv&h4Yq^CLAy^SmJGPb~=zWU-b<%vK0 zOgVk%07l&&axQNv@BgtME+>y3EBkjKF~VGxARWgb(t);!1xSZsp5sJy@c5bX8SGRh z2Frnd^iLCk`E<EvysSFZFxFv72!+c5dI1X~ArC+_XTqs*>6Z)s|csBls}i z+VyNCswtlouP(kgcGY-s$ds+}A=@TUnFsu5N(Z^6N5LvaJF)eMsEU0y1rQ+&S&`h+ zinwL(fT@7Bx^dn`J%;p4AY%K?Q+ z$4|rfN6U4KucN$ZgE|nSdm{wjQ&tXMD4$w9R(|aA2uBwmDXY6yjV}sg+1oamc&3HR zI?E%EV&{QDJ^8m!l;^(vT;hf7-(7dyQMMC~@rPf0w%m35`clJtbrFZbr+)Eg6DdD{ zR5K4|SuHRaVnNDjvuBnc`Zqsae)DI4q3qtdyKK2}V+`qALMLg|A)wGXp246sG z)Q9i9DQbpxsDr!q5=(Y9#(y{1hgs2vgzExe0Oxr^A+)h6g=&M6&{bb9q7u5{SE4%% zvs}s^Mo-1qw)<7O*-)k|TaCAHerf8v9K08YV;rY%N+LW)sw_!9 zz=zWeevi?X`0hfbs-%|UL!Y}**f*&JO=Y-TA%fpDr^d=%!pk>f*|N%%0yB~^H_EV- z?7$#HE~U~Pzt9I|I#9LC}>y*2R8$6@en~lroqiR zf<-ebz9(DMuz@N$CUBJgO0Ukf_ASR`UA20ZGn>ZJDK!I%28SK4iRI1g&|ELm9Zatn`%FpksAa0>Lv3F zQ_F8A5TZ(M8vvq>Dol!c6;%!Em(fwXl3}=emEi!fnub(WMP^|t&r;0IC0xh9ey4u4 zA#qNbJ*S*GxG$$pIuXGhK3ypT+wlQU1~J+v&qoa+fD?wVI&r1sa z{G;Dn{@~yJI;!ufZ2eJn7#gS~4#nkH&6@Hu z>gtC+`AeB%?V9eVoLIy>oz#N?4Yu8|a!L7(PyHx)m}iyCZ0vsZ*;hmC;<5PX>aXPK z`DSibmtm>iX+s)d;Z+)H#`s%VuIZTkU!tT>?zMc!Bli)^N`7SG$0VkXm25$g5U4*3 zDuk_UwbHmw85w50vNi>bn_%qzRuij)9^lD1AOQFa;SF*HMZ(NO zAPr}vVJFk})!XIDOc4O4Q__h2V&IIGN|l(Z-y)UW^^%i1iB>G~C^AO$Wo6Z?BV!T} z>g@7Bxl#r}74$b8T~+6wU9|U|eyJiZShGGb=|`=}DHX1&z{>Fp*NOiO$TZeU!={Am zYA)k9&dP}o#s}uW3D`{D_EecVa;5ZRoB81-t>t5j$5Y&pw<;n#z%yNq?)*#GK_rsp zY`lK_gC9l;QyRhLj;f>Q%xeL*tOsseTW(!4yR0W(Y5^XsNlX@2iqecKws`Tp5ERNmQL0oEW9c1dP7)GJEuP?hLcK|F-MPAOE{gm95zG+}`rq3)^8xGIkN0q=#%y ze(lBA$~T{Unk4#rvFn{Gr;wn|k!|1_M7@+YHgCPXEZ?w}?Kkrxg}MtsLTd#9A9xUE z&bA!wTZSprxj$v;YQ|78D}K`FiXg>rrD0>&;z_gP(2cQ<;<^2C-a>%T2QwYU;WHO~ zgGGgnTXBX$Ge|e~1E$`O`mX`n__Q<3*(4;s8SLjwHV4Y+Xh8oJ%!chibM%pVA0Z!=>A2OG`DiK z64>jaYjCeBrVLSg7jID3MHbaqrplg3W3J2tCN5j=guPEeM}ev8I}#v^j1r~`hj<N~bS$zlw*kcM#CD%MfA#0I8H?TrlpiIg^9YX zbsOyFrbgdwY^oSyja}u-&tpGXN)-$6KkfF0 zd+#qVe(}E%eT<#t@X2h-bq*$0p1=W+8;2Ep0iWi(Rh8+%IBk@*3r=Z)2!xe$N+feR zzNd76Bm>Nk+baI`ib>^QZ>>B-_<;MzX3rsWCPZ-I0z?1~b(pGvv`dW>J4i#vSd34Ls>h>w+;SYT<^|;V^iL4KN*CS+4 z*n=_tIHzP>M?aW7(Z}VPJ{W&CYj%6tf+OLp-+q;qe>i>HvT0L!W!r0nhkP4Gz!`Da zG`DQtOhWnv<>-+kW%u5Fv0X{pd96OiSUs+}7>c+#NEY*5Al6Z5;0C1}J8 z#&0QPREHH{pyORlM`%vqrX~VMw&Uu@9xswOEP)pu#Xk?DzQuLynhSjZ@>9w za$YT@%Nmw#)j1@wITG2szV}1r_kZdCL2Bzuwo>g%!7Gs&X4FK7-*eyA^2Afm6CZUE z74^E<%I?1FPEO!Bm+^ZPkeM$I>_1R;u&G?ecm2AR<)^>@(el2B?-o5Xa03{3y;@~x zFoOID2K62!l!lp8OFtncXF#vkDO1a1|N4{V#<|N&*Y!7`itZ}^K;Y)v9=MM)<=F#> zsx=jr>lwUdlfds=Vc1GRy(|uwFI)=oPF=DR4=Ik2UhGvg%~~760!zVH&uqI!zsHU2 zEIxKn`cN_vJQ}@qQZ-`Qo>Xdi4u){i+5FgfcRx< ziT{FjMuF#;-a#<|M$pLz|{_Hb-C9J`iLG95)1jouiWiE8Ff&t^vW^K3&EipDD z-3f!BuY;)9BjkfqZF3u%l4|%7CG|YIAkai`ER2rYD?*VwiUD+1+e9O3qa08daFT8L zqNB(?2g4U`Q~`4gQUGZe;Im?4JZG?q#iO=CtA_QhOJT?oZ57%>f~;M z9CgKjaiu{ANxin6%kNwhKdWEgS^w%O-TdIg<@nB5%Xz#~mmrE6oa~S!Y&;Y3B5kpX zXnEpo*M28`?7Coz{I=7VTh3CeVi9=-;4Z|-a;KeM{6 z{M4?&Y#^RTtd`>WS){IZM0?XayHkHUdA1%V%;67z|98u8{MXNx4?O-zdEfirkKM|- zs9e|X6SZywR^9QS3L;@u3kx#>V|63zs!i+5ZEwH7y!6$tk|=LE-d@He5j)r51+SEM z5QnxNdz1mLGA!rQU|O93+HF)TJr3JAEw2y1_rdZjpZs{4V^FGfs0vZ%MVM4K$4DEm zb@lPnqAF7{+&_cRzLS$)e%Y=NKulix36oU3*W=5ii}w2&=8+P4O; z_LlR&c=7V3WgVNiC9LkVm*SnZ{dqTSwcA{VBj`nA_2-xODqQAwkW%TxFO}`c=jMoa z0ao3T(U}NSdsnbn5r&0DkD>GKBCoV<`-Ue(TJk=$B;8Hem?cLgQ7Ai1i>TF*s9KAQ zh{P_F#hwpmjNW<1|_-{b5>O& zPY6Pzo52|~3t0myq9?%W1+CR|L%&c7h??|+qR<9!d7 zS&NrtVc5BC5AYY0MaW8G2_s^#$4INP3%iV-!cN@JH*UR&!#fOb0Ky^Mao8X&WooDc zPjzWUYG}Lv@iH)FW_fUSYw5xZbH1BBX2PBMG1lrbL8Go@m(HDKzDE*J>gMPk>|Ou$ zGk;XBoaxePxc}jI-%ECj3mn;V2pkYmEBlYxRbPJPl`yO6jP=)k{uAZ5fB92o{v0;g z22Nm#?J)k6WQVwT{$e?G{3IT}6=i72f-+;tTy{`2!|Y+Gz`|Tzzx1oWQ2w|7<0s3@ z&pjLB90uRIdr;vhpr`KwI}v)2?l$7>bPJhMsF_N~AfQGJ%`?|-4C*N*cqv6_Z>^ZM z42b>!dl%%GI(RO<2qy{7XEFst6(s1CfdREJSvoYdWhJ=MqR>hlP>=v>2=BlMpfRQ> zhnW~$t5vK@`NZO%IaS4jkusmsn)D}glbM>kJ$3LSDmqWy0_6H3E~rsS`|cO5)Iiif zXs{i_c?(&Dy;q&-g*3^+AcI#h3A57)f%YU*a`!`U0j4Rd%paZrvuwEK3^t4jfkcj^ zPLkRw0DN6|_)~N=5*}E{2kd_v&VxztBeQ4d{A+g8tqHT7R2hx~^koqz#NY#7w1DcH ztA5&n!zwQNLlMwHD@Xxb1|tA$l=rxl!ZhyH8JLsSkl;Alp||dKxBdi^Ss$~V_=|L! zCjeN4s7j?L`KPM6`dy(!>|Pu_LV^UTPM$9##~_FQO~< zA3bmwL>(!cZ@s>(-Pi?Ep8+517npIY;T2+o8KUSW2`i1fd&aI!; z-b*{ojksW&{8f-=0b|1B8KSSESOSbegj!#3f;>T_vaoAea-3)Geb+wozsUKq$KO$& z=Csu(@${KNV(C)d_QU1i!9$4yyPJT}U--$7m$&gru3}(gu5o9)TH3^e6Gu-bXVVRL zY%N_k-B5OZa( zwC2U)3@sSMRixP-_J3-tnz4Lk>6q(2%{0v`6)uaPzAwRxrAn@l(D;1g_pjB41L zSb1P*dZ{^Jgf>U9&6(l2j%MUS&DIzRwk*zNp!-fUp-#5q-WIS6jycUi{1HO zk3{>I4fT_5g2Ww=blbPt}j3&huOhWj8%?~WWO8*kZC<`X-X zY#lHGC9FtBnh&@rg}TQoZ!#H_DxFzYBX2QXJR$ljo=(yaXmw=P!h4)j}A)4{3Ws$`Fpp z*vlfK86*7zXLEuK%voYj)IRUG!YpJwItHv*!NASLqvK-=Q(|uHpG?WK5^PJOd6*OB zl+yIdNsIPP`%{=5oFir&XqP9UJ?D9#AE^uGW!;gAskeg^G1|J69;JQz$ZILX0Qes@ z4%^$Mi@o$!W?Bg)wj&D2>P&ru=oV(Et#OPwHEE}b4dg3&38&7O4F0fRkbbKQ3Omy# zJ7ycy&^`(KVlxMu8ewmMt7Xj8VNy_I!yJPxilfL$3{AENTN9B)j5+3F1Tq+< zFM%M0-f)fjT}evrBybhyVDUaT|MZxWloRV}0dXnrh7Iv)6#N)QJXHRVoxd% z2Sc}Y`wHZ&Tvz_@~wL|99loN?g>|4}MSi>wo`?WiRPcW?-9IPgVvQRSij~ zg%xb!l7(eAD&tPl)66ENG3#5HR?aXNV?p|{3uj6rfsL-5wTItdnpbb(q@GJ<>`#9K zM!AuH0F3Zi|=G&mnflUZSKaD~K71Oa72fQRoI7u8widDW%p$)JJs zBmi$jtHFXs$~)0sB9*e1Qi6=D4ZT_9`>`Lr{D-Afu>hl}kmm5ou5ao}oC_0eh(v0c zXpe#VRi-s@Kfi70JM40jHs1eWS%1&lL5v3Sn7>vI?LC@RF=_!swtmw(w(LyCo^_&Z zfBv-!rhzMS!U~@pO?zH0Q$Uv5mbaD0&0AR!Vf=sjJEiU7iPC=VNE!RH|5zrUKUU^0 zT=2%6xFCtd!-(R}sr8tRz{HE~NsZf3E|BG*nfzC+Fqmc|@nNPOm@8t7N2-GjNHIZl z2v;e9&WBuOT+UD!7T>B*CXM%kiP{n<>m|<3CL_U38&Hvvz$j6b$wP55Un14SZc4o_ zbUkdlS;rp7o9=lVQrZA;nqGeB{U0d3!>r=-7UMddlkki-Jg6P~c`Vi-IC%4tW#y4~ zJ`58ZC|~$5zgy;AH>c{0o>QPu901Du)|Z5)OMpp9g~aF6VGFBq5y8FFeb^<^8Twj zX>KZQVXAvlN^Duq4c`q=)s`j0qf5+jB@hh282Xr7%{J}`a1nCq7!{xV3q4zd0pZ4D zWxpcK&IJ$hj^SLoM0gCXYp9RmAAFRCRVi&tX=#8(u$6vjlQLXNby-F|MDT0Eb_~~{ z?LmHLs}H@%F=6yyyhxBburN=&Of&-%q>7tH!@C(*E-KSTppBFyJ8aUB&VRna^uUGq z6!5eb9CVeUF*7zeQBFvmN@QB@SsGz5io4dp8~n@a3Gy_n8ghCHpv;75yNTM$GYK-e zww!3n8%B|hq*USrXlBV}rCj45)sOFlf9bHelt|wN;u`zS_Q!xxK z1k3j-X`AyQn)B)8WQzSq;%1^UIsW6{#BWJt{JV20z96xO@!3HU%Xc9ZlR-*Ym0gu* zJlFkyiJpTk4ApxpJY2Q$_%ADJ*rr2i^8w5V??8^Pypx}gl(q@&@UFjG^=IQeZH+c4eK zapkdKO0jity#~`8LwivuFn5`%R=j3JjPn}pRI0w?q6qh}X@T>t7^z1f;8qx*_X7vL z_k349G?TDWTIeB+O4#ubo1YUNW`R^X)<+lxw5YUV$b)&SjDa&uMrqENDVd54tpR#% zB*xFVX{D|lEha|-SE5=ndIgeE?n!rzjI))6t;P?-n9N{Xc?)4i?6gqzl;OCjwIKO* zPOSn@hp>r_5?-PDOT)kh-k`LH^yPVn!_0q6vd_Yc=$BHdFcq_!Bh9Fj(oH$L2s#V_ zXvNRYYdWikpfVx~Opx2cKs&BhCk6n!ddkci02uIuD~epWIE65EiinDT)R4*3RSy4W z@|_J1shAA%g{#vKkv6M61LM9R(_?&bG4UlaG=eDD9? z@AME@cCtD6U7!59^2PuAe=q0v?Jdte^HS+TEn7QfHAF*ZQcmHy{jQtJ%S3s<{@Uy1 zI{D(gXp~)mF9#TO> z1Fcewb2&Whb_`S(uHmPiVB_z>(zJ9{Y3kZg8s;t}gn<0rGBF6jIn9FPq<{+|X(FXT z-im2~43^D|yb1c^g-nRQtmq)A_#hr-NeeaG13N|CzKYjT30)!(Kit2#_QuWFYdDAS z(z&#geo@ELuI1(XR*=3r(f*w6h=eF{i8P*Ce2~zI{o7w7P0pIqwVAZdBCSl8cEqdt zX{6D<6J@A%dRcVaouq={5QZTn8v0c&n2b}VC9L_=j-|82gG2sr}2e|_?hH99Pi-9H-1&In=z>2n9_|r#sqtK4(m~g^o%i{L$a{A=)lq{7}0ZujoN@Q zfb2N(GitS;FhriFU3cNQ zMF@mV|FhrtBmeeKe!e;E6E^0o>9clLyl2-ONwut5E1=+tUzG=mx7U(LdGEOd1_K$F z;kT?h)KlfT7;))g3Di3vl;uLfcaS;n@V@fkAT!j~R)xK)U@H@Q=8?O#2Ql3b`5Qx- z6K`+)bQz?|^ws`}CH6Zvy}{*AFQ4V|)0-2Y{v7|FBKapJ->A3x_0RtmN)y+_`~IG2 zZ{nGsZ>sW*ex#fHlcwq1EOd|e{@kyWzxcVIELV;nO^QRGZ(O`4P1ad;%HCIVj#4WqJaYRxOZ#IVD>aN(LwjGNf6xkO>@w?j zR~zSCLyO_?r%#~ITLmZtd&=npFr9ISy&lMNV=!Y#cKmGX^9Ke!aaHf^QnM<}aOF7A}9-Ay$2XW62%7 zYWsJU<}duGG8Zm&ta(Os!XY@yARGX6j5S;}V2GvPRW)2%EFqL2Ej zk*Ae3!3qcrkRJjko6ddOR4g2TyR~2_8UxNP^VgS_zSHRGJ*C0z0CIxDGHz*K7ES@i9htt4ysD2^K)I(w z#z8wmj|lYz7;Gyd-T=-~T|90TH{1UJvo#3vGq+5RZ!jL}18;KyV%n{~J6T~^)z1)&kNk5O zUIOgRzbC%?JZ1f7{K{7zOuU=l{NtzfNBq31TkL`Dg&f}(>PU}VN^y%UD503nk_ z9r>gU`s1P&faji2;}THR;gLIpO_pi2rSzt5F@}4|ORtYWm#iFceFS$aBBM*WV^b`{ zw87~KM55YA2;Ud|pWhHq?WJ#&`d2?&I`P-{kIf@2o-@H#ZGc%ZWawznKX6gTqIfle zC{<(sNmLDL5$_o=9dnW)FxoUG!ZXJ7P?>p8PoVRs5y}NAClWIBNK60jigq)xhV7BQOB|TCHhmkqdJ(*!pVa3O z(P2#RlQwX+9l=O-%hVDv1f~setG@1wLE7kNb!(Nw2_yiGm@1w4Gky1y+YFL_{Nr*Syzc{_ zRsU2U6Tc~v;uG)Z_3?Ln#mk9(<2lcK?0eSd6kFFsI}>gD*avx!&k5$1Py6jlT%kkj zizF8ZNak4csxV?n$~oZwYO< z`clcBZNMA`&oL;CkN+U6obDW$+v_hUJlQ@<5TGSErDV;*LI>Q%tCe@xj@LlUrm~K( z^fjxN(j!Mqz07T+x~Td6^h0Ol;}D>}s{70*gEN126J^xj+*D|EY$PW8C)c2iwFYh> zZt4LTVP+G+N{!=yK?m|uU-C@)ERrHZB!3MsypMgu`?|VZK*wB`!AYgPcnTzL>$D8S z#I85W$xy-LqX$a;@BXwjpW4S`7!oB32IoCa#ApQnv10XsgYX+9B&^9;`3H?UVnKBu zi~4E}hNo-Xjeo|3*p4`=d0HIznRpNSM?g>tQb#fkLR{)d4ccEk4AKQaqp$jY^f+O{ zqCSeQ=Dr)fTut2bumidJCNMBS`up~YxXz@i4cYpnjZAL~Ca7$xfW z3L%+io@xA&hGmi?NI}BW{%Z7s3D8G$b5@N;=v^IAW7HU@oz$gwnE-Un5Sw6$h;%rJ^yZOpw^X113VXP@Hg*fQkGsFc&q!RcVX| zeCIFtKmH*oy+xN&M#2%kN}3{>_>nsK4BUCRp+Jm=Hj{$m;Iu)a56ma`#0-njBo zb{$=LsXiNgj7v%7@e!K0JL4|6px^!5Jx6PvxO3e z&#l)Xs6IabwNm@*&y=>|YmuOM2vdRK!_Zo0&Lda!BnXLV3mxyQfFw0U(kexVVI8Up=l4y*D?wMm_Ae-HD!Y_C2cGoY_+0~ z&BQ-QcDV`(U$PlPd z7oJhA^*X8<5}}z3C;`3OC#4+chdYsOD#=?WZ8ktPCxx3{jEQv?(9!dUOVfglrQzyX znk%ZDx9)u)CKpw&ww$gb z0p$7XMv59wp*XD=8Cw};M}f4R)>Yw|-A+ggvqg=B(c&wGX$=mw5dnFvG;-=gbNf^z z1=3fdoA=SKc{kjc6rUB@B0qW3xjrrYg~6{ zS+L>GGX2Qza^;yXmw`i^!b+(4q5Vh81+uDZxV=z=fXH)W%jqLaDG$XS0tD>>h!AwGtq`X9RD+q zO8PIs(uS5>Hh55681RmL;V)63990_$)Kv*)7by+Glc|h#pDiQLe5KT%c_KtV=<3J+ zbd5YU`Zn`RNeI)#kiPlrXip z$EaJ$LDwsLPw10)uQ^2(5(bJSrwVAGBcp>rg&sIXxj=zW_v#1(nPerE@|>ZID;3E3 z1pg#_hcaqV8qCnM0tKy__cWwn}`}w;oKQ%UI>k8ZY(rn(LAw=A9Yrw zCPZ(!@(^NWnA$j?6K&{V0kVMCh$kf)^%n*Pa0F)R(@`t}1NexhfKZjvNl08j^)!tD zpdr*xkh#B)2?bE22cIq+#8d{^sAOJQLyFbaMb3%C&Rhw!>sT)p28jBCoe<|aZZYrk zzjRc&f2_hut^gh;B;(^hCqSt)aT!hsMHQC~MRsMitSeBM0V9mGKsj9-5$SnQNuw1r zvkePJKOaXpnxI~jeXFSXta8!VXVqlnUS6WR)H`_7L#27+U8RE{t8#RIX+C$X9NBd! zk(8b=K(P_iZn=!+T4O=v%0vjB(yp{o<)I1qnk7pRqaCuj>suE*HkyN^hA| zMmg^I%KqnJN>#v-$LT2f4)pafhANP71RJ4}%P1llOL`VustHqa@y;+{l3CPT&}cwr zVAP}_v)$@2K%^qzA+w1ql6P6_JR zAoRS8H==_LM#F40yGG!G1%V-R;0CuCgdOq>F>D1O5l;d@)N$sl z5~Dl%WSVRaL!~j=Q3Ie-m38FIBKoa;#u>LSbeV~ffV@>nI}zV~huW3uqRxm>+>lXJ zK|ger=jkN%xN5n-KxSxshHty3*>fI;d5M(?#-VNN_OgV}v#L8@%h(owS<&dXtCYTP z2NjO^q#_~RJWbb#Tsg=KWZ+$6-Ga`3sR7iI&jvC><(5dy=uq>>b!Cq}ftW%M2I=Y7btv9(G+Z${E~+iS)V|bowDITunqlmaNGxF% zE-cCQ%q^wiO4?>dsmF17Vn>Bz43+0VSI2JYoWB%Lq(N<{o~%l4jJ01zyGoQYb--WE zzvH2ti?*~si1a2Smgi_+O`xC5OF|06q5y59N5dp|Q6rtUC_5POk%okbfUN8e;voZv zc#QCr`x=$l0pd3!RmC%dNNA_D9SqU4DgloS4nP46>y~h3dQMxIj^70ko*Gvt!*NZH z*(&E|xPyde_aWh#s@pm_dNM>cMegX})Zu&T;$AWn8Ir44%5vXl?q_fe z36-D^R7DwJ09;(v)Y&U_7qOi_YiG;k!=$Tvty?<7N0xLtW>;e zz1k#nKf|U{&Q(g-IyRA|j?puoJ>kVOiN^kE2kc`pm_w9cKZHL6c;pBdR{4gL96`*A z)-Zd4pskn&@BZDlUMh##gR|hed8Lz0VT%5fVO}!rZ$9;8`3l+YWE_t@d{6oHU-&7G zU!D;{usu4*1yu;VTzuxM|A-gPo01&M9Q9StKrre9Lo;s6Xk@+&@%NB$-MtxwO@9t3 z-L&p}u>ncmOZGN#@f@N|;GoReA|f#`ZQXcFX^XJ~t|pL@ktV#8sv!Ou%!v#7Cw3%4`5^_%414jz~(>=>|rbO!l?}cYLqH zFNwZGshbxhT5*A4<~N*yx?prz+J(LnQ7aOOPL2j_zQeYqaUG_|ZBiy+Tc%8GiPWDH zPhk?)ouhAvy_Q`OINiI85)sT zdkwM<3NUDMaJ6hB+*a2(Y!yUcg2@~f#sZX7itvf#V-l()NLAZWeQA@M8S6wFPOOH}v~6?3lYXXNCRCf2CsWufj~p^FKG+HK ztZW)heZyrw66yI9=gWM~0aJ1u?Lh+WflwzS9T2%Eaz>b?UQami8bqCGC7W9JnM>vQ z=U?Pxh`yYwJ`LN!Cw|}qNl&h;QFxR2R+_6!{px zPnn=R%vRVX^o6-I%%GKVrQCRRksR!#m-n1->*IghjrSTR>)G(CFqJAgXI`!q^P=>F>XmInrRQWGT}Uf9z4hPWW^KpZErk ziR}uo1|CW))oy6!#P|uG3qF~fw%K^{n0+PgNZrh(7if`jg#q$X5~Ne3uxLtZT5%jH z1v+fwotQ3oPn;ft-lSdOsPG`}J0He8%Czj6YHBO}wH?QV=o7qlT*!sA&9TpvWyI8J zIV3A!Y;^4)jK2xhP5ZL1@(Q1L`>}_)$Q$C(!ftFsz}hE4Pb|DpOK``jcD}qMziM%} zm5P21FA+bmVPWM*2e*KypA7IsmuoA8?~Bnn0e}eUgn0IRbxybHRE4mf5oN^&gQ+(U zk#Jg7SP9HYs5mwa!f7Qyw}QKYOCY%5C8YzpdmF3%5Jt_bWLawlK}O-`g9P&F%9T)M z3WEU1!xbAjrpJCb#PmaNhs@Ur0SE$1=^+weXh*V33Dct#b*VPHlUe3p?F|w67z>iCCsth}JDqzi+B%p#q*tIExJK%ckm#rFedJyD zCY|VCef`^I+s-{f$m>@xi&uEVn&suOcidYxlh4?W`mUFYNp(596`^Jz<9DSp=dil? z%y&L*ls6b02&80EFXxYw3Ke@ilme#u- zDvbog4*cd%m!{p%mBOy_OUrI4*UrC&dW0kk><093)YBwFC9Ot%^Hj4xQXjCe?C58QFT4=qz4pWthosUuM5WSUBB6B-E= zkXS4pGwm=Xc*vkI5oSyuZzSZ&6P%mf8R{UR*oc36E*gk^8b+K>Y`hYQA|G!?x{|;o z822sE*(vNkb?{Jc7=X5kI^GGONM~hGsyng@1{~a}Ceym~dbod~9WJh9p-bAJyQ%D} z7$I0t*YOA)Z*CDe6j@m{X{?1j6^%`JFZs`UsX6z{AboSdFh6O{NfbC$!fQ$@5;GR# zRPSh6LRwN-2nRsrFGpR9p!)Dh%+h_NoZW#&Qm%IeY4Sx!TQ< zH*An=VuRh-0+>$sac7x%m7th(777i?pZL(b%a45M5n_tmSwI3P&g5z%Zc3>%`~gI* zUgYDSUA&wQd(-dZzq!XSs%xCF6>6VzTd9)N zNne~7)k04a@xVso#Z+yyH72JIxYe%8Pumh-b1N==B;}}=^t+jUXLo=a#n`6Z^Ij>X ziUpv0x~yGUbxO%S^v6m+iC{z}5qFjd{RvPB&oCPFSm{z#%eGn|{thC{o3Irsg(>M7 zC#U2mqZ(ig6oJ81Oi@WyV7i#lZ6ClI9D|Ml=8JK-^La8}Jwb0Yg~7z`A2NfX8(ls9 zRmo2$gmx(tmFcW9x6H7{E8)RC1Iaz7EYc(()q5(nc^;cNn~h4C3~HDIe1Ln9oP-!$ zb&bNq4##I8=FX^L=oTQJw%Wk<840UShB66VrXe9ZFe9Ulj-A{-eyXaHfJ9G&NfK}H z6oWL7(VQ3Jj}tAo&B>53su-meO)2NVmB2gzQQ%7SvHQ?w9dD-5?%+`+s$b!p#H z{gv^Urcq<2jB!|3Irn9*sti^Is}IvrB-W7H$d*}|nX9I&jOwxjHBQGq(P8?+ed>#v z#bXa~6Yj0d1+V701nlOuQC4W59jA^>`3kyEI>{~wVZ@yH&tDF2w*#LUHTwYAU-0vq8;HfYC zO<8*z8Tf9wql{i5&8PW(LF~*Egc(m&UJ>A2Ftji#?*Zfd*+$v{_lWD^e5fR4pTBHz z_1yQ~==1mwe~))1Un=el5)e~_L^ZPK`O?UV9bVZaM;un;#na4jL%Bpc(i;7^V*C)5 zXh5Hk4oujddc_eL5fm(wh*U*?jS^SoQfe50QIC)q-9sDU+GSKpO!$H%de`Gf;QgG# zMSnYBRt{5DREa|-C}agga~4a$!$7rJ*$M5krcfOqlc6;1DHwVl4e2n@*mqs*05_ki zue=Q|sIBB2FY1cqM<29lYZcdw)9g<2ioAG-9pCh$%7d;T0i%Xl4N$*KRXQCcjct7j zj8z7XtAtPm#QDs6px472;6<@ zrNQ605>K8-As9fGFW&1NP zlFMj%S$EgnrAEfV(f+GY9!yFGO55@HQqJ+@-8bH+9{UnlRnJ)hQnRT>l*q4K#Nd?o zEax-dnP}glZ~jf0z}ov5iq~!_18ik#pEjM_&I9cem*#4&-S%=X_yR7RCq~IwtY#$x zp4n#?D;FUqtipHahQ4Z>(LHa7f+qs%MYNwfgv_bpLaX_1l3uw1>VYt9&-yBxrZ~sq z#$1Tc(vib)A&l)48ZpXW+mjQhCX9OFF}nDwjS;yMYlsY;cPn103S!80DI1Q$a-@VkW>g>ep0aP_5%uB6KXxL#Sa& zOA+G;&~WuvqRFblka8{&6*#BS-)VRf0j5*Q16*UZH1KVJToSQ;05pN6u%)_Z9F|1w zgxI*`-Hg#(>A}fw0uXsdhXGL-r`$KG8dY17AdEzoRqJ6;M2}>}{U!!xJ_?yoW}b-> zNX}T)FWQnY1%jPw7I+~%%E;N%A7c+IX-wo0Bw=g-*;1Hb*-pSDSQZ4)D<^YzA6}yR zsaUbwghMhKbG+{B7J8;HPEU5)OeG--V|Ia`VmKEi`^##K?0#s+R?C;C^!dp|a-I8&hAMP0Ef# z6~;}=ZiT5_<`b_|pH=#gli~NY?{oWwn_N86qwMOQIkJ!7nC*rk`@VhS&kx_v#O8+& zxwywXwXEJu{ML+=6L-b)QQGOb$U%1PVxEfDFF-47^0PY?Jh&KlP-Fe?Z5#c zgBCZaEeys!C`1SX=}AVSeQZc+2OQM)sU%&4*7YJ(72dW8iPgL~rYs88#d`E3-6jAcyfQ|b=iusLW#)luqF z^U-!Ui9X0HWVGhQX=ahg0!lXl9}FEFr4LQ?!Tph_-w>hPmyYO}h~5m~j7oRHoy^MM z$HXXsP`(2jmH>AnqycC{*snYfNFai_FfX3Ze*pQ8VH;BSYeem4H0qdPJ;c9 z$B2G|&AA6&P=@}4L?VVvS>vm9D&}W0U3sWOJCs4Qs%@$uOdYTnZmw9haul!O4OD%O zLlCcZUn(8gs2Z+Y!ftxy)EUL@r-utJI>OJoHh&~JV8ZIJLsqC0=vU%2wA=gOi3Fk)Y&r9Q#(XR~D zpY*$d{xJb%;5_5JbeSv!FdLZ_{Z;zOKj2G{kA8-UrN36-WuIt!{A=Ta<3#UcVOf@3UNf=6QI8(o2MiF@F`>X=(_;^GGYF1ohY&Y%0_ zhL}WS2FG9`5_605Njdi^22bd}s#hftIJvY54!g*xI=TS6sA)_$zD_%^<_UTq>4R=S z+~Ou>;5xBu0q4o!l$)cK_LQ6=yhY-s|86&1a#dT@CwHV0bllJLX}9 zdiwPO#@xY3#B-%g#}duSI{B{9qX48ctC5fgnOPOK19KuYBs)EL&oaiERT3gWuY~V3 zAc=O!U8%g^jpUROuDl}w(kPWl>@oo@|B0`GfHX8~ESK;--+B^}(u%r6q%d)dLK5}J z>|lBls>k9;yyCP(HR0|Tk(xC|^1wKc0c=7Bxs6FgbU|bPn35OYWmMszykq}Fh!%{O za0e>YEXp|e*9lO%GLpJVDz3ETY6Nls++-D_JsItoTYz|$6_J4(f8x&fim8grtfIh& z0%4Y}B(6X*I1yTcu54S34>&3Lh$u>?X7LZg(2u~8YJzq2SNVx*V(SPW4T7i=0&idy z#{+QlqDA^GgSTxEOJd}^9!FI~$0kz~uAUFCUF8xIt9#%klfvV`D?7^#58YK7mXkCK zm%hYhjRI9qP39WdS1xYuJ5P=oB#l-FA&CnK)o}d6P-tslv>twCg81fq2HVqjo~0to z@ds1)@#Z^jE=TtqEFyWWf6YaQQ2J9NMHDM8c1#+aw42=yX16w>61^P6?yh4P+f_aZ8k2i73GM9j1Ma zjah<;I!A}yBk20Ud)%Yr={${7M)a-r9d%%2yT%q8PDg-S2d{X?!SVuN4Y-51a$?14 zGYZIMGcf9%il?UrV^qvk%Ft^`Yq(E|?sXLe;Z?h=TQ$pVC=;B%jqd`}U{nDwnMb_= zapI+5Qk+0nt4KkVvu;Jse%GD^NWP(lf?f805vsdrL!Lst!`^uQA6z{~Az?ft@ zj!!S58@u(Ivp%CA(m7Q&!T9yo5Do1u6C`&i3&DrOSKGDPJ zI7m{ho{W{gXBPwW;A*J!XNCjYk5fVJ8p5(M=GO{B)Iz{N;RQUXlb878lRErxE-WKs z_gb}OLtZ_9f&&V#n?qjc!{w!~KU-##PIdK`wPnfbl}SC+%=W7{vMl&+Dg&M}P1~o_DAYo&zJLm-N;9+MSGyH`J-mm^1EACPP9(rkIZoUI-s!zSO+kgzn9aS!h9fE0h<>~aUI!_jkYHHZ}kgLI|Uzs}%IwiP{i zeDGs*T28NlSWhFrm=j11)>g4igmhJ-@AOw2RT~-h-6-C#;T~pb&Lg*Y z#1qKG8_Qz7m4r9GNPsxnLsFpwVu((@1R-;ofid0OWgbN=3-wQ__#AnYhle=QhJ3## zcJ3|HIhmnhGRNV-EZu@(J)lxJY;TY%8JvbbG(kj0JWv~po2iwxeMnpf1PFL3){+>qo>Mxj^CL+cXnxZ<2~?A zyD}PQf@T_<*wEd{Nwh=P%I;^LB46Ro-}m7KP5vrpO+`*Kd=Sa$3< zvb+^-$+AQZiV`I*ae^d3f*?Q=+?zbV-~R;^*G*cvFA01fzVCgXaqs(n?&p3`pyHnU zRjLXOOOF~1K93+#IAzy@b7$zG2L1vrXa{Gt_a2>fzHjp zlfPU+7Sc)*aV6dQnrbREW`3cSAY#d>;WWJvFjd~6b9F3EtqNk-uzk*aGIO%dYss*h ze$o{>`qyQhh*9ezx=Lx5xvr#}ksjxEcs!(ra9GXxnb!l9H@ffR+2x8#lqFh6LB|ML_Q$SZ!m{|P*nlX=p zN{OT*B!eC4U1y2{J!zpR5OhU!2~XpKT!KlJ#7Xbh!S{L{VG0<=f@WdF6%E0R5f%Vl z^Uw*OqA$;~wko57EkSRjMOG&eSZslZfUE*xFiys2B8+P)DHCcm<2y3B>}w~!x)k@VO=J6kx8r+t1$nX`BSsRRrI z!VFQsNNT9LMQ-;=Nz+Jxu1DU%#XSxit{s zYv8AFcBxv%?q1kiI_Gy$dyQiCP^d>dj|>cuaSaokCG7%@4g%ApmVM1+l_g9-S(7b4 zc)EP+ufAHYz~x+W4X2={FJq(7>Ue*AIR2hj$2BorhsZd*ZQ^a-K#SoV7_G3yY3qi5 zXd75IV~KHa;cOVkIl7Q^4rQo@ffdic6 zn2aC002aOlHp22Wix0ZR@{GKzVWB)}W~Dp}3gFoNgI?0P-c}7EpGlL>V$4v0ff!aR zu~??f5945$#s%O|=lp0dab@8U$qmuFbDC*XK}3W>EGY)7spe6zCjt6J8ZdZQi3s%$ z7lX2mT2>pKxQSqZC_>9L2~F@6pyobT49p?XrMe)3AW*f;WDsl$gu=|(yN8g5BN#1R z(?lMQd*a-pqyMbs5`X|mT`4F#1QRU-U~~_v{g2${WWks)hkI<6?<*%s*>v;d*)8C$4a6W-gGFao%~H)yKhSCcl* zgbDdvruLr5d56VE1{l@E3Kz$#Rcb=50%u~%>x z*g09>`$}6Gc)r)+@H2&nU;EzY@;~?5*G2j?9_d#qoVnd|P=E>o=!%d-+;!S@RW`9d z?mKbpWO?za7s^u)JXw}g;P7ql`xn3h8bcEcWBbTuqq!zJ9skpp+~Y6D?BBpJ964^; zvL$TnLLGUy11XU-*15RMVvnUv;_V763tnEJ!U)<2=E8FJ95vvrqMXc1+C}rBP)b_o zy6i&2TrAy2gXYy@2b2VCtOD%bz$%0RU=~ zn)6iY>FOxm-QDG-b=%c6VQpp@wj!P2#W(pAiZdF5$icm$)Z>zKZvEct@K@YMVKKQ#lf>e)>S3r7OqlW0KdEo0VY@qT!f`=3oUU~zcX3K z#U<^^3^eR7e*A;WFLH~G^LK=o@A)IQFgIxI0u1a2!q6=keivcMeF`rbTKJ6)4pH}h zYw6#)8~Um#Kly=oag5GQY)!%fw`~Vu+dnK+1HBAlVpM$pLs!P^-#+UrbElotqX)~z z?FXP(-p`y<>K868b78s!!xf(NbLw;xf&sxwTFuGRDiGS>M>kP{a~y_r+@9y2^F#XX6z!D-&>V#S3721%j8k_eSBu58iKgW$cZWb$L&$7o%J2sCB);+yd) zz+DKErYwSIoQq?X87r=!@Gpb)ggCgQnMszT0vG3rtD3%}TZdyCWh6c69tviwpnACFMd)57uh%4=t%YZBUZE(g zkD#1%?&Jr&}Qm}`Qo%|x1Vr~<4*&}HL;2-I=L;7_ltdiptkI|frG4(#1kw!BORG~>PT z#v4ofoc6L|!^X1lnTN~!KlVHMJOYL`B?!n12BLZH=Sy*#OM)~8CKQ5b=TAp~GRRT; znYk>i9GeqQ84jP}I}vD83Q-AP1V%a7hC&UZv>2Q3eby4w3a}F>6p6q}S-M`00Ot$< z+3@`O(%LzP5+H3@S~3y1f#}qNn%I>Kg9a8?xSe!}1r0IfUK-07dG%t9F6Hmtw443b zO;~TZO#IWW2s1cx2QRg&)W%_wN5|({32}&-pmwZFp4B3jO{?4a&Ah#|2&PkUbqNf$ z?1pPf=Yk%Zm2sg%+6z8xS2qZED2z*6)#b=+s=}A;JGk`0Gp^A2k@!>4C^QDwzFc76^2zlla?JGii|^M|etGRSQ?8Dz9kYn`CL~%S9G>bkl_U zBobAnnH1ZDDo-PzgoS)&<0?t{L`rkpo4Aq3O?QCGoE`L6xp6`$P=fYs^E7cILq+-A zw)hdJip09mClAPX^k*M+SWaXy7M_>7B+F6fp66Y^LC6NKZNLAJSgGh-n=K*#zAxC9CcsOjHkfWQDRpo zhXyG#{r3>TKS_X&4*t&7LyvEsK*WLYQlHZB_aVX(MHk-@v#u$Su#wmkD!!vNE ziIs!9UR!Cwbm;xy?XfTZL)pCUweoNO(=UV>GHEG_XK11Vh<`Y*JP5J+xj;~eL7*XO zEQU+qHA$3WQCecI-s;#OGVa9<=D8-SqgKyzpUC3tN>~BRJm7$<=L1at@NbdgE5D@c zyvtY>RsxbSLbJAgd~mRAd$k`XK@?nlN9nlzXY;J|B+WQ{@pOU&UXytD?CviI4{R*E zUwXC-QI>k_(4h#Tw!S5$etIjrBs~06g+c*5eqolC{@z0`(6ztsO-%aF&zlpz|a;C(2Dj1D-P&g}G!ux!rJ8Y)D)|9%kk;<+DKVA`pYlgbGFwn03QHS7` z=Fbp9vQ~WZvBW7Zo-VRG2z2|%J!LG+1!GBCa>KQA6|IgbN=>=K9F1ij$0e^JE;u=X zG6Zt_f6#z1NC8!+3 ze}BcAdi^85AHRY5=NajB^`qY@58wAiQZ8D`Ew|nhMv*#~En8k*er0`m?C(BXZo73= z5C|+o$WAF2e}{)?PlA>n#JQh&Yrf-s@WJ2q?|ptZ@#<$xqq=|mRps!*R|T!=OK3Y5 z)!^=(<&kfExzsh!EO-3tPnE;#SJOY5e?|iWo|qPkBm0JrmtC*zW_Q9XWjV)(xm-Ni z(m-VB%PhJoDN9QS7jSdP@`}>YkCs6sx>^{-!SoFPb{TYNLA&2UA z7q@&Yu$WA2@Zm50Y5C3<|GXThw2%EP?CUM`5&?7$LDtOq0=jk{ve67(8MoH@ zi?U{XN#r&zs1~CyGw_GI#(9vT6{sk*AQX5=E^_;GWksEXEy(3>Eh7IJVb zaWjR0d@~c9Mo^BJHNiQpEF?KYu^vwl!5AEfp!1inLA-x+NpuQ_{8S&6-Tm9kAOBy! z07#7!>O{EnVan6zj z5CJfUDd47PdWkQBKw1HhaY-Q(mlh3{XX^*nZzJ`sKJ@QDQue^;4}I|gRwYTPXm2g^ z7SAg^i@VG8*)vd1&7_)8F_!V<#7yU2jRLfWpst@JKiz*AiO@)1Uz*B#rpmp}UtzgE8g$ann~tGuUNfBm(k2kYE0%7g## zVA-(wwQ^#N^9e|}_DCz^vJ#C7*hQ;z)@8rQXO>5{@`2S!liSA% zxo0k@;OJl3NHWYN}f{)%Bv1u;SRGJMmWz(xLd}oQtGM5h?wwf_Nj8K z?xbTtHVGZ52)rv7XdiLMvyP`)iPr)WzjdZ0ai4K9T82ijsNi+^*tDlJr;n8>vzL~d z!@E#Ww8=Oxkx+b|&o7WJRa4(mnw!mYQ-;9QjMXzrv%gWrDV@-s_NL=e&?ae}zZIa9 zaWO#(6K0j8o_I)8O9QJR6pKR`C1%9~KCB=zAZ(UzE(Z9IT2xby5zv7H5ZSr|x{b*( zF-Unv@G4P>X_y2DU?uFFduM}Cv#UrkCn0iyJ{^~)1+CRU(7pvLYZ|MX)A@1FldG^Q z`vk7-&#rBUUttVC<4@%+Z>#V8p6fL6h(Gz=PnW^LJ>@NTytyn`um}VjkY{<9Z9`Lu zncZ~LO{M?uzE=MFzy3kF^DS@2BAb?Z`TPW%D7+>v`^d$c*WdHO#4SJk*~ASKpH1Ae zVg0)D)Z>qo=YH^1k{WmK>PJxZr@YC50|(N)=KY+u+0pcFn|SZlLW$R0u%cj+@$d_nZk}sh`%biSbwS*8>1=>1z;g^}& z5~DF9S2eACV2sETF5Z;YCT0k_LTeOrE6c83Uao%gRb?7=wqll!13Ur?T7*O@A`mhR zB373lLeC1P3i@KJqF>?eiq<3q_0iF>^3+!zAbxwa)Xkbxu6^InW9dUsJSP3xv~=|R zvp*=G_;(*>Az(*bt6OimxmTWGzO2);r9xC7opbN03l1=? z!FOp)m$9C?DNx*+X4w^w`O<31xuFoXg3WXQ*_LLic$Bl@538aG1}!fawo+(7sKJ(0 zijH;V;8lp4B=S+*axEkJlrN2!z zz$q5Q8P1Rtr`a1!8S2Kli}U#ftgee#ZZS%zhB4_pdrVCTZ6HyX_T6KP6B)O$i3LDc zJ>#;1H>;B-X_cxEHDn@8VZW!|lR}mA7eTH_1mWiScr~LXjzN$ifD91;Frg4HkLhEo zeNfqzpYB^R&3}JMPPb zR8aZTG%m0NpvaRpZ8wkjhAYH8{=WL8`fafK_kQye<-6bhCM$%UWyOjW(H8E!KS?mV ziPcG$QvF=PuzK|~<*Q%#T=|tx{(7j`QH3XbrTzTjh zu^+5{t~~a_Gv&JOx#i|-=O?W}=-0tCvu8Axy$6n$k^P6twijM4m)(9tsbdwk#tqlt zT0H4$81P17F(Bd&yw_@ul?;F-oGSH1@2{yWxo&CM_A(aVo}nbl)-{sCfZG;MX#&ROKCM>IPAP-LnE5y}^qc$qV= zi+jC9D!uTsVg0M+)4%f32&>txtytx6Eq#3pa*Kyms5}(@bLY+l23S70f))(aLU9kB zV|9h|45gRP5bT!8ou@f==Gtk|))L#RV<7=fgprAF38Ra6AqWXC4@lLTQ7E`LqcF@V zIXv%qjT3uDV>vVK#JCVbPFZ2aavuGFXLwv|%msk(o#vQ9CHWs%dQWxf_VFBUxAD?i z!vqG{>Dx0G8a#Cy#e_kJ@I}efXBLf6APMeI>mY^!Z746W>Lym^&oh=-kuA^(-pmR3 z@RA9lbtYv~ahQK%%azs~Pl%V5v>5vE#H~vRaK~9Yy>sq8aoZ3SjyY8VjHJn8B373hMZn*w>0E<-sQArS4I%cd|S^k(?vvu3{a%gme`q|ZG z_wL=LtFsde@Q!lR%{RpgY?)?~9XT!J19=@kcC2jLytxb^Ag=0~Q{Hsd66RbIO#=UD`N}c0B_lpN0TWfd^|n8GJUg8jx2* z;kWdXH98o@6=iEcZP~c9EV`mEDKJM49D&Bn*rt7-R8Tp7`{c?C%pnYXU%jeCx!1lB z2tWAy2g}~q`tf`xl{bCtQ)R&|xBMf$ICSu{e%(vuy+8Xd4!qr2y1P2ds#Ui{ksM}4 zeb1hOva^2&mVX1Q+S4PTwrtsw_NI08Bpo2ROwf82zmoo|;5nmZ$fP+Sv?dm`jOPkD ztClDLUD;*yS#{L%Nth74o9`Iq!JMnKoeEwm_$?^T8dO{1DUz3KO z$0(sp4FV}SP7s5Gv{s*HM&6t7t(J|s&WHnD}U}cqZHlD2HTug&74ak0MN~F~xymep| zl&%uj3jiF@lhASb!0+ArJIVe~Ef~_DJIfJ8NCW}_UL=p|9MNGn>EviLY`DCPLQ zJD?L~6{46yWd1}|DWxU>olubTXB1ZC;|=X2nrX|5fU&X3$a6{2AeXZc)2=6L_PBe} zqB{^P7*kUyiPB6MrfQ!t{mA7oy)5MO>EHNN`HR2!T$$I?U2Y<$LA7xLC^sYWlf4RI zn=B$Gl*U(IeRX;Asi(@z>s~3}y8piNp$~tgYV4o-J<-vRe)l7vOJVnZ@eAd@{`sHB ztb5nH--U$QQ~vhLU(Vm{oOXKWPy9sb?dvTwDCVSDcob9X6hR5$FR$u5A2~8shKBd2 zHznn=?v9wk9+TodBFL4F&i3itGpP)Z9AW45#xk8fGVP1zVUA(;$SuHMsi6UE>j@h9 zDm4S|jW51Z);{@cN_Dg;@%T*BSAV~b=wipbR*JD7FQe=z)>mm@dx79(gEj<+^v?41HBx zo<~Lg_~l%pZH1N%`yKdncFt|xW6za+TX%EQrE)bhxEZ@ zFk#9drTEY+^N3{=;`HB7vdrgBkMIJx5U-xSmy=kb6U_>f@9KG#CYf^R-nN{h-@|s8 zLcVg35La5|JMfRzux%xWzMQ~!xm>eN^N49g!vyX;>f^%9OmA+Yi%NPZzQmW3%sR=n z@U66E!8fzS{mvoPaWcs1(Ou=}whLu?=K=zj2g`}`WANA*UJM!^YvnAlj8q|jzZfa7 z(UhZ*K5&}C_b!8aNJOos6@8gnP~(y%a1e`XUdA?wqTJIM1hyQ2^V}~5iGz17R!FJd z{hN>T16)8HpGkB8I!Q!)uj*1=sH&W}>f3Cy2ss6pHV5})4O!}9vZ~?KJGMOltVsr> z>6;$`h+4>g0q7uRj*sz-K!WV^KDhEdKRMP@`B=XD? z$0(cG+Db({8g!o8{I#_$vG;Gj;fC_a<4=^Y{Oy;@``-Wlm}EcN{u}*!aB#5v`lmio zzWTNM@<<1S{)d0`C#dUsOup;li+X&JX6rG8)b2fd;@}&2>)*92e&JEZYMo{M=;7fi zxYYn7%$wK2a|#7u1_6XR6+_Hv?%ZjdN^u6&cCHL=+EQ9bu9`Y$4)>#$VIcd17DYua ziBX?R6Jhx^R|Jnsu2`DyjN*3mwX-BSE#{R=U$fe#=Qx}XZH#Jx|mDYv@dszv3B8&*Kr zBn{zbLGPi>NWl=o_yqidu|t>@vBG#~fZN(fR+p{het6))(z|}9T>EqHt0p}D+vX0A zj+Re;{A1;XH7{0*4HMUKzWmb5WeX;^CYQ;92M=;g5X)oFKKopG_q*SnK;20WMLa{D z=gFAuGO>G)6i}D+A8ErtjlAYEm@yaww`U17roNK!01on1{4m@IeMfn~ya3HbXJ^iW z%YY_+>BHBNA5cTdPh2pjT;(DNKV6;dk(1q6NwF`to?LLbkT#u@f>#`yYb2YeN+)e< zg4wrtq2ri&@}z!S%tw5*TJYL{!nz1uC6+*c=ZUS<&FU_v_U|b}`?n(tSY4pc`WEs( zrg>_PhL-Y0kFCN%^v08Q#TBYaCWMjer`0K%4S3( zv%3?hRhgtl9F*8Z&>~d@8Jd-do8U7@l_)Ns8bwz_I{*dTIUQ)9RtU)n4iZ9f8APJ2 zYvz6gn|`3F%}N@HSB7n9qTmxm&4U0|!O7e7%r7p5k^(C~;~)G}g37O6!*BXOKl0)7 z+zV^UHCJAV|HZ~MZWdu)YCVeANAzgj!CA@fn@-=*UPJWqGi>t2>k3 zxM@@A>FzGO@JnXkk4zky)5=)eS}Ba>LtK?_Sm8qW>pORL%q%;19Vml4_Lr9F+e+`X zERRxBL%|`=0SJ8nbMRp+5qwxAvnWb+=eyo6pn^j&(Y3Uvw657&2KVl#j`4AFP&m1D zc59j5Hme*SKIqc~LQj@4Qkl<;vgQqQx#!4K>uU2S!i0V$exvW!Gdbn%X=#V{jnYqN z>2Vej{LXn~l-{tcbS=j!gqUsH0E**HJsXK&;_|&_2;=5v-b$sH%AtXMarLF9c zM$*Bm;X{?1*1DxE6nYB0Dq|Ld!!a|D1hi?+t1(#9jtFE{_f^-HaF?iP1k;5>7#mI=RAHq5u z<2da|n z{)%39Hgj4jOFO#xP;r@a#llicg#H{$i!%s<&0+2S2ssQVkDkWGqee01D6)48np0_b zxqPOZ0K&n#4CxmBDW#K5h^yYYD)|l#?B|k(G8yI*A=1PGr8{|RR>2{((UM&OJd(EWo+N>GIwSh!b7ExumT1$@gyuHldl}R&nkT6fdqkp zM^0!#c}AJ=Jw(a9;12$&+-shJPgMk-%BtY!i~Ox+qNOIoi?e(#oan<#UWz%*{m8=n z$XjkBarFu82M-D>lk&XXTmz~ultw?}1MzOjU3V&<=QV+P`l=yXepZV;_b@lcmDaCUFDjU;Dn1K{t{H?}@HzwU!xk*b?5rk|BH{(13G*LEF+M|Npy7;qym-_+QG$ zKk>;3D=icmo~}ax)t(3$z-QG=3e;*|M&A<&MPtWRY(P-chc=>N8fgW9N?Y>~qhRfq}|`+WguU;G?#=NIYer z%%9hd06kw05&iAy?n2;@I8 zWBRrwH=5WhG=+9;#9RgUc{H;c(99~z6trw$i|`3!F~(-*(KB}zih+znh};6V9;~=$ zfRkbu_mu7>=(ilbrQ*aKMM3~h?MFnr-UVNv=A+Kp+s2F{J5&XLf zrnRHz5}b$>@uF4fKY0zhFdFZBo+>qSiH5f>V*W@TBkc!XMA&ISh#i(R&ESUb&yWn5 z&;tF{!IzHFSeON^+>caA+$zgk1Lx8daurA!uoUYV4IM2(_{F(uQCo__!KDwaF~;OL zja@Rc2vEmIHwiH*3&da239ve~#v-t|M|jXd+Gm2LcJ{oUdlWwP>^FcU!?^%+HpL02uzX;`B!7j56MGp^R% z?zD_oURWt`71WhRgl~Bja!`<=r>0EVrz@3@c)6+|<_6sFnaN4UqVjL#;%ZUJfs$@Q(~-Voabm~Y~P{EY9e5I{@`(f z=cmf7%NLjF2%F}4bBLR@mh)t^T2r`@l;CMFe-rf30xVi_0p}14o7qlXWca9U{@f7f zG!)ikEcMe6&}A!^q`!3{%O%yFMx>p%=nQGe zk|o8ZLqi`1n(JH0RS7Jsn32}0LdkGQ<{+%Wue?$RTvbxWyUb&-WQnw?0Jm?gDP1Vt zK7~_aySB~q(#S+^kh`a2jlrCtx=iW3s?^M01Xlwqisnx~v<~}Wgt z%RLnmM4|zDriK?uHlBd_UtG^4s6O(4e2CVd(%bd5EM0NuH3H;mmzdzXkI z?aTeq(vF*-#q+y}45=Elf&M`R z5yS{{(vd%NKwK3qyQy<# zmbR5k*$*=#@rkMAM$DKqjosBVOLMEaF2qC-YR$ykPLCeJ>cbKvquJw#wAf@(>CZVa zDTE{J#u(sQ=4$9cCglg3i`2u?TYcXn<>g17!=kGx?MoMxJ3sx~W%h!_eE&aQF1Gyk zZ~s;~KrsIUKAphIx&o(ORREJ@p_#Y@jN!iC5>ZO z00(2abv&=N5sQP*5{Hs!;3+*21((MkNp~(txzecBq}LMV9uQOzkw26V7U5DDfZ@y+ zat+>vn*9nJH|XioyI_`VO(zv8K&*+r6*ykPFctdXQ-#(U`u7=E1*_~*gf-&|8PJ5A z49!;Qor;e~}4p{;8OzN<=~ zSfI>F&&yMCYAn7z87Ze3Cli?P5kjXyZ}dUWz7k*}&D93YQY{>%y+v@`hme%`z(M&9 zVL|9JPqvq1GFtLfzrI?9sJbv=Bg9yBlz~@_Rzdv)`#4TQIMQMSAMJZ9FRx!)(Q3c^ zi@#9ryz|cTSF8vs6t21Ys>*HSUM(eKQ8KpU&z=D0Y;w&(YL1NI8f8p;uSMy;fYim+ z1)y(*m&B*Ze>=hVeuT%jzx9pR`+p;EbZzgx`|d1PH)4(6OnSwHz}biJ6IO{GLey$+ z(=jevz6|ZovDupGeD3ODdmF{2xOW)q$}B|Pg(kjR$ZDFg15?}UEgvhw#S`$3)e$Nd zYTyh7Qb)RVM;q=p3}(jgbKib~qUyWj!l^_gpp1{#;E*R1Yf(EZ|7;0joHehrEVyw6 ztIcd8wL%*Ve1YeW4-A))=Qp!sd$gQ6%pMJ_!}{5*Nb^i1Dfo2=B;%wqaXs;{bGTho z@b~LAp^0gs1LMjYgoo>@9|4WFPB7 zRV6W4p68xMgsj);v4iE*;bCxu2z6YH+ZsbD4-0e42fmLYp+A||qF`BJSFk_>3JaeB zWN`&OI3ckp8kLq6L@Ga6EN)qX)O-iZG6#_)#xWB@-xrvV92*Zwx&TkSr0)rSRaofu zt2|{iPmNFwxEuYH8zzZExsc+VoWHn{#?E*je;X4=qU7had$53?Zmh>5xj!$fr97WH z(gH_o%Xu=FD)uJ5VsUb>a275G^($V{YBU(YAgdJ(zC;@4tZJqf;lx9g2D5Q!2>>z5 zbYzyG1J>V603F8C%F>-OL)4#W2BUobXW%imK!%%?8t{#cuP{5u9XC-RIV6LD3K41y2tjYPrsG#29AU-Iy(FFldlKQ{_(jMyD_64fxP^3wzm5Bt2H)VX5B~hW ziSRL?eggvQO}F0i`jh)ujZ!cwoJ5MRZX{f^Xc6cUnWUf);2lD^b#-<`lZ#;Y4+#^? z2S{|9<{)mPq5-1kMFA^YA0#(#&d4cNf9~#y*QiU-P{u$}leCWGn@5N`W*L ziZF+u)Q}PrfZ*>+psBUzU%jZzyJ~TEv=0v+Du=MJPU1ct=hV_+stgW2^>P_~XDKCu1eRF25}ba{`A3P;DGL+6Sesa)sN$U8JnLlqH$7f^Z0Sj?` z0_#e_Vaon=Y9J+L0a$8H`MFFzin~6Bm9FbJ9qYTdxA*m~jtuM|4a3+k0K~$G$03t4 z2U7@yp>4S;rdK0BX?dwo-jn`}dTYgKC$onld{ zc4lYyJz3S`7KMe3;1nfNgN9Hy?}Z!YB^}tKnmr98?DV~}Y%P$v>_jHXxDXCiN;TdB zroUF)6wE-)Mf8s$;+kGp|Mn!fJjl-A|u6myL!TA*1yO&>ny2JLS`# z_|@{c&;MoeV$5y2{q{Ezpq@{f_sKE`Ysfg5foaDxYu4-t0yS7=eQ;D3+sdcXuNIv^ z)5X!ORcNVceAO~ikhpv;f)pAGv!|YZrrg46;iAR=w40F${Kzkb@HfA4e~K$DSg^3@ z3Z7vuT1#HeTcj#@fo@=Ez_$xGWrUSMg^WnvPac-8V~Z&m%&h~9?W6B~N6hcQ9;MUR z(gY*R%$2*FKreWc3?>wi=>d(H@NNh+rPy7`2N5!@B%?NC^;9d!FpuVrBa+x4;#k1q zP4@>nFkaKZilBbNIr4KxM-cYZ!-0ZAY+AHh$DY(-J>2sMBDK6@RRAii)c&zJfVINv z5DBmC3%bgUKe;L}sZutetI$>^!7o7sGfS6@Z0*CV%Z6uOB0ayp%)jl9a>vJitxO?R z=AXM%hQIvFzewC^TgI|-q=0~v7RjxO% z;jj^UGO^Ulm|bF7#9@It_rq7*Cl(+j<_@0aC;w(@@oco3D)y=7D#Ex&C2LNbB|4=? zpLf5G%Y6~xv}?G=_Eqe8418Ujxr|de7T5&eQRr*;3*l+uFE(w<=PWnjvx!afDjhms z$7V=EYu@kEm+v{rx5mQ^p-J~4<$HL>7@F}z7trcZeDbwcp!X@r)OXUhd}do(TGFQf zBA9p|{kk9{0Fbf7$W-~Hvu2ftMwedJ;8mUt(X70Z{FYlvI9eO@Ma*wF+GN}(;08k3t; zL!u@GG)9n`(ST43{ZQ)`2A7abDy_pxQ|x-;#A&onVt0Hpk-H^~uEpZ|0fF;xfBT!| z9e3T8alDaVYU2fc3(7w{_)uB8cuDE%>88fbt+D!EShF@lcFO#2d-s-kowKv*Ce9K!0MTAEdOAwYehQBx9L2LrMx-bR z#23^VEj^Q@z*D3U96*2_JvdfY-~VvA@tt>23%xDpNLh}<(150LCHQz+r3RBvhA}0+ z*10or6PIJDk(zMuNZGe%xE$Dbpkh#D-z0@3fMnEJ=U^2N)A6Ko;=tb0(oUi;b2rd!L3nE@hf#$Epp0^7I+sX+P(USS=+iu-m8H9G z9;3q2=W3YOxwEI>Hy%P7_%B`pj@$(QXk7={C~|i6ao8qC3GcOZ%?v<9@Pivpdn$|b z@Gj8J-&!_t6CIqbFkk!ip908mlCjJ4?Eld-uutnc+kn=$mKV22$VU$Fe2g8vGvZ=y zKD1Ap(SnuMk*Z;UivBU( zjAzlN($nvFFA)L-gdep;oHPQ@S{6!h1);Bw%n6v9Zy$1t7M;RTsqfCvG{&u3Vy^DF z@y{};Ed<=opCaD!*mui+``u4a7v{dQd)KZAS1q4~eZ9C^H(@EUtC^){T`%8HBi>M1 z1zIt>J0ix-O=M>urV1XfuI!k}Z0t%+==a8ravm2z%W*2qGtVUwG>i)gM32$GN&cyv`yO_!4`fOXmg{(-lMkSKYs z(JeMGzY6>;yHyVnhnl;jH`)@4ieL%jfH&Q+5P|}XXRFc?#MMatoJR7g7Q}R1zP5I< zp25XAGUCs&{pK`f3yzJQV4>$E7VC*}!h}=OBMit+o!ZQN+DlL0ymH;!ZY(#w>vr7M zsn8jHfdemxoogH}GTxp|JImu=d#LQ+zKbE%mW6k`t^C9%K1EE=6pR1)^#}juGvvDM zK!F`W30)JIx?(JhT##y}!lc$hh?m}7vGw!7fnh1MJj_#)HqGIxE3W{Ttn5Nt+js1M zd4ab)A?>uzhStqbB))@{auzFE?d_QLHsmGYZri2}Mbr8n&m;~8FBwyfJB>2UXN)>io6{KAvv zv9Es#EqXB4kgH~zB^Y$gSR zT3tj~V!#xGxP)jQncmEJe{>y;RIFY)p&-rtLMzLf?I7FCdu^p;Ui_;qtBMB z-*QVB_dG6uf=>lz^OImiiqe)fUofoR306D@4Xr zkjX1P>nd{%N9?!@VQ?R59gNjIxzdnjP;5hYcLo;w@zMRI0fA+#CIY}6%G_t_j7%zj z36I2;;02RTtu4;m^riLh7<4z!Gxzhj-ol}t%v;X(-yMvw|~g-X&aY!`4Qtq6R>ZTv6}_~#O4JX*6HT2rrGO%e~8Qr@p`@9-zXO$7GCmJT;&RJcW@6m3! zio_kXmR#L&OSna)6o|$ewAQr55;KDc)R+?C!9xcbB0%Ckm!?m+y?}|h2hX$z1%wFl z9yPE+&fFUcFa7ez%F<=T4c@@DblLJ^_Ou#UOKH#UU3qpkRR%SS zZ@%fKSX&Q0{7Br283cY0AfP*NGju)n?%S8Ze`_mN9&=bm)xMQiE>>mUt0_KXW?n2Jks>@Io2cwGW~7T)FBeZYzJ=U{Hrc>C6 zZ$Mhc$Q;I*Lt4xkP>e6g;B_)F%A=H!c=Su(Ecg(;T=rBT@#SC0kx1h)uT8j}XeCGkxsjb06TSHeG%K<4sqUc6rcR>g-r7DoYT=%y0JjAZn>E!*=S30o~siUnR1Iqv>Qy}7}N+_Se7;QWDBb_Bp?Z5Csuqs@>c+^Sp%s!0?cV&HjB;;=}P$eY&D9?SRWFm-_WK12*dNEFg`Vky9|jRIRPV;?wl ziu1Adm6slVrd;vn>&r~sy^HLq5Apgm4C_%jHJ4y;4p7u}bjyzgjzW-*fQF4#O{u5I z8H)nB=-ba}f-ArB+s{k|aP0ZszwL)t<60``(fR>o#nP)_*j{W zrSs!lPd@oX_Hn8ZOkGKZK^tILTI%wGmT)fU{}dLcxkbA1CY8DqLyIhX|DbIJm5lAx z+uIvjZ04RBEVAq+o^=ddw~(IF0RD`P%0nvs#CEYlF7cUGNP^x9FJZt2XZO`r^@i~f zpih~1LKvzi;Oq2N;ZCcy;w7!M3Qr0YnIHNOG&4os!R!1pEW?x$5EZS5Uc%FiLE*`l z3a#)?>cJ?i45l+z+{)~B!IPr5D5k1l7d);|q6w`wZdZ^XsO?EnP~lX0p}}LHX1goE z-9X=n64YJ3K>cZXTlssQ6bk2LLrS1@oM5c0Lo}|dq{ZQMG{rmzi<<&4g_@R<&+(tZ zn&Mz%%mMQ*@fV2J*V6Bld0F_jKW{L|kQub|FQw|O8U_V+*xq{Uf zeeJDVw^P|*dFh?s7eI}`tXfazENNjGZ*o$;YSwFxTb)m!9^_svE+w->sQW14nY3oC zBHMA;x?uiId;8q7e*O9cUY(IbYX%9K6=P|6xoNj@4?UR8F|4@!it@-~kC(6h-Pg)5 z{L;r@Os$&#`K3_pVJY3q4bgqQ3xLJNGC~5Q$FwY8zC2c;+UBiqy_1+oM|tAO@3ZgA z4coZ71luKYR~bo1EpJgjOqp^|uzh;z)Kdz5&7*DxW~q6{86uK9*K!&&7|eYc`e*Ppv6u*???i zfZKod*UO5#?yhe9F@L|fW=)>xrHrUd<)TUy9tQCp4H^Q592_l&FVe(I8I?CtgO2XYo!bfV%CR&y@HPW#3jl~YgYcWEUNf1cx}M` z0)cyUZ{{Cf2d9oHjnIefSd-bqH|={08=JEW27dJ}4>Qf?Yxu8$JV2jI-lRO|7%?S1 z>(7gB__`W6Xw#5GJc={QE1J=LTMwe z)qaw5b^8k`crBN)F^BJSM z$6*5T2G*yywFV^8OXV`rkwn3~wX9;!qdBV>6kpMSeK0z2bWr~1E${i;v2k)Ho@P&PlkHdf39H2WRD^ebh>PyTpYrR>tnRoBn_{(sKOp4P5oQR!u9 z{=ts|D7?!!w4$UT6-5=#M5+5ZJY%>+9INzZV?8fkvN#P`x@H%avz~#q*0yZjij}~& z6&WA;%BnSY%AD20mi-~D8AlQ-;Ug76@B?C0Bnp$P28uI2&`PcZjlvFi!!PEkB}ODn zg>6fBncR6bJPF&KJzOr1Yy_^lx)=_w{@U<`3%7r4XlE(obpb4!W4u?Tl2i!hXo`hG zkQS?FVm5(S`m}&M49$B0C$8-oA*@obVx`E8al;{FqD$|pgrfsBRy7`5=C8z>p(8&x zCLW7UFM(TQo%ytV0S}Vj34l^HUJc*?4KnK9*||4JjGi)~$>wBSK~VY%bbaE=6y!Yv z*F?5vRvpKDh=@!+oneWn{PoL0j2g~~9vd1chj(u+a}iK8Tc_ughIV2%bK4hXubuIx zDM(~XKt>y3`I+!Hd)Dj-EiER;c^W}ck7Re%ayJ?3g9wY%MMf~qo!b#}KEXuh5r8{Z z+7%$4>?*N(h~c*F+Y(e2O~;6F84q(+RDtBGkk*<6T9kpYu3J0{`ChxSQg^S zIu?@;g@f*cCcV4X71sn-mg$YzKjzfrxWoa;%WWomA z+}8PB<;c)53Z{DQk_4za2EYDz;uSuPeiY2g*wiK3$eve|hP>d z`?+6YH22D5RB8}>Hsf+RTpR6aa-wdC45L63eqI$rD!jmlA8MX)j{)LcFJoa5WFH+m zP^yq|&N=GM_LsV53+;_(3J4 zt7kk@OI{o&j|*BbKIAl9Nz{V(1P+<6x3{-E`~34|%l7Ro(A-$=ddJ&YVSa*?hhb7L zn#)xB_Q^UdpEJ;h!RWa03JhRlzM3#lNxJA|NGo9ByBe(@KF`h)1LyRYyr{T@f)K%` zE5%$?3c}wwvqI6;d}&vKAZ>b&p&;jBdWFJN3s9FHZdb|#FV4|472Az#D4e)oLFn$8 zjF)>V*H4@ZPX(SrQb1x=$$QYIRA?I(^wTXAp3;SK$Jl5LCGLZY>9i8i$m@ik3`MM4Hx$u7grt=9$nE z?k5wWX0nd%*ji3w?er1IcB%h30^%KSe>>$nIyh@-8v>LQE}5hm=t^fT8|(FScXw9; zgTA$(EZHKVDNy=%^#in;6z4OWc?SF1T*Xo9n>}v4NCE4hPqBifRU;Y zPGb>ZYT2}LV|kPm39Ueb?=kfmlR|S5!e|)n{?J1Yr+%+m+@SCcH(Xy9E?Pw3`04V^ zSJ#)t)RF4NMAzc=a=h+FsP^3ndr%&!F>VFXz64aoK3IuFXwAZMJBI6W2G|Ru>O1dK z0r?8<=%ZscHK5MTq=@{%vi|!ol;K@NW!a5avcHhAqqt-MHLUyM&K}1Kx#-Ciq?Q0` z>40C13nnCnZ#k1_OU5kh{hF@QhMlTdj$;w6f8u$L2HFs7=b`@H<k))j6Sy=8-vEP}(5oe`+voz1^qak^ zj-UArlFFh0Zv%H*wrnmp-*QV9gdTYCp>k~Bo|M0tn%F3-!BoRYcJ~Qj2p|+5LPVOj zOitw@^Bw_X0;U#KLIB(o*P1zidW;GJHMpK?`z&dgS zFO1I|ht{Ta7D3M#6ub&H4VzeVq1Q_GcznCwPbG&Gw8$j{R&Cd^W%r!L#C6}69SA%n zrP5hz$Tn9;$1Qb_c(bas8*EHT%zDc1}VVFox=P)uyH*>+tUaG zsv{7`v7p+mt5&7Fi(M;dM7#lh1I-En5jclRn)&__{t%;>8U_xP@!*|z;OYRx-(Bd-}M@=hSbQkS= zJ%RG&%a$fpp{u7WTZUYT^jXW7I8KSWySpdIvVWhkVuLOqU<<+`cp0Oa{4&itip%LP z&tw;X`oi_!{`89^vOda+;9%}OMcI zA}epSkhkSM(txyK0ZGFT=GR$}(J;hySjwg|7>u`UkfDMx3Ik3hUOJi5O43mlL`WhP zC#E+Dw`xU??|3izT-dOLwZcSUm|*+3RZa8UgHXyuge~)tf19DLX^R4&OO!OebYy!b zD!zjh=B%Y>tjqpl{eTmNcUJ147vrA_qzERS*7Ci?aXGav^zgi0COMTc@NM|hu{jTh z8jDRbauQnO{tHa`FdvW8fkMty8|z{zXL70rH-rYcH?cYRxOQew*F8q>6#x^feiD;g zI-Gz2%60;UD3glG451qrG1lRL1*W4<6+yIu31)t-YZRi*GHoHizNd_C-5hB@6^qU^ zgd53ITE2W)%Gc^58OPD0kij(*D}q*wR6ESG1kL!|7wGDZ6)YvB*=@6Nw;B@jQP|Oa z1f45$)~PZeYFdESkU3kf`nVOxRZxT90!FLM!g==X{3=TW>yvh!pTs3$c%MOk5u*#Z z`q^ihdo7>44T#5?)ya_xwTKmRD^^?_!?xt1( z%Q@B*b}1a&lSd_*#G1ctU#q(^KCps27caa= zt3xv9u}DN4bBl;Pe0 z&nYOhDrF2^%4P(K^E-+4vu*nh+M~`C3?fz}=spBsXIFPwO|0iTPdroF3C#DArxiC0 zVJe|k7g(TuKaa)&2aYRL0--}{w$9$*wW)3Q{!C;6RDzsXC+t#jZ(&V7nT*Isep=r%d3=#H4Ys8scr4* zx+eqYV`oCj;0#jwuLer zhtjTA*z%=|lN>r1VWsert+ZIQPBg_0a7rXzZd^9Dq+k$1rXM&?tsFJ0C1uoJ5{@Uu zx^M6RL2iYcX1dSMWebRzk_c^&1m-*}`vv2lA=j=O=|anc+5clMLKc?$fF0lVhJ7+tl!@9X!Md++^X`O>}j zmT%nu_455EpQK*eOPuGmgK)rDaWUpIpZWbPrdXHE{5F-KJ0q%^SOmY($kL~Cj?f1- z;zMO_I6>Nx55$ea%ejdIKRW@G%pO?MQ?zmqsju%_*@ zxOFw0&vkxe6Jv%hwV-((48f-a+AZrWUC^9DQIAS4b{B;GX!%Ib8VD+d$(#okrbl2W z9H8~5Rg7r3h@hG@jk;|Z07%i?civ6c;9aYF%GAmL(Ym(Xz>#*f5Ty?dAg!v(ZH25Gqq(gcSmv?m4#T)J(<{ z6dY*y!~6G^(d}Eg1we9LzG69kd{3DC04pXlAUb`1wWDUK!LilLfU0j1zEmZe}dHNcpZdk2|X5F#*6phb;SDf|>V5?x$T zwIy?_1^5!CLYv1TlpLR>RHkED2PF}>jm`W8pb7+iTuXaoJ7KGu>gH|}H05o5qXh7dNO7-3vnx+(0}N-D(gFgOD* zTc2B3_ON<6yQ8hl!A%vG;@`!9EZZ|j1>ru*E{`DOB-Clt!9SIWq#tj=-pjaI| z9Yr`Qa58S5+rG0uhkb}Ug^`$+mQ=o$s&;Xt5(ijPFt^$5=EVKf=YNMZ_9_=ZcTlTb zI?(#EeU*>=D_Oj%fOcRhU(W(cwH*wl0Bpps=__uG*E4wh$*0)XbfPq& zkf)-UjS-(EgFOWSp$*6Db6O=3OK_*ak3|eT?bj=Y2Y0z=6a;Xu!VLU2u(+mRhIbpS zn0k@zJJ8!%S9Hn4ifadctJ+%h0}-7gtOMypMp(#?)~hyo&ajVbaSSE2RLhFux#LGl z-RvI9Xm^%NqZ@NHxnr{8%h{7hpfk1yVc97*Az+>}hs!XFl7vrr?>wvh%vxWJi#eKD zCVxzZ_G(+__uLc0%~<$SU@&<#ibJI31jAxJ+Ng}cV091lZ?lpCa5Y!W*tPVkTPcRN zZ!ZV7Z3Qr#Qx5~a{cU%aE6In^t=u@0FM&7I)0+y6FZc3!L#dF|*JW zb|PEzd?Gi-)fzSNOakidxLXSrEFf{SCj=t%=zggsY+GSr{L1^>ZlN}ma3wCamO@d2 zOFeJmH@*)P&;Yut3V7$FH6{T9l5FwWxpRABVJ3kZ{|Lfm2>SOXEwb$puI{k$F&R+{ zz&M+A<#k;%f99reajZ%nnM3Q-IS4bEU5j&IU@%1rZCkhq6Wg5M+lz}fqkR6p@02aO z21-vGRw;pd2`_{7B^LwdQkaG6cwYC^`GlCjyFt{%x(GBY1l@b86ekYdJjWGIjg4M1di|1D2X5z~f6kkoZS-Em$>Fe#o%}0SDL@W=~)zwA5-(r+R zU$#lLx3^Kos3ozi=H@0~)|geQ20r+T2V5LN>l6KkcpO_@l(SP z(m-XoH^xHm>FO>$2v2FmvF+VA7&p`SspHYzcQxEp8I`JWPjPNcOkp=0!MuOZ0E=M6 zxq!X+mM*2Y$SG*i@u*BhXJr+FGMQRM1pRs`yBI>5JgqJHS;(j|>E!-0>DcbLe!6&C zY$l6(p5X~fii`NT?8-xEAs4ivr30(;s$B3>1ZNGN0WPP18`C-uE+b^lW0B5VStgwt zE{!!OvqjETMFokQsSZQ^JIgs-A%%=9Ugo5j`Rx`P z1wc$d9unEExEQ0+VsM~Uu2dBakAQ-awQfuxbsSn`GPjd(JTkYMrwL+cgYgA`D{QXv zsq1V{!KOPlLZa$!tQE7CyC5!I!Tqe>aAT|jb8B3Y(hAdh)AdsjD6|EZsSVD_`|V%C zH9qHi6IfjZ^n?}jtRzTjU8e+ob4QpT_G1MkG`~ceXq-^ zJaHF-aS>x-2AthuVvIyC-u*;^o5_N zD7gae7=^oTzAM!($Q&LSWnp6|w365o%r>FqtLh4sWhK8rilNQQf(E<#@8T3#H_T`+ zjlEY>B?bX?aBsPAWKV>hb>36O6~S>9dOv@LG$MHk{R8NbbhvxY+WxO6 zg2SAxqaax+>^Kcj%b*c-j-4Ncg2F@BOpU0EX|kroq0lhZK#e*Jm&165t3jg>hyBQ4 z0$;06SIoGEIbZtr5=Jn|xFuAPnE*aQWkN{E6suvDdOkDu6g(=B~-0Cf({ztGQJM3J~Gr#_mOn z7L~bOo#ngVf4)5Q>>5tEX)L`RbF!;}35Bqe(3$rl)OjN2nY&jsZgpF3*K9Wd)eX(U zyJ~~`_*|=7Bz|MyY;K&wS>{o}$=t#}ZWylko&hXLgoRd&A%Ul!dODVvg%lm5 zu9I7~JU>77c9#62GL)9ajn2fUs_(S95a9@9dqpzd@4QTH?D-cb3>fEvTQ7AX!k%lh6R3} zkb*Hr9)(V^HeyLBOe#a+b=bW=PALK7p=CA)Ra{;Pg_FYwtzF=aZ-BE3*nqdYRFVWr zTf)~iElwC*Xhhg1|3nQ!0fU8mrr=rN57tm#CM3gGUJdZ^h0*?UX=+=U)HElREl#sn z@cc2(kEG2;PLi&}STJU$0i+dW`5@ohJa59g;tW)ADR}wKeJ=Jzam?!Ox<@Ti4NL{A zFyThxIulElN^P2l@hXXU4v8Dz8bVWfIcSM{-;QnN9NI}n)2zPk+LZ~EOB^(i0r(qG zXCU5ZIb&Us`1|y!&#y3xhUZ=<<@1{3O5DS0KLG6|(V7S<<2x~}FbPQ^V_eHPl|Qh!f5p1NEpDC9{blCQpjqZDa5pz>T%yD%u}Vl+Eb!eaB9+C?8VxYSrvA>`ui!xOEPKOEZWv8qukASEX2Gn&=deC z?Snofas{&S6)jN5(}7UZ8rZmTV=6u9N(gRUYgfmXksdI5^mzH)ecvma$fcTtu;^y{ zO$H?(xfD1Rm8dOMmm<|K_>n=RSjMJek!hyVhUZ_ZDJ@GQg@^;|&e!8Yx~gogtLeC6 zv#501%5h&Fj^RzZ5fON{2hJ5zURqiEsek?-{`%`!YO~nKxdP@!7;oRfW^r~0fOl8s zv_xb!!vhA-wUTyW(JWiO49jyKBe_(bd+voS@(5>zoN!Y?f{+Lf+o%)*=Q`5PHdZ3V zXFpucpi zmA7YL5KF2%sW$b@S>vEuDXuIpx1G&lzE#T2!Gu^2v1MyAE}Z-Dbj^iXgfDpUU&utf z0ZP6RoaI6-tJ*UzBMuE69^YFgo!A%V*J_!-y(ujhDG-p@rtL7Naq*G1LQ5#H1{E)` zG}c`=oekd85kAnT=@8cb5}&4K`1jeNjnwZnsS`>{#=D`pA-o3w5JENoH9ybok(fWmoQdPA-QWr1W45cz7 zu}WJ=6mFwgmkh+55!M4>;s{RoSs>>jeI9|VsiME)(pezMgF@Osh{N(T+f-tB>65w1 zaCCGe%XOw1$NXVzM&I?xRC7|U&=u3ZYS!c|B;HG*j!9{u)bYn*v_6evWDRv)~NdQ<6#Lnwf5bv{U<4rORddxpJy-GiW0oH1RYIHN7l5 zvHIEPfdkx)zil#*Cf}mPi_5YlOUh;fN}v7u1LY)AeNiXNXH#8!)~uov%^lwP%5=HF z5x6lqOVZ1}9KH(<`Cb~aczgr!pGuBJRdZ%We8_sFc|Ca(b-aS|XrbgwIG^+-2~>FJ zO_n4lp_%@k)cS8f{ZfjMIVYpi;@l{;uLiVCh7+dxi)JGqMIsx7I?Ha~C5x9Nhrtz$ zjhi=x^Of>YX(X?(Xl`Q51GK2Qe}urLTs#Y{@iP0NrqNzsUtdfmb5UFlv@dJ_DEXu- zC6qWF8X)w49%)_Jl4k&5xNV~x)J`P>dG@jtmcMw6K-Tg7 zz?lFPv>14ZWKJNtL>YyOkD+&9?8jOSydJ6e!WE z^X#jml%6iFP^j}q@&sy zon7~&G8c$&c_)q~HwY-#L`}e|>_rgFFweVu0HcNIoHiox;NTE@Z+7thV!872%ZadG zL8lI?DzhNMWMCO!LcNAy93T@ljd*ZiAf}MQONZ91&tVFk%b@yzKBo|gp9O>UW1j5f zM`7hyMX18j_q+G(j!-ko?|O1?Z*P2wLzrj^78%)gHLJA4ttRFUW__*@iz@@b!|_YB z5>zh6tGQkD#feFj4?|Dyzipa;5}*mUU!HaeBWn^WG8iFbrxqcg;S{2pLI1 zCUSgEI4HmZFOVl=m|r2oPGlr1T-;-%&m_DRXfC0-V_dvwmP%w2oBK>u+lv=1OeFhT zPpmEvKKBx*LY%?uBKU;ACyhv?d1d}Ss6b>;m9OY~+Rf+SGQku2(2vwiOZGAMR3x^~+Sn`cM+AD%$;0!b)b>lon5} zWN3~V)bi8`6_UbxD?Yd8w7cdtlWar$DF~~Pl$`A*tfeaj#M+l$jzF}mh6-gjO1Ls@ z*;)Z!jV~nfj_?xRRUoWdE|lq)ELj{J>sM(2Y{2vt*B(0QQnt^G5*rX6#zV#wnB40I zTC<{am?g9>?FxHc2!*6)#2Fwp)-ghPjq@m?T;N8~3fthL`a_ga-AuCb_9s0SW&@U*9bN}U`iv1|w67^=aW&&3^0NIoPKBFS?dDdK55>RDin|CY|$~ z?c1gUbiLmIgM_8vaig8fEsK^cLQ^f`C>i!Ppka-eE3`tCSWMftZ>NoONe#DMeI^59 z5}iwo60ku7trZiu)LaIz^tb%n`;3}O{8|Yv$0;~Q2x_^UqmU4RN3l{Q(D7W5zg|o5LRhxXtv12Q7{X5ik+R&it%Yb%N`WLgb|CCcNHZwqc;b6N zNcQEk5{8J@Qgv)vkusi`jJATQWnP7n&lspvIPKiopQyg8A6lo`UG^ zfBfn4bQC#?fx18!58 z&6WT)JgrAK2~(|Fqvsy_(-`JR&Aa_Boa^YMA0Sx4V zfCB^w5FkNpAQwRrV{#S8MuH&YjAv}mbZ4epYAvKlac339Ds3dSkrYXhl$8JP|JG3- zsaU7Z`M!5~mjAQ7&-;F8&Hy>PdSP)f{JqRS+bl>I}^VHhp)3lLgzcnCQXYUb^32lK7{Al7VI>IyN35sgc;%MJU$Wrj7 z=R@Z@ZCDjl(B)BA8Dg3XZe*NW5*Y-%at=)zT9*cG^f5b)TCy7Gnu%m!m_(^C$^=IE zb8GVcyQiCMc>cL(o5d91f0m`K4|0$>Mq)Vd05V)&!UAl(v@h@{keEXVopeVCSPq~t zKfloRXl=>~3g~w~va9R)Dn${Zpc4V5yjxOTiTSy-U`5dh0YVcJp`Zf`#^~$$d zGXiAw%>G)|%zI#7s-Tb5f?th)kEi7hS`zq)XP57%S zv$RjM5|osg3|Sw?S4(^?;-q=TM8Z_ zp~eXdv#sHw{h4+Q#NAIO_XV(88Jy*};oXFO0hW6yUB^qTsCScg@RA|zZ^kU`H9XAk zZ#OtiGT#Be&~dZyHelntXEbJ*fV;8MedkW;S9=^@sr&EeKr$Bp9s z;0HhG_a1Sg=0Js=7jm8@U6dL?Vmk7}-NyHfRrUm>6zn*r?H zv8xBBW1zl(j64!z3f(aI;>C;gl%P5wR10Cu7*C0TEI`se7kz-~ywE(Fjqnok9v0gvG7372BUa$fP_UA<|&B>I=f== z0nPaf0gANiVTozHjAu~+ImKsTHYayvz1z~J&q~X<-Ns~oe%y+_fS0oJ?ic_H%`i}g z%kfx=4c;&cbMy1vB=>N_<`d_ZCjaUeuTMVuNSva%gp4z{}+EcdF#UJc3ir<@X6MzdTzoz_= zw?;ytb=k2YUeL}%8C&T8`O4(mTLG-_K)r#NQzCny*X@+4r~P3RhS#NmdQOqmrin8C z0#1If+q^CPB>Ns2U>v;c-2qr>rgW?a7uhUfa~u}<$gXsbG{vT zj{Ml2%Gv7;?eOu`Iy|1-#GVkBvef;JB_S-run$vw;(Ed$j3a#d9!cv_#8i~dk zqMA^eB0=*qb{+XlHhIHemQb^K%4G z{>_{K0C(ElyvIB>A1wEW36m@d5^VHq@-^)npZN=cd3=?AT0?hO!4FSY>@jY8iV?8vmGX5q4PqPvV3E|W>u_7sNv4d9)x>}8>kj5>#UX6I9TkMwMn z$XW$3gG)1UzXDc4LQhFmNRiRCk-Cf#lB@4sntYj@f#m25-+!SB*jPT_fosWd3RPIi zfLVHstcQ~gY93Ii1_6p!>7!V}7bk=DzKnz7U?%0Js27$lgbD$m2&eoEmvV$p!_{Xg zKS=(Ib<_r{DyhxWVf_?$$(ymT!YVm1yQ;bE0EO2AQ-YtJ%n#&2fI`x9@v_Xp*m;MP zRsXd{>BoD@Wg{g9%ef4OXDDeGu>lir3hh1$z*7V-0`56)zz_|18^T^Ywi!8sC&wp@ zI(YCvYXm;N`sw6fB~gF$+%Ozu~#@^h7_# zPAE7uWc(&4d9ly`&7b7y6JOk%eE)mjZ)kh|{Q1%p(8!?(h0O~%c%(VdCpYp^E#M0X z$8s4~hTKV?5$1lH`9GkxOEiASu&HIB%{CB~MHx@u^9x8PO>mPkOOh{P%)#Z3t zc~We?1AtMg@~Ds84q$yZ>Bs?tg5H2p<*@fX+bA>7&yF)%We+*L;oYMpgkDOMWak9|gI$01e8F9k&2{~-C7cp#Fgp0VwH8W<^e%c(>rJzz5YNDS?~NNM9LPfd`#| zJC6%}F}7gfn!FVDcoenpPemzfh2G`{sK;10c4bW-jYo3jNuY7C8`XVe9byOG20pwIZpqA`gC7&{9jk0)<>Eqq(eu?*&<4FCvW z7)nNOVSc^}=IJE7EY+q9b91GgaL5*c<)w=;;E$#~V;dE(JYt3gA1EkKj*e6wBDd&F ze&qIkH&1V2B+s3@(EQtT&t_#X^SFE^j~3500A?l&36q^q$K#C*-nlwie=qtOIy$j0 z&4mXN;Q^(Tz7MAO6vika$7{7aI^Xl6IW#TM3mx?B9za8{z3-v$ zX-tl4gnINQN%ioeM?hrGWSb5Mk=JMb_5yC+l82Ed`bc9zBSTB{w|oAnBSqvSck5db zKwGSTU?t^f!$RGR7=koJ}90FHZkiIi42 zV_8^Eqk@+Uc^}>bN0wMJmQ`aoD3%wC=X=V^8>RrlU?9Z{xsehB;KidwGqgad8A9IgT zp2;Ct|M~y$&wI+!0iDn_uzv*(8Z91gF?uy0TjGPb1z=_*?>6eC3k!2KWTyhk-Ow7~^u2s5I&?St%^0>v7E=PBmCumMu&*%U*@APnr^F|+_`T~-O#MK3&6#lnX(W$47+7|B|9M9cjS zrDww!=z>wikeo6a&em?9`mKvkB#dnU8)1SUHYc{+VU0%#31^S+ARNq0P@(CDOp1kc zQoqMw$lSC5EDZvtD@#iu$lV;x@Jw9pxdIvjK~Sq{89_XVcvw2*zLk-@3-udvI9eQ` zizQx(Ly99WHg(DMD@@}}e4cACpJfyRu%O&*OZ9|jb38NdH>G2l5T2DJyvs?(_pqOg z$MK_pMn3?ECpFE12*r36EGkf(hGmlFX|CRhdMJJKR0x>QF_l$O4(>gH)$ZvtXQ~i8 z6E+NmSetV~?0P%@_J6tgpG+pB79j0y79z)rs~0nNprlqy={oC82_@3C#RCPr6p9kn zK!nyj(rJh+^s|x%Or2Cm=m-`5YNMfj_>5NshvhT=)2B}LNLRTX9xBh)(m&tZywL;C z4<0_pLF5j(`>vvpZR+tDuY4s85ZFIc`N5&Yo+yM;@C)jS`}*avC&ne*r1i@}B7zuL^LG zJuAD9W|QK|rR=NWg-1pyC65d}_w7@pESD+0kt0U}RE#V`Kyk^R(7cKFfF6SZ{Dks5 zQ})0p;n!Fs(!XNVodt59)(^Au+bZ#gImPnBvVy+7|I=YSyr0Z6w37z!>~ zGy=iWXhiDu`ur?$-`0 z353p`J=<~mj3)vpfg%Mb2#$4d?FjkOdT8GGI|S9Yb}0Z0NpK0m)_4=s@$d-L;b5lw zTnoH}pQ^Rd1c>l-^w~LP4&J+m_oo1IYsPi{!ugJkLZFXOkB6sE`4`?FCO5~I@gc@E z{M0VM2C~M4uY(Uf*+JKECT|D7@X)>LjnI=op%-t@oaInF#bhL`v)L^GdEmgo$#c&< z+p+^n_RF`9PyUa8|N7*uv&*D;GV5&RxcK3K2{zQIMCZ>8D1sCZ`;*Tm|LDK{pR$K& zb@Joi`%w(Wj(So01FBCSdb)FGsEmzr^E!YrKH;JCfIU^_Om6+o{{?U~@EHR`={;gw zxxym}6B)QmS*Ve3>Z-`^?CcXcGdV}?=4wU_ zKP{ptDs?^jlOIO=TtM>C$S`A$uiA3Hw*?se$*uCQn zP?MW1kX{LB+8vY35PVKyDX@XcOMIEUk-sH*r`Da)TiM(00P|cYf5cKb6kgau&{(~0 z(+LHD0fAJA>Uu9>EU@HWW1KM?j|mbaKWERK3m^#xMgp49%fZQaxwaNL=uwB}-Cm~pyCsPRZ@ z(Ijmtq7}zoQ7m4B{2!yC4f8CoGEOYB4BoIXWT4QkqXQPPSPTWvtF=qH7hn#78@%$~ zsttfw&OvN?Pv&X-R%Ut5cqoiP51~6FLV$!QhXO3Sqb$aMa_POvzs{jqfA#js$>kgc zyEjjJ6>5bG71jc-K5{P2KmMnGGWqk@j!m9De7K&EEmd#6`DXh^1GM!re$UxL->61I zq|zjGkfWsVz5@(H!N%&9P?C2Bkafo zhdG@uhBJqyg;4&F&C2f>l%Bu*_1c!5wUEvH89Lq&xoZwApOHCqUbitGU>;67peEPm zGxFCJ!dzb%%EdL(Knz%gQd2CDQlY1#Ky?&Qi{8>`WGkMOvI^~lH$jzpfm$f9)npk7 z*Nt#d=)f&8TlnN$uWxOFXZjFlkdIoLcI#g?u7`w!;N{F1j{I2B^PDTR;qy0 z1Idll4J^CI#JT2(>=82r)(+Q4V-Y3u&zwG8fiPiVB9IgN5{54$?9R`iL_#IkNLWu- z8%TSZGbZ7!rDTg96wZ&A&xDD<4Nt7rYRjQy z&pr2C=s8M3mUEWQua2Lc{Ke}>CvTiwn*3?_FiUA4dL^faUrt|N}B46d2cxs``d$xmSPkq?BpubqPH)#fFcw2&(hLzE7lzjCZzzRK2R85d&tv zB#V9H+Psgrjouf#1R6|g^ND4F;;t=Q87Lz=VIQQ5vUunR8~2jdFF6F zbX-7Ap9^R-VTU*<@Lj47q|!-c+Ltkyw9LOO1+2 z%S&;y^+P~?KXO+N))@(E`Ggj{qO8Vh6*BS6O&yhj)8*ymzDERr04P65Sp?SbA`n2{ zL@q~O>9JTq!p1wINWhH3DClI#c%rNVW$zIKd5`E6!u~W*-~__8_K2SLSuj8;A2RhA zgs4I>A>X-kXD2rT3_?|wlV^zGfX8c^?B$htnRAo;xdzYxFWwTbPZ z^8VGECnkT9`YxW=|M)Ne_2h6oo$tNyy^LAC+Rbi5kymn`?J*r=##s+KhKb^lBQIk& zKS0h1nWNndKI0{$J^7#*!ZC(pZZ65{0IWK+`Mq-uqaI40@l?V&@+grE#L>Ac#(7U5 z$Qpw~4$aZYe(30)i^~_grHmZ%)NCV@(m*eAv~O{t@6Bl((srrxn+B@b<^rgB?ZAeC z0)}MV4B8)uJ)OfRN$5MsN}_y2 zK#QR>4)Y6{yI)aGwmOp!RH*lTTV;U5sQ%==FKp3?Q{!_Wl}}m$Z?#X`jn2ZKJ_$p+ zxkhv_j9*p*rzH--id>ZW=f3nS`A)`rUH-Pih36G+)S=>(%sl+W<42&~<}~7Bypjww z84`sE0K@C^BrrYR`M`m(Q(k^U2tzQqp1djE0zr~U)Ivu znqVLV@k*GWfRN>I9l>y#n$;u|JCnSSB~MCe6{(>B60#uiw!8o!3W}4xL1Hg%yrMnA z;22PXWK0x+=kj4z_!N)=Rkb%t11K?|A*6uH%Zin22r(vYqJety2jMIR?mo~%qv`K&!g!u*|P zheqUAUJ#$ig1;Fk{q5Yjt9)lf-V4vH?#V+fq!0Pon2N66zVXJJ)h_^u9t;)0%1~?A zKZ+xueZ~=Z0YafDAiWrQ1q2qnuHU#mc{{6~K(d9~8ISvbyRp+5b4IT&C}lsRkly&d zj?8R&Fy$2Sq$(4UD>YenZ+W1?&=WZ}@+SDHVFM;Gjj`T#Oaira4GuwRA%h}A(wxOh&VudJrCdy^M(N(0naQ=z<`M`B<$p6-^w4hYC! z0EJ910~_tIe)3aG%S#102||M+EaHA%*YS7Wso;hdRbI>`gu+9Nut$s#c?l6P;@7Xe z)}-d;SasWe^h*Kz$^?W^fBiSVicpU&7=Yo#iFa$!2n@v{h%6I^*K^8Py(nZ?4f9?* z9*JWmNBa$Um+9 zwkryOA40~dP*UO%dSs(??(N}Kp^@=mdW-l%cZSERiv&FW@DjDo zPaX)b?phvZsSHI3ruftD2p|GLjgk^kP_L~iRq>tAfE}6R@zx@T=DrtFN)rGB`6nx` zwzBZN(B?+k>K?=JgW+;20fkRAFC@vI2^M^D5)gE-*UYY`=Hg*FheooRb&Z!5VKsqq_i)Yc1jVnXn2yW7 zfB(KVN->275SeT4NvT2_0t++%5rquL$}~#G%X#P6@yYkH!bnJjd!NemmJ~dN{6p7uw zeG6p*Ko}?Eo#?&h&C>H6fr!6Za5Y|C5V&@uN<_*05KI7S4!JnvShGfhMnXjsR`ep@D=>6c5$n&UQu|bz$POT}02N0vsZ&VtqQa1)i zaTo^+x|mRaB_i}JtNg^7(`PC?^spcn%SOPs*T9VBWHsdlw8t9|PI>_f$=|8PzM7N$ z)dG#0o1yF!*pCT~?J}`SlqR)J@(xZEFm5$r!ckAvXt;;5xsMR5Uy*Q?D>NQ?!lmR) z2y2xw^p>n=p(qxf$TzX3tkcM6jqpuava+&Lj}T8JfK|1ty1x}ZFggTAh=*T5hw^Ge z+M+MKkN53K1ZwE;i5J)vN=ge!#j8*37K>&{IkR#*AJIX_T3kvy6D&f%62fOOV zd#P6+f%m=bJdf;j2z<67?Z|nDmfv)A`1q}IJWo*bsKVhakutgXlHiIZM+ZfsR6cRE( zaXbZ;cu>!YnTssvo;zP$o_uxfvmA@_ zS#o8`G2e=DjXZx7T(L^2PYt)v$Pnzw{{=hS!00^wDmv9S`dQ&bv*=BfB{z5JJXd*C zFN70`0x~&;ZOH|w+aNH`w9Qv#7^cBN79DC59-sm&C_LHMIn-5>fcclBz|TJWOo_!! zq-;VJFAC|Y7A^L4w|Qm2Uwq-ggb5kaw*S;Gu^J|&FMSgP6EjBRu;Td2E3ec#6KI0k zz5=4I1!VFvhYlSIXuXq~oErrzxjNUmhu8N+zz{&IphgPjL0!w?q6 z3vi&TIe4KLh3GtRC@+gM10Y98^kJ;1@$K7}6{qxP44U|2VayOpfD#1R@A1O7UwCFmNL2XqQ zarVr%EnZVY)U*kN@W9^`_g0QisiDg1Bar7w1DXM5sU6DLd2-~MXD*aN`{$o~F11<@ zHvEOi}AT6)OIHDOZUPL0Y_%P84?~Xq4#%i2$ z4S7Lp*UL*WAZN~;YpH}9v`z6|gm|{!9NfRJ;329IdLB+n1>aQO+ma=u{ORxi?a5qZ z0neTA0POU;GX~iX72x$q088f5^M_(cu@IG{+x+?_u7@ow_CH|^gv2<;;n6dAfW$sN={N2_U)ZKaRwUFiCmv1 zdtdqN6P=_#>5qP!!`e6u=!PG>!uy7$P7*HLUe-mxn@G#$Za|oO5j?_oE2}+FnnkCC zI@A6G5y~$0=aYs=Zq4YMSD`%lX5sL)=3MSSJGkA|AuTLqbp^(>ho@2$L7 zMfxI^j2CHNm{lfWjV%MpAN1?Ku*)p-dxS;^T+ai&GbiJu6w~lfK8&LKdzu$Ozhp61^3V%%?4Oxpy_kDSeoSg-<2#{(3BNs3%!MR`0H6(sQ~ z1}}$YroiZ9+(1+w$my7Pt}Vc?=tX#x7XU9$D)BiU;ye0(6?rmW zfM7wvxYekcqcCewFJ&b+uJ<~$p!j&kdo9pMh<$GRk#LYl>}jPPAB_ngC=FVq`?jg1 z;iH6oa%Y1E+e!xm0K9UpLNL#yKYjXiA5_S|{N%?!ZbJNHB{`wFtv*1IJmKH%H5ukj z)a#D-CG69#!qiha3rp$);J@_Z_c}&TLTTbV_b?Vb9mcRgL3#4R6TZpf!d&H1RlCI% zg|EO@Nd{0d7W0t;ptB4e+Sv4sE@ayZI$krhRyXOE&*V!L0xvEuw9h+VUYmTCd3~Km z@ToFG9)U^aJC|_|LKov5a1`0d$K;yVi{vKn2%E91Ax=OJdtdip4j#<0$@hJeXV}G% zNz`x1yjvU^oo|jRU|l`Zc09Fv(XX$*3U(^Uclly$ zavY~CI1~OBw=PN~oEmi)8E{7I9$u?TZvKwUmV%D^ar z8me02T%*+D@mMIK)SbBah^bA9Sf5S906kh!;jyq}7(zHGP&dxz9wUMN&pr2SAETo! zD?bD-gG*oE1{fZ!moh&;UzfSHM!8Q|39JCCA1gr^s{fHgN!xTL6UWp6MCc+16Avx) zn&wU&GHX!B8&!Ty!s(j67@V5faP^C-k$cXCh2Ei#n=F|`w6(5p3ql8qYr_PG4Q0E6?QX50^fj|?}U!TRv8gvG$2kmQ0TpEf8v_Qnb-n%~KF`us3; zQy(QPdv9f>`6PKo0BW_bd9KJAP_T&e>(^cny|R@kp`}Hhi}AV`+RqXp;1O^d;ZB&b zCVvhMlq%u9AB^_|pw68;*KqH}oQ}e9%A;P)xb`GRr5)*v@-*^8E&*JcYrPzRP3xVn z&qgjvXlIAXC`=aC-pQQt^|$$>a4vd*q;l8Yz7x5?hwM99P<~;&(}X-2xu-6R(TZp9U7xza zMGFlo(Cs0;u+T1S=o2e;`%6j3JZC*8Bv3Thn}`m8jp|sU<)A)@*CG$E6m6#5fJ z1L64*P@qh(eQzuTq%MCL0VH_ZbG74MAj0$Eaq&1QiKPDUnBvuCEWm)EYL|Bl z#LeG%VAJYlw9Wsqx^d&fTi%9MG~jSEUg84}*e^H2A!8Hz?b$OM9_0j%(2zo#$A=$% zQ18|vLA{aC6_E4BfRNQe<3#()Z>c;UQX*gX^r1tg8vvc=jTqWpi4e#ggG2ev^X;Q= zhu>o^w%4e)^Z9h6vg2aReY(gZbzr5CS2{JGx>u@$&%lNk_rmip)DV4=8Y#5Lml`P- z<5dU+bd8IL^hxBF{58)T8MJ-LYON!N}-Uog_lu4c?uv`U<^T6b$N*ok|>upgNDEK^m(@3PkmQy7v9Q29L^H`#0z~MH z!OKb#;O31~_(N~GBlnf&xyCTimFFWIoASu_Ku*n!b_faU54b6*>nZpE-i$G!f)Izt zX~h)ar<05~VRQhLverY5!dSr@pdF#iH9|W%vL}*=KYsi~Pv)e!=xT%v3Pl50a#rL= z9<(8IWKON0RYzXg@W#iS&_(;`WfQQ;PGyMkJ8|OO=6+s$@uh;n)vH$u=o0GfBQ&PW zWE}s{#wy)Yvnhkf-?k+&MovahK&&rxk^7Mpw=m>!)fNrNE7?I4bVCmj2v2Bh@-`0h zQ={l}c~Bk+ep)DDe5QQznSRfmJ(rV8XY0AW^5TnKO~06g`O$aYY5T%iD~58K0F#%* z02nt}AWw|79TPyBTqws;LV~XHwdNyVX;HwLRO@qe%-8W=zjpe9SL6mzF;E4R%nPWH zao-I-N9J>|-%KjgMPKq>Q!oC$=;^vIR{8+L_1m(#EnJVx-TmTf>9lcM4D$VXs!=?r z5P$N=%m3Lwo=iq9KpM$BdFM&l7=u1brCb_XqcM<7@A*65r|p@?_AMT|lGOnnJe1^gz5`qYjKE?JOUU|4USdoxsV60Ds3(wNP$Y@-F{pHv!8cKz zYY9=oEQ1|Org@~-<&RoA(QPZ~=Vt0iex0YAp3J@~%ELXUAedyu$~f(+AJ0FJ;Agz` zcoI?&G>YptCM$^;A?e!D#u=wv5#WU~1T3XU4aRjdv^{QY>4?yJ#hU7sX8b7{P4+x z0)?bHAS1?4F)d6?J*iG4<5G@dQ}Bv_?C|L^_1rZ=Qd zw&wfu=PzWO&Yw!HRy=z}+iJhod$?f6d+*DfS)Vpq;2B;we-scmXrND4iV69Q{@#~E z{_e{nfw@4x%NrI&J_JVn1zqcp=ah2+)2M_E93VM zjL=WGY)ZLg`a54oPYi$Rzhv>6AQov-@KV% zbA8iIeZE+K7ASv8odI=v3)4Isuj}wLhntIFi6oYRqnC}m02Xs?qp&n=Oi0E0DiW2~ z;7zH_ekKg@H?P2>#w>wT93=q&pu!pkM5W8ndItF$kk_-xdoQ^k9tMF1%#_;#1Fwwr zu8W?}7z-hS)m3MB5m2jMp4{odAI8mtlgsibWMfBX-fV?J>1M?^WdPv?=1|Y#GY3o+5!Mly|s_{}$C}k+vNAb-2i);~@o!!$g z5A7)Ep@aJy<|vbxnc=N_w&b<~2yl|bo(irbiuJ#=wA8SRd{v$^Jl@ct!B}nXqCh^k zk=&+dy!#@wv)x0;B-DQP*=Gy*Os@`2}MiXPlcZWvg89#8wNx8Lq*4sYkA1z;rKg_fB~Y3$#=LNA`w z-qeU)ii}z0x_aeG=99zw;^9B{>@&@cDSkC4Z2%2n;<01L>KR(7S&C<7FY8M$z1Uo) zvJ|prPw#WjZK~Hh_A}-&b}=%Fx9u<77|#%Kg?{G6gH|hs-le&J@|kf1QYUnfS6_<6 zHsp!0xv?^@p2~Kf%{yoF)Kvx2(Unx(Z-|FQzR3O8**fGs&{FRu_gcKE9tH=}(>Hg9 zGecfo8?#*c*2&qi_sJtZD8gl6a!%s?J5e4l&%So3-+WdktWH>#7Uo&evNS!8YMIok zuo|@-xld=Tqsng%F8{c0Q%$g8IOL+3Bge%d?f-QL?Wzm92lq%in%R{>~G0q`2mV!96&K-YDj0P zTR7r_CgU+G|7WNLH+!f&Bk}VjUYD2OYe>v1lUEwmznN#QRi+{QHAg?_M39W16(3~^ zEb^_)Yi!|JT$pb^D=8U};Fl{Rz{3j&aHipquK+?Zze;{WjtqzqtbAKR7U~!TPnGbM z2Iyp9c~L@Mq#vQZ`YoO*`pd%r`_B?SQX zxwfl(KuFKi6IvmoaRPT~1hQd#ybAOsCji$U-h1JLu*p3?``J(Xz4XDCSu{F+{CK>Z z`Ff3!Ow(^@&08%vMh4w)CDTh?m3DwEZ%|oAkKoCC^^e|Nt;@B;^I+6Rm~531 z=>@=2Zoa&kq>F$+4{ z-0(p1j_R`Vc|k6;Wwhv8p$)LbyXL`d3`P`qa!tJ|L?Dai5_~{25gws#ALZ-N2XE8k zz^3~GYyrUas$lP=gV@*BNrjGURs>g|;1FQKI#$gbs-G=0X{;7G-+%KB@Y+@;s1s4} z<}7Q#^ynjsB3WxyxM^HpA-KV?030iSn0P%c-)ADe>npzyjSxAu#wnv#BW%(Ih}%<; zDR-ppy?axa5-;fW-@Gxgk5GLVWfdB{le~&>#Mxd83k!Llr#%PIgm0`?licwR)d(Rx zH{G0BF)K;WKKEP>ggeu55jKk4xH^m|vkf=20Hy=uq9b}SPrtlBA)cf< zW(x&*Q0}#0Ah)MU^p|hZhA@EO+jwkcN&S`|7Ek^K=%S@Og1il7;O1K;qhR0W^PayR zp~F9*#nS>byub$;t9++Vz{Z>40RpEhU*)-X5&DsPTRTBB{pv$iIvxRcxf1lIbO86n zyQi85>>@|z#aNh_L^@#=>QKrr;;FgccTx`IVOm#ad}+Qf{Y*jEM>hjZiYfo-kN$&< zWv1=3+V3QcmSk`KG+;s&@8v){{NW)35zx17TlgHMI-Al0WfAJH^!?oP&rbf$zxng- zucU^;(0afzirQyz@vW<6Y2PBmH#9g&VxI4OWQ>;sl&5V=Z|DRf?m=dMO{^pk`AW{)_aixBW^SWg7# zF{kN3jD79nE3udd>JbQ65Tf2vzYifJIbvg0T9KY-%_*RyK$gw{f~2g_lCU@`1p`>6 z0+nzwBcS*^g+agpTtLA!!1Db0^R-?ChNYh-=3QTWET3@e9WBex{3X<`nKr1^+=SM_Ye=qp!7RkZN{C&z^dBPfIo+VVnIt|ZTqc34rX ztjZVw2VQ|j~&)F;6Ej0K7g7WNv zGh;))e1;CjrVZa2ixBX1fJg4hsvuCLQ$vx_W&pzQ?nf@P@)0?wPJmE3JL8gHA zo;}$Hl(AdT&?e*Td-}LOa|vXWF3c1qa#_wfL?qO&NFx-sxGr>giq_b{KM!|+sdLB3-UjD=Cr6kdC84DJVBlmFa!qH#qST73~PR6|mSeXQZUsY-ogdO4j+o z#E?uNU)8C1TndyYE&9!E?R)B$5G7;rJOB2F+atkp?)*q@KnCd5_4d5?q*dC)d|E5M zKU}i>MwOeWIoJ{o+*i$|5yl`cuvg;oXsFD)`Jfqus8%9aek`4dy^5rfBKO;z$N#t0 zz}T$uTjCP8TWPRlQxb(fB+`n*h=p^;N@8Q{@HDMbk!vjdX~$SeCfef>3HH9cs9c~s zZD#r;X&`Kl+X$_1#C`T2cSw??jb%mWop2#YwL}%SnpQ|gK9*DdEKjNtdGg7pI(BZ6 z2Q`v2k}7-eKIp`%6*)6j4{J0=%e7a6NYD`9$prq$6^NOC{_~%=ef1I^!SqF{p7-zD zSNizJyn9pb!vg}xEs{Xu;*cBYdpYQ0uM}%#{!r)Rpunx1t;9M&P}T-rSv)kWyOj3H z0_5S|RyOpRAARGu)s)4Bg*7c4ak^L=+7uBoK<~}ZUZOp5Nue74`J6R^xQ1^ot}}MJ zZ24RNEHwm`J5YRPjB+PW&hDvfdFG$-zLo+qzsZ40&<+){WXOoaa{I|d^4V~uGmyAQ z%Fq*A=LnHavCcgXHrF>M&gBuVhEOnMbFMY_?r6?<&BMJ#zWgHNmB&~}+HXm+Sm2_} zt8$z1lEn^7^JycS3+Ij~Z_hnL0ds#dx0$#LzY-KjQTgu74nPpkbTAQOG1-L+%ZX_| zt5C@ZG9e%oL(x||?v)7h_#39>{SQ_vWS|~HmnpBFTgDBvEH4@lSBubc5h%Tw3(ZTB(ECnGw2jM( z0t4uUUJ_k+Kiw||JpAC3#F6BrI5ESB%y>=yJ%{@5@Tv--gxV+u4GBt8efa) z;xc&wv(^&C-HbMd7CsDF`ey9T7oKg{%7BqrGFnHdeS1%*=?2$pUH09`w5y?LjYaM? zmYz$a&9n`W;T1g|=g;Ucz32PkVrt5vesR6RubCZB&K=P{qG*07{PWGNE>BCtN~M(rlActhsbx#dPeZS0gl zpO%Znsy=5~T`SIdYWAsmuL^?*F2Q~v!l-{G$rJ_fV6xA|iiFfE37*Zx@_NZA+rdkq zYE&{ubK*_$HZA%1o2N{%Bp!_=lj<0)k!x4}!1LcFyvTuAb+n^uk~a`aZGByH}X)?B9YgPsFe0#b>PRQSVkw2hh2ef9sPAu4C8FD=t zbDeljKX+541#rCwUYTOsg^$`9-kUZDr~^`Tbm7dS`xcIH`^aXIE^af_i_;oUE}I0i zJa;qhwnv`G+9I$92$Dp`$RH0!@qj3U1cv0sv~Y#HJ01ait%^7bj7E6K8qX%n%nJcr z1esE>?hrO?&)Fq!M@VkRZO=jO5q1@cyK|o;2|<<2;q|dN0Kk&V4}S1Flezi%3fLzJ zEd~+HY5;P*i4b6FEisCVO`&T^BVYus<>3)H!hvXyJhE$K;8EEt4O;f0sF;fhehAp< zGpD;GCY+SyLsvjzu9Tc*m-zCmDm50Pm`V+VgOk2)88tux@UrKYRZg8g(=ieP=Z~l` z458X)fhK)>Ng}e&m~0OVgMw~=*wQLKvV^?6&M{sDkkp3IpaPrkjafA(;rCO}2#?W9 zO^e$op!a}58%99cg`^Y}*vZ0QOsMR=aWG`)45-k;JSjV{2l~ic`iG_f9G~@%wv3_V z&Ch=J`&CvTcl`LfO{fZ;c~L_lGLS)z{%yYaJ9t$*%9LA{m=>h&F&PgM9Yv zxrX?z1rYdS{CEGv~3OlHk>r-?~tK=X}be|r&=8M?9%$gS^ z`OG`d1sfuFoE45iDA?t|7G~vhNpHs%vo7e@L|4XyzIOwxrFq(x$VPeJ`)%y?=(L#e zlueN}a!uC67P;GH5Il3AN=f013fr zCO4A+6olG@3>s*$1XqIgmbiphashHk4*QYQlF4_!AMFv`xw-jf`h_(1KUCNQimb!J zLYDd>uwDdcXP9D1%RU6#{0Xi6!}(a=T>*!E5jaaH!aOfvV{90M`SMAKRtd^y-m-24 z(%QWD1KGK@lNRro2Zfu?6P4R$-uQ0_mEMFecU$$UFlatYe8xto0Pe_;j}XxEBMU`& zSkh6Y>q)ZtET!n?rLKerb$<>GQy@kt@#BfmmiO{yJg*+~l@OPQWsbZCpd)X=i*;I^ zRS6;bQ%}xTnS}IK87LcT-?L@VDs*btnK|)FC=xG>p}`a1c`;VgItTQlSgxgfig>1* z;LKYt()}{T@?5-ReC2VwhvH8Gn{k+i7FB|b!EZkl^yJA?J%7crqP*YPvuAs~s$V?A zQ;Oo{7a%n@_xpfS2<`9_ttd1Fpd``+=&R;ISZc0-l6R|eS#64HQDZL9XFRHVd0b?Y z+{lvxBt}7sfXCB(X2!)smTfl_c|W>BHpz>zOyyHv?eyt0p;ZiB+8p1-nB=`BJaa%J zvgm&A?e;cS^0l(ET6(K*0Gz+~qaXEiH1XNe@^Z(b-DcwTfnEU(+h6FUmoRl>92!p+ z_L&eqwd`Rx9U74UP(kCFfWOlfjAyDpY}kf19d~bro@+skbj}E^eTE+0J)O3uUcP;K z#gzb~{JDKXGdrG2VOC;In~myqM9_3HmJ)MOI=>ddQt2ia;e`MQjaY=yQsGEuMkw;1 zsX7zIiDItt0pVsrG1eMA;klS4HC`2^Agp%2`fZ)pdAx}E!RiO~6bR~`**)pUVNb&{ zexCdkE97t?fWh@%Sy`F9_|o^QAQlgP>scXopgC<)P=bi@)A90%gg879)*%xwqGJ-P zt18iXAVL%QohDoJ>}vF^Za-) z@@^IlEJ^BzMXdEM6#&o(O9&kgm^XpX=&rq?bO|j9e#W2wD@WR4?HL&h3=-NxDu#@} zGAQN(P`=9#r9I%S1N=dh(mP{NSawJ2YW>)|LPaNXy|A$D1%55RrYMft3p2m=uT#BM?VTYdAo5_ z04sv3TK3!Q+X-NVW{hlPA$nco72qE<%-0DC)jrJJmo!rP=zg4x)!gU+ns%~ld}`n2 zTREO#C4A5Q-2|Eb&DEmG%%h9*N30}dg-e&GNb7!^j~DX)M4H%17XxS!PY26 z5GvN1M@ef9(mD%jU=*Z9Ou3GbP+Z;=&&tkU9*grA1syfmtMu^wzf zfTegq!mV6h9uq`!b)R;St6ogznU8C6$$&pxizcl7lnxY(r|aOP4Kvwi6wrG2-FFjO z+jKfk{Ik;;*$_^S2!FJ#&jCKZo3z+!E{h8(T&a*u9!;(Yy#cw%!3!z1G!lho|xOw1qeHo>8Dz-K&!`W9SDUZYTM? z8~xJnOsY?9PA;5HNTxJ=?+a#(k7T9^nR#pnnxIRfY*`R+ePZ>paR#5dUkr|&W_ z1n43QBA8)l383kt|FUBE)Dg+sh#ohgo$@x&#y@WOJcU`)$He#yQ8eNj9om$|wRda+ z!cz!LknEGhWML4-wUU`)dVrzQZd0y#;_(!$1d%Dmi4(`0qX2j;l3`mu_k8dhH?B?2 zo<0-iIKI)cxJ3ZtR5_Q`zkmem#(L||58;`DXvd5o#+W$+I^PLjd4p4MGe4FEhZasf9Q~?)ZCwf209}=oP9oH{f-v-uZ)LPbh&CR_eed3#$-?}6m5&#r zvQwG4oFj0ykYMGK@n+1)6fad@3^iUAbW0v`H$rt`Cx8*s+Oq|W0IS>=nIzJbTF#cR zURp^4o=nrY{7t#FWuCkj<8~i!Tp^&9=imEVKgw!z7Ho2@)zrWKn_rcmvjJiGU$kPF z7=#vLr5zn>PboU^N4JnBbI2J}q2--B;cIxiKC6WH@&H5g1ZooM_rgbjt-p=;TL=oA zrM*$MWaJrZ+S9(dc^?K;zKxx1@pAKMvC1W$lXv&m+s=5+dA)Ncy0n>wJSM}a>zd~G zH|CJ)LQF(p$}<(#Cev~?0qIF@0i`W@M%In%DTB_SDVYQ$msFTSdE9ScEQWTPrwPMN zhd?hZ?(6EI^60nTd^3WuC3QTr^=#DRI5v{^gWj>wQAWxtXV@y-jA4F$ zE=O19`BU+bDEhiB%IQa9*L>^Y7+K|;x0_1YLE|j7}TXH4VPpdv@?%E2ed{rNKQ7;!)pp~<_u(b$A=Ccn*8z?zwG#V z(dwb3M;e5H$tNU0>%jJ84KVKI6uzv|Eh-wf1pqS;46C0Z|AQvHPWed>12}Q=R1DjvU0e~) zOPY%u?l7VutZ{qzrGJ#bizr`)!UNXbiR|k=dItmkzLflJD8Bcb>ASosL>2y zj@bl1c0QGSRyy#5xbj#~&LI6}#cwDU&3ntU2!)_>9zqy{(czX%4#=@2?j^j0!1ZEi z9tXujBwhy(hmaE%0-=rHy6)r53?AHS&V^Y{$YN~V`qnWeA#DXrC@FkmrG%T5Tc~BD zUl|hC)FP!HfG}l{&nOe3UW+9fOZ;mLT)UP6DIg_)^Ybh^FJUaVBeWMGE$sq^Q~H^= z6|Li`50gCQhGT+o&hA!o*N!D%3{^CVmV}!UVJJrN3bg6-OIdLRG(b9pD8MZ*FEm6}%f>tdP)k`eShH>b~)1PHxN*q8_hfu2!@trK1PX zg#sJ9FzM8p)03b4kwhXDDc?y(?Gpbcf8( ziWx)MCorUaAYs0Y7vA9kIrf_@Yi~9{Kn@VpLXvtdG}IoCq-{iwd5u7V_oF7u0CLNB zFOi3km|Po^heFQI?kSyld-8h5Lhpvr&Dl1g9eK6)=g}T|mH9+=U1OnODRKb3U&@ng z?K=V*09s#frvAz%OnoT4r7!ZbWRS5~zPMby+LrGheC&zI&LsonQK0|kym?bwOuaACgN*kL}PT@hJo42OqCGE;VI=swNkJm@9Qf<{t{>xWKJ(dmUAHJ7o^@^YaxC!tv=^)HP zC~O2~*Awy)d|>352aUV`8%vx)wu$xZ%V?wH|9r^{I;oaYW1f1owYl94Q~n{>W7=Z zw7irh>dTYaD5G%*QF$4yX3sbX;dFlJ(L7v6Xnb-Yav}hTXE;?_I}GNsaKS4w|C>?x zv*#~#)r$fEnl##R&=NvRS%Fu6jdA8)e^UUwVsPZ>gl)WJixtWHO#aK!V|w@V7Dxe9RrVd-M*v0XZHQ znlg$t7WtepM)UiljKU-1V=RQ6YQ1>zfR4-!zT=r0<=J&Hbo!)M4Ajx1$0ED&v;%N^ zl4pMD``@p8;ko{8sdU>?S!j3R@cJRI6?h(2w|n5`H#r4oMH zyTg%~=C#O^kg$fEP=(_C6++*=Yh9}lSX@v zkw81On|L5keLtfbT5&$4KsE)mHsBKG0@-kK0)Qzr003II0* zL2rj?U!?A7F_ULe3TzpvrCxsnL!~I1-GTfL?r4EnlKZ3 zt2L|#Mz%a5{n&}^+zfdoKkr?nK8g{u42$i=N4~eRR+d zV0SIoTpj>00zsCQ0LTLZEfx_yjFDH;0>qRxxK?3hIf&(VB=Qhw0YcnO8- zYpY(sVdM&@E1yyJe8(s-8rq;7j$z>W_#2OnM;Qe{6Ve?#bf{kro+*s)Mh$ z3Sb`jEXTRViS(Cukui#{@HO4m%2_!czGlZ@d51F1iK>km)JE;&FuxhgbkM3Zqu z3~~(-92;nXyD(m#R?-)fbF^DtH9b8sPR9Ps=`-E&%mJBtfOu^c6HT5-;WlsHJ?62r zv|K=WXf{Wa#KXCpGl_1O56)6fh5wB_=PiHVj&Z#8Weit-u78nZGGfHOypba7ZxWX0 z(K(FgS9ub}&Fk5^_i46K}9O0ciNi~HwcRXf3XVEBQAlH7# zepjP2KC6tann#R8e&lfG`9J*mkq4vfn=&Cqf5~NsUIXolrfJ|#g!Pjwmm(C!!{dSe z4pvIyl$D9KBBZ`&ts2s#EsUx{W`Kl(61kpL8A_gbH3Y|4tAvh$5JGV;t(0+_GwNJp z)!|N#RCqQZvMWT&(>3EJvnbP$13;-|kvntthw!i~RuP!%$yotI$^QyNsBYDJ9OEli~-=7TOmVZd(gtTli_ zJ8gRzoA>%Bu=)Wg=B^E)A^s3Zf@1D9UTshUN=;}Lq8i8eEGtd{OiCtH zwfh$E8=Bmch85e0br?YBzP+4PBT zLb&{2qZB4|&gSXGVC~wuqbJ*;uWeRVeJud-Y8AtxErUi5(5v#9_vX#8GAdRN8I^^_ zcp>?lr;UF+EayW56LO$U-Xvg=j$jnMl*>4cQvDZx0t#cNL#qCHuog$0rySOoU*1&5 zGKP$BfSo*NK4%Oi)+?u({Ly1aC%<{)&4zwFAF|*)C9-a=5ATTK59r8gwlF(mFjgHb zEidOmgjsps`((iZSWLHV-OiZRV_IZrC3@yzKd!N(gSlvp>;ejTXB>geHGfl6$?L(zhErxn8b}WWWwJhTR?@vyM_KeGQwK)Bq6`3$jo<{|H0V&rAt-1ab ztDZ&ZH|0&|7P{)Eb!7Psy!1u6@ehBdFLY=QA_~YY#}i@_r(1fN7thC7yyr3U5|>kJ2B_?;;8~Gr3ocfjfq|DWo1!ri z!Y;frKZ>bd3piMOaJr)&wE^hg&x)!9eM?314eym#_eH`_{6k~FL5{2rqZ>IJz0$V) zmpMu9tBWJgyhJbex^kS!GW5p-3h2S>zj-5D)ULJOA0|TfwYR`mb+mu@X6oaE1$uCKb$WM`<3@RVfS)L?1#XHRS)JyS(JfW56)_uYG zyT*^cm}}-|fzLdJi0;`G8QYYxDlT<=h!C*pgtoty_d_J(2^mVW%n5kS9137rMx+E> z+OMp1MCtEB(_BQf| z5@!->ad<=o%~L^HRHJo}wtN!-AaKrhk(0m#OR5x}pvZ-tPKf02C>{b~>&bl)lyhg# z#Z&mW$$cvygp;KNK7`doB#0#_36~#A2KfAVVU*Wzm4!f!7e)(}PUf8D)fBz%Pp(JU zBuvA2%vK3KUDeaSjln|ef>!9IHC{}5s3nP{RuT12b}{thk3VVwF6QHxd0IjGDB-}4 zgihRkM?iiVi=Uq$N;NuNXf}$H6{yWN4l2~ZR`$GfYD+N$%MDc)`e3RoqDV&4V92x5z7-y#J+qb`p zdGzh0F?hGT*%>Vgw&{nTLg~@W_#4u$fv_BnIzA!z{Je8-QZkV%c}v1?=t$+^sT#OOwqDZcx%$LItas((UE0J~Kq`5H|yhJ<_BJx<#t)O7k>0Ek4 z`|_~M%gdeDsNv!n4>-jSbHi^&e<7Z!g(i^%kYKEYu|Zap}Dfni8?* zR{wefLC!=!i-0~E0fg9yJYH!j{~H{Et#X#(Bfq3`OhZUHCgB+Zx`&6ud*Z6{j0inO z`w^a52K5;NLG#=BEoKLHpIk|Z5`o&5q$h8V_hVd$Dxc%Y6_kwt`@vj_ds>n=Zn#>P zT8Uf(SS2JS`zebg^sa!7`%%&ysv!9rVavD(M87XFL-35xrr$T>t`i`FjoIku6hT0p zO9~q1?}$)i=3RL4=m<7Y8CyK$2@}%gCIFM}GTuCDC05mW%F0FxxM_bBm7Z$;PO`Vw z9FGWc+EiXbd5pU`g|B|~7aPw{CZiTWrF9gO(5%fhU3Jb8leC^!{+TN7u;4kZA!8yu zXb8ZzZy(Rw;wha!f1yCekP%{F2n5h^`kMX?Bp3qo#^)WG8>O@dRd@*uCBFfml7!b@ zd#&Ns(@!6&98e@n?G&K{)kk7?JTNYDgvJb>tIx=!Iry~UWZJoV7bxfN$hi8gyV2*nHI|VBMj$ki z&*ClJ$awIcF3E%4x#{>;B}Ae(tL56s#_!xyK+N>lCC)T&-_1O6Xx|a_Rd*A@WJGBw z0}YrGECa2Q$7}c`-p$rEg|H8fr37>=0p>`S6KbJ_&It&@A)3S=k4QL)=!zA6p607O zMfJ49rFD%$&4yti2Bt|=8$1^mq1CV;x|JRwNoLY;(Kswe???5>0b#25a6!NjmYk^2%HW9SFKG6U_mzaiFFAkrg;YwjJmF zgnpC}zeX6HNupnrSjqr^^0bXXJ7{7hOCFFX(`JAU!-bZ=6?WVGICo*xl<5FxIN;VaNE`Z4kz~CjYGDf^Y6JfH=>pUs- zRA{FkhLOi&Jk2wv9dZv;-6!v4-=eS(-KQQM5OEK0NWRGD@?z-d(M$}Eogd^{$mQi4 zFXNIMbH6jxEDY$2lhE3}=#G;ctjcbP-h2?fb^VjGd+I#Mohjl4JT}yCe{#=cOFUq0 z&=Zf#DNtlC9;0LInbgpM&~2D5M3x~#SJ}IBN=Wc}iYP_oQK&k$7fa$DKxmr)S;hvU;%S6&twf*kJF|<@TY(YUQOKRK z_QrvjVO@!h@Du`rrWUl~U1r5=3?Xgeem9}%;=ChIMris#+;i7!7kF7IvDs90yP6Yu z2uE)4RJG3o3Hb^HEWC<&ZRblAC=CFbVq0fo4U6OOzOmO+4H%=){?n(0kxaRBkT7=L zhU5;WfP`PhP!J4ISY97tWDG{S#2fv&-Z*UQP-Si*0tk*J{8-Q^jxZmsRdfS=Vb4mG zNyR<>qP?0Y+k}9Y(7$|Ln->q!XYP|f!*$mGjpPP}+7F~A2pxe01;7&x7~hmWcnd(y z3D^O`{rmS&n{lPv=&M#s(mm#+Ex0fb+o{-J%G0*hD~iCgMlOjC%sia zkQlw?)$Wr~54HRUKs;|gObD%cUwK$ zAOqpvH%v6pD7TPk_b&UWMh-#z%$sp7#WEQJC+`Bq8^(kg6(FCFQ5>NqC6M&ADx`gu(MlIaY6n0%R|u#PXxAVPP$O^z2eb7z4PAH_UKQ%T>tEk} z@AF!h5d1eui0Z?+Ts#Q59&O!?uzM+*y z%pZ7BR(z!7@>q5OSkdJP$kPE~pfHqdETr(#DLT;ULP_Sn`u<9j;0#W^z0ifS*P99L zr6PE3k0*4~RxNkNqzposgq9NNyiByiFWOPMtSOf{FjmqN772tL!pl7Y7uWGV0H-$4 z5(u@0G=+YAS={D1>5C_zEg)5p%y-fi3>|P)80=b#jD{;Kc|>(+1oY5MsSO$fu&yj- zb(;a`N_xgNH$T@f$+hO=yIh*F0H23yWaU-?Cz=h9E(#r*Q(pc0%o*JdIxHBHnT%W5 zM=$ZgynSzs_+`%I9=+wYl+A2Q(tjga3SH2^n0nBA4Gs%C! z4RS8}xUF0vGCnmZN`^Q)UPFg?@WOI?IrBa;plzL&rFlc1z+R9szZ2!;3(0!!gWOkB zP;<{ef27Er&aD*G^;{bi#m_uSpnGxQuZA)E_wQ>5iVjU2x|)y>&tzCin{fdErEwjv z3i9)`tQY|xmKlfvo`zc)q8Eihh*EF-(;0bELYJqb6wNPW(yHYlHbK(wgIVRH3}tZI z*FP`-q>g6sy9CXgfFWL4_#{QPIx z2RYlmE!FqH@OU-mW3FD5Kqy2ocszuM#|Ll$KEMEc=0u^<6;0)M01g)!lX)tSDYDET z#z#2u;^?vC4S}^wVOZbN62o(?IRpNotV2MYt^n{hCGS?oW{$=O3oOV8QPrsdPh+dV z6Z-JG_lD-?LO{of5#zWO7|Gic##106`qI*JR~&f@0MXnEniL>&zLlCFeb<=fokb9* ztO}hdunKy`r3Ic`hnIaN46^#nAgT$|=Kcc*Dw{y(@|BNAyP<)5x}lh0n`FKzH#1<~ ztM5e#N(0D0`SD`)$u*hXn?g(r5@bYyB|{;+9(huE)I4Q0-!W1`NdP0aqvT_8VWD1> zBGAzLd^Ip??5d zv|*g+2h40mxpFjERJyoO2Ds&5teE_Dp*om?9L<8 zE{n%vAU5GZw2i6R*_cp8jn6>$SoO3E$S9VukHWi$)ZGa1Ov4aBhj2iV@LNXq+1O$- z6rKCb;!a;soG0lz9vh|D#Dh!w)36V-y!>5HGuQgw=fKK*DVT)*8*jZ`PvDhTUasc> zz|WpNTSaXnX$o+731hpWl=0jO=qN6v%p+00=4nMRfzNk|{xAu^yN{v+SOVIdM8;s= zBP@8RA(-czQ*g)U0vO>C%|t%`m;+u>R!T?_%mqF0hL_WV)Li2Uvj7zh?XOeeF8l_r zr3WF7fDtm@BE=-M6dvFTO;|-%lE>8*tngAOW7~;ZuZ4w$@^HHHh)#d=t6x@jR29{UOuR71AG0LxzvM_4Tf2{yawXW}?4WCPxbmj8-^y4+ z#N4kQi<|&7`7*LcrhB~1Oy-o^cvieM=qR79Z*(M6Glzfl<0Bih7s&4E;p!(z8*6K; zix6OACIi5}ih^BUS}y3Qn#BZ@1}gUYO^-MclFZG`W$>f+#RMpg+?RHEKU`>D17Jf$ zVF96c+Gd7ZK_hIGNjvV5_;fAh849*WpnN~hVM;wx?sXah5VNYo!T?k&C)yzplwP&I z1Sb!y76FkER~VQ#wGLq_hRDa6qrUy^0^>Px;@xbAcsGBCu4((=!Tqsn50-{Yp%a1P zwT%!bcjZ$CM|Ufy+E$?HUT20GZ*Pp%C1}Qm4l7Z3r2;+fC*OGicDX8# z6$UzZ)a^iN!hKT^HecgK4}vqDKX5@;LW=kH9a<&_s60EokW9C{t|;U75VNlT8 ze4ox{YQn7}|Mivr2r?O?TsGKRc##9KYFQc0_xLyN9plW*2OZK3umTGBB^Rft6+N`a zBPOfv#r+Xpe$`FKjV|(GSNP7K@0=`r_#DUy2i?O{1M)m@tMk|5QOoU=w;2cLK%TXS z=LINuKnY$!9iL#<)6w`+T@+1 z0iNB9M+Q_Qg4q%z519KiKmE_FkDLWZEC4dVBC4WSF7ETk5-vO5W<7bg&j;w-y%P(Z z1`)vlURxdr@`iACBdk6fuS_PN$;)6Y>+<=v&r3iA$1n)|MFg3kQf^PJ#BlHB2oTnF zm_o1#76BXp6@kydcv%&aT;rvG#FVq*fs}~BcJ)H;)z;_n0-S`v3KBl6PeLOC(>6j# z_X+_iXN59f)Jo_4=?V~nhs0_Bzdp9<#mQvU0t{w`J2D{O()e!P2!}xQ%US#Y=Z#<27v@xj)cx(mB66QNJ2;R{d}+U*i&;0p>v++zOUuC ze1FUJyRKU(6J5$UM#VaC)PBS>OrtKt^KyEm+ymi^v)`2&ZA+SV!)SzTfQ!(j($KN+ zB#h&hxb!Og@5n}0U@=W{T25Ej#2d3q;D(eT06mK;_&~`tH_e~4IoOvmYTMsIWBH!p zQCjo>_7stap?H!3@mILQiu2Os*M_$n-lRSB=SkcUK;OK{dGy|Dl$BDJGs-92^DcJ^ zaeQGhq3s*>Itl*0_j;2Jm!2PWW8v2d7qx2ot??QSEEB8 z)O(tpnJG^hKZc~bk^TXRx7czLJdgf>7&!P@zReu#Sti%Zi<7hE*<8Aq#h%R7>!WMH za$Z(-GvgzNK%{hEJq)Tjk*Ao13|SEhgY zSJ`Wo34XG;*d^ZS{;saT<(?)tGcmaf7W_i2Q-)QP1VIw^^8KsdVmoa&*{(dGhvY* zO2?h2aT^0~hVBt&;NTgz=+?8wNMLx16c9KlYxqiXgLUUivv?Yz5ioK#JmtP2uWzzR zoL6LpkfFib(bn*~SVcT@>C1SgmpK9gr448&ERq_)KRo3j0|30Bpy%R6Foqp>+SL+) z1-rn2ylB(Xy2^CVEi5cF)v$lxzWxgUy^#ngpU7TP{m%yk+(*g2l2yriZ#oK1$Sau= zl3o{jHv7`d3f>Urn< zoUby$-qO6L=eEYvlY;{2F1P5UV*!-s(9k_RS@ap6Cosz^>@ptmF0{h;dcZN>j1Qx>5l<6F19AeWzm^k)aorG| zXG}mkrOeDPQ&}-BV>YhJYHrBzJN^u-Kv+O02Wi)HQa;*|ya#J!mCRS>!b{cgr9~P5 zpxSW(_RA^2*4~=!_uTu8)sR(rm9AxYt9O*(%2h{?r0^@mxEk>KEUOEj$AZkw<_MOA zGQ%^n8fa5wT-W3tEd3(5PK}I0s@XvZ?x=bY%C>%8s&2!Cx`FANBJvarym_<&MqVow zp|LznSuj|V-Jn@i^;^I~Vi%(j&f9tjv>X{_5t$d((U{5YCb@i@5n8CEnARg^h zak${Xjj|CaVQk-6lX((G^fRvhoW6R0nCkbb@DfPE{N;-9<1qRH1RbNkL>D&CnyqV*|C& zUHj(hL<{`$yKwE$JMXmEm%K;;Oy`WZq78f_!;G8p;O_W8CnfUVPdt_|Dl&`y&1~tK&b3Qs0+A_!-*HXUS2zXREIKFjtGx!UG#NR@@AY9QI@$@ z>hiy0vt_i~>A4S4GXH|!_9l$_2RGG8XEWdjtIOPfu#^HQ~khO3L8-N|p zLNZ<103gLU<8%n2e9Fa4hJxOntsY!*7N0OFCGaeZ!u{?x2vkO}5C~DG0x|$4z?NrF zZMfw)HLzA3aB>>VTfhyGw}w{$R%Ik95MX^RKX#b8QDsA~Z;e*e0hc`m`4yH=Q-Ij3DA*YVWipch~fihCY? zC6NiQkb(gyog*MZCc-m3&e1P=F@Yn5w52QFOxkWDG-IohC{~R@;avkWo>#tVNF$8H z_vS1j(At>-q}(4`Q)q(EV43SJ0W-(_N*T<}&-MG`S%KZXdsjTjwb?V87um)*2&qq< zIvoH@b$1k%_lI^Nf1?8OlA%|bffR)@A7vOkWMK&2kPrDzE0ID$$#JW05#o9o=nRN~ zkZmni{ebI^02W^ROMbn})1iNvdc6z06II}W952IZevC7IqFp@<{3k>C&hJCUGqSWx z&NfD0raMHWW276DF(}%Wr_zr(8wX$_`}nI*A)upkcyYkooQ;X6-7RmKxAKO*6ENd( zMjl=O3uE$gWiVsD628kjg)m6cc>o+pLU-tq9F*|`J#FDH8jt4&2m-h?8-A>OZ|rE@ zxsP-D;#VQi^T)UoL=v12D;D zO3J8Ip+cwjllJgdP63!zxzai7Oj&rB?ql_h)qN87R{6FByZ`|np|9{rB3z}3x-F}NerK$#PHV5BNBUJX z3#iN^w-f-#8yO|jjGg*82QD@@n{n8)X)HVlKsPn4WZ37tN5;{@K|V+?lgWu3U5tj# zMaxHnR{22$plH}ll#-^>v#Ap>LNP!U#m?N#pFEgPpYd-lhK?h_n`eXpCJ%|OIF1P) z3NX1Bj}?#lmrj)~iBz=NkUU^ytd9G+CI)pwbSP?`E7BiBZUV!389&$4Lc8>BZX6P| zS}t-yxyC3hG%!AyPaGb7C)qq?Jv_}12vd0>OF*&4QA47ge8x#~G6};2{4NEs@~VLJ z!{Ez@C)YOj&_mCJQdMY!=8l$->3D=x8D*#^9J~_2b9@K_VxS{A)I~{h6Iwt*ASf3% zm~!wQ)Sn1Xd{1C0yPf$MDnB4Ug&9*fl4%=;Bxe>)jrk)TGzs4`~-rq z+Nag`114WWoQ!@D6!BQIQD;?I$d|mqdMF_RVn01c08er|pUYsT_+6pq&cq%c~$nCO02UEvHuh{P+Rz?Oe`l$c}X3r)wp14MY9 zLT@1qpd@r${wXl~EDt4bm4eDB+rshV1r~WM0z4IVKra;1H(|$5{R@5N0(lseX9(Z0 zy4vfdk5H9oCiJy|y#gMA^Fk38+;d&E4DdKkMd%3V^`XwlHWIlYz&`B*jf{n1vx2G! z*b6{_pN)-jNp}ON@a_$j*xaI`}*FOaU4`0B2qc&(o%ChSjqc zZ;X+|prya=pDr-qv&9ykv@w~hdk!8v*c=j&)*m_LjY^R)a`edD$QNPc7`VtTr7uM@ zUb0%S^j&y@4u1Cq*_O9_GrJpr6i_Fhc%`Tn-?0rlpF>iYEzbSlakclw50Vi)wcoMLQ{9qnbR(ck=_w^-5+Ve>-+>(@-L zSJvP-yN*QKrSKqvtT(X@G+{G6r2{mSiXMKQTmOk%4(D~y>;gb6b-Nf|b!kP&8LG0EpBtsDK6 zy7_17i~7je3fB2~3@FQiCl@C#rFP-1m@|ohM;?B#XZ2EMiGbH$f4vGW&LXVLotRS@ zv3(rIj==Zav%mA_LfRqBMUs85X^vU4v|}v5P2a}R(T4uU&dqEUZD>-rA$JiF_vy#; zerC$dlWXNdGh^k361#lW-+`<1db!4miwL+2z0r{g)GuKdKTtmZq5+@ySf*JU zfXv0LEnP^~+-e=C*CNcJvDJB|QG;&T(Tono@1mJE` zT!Mp_TrYse)n+*Gu*t5BYsZec%7c5=w=6E^c+u3jNaVPH1%PJU(FOquT>TbL163=3 zhvEa-xF7k9e5ToqAzAe7PqVWbkONY{`OUBYR^JULx#c87^(+AFWDIK4EM(N|YYOBNBYqLDtCBg6#NQ~MMj$3#e86zL`xA&0SjEO6|9Jy|FXznwQ zwUHljzvpDwH)N&6&yH^JZZPv{)oPvN?-p*1Er5E24l0AF&R6vY%acQa9UhR~r`HatR9Qrp-!caORVVO zEZObpW}#g-S%%h%o-&02TzN)TT{NfI(Z%(}j1K%Nny za7_W9a-uEp#B0CfA3D092P`RKtsE$sH(rnBp3pfr7tHdx%=Of8Q55k?n#skx0?^@S zVyJq`NeYqy{m69l{4JxZJy0@lnar{@>bZhXIGY^V+g`$zoVh#r2;&F5fZP&TW5Qu0zLyP z1^|$z%Q4p#1BKV+a^~0=c1318wkR?W!{@wkPQXhqzg!xhj4U~9UkwJ}K79Ca0Tdt5 zN$hOD(qd#0J=$^F#+QO-+9ekQur77X>*9o569Y!(RFI{I2r=w7|1nu?T@$B4h?;LA>+ogAYiUf69ivKm@zwh_pgCUCXryeFoFlhvKf_6 zJwHHa6t=LGEY@eA4`HmOjYYUEA&*QbOF*Hy#Rlf0II8z3tK`|V$_y}-Sm~)tfFVMe zl#f{fSA*>SFvf?V)AjgMr%z4ZNaf;-FaNx?6yCDAV|KR6Ijm!{Jk=Lgf$`~A-syIf*meur`cbyejGrwsLZYKJgn z-1*~Ke_ZI9FH3jc1S0@wEY|^qCV{p(V}y6XN@dwFp4r{W7)w4Zq|iws${28b5^Ol4Fz>WbE4mR}3 z_wKj#LFi)t2_wkMvnyH~rE9FY`3MaaZvjkM=K1-#yl67VGi3bNg;)6Be)AKB@JbdH zw0OmE0Z$30=?R7spT_)g4m?X&`5Qx*XDOe`QT{vLK=(W7TgvUE#03{ph>HhmVxEfAS~)ZZbDB8?Wf&^4M$J zEvq`t)P0VZzyl#GC%}8uc&5Gs!hoA@F;F_=EJ!NyiZAVNRg;PQ!viIx@KTa<0nt0S@c9t|4f{no=m$ zZNi`ePL>;42Ql_E)WdjT<&9aFy(ONB&_wo_GUV|puK^QSxfRPfigxVPu!n?FA`}Ap zqt6O}sRo~%m19iWs-gUS6_QIZ|!`oR-DH)clS*Dt=E;gDd^dn z&xKd%D&gYEy5&HPo39W|(U3V)K-qV|Aat0`k(;;13TBuQj87XX5abGC8ru|R0vQah zz-IiIo`34udd|JW5MW-cQN{#xfCohdS}djK{1rmV12#9A8*S+F%^R zfsP190YtngjU8xDH{g*p4wp0nsJs+3)a?7gB>&!Oh?^1|F6?;s*%@UHkUz zt*-3Yv9n?Di!Z+15dZ0?zccyvw|_e_Fy0mB!~v@vcx!pqN((^cu`*6*ijMEU|6y0f zHpTF6$nmjZZ7x*7@BAg7c$Tqvo-+a$3~_aCZvF`)eV@NV!0K2t<^iD;WYJNFfZ@A? z$>g^RTzS4=wazji3k z;Loz2`ti|YwIIA5R>?BpnGn@d4Nr=dBYdCa6~H!8)f0&ee@hCmD3Uif5Oho;#1sOv z5S#n#JMp*BUv^jZ?#VEgIuG|nIZ?fBfa{(-QDxoF;N1Gah%!!55m(Y#3 z#fzZOa*hB;KRhqWF5wNxT$C9>%5%bwxVfhHdn*DDk@r?GjKVX3`U9lAF7JaseDr9- zLa%z>G+A0)s`sN0`=?aQvefl#A|sa~^!5DXVFA9Le3w4)!F+A{l-D9RKm&ituKEqK z%#*f=Avep2$*&sEt^lTY-Lv=%gaW*+kp;#B?V3mGd;z`iGBTVW{244Y`N)2LL0h3W zzBk#NZ_I)IF#g`RW_R;1e(`!_Z%YB|_y5gzhnJaM>XteC9<|7%L$I{Rs4gXhG-k$> z?9_N=d`>9P9^kw#04I;dD@vESLWBHVPc!2MMo#zZXGTw_#sthH-{+y+uS9-$Soxj0 z0wu<((;f+Utw)lJF_r@9Oc=33d&zcAN8~O`g=p1CDsAH*dJNzUX5^W*#y}v`9y4EM zlR!=Ljcq>+Sh-9RdSeR0Y>86q_)115#@`&k5jL>8+T(^3LLFAnGmt7-ie)eZP&L1V zSY=*9uC%Qm1LaYKrN~%eq9}-gv1nW+>c43~8~rpt=1Ufq((#7uN$|!}?NV0W5$ogj z7KDZ1ludHqe8yf8%o_(tO;?Ku1VNDG6y|v)@3wei#}h8fQyGs}`j)tvtM%kEGYU#a z!|$}eV$IVz#WIL5(@$5|Rumb%dS!eKzru;S?fIA|Vl@_h#yKl_wGicw;HAq7z*ArQ zS`P1edGgo)^{*#?{BQp_xtf~`#^!HMdt$LAn}3!)M+e?I)T+e$vRH7}-7^_Z=8eu7 z3j-#6W0U~Y#`MAZQto=e*JYDw6keM~%;R*gJy${$uiEBmOQzQ-#ls%ezFC z>$4FKpa|`OPgkhI1aD7ZTwJAF`X)0fOpTW@_Blh_HF!JX(DdAjtr<1+tXyho(7hLeY;VVJPf8+(I z)H}|c)HyI7L(qi7Zqr6QpLkU~Ssu}HLjOowjsL2vk(U;D=AN{v|Mly6<&yb8I?n|^ zF2;lVGGNL{vaobDpXU|N)v4-vejWOsoR<+p)#X%w@su*Ot_&H#N3p^e!dyo}-m`E2 ziq*=*GFgfVxH=3Vl8O3Dpt}I__HQ-n9zj0xj` z8K#w37?{tEExokwVLgmReqcGS^!pP>Fn*Za1O{u9XS9VU5kM_rJ)b@)2M?_vyFN5n zpOf<9hki%Dx#1Ipvi#%K%SYzxMg<2BFsWiA;Tc7{M%SvHO{qZi?H(G&>^>0 zD3&|t0P{*dFhh#l%@tnpNJ5`@)KQpG%8!2N2Do@eyaC=G#h0g`oB;2^2Or3?`=QBS z{pDXyzWd$p_Q+L<6AIvv;v%=N;v1R zhJuJ3kUZpt0FwSFFkm%btGW!z7s(x6h-acIP}2R}nR8k3%1T_69@m^or}Uk7c6Bwr zk0owJK*BNLv-rs4Lvcu+0A ziZ|V`D}Yg6q%U-L4NrV{Mk0k8;3%p*QJ+y+8G7=vguK9DL*$uE(Utd;_5g-tNv;lU zI3ARfT;j{}C3!;LiKgN~2Q-zT%R73jF?x`1;B1xM_g4HqOqtI^;iKZdg@wGqH?jsC z-+AYqj_=8@es%KG7hY(x-)b?V3yg$pj4ItCm)Bo^VlqEBmtH0Tx>0cFXTJQ}$X)d{ z=x8 z&p=&Sc^83=0nJOu^0L6^UyLihae`2{ekD1mB#>D_EG)UcF3>17JRQ~vevm-Bt4$hou zX+(amoJZ!J$<$TDG2(V0lN9Io=CF(RfCvbMqQWWk0j#b%xy#0qdO=G~)njtlAh;z$!m0vmV!2v3fsY z-{HeYCNID8N>}xiSW9?&P4i3yi4|g1h6RT7QKp2aESsNM21>zVIuhXRw51lTf|ri0 z6so)8fe9rs2H+?}R4XGdX64X4D6fm)OCB39Z-CnlI85GQ;L}x0_vWJr9n+Nm&}s#k z0SX1iOmq>RHC)aEfF4mOP2F)ql+Wz}va&~E0h`9Hv^v(}r59gJ{zoz5{_;kWJWZ58 zJe1klxrAQZn;&`W;M@I|Hz2pDZR1KeX%e5}&gXf>!oAWCZ{$Lh9;ghSn+x7gX`gza z0GNci<0p6nWCrblgamiX*ki%dU1>)?+GhsJ5J=iC1j3MS# zdJT_Fch2=Wn8h*jPJZZMQ!FuDe#cv(@P~PanOF9pgZb!pbMk*Z3nuhkomIOEL_RNA z(K}bj(C8t*lgH|7bg&?k?^cBuh?d9lj=mJeTesfPMFa;tv0R?zIh{InDo0@6-Vlv2@No9;+uQFDofkn7JY((v9^j!& z6*}V(?oR171scB-kPbQH7mA_*ic?5)@)!7zl`FZju?v?{dyuD0AQ+GBcWp~9@`K4M zKYyiyOTl?c9SE}I4{+PLb4SK{O=_Tywd$W&ELVp{<^xEpfZ@I8g(LPbl}G6ZA1n~? zoVwqNwTx9%hGN{gvE#NFU_)ZxWRkW!*6;`q?3e&DXizUW^F|9YCq%oN@Pffm3r8Ut z19TBCznfj`pZ)Ul)NF0<=ZuKFAHW52=72oFEq-l))_cAb#$Jr!v2!EE!3pKj%%v=2 zl(@XxS}Zkp+F<~d832|Zf|d4r)B=U2L+Ph^HDG0M`G;rZ1&@pXS?;;Td9KOp+=GAS zZ;a%>8}A~6KF4byC!YpTMF{pTy>;+l+moWuk$FnTkX^iC90BCVr%rc;96i-;xvr1l zP?uHR=(we00;1tLzONR-g=c8tFRv>9OE38YbTWs|En{CBnHGJJ6Q>naF7Z1T-T`m- zHZ;^u+Q-KbtGlwVrrlyd?sw_|pkEgNjI^+-^*R}B%v*EEJ}ZW(%AHRxA_b!#yzzRD zN4T};g3Qj&c2c?F*B2!#2;szv1tACnlmcP-#e^^pfMqm&Hn&tb_2(Yn5q3;+VN5=V zP$bzKSCuC~>5ncP?RmOy#ig}sbSf()6b5MA7E95CssbDe60Npy*Ugpp!s-d<^l1sc zd9uutVgorxLYRx%7Rv9$InxqmzL_wI@Z6D*2J;bKUV#t*Aqr|+{no8pTjxS~_w3r$ zyqA6enzDrEInp17HhjZuBT9cY7U)BWeHL1vLtXsPf^rdZ7M9Wz%3iq-JteIH6Of$> zdqdy!S3ZQs#_8lgD{Vh{{`t^noJ2?vJ!=fS3Bu*TuesTo^b^27@K(J zc_O0#;Z+V@FKjU99_;Qk={H+#$Bb(eY|uEXm_(!T7W*CI|I;D8?Dx6 zeC}-snCIL>sTQ&;gMkq~*F zevH+bGba)zyKjD;7kXF5KJu~-B(v#tV>W~Woy`GG928-YnKYmIj4}q^ue{WVN=E2| zdp+|hJVz&TGU}L!g8UfSUC9Hd%}en}fETZhm%?b0tML*;MaOwAosv6q#ZO_apRGz- zJYz(r*QNmcdbwL*geUpyVmx}ral$>5sMC-(qfHr;)COZ3qnV$jdU(G*ZXshPXPHj^ ziwua=LWi`R4=ONeJI_a!hNP#jfTHK|pmL}ma|nN@V%`LP^kncR^yroyBMss?7-=an z@rC4Lv=Jik@$w&fZxqiAjLpYIC za#-$0&W*wmdcbgJz(-qhBHlvb+MI0%lJo=!=nx#t0FYy)CT}W;XX3QDojZ2aTfv;A z#l?m@*Czzkrb`<@2rZhELbDaJxu<_CAfa~wEg@lm!k)$VKYYJ?^#}}*Q4gdr_jrm! zFI2uCh)tc(#T9?a~_Y!m7hGQ52Q z_{vH7i?5WPH74kIjUK#F%oXl+F@><^at}iSgoM^sb8FC6XyRTu7RAKM3gkwC2Kq2+ zJc^dngpbk!d)^)3GY7z|%!p1jZyf$3x9xZs(3qNRk)EBZz@fZ9jnJ=R*n&Ynq-e`HcShTd?@G1OIpr&JXfQYd-8ba=0gU< z%3#wy`I%$FpcL40F9)aI+{!$L_eaLkNMKGsIZJsU=JJ~5$@>9^Pa>SQL_GN518FRS z%}r6G{NDqf0ZjQf9gH7*M)}6~^{CRZc74WrI0FPVt&BCK$OEhw0$#fGX^Ah^R!$%f z_5Z&pqr8%LxC0dm%&J-K!(d8B(N4!J0!(rjgzx;9mdzb!GmK0Wa1y_&db6mD`}R$S@Z)jD08#3$=zfLJZ=2Z|NO@R z_qVc&cC2IZ1e(}@Ok;9OyqN1N*jDWDi0}(kd z^Lry6_sc1~{nsBo*BAKRbkhy>Fx5(-9Wbw=WYB7XHpB}60Gq>$5TSE5A#?J7B@4i9 z!v;GgQWg{btq(u|Yb!`{gNlwV`+u4`KVhb^+57kL>2dZng|vLX5To+M6OY&Pz3ZCo z*$=v_TY1RvP+lEN_GY0az&72$T|*OIksY44zR6khhndqC=PyPUv)3^)b#wBXj3io; zdq$P<1|aBZ{QfmR_oTbhuZBA9`rUiV@DsqDBXf~op93(VlEo-j`vZS3n4>|Jh z+N?yNujKlazSDlb%-mr@Wt~%#K6-eUzV#S_N?1+rUke}|s{CH6r9XQ6ofc7k>l@!_ zVw&YO2#@HV0BAr%7V_s~`)&T`U!SFY){i1%j^*x;vgH8NSqPU&O_jAD zCxvhX^~SV$`Hrtdcuq9= zY%Z|IKCoi}5(0rXyo~1K5Iw{hfP}yU+^3#fCSQR^KNBXXyrHju?dzFK-t!)ydG)o| zCja3-{7DtOJi(8&EAO%?_y1a1GfFuD^t>ta-Vm_=BudW!Jo)6439F7xo_+S&w{vszD<@nm^ssgn{tgFY9ME8dm4tgNh~POM$bmJF5&Bl1 zGAD3sc^x>OJ2y^?;B}yB^K~(lfD7m<4wbibTBJ~14u&_PE=kxYT$3{cI_I*YhreV( zh~)$h7o{>5puyW#1INm{Pd<-fQ81ZdVM}F^Z1J+u))_9t*jQ@M_Mylvz%=i5>z+M* z{hv)HqZYt|6puuhXW@j>@d(p4J)tc9JRWZVnDVX)4K7_Br45LdYPmM z#qqALwP}Y3<-8an;+l-JvYHNohhg&)0hqV$TE%lTsB8Ut&t+%9#mq4mN5Wsa!2`>q z`4`6nW|^}K{e34-)qGz(N-vD)YtqTSX8~63;ZfVl!(+R2i5%zijKTO~?AJ|BCKNmQ z>T7M75Xb{u{pGL#Rso0gABxI#HI*;F$OO`G1tY?QS?41}6h%kebRN!y)auxoFEkLk z2-gUBnHQnrx?+ew1eay;?=%cEC~lQ z0~QsSj9(6gx5M3DTs+w#%j>SWuH*2kX7ikaweg|L$;G9~d=%FBhF3z62GjKGQdsD@ z(k0f@n9I3*rdZB*`Cly$#-a(vx+nty_u@Fa-dAOOlt+#MNJzS}vfuvpx4TkyA-PA- z9A8)nQ`f~C84C(Pf=45S8cX$q;dnz~c~a`NJiB}M?kMNjYTtkb_yoA| z$8%Pk{@@ROKTGb%C*Iw4Jb9k?QVVzgz4wNe<1_?eE2S2Su&h?&co4!(#)HRW?$gz^ zzD|fO4Gko2FNH@ANMoGr5d;K0xz;YlgWI$b5JW*j4<#G`Q@%!3w^}A?1oNAppKE$S z9upt@r3{yIUbxVemkubL@Q3*1zz+&t(T3;GP@)mwCc$JdL=2!4Z zI~)x$ine(u>X#ZW<^HO1`oZJqX(J7b306^m?{}YWUt|vt(ZT}GQshoK1>iA`u__;r zI?q@Xn3vQ79a>hTvCc3#gxw-I% zXXNr;uGpB!P-IlU(I>epMpA^}wyWUD?A}k6*Vu*V%$>4`4F-~3MM%R_j=0!{f8W?SRjHD#6LR2A}pIzEeB+1i|Wag#V zAwEzzwI@*oO3I7SDS#@_g{b3w;+HA}nlpZNK@CeX{;k`#HT;l7^qQKFQ^s(ALPPa5 z?mv3?aQYvskitufZzHv2CxtXN7q4nCXvE|`<5dCgTE$o;G%`N)pbUh*3Y1SNgYUFg zriP))AXxNar#hU1j_|~rG6=S+=dD{)2lm;g6>7`e0M-2DA9n8C(R>Vk$T^{T1{L8O z=Q*jX+k8GRxC1BwSiE@RiN~5B;#JDIsrlitP+Y*p8v>@Yv$ORgS6`NgLw`I-8=(oFC?Tl)R_l280mFPp z#*IONt*u^P386A2 z>6_p9t%l)3w_`_-#Teu*wWmJmCTu)Kd*R~lox2)}5>pFA`1h~zl=1HyzxDOWz4z>o zvA$fxriQB#QTn%c)A)Gm_Dwn!<3eb#`r{8L%d>Me0K7uH@yDj-{FDFWK{+FFUYZvT z9amd^Xcl)VngaU<*?+{5QKc9wfp>z-sIo!b|<(b z_Cb4j6Xx=__sClOv zfC!DTj&Y)dYk*|KZNH{J{R_{GohN7m`FVySvcO9saEyohctA6E&$Jdu*!DrfH|KHj z3Tm7J7Wj|G_^0BVVfnJ<4#V@1_oQ6LAji~ULHnFs-GH%{xpm(Pua8PgqGSr7_gVOefXh=QXG1JmDai4KltIl_GOf(LVHF{ z=xQ&k4fz1loESFwB7LhLrx#zYQjmi zHg6t$bMiai{+$*#Vz6-@IdY_ed{e?sbvCwg2xqMh0V~=qVQNriUSv^0sWG~|gRF$g z??O`mZA^8w!#qMeLI(mpyf0uXbOTOnVoio}U|fVFN^X9Xi;{TeY#rZ%LnP;giD>rbfwyYekDoX`*}r#BL6s4}|9T?4k^D7(#smmT6Wl zdX<*|r!nTE%+KG9G2^Fr3QIra(>V;$*l@&erettfoT$I`z z?8hSm6qTYxoNFZT$*MEs190sYz`uG>xsPs;Idd_$ddrzpbs>tss@s7WvqAfweU+bu zc04LZ;L+rqYztB@^LO9>`>qO_8=2de92Sp=M?rqg(-?WJ^;|L!;2Q>JfA0WtUX!u@ z_$NQ@Lct@CJ~Das*&j6@$ZKkdoi>$37&}8OlDZIs@vGFaZH{M_$h@aDtPLRwR{HQa z8V+C>67rs3!h_Hw{{nlfhYGWoqh|o-@?~HYZ!NU4HD_J!Gq+`1v(k42vCaeCh_k8N zMisp2tLb}fLdi|xyZyOvC975GH?K=i3M#iu*8b}JXRUs{;hI>T3ptD|fOBIST9*#F zqwOS(M&doYb9Y(ZX_P~pv(0YjBDqXdLgfts!$vO?NkA8$qN z%PX(Gn!LwD5uCfLI0SepUV;tOE|yE%ma~OC(`$I5`6f&Zg{$~HM$6&)XSrSOLlfX5 zVW|SRVRGg&toi`_0V8=J&kh?sJX~$mijkRI1OPC!YB&Nc>HHu6^gmAi;lKTTz~VrG zMVJ9pohOAafXKhvp7vvmO+rWbgih|4-@|Kpr@&(s7_Ii-bI;^dmeLRAFugO^#Dfh@ zKFd5=XCVqeqU`&#vN$(4*ZaJ#`jxyl4IS^v=gJlsC?SK|BnLm*#znz;%nYNDz8MDL zmiKV+;sMpzc9WVS;RtI?pbKVsb3wuu#>ie!W4S*4EG;c17x|SW>_6tl8WMVFcF0j%4ZlTa#Ntpoc$?SnSX(7 zcsv%zzThe4uVPm9fpUuvK5&2a!HTO*^wUKN^2ad%cpn5T>DlS5$lmhlnaSpxSGHya znD9tKoD2_ROZOw4co0FllDQBl^A`tLr5m~Jd|nv>t{HV`qVDQy^ofm9(*S4R*AXj#sc;WS7HLzgZ-q_RW?(>z)w3VTiWMOwoMLx?;vV%SgjHi) zdTkIq-vI*zBp8&1pwt3oLKr-L9~M*IVRHnPa=7$kkDKxQB$nv$#~#nChxc_3!kwkX zrQ~E@>U~aoxaF2Db=9?R^X^ob<-)k<#$Zvw##12*5VWD!iwq@cjh6*iH>9FmO%T9E zmqJs2$S?V=z|v6;#UPY~Rv)Y#SKl)){OpB*z`hFO`$>4q0m@%(jm5;D<5}+i<~P65 z(0EFZ0(sg%Hy7p`w<>DNUk@;!+tWs%D`ep@?=FgC6$!P(r zhUbx2;Gl?e;rQ`{s&_YifoJH3{!$U@$|R}HSEw$01tO!=U+$;&?l zDF&=_$ai=Z>5e`RkE_z2@4c3Kb*dD)IXd_8Y8elhb15`-ddAq{ki2Kw__ChX0Km0Z z!ih%V>4*F3T|cX{s&OSNDxGD}lhWcC1&X9hl5-p1r2`?xuaYyGUJ|sDwN~dGq^8*I z)ag@Qp|DR1U?HZ#S^nOb7+7_?&8XhixgqE-?4$4v|8k#u*Rw3StjHiJ<`~yN>ak0F z3Ty=1&nzP_5^AtQS+<(I_|nTcw&bzNp1r%X>2jiEBbhNN>IEmUtqks*JDV^)^Vz=buE`I6@WZZ{&d$!I`g>1!v8G|hY(V2`_-B<# zi9&&h=wv>^C54;=Jk=l(wgL9-DF3VarhEUQy)evs;I`hmwR09G-jo8>Ew|iUUg9<7 zkw67bR;(!FFS059z`=vb2Q5w>c;LSO^?&*7`;*DaI|2#>p-H`}2qZvQ7vt3MCA^c1 z>_SVFm69k?uwPK#l(&Qi!d}Yf;yILO5pc?lo(}d?Ov)JA&`TVZ_8lVDIj{xsXz0;uFn;ytA5{p6d$wko%4*RCE-1O&-5 zAXb@gF8}=>|FIjo=VooxSMNnurC36TfQlD3h-7$~8Yc?WkJsUID|mUR^W@<$FbqBV zjmr3SG5DWmUO6=)b3L5U7?0@7^pYo4&a!RWwx$>4|IX!^jhV9(MbTio%IuVtbT_$@ z@qc+aEB=88pZT!3kbCivya2ST%R|OD1YFTozjAMAK{lJmS{)BHv@k~{7z~vD$mE)Y zfxIetHWNpaCglNMCIBSYY}=pLMW+E3tQR5}SCZXFTpJg^jHMH=LOX7nIxMC5Tt^4h zU&&v2h|^hhI~U7>k#jRMu^xGIi$O=A5a`n+6e)sO8X)<3n}qMDliAFlvSETmEl3%Z!>Ow_LIWxa zOxY-%kkA5zrEO!9^mdOj1RI+5Sz_VJzd7am71O%O>YS87#`!ggjnQVZQO4 zBJgOcKURImj-8Xa`MHAS!9(vfF+6fxF-{aIQpl>xTQn6BI(S}aK$+2n@n9gdZ446r zV=*9gJejlf1=%%Zp{vjaF!CgnMwkqFn63~G+O8;(Z}mqTGJl4Ir=^~6E_p0R6ElG5 z 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 KOaIgV_WuH5-m$U( literal 0 HcmV?d00001 diff --git a/SpeakerStyle/Assets/leana.png b/SpeakerStyle/Assets/leana.png new file mode 100644 index 0000000000000000000000000000000000000000..e1b195fc5ef0b1affd18b828d1d85c869dce058a GIT binary patch literal 361007 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�qH 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 EKcQ3KQ2+n{ literal 0 HcmV?d00001 diff --git a/SpeakerStyle/default_speaker_style.tres b/SpeakerStyle/default_speaker_style.tres new file mode 100644 index 0000000..1d185a7 --- /dev/null +++ b/SpeakerStyle/default_speaker_style.tres @@ -0,0 +1,55 @@ +[gd_resource type="Resource" script_class="DialogicStyle" load_steps=17 format=3 uid="uid://bnvyswys2g18e"] + +[ext_resource type="PackedScene" uid="uid://c1k5m0w3r40xf" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_FullBackground/full_background_layer.tscn" id="1_pjujh"] +[ext_resource type="Script" path="res://addons/dialogic/Resources/dialogic_style_layer.gd" id="2_nsn2a"] +[ext_resource type="PackedScene" uid="uid://by6waso0mjpjp" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_SpeakerPortraitTextbox/textbox_with_speaker_portrait.tscn" id="3_3ql7n"] +[ext_resource type="PackedScene" uid="uid://cn674foxwedqu" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_Input/full_advance_input_layer.tscn" id="4_5vqjh"] +[ext_resource type="PackedScene" uid="uid://dsbwnp5hegnu3" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_Glossary/glossary_popup_layer.tscn" id="5_5w6u8"] +[ext_resource type="PackedScene" uid="uid://dhk6j6eb6e3q" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Choices/vn_choice_layer.tscn" id="6_rrq6s"] +[ext_resource type="PackedScene" uid="uid://cvgf4c6gg0tsy" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_TextInput/text_input_layer.tscn" id="7_xava7"] +[ext_resource type="PackedScene" uid="uid://lx24i8fl6uo" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_History/history_layer.tscn" id="8_5oc2r"] +[ext_resource type="Script" path="res://addons/dialogic/Resources/dialogic_style.gd" id="9_nstci"] + +[sub_resource type="Resource" id="Resource_8hkah"] +script = ExtResource("2_nsn2a") +scene = ExtResource("1_pjujh") +overrides = {} + +[sub_resource type="Resource" id="Resource_wvkya"] +script = ExtResource("2_nsn2a") +scene = ExtResource("3_3ql7n") +overrides = {} + +[sub_resource type="Resource" id="Resource_yt85m"] +script = ExtResource("2_nsn2a") +scene = ExtResource("4_5vqjh") +overrides = {} + +[sub_resource type="Resource" id="Resource_dvhiq"] +script = ExtResource("2_nsn2a") +scene = ExtResource("5_5w6u8") +overrides = {} + +[sub_resource type="Resource" id="Resource_8at02"] +script = ExtResource("2_nsn2a") +scene = ExtResource("6_rrq6s") +overrides = {} + +[sub_resource type="Resource" id="Resource_tibhw"] +script = ExtResource("2_nsn2a") +scene = ExtResource("7_xava7") +overrides = {} + +[sub_resource type="Resource" id="Resource_6py65"] +script = ExtResource("2_nsn2a") +scene = ExtResource("8_5oc2r") +overrides = {} + +[resource] +script = ExtResource("9_nstci") +name = "default_speaker_style" +base_overrides = { +"global_bg_color": "Color(0.298039, 0.2, 0.113725, 0.901961)" +} +layers = Array[ExtResource("2_nsn2a")]([SubResource("Resource_8hkah"), SubResource("Resource_wvkya"), SubResource("Resource_yt85m"), SubResource("Resource_dvhiq"), SubResource("Resource_8at02"), SubResource("Resource_tibhw"), SubResource("Resource_6py65")]) +metadata/_latest_layer = -1 diff --git a/SpeakerStyle/speaker_1.dch b/SpeakerStyle/speaker_1.dch new file mode 100644 index 0000000..cbd43cc --- /dev/null +++ b/SpeakerStyle/speaker_1.dch @@ -0,0 +1,38 @@ +{ +"@path": "res://addons/dialogic/Resources/character.gd", +"@subpath": NodePath(""), +"_translation_id": "", +"color": Color(1, 1, 1, 1), +"custom_info": { +"sound_mood_default": "", +"sound_moods": {}, +"style": "" +}, +"default_portrait": "default", +"description": "", +"display_name": "Janette", +"mirror": false, +"nicknames": [""], +"offset": Vector2(0, 0), +"portraits": { +"default": { +"export_overrides": { +"image": "\"res://SpeakerStyle/Assets/janette.png\"" +}, +"mirror": false, +"offset": Vector2(0, 0), +"scale": 1, +"scene": "" +}, +"special": { +"export_overrides": { +"image": "\"res://SpeakerStyle/Assets/leana.png\"" +}, +"mirror": false, +"offset": Vector2(0, 0), +"scale": 1, +"scene": "" +} +}, +"scale": 1.0 +} \ No newline at end of file diff --git a/SpeakerStyle/speaker_2.dch b/SpeakerStyle/speaker_2.dch new file mode 100644 index 0000000..adff61c --- /dev/null +++ b/SpeakerStyle/speaker_2.dch @@ -0,0 +1,29 @@ +{ +"@path": "res://addons/dialogic/Resources/character.gd", +"@subpath": NodePath(""), +"_translation_id": "", +"color": Color(1, 1, 1, 1), +"custom_info": { +"sound_mood_default": "", +"sound_moods": {}, +"style": "" +}, +"default_portrait": "default", +"description": "", +"display_name": "Harold", +"mirror": false, +"nicknames": [""], +"offset": Vector2(0, 0), +"portraits": { +"default": { +"export_overrides": { +"image": "\"res://SpeakerStyle/Assets/harold.png\"" +}, +"mirror": false, +"offset": Vector2(0, 0), +"scale": 1, +"scene": "" +} +}, +"scale": 1.0 +} \ No newline at end of file diff --git a/SpeakerStyle/speaker_scene.gd b/SpeakerStyle/speaker_scene.gd new file mode 100644 index 0000000..fc2e304 --- /dev/null +++ b/SpeakerStyle/speaker_scene.gd @@ -0,0 +1,6 @@ +extends Control + + +func _ready() -> void: + Dialogic.Styles.load_style("default_speaker_style") + Dialogic.start("speaker_tml_1") diff --git a/SpeakerStyle/speaker_scene.tscn b/SpeakerStyle/speaker_scene.tscn new file mode 100644 index 0000000..6912397 --- /dev/null +++ b/SpeakerStyle/speaker_scene.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=2 format=3 uid="uid://c2xovmad23ky2"] + +[ext_resource type="Script" path="res://SpeakerStyle/speaker_scene.gd" id="1_kd5f8"] + +[node name="SpeakerScene" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_kd5f8") diff --git a/SpeakerStyle/speaker_tml_1.dtl b/SpeakerStyle/speaker_tml_1.dtl new file mode 100644 index 0000000..23ec405 --- /dev/null +++ b/SpeakerStyle/speaker_tml_1.dtl @@ -0,0 +1,4 @@ +speaker_1: I'm saying something first. +speaker_2: And and now I'm sayting something. +speaker_1 (default): I'm saying something third. +speaker_1 (special): and here is something diff --git a/project.godot b/project.godot index 71984ba..cb8de75 100644 --- a/project.godot +++ b/project.godot @@ -116,7 +116,7 @@ text/initial_text_reveal_skippable=true text/text_reveal_skip_delay=0.1 save/encryption_on_exports_only=true settings/text_speed=1.0 -layout/style_list=["res://VisualNovel/Assets/UI/VisualNovelStyle.tres", "res://SmallRPG/Assets/TextBubbleStyle.tres", "res://Smartphone/Smartphone_Style.tres", "res://FakeUnitTests/unit_test_style_a.tres", "res://FakeUnitTests/unit_test_style_b.tres"] +layout/style_list=["res://VisualNovel/Assets/UI/VisualNovelStyle.tres", "res://SmallRPG/Assets/TextBubbleStyle.tres", "res://Smartphone/Smartphone_Style.tres", "res://FakeUnitTests/unit_test_style_a.tres", "res://FakeUnitTests/unit_test_style_b.tres", "res://SpeakerStyle/default_speaker_style.tres"] directories/dch_directory={ "Claire": "res://Smartphone/Characters/Claire.dch", "Elina": "res://VisualNovel/Characters/Elina.dch", @@ -130,7 +130,9 @@ directories/dch_directory={ "TC3_BasicPortraits": "res://FakeUnitTests/TC3_BasicPortraits.dch", "TC4_BasicPortraits2": "res://FakeUnitTests/TC4_BasicPortraits2.dch", "TC5_BasicPortraits3": "res://FakeUnitTests/TC5_BasicPortraits3.dch", -"TC6_Style": "res://FakeUnitTests/TC6_Style.dch" +"TC6_Style": "res://FakeUnitTests/TC6_Style.dch", +"speaker_1": "res://SpeakerStyle/speaker_1.dch", +"speaker_2": "res://SpeakerStyle/speaker_2.dch" } directories/dtl_directory={ "Chapter 10": "res://Chapter 10.dtl", @@ -138,6 +140,7 @@ directories/dtl_directory={ "Laurey": "res://Smartphone/Timelines/Laurey.dtl", "Otto": "res://Smartphone/Timelines/Otto.dtl", "rpg_smith": "res://SmallRPG/Timelines/rpg_smith.dtl", +"speaker_tml_1": "res://SpeakerStyle/speaker_tml_1.dtl", "t0_overview": "res://FakeUnitTests/t0_overview.dtl", "t1_texts": "res://FakeUnitTests/t1_texts.dtl", "t2_characters": "res://FakeUnitTests/t2_characters.dtl", @@ -154,6 +157,10 @@ translation/add_separator=false extensions_folder="res://addons/dialogic_additions" animations/cross_fade_default_length=0.5 animations/cross_fade_default_wait=true +text/advance_delay=0.1 +animations/cross_fade_default="res://addons/dialogic/Modules/Character/DefaultAnimations/fade_in_out.gd" +animations/join_default="res://addons/dialogic/Modules/Character/DefaultAnimations/fade_up_in_out.gd" +animations/leave_default="res://addons/dialogic/Modules/Character/DefaultAnimations/fade_up_in_out.gd" [display] @@ -171,6 +178,7 @@ folder_colors={ "res://MainMenu/": "orange", "res://SmallRPG/": "red", "res://Smartphone/": "purple", +"res://SpeakerStyle/": "pink", "res://VisualNovel/": "teal", "res://addons/": "blue" } From eba759c6e4e3d60eed71e42ff8a5b6734bda4386 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Mon, 29 Jul 2024 21:33:56 +0200 Subject: [PATCH 02/15] Small changes --- SpeakerStyle/speaker_tml_1.dtl | 12 ++++++++---- project.godot | 6 +++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/SpeakerStyle/speaker_tml_1.dtl b/SpeakerStyle/speaker_tml_1.dtl index 23ec405..ed127e3 100644 --- a/SpeakerStyle/speaker_tml_1.dtl +++ b/SpeakerStyle/speaker_tml_1.dtl @@ -1,4 +1,8 @@ -speaker_1: I'm saying something first. -speaker_2: And and now I'm sayting something. -speaker_1 (default): I'm saying something third. -speaker_1 (special): and here is something +[background arg="#372930" fade="1.0"] +[wait time="1.0"] +speaker_1: Hey Harold, you there? +speaker_2: Oh hey Janette, I didn't see you. Yeah I was just getting ready. +speaker_1 (default): Good. I think we should get going soon. +speaker_1: You know we have a long way ahead of us. +speaker_2: I know, I know.[n]But it's weird leaving this place behind... +speaker_1: Well, there is nothing we can do about it. diff --git a/project.godot b/project.godot index cb8de75..cde80fb 100644 --- a/project.godot +++ b/project.godot @@ -158,9 +158,9 @@ extensions_folder="res://addons/dialogic_additions" animations/cross_fade_default_length=0.5 animations/cross_fade_default_wait=true text/advance_delay=0.1 -animations/cross_fade_default="res://addons/dialogic/Modules/Character/DefaultAnimations/fade_in_out.gd" -animations/join_default="res://addons/dialogic/Modules/Character/DefaultAnimations/fade_up_in_out.gd" -animations/leave_default="res://addons/dialogic/Modules/Character/DefaultAnimations/fade_up_in_out.gd" +animations/cross_fade_default="Fade Cross" +animations/join_default="Fade In Up" +animations/leave_default="Fade Out Up" [display] From a35050c01acf8fef77507fc0684b21ab1bc3cf1e Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Mon, 29 Jul 2024 21:45:31 +0200 Subject: [PATCH 03/15] Update Dialogic --- addons/dialogic/Core/DialogicGameHandler.gd | 6 +- addons/dialogic/Core/DialogicResourceUtil.gd | 95 +++++-- addons/dialogic/Core/DialogicUtil.gd | 61 +--- addons/dialogic/Core/Dialogic_Subsystem.gd | 7 + addons/dialogic/Core/index_class.gd | 33 ++- .../char_edit_p_section_exports.gd | 66 ++--- .../char_edit_p_section_exports.tscn | 7 - .../char_edit_p_section_layout.gd | 8 +- .../char_edit_p_section_main.gd | 108 +++++++- .../char_edit_p_section_main.tscn | 44 ++- .../char_edit_p_section_main_exports.gd | 39 ++- .../CharacterEditor/character_editor.gd | 34 +-- .../character_editor_main_settings_section.gd | 2 +- ...racter_editor_portrait_settings_section.gd | 4 +- .../character_editor_portrait_tree.gd | 4 +- .../CharacterEditor/portrait_scene_browser.gd | 126 +++++++++ .../portrait_scene_browser.tscn | 260 ++++++++++++++++++ .../Common/BrowserItem.gd} | 11 +- .../Common/BrowserItem.tscn} | 8 +- addons/dialogic/Editor/Common/DCSS.gd | 5 +- .../ReferenceManager_AddReplacementPanel.gd | 4 +- .../Editor/Common/broken_reference_manager.gd | 24 +- .../Editor/Common/hint_tooltip_icon.gd | 2 +- .../Editor/Common/reference_manager_window.gd | 4 +- addons/dialogic/Editor/Common/sidebar.gd | 9 +- .../Common/unique_identifiers_manager.gd | 2 +- .../Editor/Common/update_install_window.gd | 2 +- .../dialogic/Editor/Common/update_manager.gd | 18 +- .../Editor/Events/EventBlock/event_block.gd | 11 +- .../EventBlock/event_right_click_menu.gd | 2 +- .../Editor/Events/Fields/array_part.gd | 126 +-------- .../Editor/Events/Fields/array_part.tscn | 39 +-- .../Editor/Events/Fields/dictionary_part.gd | 31 ++- .../Editor/Events/Fields/dictionary_part.tscn | 46 +++- .../Editor/Events/Fields/field_array.gd | 2 +- .../Editor/Events/Fields/field_array.tscn | 11 +- .../Editor/Events/Fields/field_condition.gd | 8 +- .../Editor/Events/Fields/field_condition.tscn | 8 +- .../Editor/Events/Fields/field_dictionary.gd | 34 +-- .../Events/Fields/field_dictionary.tscn | 40 +-- .../Editor/Events/Fields/field_file.gd | 8 +- .../Editor/Events/Fields/field_file.tscn | 14 +- .../Editor/Events/Fields/field_flex_value.gd | 154 +++++++++++ .../Events/Fields/field_flex_value.tscn | 15 + .../Editor/Events/Fields/field_number.gd | 9 +- .../Editor/Events/Fields/field_number.tscn | 33 +-- .../Events/Fields/field_options_dynamic.gd | 4 +- .../Events/Fields/field_options_fixed.gd | 2 +- .../Events/Fields/field_text_singleline.gd | 2 +- addons/dialogic/Editor/HomePage/home_page.gd | 4 +- .../dialogic/Editor/HomePage/home_page.tscn | 12 +- addons/dialogic/Editor/HomePage/tips.txt | 4 +- .../Editor/Settings/settings_editor.gd | 8 +- .../Editor/Settings/settings_general.gd | 10 +- .../Editor/Settings/settings_modules.gd | 95 +++++-- .../Editor/Settings/settings_modules.tscn | 10 +- .../Editor/Settings/settings_translation.gd | 2 +- .../TextEditor/CodeCompletionHelper.gd | 50 ++-- .../TextEditor/syntax_highlighter.gd | 26 +- .../TextEditor/timeline_editor_text.gd | 8 +- .../VisualEditor/AddEventButton.gd | 18 +- .../VisualEditor/TimelineArea.gd | 6 +- .../VisualEditor/timeline_editor_visual.gd | 28 +- .../Editor/TimelineEditor/timeline_editor.gd | 33 ++- addons/dialogic/Editor/editor_main.gd | 13 +- addons/dialogic/Editor/editors_manager.gd | 18 +- .../dialogic/Example Assets/default_event.gd | 2 +- .../portraits/CustomPortrait_FaceAtlas.gd | 2 +- addons/dialogic/Modules/Audio/event_music.gd | 6 +- addons/dialogic/Modules/Audio/event_sound.gd | 6 +- .../default_background.gd | 4 +- .../Defaults/swipe_diagonal_up_left.gd | 2 +- .../Defaults/swipe_left_to_right.gd | 2 +- .../Defaults/swipe_right_to_left.gd | 2 +- .../class_dialogic_background_transition.gd | 2 +- .../Modules/Background/event_background.gd | 8 +- addons/dialogic/Modules/Background/index.gd | 4 +- .../Background/subsystem_backgrounds.gd | 5 +- addons/dialogic/Modules/Call/event_call.gd | 10 +- .../Character/DefaultAnimations/bounce.gd | 6 + .../DefaultAnimations/bounce_in_out.gd | 7 + .../DefaultAnimations/fade_down_in_out.gd | 6 + .../DefaultAnimations/fade_in_out.gd | 8 + .../DefaultAnimations/fade_up_in_out.gd | 9 +- .../Character/DefaultAnimations/heartbeat.gd | 6 + .../DefaultAnimations/instant_in_out.gd | 7 + .../Character/DefaultAnimations/shake_x.gd | 5 + .../Character/DefaultAnimations/shake_y.gd | 8 +- .../DefaultAnimations/slide_down_in_out.gd | 7 + .../DefaultAnimations/slide_left_in_out.gd | 7 + .../DefaultAnimations/slide_right_in_out.gd | 7 + .../DefaultAnimations/slide_up_in.gd | 7 + .../Character/DefaultAnimations/tada.gd | 8 +- .../DefaultAnimations/zoom_center_in_out.gd | 7 + .../DefaultAnimations/zoom_in_out.gd | 7 + .../DialogicPortraitAnimationsUtil.gd | 47 ++++ .../LayeredPortrait/layered_portrait.tscn | 36 --- .../Character/class_dialogic_animation.gd | 6 + .../Character/custom_portrait_thumbnail.png | Bin 0 -> 2888 bytes .../Modules/Character/default_portrait.gd | 2 +- .../Character/default_portrait_thumbnail.png | Bin 0 -> 5647 bytes .../Modules/Character/event_character.gd | 130 +++++---- .../Modules/Character/event_position.gd | 216 --------------- addons/dialogic/Modules/Character/index.gd | 41 ++- .../Character/node_portrait_container.gd | 13 +- ...ait_position.svg => portrait_position.svg} | 0 .../Modules/Character/settings_portraits.gd | 34 +-- .../simple_image_portrait_thumbnail.png | Bin 0 -> 3462 bytes .../Modules/Character/subsystem_containers.gd | 4 +- .../Modules/Character/subsystem_portraits.gd | 73 +++-- .../dialogic/Modules/Choice/event_choice.gd | 91 +++--- .../Modules/Choice/node_button_sound.gd | 8 +- .../Modules/Choice/settings_choices.gd | 4 +- .../Modules/Choice/subsystem_choices.gd | 19 +- .../dialogic/Modules/Choice/ui_choice_end.gd | 4 +- addons/dialogic/Modules/Clear/event_clear.gd | 2 +- .../dialogic/Modules/Comment/event_comment.gd | 5 +- .../Modules/Condition/event_condition.gd | 4 +- .../Modules/Condition/ui_condition_end.gd | 18 +- addons/dialogic/Modules/Core/index.gd | 5 + .../Modules/Core/subsystem_animation.gd | 20 +- .../Modules/Core/subsystem_expression.gd | 9 + .../dialogic/Modules/Core/subsystem_input.gd | 21 +- .../Base_Default/default_layout_base.gd | 2 + .../Base_TextBubble/text_bubble_base.gd | 24 +- .../Base_TextBubble/text_bubble_base.tscn | 1 + .../full_background_layer.tscn | 2 + .../Layer_History/example_history_item.gd | 6 +- .../textbox_with_speaker_portrait.tscn | 12 +- .../Layer_Textbubble/text_bubble.gd | 6 +- .../Layer_VN_Choices/vn_choice_layer.gd | 3 + .../Layer_VN_Choices/vn_choice_layer.tscn | 8 +- .../Layer_VN_Textbox/animations.gd | 45 +-- .../Layer_VN_Textbox/autoadvance_indicator.gd | 2 +- .../Layer_VN_Textbox/vn_textbox_layer.gd | 8 +- .../Layer_VN_Textbox/vn_textbox_layer.tscn | 1 - .../speaker_textbox_style.tres | 10 +- .../Modules/Glossary/glossary_editor.gd | 2 +- .../Modules/Glossary/glossary_resource.gd | 6 +- .../highlight_portrait_thumbnail.png | Bin 0 -> 5955 bytes .../Modules/HighlightPortrait/index.gd | 17 ++ .../simple_highlight_portrait.gd | 8 +- .../simple_highlight_portrait.tscn | 2 +- .../Modules/History/settings_history.gd | 4 + .../Modules/History/settings_history.tscn | 50 +++- .../Modules/History/subsystem_history.gd | 49 +++- addons/dialogic/Modules/Jump/event_jump.gd | 8 +- addons/dialogic/Modules/Jump/event_label.gd | 6 +- .../custom_layered_portrait.gd | 3 + .../dialogic/Modules/LayeredPortrait/index.gd | 17 ++ .../LayeredPortrait/layered_portrait.gd | 22 +- .../LayeredPortrait/layered_portrait.tscn | 14 + .../layered_portrait_thumbnail.png | Bin 0 -> 7448 bytes addons/dialogic/Modules/Save/event_save.gd | 2 +- .../dialogic/Modules/Save/subsystem_save.gd | 23 +- .../Modules/Settings/event_setting.gd | 2 +- .../Modules/Settings/subsystem_settings.gd | 5 + addons/dialogic/Modules/Style/event_style.gd | 2 +- addons/dialogic/Modules/Style/node_style.gd | 2 +- .../StyleEditor/Components/style_browser.gd | 2 +- .../StyleEditor/Components/style_browser.tscn | 9 +- .../Modules/StyleEditor/style_editor.gd | 2 +- .../Modules/StyleEditor/style_editor.tscn | 43 +-- .../Modules/StyleEditor/style_layer_editor.gd | 14 +- addons/dialogic/Modules/Text/auto_advance.gd | 2 +- addons/dialogic/Modules/Text/auto_skip.gd | 15 +- .../character_moods_settings.gd | 2 +- addons/dialogic/Modules/Text/event_text.gd | 20 +- .../dialogic/Modules/Text/node_dialog_text.gd | 2 +- .../dialogic/Modules/Text/node_name_label.gd | 2 +- .../dialogic/Modules/Text/node_type_sound.gd | 10 +- .../dialogic/Modules/Text/subsystem_text.gd | 17 +- .../Modules/TextInput/event_text_input.gd | 12 +- .../Modules/TextInput/node_text_input.gd | 8 +- .../Modules/Variable/event_variable.gd | 6 +- .../Modules/Variable/subsystem_variables.gd | 2 +- .../variables_editor/variable_tree.gd | 34 ++- .../variables_editor/variables_editor.tscn | 51 ++-- addons/dialogic/Modules/Voice/event_voice.gd | 4 +- .../dialogic/Modules/Voice/subsystem_voice.gd | 3 +- addons/dialogic/Modules/Wait/event_wait.gd | 14 +- .../Resources/TimelineResourceSaver.gd | 2 +- .../Resources/dialogic_layout_base.gd | 42 ++- addons/dialogic/Resources/event.gd | 93 ++++--- addons/dialogic/Resources/timeline.gd | 4 +- 185 files changed, 2332 insertions(+), 1373 deletions(-) create mode 100644 addons/dialogic/Editor/CharacterEditor/portrait_scene_browser.gd create mode 100644 addons/dialogic/Editor/CharacterEditor/portrait_scene_browser.tscn rename addons/dialogic/{Modules/StyleEditor/Components/StyleItem.gd => Editor/Common/BrowserItem.gd} (87%) rename addons/dialogic/{Modules/StyleEditor/Components/StyleItem.tscn => Editor/Common/BrowserItem.tscn} (95%) create mode 100644 addons/dialogic/Editor/Events/Fields/field_flex_value.gd create mode 100644 addons/dialogic/Editor/Events/Fields/field_flex_value.tscn create mode 100644 addons/dialogic/Modules/Character/DialogicPortraitAnimationsUtil.gd delete mode 100644 addons/dialogic/Modules/Character/LayeredPortrait/layered_portrait.tscn create mode 100644 addons/dialogic/Modules/Character/custom_portrait_thumbnail.png create mode 100644 addons/dialogic/Modules/Character/default_portrait_thumbnail.png delete mode 100644 addons/dialogic/Modules/Character/event_position.gd rename addons/dialogic/Modules/Character/{event_portrait_position.svg => portrait_position.svg} (100%) create mode 100644 addons/dialogic/Modules/Character/simple_image_portrait_thumbnail.png create mode 100644 addons/dialogic/Modules/HighlightPortrait/highlight_portrait_thumbnail.png create mode 100644 addons/dialogic/Modules/HighlightPortrait/index.gd rename addons/dialogic/{Example Assets/portraits => Modules/HighlightPortrait}/simple_highlight_portrait.gd (81%) rename addons/dialogic/{Example Assets/portraits => Modules/HighlightPortrait}/simple_highlight_portrait.tscn (61%) create mode 100644 addons/dialogic/Modules/LayeredPortrait/custom_layered_portrait.gd create mode 100644 addons/dialogic/Modules/LayeredPortrait/index.gd rename addons/dialogic/Modules/{Character => }/LayeredPortrait/layered_portrait.gd (92%) create mode 100644 addons/dialogic/Modules/LayeredPortrait/layered_portrait.tscn create mode 100644 addons/dialogic/Modules/LayeredPortrait/layered_portrait_thumbnail.png diff --git a/addons/dialogic/Core/DialogicGameHandler.gd b/addons/dialogic/Core/DialogicGameHandler.gd index 633db34..37c5624 100644 --- a/addons/dialogic/Core/DialogicGameHandler.gd +++ b/addons/dialogic/Core/DialogicGameHandler.gd @@ -169,7 +169,7 @@ func _ready() -> void: ## -> returns the layout node func start(timeline:Variant, label:Variant="") -> Node: # If we don't have a style subsystem, default to just start_timeline() - if !has_subsystem('Styles'): + if not has_subsystem('Styles'): printerr("[Dialogic] You called Dialogic.start() but the Styles subsystem is missing!") clear(ClearFlags.KEEP_VARIABLES) start_timeline(timeline, label) @@ -187,7 +187,6 @@ func start(timeline:Variant, label:Variant="") -> Node: scene.ready.connect(clear.bind(ClearFlags.KEEP_VARIABLES)) scene.ready.connect(start_timeline.bind(timeline, label)) else: - clear(ClearFlags.KEEP_VARIABLES) start_timeline(timeline, label) return scene @@ -324,6 +323,9 @@ func get_full_state() -> Dictionary: current_state_info['current_event_idx'] = -1 current_state_info['current_timeline'] = null + for subsystem in get_children(): + (subsystem as DialogicSubsystem).save_game_state() + return current_state_info.duplicate(true) diff --git a/addons/dialogic/Core/DialogicResourceUtil.gd b/addons/dialogic/Core/DialogicResourceUtil.gd index cac50ee..a86356c 100644 --- a/addons/dialogic/Core/DialogicResourceUtil.gd +++ b/addons/dialogic/Core/DialogicResourceUtil.gd @@ -4,7 +4,7 @@ class_name DialogicResourceUtil static var label_cache := {} static var event_cache: Array[DialogicEvent] = [] -static var special_resources : Array[Dictionary] = [] +static var special_resources := {} static func update() -> void: @@ -173,43 +173,78 @@ static func update_event_cache() -> Array: ################################################################################ static func update_special_resources() -> void: - special_resources = [] + special_resources.clear() for indexer in DialogicUtil.get_indexers(): - special_resources.append_array(indexer._get_special_resources()) + var additions := indexer._get_special_resources() + for resource_type in additions: + if not resource_type in special_resources: + special_resources[resource_type] = {} + special_resources[resource_type].merge(additions[resource_type]) -static func list_special_resources_of_type(type:String) -> Array: +static func list_special_resources(type:String, filter := {}) -> Dictionary: if special_resources.is_empty(): update_special_resources() - return special_resources.filter(func(x:Dictionary): return type == x.get('type','')).map(func(x:Dictionary): return x.get('path', '')) + if type in special_resources: + if filter.is_empty(): + return special_resources[type] + else: + var results := {} + for i in special_resources[type]: + if match_resource_filter(special_resources[type][i], filter): + results[i] = special_resources[type][i] + return results + return {} + + +static func match_resource_filter(dict:Dictionary, filter:Dictionary) -> bool: + for i in filter: + if not i in dict: + return false + if typeof(filter[i]) == TYPE_ARRAY: + if not dict[i] in filter[i]: + return false + else: + if not dict[i] == filter[i]: + return false + return true + + +static func guess_special_resource(type: String, string: String, default := {}, filter := {}, ignores:PackedStringArray=[]) -> Dictionary: + if string.is_empty(): + return default - -static func guess_special_resource(type: String, name: String, default := "") -> String: if special_resources.is_empty(): update_special_resources() - - if name.begins_with('res://'): - return name - - for path: String in list_special_resources_of_type(type): - var pretty_path := DialogicUtil.pretty_name(path).to_lower() - var pretty_name := name.to_lower() - - if pretty_path == pretty_name: - return path - - elif pretty_name.ends_with(" in"): - pretty_name = pretty_name + " out" - - if pretty_path == pretty_name: - return path - - elif pretty_name.ends_with(" out"): - pretty_name = pretty_name.replace("out", "in out") - - if pretty_path == pretty_name: - return path - + var resources := list_special_resources(type, filter) + if resources.is_empty(): + printerr("[Dialogic] No ", type, "s found, but attempted to use one.") + return default + + if string.begins_with('res://'): + for i in resources.values(): + if i.path == string: + return i + printerr("[Dialogic] Unable to find ", type, " at path '", string, "'.") + return default + + string = string.to_lower() + + if string in resources: + return resources[string] + + if not ignores.is_empty(): + var regex := RegEx.create_from_string(r" ?\b(" + "|".join(ignores) + r")\b") + for name in resources: + if regex.sub(name, "") == regex.sub(string, ""): + return resources[name] + + ## As a last effort check against the unfiltered list + if string in special_resources[type]: + push_warning("[Dialogic] Using ", type, " '", string,"' when not supposed to.") + return special_resources[type][string] + + printerr("[Dialogic] Unable to identify ", type, " based on string '", string, "'.") return default #endregion diff --git a/addons/dialogic/Core/DialogicUtil.gd b/addons/dialogic/Core/DialogicUtil.gd index 1a36b12..be5532d 100644 --- a/addons/dialogic/Core/DialogicUtil.gd +++ b/addons/dialogic/Core/DialogicUtil.gd @@ -84,7 +84,7 @@ static func _update_autoload_subsystem_access() -> void: new_subsystem_access_list += '\nvar {name} := preload("{script}").new():\n\tget: return get_subsystem("{name}")\n'.format(subsystem) new_subsystem_access_list += "\n#endregion" - script.source_code = RegEx.create_from_string("#region SUBSYSTEMS\\n#*\\n((?!#endregion)(.*\\n))*#endregion").sub(script.source_code, new_subsystem_access_list) + script.source_code = RegEx.create_from_string(r"#region SUBSYSTEMS\n#*\n((?!#endregion)(.*\n))*#endregion").sub(script.source_code, new_subsystem_access_list) ResourceSaver.save(script) Engine.get_singleton("EditorInterface").get_resource_filesystem().reimport_files(["res://addons/dialogic/Core/DialogicGameHandler.gd"]) @@ -111,39 +111,6 @@ static func get_indexers(include_custom := true, force_reload := false) -> Array return indexers -enum AnimationType {ALL, IN, OUT, ACTION} - - - -static func get_portrait_animation_scripts(type := AnimationType.ALL) -> Array: - var animations := DialogicResourceUtil.list_special_resources_of_type("PortraitAnimation") - const CROSS_ANIMATION := "_in_out" - const OUT_ANIMATION := "_out" - const IN_ANIMATION := "_in" - - return animations.filter( - func(script: String) -> bool: - match (type): - AnimationType.ALL: - return true - - AnimationType.IN: - return IN_ANIMATION in script or CROSS_ANIMATION in script - - AnimationType.OUT: - return OUT_ANIMATION in script or CROSS_ANIMATION in script - - # All animations that are not IN or OUT. - # Extra check for CROSS animations to prevent parsing parts - # of the name as an IN or OUT animation. - AnimationType.ACTION: - #return CROSS_ANIMATION in script or not (IN_ANIMATION in script or OUT_ANIMATION in script) - return not IN_ANIMATION in script and not OUT_ANIMATION in script - - _: - return false - ) - ## Turns a [param file_path] from `some_file.png` to `Some File`. static func pretty_name(file_path: String) -> String: @@ -153,7 +120,6 @@ static func pretty_name(file_path: String) -> String: return _name - #endregion @@ -388,7 +354,7 @@ static func get_scene_export_defaults(node:Node) -> Dictionary: if !Engine.get_main_loop().has_meta('dialogic_scene_export_defaults'): Engine.get_main_loop().set_meta('dialogic_scene_export_defaults', {}) var defaults := {} - var property_info :Array[Dictionary] = node.script.get_script_property_list() + var property_info: Array[Dictionary] = node.script.get_script_property_list() for i in property_info: if i['usage'] & PROPERTY_USAGE_EDITOR: defaults[i['name']] = node.get(i['name']) @@ -481,9 +447,14 @@ static func setup_script_property_edit_node(property_info: Dictionary, value:Var if value != null: input.text = value input.text_submitted.connect(DialogicUtil._on_export_input_text_submitted.bind(property_info.name, property_changed)) + TYPE_DICTIONARY: + input = load("res://addons/dialogic/Editor/Events/Fields/field_dictionary.tscn").instantiate() + input.property_name = property_info["name"] + input.value_changed.connect(_on_export_dict_submitted.bind(property_changed)) TYPE_OBJECT: input = load("res://addons/dialogic/Editor/Common/hint_tooltip_icon.tscn").instantiate() input.hint_text = "Objects/Resources as settings are currently not supported. \nUse @export_file('*.extension') instead and load the resource once needed." + _: input = LineEdit.new() if value != null: @@ -516,6 +487,9 @@ static func _on_export_string_enum_submitted(value:int, property_name:String, li static func _on_export_vector_submitted(property_name:String, value:Variant, callable: Callable) -> void: callable.call(property_name, var_to_str(value)) +static func _on_export_dict_submitted(property_name:String, value:Variant, callable: Callable) -> void: + callable.call(property_name, var_to_str(value)) + #endregion @@ -617,7 +591,7 @@ static func get_portrait_suggestions(search_text:String, character:DialogicChara static func get_portrait_position_suggestions(search_text := "") -> Dictionary: - var icon := load(DialogicUtil.get_module_path("Character").path_join('event_portrait_position.svg')) + var icon := load(DialogicUtil.get_module_path("Character").path_join('portrait_position.svg')) var setting: String = ProjectSettings.get_setting('dialogic/portraits/position_suggestion_names', 'leftmost, left, center, right, rightmost') @@ -633,16 +607,3 @@ static func get_portrait_position_suggestions(search_text := "") -> Dictionary: return suggestions - -static func get_portrait_animation_suggestions(_search_text := "", empty_text := "Default", action := AnimationType.ALL) -> Dictionary: - var suggestions := {} - - suggestions[empty_text] = {'value':"", 'editor_icon':["GuiRadioUnchecked", "EditorIcons"]} - - for anim in DialogicUtil.get_portrait_animation_scripts(action): - suggestions[DialogicUtil.pretty_name(anim)] = { - 'value' : DialogicUtil.pretty_name(anim), - 'editor_icon' : ["Animation", "EditorIcons"] - } - - return suggestions diff --git a/addons/dialogic/Core/Dialogic_Subsystem.gd b/addons/dialogic/Core/Dialogic_Subsystem.gd index 57e59c1..3ff55e6 100644 --- a/addons/dialogic/Core/Dialogic_Subsystem.gd +++ b/addons/dialogic/Core/Dialogic_Subsystem.gd @@ -24,6 +24,13 @@ func load_game_state(_load_flag:=LoadFlags.FULL_LOAD) -> void: pass +# To be overriden by sub-classes +# Fill in everything that should be saved into the dialogic_game_handler.current_state_info +# This is called when a save is saved +func save_game_state() -> void: + pass + + # To be overriden by sub-classes func pause() -> void: pass diff --git a/addons/dialogic/Core/index_class.gd b/addons/dialogic/Core/index_class.gd index 25e276f..c045a03 100644 --- a/addons/dialogic/Core/index_class.gd +++ b/addons/dialogic/Core/index_class.gd @@ -7,7 +7,7 @@ extends RefCounted ## Overwrite the methods to return the contents of that folder. -var this_folder : String = get_script().resource_path.get_base_dir() +var this_folder: String = get_script().resource_path.get_base_dir() ## Overwrite if this module contains any events. [br] ## Return an array with all the paths to the event scripts.[br] @@ -59,7 +59,12 @@ func _get_text_modifiers() -> Array[Dictionary]: ## These can later be retrieved with DialogicResourceUtil. ## Each dictionary should contain (at least "type" and "path"). ## E.g. {"type":"Animation", "path": "res://..."} -func _get_special_resources() -> Array[Dictionary]: +func _get_special_resources() -> Dictionary: + return {} + + +## Return a list of dictionaries, each +func _get_portrait_scene_presets() -> Array[Dictionary]: return [] @@ -70,12 +75,26 @@ func list_dir(subdir:='') -> Array: return Array(DirAccess.get_files_at(this_folder.path_join(subdir))).map(func(file):return this_folder.path_join(subdir).path_join(file)) -func list_special_resources(subdir:='', type:='', extension:="") -> Array[Dictionary]: - var array := [] +func list_special_resources(subdir:='', extension:="") -> Dictionary: + var dict := {} for i in list_dir(subdir): if extension.is_empty() or i.ends_with(extension): - array.append({'type':type, 'path':i}) - return Array(array, TYPE_DICTIONARY, "", null) + dict[DialogicUtil.pretty_name(i).to_lower()] = {"path":i} + return dict + + +func list_animations(subdir := "") -> Dictionary: + var full_animation_list := {} + for path in list_dir(subdir): + if not path.ends_with(".gd"): + continue + var anim_object: DialogicAnimation = load(path).new() + var versions := anim_object._get_named_variations() + for version_name in versions: + full_animation_list[version_name] = versions[version_name] + full_animation_list[version_name]["path"] = path + anim_object.queue_free() + return full_animation_list #endregion @@ -99,7 +118,7 @@ func _get_layout_parts() -> Array[Dictionary]: ## Helper that allows scanning sub directories that might be layout parts or styles func scan_for_layout_parts() -> Array[Dictionary]: var dir := DirAccess.open(this_folder) - var style_list :Array[Dictionary] = [] + var style_list: Array[Dictionary] = [] if !dir: return style_list dir.list_dir_begin() diff --git a/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_exports.gd b/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_exports.gd index d516140..9ad94cb 100644 --- a/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_exports.gd +++ b/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_exports.gd @@ -5,80 +5,82 @@ extends DialogicCharacterEditorPortraitSection ## for custom portrait scenes var current_portrait_data := {} - +var last_scene := "" func _get_title() -> String: return "Settings" -func _init() -> void: - hint_text = "The settings here are @export variables from the used scene." - - func _load_portrait_data(data:Dictionary) -> void: - _recheck(data) + _recheck(data, true) ## Recheck section visibility and reload export fields. ## This allows reacting to changes of the portrait_scene setting. -func _recheck(data:Dictionary): - if data.get('scene', '').is_empty() and ProjectSettings.get_setting('dialogic/portraits/default_portrait', '').is_empty(): - hide() - get_parent().get_child(get_index()-1).hide() - get_parent().get_child(get_index()+1).hide() - else: - get_parent().get_child(get_index()-1).show() - +func _recheck(data: Dictionary, force:=false): + if last_scene == data.get("scene", "") and not force: current_portrait_data = data - load_portrait_scene_export_variables() + last_scene = data.get("scene", "") + return + last_scene = data.get("scene", "") + current_portrait_data = data -func load_portrait_scene_export_variables() -> void: - var scene = null - if !current_portrait_data.get('scene', '').is_empty(): - scene = load(current_portrait_data.get('scene')) - elif !ProjectSettings.get_setting('dialogic/portraits/default_portrait', '').is_empty(): - scene = load(ProjectSettings.get_setting('dialogic/portraits/default_portrait', '')) + for child in $Grid.get_children(): + child.get_parent().remove_child(child) + child.queue_free() + + var scene: Variant = null + + if current_portrait_data.get('scene', '').is_empty(): + if ProjectSettings.get_setting('dialogic/portraits/default_portrait', '').is_empty(): + scene = load(character_editor.def_portrait_path) + else: + scene = load(ProjectSettings.get_setting('dialogic/portraits/default_portrait', '')) else: - scene = load(character_editor.def_portrait_path) + scene = load(current_portrait_data.get('scene')) - if !scene: + if not scene: return - for child in $Grid.get_children(): - child.queue_free() - scene = scene.instantiate() + var skip := false for i in scene.script.get_script_property_list(): if i['usage'] & PROPERTY_USAGE_EDITOR and !skip: - var label = Label.new() + var label := Label.new() label.text = i['name'].capitalize() $Grid.add_child(label) - var current_value :Variant = scene.get(i['name']) + var current_value: Variant = scene.get(i['name']) if current_portrait_data.has('export_overrides') and current_portrait_data['export_overrides'].has(i['name']): current_value = str_to_var(current_portrait_data.export_overrides[i['name']]) if current_value == null and typeof(scene.get(i['name'])) == TYPE_STRING: current_value = current_portrait_data['export_overrides'][i['name']] - var input :Node = DialogicUtil.setup_script_property_edit_node(i, current_value, set_export_override) + var input: Node = DialogicUtil.setup_script_property_edit_node(i, current_value, set_export_override) input.size_flags_horizontal = SIZE_EXPAND_FILL $Grid.add_child(input) if i['usage'] & PROPERTY_USAGE_GROUP: - if i['name'] == 'Main': + if i['name'] == 'Main' or i["name"] == "Private": skip = true continue else: skip = false - $Label.visible = $Grid.get_child_count() == 0 + if $Grid.get_child_count(): + get_parent().get_child(get_index()-1).show() + show() + else: + hide() + get_parent().get_child(get_index()-1).hide() + get_parent().get_child(get_index()+1).hide() ## On any change, save the export override to the portrait items metadata. func set_export_override(property_name:String, value:String = "") -> void: - var data:Dictionary = selected_item.get_metadata(0) + var data: Dictionary = selected_item.get_metadata(0) if !data.has('export_overrides'): data['export_overrides'] = {} if !value.is_empty(): diff --git a/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_exports.tscn b/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_exports.tscn index 41dc75c..1392a18 100644 --- a/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_exports.tscn +++ b/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_exports.tscn @@ -8,13 +8,6 @@ offset_right = 367.0 offset_bottom = 82.0 script = ExtResource("1_isys8") -[node name="Label" type="Label" parent="."] -layout_mode = 2 -theme_type_variation = &"DialogicHintText" -theme_override_colors/font_color = Color(0, 0, 0, 1) -text = "There are no exported variables to override. Add @export properties to the root script of your scene and make sure it's in @tool mode." -autowrap_mode = 3 - [node name="Grid" type="GridContainer" parent="."] layout_mode = 2 size_flags_horizontal = 3 diff --git a/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_layout.gd b/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_layout.gd index 6dec0bf..03f4346 100644 --- a/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_layout.gd +++ b/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_layout.gd @@ -17,28 +17,28 @@ func _load_portrait_data(data:Dictionary) -> void: func _on_portrait_scale_value_changed(value:float) -> void: - var data:Dictionary = selected_item.get_metadata(0) + var data: Dictionary = selected_item.get_metadata(0) data['scale'] = value/100.0 update_preview.emit() changed.emit() func _on_portrait_mirror_toggled(button_pressed:bool)-> void: - var data:Dictionary = selected_item.get_metadata(0) + var data: Dictionary = selected_item.get_metadata(0) data['mirror'] = button_pressed update_preview.emit() changed.emit() func _on_ignore_scale_toggled(button_pressed:bool) -> void: - var data:Dictionary = selected_item.get_metadata(0) + var data: Dictionary = selected_item.get_metadata(0) data['ignore_char_scale'] = button_pressed update_preview.emit() changed.emit() func _on_portrait_offset_value_changed(property:String, value:Vector2) -> void: - var data:Dictionary = selected_item.get_metadata(0) + var data: Dictionary = selected_item.get_metadata(0) data['offset'] = value update_preview.emit() changed.emit() diff --git a/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_main.gd b/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_main.gd index 7ea98cd..53111fb 100644 --- a/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_main.gd +++ b/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_main.gd @@ -9,7 +9,11 @@ func _get_title() -> String: func _init() -> void: hint_text = "You can use a custom scene for this portrait." +func _start_opened() -> bool: + return true + func _ready() -> void: + %ChangeSceneButton.icon = get_theme_icon("Loop", "EditorIcons") %ScenePicker.file_filter = "*.tscn, *.scn; Scenes" %ScenePicker.resource_icon = get_theme_icon('PackedScene', 'EditorIcons') %ScenePicker.placeholder = 'Default scene' @@ -18,19 +22,103 @@ func _ready() -> void: func _load_portrait_data(data:Dictionary) -> void: - %ScenePicker.set_value(data.get('scene', '')) - %OpenSceneButton.visible = !data.get('scene', '').is_empty() + reload_ui(data) + + +func _on_open_scene_button_pressed() -> void: + var data: Dictionary = selected_item.get_metadata(0) + if ResourceLoader.exists(data.get("scene", "")): + DialogicUtil.get_dialogic_plugin().get_editor_interface().open_scene_from_path(data.get("scene", "")) + await get_tree().process_frame + EditorInterface.set_main_screen_editor("2D") + + +func _on_change_scene_button_pressed() -> void: + %PortraitSceneBrowserWindow.popup_centered_ratio(0.6) + + +func _on_portrait_scene_browser_activate_part(part_info: Dictionary) -> void: + %PortraitSceneBrowserWindow.hide() + match part_info.type: + "General": + set_scene_path(part_info.path) + "Preset": + find_parent("EditorView").godot_file_dialog( + create_new_portrait_scene.bind(part_info), + '*.tscn,*.scn', + EditorFileDialog.FILE_MODE_SAVE_FILE, + "Select where to save the new scene", + part_info.path.get_file().trim_suffix("."+part_info.path.get_extension())+"_"+character_editor.current_resource.get_character_name().to_lower()) + "Custom": + find_parent("EditorView").godot_file_dialog( + set_scene_path, + '*.tscn, *.scn', + EditorFileDialog.FILE_MODE_OPEN_FILE, + "Select custom portrait scene",) + "Default": + set_scene_path("") + + +func create_new_portrait_scene(target_file: String, info: Dictionary) -> void: + var path := make_portrait_preset_custom(target_file, info) + set_scene_path(path) + + +func make_portrait_preset_custom(target_file:String, info: Dictionary) -> String: + var previous_file: String = info.path + var target_folder := target_file.get_base_dir() + target_file = target_file.get_file() -func _on_scene_picker_value_changed(prop_name:String, value:String) -> void: - var data:Dictionary = selected_item.get_metadata(0) - data['scene'] = value + DirAccess.make_dir_absolute(target_folder) + + DirAccess.copy_absolute(previous_file, target_folder.path_join(target_file)) + + var file := FileAccess.open(target_folder.path_join(target_file), FileAccess.READ) + var scene_text := file.get_as_text() + file.close() + if scene_text.begins_with('[gd_scene'): + var base_path: String = previous_file.get_base_dir() + + var result := RegEx.create_from_string("\\Q\""+base_path+"\\E(?[^\"]*)\"").search(scene_text) + while result: + DirAccess.copy_absolute(base_path.path_join(result.get_string('file')), target_folder.path_join(result.get_string('file'))) + scene_text = scene_text.replace(base_path.path_join(result.get_string('file')), target_folder.path_join(result.get_string('file'))) + result = RegEx.create_from_string("\\Q\""+base_path+"\\E(?[^\"]*)\"").search(scene_text) + + file = FileAccess.open(target_folder.path_join(target_file), FileAccess.WRITE) + file.store_string(scene_text) + file.close() + + find_parent('EditorView').plugin_reference.get_editor_interface().get_resource_filesystem().scan_sources() + return target_folder.path_join(target_file) + + +func set_scene_path(path:String) -> void: + var data: Dictionary = selected_item.get_metadata(0) + data['scene'] = path update_preview.emit() changed.emit() - %OpenSceneButton.visible = !data.get('scene', '').is_empty() + reload_ui(data) -func _on_open_scene_button_pressed() -> void: - if !%ScenePicker.current_value.is_empty() and ResourceLoader.exists(%ScenePicker.current_value): - DialogicUtil.get_dialogic_plugin().get_editor_interface().open_scene_from_path(%ScenePicker.current_value) - EditorInterface.set_main_screen_editor("2D") +func reload_ui(data: Dictionary) -> void: + var path: String = data.get('scene', '') + %OpenSceneButton.hide() + + if path.is_empty(): + %SceneLabel.text = "Default Portrait Scene" + %SceneLabel.tooltip_text = "Can be changed in the settings." + %SceneLabel.add_theme_color_override("font_color", get_theme_color("readonly_color", "Editor")) + + elif %PortraitSceneBrowser.is_premade_portrait_scene(path): + %SceneLabel.text = %PortraitSceneBrowser.portrait_scenes_info[path].name + %SceneLabel.tooltip_text = path + %SceneLabel.add_theme_color_override("font_color", get_theme_color("accent_color", "Editor")) + + else: + %SceneLabel.text = path.get_file() + %SceneLabel.tooltip_text = path + %SceneLabel.add_theme_color_override("font_color", get_theme_color("property_color_x", "Editor")) + %OpenSceneButton.show() + diff --git a/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_main.tscn b/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_main.tscn index db355bd..41a38dd 100644 --- a/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_main.tscn +++ b/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_main.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=5 format=3 uid="uid://djq4aasoihexj"] +[gd_scene load_steps=6 format=3 uid="uid://djq4aasoihexj"] [ext_resource type="Script" path="res://addons/dialogic/Editor/CharacterEditor/char_edit_p_section_main.gd" id="1_ht8lu"] [ext_resource type="PackedScene" uid="uid://7mvxuaulctcq" path="res://addons/dialogic/Editor/Events/Fields/field_file.tscn" id="2_k8xs0"] +[ext_resource type="PackedScene" uid="uid://b1wn8r84uh11b" path="res://addons/dialogic/Editor/CharacterEditor/portrait_scene_browser.tscn" id="3_ngvgq"] -[sub_resource type="Image" id="Image_sbh6e"] +[sub_resource type="Image" id="Image_tg5pd"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -12,8 +13,8 @@ data = { "width": 16 } -[sub_resource type="ImageTexture" id="ImageTexture_mbv6v"] -image = SubResource("Image_sbh6e") +[sub_resource type="ImageTexture" id="ImageTexture_f5xt2"] +image = SubResource("Image_tg5pd") [node name="Scene" type="GridContainer"] offset_right = 298.0 @@ -25,18 +26,47 @@ script = ExtResource("1_ht8lu") layout_mode = 2 size_flags_horizontal = 3 +[node name="ChangeSceneButton" type="Button" parent="HBox"] +unique_name_in_owner = true +layout_mode = 2 +tooltip_text = "Change Scene" +icon = SubResource("ImageTexture_f5xt2") + +[node name="SceneLabel" type="Label" parent="HBox"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +mouse_filter = 0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +text = "asdsdasdasd" +clip_text = true + [node name="ScenePicker" parent="HBox" instance=ExtResource("2_k8xs0")] unique_name_in_owner = true +visible = false layout_mode = 2 size_flags_horizontal = 3 file_filter = "*.tscn, *.scn; Scenes" placeholder = "Default scene" -resource_icon = SubResource("ImageTexture_mbv6v") [node name="OpenSceneButton" type="Button" parent="HBox"] unique_name_in_owner = true layout_mode = 2 -icon = SubResource("ImageTexture_mbv6v") +tooltip_text = "Open/Edit Scene" +icon = SubResource("ImageTexture_f5xt2") + +[node name="PortraitSceneBrowserWindow" type="Window" parent="."] +unique_name_in_owner = true +title = "Portrait Scene Browser" +position = Vector2i(0, 36) +visible = false +wrap_controls = true +transient = true +popup_window = true + +[node name="PortraitSceneBrowser" parent="PortraitSceneBrowserWindow" instance=ExtResource("3_ngvgq")] +unique_name_in_owner = true -[connection signal="value_changed" from="HBox/ScenePicker" to="." method="_on_scene_picker_value_changed"] +[connection signal="pressed" from="HBox/ChangeSceneButton" to="." method="_on_change_scene_button_pressed"] [connection signal="pressed" from="HBox/OpenSceneButton" to="." method="_on_open_scene_button_pressed"] +[connection signal="activate_part" from="PortraitSceneBrowserWindow/PortraitSceneBrowser" to="." method="_on_portrait_scene_browser_activate_part"] diff --git a/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_main_exports.gd b/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_main_exports.gd index 690aefc..d9ff6e5 100644 --- a/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_main_exports.gd +++ b/addons/dialogic/Editor/CharacterEditor/char_edit_p_section_main_exports.gd @@ -3,46 +3,61 @@ extends DialogicCharacterEditorPortraitSection ## Portrait Settings Section that only shows the MAIN settings of a portrait scene. +var current_portrait_data := {} +var last_scene := "" + func _show_title() -> bool: return false -var current_portrait_data := {} func _load_portrait_data(data:Dictionary) -> void: + _recheck(data, true) + + +func _recheck(data:Dictionary, force := false) -> void: get_parent().get_child(get_index()+1).hide() + if last_scene == data.get("scene", "") and not force: + current_portrait_data = data + last_scene = data.get("scene", "") + return + + last_scene = data.get("scene", "") current_portrait_data = data + load_portrait_scene_export_variables() + func load_portrait_scene_export_variables() -> void: for child in $Grid.get_children(): child.queue_free() - var scene = null - if !current_portrait_data.get('scene', '').is_empty(): - scene = load(current_portrait_data.get('scene')) - elif !ProjectSettings.get_setting('dialogic/portraits/default_portrait', '').is_empty(): - scene = load(ProjectSettings.get_setting('dialogic/portraits/default_portrait', '')) + var scene: Variant = null + if current_portrait_data.get('scene', '').is_empty(): + if ProjectSettings.get_setting('dialogic/portraits/default_portrait', '').is_empty(): + scene = load(character_editor.def_portrait_path) + else: + scene = load(ProjectSettings.get_setting('dialogic/portraits/default_portrait', '')) else: - scene = load(character_editor.def_portrait_path) + scene = load(current_portrait_data.get('scene')) - if !scene: + if not scene: return scene = scene.instantiate() var skip := true for i in scene.script.get_script_property_list(): if i['usage'] & PROPERTY_USAGE_EDITOR and !skip: - var label = Label.new() + var label := Label.new() label.text = i['name'].capitalize() $Grid.add_child(label) - var current_value :Variant = scene.get(i['name']) + var current_value: Variant = scene.get(i['name']) if current_portrait_data.has('export_overrides') and current_portrait_data['export_overrides'].has(i['name']): current_value = str_to_var(current_portrait_data['export_overrides'][i['name']]) if current_value == null and typeof(scene.get(i['name'])) == TYPE_STRING: current_value = current_portrait_data['export_overrides'][i['name']] - var input :Node = DialogicUtil.setup_script_property_edit_node(i, current_value, set_export_override) + var input: Node = DialogicUtil.setup_script_property_edit_node(i, current_value, set_export_override) input.size_flags_horizontal = SIZE_EXPAND_FILL $Grid.add_child(input) @@ -54,7 +69,7 @@ func load_portrait_scene_export_variables() -> void: continue func set_export_override(property_name:String, value:String = "") -> void: - var data:Dictionary = selected_item.get_metadata(0) + var data: Dictionary = selected_item.get_metadata(0) if !data.has('export_overrides'): data['export_overrides'] = {} if !value.is_empty(): diff --git a/addons/dialogic/Editor/CharacterEditor/character_editor.gd b/addons/dialogic/Editor/CharacterEditor/character_editor.gd index 586b383..c0e6060 100644 --- a/addons/dialogic/Editor/CharacterEditor/character_editor.gd +++ b/addons/dialogic/Editor/CharacterEditor/character_editor.gd @@ -14,7 +14,7 @@ var current_scene_path: String = "" # References var selected_item: TreeItem -var def_portrait_path :String= DialogicUtil.get_module_path('Character').path_join('default_portrait.tscn') +var def_portrait_path: String = DialogicUtil.get_module_path('Character').path_join('default_portrait.tscn') ######### EDITOR STUFF and LOADING/SAVING ###################################### @@ -27,7 +27,7 @@ func _register() -> void: editors_manager.register_resource_editor("dch", self) ## Add an "add character" button - var add_character_button = editors_manager.add_icon_button( + var add_character_button: Button = editors_manager.add_icon_button( load("res://addons/dialogic/Editor/Images/Toolbar/add-character.svg"), 'Add Character', self) @@ -190,7 +190,7 @@ func add_settings_section(edit:Control, parent:Node) -> void: if edit.has_signal('update_preview'): edit.update_preview.connect(update_preview) - var button :Button + var button: Button if edit._show_title(): var hbox := HBoxContainer.new() hbox.name = edit._get_title()+"BOX" @@ -210,7 +210,7 @@ func add_settings_section(edit:Control, parent:Node) -> void: hbox.add_child(button) if !edit.hint_text.is_empty(): - var hint :Node = load("res://addons/dialogic/Editor/Common/hint_tooltip_icon.tscn").instantiate() + var hint: Node = load("res://addons/dialogic/Editor/Common/hint_tooltip_icon.tscn").instantiate() hint.hint_text = edit.hint_text hbox.add_child(hint) @@ -314,13 +314,13 @@ func import_portraits_from_folder(path:String) -> void: var dir := DirAccess.open(path) dir.list_dir_begin() - var file_name :String = dir.get_next() + var file_name: String = dir.get_next() while file_name != "": if not dir.current_is_dir(): - var file_lower = file_name.to_lower() + var file_lower := file_name.to_lower() if '.svg' in file_lower or '.png' in file_lower: if not '.import' in file_lower: - var final_name: String = path.path_join(file_name) + var final_name := path.path_join(file_name) %PortraitTree.add_portrait_item(file_name.trim_suffix('.'+file_name.get_extension()), {'scene':"",'export_overrides':{'image':var_to_str(final_name)}, 'scale':1, 'offset':Vector2(), 'mirror':false}, parent) file_name = dir.get_next() @@ -354,7 +354,7 @@ func add_portrait_group() -> void: var parent_item: TreeItem = %PortraitTree.get_root() if %PortraitTree.get_selected() and %PortraitTree.get_selected().get_metadata(0).has('group'): parent_item = %PortraitTree.get_selected() - var item :TreeItem = %PortraitTree.add_portrait_group("Group", parent_item) + var item: TreeItem = %PortraitTree.add_portrait_group("Group", parent_item) item.set_meta('new', true) item.set_editable(0, true) item.select(0) @@ -366,8 +366,8 @@ func load_portrait_tree() -> void: var root: TreeItem = %PortraitTree.create_item() for portrait in current_resource.portraits.keys(): - var portrait_label = portrait - var parent = %PortraitTree.get_root() + var portrait_label: String = portrait + var parent: TreeItem = %PortraitTree.get_root() if '/' in portrait: parent = %PortraitTree.create_necessary_group_items(portrait) portrait_label = portrait.split('/')[-1] @@ -539,7 +539,7 @@ func report_name_change(item: TreeItem) -> void: ########### PREVIEW ############################################################ #region Preview -func update_preview(force := false) -> void: +func update_preview(force := false, ignore_settings_reload := false) -> void: %ScenePreviewWarning.hide() if selected_item and is_instance_valid(selected_item) and selected_item.get_metadata(0) != null and !selected_item.get_metadata(0).has('group'): @@ -616,10 +616,10 @@ func update_preview(force := false) -> void: else: %PreviewLabel.text = 'Nothing to preview' - for child in %PortraitSettingsSection.get_children(): - - if child is DialogicCharacterEditorPortraitSection: - child._recheck(current_portrait_data) + if not ignore_settings_reload: + for child in %PortraitSettingsSection.get_children(): + if child is DialogicCharacterEditorPortraitSection: + child._recheck(current_portrait_data) else: %PreviewLabel.text = 'No portrait to preview.' @@ -644,7 +644,7 @@ func _on_some_resource_saved(file:Variant) -> void: func _on_full_preview_available_rect_resized() -> void: if %FitPreview_Toggle.button_pressed: - update_preview() + update_preview(false, true) func _on_create_character_button_pressed() -> void: @@ -665,7 +665,7 @@ func _on_fit_preview_toggle_toggled(button_pressed): %FitPreview_Toggle.tooltip_text = "Fit into preview" %FitPreview_Toggle.icon = get_theme_icon("CenterContainer", "EditorIcons") DialogicUtil.set_editor_setting('character_preview_fit', button_pressed) - update_preview() + update_preview(false, true) #endregion diff --git a/addons/dialogic/Editor/CharacterEditor/character_editor_main_settings_section.gd b/addons/dialogic/Editor/CharacterEditor/character_editor_main_settings_section.gd index dc787ed..d329d06 100644 --- a/addons/dialogic/Editor/CharacterEditor/character_editor_main_settings_section.gd +++ b/addons/dialogic/Editor/CharacterEditor/character_editor_main_settings_section.gd @@ -8,7 +8,7 @@ extends Control signal changed ## Reference to the character editor, set when instantiated -var character_editor:Control +var character_editor: Control ## If not empty, a hint icon is added to the section title. var hint_text := "" diff --git a/addons/dialogic/Editor/CharacterEditor/character_editor_portrait_settings_section.gd b/addons/dialogic/Editor/CharacterEditor/character_editor_portrait_settings_section.gd index 864e3bc..920f8a5 100644 --- a/addons/dialogic/Editor/CharacterEditor/character_editor_portrait_settings_section.gd +++ b/addons/dialogic/Editor/CharacterEditor/character_editor_portrait_settings_section.gd @@ -12,10 +12,10 @@ signal changed signal update_preview ## Reference to the character editor, set when instantiated -var character_editor:Control +var character_editor: Control ## Reference to the selected portrait item. ## `selected_item.get_metadata(0)` can access the portraits data -var selected_item :TreeItem = null +var selected_item: TreeItem = null ## If not empty a hint icon is added to the section title var hint_text := "" diff --git a/addons/dialogic/Editor/CharacterEditor/character_editor_portrait_tree.gd b/addons/dialogic/Editor/CharacterEditor/character_editor_portrait_tree.gd index eac719a..c6fcf46 100644 --- a/addons/dialogic/Editor/CharacterEditor/character_editor_portrait_tree.gd +++ b/addons/dialogic/Editor/CharacterEditor/character_editor_portrait_tree.gd @@ -64,7 +64,7 @@ func create_necessary_group_items(path: String) -> TreeItem: if current_group_nodes.has(item_path+"/"+i): last_item = current_group_nodes[item_path+"/"+i] else: - var new_item:TreeItem = add_portrait_group(i, last_item) + var new_item: TreeItem = add_portrait_group(i, last_item) current_group_nodes[item_path+"/"+i] = new_item last_item = new_item return last_item @@ -97,7 +97,7 @@ func _can_drop_data(position: Vector2, data: Variant) -> bool: func _drop_data(position: Vector2, item: Variant) -> void: var to_item := get_item_at_position(position) if to_item: - var test_item:= to_item + var test_item := to_item while true: if test_item == item: return diff --git a/addons/dialogic/Editor/CharacterEditor/portrait_scene_browser.gd b/addons/dialogic/Editor/CharacterEditor/portrait_scene_browser.gd new file mode 100644 index 0000000..119f813 --- /dev/null +++ b/addons/dialogic/Editor/CharacterEditor/portrait_scene_browser.gd @@ -0,0 +1,126 @@ +@tool +extends Control + +var ListItem := load("res://addons/dialogic/Editor/Common/BrowserItem.tscn") + +enum Types {ALL, GENERAL, PRESET} +var current_type := Types.ALL +var current_info := {} + +var portrait_scenes_info := {} + +signal activate_part(part_info:Dictionary) + + +func _ready() -> void: + collect_portrait_scenes() + + %Search.right_icon = get_theme_icon("Search", "EditorIcons") + %CloseButton.icon = get_theme_icon("Close", "EditorIcons") + + get_parent().close_requested.connect(_on_close_button_pressed) + get_parent().visibility_changed.connect(func():if get_parent().visible: open()) + + +func collect_portrait_scenes() -> void: + for indexer in DialogicUtil.get_indexers(): + for element in indexer._get_portrait_scene_presets(): + portrait_scenes_info[element.get('path', '')] = element + + +func open() -> void: + collect_portrait_scenes() + load_parts() + + +func is_premade_portrait_scene(scene_path:String) -> bool: + return scene_path in portrait_scenes_info + + +func load_parts() -> void: + for i in %PartGrid.get_children(): + i.queue_free() + + %Search.placeholder_text = "Search for " + %Search.text = "" + match current_type: + Types.GENERAL: %Search.placeholder_text += "general portrait scenes" + Types.PRESET: %Search.placeholder_text += "portrait scene presets" + Types.ALL: %Search.placeholder_text += "general portrait scenes and presets" + + for info in portrait_scenes_info.values(): + var type: String = info.get('type', '_') + if (current_type == Types.GENERAL and type != "General") or (current_type == Types.PRESET and type != "Preset"): + continue + + var item: Node = ListItem.instantiate() + item.load_info(info) + %PartGrid.add_child(item) + item.set_meta('info', info) + item.clicked.connect(_on_item_clicked.bind(item, info)) + item.focused.connect(_on_item_clicked.bind(item, info)) + item.double_clicked.connect(emit_signal.bind('activate_part', info)) + + await get_tree().process_frame + + if %PartGrid.get_child_count() > 0: + %PartGrid.get_child(0).clicked.emit() + %PartGrid.get_child(0).grab_focus() + + +func _on_item_clicked(item: Node, info:Dictionary) -> void: + load_part_info(info) + + +func load_part_info(info:Dictionary) -> void: + current_info = info + %PartTitle.text = info.get('name', 'Unknown Part') + %PartAuthor.text = "by "+info.get('author', 'Anonymus') + %PartDescription.text = info.get('description', '') + + if info.get('preview_image', null) and ResourceLoader.exists(info.preview_image[0]): + %PreviewImage.texture = load(info.preview_image[0]) + %PreviewImage.show() + else: + %PreviewImage.hide() + + match info.type: + "General": + %ActivateButton.text = "Use this scene" + %TypeDescription.text = "This is a general use scene, it can be used directly." + "Preset": + %ActivateButton.text = "Customize this scene" + %TypeDescription.text = "This is a preset you can use for a custom portrait scene. Dialogic will promt you to save a copy of this scene that you can then use and customize." + "Default": + %ActivateButton.text = "Use default scene" + %TypeDescription.text = "" + "Custom": + %ActivateButton.text = "Select a custom scene" + %TypeDescription.text = "" + + if info.get("documentation", ""): + %DocumentationButton.show() + %DocumentationButton.uri = info.documentation + else: + %DocumentationButton.hide() + + +func _on_activate_button_pressed() -> void: + activate_part.emit(current_info) + + +func _on_close_button_pressed() -> void: + get_parent().hide() + + +func _on_search_text_changed(new_text: String) -> void: + for item in %PartGrid.get_children(): + if new_text.is_empty(): + item.show() + continue + + if new_text.to_lower() in item.get_meta('info').name.to_lower(): + item.show() + continue + + item.hide() diff --git a/addons/dialogic/Editor/CharacterEditor/portrait_scene_browser.tscn b/addons/dialogic/Editor/CharacterEditor/portrait_scene_browser.tscn new file mode 100644 index 0000000..3e4ecc1 --- /dev/null +++ b/addons/dialogic/Editor/CharacterEditor/portrait_scene_browser.tscn @@ -0,0 +1,260 @@ +[gd_scene load_steps=11 format=3 uid="uid://b1wn8r84uh11b"] + +[ext_resource type="Script" path="res://addons/dialogic/Editor/CharacterEditor/portrait_scene_browser.gd" id="1_an6nc"] + +[sub_resource type="Gradient" id="Gradient_0o1u0"] +colors = PackedColorArray(0.100572, 0.303996, 0.476999, 1, 0.296448, 0.231485, 0.52887, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_gxpvv"] +gradient = SubResource("Gradient_0o1u0") +fill = 2 +fill_from = Vector2(0.478632, 1) +fill_to = Vector2(0, 0) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_we8bq"] +content_margin_left = 6.0 +content_margin_top = 3.0 +content_margin_right = 6.0 +content_margin_bottom = 3.0 +draw_center = false +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(1, 1, 1, 0.615686) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3x0xw"] +content_margin_left = 6.0 +content_margin_top = 3.0 +content_margin_right = 6.0 +content_margin_bottom = 3.0 +draw_center = false +border_width_left = 3 +border_width_top = 3 +border_width_right = 3 +border_width_bottom = 3 +border_color = Color(1, 1, 1, 1) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 +expand_margin_left = 2.0 +expand_margin_top = 2.0 +expand_margin_right = 2.0 +expand_margin_bottom = 2.0 + +[sub_resource type="Image" id="Image_lwe0k"] +data = { +"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), +"format": "RGBA8", +"height": 16, +"mipmaps": false, +"width": 16 +} + +[sub_resource type="ImageTexture" id="ImageTexture_d2gam"] +image = SubResource("Image_lwe0k") + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_lf1ht"] +bg_color = Color(0.0588235, 0.0313726, 0.0980392, 1) +border_width_left = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_a5iyu"] +bg_color = Color(1, 1, 1, 1) +draw_center = false +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 +shadow_color = Color(0.992157, 0.992157, 0.992157, 0.101961) +shadow_size = 10 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_htwsp"] +bg_color = Color(1, 1, 1, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[node name="PortraitSceneBrowser" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_an6nc") + +[node name="BGColor" type="TextureRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("GradientTexture2D_gxpvv") + +[node name="HSplitContainer" type="HSplitContainer" parent="."] +clip_contents = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_vertical = 3 + +[node name="Margin" type="MarginContainer" parent="HSplitContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_stretch_ratio = 1.5 +theme_override_constants/margin_left = 10 +theme_override_constants/margin_top = 10 +theme_override_constants/margin_right = 10 +theme_override_constants/margin_bottom = 10 + +[node name="VBox" type="VBoxContainer" parent="HSplitContainer/Margin"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="BrowserTitle" type="Label" parent="HSplitContainer/Margin/VBox"] +layout_mode = 2 +theme_type_variation = &"DialogicSubTitle" +theme_override_font_sizes/font_size = 25 +text = "Dialogic Portrait Scene Browser" + +[node name="HBox" type="HBoxContainer" parent="HSplitContainer/Margin/VBox"] +layout_mode = 2 + +[node name="Search" type="LineEdit" parent="HSplitContainer/Margin/VBox/HBox"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_styles/normal = SubResource("StyleBoxFlat_we8bq") +theme_override_styles/focus = SubResource("StyleBoxFlat_3x0xw") +placeholder_text = "Search" +right_icon = SubResource("ImageTexture_d2gam") + +[node name="ScrollContainer" type="ScrollContainer" parent="HSplitContainer/Margin/VBox"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="PartGrid" type="HFlowContainer" parent="HSplitContainer/Margin/VBox/ScrollContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="Buttons" type="HBoxContainer" parent="HSplitContainer/Margin/VBox"] +layout_mode = 2 +alignment = 1 + +[node name="CloseButton" type="Button" parent="HSplitContainer/Margin/VBox/Buttons"] +unique_name_in_owner = true +layout_mode = 2 +text = "Close" +icon = SubResource("ImageTexture_d2gam") + +[node name="PanelContainer" type="PanelContainer" parent="HSplitContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_styles/panel = SubResource("StyleBoxFlat_lf1ht") + +[node name="Control" type="Control" parent="HSplitContainer/PanelContainer"] +layout_mode = 2 + +[node name="Panel" type="Panel" parent="HSplitContainer/PanelContainer/Control"] +layout_mode = 1 +anchors_preset = 9 +anchor_bottom = 1.0 +offset_left = -4.0 +offset_right = 40.0 +offset_bottom = 71.0 +grow_vertical = 2 +rotation = 0.0349066 +theme_override_styles/panel = SubResource("StyleBoxFlat_lf1ht") + +[node name="MarginContainer" type="MarginContainer" parent="HSplitContainer/PanelContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 5 +theme_override_constants/margin_top = 10 +theme_override_constants/margin_right = 10 +theme_override_constants/margin_bottom = 10 + +[node name="VBox" type="VBoxContainer" parent="HSplitContainer/PanelContainer/MarginContainer"] +layout_mode = 2 +alignment = 1 + +[node name="Panel" type="PanelContainer" parent="HSplitContainer/PanelContainer/MarginContainer/VBox"] +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_a5iyu") + +[node name="Panel" type="PanelContainer" parent="HSplitContainer/PanelContainer/MarginContainer/VBox/Panel"] +clip_children = 1 +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_htwsp") + +[node name="PreviewImage" type="TextureRect" parent="HSplitContainer/PanelContainer/MarginContainer/VBox/Panel/Panel"] +unique_name_in_owner = true +layout_mode = 2 +expand_mode = 5 +stretch_mode = 6 + +[node name="HFlowContainer" type="HFlowContainer" parent="HSplitContainer/PanelContainer/MarginContainer/VBox"] +layout_mode = 2 + +[node name="PartTitle" type="Label" parent="HSplitContainer/PanelContainer/MarginContainer/VBox/HFlowContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_vertical = 8 +theme_type_variation = &"DialogicTitle" +text = "Cool Style Part" + +[node name="PartAuthor" type="Label" parent="HSplitContainer/PanelContainer/MarginContainer/VBox/HFlowContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_vertical = 8 +theme_type_variation = &"DialogicHintText" +text = "by Jowan" + +[node name="PartType" type="Label" parent="HSplitContainer/PanelContainer/MarginContainer/VBox/HFlowContainer"] +visible = false +layout_mode = 2 +size_flags_vertical = 8 +theme_type_variation = &"DialogicHintText" +text = "a style" + +[node name="PartDescription" type="Label" parent="HSplitContainer/PanelContainer/MarginContainer/VBox"] +unique_name_in_owner = true +layout_mode = 2 +theme_type_variation = &"DialogicHintText2" +text = "A cool textbox layer" +autowrap_mode = 3 + +[node name="DocumentationButton" type="LinkButton" parent="HSplitContainer/PanelContainer/MarginContainer/VBox"] +unique_name_in_owner = true +layout_mode = 2 +text = "Learn more" + +[node name="HSeparator" type="HSeparator" parent="HSplitContainer/PanelContainer/MarginContainer/VBox"] +layout_mode = 2 + +[node name="ActivateButton" type="Button" parent="HSplitContainer/PanelContainer/MarginContainer/VBox"] +unique_name_in_owner = true +layout_mode = 2 +text = "Use" + +[node name="TypeDescription" type="Label" parent="HSplitContainer/PanelContainer/MarginContainer/VBox"] +unique_name_in_owner = true +layout_mode = 2 +theme_type_variation = &"DialogicHintText" +text = "A cool textbox layer" +autowrap_mode = 3 + +[connection signal="text_changed" from="HSplitContainer/Margin/VBox/HBox/Search" to="." method="_on_search_text_changed"] +[connection signal="pressed" from="HSplitContainer/Margin/VBox/Buttons/CloseButton" to="." method="_on_close_button_pressed"] +[connection signal="pressed" from="HSplitContainer/PanelContainer/MarginContainer/VBox/ActivateButton" to="." method="_on_activate_button_pressed"] diff --git a/addons/dialogic/Modules/StyleEditor/Components/StyleItem.gd b/addons/dialogic/Editor/Common/BrowserItem.gd similarity index 87% rename from addons/dialogic/Modules/StyleEditor/Components/StyleItem.gd rename to addons/dialogic/Editor/Common/BrowserItem.gd index 72684fc..7bfb3cf 100644 --- a/addons/dialogic/Modules/StyleEditor/Components/StyleItem.gd +++ b/addons/dialogic/Editor/Common/BrowserItem.gd @@ -6,7 +6,7 @@ signal middle_clicked signal double_clicked signal focused -var base_size = 1 +var base_size := 1 func _ready() -> void: @@ -14,7 +14,7 @@ func _ready() -> void: return %Name.add_theme_font_override("font", get_theme_font("bold", "EditorFonts")) - custom_minimum_size = base_size*Vector2(200, 150) * DialogicUtil.get_editor_scale() + custom_minimum_size = base_size * Vector2(200, 150) * DialogicUtil.get_editor_scale() %CurrentIcon.texture = get_theme_icon("Favorites", "EditorIcons") if %Image.texture == null: %Image.texture = get_theme_icon("ImportFail", "EditorIcons") @@ -23,7 +23,9 @@ func _ready() -> void: func load_info(info:Dictionary) -> void: %Name.text = info.name - if info.preview_image[0] == 'custom': + if not info.has("preview_image"): + pass + elif info.preview_image[0] == 'custom': await ready %Image.texture = get_theme_icon("CreateNewSceneFrom", "EditorIcons") %Image.stretch_mode = TextureRect.STRETCH_KEEP_CENTERED @@ -32,6 +34,9 @@ func load_info(info:Dictionary) -> void: DialogicUtil.get_dialogic_plugin().get_editor_interface().get_resource_previewer().queue_resource_preview(info.preview_image[0], self, 'set_scene_preview', null) elif ResourceLoader.exists(info.preview_image[0]): %Image.texture = load(info.preview_image[0]) + elif info.preview_image[0].is_valid_html_color(): + %Image.texture = null + %Panel.self_modulate = Color(info.preview_image[0]) if ResourceLoader.exists(info.get('icon', '')): %Icon.get_parent().show() diff --git a/addons/dialogic/Modules/StyleEditor/Components/StyleItem.tscn b/addons/dialogic/Editor/Common/BrowserItem.tscn similarity index 95% rename from addons/dialogic/Modules/StyleEditor/Components/StyleItem.tscn rename to addons/dialogic/Editor/Common/BrowserItem.tscn index 7478ddd..4abc87b 100644 --- a/addons/dialogic/Modules/StyleEditor/Components/StyleItem.tscn +++ b/addons/dialogic/Editor/Common/BrowserItem.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=6 format=3 uid="uid://ddlxjde1cx035"] -[ext_resource type="Script" path="res://addons/dialogic/Modules/StyleEditor/Components/StyleItem.gd" id="1_is0qu"] +[ext_resource type="Script" path="res://addons/dialogic/Editor/Common/BrowserItem.gd" id="1_s3kf0"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_pfw08"] bg_color = Color(1, 1, 1, 0.32549) @@ -45,7 +45,7 @@ expand_margin_top = 4.0 expand_margin_right = 4.0 expand_margin_bottom = 4.0 -[node name="Margin" type="MarginContainer"] +[node name="BrowserItem" type="MarginContainer"] custom_minimum_size = Vector2(200, 150) offset_left = 1.0 offset_top = 1.0 @@ -57,7 +57,7 @@ theme_override_constants/margin_left = 4 theme_override_constants/margin_top = 4 theme_override_constants/margin_right = 4 theme_override_constants/margin_bottom = 4 -script = ExtResource("1_is0qu") +script = ExtResource("1_s3kf0") [node name="HoverBG" type="Panel" parent="."] unique_name_in_owner = true @@ -87,7 +87,7 @@ layout_mode = 2 size_flags_vertical = 3 mouse_filter = 2 expand_mode = 1 -stretch_mode = 5 +stretch_mode = 6 [node name="CurrentIcon" type="TextureRect" parent="VBox/Panel/Image"] unique_name_in_owner = true diff --git a/addons/dialogic/Editor/Common/DCSS.gd b/addons/dialogic/Editor/Common/DCSS.gd index b3f1ce5..2a1f95a 100644 --- a/addons/dialogic/Editor/Common/DCSS.gd +++ b/addons/dialogic/Editor/Common/DCSS.gd @@ -15,7 +15,10 @@ static func inline(style: Dictionary) -> StyleBoxFlat: s.set('corner_radius_bottom_left', radius) s.set('corner_radius_bottom_right', radius) 'background': - s.set('bg_color', style[property]) + if typeof(style[property]) == TYPE_STRING and style[property] == "none": + s.set('draw_center', false) + else: + s.set('bg_color', style[property]) 'border': var width: float = style[property] * scale s.set('border_width_left', width) diff --git a/addons/dialogic/Editor/Common/ReferenceManager_AddReplacementPanel.gd b/addons/dialogic/Editor/Common/ReferenceManager_AddReplacementPanel.gd index f26c95c..2262619 100644 --- a/addons/dialogic/Editor/Common/ReferenceManager_AddReplacementPanel.gd +++ b/addons/dialogic/Editor/Common/ReferenceManager_AddReplacementPanel.gd @@ -5,7 +5,7 @@ extends PanelContainer enum Modes {EDIT, ADD} var mode := Modes.EDIT -var item :TreeItem = null +var item: TreeItem = null func _ready() -> void: @@ -86,7 +86,7 @@ func get_character_suggestions(search_text:String) -> Dictionary: var suggestions := {} #override the previous _character_directory with the meta, specifically for searching otherwise new nodes wont work - var _character_directory = DialogicResourceUtil.get_character_directory() + var _character_directory := DialogicResourceUtil.get_character_directory() var icon := load("res://addons/dialogic/Editor/Images/Resources/character.svg") suggestions['(No one)'] = {'value':null, 'editor_icon':["GuiRadioUnchecked", "EditorIcons"]} diff --git a/addons/dialogic/Editor/Common/broken_reference_manager.gd b/addons/dialogic/Editor/Common/broken_reference_manager.gd index f7bae7c..b0d11cc 100644 --- a/addons/dialogic/Editor/Common/broken_reference_manager.gd +++ b/addons/dialogic/Editor/Common/broken_reference_manager.gd @@ -3,7 +3,7 @@ extends VSplitContainer ## This manager shows a list of changed references and allows searching for them and replacing them. -var reference_changes :Array[Dictionary] = []: +var reference_changes: Array[Dictionary] = []: set(changes): reference_changes = changes update_indicator() @@ -55,7 +55,7 @@ func open() -> void: %ChangeTree.set_column_custom_minimum_width(2, 50) var categories := {null:%ChangeTree.get_root()} for i in reference_changes: - var parent : TreeItem = null + var parent: TreeItem = null if !i.get('category', null) in categories: parent = %ChangeTree.create_item() parent.set_text(1, i.category) @@ -64,7 +64,7 @@ func open() -> void: else: parent = categories[i.get('category')] - var item :TreeItem = %ChangeTree.create_item(parent) + var item: TreeItem = %ChangeTree.create_item(parent) item.set_text(1, i.what+" -> "+i.forwhat) item.add_button(1, get_theme_icon("Edit", "EditorIcons"), 1, false, 'Edit') item.add_button(1, get_theme_icon("Remove", "EditorIcons"), 0, false, 'Remove Change from List') @@ -98,8 +98,8 @@ func _on_change_tree_item_edited() -> void: func _on_check_button_pressed() -> void: - var to_be_checked :Array[Dictionary]= [] - var item :TreeItem = %ChangeTree.get_root() + var to_be_checked: Array[Dictionary]= [] + var item: TreeItem = %ChangeTree.get_root() while item.get_next_visible(): item = item.get_next_visible() @@ -245,7 +245,7 @@ func get_line(string:String, at_index:int) -> String: func update_count_coloring() -> void: - var item :TreeItem = %ChangeTree.get_root() + var item: TreeItem = %ChangeTree.get_root() while item.get_next_visible(): item = item.get_next_visible() @@ -264,9 +264,9 @@ func update_count_coloring() -> void: func _on_replace_pressed() -> void: - var to_be_replaced :Array[Dictionary]= [] - var item :TreeItem = %ReferenceTree.get_root() - var affected_timelines :Array[String]= [] + var to_be_replaced: Array[Dictionary]= [] + var item: TreeItem = %ReferenceTree.get_root() + var affected_timelines: Array[String]= [] while item.get_next_visible(): item = item.get_next_visible() @@ -284,7 +284,7 @@ func _on_replace_pressed() -> void: func replace(timelines:Array[String], replacement_info:Array[Dictionary]) -> void: var reopen_timeline := "" - var timeline_editor :DialogicEditor = find_parent('EditorView').editors_manager.editors['Timeline'].node + var timeline_editor: DialogicEditor = find_parent('EditorView').editors_manager.editors['Timeline'].node if timeline_editor.current_resource != null and timeline_editor.current_resource.resource_path in timelines: reopen_timeline = timeline_editor.current_resource.resource_path find_parent('EditorView').editors_manager.clear_editor(timeline_editor) @@ -295,7 +295,7 @@ func replace(timelines:Array[String], replacement_info:Array[Dictionary]) -> voi %State.text = "Loading '"+timeline_path+"'" var timeline_file := FileAccess.open(timeline_path, FileAccess.READ_WRITE) - var timeline_text :String = timeline_file.get_as_text() + var timeline_text: String = timeline_file.get_as_text() var timeline_events := timeline_text.split('\n') timeline_file.close() @@ -343,7 +343,7 @@ func update_indicator() -> void: func close() -> void: - var item :TreeItem = %ChangeTree.get_root() + var item: TreeItem = %ChangeTree.get_root() if item: while item.get_next_visible(): item = item.get_next_visible() diff --git a/addons/dialogic/Editor/Common/hint_tooltip_icon.gd b/addons/dialogic/Editor/Common/hint_tooltip_icon.gd index dd720e0..702fe98 100644 --- a/addons/dialogic/Editor/Common/hint_tooltip_icon.gd +++ b/addons/dialogic/Editor/Common/hint_tooltip_icon.gd @@ -1,7 +1,7 @@ @tool extends TextureRect -@export_multiline var hint_text = "" +@export_multiline var hint_text := "" func _ready() -> void: if owner and owner.get_parent() is SubViewport: diff --git a/addons/dialogic/Editor/Common/reference_manager_window.gd b/addons/dialogic/Editor/Common/reference_manager_window.gd index 98ba42a..7bb42ec 100644 --- a/addons/dialogic/Editor/Common/reference_manager_window.gd +++ b/addons/dialogic/Editor/Common/reference_manager_window.gd @@ -10,7 +10,7 @@ extends Window enum Where {EVERYWHERE, BY_CHARACTER, TEXTS_ONLY} enum Types {TEXT, VARIABLE, PORTRAIT, CHARACTER_NAME, TIMELINE_NAME} -var icon_button :Button = null +var icon_button: Button = null func _ready() -> void: @@ -31,7 +31,7 @@ func _ready() -> void: icon_button.add_child(dot) - var old_changes :Array = DialogicUtil.get_editor_setting('reference_changes', []) + var old_changes: Array = DialogicUtil.get_editor_setting('reference_changes', []) if !old_changes.is_empty(): broken_manager.reference_changes = old_changes diff --git a/addons/dialogic/Editor/Common/sidebar.gd b/addons/dialogic/Editor/Common/sidebar.gd index a862745..1d7c43e 100644 --- a/addons/dialogic/Editor/Common/sidebar.gd +++ b/addons/dialogic/Editor/Common/sidebar.gd @@ -7,7 +7,7 @@ signal file_activated(file_path) signal content_item_activated(item_name) -@onready var editors_manager = get_parent().get_parent() +@onready var editors_manager: Node = get_parent().get_parent() func _ready() -> void: @@ -40,6 +40,8 @@ func _ready() -> void: %RightClickMenu.clear() %RightClickMenu.add_icon_item(get_theme_icon("Remove", "EditorIcons"), "Remove From List", 1) %RightClickMenu.add_separator() + %RightClickMenu.add_icon_item(get_theme_icon("ActionCopy", "EditorIcons"), "Copy Identifier", 4) + %RightClickMenu.add_separator() %RightClickMenu.add_icon_item(get_theme_icon("Filesystem", "EditorIcons"), "Show in FileSystem", 2) %RightClickMenu.add_icon_item(get_theme_icon("ExternalLink", "EditorIcons"), "Open in External Program", 3) @@ -62,7 +64,7 @@ func clean_resource_list(resources_list:Array = []) -> PackedStringArray: func update_resource_list(resources_list:PackedStringArray = []) -> void: - var filter :String = %Search.text + var filter: String = %Search.text var current_file := "" if editors_manager.current_editor and editors_manager.current_editor.current_resource: current_file = editors_manager.current_editor.current_resource.resource_path @@ -99,6 +101,7 @@ func update_resource_list(resources_list:PackedStringArray = []) -> void: if filter.is_empty() or filter.to_lower() in timeline_name.to_lower(): %ResourcesList.add_item(timeline_name, get_theme_icon("TripleBar", "EditorIcons")) %ResourcesList.set_item_metadata(idx, timeline_directory[timeline_name]) + %ResourcesList.set_item_tooltip(idx, timeline_directory[timeline_name]) if timeline_directory[timeline_name] == current_file: %ResourcesList.select(idx) %ResourcesList.set_item_custom_fg_color(idx, get_theme_color("accent_color", "Editor")) @@ -185,3 +188,5 @@ func _on_right_click_menu_id_pressed(id:int) -> void: EditorInterface.get_file_system_dock().navigate_to_path(%ResourcesList.get_item_metadata(%RightClickMenu.get_meta("item_index"))) 3: # OPEN IN EXTERNAL EDITOR OS.shell_open(ProjectSettings.globalize_path(%ResourcesList.get_item_metadata(%RightClickMenu.get_meta("item_index")))) + 4: + DisplayServer.clipboard_set(DialogicResourceUtil.get_unique_identifier(%ResourcesList.get_item_metadata(%RightClickMenu.get_meta("item_index")))) diff --git a/addons/dialogic/Editor/Common/unique_identifiers_manager.gd b/addons/dialogic/Editor/Common/unique_identifiers_manager.gd index 28a4735..fc7c993 100644 --- a/addons/dialogic/Editor/Common/unique_identifiers_manager.gd +++ b/addons/dialogic/Editor/Common/unique_identifiers_manager.gd @@ -48,7 +48,7 @@ func fill_table() -> void: func _on_identifier_table_item_edited() -> void: var item: TreeItem = %IdentifierTable.get_edited() - var new_identifier : String = item.get_text(1) + var new_identifier: String = item.get_text(1) if new_identifier == item.get_metadata(1): diff --git a/addons/dialogic/Editor/Common/update_install_window.gd b/addons/dialogic/Editor/Common/update_install_window.gd index c759b35..f018287 100644 --- a/addons/dialogic/Editor/Common/update_install_window.gd +++ b/addons/dialogic/Editor/Common/update_install_window.gd @@ -1,7 +1,7 @@ @tool extends Control -var current_info : Dictionary = {} +var current_info := {} @onready var editor_view := find_parent('EditorView') diff --git a/addons/dialogic/Editor/Common/update_manager.gd b/addons/dialogic/Editor/Common/update_manager.gd index b1fb5e3..36a116e 100644 --- a/addons/dialogic/Editor/Common/update_manager.gd +++ b/addons/dialogic/Editor/Common/update_manager.gd @@ -11,13 +11,13 @@ enum DownloadResult {SUCCESS, FAILURE} enum ReleaseState {ALPHA, BETA, STABLE} const REMOTE_RELEASES_URL := "https://api.github.com/repos/dialogic-godot/dialogic/releases" -const TEMP_FILE_NAME = "user://temp.zip" +const TEMP_FILE_NAME := "user://temp.zip" -var current_version : String = "" +var current_version := "" var update_info: Dictionary var current_info: Dictionary -var version_indicator :Button +var version_indicator: Button func _ready() -> void: request_update_check() @@ -43,14 +43,14 @@ func _on_UpdateCheck_request_completed(result:int, response_code:int, headers:Pa return # Work out the next version from the releases information on GitHub - var response :Variant= JSON.parse_string(body.get_string_from_utf8()) + var response: Variant = JSON.parse_string(body.get_string_from_utf8()) if typeof(response) != TYPE_ARRAY: return var current_release_info := get_release_tag_info(get_current_version()) # GitHub releases are in order of creation, not order of version - var versions :Array = (response as Array).filter(compare_versions.bind(current_release_info)) + var versions: Array = (response as Array).filter(compare_versions.bind(current_release_info)) if versions.size() > 0: update_info = versions[0] update_check_completed.emit(UpdateCheckResult.UPDATE_AVAILABLE) @@ -92,13 +92,13 @@ func get_release_tag_info(release_tag:String) -> Dictionary: release_tag = release_tag.substr(0, release_tag.find('(')) release_tag = release_tag.to_lower() - var regex := RegEx.create_from_string('(?\\d+\\.\\d+)(-(?alpha|beta)-)?(?(2)(?\\d*)|\\.(?\\d*))?') + var regex := RegEx.create_from_string(r"(?\d+\.\d+)(-(?alpha|beta)-)?(?(2)(?\d*)|\.(?\d*))?") var result: RegExMatch = regex.search(release_tag) if !result: return {} - var info:Dictionary = {'tag':release_tag} + var info: Dictionary = {'tag':release_tag} info['major'] = float(result.get_string('major')) info['minor'] = int(result.get_string('minor')) @@ -141,7 +141,7 @@ func _on_DownloadRequest_completed(result:int, response_code:int, headers:Packed zip_reader.open(TEMP_FILE_NAME) var files: PackedStringArray = zip_reader.get_files() - var base_path = files[0].path_join('addons/') + var base_path: String = files[0].path_join('addons/') for path in files: if not "dialogic/" in path: continue @@ -169,7 +169,7 @@ func setup_version_indicator() -> void: func _on_update_check_completed(result:int): - var result_color : Color + var result_color: Color match result: UpdateCheckResult.UPDATE_AVAILABLE: result_color = version_indicator.get_theme_color("warning_color", "Editor") diff --git a/addons/dialogic/Editor/Events/EventBlock/event_block.gd b/addons/dialogic/Editor/Events/EventBlock/event_block.gd index e3f8509..f5c39d3 100644 --- a/addons/dialogic/Editor/Events/EventBlock/event_block.gd +++ b/addons/dialogic/Editor/Events/EventBlock/event_block.gd @@ -6,7 +6,7 @@ extends MarginContainer signal content_changed() ## REFERENCES -var resource : DialogicEvent +var resource: DialogicEvent var editor_reference # for choice and condition var end_node: Node = null: @@ -194,7 +194,7 @@ func build_editor(build_header:bool = true, build_body:bool = false) -> void: ### -------------------------------------------------------------------- ### 1. CREATE A NODE OF THE CORRECT TYPE FOR THE PROPERTY - var editor_node : Control + var editor_node: Control ### LINEBREAK if p.name == "linebreak": @@ -218,6 +218,7 @@ func build_editor(build_header:bool = true, build_body:bool = false) -> void: elif p.field_type == resource.ValueType.BUTTON: editor_node = Button.new() editor_node.text = p.display_info.text + editor_node.tooltip_text = p.display_info.get('tooltip', '') if typeof(p.display_info.icon) == TYPE_ARRAY: editor_node.icon = callv('get_theme_icon', p.display_info.icon) else: @@ -323,6 +324,8 @@ func recalculate_field_visibility() -> void: else: if _evaluate_visibility_condition(p): if p.node != null: + if p.node.visible == false and p.has("property"): + p.node._set_value(resource.get(p.property)) p.node.show() if p.location == 1: has_any_enabled_body_content = true @@ -373,7 +376,7 @@ func _on_resource_ui_update_needed() -> void: func _on_collapse_toggled(toggled:bool) -> void: collapsed = toggled - var timeline_editor = find_parent('VisualEditor') + var timeline_editor: Node = find_parent('VisualEditor') if (timeline_editor != null): # @todo select item and clear selection is marked as "private" in TimelineEditor.gd # consider to make it "public" or add a public helper function @@ -407,7 +410,7 @@ func _on_EventNode_gui_input(event:InputEvent) -> void: # For opening the context menu if event is InputEventMouseButton: if event.button_index == MOUSE_BUTTON_RIGHT and event.pressed: - var popup :PopupMenu = get_parent().get_parent().get_node('EventPopupMenu') + var popup: PopupMenu = get_parent().get_parent().get_node('EventPopupMenu') popup.current_event = self popup.popup_on_parent(Rect2(get_global_mouse_position(),Vector2())) if resource.help_page_path == "": diff --git a/addons/dialogic/Editor/Events/EventBlock/event_right_click_menu.gd b/addons/dialogic/Editor/Events/EventBlock/event_right_click_menu.gd index 16b0883..0b765f6 100644 --- a/addons/dialogic/Editor/Events/EventBlock/event_right_click_menu.gd +++ b/addons/dialogic/Editor/Events/EventBlock/event_right_click_menu.gd @@ -1,7 +1,7 @@ @tool extends PopupMenu -var current_event : Node = null +var current_event: Node = null func _ready() -> void: clear() diff --git a/addons/dialogic/Editor/Events/Fields/array_part.gd b/addons/dialogic/Editor/Events/Fields/array_part.gd index 97352d8..20c7c72 100644 --- a/addons/dialogic/Editor/Events/Fields/array_part.gd +++ b/addons/dialogic/Editor/Events/Fields/array_part.gd @@ -11,138 +11,18 @@ var value_type: int = -1 var current_value: Variant func _ready() -> void: - %ValueType.options = [{ - 'label': 'String', - 'icon': ["String", "EditorIcons"], - 'value': TYPE_STRING - },{ - 'label': 'Number (int)', - 'icon': ["int", "EditorIcons"], - 'value': TYPE_INT - },{ - 'label': 'Number (float)', - 'icon': ["float", "EditorIcons"], - 'value': TYPE_FLOAT - },{ - 'label': 'Boolean', - 'icon': ["bool", "EditorIcons"], - 'value': TYPE_BOOL - },{ - 'label': 'Expression', - 'icon': ["Variant", "EditorIcons"], - 'value': TYPE_MAX - } - ] - %ValueType.symbol_only = true - %ValueType.value_changed.connect(_on_type_changed.bind()) - %ValueType.tooltip_text = "Change type" - + %FlexValue.value_changed.connect(emit_signal.bind("value_changed")) %Delete.icon = get_theme_icon("Remove", "EditorIcons") func set_value(value:Variant): - change_field_type(deduce_type(value)) - %ValueType.set_value(deduce_type(value)) - current_value = value - match value_type: - TYPE_BOOL: - value_field.button_pressed = value - TYPE_STRING: - value_field.text = value - TYPE_FLOAT, TYPE_INT: - value_field.set_value(value) - TYPE_MAX, _: - value_field.text = value.trim_prefix('@') - - -func deduce_type(value:Variant) -> int: - if value is String and value.begins_with('@'): - return TYPE_MAX - else: - return typeof(value) - - -func _on_type_changed(prop:String, type:Variant) -> void: - if type == value_type: - return - - match type: - TYPE_BOOL: - if typeof(current_value) == TYPE_STRING: - current_value = DialogicUtil.str_to_bool(current_value) - elif value_type == TYPE_FLOAT or value_type == TYPE_INT: - current_value = bool(current_value) - else: - current_value = true if current_value else false - set_value(current_value) - TYPE_STRING: - current_value = str(current_value).trim_prefix('@') - set_value(current_value) - TYPE_FLOAT, TYPE_INT: - current_value = float(current_value) - set_value(current_value) - TYPE_MAX,_: - current_value = var_to_str(current_value) - set_value('@'+current_value) - - - emit_signal.call_deferred('value_changed') + %FlexValue.set_value(value) func get_value() -> Variant: - return current_value + return %FlexValue.current_value func _on_delete_pressed() -> void: queue_free() value_changed.emit() - - -func change_field_type(type:int) -> void: - if type == value_type: - return - - value_type = type - - if value_field: - value_field.queue_free() - match type: - TYPE_BOOL: - value_field = CheckBox.new() - value_field.toggled.connect(_on_bool_toggled) - TYPE_STRING: - value_field = LineEdit.new() - value_field.text_changed.connect(_on_str_text_changed) - value_field.expand_to_text_length = true - TYPE_FLOAT, TYPE_INT: - value_field = load("res://addons/dialogic/Editor/Events/Fields/field_number.tscn").instantiate() - if type == TYPE_FLOAT: - value_field.use_float_mode() - else: - value_field.use_int_mode() - value_field.value_changed.connect(_on_number_value_changed.bind(type == TYPE_INT)) - TYPE_MAX, _: - value_field = LineEdit.new() - value_field.expand_to_text_length = true - value_field.text_changed.connect(_on_expression_changed) - $Value.add_child(value_field) - $Value.move_child(value_field, 1) - -func _on_bool_toggled(value:bool) -> void: - current_value = value - value_changed.emit() - -func _on_str_text_changed(value:String) -> void: - current_value = value - value_changed.emit() - -func _on_expression_changed(value:String) -> void: - current_value = '@'+value - value_changed.emit() - -func _on_number_value_changed(prop:String, value:float, int := false) -> void: - if int: - current_value = int(value) - else: - current_value = value - value_changed.emit() diff --git a/addons/dialogic/Editor/Events/Fields/array_part.tscn b/addons/dialogic/Editor/Events/Fields/array_part.tscn index 72ae7eb..7ec2d25 100644 --- a/addons/dialogic/Editor/Events/Fields/array_part.tscn +++ b/addons/dialogic/Editor/Events/Fields/array_part.tscn @@ -1,26 +1,9 @@ -[gd_scene load_steps=7 format=3 uid="uid://ch4j2lesn1sis"] +[gd_scene load_steps=5 format=3 uid="uid://ch4j2lesn1sis"] [ext_resource type="Script" path="res://addons/dialogic/Editor/Events/Fields/array_part.gd" id="1"] -[ext_resource type="Theme" uid="uid://d3g4i4dshtdpu" path="res://addons/dialogic/Editor/Events/styles/InputFieldsStyle.tres" id="2"] -[ext_resource type="PackedScene" uid="uid://d3bhehatwoio" path="res://addons/dialogic/Editor/Events/Fields/field_options_fixed.tscn" id="3_otpho"] - -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_fe32l"] -content_margin_left = 2.0 -content_margin_top = 2.0 -content_margin_right = 2.0 -content_margin_bottom = 2.0 -draw_center = false -border_width_left = 1 -border_width_top = 1 -border_width_right = 1 -border_width_bottom = 1 -border_color = Color(0.282353, 0.486275, 0.458824, 1) -corner_radius_top_left = 4 -corner_radius_top_right = 4 -corner_radius_bottom_right = 4 -corner_radius_bottom_left = 4 - -[sub_resource type="Image" id="Image_sbk5s"] +[ext_resource type="PackedScene" uid="uid://dl08ubinx6ugu" path="res://addons/dialogic/Editor/Events/Fields/field_flex_value.tscn" id="3_s4j7i"] + +[sub_resource type="Image" id="Image_dcsrk"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -29,30 +12,28 @@ data = { "width": 16 } -[sub_resource type="ImageTexture" id="ImageTexture_16rly"] -image = SubResource("Image_sbk5s") +[sub_resource type="ImageTexture" id="ImageTexture_cpbga"] +image = SubResource("Image_dcsrk") [node name="ArrayValue" type="PanelContainer"] offset_left = 2.0 offset_right = 76.0 offset_bottom = 24.0 -theme_override_styles/panel = SubResource("StyleBoxFlat_fe32l") +theme_type_variation = &"DialogicEventEditGroup" script = ExtResource("1") [node name="Value" type="HBoxContainer" parent="."] layout_mode = 2 -theme = ExtResource("2") -[node name="ValueType" parent="Value" instance=ExtResource("3_otpho")] +[node name="FlexValue" parent="Value" instance=ExtResource("3_s4j7i")] unique_name_in_owner = true layout_mode = 2 -tooltip_text = "Change type" -text = "" [node name="Delete" type="Button" parent="Value"] unique_name_in_owner = true layout_mode = 2 -icon = SubResource("ImageTexture_16rly") +tooltip_text = "Remove" +icon = SubResource("ImageTexture_cpbga") flat = true [connection signal="pressed" from="Value/Delete" to="." method="_on_delete_pressed"] diff --git a/addons/dialogic/Editor/Events/Fields/dictionary_part.gd b/addons/dialogic/Editor/Events/Fields/dictionary_part.gd index f6a7277..7c28572 100644 --- a/addons/dialogic/Editor/Events/Fields/dictionary_part.gd +++ b/addons/dialogic/Editor/Events/Fields/dictionary_part.gd @@ -1,39 +1,44 @@ @tool -extends HBoxContainer +extends PanelContainer -## Event block field part for the Array field. +## Event block field part for the Dictionary field. signal value_changed() func set_key(value:String) -> void: - $Key.text = str(value) + %Key.text = str(value) func get_key() -> String: - return $Key.text + return %Key.text -func set_value(value:String): - $Value.text = str(value) +func set_value(value:Variant) -> void: + %FlexValue.set_value(value) -func get_value() -> String: - return $Value.text +func get_value() -> Variant: + return %FlexValue.current_value func _ready() -> void: - $Delete.icon = get_theme_icon("Remove", "EditorIcons") + %Delete.icon = get_theme_icon("Remove", "EditorIcons") -func _on_Delete_pressed() -> void: - queue_free() +func focus_key() -> void: + %Key.grab_focus() + + +func _on_key_text_changed(new_text: String) -> void: value_changed.emit() -func _on_Key_text_changed(new_text:String) -> void: +func _on_flex_value_value_changed() -> void: value_changed.emit() -func _on_Value_text_changed(new_text:String) -> void: +func _on_delete_pressed() -> void: + queue_free() value_changed.emit() + diff --git a/addons/dialogic/Editor/Events/Fields/dictionary_part.tscn b/addons/dialogic/Editor/Events/Fields/dictionary_part.tscn index aa012bb..dc1f961 100644 --- a/addons/dialogic/Editor/Events/Fields/dictionary_part.tscn +++ b/addons/dialogic/Editor/Events/Fields/dictionary_part.tscn @@ -1,9 +1,9 @@ [gd_scene load_steps=5 format=3 uid="uid://b27yweami3mxi"] -[ext_resource type="Theme" uid="uid://d3g4i4dshtdpu" path="res://addons/dialogic/Editor/Events/styles/InputFieldsStyle.tres" id="1_4ehmb"] [ext_resource type="Script" path="res://addons/dialogic/Editor/Events/Fields/dictionary_part.gd" id="2_q88pg"] +[ext_resource type="PackedScene" uid="uid://dl08ubinx6ugu" path="res://addons/dialogic/Editor/Events/Fields/field_flex_value.tscn" id="3_p082d"] -[sub_resource type="Image" id="Image_esvau"] +[sub_resource type="Image" id="Image_dcsrk"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -12,27 +12,43 @@ data = { "width": 16 } -[sub_resource type="ImageTexture" id="ImageTexture_bywig"] -image = SubResource("Image_esvau") +[sub_resource type="ImageTexture" id="ImageTexture_cpbga"] +image = SubResource("Image_dcsrk") -[node name="Value" type="HBoxContainer"] -theme = ExtResource("1_4ehmb") +[node name="DictionaryPart" type="PanelContainer"] +offset_left = 1.0 +offset_top = -1.0 +offset_right = 131.0 +offset_bottom = 32.0 +theme_type_variation = &"DialogicEventEditGroup" script = ExtResource("2_q88pg") -[node name="Key" type="LineEdit" parent="."] +[node name="HBox" type="HBoxContainer" parent="."] layout_mode = 2 -size_flags_horizontal = 3 -expand_to_text_length = true -[node name="Value" type="LineEdit" parent="."] +[node name="Key" type="LineEdit" parent="HBox"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 +theme_type_variation = &"DialogicEventEdit" expand_to_text_length = true +select_all_on_focus = true + +[node name="Label" type="Label" parent="HBox"] +layout_mode = 2 +text = ":" + +[node name="FlexValue" parent="HBox" instance=ExtResource("3_p082d")] +unique_name_in_owner = true +layout_mode = 2 -[node name="Delete" type="Button" parent="."] +[node name="Delete" type="Button" parent="HBox"] +unique_name_in_owner = true layout_mode = 2 -icon = SubResource("ImageTexture_bywig") +tooltip_text = "Remove" +icon = SubResource("ImageTexture_cpbga") +flat = true -[connection signal="text_changed" from="Key" to="." method="_on_Key_text_changed"] -[connection signal="text_changed" from="Value" to="." method="_on_Value_text_changed"] -[connection signal="pressed" from="Delete" to="." method="_on_Delete_pressed"] +[connection signal="text_changed" from="HBox/Key" to="." method="_on_key_text_changed"] +[connection signal="value_changed" from="HBox/FlexValue" to="." method="_on_flex_value_value_changed"] +[connection signal="pressed" from="HBox/Delete" to="." method="_on_delete_pressed"] diff --git a/addons/dialogic/Editor/Events/Fields/field_array.gd b/addons/dialogic/Editor/Events/Fields/field_array.gd index 0f5793d..301ade5 100644 --- a/addons/dialogic/Editor/Events/Fields/field_array.gd +++ b/addons/dialogic/Editor/Events/Fields/field_array.gd @@ -39,7 +39,7 @@ func recalculate_values() -> void: func _on_AddButton_pressed() -> void: - var x :Control = load(ArrayValue).instantiate() + var x: Control = load(ArrayValue).instantiate() add_child(x) x.set_value("") x.value_changed.connect(recalculate_values) diff --git a/addons/dialogic/Editor/Events/Fields/field_array.tscn b/addons/dialogic/Editor/Events/Fields/field_array.tscn index 7cffed1..ff5ac6c 100644 --- a/addons/dialogic/Editor/Events/Fields/field_array.tscn +++ b/addons/dialogic/Editor/Events/Fields/field_array.tscn @@ -2,7 +2,7 @@ [ext_resource type="Script" path="res://addons/dialogic/Editor/Events/Fields/field_array.gd" id="2"] -[sub_resource type="Image" id="Image_u0aqk"] +[sub_resource type="Image" id="Image_dcsrk"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -11,8 +11,8 @@ data = { "width": 16 } -[sub_resource type="ImageTexture" id="ImageTexture_7iwuk"] -image = SubResource("Image_u0aqk") +[sub_resource type="ImageTexture" id="ImageTexture_cpbga"] +image = SubResource("Image_dcsrk") [node name="Field_Array" type="HFlowContainer"] offset_right = 329.0 @@ -23,5 +23,6 @@ script = ExtResource("2") [node name="Add" type="Button" parent="."] unique_name_in_owner = true layout_mode = 2 -tooltip_text = "Add another value" -icon = SubResource("ImageTexture_7iwuk") +tooltip_text = "Add value" +icon = SubResource("ImageTexture_cpbga") +flat = true diff --git a/addons/dialogic/Editor/Events/Fields/field_condition.gd b/addons/dialogic/Editor/Events/Fields/field_condition.gd index 84819d7..db40270 100644 --- a/addons/dialogic/Editor/Events/Fields/field_condition.gd +++ b/addons/dialogic/Editor/Events/Fields/field_condition.gd @@ -3,8 +3,8 @@ extends DialogicVisualEditorField ## Event block field for displaying conditions in either a simple or complex way. -var _current_value1 :Variant = "" -var _current_value2 :Variant = "" +var _current_value1: Variant = "" +var _current_value2: Variant = "" #region MAIN METHODS ################################################################################ @@ -96,7 +96,7 @@ func value_type_changed(property:String, value_type:int, value_name:String) -> v get_node('%'+value_name+'Text').hide() get_node('%'+value_name+'Number').hide() get_node('%'+value_name+'Bool').hide() - var current_val :Variant = "" + var current_val: Variant = "" if '1' in value_name: current_val = _current_value1 else: @@ -237,7 +237,7 @@ func _on_complex_editor_text_changed(new_text:String) -> void: func get_variable_suggestions(filter:String) -> Dictionary: var suggestions := {} - var vars :Dictionary= ProjectSettings.get_setting('dialogic/variables', {}) + var vars: Dictionary = ProjectSettings.get_setting('dialogic/variables', {}) for var_path in DialogicUtil.list_variables(vars): suggestions[var_path] = {'value':var_path, 'editor_icon':["ClassList", "EditorIcons"]} return suggestions diff --git a/addons/dialogic/Editor/Events/Fields/field_condition.tscn b/addons/dialogic/Editor/Events/Fields/field_condition.tscn index ea515f7..8024c5b 100644 --- a/addons/dialogic/Editor/Events/Fields/field_condition.tscn +++ b/addons/dialogic/Editor/Events/Fields/field_condition.tscn @@ -7,7 +7,7 @@ [ext_resource type="PackedScene" uid="uid://dm5hxmhyyxgq" path="res://addons/dialogic/Editor/Events/Fields/field_bool_check.tscn" id="5_1x02a"] [ext_resource type="PackedScene" uid="uid://dpwhshre1n4t6" path="res://addons/dialogic/Editor/Events/Fields/field_options_dynamic.tscn" id="6_5a2xd"] -[sub_resource type="Image" id="Image_cgfp5"] +[sub_resource type="Image" id="Image_je1w7"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -16,8 +16,8 @@ data = { "width": 16 } -[sub_resource type="ImageTexture" id="ImageTexture_4jujf"] -image = SubResource("Image_cgfp5") +[sub_resource type="ImageTexture" id="ImageTexture_81s3d"] +image = SubResource("Image_je1w7") [node name="Field_Condition" type="HBoxContainer"] offset_right = 77.0 @@ -94,7 +94,7 @@ unique_name_in_owner = true layout_mode = 2 tooltip_text = "Use complex expression" toggle_mode = true -icon = SubResource("ImageTexture_4jujf") +icon = SubResource("ImageTexture_81s3d") [connection signal="value_changed" from="SimpleEditor/Value1Variable" to="." method="_on_value_1_variable_value_changed"] [connection signal="text_changed" from="ComplexEditor" to="." method="_on_complex_editor_text_changed"] diff --git a/addons/dialogic/Editor/Events/Fields/field_dictionary.gd b/addons/dialogic/Editor/Events/Fields/field_dictionary.gd index 6b496a7..f76ef27 100644 --- a/addons/dialogic/Editor/Events/Fields/field_dictionary.gd +++ b/addons/dialogic/Editor/Events/Fields/field_dictionary.gd @@ -1,42 +1,40 @@ @tool extends DialogicVisualEditorField -## Event block field for editing arrays. +## Event block field for editing dictionaries. -const PairValue = "res://addons/dialogic/Editor/Events/Fields/dictionary_part.tscn" +const DictionaryValue = "res://addons/dialogic/Editor/Events/Fields/dictionary_part.tscn" func _ready() -> void: %Add.icon = get_theme_icon("Add", "EditorIcons") func _set_value(value:Variant) -> void: - for child in %Values.get_children(): - child.queue_free() + for child in get_children(): + if child != %Add: + child.queue_free() - var dict : Dictionary + var dict: Dictionary # attempt to take dictionary values, create a fresh one if not possible if typeof(value) == TYPE_DICTIONARY: dict = value elif typeof(value) == TYPE_STRING: if value.begins_with('{'): - var result = JSON.parse_string(value) + var result: Variant = JSON.parse_string(value) if result != null: dict = result as Dictionary - else: - dict = Dictionary() - else: - dict = Dictionary() var keys := dict.keys() var values := dict.values() for index in dict.size(): - var x :Node = load(PairValue).instantiate() - %Values.add_child(x) - x.set_key(keys[index]) + var x: Node = load(DictionaryValue).instantiate() + add_child(x) x.set_value(values[index]) + x.set_key(keys[index]) x.value_changed.connect(recalculate_values) + move_child(%Add, -1) func _on_value_changed(value:Variant) -> void: @@ -45,16 +43,18 @@ func _on_value_changed(value:Variant) -> void: func recalculate_values() -> void: var dict := {} - for child in %Values.get_children(): - if !child.is_queued_for_deletion(): + for child in get_children(): + if child != %Add and !child.is_queued_for_deletion(): dict[child.get_key()] = child.get_value() _on_value_changed(dict) func _on_AddButton_pressed() -> void: - var x :Control = load(PairValue).instantiate() - %Values.add_child(x) + var x: Control = load(DictionaryValue).instantiate() + add_child(x) x.set_key("") x.set_value("") x.value_changed.connect(recalculate_values) + x.focus_key() recalculate_values() + move_child(%Add, -1) diff --git a/addons/dialogic/Editor/Events/Fields/field_dictionary.tscn b/addons/dialogic/Editor/Events/Fields/field_dictionary.tscn index 3bcaa11..c5c73e9 100644 --- a/addons/dialogic/Editor/Events/Fields/field_dictionary.tscn +++ b/addons/dialogic/Editor/Events/Fields/field_dictionary.tscn @@ -1,9 +1,8 @@ -[gd_scene load_steps=5 format=3 uid="uid://c74bnmhefu72w"] +[gd_scene load_steps=4 format=3 uid="uid://c74bnmhefu72w"] [ext_resource type="Script" path="res://addons/dialogic/Editor/Events/Fields/field_dictionary.gd" id="1_p4kmu"] -[ext_resource type="PackedScene" uid="uid://b27yweami3mxi" path="res://addons/dialogic/Editor/Events/Fields/dictionary_part.tscn" id="2_fg1gy"] -[sub_resource type="Image" id="Image_5s534"] +[sub_resource type="Image" id="Image_dcsrk"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -12,35 +11,18 @@ data = { "width": 16 } -[sub_resource type="ImageTexture" id="ImageTexture_bnwpy"] -image = SubResource("Image_5s534") +[sub_resource type="ImageTexture" id="ImageTexture_cpbga"] +image = SubResource("Image_dcsrk") -[node name="Pairs" type="VBoxContainer"] -script = ExtResource("1_p4kmu") - -[node name="Editing" type="HBoxContainer" parent="."] -layout_mode = 2 -size_flags_horizontal = 3 -alignment = 2 - -[node name="LeftText" type="Label" parent="Editing"] -unique_name_in_owner = true -layout_mode = 2 +[node name="Field_Dictionary" type="HFlowContainer"] size_flags_horizontal = 3 +script = ExtResource("1_p4kmu") -[node name="Add" type="Button" parent="Editing"] -unique_name_in_owner = true -layout_mode = 2 -icon = SubResource("ImageTexture_bnwpy") - -[node name="Values" type="VBoxContainer" parent="."] +[node name="Add" type="Button" parent="."] unique_name_in_owner = true layout_mode = 2 +tooltip_text = "Add key-value pair" +icon = SubResource("ImageTexture_cpbga") +flat = true -[node name="Value" parent="Values" instance=ExtResource("2_fg1gy")] -layout_mode = 2 - -[node name="Value2" parent="Values" instance=ExtResource("2_fg1gy")] -layout_mode = 2 - -[connection signal="pressed" from="Editing/Add" to="." method="_on_AddButton_pressed"] +[connection signal="pressed" from="Add" to="." method="_on_AddButton_pressed"] diff --git a/addons/dialogic/Editor/Events/Fields/field_file.gd b/addons/dialogic/Editor/Events/Fields/field_file.gd index 6e00d87..1227dfa 100644 --- a/addons/dialogic/Editor/Events/Fields/field_file.gd +++ b/addons/dialogic/Editor/Events/Fields/field_file.gd @@ -8,8 +8,8 @@ extends DialogicVisualEditorField @export var file_filter := "" @export var placeholder := "" -@export var file_mode : EditorFileDialog.FileMode = EditorFileDialog.FILE_MODE_OPEN_FILE -var resource_icon:Texture: +@export var file_mode: EditorFileDialog.FileMode = EditorFileDialog.FILE_MODE_OPEN_FILE +var resource_icon: Texture: get: return resource_icon set(new_icon): @@ -21,8 +21,8 @@ var resource_icon:Texture: %Field.theme_type_variation = "LineEditWithIcon" var max_width := 200 -var current_value : String -var hide_reset:bool = false +var current_value: String +var hide_reset := false #endregion diff --git a/addons/dialogic/Editor/Events/Fields/field_file.tscn b/addons/dialogic/Editor/Events/Fields/field_file.tscn index c0e51da..8b47de7 100644 --- a/addons/dialogic/Editor/Events/Fields/field_file.tscn +++ b/addons/dialogic/Editor/Events/Fields/field_file.tscn @@ -8,7 +8,7 @@ [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_6b7on"] -[sub_resource type="Image" id="Image_kg01j"] +[sub_resource type="Image" id="Image_bpoe1"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -17,10 +17,10 @@ data = { "width": 16 } -[sub_resource type="ImageTexture" id="ImageTexture_j8aof"] -image = SubResource("Image_kg01j") +[sub_resource type="ImageTexture" id="ImageTexture_dkuon"] +image = SubResource("Image_bpoe1") -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_raavq"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_yv1pn"] content_margin_left = 4.0 content_margin_top = 4.0 content_margin_right = 4.0 @@ -67,20 +67,20 @@ expand_to_text_length = true [node name="OpenButton" type="Button" parent="BG/HBox"] unique_name_in_owner = true layout_mode = 2 -icon = SubResource("ImageTexture_j8aof") +icon = SubResource("ImageTexture_dkuon") flat = true [node name="ClearButton" type="Button" parent="BG/HBox"] unique_name_in_owner = true layout_mode = 2 -icon = SubResource("ImageTexture_j8aof") +icon = SubResource("ImageTexture_dkuon") flat = true [node name="FocusStyle" type="Panel" parent="."] visible = false layout_mode = 2 mouse_filter = 2 -theme_override_styles/panel = SubResource("StyleBoxFlat_raavq") +theme_override_styles/panel = SubResource("StyleBoxFlat_yv1pn") [connection signal="focus_entered" from="BG/HBox/Field" to="." method="_on_field_focus_entered"] [connection signal="focus_exited" from="BG/HBox/Field" to="." method="_on_field_focus_exited"] diff --git a/addons/dialogic/Editor/Events/Fields/field_flex_value.gd b/addons/dialogic/Editor/Events/Fields/field_flex_value.gd new file mode 100644 index 0000000..be7a98d --- /dev/null +++ b/addons/dialogic/Editor/Events/Fields/field_flex_value.gd @@ -0,0 +1,154 @@ +@tool +extends HBoxContainer + +## Event block field part for a value that can change type. + +signal value_changed + +var value_field: Node +var value_type: int = -1 + +var current_value: Variant + +func _ready() -> void: + %ValueType.options = [{ + 'label': 'String', + 'icon': ["String", "EditorIcons"], + 'value': TYPE_STRING + },{ + 'label': 'Number (int)', + 'icon': ["int", "EditorIcons"], + 'value': TYPE_INT + },{ + 'label': 'Number (float)', + 'icon': ["float", "EditorIcons"], + 'value': TYPE_FLOAT + },{ + 'label': 'Boolean', + 'icon': ["bool", "EditorIcons"], + 'value': TYPE_BOOL + },{ + 'label': 'Expression', + 'icon': ["Variant", "EditorIcons"], + 'value': TYPE_MAX + } + ] + %ValueType.symbol_only = true + %ValueType.value_changed.connect(_on_type_changed.bind()) + %ValueType.tooltip_text = "Change type" + + +func set_value(value:Variant): + change_field_type(deduce_type(value)) + %ValueType.set_value(deduce_type(value)) + current_value = value + match value_type: + TYPE_BOOL: + value_field.button_pressed = value + TYPE_STRING: + value_field.text = value + TYPE_FLOAT, TYPE_INT: + value_field.set_value(value) + TYPE_MAX, _: + value_field.text = value.trim_prefix('@') + + +func deduce_type(value:Variant) -> int: + if value is String and value.begins_with('@'): + return TYPE_MAX + else: + return typeof(value) + + +func _on_type_changed(prop:String, type:Variant) -> void: + if type == value_type: + return + + match type: + TYPE_BOOL: + if typeof(current_value) == TYPE_STRING: + current_value = DialogicUtil.str_to_bool(current_value) + elif value_type == TYPE_FLOAT or value_type == TYPE_INT: + current_value = bool(current_value) + else: + current_value = true if current_value else false + set_value(current_value) + TYPE_STRING: + current_value = str(current_value).trim_prefix('@') + set_value(current_value) + TYPE_FLOAT: + current_value = float(current_value) + set_value(current_value) + TYPE_INT: + current_value = int(current_value) + set_value(current_value) + TYPE_MAX,_: + current_value = var_to_str(current_value) + set_value('@'+current_value) + + + emit_signal.call_deferred('value_changed') + + +func get_value() -> Variant: + return current_value + + +func _on_delete_pressed() -> void: + queue_free() + value_changed.emit() + + +func change_field_type(type:int) -> void: + if type == value_type: + return + + value_type = type + + if value_field: + value_field.queue_free() + match type: + TYPE_BOOL: + value_field = CheckBox.new() + value_field.toggled.connect(_on_bool_toggled) + TYPE_STRING: + value_field = LineEdit.new() + value_field.theme_type_variation = "DialogicEventEdit" + value_field.text_changed.connect(_on_str_text_changed) + value_field.expand_to_text_length = true + TYPE_FLOAT, TYPE_INT: + value_field = load("res://addons/dialogic/Editor/Events/Fields/field_number.tscn").instantiate() + if type == TYPE_FLOAT: + value_field.use_float_mode() + else: + value_field.use_int_mode() + value_field.value_changed.connect(_on_number_value_changed.bind(type == TYPE_INT)) + TYPE_MAX, _: + value_field = LineEdit.new() + value_field.expand_to_text_length = true + value_field.text_changed.connect(_on_expression_changed) + add_child(value_field) + move_child(value_field, 1) + + +func _on_bool_toggled(value:bool) -> void: + current_value = value + value_changed.emit() + + +func _on_str_text_changed(value:String) -> void: + current_value = value + value_changed.emit() + + +func _on_expression_changed(value:String) -> void: + current_value = '@'+value + value_changed.emit() + + +func _on_number_value_changed(prop:String, value:float, int := false) -> void: + if int: + current_value = int(value) + else: + current_value = value + value_changed.emit() diff --git a/addons/dialogic/Editor/Events/Fields/field_flex_value.tscn b/addons/dialogic/Editor/Events/Fields/field_flex_value.tscn new file mode 100644 index 0000000..2d46186 --- /dev/null +++ b/addons/dialogic/Editor/Events/Fields/field_flex_value.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=3 format=3 uid="uid://dl08ubinx6ugu"] + +[ext_resource type="Script" path="res://addons/dialogic/Editor/Events/Fields/field_flex_value.gd" id="1_m5nnp"] +[ext_resource type="PackedScene" uid="uid://d3bhehatwoio" path="res://addons/dialogic/Editor/Events/Fields/field_options_fixed.tscn" id="3_h10fc"] + +[node name="FlexValue" type="HBoxContainer"] +offset_right = 65.0 +offset_bottom = 22.0 +script = ExtResource("1_m5nnp") + +[node name="ValueType" parent="." instance=ExtResource("3_h10fc")] +unique_name_in_owner = true +layout_mode = 2 +tooltip_text = "Change type" +text = "" diff --git a/addons/dialogic/Editor/Events/Fields/field_number.gd b/addons/dialogic/Editor/Events/Fields/field_number.gd index b139da2..30d50eb 100644 --- a/addons/dialogic/Editor/Events/Fields/field_number.gd +++ b/addons/dialogic/Editor/Events/Fields/field_number.gd @@ -4,11 +4,11 @@ extends DialogicVisualEditorField ## Event block field for integers and floats. Improved version of the native spinbox. -@export var allow_string : bool = false +@export var allow_string: bool = false @export var step: float = 0.1 @export var enforce_step: bool = true -@export var min: float = 0 -@export var max: float= 999 +@export var min: float = -INF +@export var max: float = INF @export var value = 0.0 @export var prefix: String = "" @export var suffix: String = "" @@ -24,7 +24,6 @@ func _ready() -> void: update_prefix(prefix) update_suffix(suffix) - $Value_Panel.add_theme_stylebox_override('panel', get_theme_stylebox('panel', 'DialogicEventEdit')) func _load_display_info(info: Dictionary) -> void: @@ -157,6 +156,8 @@ func _on_decrement_button_down(button: NodePath) -> void: func _on_value_text_submitted(new_text: String, no_signal:= false) -> void: + if new_text.is_empty() and not allow_string: + new_text = "0.0" if new_text.is_valid_float(): var temp: float = min(max(new_text.to_float(), min), max) if !enforce_step: diff --git a/addons/dialogic/Editor/Events/Fields/field_number.tscn b/addons/dialogic/Editor/Events/Fields/field_number.tscn index bc4a8f2..5053a87 100644 --- a/addons/dialogic/Editor/Events/Fields/field_number.tscn +++ b/addons/dialogic/Editor/Events/Fields/field_number.tscn @@ -40,10 +40,10 @@ grow_horizontal = 2 grow_vertical = 2 theme_override_constants/separation = 0 script = ExtResource("1_0jdnn") -prefix = null [node name="Value_Panel" type="PanelContainer" parent="."] layout_mode = 2 +theme_type_variation = &"DialogicEventEdit" [node name="Layout" type="HBoxContainer" parent="Value_Panel"] layout_mode = 2 @@ -106,26 +106,17 @@ shortcut_keys_enabled = false drag_and_drop_selection_enabled = false text_direction = 1 -[node name="HBoxContainer" type="HBoxContainer" parent="Value_Panel/Layout"] -layout_mode = 2 -theme_override_constants/separation = 0 - -[node name="Spacer" type="MarginContainer" parent="Value_Panel/Layout/HBoxContainer"] -layout_mode = 2 -mouse_filter = 2 -theme_override_constants/margin_right = 1 - -[node name="Spin" type="VBoxContainer" parent="Value_Panel/Layout/HBoxContainer"] +[node name="Spin" type="VBoxContainer" parent="Value_Panel/Layout"] unique_name_in_owner = true layout_mode = 2 theme_override_constants/separation = 0 alignment = 1 -[node name="Increment" type="Button" parent="Value_Panel/Layout/HBoxContainer/Spin"] +[node name="Increment" type="Button" parent="Value_Panel/Layout/Spin"] layout_mode = 2 size_flags_vertical = 3 auto_translate = false -focus_neighbor_left = NodePath("../../../Value") +focus_neighbor_left = NodePath("../../Value") focus_neighbor_top = NodePath(".") focus_neighbor_bottom = NodePath("../Decrement") theme_override_colors/icon_hover_color = Color(0.412738, 0.550094, 0.760917, 1) @@ -139,11 +130,11 @@ icon = ExtResource("3_v5cne") flat = true vertical_icon_alignment = 2 -[node name="Decrement" type="Button" parent="Value_Panel/Layout/HBoxContainer/Spin"] +[node name="Decrement" type="Button" parent="Value_Panel/Layout/Spin"] layout_mode = 2 size_flags_vertical = 3 auto_translate = false -focus_neighbor_left = NodePath("../../../Value") +focus_neighbor_left = NodePath("../../Value") focus_neighbor_top = NodePath("../Increment") focus_neighbor_bottom = NodePath(".") theme_override_colors/icon_hover_color = Color(0.412738, 0.550094, 0.760917, 1) @@ -157,17 +148,13 @@ icon = ExtResource("4_ph52o") flat = true vertical_icon_alignment = 2 -[node name="Spacer" type="Control" parent="."] -custom_minimum_size = Vector2(3, 0) -layout_mode = 2 - [connection signal="gui_input" from="Value_Panel/Layout/Prefix" to="." method="_on_sublabel_clicked"] [connection signal="focus_entered" from="Value_Panel/Layout/Value" to="." method="_on_value_focus_entered"] [connection signal="focus_exited" from="Value_Panel/Layout/Value" to="." method="_on_value_focus_exited"] [connection signal="gui_input" from="Value_Panel/Layout/Value" to="." method="_on_gui_input"] [connection signal="text_submitted" from="Value_Panel/Layout/Value" to="." method="_on_value_text_submitted"] [connection signal="gui_input" from="Value_Panel/Layout/Suffix" to="." method="_on_sublabel_clicked"] -[connection signal="button_down" from="Value_Panel/Layout/HBoxContainer/Spin/Increment" to="." method="_on_increment_button_down" binds= [NodePath("%Spin/Increment")]] -[connection signal="gui_input" from="Value_Panel/Layout/HBoxContainer/Spin/Increment" to="." method="_on_gui_input"] -[connection signal="button_down" from="Value_Panel/Layout/HBoxContainer/Spin/Decrement" to="." method="_on_decrement_button_down" binds= [NodePath("%Spin/Decrement")]] -[connection signal="gui_input" from="Value_Panel/Layout/HBoxContainer/Spin/Decrement" to="." method="_on_gui_input"] +[connection signal="button_down" from="Value_Panel/Layout/Spin/Increment" to="." method="_on_increment_button_down" binds= [NodePath("%Spin/Increment")]] +[connection signal="gui_input" from="Value_Panel/Layout/Spin/Increment" to="." method="_on_gui_input"] +[connection signal="button_down" from="Value_Panel/Layout/Spin/Decrement" to="." method="_on_decrement_button_down" binds= [NodePath("%Spin/Decrement")]] +[connection signal="gui_input" from="Value_Panel/Layout/Spin/Decrement" to="." method="_on_gui_input"] diff --git a/addons/dialogic/Editor/Events/Fields/field_options_dynamic.gd b/addons/dialogic/Editor/Events/Fields/field_options_dynamic.gd index ee7c25c..7ca7391 100644 --- a/addons/dialogic/Editor/Events/Fields/field_options_dynamic.gd +++ b/addons/dialogic/Editor/Events/Fields/field_options_dynamic.gd @@ -127,8 +127,8 @@ func _on_Search_text_changed(new_text:String, just_update:bool = false) -> void: var suggestions: Dictionary = get_suggestions_func.call(new_text) - var line_length = 0 - var idx: int = 0 + var line_length := 0 + var idx := 0 for element in suggestions: if new_text.is_empty() or new_text.to_lower() in element.to_lower() or new_text.to_lower() in str(suggestions[element].value).to_lower() or new_text.to_lower() in suggestions[element].get('tooltip', '').to_lower(): var curr_line_length: int = 0 diff --git a/addons/dialogic/Editor/Events/Fields/field_options_fixed.gd b/addons/dialogic/Editor/Events/Fields/field_options_fixed.gd index 0b379f5..3f7efb2 100644 --- a/addons/dialogic/Editor/Events/Fields/field_options_fixed.gd +++ b/addons/dialogic/Editor/Events/Fields/field_options_fixed.gd @@ -3,7 +3,7 @@ extends DialogicVisualEditorField ## Event block field for constant options. For varying options use ComplexPicker. -var options : Array = [] +var options: Array = [] ## if true, only the symbol will be displayed. In the dropdown text will be visible. ## Useful for making UI simpler diff --git a/addons/dialogic/Editor/Events/Fields/field_text_singleline.gd b/addons/dialogic/Editor/Events/Fields/field_text_singleline.gd index 6f83ae1..765f862 100644 --- a/addons/dialogic/Editor/Events/Fields/field_text_singleline.gd +++ b/addons/dialogic/Editor/Events/Fields/field_text_singleline.gd @@ -4,7 +4,7 @@ extends DialogicVisualEditorField ## Event block field for a single line of text. -var placeholder :String= "": +var placeholder := "": set(value): placeholder = value self.placeholder_text = placeholder diff --git a/addons/dialogic/Editor/HomePage/home_page.gd b/addons/dialogic/Editor/HomePage/home_page.gd index ab2b90d..15aff25 100644 --- a/addons/dialogic/Editor/HomePage/home_page.gd +++ b/addons/dialogic/Editor/HomePage/home_page.gd @@ -3,7 +3,7 @@ extends DialogicEditor ## A Main page in the dialogic editor. -var tips : Array = [] +var tips: Array = [] @@ -44,7 +44,7 @@ func _open(extra_info:Variant="") -> void: tips = tips.filter(func(item): return !item.is_empty()) randomize() - var tip :String = tips[randi()%len(tips)] + var tip: String = tips[randi()%len(tips)] var text := tip.get_slice(';',0).strip_edges() var action := tip.get_slice(';',1).strip_edges() if action == text: diff --git a/addons/dialogic/Editor/HomePage/home_page.tscn b/addons/dialogic/Editor/HomePage/home_page.tscn index a7733f2..0272d34 100644 --- a/addons/dialogic/Editor/HomePage/home_page.tscn +++ b/addons/dialogic/Editor/HomePage/home_page.tscn @@ -102,7 +102,7 @@ corner_radius_top_right = 5 corner_radius_bottom_right = 5 corner_radius_bottom_left = 5 -[sub_resource type="Image" id="Image_ubn0t"] +[sub_resource type="Image" id="Image_e1dkh"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -111,8 +111,8 @@ data = { "width": 16 } -[sub_resource type="ImageTexture" id="ImageTexture_jsefb"] -image = SubResource("Image_ubn0t") +[sub_resource type="ImageTexture" id="ImageTexture_sr7s6"] +image = SubResource("Image_e1dkh") [node name="HomePage" type="TextureRect"] self_modulate = Color(0, 0, 0, 0.2) @@ -234,7 +234,7 @@ modulate = Color(1, 1, 1, 0.501961) layout_mode = 2 size_flags_vertical = 8 theme_override_font_sizes/font_size = 10 -text = "2.0-Alpha-13 (Godot 4.2+)" +text = "2.0-Alpha-15 WIP (Godot 4.2+)" horizontal_alignment = 2 [node name="ScrollContainer" type="ScrollContainer" parent="CenterContainer/HomePageBox/BottomPanel"] @@ -305,7 +305,7 @@ layout_mode = 2 theme_type_variation = &"DialogicLink" text = " Donate" underline = 2 -uri = "https://www.patreon.com/coppolaemilio" +uri = "https://www.patreon.com/JowanSpooner" [node name="CenterContainer2" type="VBoxContainer" parent="CenterContainer/HomePageBox/BottomPanel/ScrollContainer/HBoxContainer"] layout_mode = 2 @@ -369,5 +369,5 @@ grow_vertical = 0 tooltip_text = "Check it out!" theme_override_styles/normal = SubResource("StyleBoxFlat_ckyhx") theme_override_styles/hover = SubResource("StyleBoxFlat_l1doy") -icon = SubResource("ImageTexture_jsefb") +icon = SubResource("ImageTexture_sr7s6") expand_icon = true diff --git a/addons/dialogic/Editor/HomePage/tips.txt b/addons/dialogic/Editor/HomePage/tips.txt index c8b6f07..4ca5ec7 100644 --- a/addons/dialogic/Editor/HomePage/tips.txt +++ b/addons/dialogic/Editor/HomePage/tips.txt @@ -4,8 +4,8 @@ If there are events you never need, you can hide them from the list in the edito Did you know that dialogic supports translations? It does!; editor://Settings->Translations You can use [b]bbcode effects[/b] in text events! What are they though???; https://docs.godotengine.org/en/latest/tutorials/ui/bbcode_in_richtextlabel.html Writing [/i][i] in a text event will pick a random one of the three strings! -There are a number of cool text effects like [pause=x], [speed=x] and [portrait=x]. Try them out!; editor://Settings->Text -You can use scenes as portraits! This gives you basically limiteless freedom.; https://dialogic-docs.coppolaemilio.com/custom-portraits.html +There are a number of cool text effects like [pause=x], [speed=x] and [portrait=x]. Try them out!; +You can use scenes as portraits! This gives you basically limitless freedom.; https://dialogic-docs.coppolaemilio.com/custom-portraits.html You can use scenes as backgrounds. This way they can be animated or whatever you want! Dialogic has a built in save and load system! It's pretty powerful!; editor://Settings->Saving You can add multiple glossary files, each containing words that can be hovered for information!; editor://GlossaryEditor diff --git a/addons/dialogic/Editor/Settings/settings_editor.gd b/addons/dialogic/Editor/Settings/settings_editor.gd index ef938d3..3d87c4a 100644 --- a/addons/dialogic/Editor/Settings/settings_editor.gd +++ b/addons/dialogic/Editor/Settings/settings_editor.gd @@ -4,7 +4,7 @@ extends DialogicEditor ## Editor that contains all settings var button_group := ButtonGroup.new() -var registered_sections :Array[DialogicSettingsPage] = [] +var registered_sections: Array[DialogicSettingsPage] = [] func _get_title() -> String: @@ -38,7 +38,7 @@ func _ready() -> void: func register_settings_section(path:String) -> void: - var section :Control = load(path).instantiate() + var section: Control = load(path).instantiate() registered_sections.append(section) @@ -71,7 +71,7 @@ func add_registered_sections() -> void: if !section.short_info.is_empty(): - var tooltip_hint :Control = load("res://addons/dialogic/Editor/Common/hint_tooltip_icon.tscn").instantiate() + var tooltip_hint: Control = load("res://addons/dialogic/Editor/Common/hint_tooltip_icon.tscn").instantiate() tooltip_hint.hint_text = section.short_info hbox.add_child(tooltip_hint) @@ -91,7 +91,7 @@ func add_registered_sections() -> void: inner_vbox.add_child(panel) - var info_section :Control = section._get_info_section() + var info_section: Control = section._get_info_section() if info_section != null: inner_vbox.add_child(Control.new()) inner_vbox.get_child(-1).custom_minimum_size.y = 50 diff --git a/addons/dialogic/Editor/Settings/settings_general.gd b/addons/dialogic/Editor/Settings/settings_general.gd index 371b521..07500c4 100644 --- a/addons/dialogic/Editor/Settings/settings_general.gd +++ b/addons/dialogic/Editor/Settings/settings_general.gd @@ -41,11 +41,11 @@ func _refresh() -> void: %SectionList.create_item() var cached_events := DialogicResourceUtil.get_event_cache() var sections := [] - var section_order :Array = DialogicUtil.get_editor_setting('event_section_order', ['Main', 'Logic', 'Flow', 'Audio', 'Visuals','Other', 'Helper']) + var section_order: Array = DialogicUtil.get_editor_setting('event_section_order', ['Main', 'Logic', 'Flow', 'Audio', 'Visuals','Other', 'Helper']) for ev in cached_events: if !ev.event_category in sections: sections.append(ev.event_category) - var item :TreeItem = %SectionList.create_item(null) + var item: TreeItem = %SectionList.create_item(null) item.set_text(0, ev.event_category) item.add_button(0, get_theme_icon("ArrowUp", "EditorIcons")) item.add_button(0, get_theme_icon("ArrowDown", "EditorIcons")) @@ -140,13 +140,13 @@ func _on_submit_extension_button_pressed() -> void: if %NameEdit.text.is_empty(): return - var extensions_folder :String = ProjectSettings.get_setting('dialogic/extensions_folder', 'res://addons/dialogic_additions') + var extensions_folder: String = ProjectSettings.get_setting('dialogic/extensions_folder', 'res://addons/dialogic_additions') extensions_folder = extensions_folder.path_join(%NameEdit.text.to_pascal_case()) DirAccess.make_dir_recursive_absolute(extensions_folder) - var mode :int= %ExtensionMode.selected + var mode: int = %ExtensionMode.selected - var file : FileAccess + var file: FileAccess var indexer_content := "@tool\nextends DialogicIndexer\n\n" if mode != 1: # don't add event in Subsystem Only mode indexer_content += """func _get_events() -> Array: diff --git a/addons/dialogic/Editor/Settings/settings_modules.gd b/addons/dialogic/Editor/Settings/settings_modules.gd index 8c9625f..008453e 100644 --- a/addons/dialogic/Editor/Settings/settings_modules.gd +++ b/addons/dialogic/Editor/Settings/settings_modules.gd @@ -37,6 +37,8 @@ func _refresh() -> void: func _on_refresh_pressed() -> void: + DialogicUtil.get_indexers(true, true) + DialogicResourceUtil.update_event_cache() load_modules_tree() @@ -61,7 +63,7 @@ func _on_search_text_changed(new_text:String) -> void: filter.text = "" filter.set_meta("counter", 0) - var hidden_events :Array= DialogicUtil.get_editor_setting('hidden_event_buttons', []) + var hidden_events: Array = DialogicUtil.get_editor_setting('hidden_event_buttons', []) for child in %Tree.get_root().get_children(): if new_text.to_lower() in child.get_text(0).to_lower() or new_text.is_empty(): @@ -86,7 +88,7 @@ func _on_search_text_changed(new_text:String) -> void: if sub_child.visible: child.add_button(0, sub_child.get_icon(0), counter, false, sub_child.get_text(0)) if sub_child.get_metadata(0) and sub_child.get_metadata(0)['type'] == 'Event' and sub_child.get_metadata(0)['hidden']: - var color : Color = sub_child.get_icon_modulate(0) + var color: Color = sub_child.get_icon_modulate(0) color.a = 0.5 child.set_button_color(0, counter, color) else: @@ -99,12 +101,12 @@ func _on_search_text_changed(new_text:String) -> void: func load_modules_tree() -> void: %Tree.clear() - var root :TreeItem = %Tree.create_item() + var root: TreeItem = %Tree.create_item() var cached_events := DialogicResourceUtil.get_event_cache() var hidden_events: Array = DialogicUtil.get_editor_setting('hidden_event_buttons', []) var indexers := DialogicUtil.get_indexers() for i in indexers: - var module_item :TreeItem = %Tree.create_item(root) + var module_item: TreeItem = %Tree.create_item(root) module_item.set_text(0, i.get_script().resource_path.trim_suffix('/index.gd').get_file()) module_item.set_metadata(0, {'type':'Module'}) @@ -112,13 +114,13 @@ func load_modules_tree() -> void: for ev in i._get_events(): if not ResourceLoader.exists(ev): continue - var event_item : TreeItem = %Tree.create_item(module_item) + var event_item: TreeItem = %Tree.create_item(module_item) event_item.set_icon(0, get_theme_icon("Favorites", "EditorIcons")) for cached_event in cached_events: if cached_event.get_script().resource_path == ev: event_item.set_text(0, cached_event.event_name + " Event") event_item.set_icon_modulate(0, cached_event.event_color) - var hidden :bool = cached_event.event_name in hidden_events + var hidden: bool = cached_event.event_name in hidden_events event_item.set_metadata(0, {'type':'Event', 'event':cached_event, 'hidden':hidden}) event_item.add_button(0, get_theme_icon("GuiVisibilityVisible", "EditorIcons"), 0, false, "Toggle Event Button Visibility") if hidden: @@ -128,7 +130,7 @@ func load_modules_tree() -> void: # Subsystems for subsys in i._get_subsystems(): - var subsys_item : TreeItem = %Tree.create_item(module_item) + var subsys_item: TreeItem = %Tree.create_item(module_item) subsys_item.set_icon(0, get_theme_icon("Callable", "EditorIcons")) subsys_item.set_text(0, subsys.name + " Subsystem") subsys_item.set_icon_modulate(0, get_theme_color("readonly_color", "Editor")) @@ -138,7 +140,7 @@ func load_modules_tree() -> void: # Style scenes for style in i._get_layout_parts(): - var style_item : TreeItem = %Tree.create_item(module_item) + var style_item: TreeItem = %Tree.create_item(module_item) style_item.set_icon(0, get_theme_icon("PopupMenu", "EditorIcons")) style_item.set_text(0, style.name) style_item.set_icon_modulate(0, get_theme_color("property_color_x", "Editor")) @@ -148,7 +150,7 @@ func load_modules_tree() -> void: # Text Effects for effect in i._get_text_effects(): - var effect_item : TreeItem = %Tree.create_item(module_item) + var effect_item: TreeItem = %Tree.create_item(module_item) effect_item.set_icon(0, get_theme_icon("RichTextEffect", "EditorIcons")) effect_item.set_text(0, "Text effect ["+effect.command+"]") effect_item.set_icon_modulate(0, get_theme_color("property_color_z", "Editor")) @@ -158,7 +160,7 @@ func load_modules_tree() -> void: # Text Modifiers for mod in i._get_text_modifiers(): - var mod_item : TreeItem = %Tree.create_item(module_item) + var mod_item: TreeItem = %Tree.create_item(module_item) mod_item.set_icon(0, get_theme_icon("RichTextEffect", "EditorIcons")) mod_item.set_text(0, mod.method.capitalize()) mod_item.set_icon_modulate(0, get_theme_color("property_color_z", "Editor")) @@ -168,7 +170,7 @@ func load_modules_tree() -> void: # Settings for settings in i._get_settings_pages(): - var settings_item : TreeItem = %Tree.create_item(module_item) + var settings_item: TreeItem = %Tree.create_item(module_item) settings_item.set_icon(0, get_theme_icon("PluginScript", "EditorIcons")) settings_item.set_text(0, module_item.get_text(0) + " Settings") settings_item.set_icon_modulate(0, get_theme_color("readonly_color", "Editor")) @@ -178,7 +180,7 @@ func load_modules_tree() -> void: # Editors for editor in i._get_editors(): - var editor_item : TreeItem = %Tree.create_item(module_item) + var editor_item: TreeItem = %Tree.create_item(module_item) editor_item.set_icon(0, get_theme_icon("ConfirmationDialog", "EditorIcons")) editor_item.set_text(0, editor.get_file().trim_suffix('.tscn').capitalize()) editor_item.set_icon_modulate(0, get_theme_color("readonly_color", "Editor")) @@ -200,7 +202,7 @@ func _on_tree_button_clicked(item:TreeItem, column:int, id:int, mouse_button_ind 'Event': # Visibility item clicked if id == 0: - var meta :Dictionary= item.get_metadata(0) + var meta: Dictionary= item.get_metadata(0) if meta['hidden']: item.set_button(0, 0, get_theme_icon("GuiVisibilityVisible", "EditorIcons")) item.get_parent().set_button_color(0, item.get_index(), item.get_icon_modulate(0)) @@ -208,7 +210,7 @@ func _on_tree_button_clicked(item:TreeItem, column:int, id:int, mouse_button_ind %VisibilityToggle.button_pressed = true else: item.set_button(0, 0, get_theme_icon("GuiVisibilityHidden", "EditorIcons")) - var color : Color = item.get_icon_modulate(0) + var color: Color = item.get_icon_modulate(0) color.a = 0.5 item.get_parent().set_button_color(0, item.get_index(), color) if item == %Tree.get_selected(): @@ -219,9 +221,9 @@ func _on_tree_button_clicked(item:TreeItem, column:int, id:int, mouse_button_ind func _on_tree_item_selected() -> void: - var selected_item :TreeItem = %Tree.get_selected() + var selected_item: TreeItem = %Tree.get_selected() - var metadata :Variant = selected_item.get_metadata(0) + var metadata: Variant = selected_item.get_metadata(0) %Title.text = selected_item.get_text(0) %EventDefaultsPanel.hide() @@ -279,7 +281,7 @@ func _on_external_link_pressed() -> void: func change_event_visibility(event:DialogicEvent, visibility:bool) -> void: if event: - var list :Array= DialogicUtil.get_editor_setting('hidden_event_buttons', []) + var list: Array= DialogicUtil.get_editor_setting('hidden_event_buttons', []) if visibility: list.erase(event.event_name) else: @@ -298,7 +300,7 @@ func _on_visibility_toggle_toggled(button_pressed:bool) -> void: else: %VisibilityToggle.icon = get_theme_icon("GuiVisibilityHidden", "EditorIcons") %Tree.get_selected().set_button(0, 0, get_theme_icon("GuiVisibilityHidden", "EditorIcons")) - var color : Color = %Tree.get_selected().get_icon_modulate(0) + var color: Color = %Tree.get_selected().get_icon_modulate(0) color.a = 0.5 %Tree.get_selected().get_parent().set_button_color(0, %Tree.get_selected().get_index(), color) @@ -314,21 +316,27 @@ func load_event_settings(event:DialogicEvent) -> void: for child in %EventDefaults.get_children(): child.queue_free() - var event_default_overrides :Dictionary = ProjectSettings.get_setting('dialogic/event_default_overrides', {}) + var event_default_overrides: Dictionary = ProjectSettings.get_setting('dialogic/event_default_overrides', {}) var params := event.get_shortcode_parameters() for prop in params: + var current_value: Variant = params[prop].default + if event_default_overrides.get(event.event_name, {}).has(params[prop].property): + current_value = event_default_overrides.get(event.event_name, {}).get(params[prop].property) + # Label var label := Label.new() label.text = prop.capitalize() %EventDefaults.add_child(label) - # Editing field - var editor_node :Node = null - var current_value :Variant = params[prop].default - if event_default_overrides.get(event.event_name, {}).has(params[prop].property): - current_value = event_default_overrides.get(event.event_name, {}).get(params[prop].property) + var reset := Button.new() + reset.icon = get_theme_icon("Clear", "EditorIcons") + reset.flat = true + + %EventDefaults.add_child(reset) + # Editing field + var editor_node: Node = null match typeof(event.get(params[prop].property)): TYPE_STRING: editor_node = LineEdit.new() @@ -356,7 +364,7 @@ func load_event_settings(event:DialogicEvent) -> void: editor_node.value_changed.connect(_on_event_default_number_changed.bind(params[prop].property)) TYPE_VECTOR2: - editor_node = load("res://addons/dialogic/Editor/Events/Fields/Vector2.tscn").instantiate() + editor_node = load("res://addons/dialogic/Editor/Events/Fields/field_vector2.tscn").instantiate() editor_node.set_value(current_value) editor_node.property_name = params[prop].property editor_node.value_changed.connect(_on_event_default_value_changed) @@ -367,17 +375,23 @@ func load_event_settings(event:DialogicEvent) -> void: editor_node.toggled.connect(_on_event_default_bool_toggled.bind(params[prop].property)) TYPE_ARRAY: - editor_node = load("res://addons/dialogic/Editor/Events/Fields/Array.tscn").instantiate() + editor_node = load("res://addons/dialogic/Editor/Events/Fields/field_array.tscn").instantiate() editor_node.set_value(current_value) editor_node.property_name = params[prop].property editor_node.value_changed.connect(_on_event_default_value_changed) + TYPE_DICTIONARY: + editor_node = load("res://addons/dialogic/Editor/Events/Fields/field_dictionary.tscn").instantiate() + editor_node.set_value(current_value) + editor_node.property_name = params[prop].property + editor_node.value_changed.connect(_on_event_default_value_changed) %EventDefaults.add_child(editor_node) + reset.pressed.connect(reset_event_default_override.bind(prop, editor_node, params[prop].default)) func set_event_default_override(prop:String, value:Variant) -> void: - var event_default_overrides :Dictionary = ProjectSettings.get_setting('dialogic/event_default_overrides', {}) - var event :DialogicEvent = %Tree.get_selected().get_metadata(0).event + var event_default_overrides: Dictionary = ProjectSettings.get_setting('dialogic/event_default_overrides', {}) + var event: DialogicEvent = %Tree.get_selected().get_metadata(0).event if not event_default_overrides.has(event.event_name): event_default_overrides[event.event_name] = {} @@ -387,6 +401,29 @@ func set_event_default_override(prop:String, value:Variant) -> void: ProjectSettings.set_setting('dialogic/event_default_overrides', event_default_overrides) +func reset_event_default_override(prop:String, node:Node, default:Variant) -> void: + var event_default_overrides: Dictionary = ProjectSettings.get_setting('dialogic/event_default_overrides', {}) + var event: DialogicEvent = %Tree.get_selected().get_metadata(0).event + + if not event_default_overrides.has(event.event_name): + return + + event_default_overrides[event.event_name].erase(prop) + + ProjectSettings.set_setting('dialogic/event_default_overrides', event_default_overrides) + + if node is CheckBox: + node.button_pressed = default + elif node is LineEdit: + node.text = default + elif node.has_method('set_value'): + node.set_value(default) + elif node is ColorPickerButton: + node.color = default + elif node is OptionButton: + node.select(default) + elif node is SpinBox: + node.value = default func _on_event_default_string_submitted(text:String, prop:String) -> void: @@ -398,7 +435,7 @@ func _on_event_default_option_selected(index:int, option_button:OptionButton, pr func _on_event_default_number_changed(value:float, prop:String) -> void: set_event_default_override(prop, value) -func _on_event_default_value_changed(prop:String, value:Vector2) -> void: +func _on_event_default_value_changed(prop:String, value:Variant) -> void: set_event_default_override(prop, value) func _on_event_default_bool_toggled(value:bool, prop:String) -> void: diff --git a/addons/dialogic/Editor/Settings/settings_modules.tscn b/addons/dialogic/Editor/Settings/settings_modules.tscn index bd5bf0a..e43a96a 100644 --- a/addons/dialogic/Editor/Settings/settings_modules.tscn +++ b/addons/dialogic/Editor/Settings/settings_modules.tscn @@ -2,7 +2,7 @@ [ext_resource type="Script" path="res://addons/dialogic/Editor/Settings/settings_modules.gd" id="1_l2hk0"] -[sub_resource type="Image" id="Image_pu0o6"] +[sub_resource type="Image" id="Image_570p8"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -12,9 +12,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_lce2m"] -image = SubResource("Image_pu0o6") +image = SubResource("Image_570p8") -[sub_resource type="Image" id="Image_g84xy"] +[sub_resource type="Image" id="Image_ihhvm"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 131, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 131, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 131, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 93, 93, 55, 255, 97, 97, 58, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 97, 97, 42, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 98, 98, 47, 255, 97, 97, 42, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 93, 93, 233, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 94, 94, 46, 255, 93, 93, 236, 255, 93, 93, 233, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -24,7 +24,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_137g7"] -image = SubResource("Image_g84xy") +image = SubResource("Image_ihhvm") [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_315cl"] content_margin_left = 4.0 @@ -213,7 +213,7 @@ text = "Edit event defaults:" [node name="EventDefaults" type="GridContainer" parent="Scroll/Settings/EventDefaultsPanel/VBox"] unique_name_in_owner = true layout_mode = 2 -columns = 2 +columns = 3 [node name="GeneralInfo" type="Label" parent="Scroll/Settings"] unique_name_in_owner = true diff --git a/addons/dialogic/Editor/Settings/settings_translation.gd b/addons/dialogic/Editor/Settings/settings_translation.gd index 59419f0..fe0714e 100644 --- a/addons/dialogic/Editor/Settings/settings_translation.gd +++ b/addons/dialogic/Editor/Settings/settings_translation.gd @@ -8,7 +8,7 @@ enum TranslationModes {PER_PROJECT, PER_TIMELINE, NONE} enum SaveLocationModes {INSIDE_TRANSLATION_FOLDER, NEXT_TO_TIMELINE, NONE} var loading := false -@onready var settings_editor :Control = find_parent('Settings') +@onready var settings_editor: Control = find_parent('Settings') ## The default CSV filename that contains the translations for character ## properties. diff --git a/addons/dialogic/Editor/TimelineEditor/TextEditor/CodeCompletionHelper.gd b/addons/dialogic/Editor/TimelineEditor/TextEditor/CodeCompletionHelper.gd index 400b9a7..a23382b 100644 --- a/addons/dialogic/Editor/TimelineEditor/TextEditor/CodeCompletionHelper.gd +++ b/addons/dialogic/Editor/TimelineEditor/TextEditor/CodeCompletionHelper.gd @@ -15,17 +15,20 @@ var completion_word_regex := RegEx.new() var completion_shortcode_getter_regex := RegEx.new() # To find the parameter name of the current if typing a value var completion_shortcode_param_getter_regex := RegEx.new() +# To find the value of a paramater that is being typed +var completion_shortcode_value_regex := RegEx.new() # Stores references to all shortcode events for parameter and value suggestions var shortcode_events := {} var custom_syntax_events := [] -var text_event :DialogicTextEvent = null +var text_event: DialogicTextEvent = null func _ready() -> void: # Compile RegEx's completion_word_regex.compile("(?(\\W)|^)(?\\w*)\\x{FFFF}") completion_shortcode_getter_regex.compile("\\[(?\\w*)") completion_shortcode_param_getter_regex.compile("(?\\w*)\\W*=\\s*\"?(\\w|\\s)*"+String.chr(0xFFFF)) + completion_shortcode_value_regex.compile(r'(\[|\s)[^\[\s=]*="(?[^"$]*)'+String.chr(0xFFFF)) text_syntax_highlighter.mode = text_syntax_highlighter.Modes.TEXT_EVENT_ONLY @@ -42,6 +45,11 @@ func get_code_completion_word(text:CodeEdit) -> String: var result := completion_word_regex.search(get_code_completion_line(text)) return result.get_string('word') if result else "" +# Helper that gets the currently typed parameter +func get_code_completion_parameter_value(text:CodeEdit) -> String: + var result := completion_shortcode_value_regex.search(get_code_completion_line(text)) + return result.get_string('value') if result else "" + # Helper that gets the symbol before the current word func get_code_completion_prev_symbol(text:CodeEdit) -> String: @@ -98,8 +106,8 @@ func request_code_completion(force:bool, text:CodeEdit, mode:=Modes.FULL_HIGHLIG # word in option ## Note on VALUE key - # The value key is used to store a potential closing letter for the completion. - # The completion will check if the letter is already present and add it otherwise. + # The value key is used to store a potential closing string for the completion. + # The completion will check if the string is already present and add it otherwise. # Shortcode event suggestions if mode == Modes.FULL_HIGHLIGHTING and syntax_highlighter.line_is_shortcode_event(text.get_caret_line()): @@ -134,7 +142,7 @@ func request_code_completion(force:bool, text:CodeEdit, mode:=Modes.FULL_HIGHLIG text.add_code_completion_option(CodeEdit.KIND_MEMBER, param, param+'="' , shortcode_events[code].event_color.lerp(syntax_highlighter.normal_color, 0.3), text.get_theme_icon("MemberProperty", "EditorIcons")) # suggest values - elif symbol == '=' or symbol == '"' or get_code_completion_prev_symbol(text) == '"': + elif symbol == '=' or symbol == '"': var current_parameter_gex := completion_shortcode_param_getter_regex.search(line) if !current_parameter_gex: text.update_code_completion_options(false) @@ -148,7 +156,7 @@ func request_code_completion(force:bool, text:CodeEdit, mode:=Modes.FULL_HIGHLIG if typeof(shortcode_events[code].get_shortcode_parameters()[current_parameter].default) == TYPE_BOOL: suggest_bool(text, shortcode_events[code].event_color.lerp(syntax_highlighter.normal_color, 0.3)) elif len(word) > 0: - text.add_code_completion_option(CodeEdit.KIND_MEMBER, word, word, shortcode_events[code].event_color.lerp(syntax_highlighter.normal_color, 0.3), text.get_theme_icon("GuiScrollArrowRight", "EditorIcons"), '" ') + text.add_code_completion_option(CodeEdit.KIND_VARIABLE, word, word, shortcode_events[code].event_color.lerp(syntax_highlighter.normal_color, 0.3), text.get_theme_icon("GuiScrollArrowRight", "EditorIcons"), '" ') text.update_code_completion_options(true) return @@ -179,7 +187,7 @@ func request_code_completion(force:bool, text:CodeEdit, mode:=Modes.FULL_HIGHLIG # Helper that adds all characters as options func suggest_characters(text:CodeEdit, type := CodeEdit.KIND_MEMBER, text_event_start:=false) -> void: for character in DialogicResourceUtil.get_character_directory(): - var result :String = character + var result: String = character if " " in character: result = '"'+character+'"' if text_event_start and load(DialogicResourceUtil.get_character_directory()[character]).portraits.is_empty(): @@ -218,16 +226,16 @@ func suggest_variables(text:CodeEdit): # Helper that adds true and false as options func suggest_bool(text:CodeEdit, color:Color): - text.add_code_completion_option(CodeEdit.KIND_MEMBER, 'true', 'true', color, text.get_theme_icon("GuiChecked", "EditorIcons"), '" ') - text.add_code_completion_option(CodeEdit.KIND_MEMBER, 'false', 'false', color, text.get_theme_icon("GuiUnchecked", "EditorIcons"), '" ') + text.add_code_completion_option(CodeEdit.KIND_VARIABLE, 'true', 'true', color, text.get_theme_icon("GuiChecked", "EditorIcons"), '" ') + text.add_code_completion_option(CodeEdit.KIND_VARIABLE, 'false', 'false', color, text.get_theme_icon("GuiUnchecked", "EditorIcons"), '" ') func suggest_custom_suggestions(suggestions:Dictionary, text:CodeEdit, color:Color) -> void: for key in suggestions.keys(): if suggestions[key].has('text_alt'): - text.add_code_completion_option(CodeEdit.KIND_MEMBER, key, suggestions[key].text_alt[0], color, suggestions[key].get('icon', null), '" ') + text.add_code_completion_option(CodeEdit.KIND_VARIABLE, key, suggestions[key].text_alt[0], color, suggestions[key].get('icon', null), '" ') else: - text.add_code_completion_option(CodeEdit.KIND_MEMBER, key, str(suggestions[key].value), color, suggestions[key].get('icon', null), '" ') + text.add_code_completion_option(CodeEdit.KIND_VARIABLE, key, str(suggestions[key].value), color, suggestions[key].get('icon', null), '" ') # Filters the list of all possible options, depending on what was typed @@ -242,6 +250,10 @@ func filter_code_completion_candidates(candidates:Array, text:CodeEdit) -> Array elif candidate.kind == text.KIND_MEMBER: if current_word.is_empty() or current_word.to_lower() in candidate.insert_text.to_lower(): valid_candidates.append(candidate) + elif candidate.kind == text.KIND_VARIABLE: + var current_param_value := get_code_completion_parameter_value(text) + if current_param_value.is_empty() or current_param_value.to_lower() in candidate.insert_text.to_lower(): + valid_candidates.append(candidate) elif candidate.kind == text.KIND_CONSTANT: if current_word.is_empty() or candidate.insert_text.begins_with(current_word): valid_candidates.append(candidate) @@ -255,17 +267,23 @@ func filter_code_completion_candidates(candidates:Array, text:CodeEdit) -> Array # Inserts the selected item func confirm_code_completion(replace:bool, text:CodeEdit) -> void: # Note: I decided to ALWAYS use replace mode, as dialogic is supposed to be beginner friendly - var word := get_code_completion_word(text) + var code_completion := text.get_code_completion_option(text.get_code_completion_selected_index()) + + var word := get_code_completion_word(text) + if code_completion.kind == CodeEdit.KIND_VARIABLE: + word = get_code_completion_parameter_value(text) + text.remove_text(text.get_caret_line(), text.get_caret_column()-len(word), text.get_caret_line(), text.get_caret_column()) text.set_caret_column(text.get_caret_column()-len(word)) - text.insert_text_at_caret(code_completion.insert_text)# + text.insert_text_at_caret(code_completion.insert_text) + if code_completion.has('default_value') and typeof(code_completion['default_value']) == TYPE_STRING: - var next_letter := text.get_line(text.get_caret_line()).substr(text.get_caret_column(), 1) - if next_letter != code_completion['default_value']: - text.insert_text_at_caret(code_completion['default_value']) - else: + var next_letter := text.get_line(text.get_caret_line()).substr(text.get_caret_column(), len(code_completion['default_value'])) + if next_letter == code_completion['default_value'] or next_letter[0] == code_completion['default_value'][0]: text.set_caret_column(text.get_caret_column()+1) + else: + text.insert_text_at_caret(code_completion['default_value']) #endregion diff --git a/addons/dialogic/Editor/TimelineEditor/TextEditor/syntax_highlighter.gd b/addons/dialogic/Editor/TimelineEditor/TextEditor/syntax_highlighter.gd index 0ad74e5..400dbe2 100644 --- a/addons/dialogic/Editor/TimelineEditor/TextEditor/syntax_highlighter.gd +++ b/addons/dialogic/Editor/TimelineEditor/TextEditor/syntax_highlighter.gd @@ -10,24 +10,24 @@ var mode := Modes.FULL_HIGHLIGHTING ## RegEx's var word_regex := RegEx.new() var region_regex := RegEx.new() -var number_regex := RegEx.create_from_string("(\\d|\\.)+") -var shortcode_regex := RegEx.create_from_string("\\W*\\[(?\\w*)(?[^\\]]*)?") -var shortcode_param_regex := RegEx.create_from_string('((?[^\\s=]*)\\s*=\\s*"(?([^=]|\\\\=)*)(?\w*)(?[^\]]*)?") +var shortcode_param_regex := RegEx.create_from_string(r'((?[^\s=]*)\s*=\s*"(?([^=]|\\=)*)(? void: @@ -38,7 +38,7 @@ func _init() -> void: func update_colors() -> void: if not DialogicUtil.get_dialogic_plugin(): return - var editor_settings = DialogicUtil.get_dialogic_plugin().get_editor_interface().get_editor_settings() + var editor_settings: EditorSettings = DialogicUtil.get_dialogic_plugin().get_editor_interface().get_editor_settings() normal_color = editor_settings.get('text_editor/theme/highlighting/text_color') translation_id_color = editor_settings.get('text_editor/theme/highlighting/comment_color') @@ -181,7 +181,7 @@ func color_region(dict:Dictionary, color:Color, line:String, start:String, end:S if end.is_empty(): region_regex.compile("(?[^\n]+)') @@ -61,8 +61,8 @@ func text_timeline_to_array(text:String) -> Array: while idx < len(lines)-1: idx += 1 - var line :String = lines[idx] - var line_stripped :String = line.strip_edges(true, true) + var line: String = lines[idx] + var line_stripped: String = line.strip_edges(true, true) events.append(line) return events @@ -188,7 +188,7 @@ func _on_update_timer_timeout() -> void: func update_content_list() -> void: - var labels :PackedStringArray = [] + var labels: PackedStringArray = [] for i in label_regex.search_all(text): labels.append(i.get_string('name')) timeline_editor.editors_manager.sidebar.update_content_list(labels) diff --git a/addons/dialogic/Editor/TimelineEditor/VisualEditor/AddEventButton.gd b/addons/dialogic/Editor/TimelineEditor/VisualEditor/AddEventButton.gd index 02c0a50..7318bd4 100644 --- a/addons/dialogic/Editor/TimelineEditor/VisualEditor/AddEventButton.gd +++ b/addons/dialogic/Editor/TimelineEditor/VisualEditor/AddEventButton.gd @@ -1,23 +1,23 @@ @tool extends Button -@export var visible_name:String = "" -@export var event_id:String = '' -@export var event_icon:Texture : +@export var visible_name := "" +@export var event_id := "" +@export var event_icon: Texture: get: return event_icon set(texture): event_icon = texture icon = event_icon -@export var event_sorting_index:int = 0 -@export var resource:DialogicEvent -@export var dialogic_color_name:String = '' +@export var event_sorting_index: int = 0 +@export var resource: DialogicEvent +@export var dialogic_color_name := "" func _ready() -> void: tooltip_text = visible_name - custom_minimum_size = Vector2(get_theme_font("font", 'Label').get_string_size(text).x+35,30) * DialogicUtil.get_editor_scale() + custom_minimum_size = Vector2(get_theme_font("font", "Label").get_string_size(text).x+35,30) * DialogicUtil.get_editor_scale() add_theme_color_override("font_color", get_theme_color("font_color", "Editor")) add_theme_color_override("font_color_hover", get_theme_color("accent_color", "Editor")) @@ -25,10 +25,10 @@ func _ready() -> void: func apply_base_button_style() -> void: - var nstyle :StyleBoxFlat= get_parent().get_theme_stylebox('normal', 'Button').duplicate() + var nstyle: StyleBoxFlat = get_parent().get_theme_stylebox('normal', 'Button').duplicate() nstyle.border_width_left = 5 * DialogicUtil.get_editor_scale() add_theme_stylebox_override('normal', nstyle) - var hstyle :StyleBoxFlat= get_parent().get_theme_stylebox('hover', 'Button').duplicate() + var hstyle: StyleBoxFlat = get_parent().get_theme_stylebox('hover', 'Button').duplicate() hstyle.border_width_left = 5 * DialogicUtil.get_editor_scale() add_theme_stylebox_override('hover', hstyle) set_color(resource.event_color) diff --git a/addons/dialogic/Editor/TimelineEditor/VisualEditor/TimelineArea.gd b/addons/dialogic/Editor/TimelineEditor/VisualEditor/TimelineArea.gd index c5bf723..0baa46b 100644 --- a/addons/dialogic/Editor/TimelineEditor/VisualEditor/TimelineArea.gd +++ b/addons/dialogic/Editor/TimelineEditor/VisualEditor/TimelineArea.gd @@ -7,8 +7,8 @@ extends ScrollContainer enum DragTypes {NOTHING, NEW_EVENT, EXISTING_EVENTS} -var drag_type : DragTypes = DragTypes.NOTHING -var drag_data : Variant +var drag_type: DragTypes = DragTypes.NOTHING +var drag_data: Variant var drag_to_position := 0 var dragging := false @@ -82,7 +82,7 @@ func _draw() -> void: ## Draw Event Lines for idx in range($Timeline.get_child_count()): - var block : Control = $Timeline.get_child(idx) + var block: Control = $Timeline.get_child(idx) if not "resource" in block: continue diff --git a/addons/dialogic/Editor/TimelineEditor/VisualEditor/timeline_editor_visual.gd b/addons/dialogic/Editor/TimelineEditor/VisualEditor/timeline_editor_visual.gd index 7f3b8e9..bd350cb 100644 --- a/addons/dialogic/Editor/TimelineEditor/VisualEditor/timeline_editor_visual.gd +++ b/addons/dialogic/Editor/TimelineEditor/VisualEditor/timeline_editor_visual.gd @@ -27,7 +27,7 @@ var _initialized := false ################## TIMELINE EVENT MANAGEMENT ################################### ################################################################################ -var selected_items : Array = [] +var selected_items: Array = [] var drag_allowed := false @@ -112,7 +112,7 @@ func batch_events(array: Array, size: int, batch_number: int) -> Array: var opener_events_stack := [] func load_batch(data:Array) -> void: - var current_batch :Array = _batches.pop_front() + var current_batch: Array = _batches.pop_front() if current_batch: for i in current_batch: if i is DialogicEndBranchEvent: @@ -247,7 +247,7 @@ func load_event_buttons() -> void: sections[event_resource.event_category].move_child(button, button.get_index()-1) # Sort event sections - var sections_order :Array= DialogicUtil.get_editor_setting('event_section_order', + var sections_order: Array = DialogicUtil.get_editor_setting('event_section_order', ['Main', 'Flow', 'Logic', 'Audio', 'Visual','Other', 'Helper']) sections_order.reverse() @@ -320,7 +320,7 @@ func _on_event_block_gui_input(event: InputEvent, item: Node) -> void: ## Activated by TimelineArea drag_completed func _on_timeline_area_drag_completed(type:int, index:int, data:Variant) -> void: if type == %TimelineArea.DragTypes.NEW_EVENT: - var resource :DialogicEvent = data.duplicate() + var resource: DialogicEvent = data.duplicate() resource._load_custom_defaults() add_event_undoable(resource, index) @@ -380,7 +380,7 @@ func add_event_node(event_resource:DialogicEvent, at_index:int = -1, auto_select func create_end_branch_event(at_index:int, parent_node:Node) -> Node: - var end_branch_event :Control = load("res://addons/dialogic/Editor/Events/BranchEnd.tscn").instantiate() + var end_branch_event: Control = load("res://addons/dialogic/Editor/Events/BranchEnd.tscn").instantiate() end_branch_event.resource = DialogicEndBranchEvent.new() end_branch_event.gui_input.connect(_on_event_block_gui_input.bind(end_branch_event)) parent_node.end_node = end_branch_event @@ -474,7 +474,7 @@ func add_events_indexed(indexed_events:Dictionary) -> void: # now create the visual block. deselect_all_items() if event_resource is DialogicEndBranchEvent: - var idx :String = indexed_events[event_idx].trim_prefix('<>') + var idx: String = indexed_events[event_idx].trim_prefix('<>') if idx.begins_with('#'): # a global index events.append(create_end_branch_event(%Timeline.get_child_count(), %Timeline.get_child(int(idx.trim_prefix('#'))))) else: # a local index (index in the added events list) @@ -553,12 +553,12 @@ func copy_selected_events() -> void: func get_clipboard_data() -> Array: - var clipboard_parse :Variant= str_to_var(DisplayServer.clipboard_get()) + var clipboard_parse: Variant = str_to_var(DisplayServer.clipboard_get()) if clipboard_parse is Dictionary: if clipboard_parse.has("project_name"): if clipboard_parse.project_name != ProjectSettings.get_setting("application/config/name"): - print("[D] Be careful when copying from another project!") + print("[Dialogic] Be careful when copying from another project!") if clipboard_parse.has('events'): return clipboard_parse.events return [] @@ -605,7 +605,7 @@ func select_item(item: Node, multi_possible:bool = true) -> void: if len(selected_items) == 0: selected_items = [item] else: - var index :int= selected_items[-1].get_index() + var index: int = selected_items[-1].get_index() var goal_idx := item.get_index() while true: if index < goal_idx: index += 1 @@ -679,7 +679,7 @@ func _add_event_button_pressed(event_resource:DialogicEvent, force_resource := f else: at_index = %Timeline.get_child_count() - var resource :DialogicEvent = null + var resource: DialogicEvent = null if force_resource: resource = event_resource else: @@ -904,7 +904,7 @@ func indent_events() -> void: ################################################################################ func _on_event_popup_menu_index_pressed(index:int) -> void: - var item :Control = %EventPopupMenu.current_event + var item: Control = %EventPopupMenu.current_event if index == 0: if not item in selected_items: selected_items = [item] @@ -1044,7 +1044,7 @@ func _input(event:InputEvent) -> void: get_viewport().set_input_as_handled() ## Some shortcuts should be disabled when writing text. - var focus_owner : Control = get_viewport().gui_get_focus_owner() + var focus_owner: Control = get_viewport().gui_get_focus_owner() if focus_owner is TextEdit or focus_owner is LineEdit or (focus_owner is Button and focus_owner.get_parent_control().name == "Spin"): return @@ -1141,8 +1141,8 @@ func _input(event:InputEvent) -> void: func get_previous_character(double_previous := false) -> DialogicCharacter: - var character :DialogicCharacter = null - var idx :int = %Timeline.get_child_count() + var character: DialogicCharacter = null + var idx: int = %Timeline.get_child_count() if idx == 0: return null if len(selected_items): diff --git a/addons/dialogic/Editor/TimelineEditor/timeline_editor.gd b/addons/dialogic/Editor/TimelineEditor/timeline_editor.gd index ad6ea6b..e5302a7 100644 --- a/addons/dialogic/Editor/TimelineEditor/timeline_editor.gd +++ b/addons/dialogic/Editor/TimelineEditor/timeline_editor.gd @@ -4,8 +4,11 @@ extends DialogicEditor ## Editor that holds both the visual and the text timeline editors. # references -var current_editor_mode: int = 0 # 0 = visal, 1 = text -var play_timeline_button : Button = null +enum EditorMode {VISUAL, TEXT} + +var current_editor_mode := EditorMode.VISUAL +var play_timeline_button: Button = null + ## Overwrite. Register to the editor manager in here. func _register() -> void: @@ -39,11 +42,11 @@ func _register() -> void: current_editor_mode = DialogicUtil.get_editor_setting('timeline_editor_mode', 0) match current_editor_mode: - 0: + EditorMode.VISUAL: %VisualEditor.show() %TextEditor.hide() %SwitchEditorMode.text = "Text Editor" - 1: + EditorMode.TEXT: %VisualEditor.hide() %TextEditor.show() %SwitchEditorMode.text = "Visual Editor" @@ -65,9 +68,9 @@ func _open_resource(resource:Resource) -> void: current_resource = resource current_resource_state = ResourceStates.SAVED match current_editor_mode: - 0: + EditorMode.VISUAL: %VisualEditor.load_timeline(current_resource) - 1: + EditorMode.TEXT: %TextEditor.load_timeline(current_resource) $NoTimelineScreen.hide() %TimelineName.text = DialogicResourceUtil.get_unique_identifier(current_resource.resource_path) @@ -77,9 +80,9 @@ func _open_resource(resource:Resource) -> void: ## If this editor supports editing resources, save them here (overwrite in subclass) func _save() -> void: match current_editor_mode: - 0: + EditorMode.VISUAL: %VisualEditor.save_timeline() - 1: + EditorMode.TEXT: %TextEditor.save_timeline() @@ -102,7 +105,7 @@ func _input(event: InputEvent) -> void: func play_timeline() -> void: _save() - var dialogic_plugin = DialogicUtil.get_dialogic_plugin() + var dialogic_plugin := DialogicUtil.get_dialogic_plugin() # Save the current opened timeline DialogicUtil.set_editor_setting('current_timeline_path', current_resource.resource_path) @@ -113,15 +116,15 @@ func play_timeline() -> void: ## Method to switch from visual to text editor (and vice versa). Connected to the button in the sidebar. func toggle_editor_mode() -> void: match current_editor_mode: - 0: - current_editor_mode = 1 + EditorMode.VISUAL: + current_editor_mode = EditorMode.TEXT %VisualEditor.save_timeline() %VisualEditor.hide() %TextEditor.show() %TextEditor.load_timeline(current_resource) %SwitchEditorMode.text = "Visual Editor" - 1: - current_editor_mode = 0 + EditorMode.TEXT: + current_editor_mode = EditorMode.VISUAL %TextEditor.save_timeline() %TextEditor.hide() %VisualEditor.load_timeline(current_resource) @@ -179,9 +182,9 @@ func _clear() -> void: current_resource = null current_resource_state = ResourceStates.SAVED match current_editor_mode: - 0: + EditorMode.VISUAL: %VisualEditor.clear_timeline_nodes() - 1: + EditorMode.TEXT: %TextEditor.clear_timeline() $NoTimelineScreen.show() play_timeline_button.disabled = true diff --git a/addons/dialogic/Editor/editor_main.gd b/addons/dialogic/Editor/editor_main.gd index f5c60d6..26eca49 100644 --- a/addons/dialogic/Editor/editor_main.gd +++ b/addons/dialogic/Editor/editor_main.gd @@ -15,7 +15,7 @@ func _ready() -> void: ## REFERENCES editors_manager = $EditorsManager - var button :Button = editors_manager.add_icon_button(get_theme_icon("MakeFloating", "EditorIcons"), 'Make floating') + var button: Button = editors_manager.add_icon_button(get_theme_icon("MakeFloating", "EditorIcons"), 'Make floating') button.pressed.connect(toggle_floating_window) # File dialog @@ -86,7 +86,7 @@ func update_theme_additions() -> void: # panel used for example for portrait previews in character editor theme.set_type_variation('DialogicPanelB', 'PanelContainer') - var side_panel :StyleBoxFlat= panel_style.duplicate() + var side_panel: StyleBoxFlat = panel_style.duplicate() side_panel.corner_radius_top_left = 0 side_panel.corner_radius_bottom_left = 0 side_panel.expand_margin_left = 8 @@ -169,6 +169,15 @@ func update_theme_additions() -> void: text_panel.content_margin_left = 13 theme.set_stylebox('normal', 'DialogicTextEventTextEdit', text_panel) + var event_field_group_panel := DCSS.inline({ + 'border-radius': 8, + "border":1, + "padding":2, + "boder-color": get_theme_color("property_color", "Editor"), + "background":"none"}) + theme.set_type_variation("DialogicEventEditGroup", "PanelContainer") + theme.set_stylebox("panel", "DialogicEventEditGroup", event_field_group_panel) + theme.set_icon('Plugin', 'Dialogic', load("res://addons/dialogic/Editor/Images/plugin-icon.svg")) diff --git a/addons/dialogic/Editor/editors_manager.gd b/addons/dialogic/Editor/editors_manager.gd index 2bd4ed2..029a919 100644 --- a/addons/dialogic/Editor/editors_manager.gd +++ b/addons/dialogic/Editor/editors_manager.gd @@ -7,11 +7,11 @@ signal resource_opened(resource) signal editor_changed(previous, current) ### References -@onready var hsplit = $HSplit -@onready var sidebar = $HSplit/Sidebar -@onready var editors_holder = $HSplit/VBox/Editors -@onready var toolbar = $HSplit/VBox/Toolbar -@onready var tabbar = $HSplit/VBox/Toolbar/EditorTabBar +@onready var hsplit := $HSplit +@onready var sidebar := $HSplit/Sidebar +@onready var editors_holder := $HSplit/VBox/Editors +@onready var toolbar := $HSplit/VBox/Toolbar +@onready var tabbar := $HSplit/VBox/Toolbar/EditorTabBar var reference_manager: Node: get: @@ -22,7 +22,7 @@ var current_editor: DialogicEditor = null var previous_editor: DialogicEditor = null var editors := {} var supported_file_extensions := [] -var used_resources_cache : Array = [] +var used_resources_cache: Array = [] ################################################################################ @@ -120,7 +120,7 @@ func _on_editors_tab_changed(tab:int) -> void: func edit_resource(resource:Resource, save_previous:bool = true, silent:= false) -> void: if not resource: # The resource doesn't exists, show an error - print('[Dialogic] The resource you are trying to edit doesn\'t exists any more.') + print("[Dialogic] The resource you are trying to edit doesn't exist any more.") return if current_editor and save_previous: @@ -169,7 +169,7 @@ func open_editor(editor:DialogicEditor, save_previous: bool = true, extra_info:V tabbar.current_tab = editor.get_index() if editor.current_resource: - var text:String = editor.current_resource.resource_path.get_file() + var text: String = editor.current_resource.resource_path.get_file() if editor.current_resource_state == DialogicEditor.ResourceStates.UNSAVED: text += "(*)" @@ -201,7 +201,7 @@ func show_add_resource_dialog(accept_callable:Callable, filter:String = "*", tit func _on_add_resource_dialog_accepted(path:String, callable:Callable) -> void: - var file_name :String= path.get_file().trim_suffix('.'+path.get_extension()) + var file_name: String = path.get_file().trim_suffix('.'+path.get_extension()) for i in ['#','&','+',';','(',')','!','*','*','"',"'",'%', '$', ':','.',',']: file_name = file_name.replace(i, '') callable.call(path.trim_suffix(path.get_file()).path_join(file_name)+'.'+path.get_extension()) diff --git a/addons/dialogic/Example Assets/default_event.gd b/addons/dialogic/Example Assets/default_event.gd index a2cfa1e..6ffbc71 100644 --- a/addons/dialogic/Example Assets/default_event.gd +++ b/addons/dialogic/Example Assets/default_event.gd @@ -2,7 +2,7 @@ extends DialogicEvent # DEFINE ALL PROPERTIES OF THE EVENT -# var MySetting :String = "" +# var MySetting: String = "" func _execute() -> void: # I have no idea how this event works ;) diff --git a/addons/dialogic/Example Assets/portraits/CustomPortrait_FaceAtlas.gd b/addons/dialogic/Example Assets/portraits/CustomPortrait_FaceAtlas.gd index acb600a..7b1b74a 100644 --- a/addons/dialogic/Example Assets/portraits/CustomPortrait_FaceAtlas.gd +++ b/addons/dialogic/Example Assets/portraits/CustomPortrait_FaceAtlas.gd @@ -3,7 +3,7 @@ extends DialogicPortrait enum Faces {BASED_ON_PORTRAIT_NAME, NEUTRAL, HAPPY, SAD, JOY, SHOCK, ANGRY} -@export var emotion : Faces = Faces.BASED_ON_PORTRAIT_NAME +@export var emotion: Faces = Faces.BASED_ON_PORTRAIT_NAME @export var portrait_width: int @export var portrait_height: int @export var alien := true diff --git a/addons/dialogic/Modules/Audio/event_music.gd b/addons/dialogic/Modules/Audio/event_music.gd index 4f4b570..c54c5bd 100644 --- a/addons/dialogic/Modules/Audio/event_music.gd +++ b/addons/dialogic/Modules/Audio/event_music.gd @@ -8,15 +8,15 @@ extends DialogicEvent ### Settings ## The file to play. If empty, the previous music will be faded out. -var file_path: String = "" +var file_path := "" ## The length of the fade. If 0 (by default) it's an instant change. var fade_length: float = 0 ## The volume the music will be played at. var volume: float = 0 ## The audio bus the music will be played at. -var audio_bus: String = "" +var audio_bus := "" ## If true, the audio will loop, otherwise only play once. -var loop: bool = true +var loop := true ################################################################################ diff --git a/addons/dialogic/Modules/Audio/event_sound.gd b/addons/dialogic/Modules/Audio/event_sound.gd index 389e411..8440061 100644 --- a/addons/dialogic/Modules/Audio/event_sound.gd +++ b/addons/dialogic/Modules/Audio/event_sound.gd @@ -8,13 +8,13 @@ extends DialogicEvent ### Settings ## The path to the file to play. -var file_path: String = "" +var file_path := "" ## The volume to play the sound at. var volume: float = 0 ## The bus to play the sound on. -var audio_bus: String = "" +var audio_bus := "" ## If true, the sound will loop infinitely. Not recommended (as there is no way to stop it). -var loop: bool = false +var loop := false ################################################################################ diff --git a/addons/dialogic/Modules/Background/DefaultBackgroundScene/default_background.gd b/addons/dialogic/Modules/Background/DefaultBackgroundScene/default_background.gd index deedc6a..ef3c570 100644 --- a/addons/dialogic/Modules/Background/DefaultBackgroundScene/default_background.gd +++ b/addons/dialogic/Modules/Background/DefaultBackgroundScene/default_background.gd @@ -3,8 +3,8 @@ extends DialogicBackground ## The default background scene. ## Extend the DialogicBackground class to create your own background scene. -@onready var image_node = $Image -@onready var color_node = $ColorRect +@onready var image_node: TextureRect = $Image +@onready var color_node: ColorRect = $ColorRect func _ready() -> void: diff --git a/addons/dialogic/Modules/Background/Transitions/Defaults/swipe_diagonal_up_left.gd b/addons/dialogic/Modules/Background/Transitions/Defaults/swipe_diagonal_up_left.gd index 787ed40..061f943 100644 --- a/addons/dialogic/Modules/Background/Transitions/Defaults/swipe_diagonal_up_left.gd +++ b/addons/dialogic/Modules/Background/Transitions/Defaults/swipe_diagonal_up_left.gd @@ -2,7 +2,7 @@ extends "res://addons/dialogic/Modules/Background/Transitions/simple_swipe_trans func _fade() -> void: var shader := setup_swipe_shader() - var texture :GradientTexture2D = shader.get_shader_parameter('wipe_texture') + var texture: GradientTexture2D = shader.get_shader_parameter('wipe_texture') texture.fill_from = Vector2.DOWN texture.fill_to = Vector2.RIGHT tween_shader_progress() diff --git a/addons/dialogic/Modules/Background/Transitions/Defaults/swipe_left_to_right.gd b/addons/dialogic/Modules/Background/Transitions/Defaults/swipe_left_to_right.gd index 32084e9..8b55d41 100644 --- a/addons/dialogic/Modules/Background/Transitions/Defaults/swipe_left_to_right.gd +++ b/addons/dialogic/Modules/Background/Transitions/Defaults/swipe_left_to_right.gd @@ -2,7 +2,7 @@ extends "res://addons/dialogic/Modules/Background/Transitions/simple_swipe_trans func _fade() -> void: var shader := setup_swipe_shader() - var texture :GradientTexture2D = shader.get_shader_parameter('wipe_texture') + var texture: GradientTexture2D = shader.get_shader_parameter('wipe_texture') texture.fill_from = Vector2.ZERO texture.fill_to = Vector2.RIGHT diff --git a/addons/dialogic/Modules/Background/Transitions/Defaults/swipe_right_to_left.gd b/addons/dialogic/Modules/Background/Transitions/Defaults/swipe_right_to_left.gd index 14005d9..5433d59 100644 --- a/addons/dialogic/Modules/Background/Transitions/Defaults/swipe_right_to_left.gd +++ b/addons/dialogic/Modules/Background/Transitions/Defaults/swipe_right_to_left.gd @@ -2,7 +2,7 @@ extends "res://addons/dialogic/Modules/Background/Transitions/simple_swipe_trans func _fade() -> void: var shader := setup_swipe_shader() - var texture :GradientTexture2D = shader.get_shader_parameter('wipe_texture') + var texture: GradientTexture2D = shader.get_shader_parameter('wipe_texture') texture.fill_from = Vector2.RIGHT texture.fill_to = Vector2.ZERO tween_shader_progress() diff --git a/addons/dialogic/Modules/Background/Transitions/class_dialogic_background_transition.gd b/addons/dialogic/Modules/Background/Transitions/class_dialogic_background_transition.gd index 6205711..3f4f1f0 100644 --- a/addons/dialogic/Modules/Background/Transitions/class_dialogic_background_transition.gd +++ b/addons/dialogic/Modules/Background/Transitions/class_dialogic_background_transition.gd @@ -2,7 +2,7 @@ class_name DialogicBackgroundTransition extends Node ## Helper -var this_folder : String = get_script().resource_path.get_base_dir() +var this_folder: String = get_script().resource_path.get_base_dir() ## Set before _fade() is called, will be the root node of the previous bg scene. diff --git a/addons/dialogic/Modules/Background/event_background.gd b/addons/dialogic/Modules/Background/event_background.gd index 28fe72c..0380e69 100644 --- a/addons/dialogic/Modules/Background/event_background.gd +++ b/addons/dialogic/Modules/Background/event_background.gd @@ -10,14 +10,14 @@ extends DialogicEvent ## This scene supports images and fading. ## If you set it to a scene path, then that scene will be instanced. ## Learn more about custom backgrounds in the Subsystem_Background.gd docs. -var scene: String = "" +var scene := "" ## The argument that is passed to the background scene. ## For the default scene it's the path to the image to show. -var argument: String = "" +var argument := "" ## The time the fade animation will take. Leave at 0 for instant change. var fade: float = 0.0 ## Name of the transition to use. -var transition: String = "" +var transition := "" ## Helpers for visual editor enum ArgumentTypes {IMAGE, CUSTOM} @@ -147,7 +147,7 @@ func build_event_editor() -> void: func get_transition_suggestions(_filter:String="") -> Dictionary: - var transitions := DialogicResourceUtil.list_special_resources_of_type("BackgroundTransition") + var transitions := DialogicResourceUtil.list_special_resources("BackgroundTransition") var suggestions := {} for i in transitions: suggestions[DialogicUtil.pretty_name(i)] = {'value': DialogicUtil.pretty_name(i), 'editor_icon': ["PopupMenu", "EditorIcons"]} diff --git a/addons/dialogic/Modules/Background/index.gd b/addons/dialogic/Modules/Background/index.gd index e258064..d40f030 100644 --- a/addons/dialogic/Modules/Background/index.gd +++ b/addons/dialogic/Modules/Background/index.gd @@ -9,5 +9,5 @@ func _get_subsystems() -> Array: return [{'name':'Backgrounds', 'script':this_folder.path_join('subsystem_backgrounds.gd')}] -func _get_special_resources() -> Array[Dictionary]: - return list_special_resources("Transitions/Defaults", "BackgroundTransition", ".gd") +func _get_special_resources() -> Dictionary: + return {&"BackgroundTransition":list_special_resources("Transitions/Defaults", ".gd")} diff --git a/addons/dialogic/Modules/Background/subsystem_backgrounds.gd b/addons/dialogic/Modules/Background/subsystem_backgrounds.gd index 5312334..b8f8c4c 100644 --- a/addons/dialogic/Modules/Background/subsystem_backgrounds.gd +++ b/addons/dialogic/Modules/Background/subsystem_backgrounds.gd @@ -99,7 +99,7 @@ func update_background(scene := "", argument := "", fade_time := 0.0, transition else: new_viewport = null - var trans_script: Script = load(DialogicResourceUtil.guess_special_resource("BackgroundTransition", transition_path, default_transition)) + var trans_script: Script = load(DialogicResourceUtil.guess_special_resource("BackgroundTransition", transition_path, {"path":default_transition}).path) var trans_node := Node.new() trans_node.set_script(trans_script) trans_node = (trans_node as DialogicBackgroundTransition) @@ -143,6 +143,7 @@ func _on_transition_finished(background_node:DialogicNode_BackgroundHolder, tran background_node.color = Color.TRANSPARENT transition_node.queue_free() + ## Adds sub-viewport with the given background scene as child to ## Dialogic scene. func add_background_node(scene:PackedScene, parent:DialogicNode_BackgroundHolder) -> SubViewportContainer: @@ -166,6 +167,7 @@ func add_background_node(scene:PackedScene, parent:DialogicNode_BackgroundHolder viewport.transparent_bg = true viewport.disable_3d = true viewport.render_target_update_mode = SubViewport.UPDATE_ALWAYS + viewport.canvas_item_default_texture_filter = ProjectSettings.get_setting("rendering/textures/canvas_textures/default_texture_filter") viewport.add_child(b_scene) b_scene.viewport = viewport @@ -176,6 +178,7 @@ func add_background_node(scene:PackedScene, parent:DialogicNode_BackgroundHolder return v_con + ## Whether a background is set. func has_background() -> bool: return !dialogic.current_state_info.get('background_scene', '').is_empty() or !dialogic.current_state_info.get('background_argument','').is_empty() diff --git a/addons/dialogic/Modules/Call/event_call.gd b/addons/dialogic/Modules/Call/event_call.gd index 635c856..71643b2 100644 --- a/addons/dialogic/Modules/Call/event_call.gd +++ b/addons/dialogic/Modules/Call/event_call.gd @@ -7,16 +7,16 @@ extends DialogicEvent ### Settings ## The name of the autoload to call the method on. -var autoload_name: String = "" +var autoload_name := "" ## The name of the method to call on the given autoload. -var method: String = "": +var method := "": set(value): method = value if Engine.is_editor_hint(): update_argument_info() check_arguments_and_update_warning() ## A list of arguments to give to the call. -var arguments: Array = []: +var arguments := []: set(value): arguments = value if Engine.is_editor_hint(): @@ -193,7 +193,7 @@ func update_argument_info() -> void: if !ResourceLoader.exists(ProjectSettings.get_setting('autoload/'+autoload_name, '').trim_prefix('*')): _current_method_arg_hints = {} return - var script :Script = load(ProjectSettings.get_setting('autoload/'+autoload_name, '').trim_prefix('*')) + var script: Script = load(ProjectSettings.get_setting('autoload/'+autoload_name, '').trim_prefix('*')) for m in script.get_script_method_list(): if m.name == method: _current_method_arg_hints = {'a':autoload_name, 'm':method, 'info':m} @@ -214,7 +214,7 @@ func check_arguments_and_update_warning() -> void: if _current_method_arg_hints.info.args[idx].type != typeof(arg): if arg is String and arg.begins_with('@'): continue - var expected_type :String = "" + var expected_type: String = "" match _current_method_arg_hints.info.args[idx].type: TYPE_BOOL: expected_type = "bool" TYPE_STRING: expected_type = "string" diff --git a/addons/dialogic/Modules/Character/DefaultAnimations/bounce.gd b/addons/dialogic/Modules/Character/DefaultAnimations/bounce.gd index f0c8b68..a246977 100644 --- a/addons/dialogic/Modules/Character/DefaultAnimations/bounce.gd +++ b/addons/dialogic/Modules/Character/DefaultAnimations/bounce.gd @@ -9,3 +9,9 @@ func animate() -> void: tween.tween_property(node, 'position:y', orig_pos.y, time*0.6).set_trans(Tween.TRANS_BOUNCE) tween.parallel().tween_property(node, 'scale:y', orig_scale.y, time*0.6).set_trans(Tween.TRANS_BOUNCE) tween.finished.connect(emit_signal.bind('finished_once')) + + +func _get_named_variations() -> Dictionary: + return { + "bounce": {"type": AnimationType.ACTION}, + } diff --git a/addons/dialogic/Modules/Character/DefaultAnimations/bounce_in_out.gd b/addons/dialogic/Modules/Character/DefaultAnimations/bounce_in_out.gd index 0f487bf..d5484d9 100644 --- a/addons/dialogic/Modules/Character/DefaultAnimations/bounce_in_out.gd +++ b/addons/dialogic/Modules/Character/DefaultAnimations/bounce_in_out.gd @@ -30,3 +30,10 @@ func animate() -> void: await tween.finished finished_once.emit() + + +func _get_named_variations() -> Dictionary: + return { + "bounce in": {"reversed": false, "type": AnimationType.IN}, + "bounce out": {"reversed": true, "type": AnimationType.OUT}, + } diff --git a/addons/dialogic/Modules/Character/DefaultAnimations/fade_down_in_out.gd b/addons/dialogic/Modules/Character/DefaultAnimations/fade_down_in_out.gd index 92c8013..719ca1b 100644 --- a/addons/dialogic/Modules/Character/DefaultAnimations/fade_down_in_out.gd +++ b/addons/dialogic/Modules/Character/DefaultAnimations/fade_down_in_out.gd @@ -36,3 +36,9 @@ func animate() -> void: await tween.finished finished_once.emit() + +func _get_named_variations() -> Dictionary: + return { + "fade in down": {"reversed": false, "type": AnimationType.IN}, + "fade out up": {"reversed": true, "type": AnimationType.OUT}, + } diff --git a/addons/dialogic/Modules/Character/DefaultAnimations/fade_in_out.gd b/addons/dialogic/Modules/Character/DefaultAnimations/fade_in_out.gd index 006526d..e432ecd 100644 --- a/addons/dialogic/Modules/Character/DefaultAnimations/fade_in_out.gd +++ b/addons/dialogic/Modules/Character/DefaultAnimations/fade_in_out.gd @@ -24,3 +24,11 @@ func animate() -> void: await tween.finished finished_once.emit() + +func _get_named_variations() -> Dictionary: + return { + "fade in": {"reversed": false, "type": AnimationType.IN}, + "fade out": {"reversed": true, "type": AnimationType.OUT}, + "fade cross": {"type": AnimationType.CROSSFADE}, + } + diff --git a/addons/dialogic/Modules/Character/DefaultAnimations/fade_up_in_out.gd b/addons/dialogic/Modules/Character/DefaultAnimations/fade_up_in_out.gd index 6f23292..269c919 100644 --- a/addons/dialogic/Modules/Character/DefaultAnimations/fade_up_in_out.gd +++ b/addons/dialogic/Modules/Character/DefaultAnimations/fade_up_in_out.gd @@ -34,4 +34,11 @@ func animate() -> void: tween.tween_property(node, modulation_alpha, end_modulation, time) await tween.finished - finished_once.emit() \ No newline at end of file + finished_once.emit() + + +func _get_named_variations() -> Dictionary: + return { + "fade in up": {"reversed": false, "type": AnimationType.IN}, + "fade out down": {"reversed": true, "type": AnimationType.OUT}, + } diff --git a/addons/dialogic/Modules/Character/DefaultAnimations/heartbeat.gd b/addons/dialogic/Modules/Character/DefaultAnimations/heartbeat.gd index e3a982d..36e8eab 100644 --- a/addons/dialogic/Modules/Character/DefaultAnimations/heartbeat.gd +++ b/addons/dialogic/Modules/Character/DefaultAnimations/heartbeat.gd @@ -5,3 +5,9 @@ func animate() -> void: tween.tween_property(node, 'scale', Vector2(1,1)*1.2, time*0.5).set_trans(Tween.TRANS_ELASTIC).set_ease(Tween.EASE_OUT) tween.tween_property(node, 'scale', Vector2(1,1), time*0.5).set_trans(Tween.TRANS_BOUNCE).set_ease(Tween.EASE_OUT) tween.finished.connect(emit_signal.bind('finished_once')) + + +func _get_named_variations() -> Dictionary: + return { + "heartbeat": {"type": AnimationType.ACTION}, + } diff --git a/addons/dialogic/Modules/Character/DefaultAnimations/instant_in_out.gd b/addons/dialogic/Modules/Character/DefaultAnimations/instant_in_out.gd index b6ec6e4..3044c69 100644 --- a/addons/dialogic/Modules/Character/DefaultAnimations/instant_in_out.gd +++ b/addons/dialogic/Modules/Character/DefaultAnimations/instant_in_out.gd @@ -3,3 +3,10 @@ extends DialogicAnimation func animate() -> void: await node.get_tree().process_frame finished.emit() + + +func _get_named_variations() -> Dictionary: + return { + "instant in": {"reversed": false, "type": AnimationType.IN}, + "instant out": {"reversed": true, "type": AnimationType.OUT}, + } diff --git a/addons/dialogic/Modules/Character/DefaultAnimations/shake_x.gd b/addons/dialogic/Modules/Character/DefaultAnimations/shake_x.gd index 9648809..de445fc 100644 --- a/addons/dialogic/Modules/Character/DefaultAnimations/shake_x.gd +++ b/addons/dialogic/Modules/Character/DefaultAnimations/shake_x.gd @@ -13,3 +13,8 @@ func animate() -> void: tween.tween_method(bound_multitween, Vector2(), Vector2(-1,0)*strength, time*0.1) tween.tween_method(bound_multitween, Vector2(), Vector2(1, 0)*strength, time*0.2) tween.finished.connect(emit_signal.bind('finished_once')) + +func _get_named_variations() -> Dictionary: + return { + "shake x": {"type": AnimationType.ACTION}, + } diff --git a/addons/dialogic/Modules/Character/DefaultAnimations/shake_y.gd b/addons/dialogic/Modules/Character/DefaultAnimations/shake_y.gd index 0107ed8..870f42f 100644 --- a/addons/dialogic/Modules/Character/DefaultAnimations/shake_y.gd +++ b/addons/dialogic/Modules/Character/DefaultAnimations/shake_y.gd @@ -4,7 +4,7 @@ func animate() -> void: var tween := (node.create_tween() as Tween) tween.set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_SINE) - var strength :float = node.get_viewport().size.y/40 + var strength: float = node.get_viewport().size.y/40 tween.tween_property(node, 'position:y', orig_pos.y+strength, time*0.2) tween.tween_property(node, 'position:y', orig_pos.y-strength, time*0.1) tween.tween_property(node, 'position:y', orig_pos.y+strength, time*0.1) @@ -15,3 +15,9 @@ func animate() -> void: tween.tween_property(node, 'position:y', orig_pos.y, time*0.2) tween.finished.connect(emit_signal.bind('finished_once')) + + +func _get_named_variations() -> Dictionary: + return { + "shake y": {"type": AnimationType.ACTION}, + } diff --git a/addons/dialogic/Modules/Character/DefaultAnimations/slide_down_in_out.gd b/addons/dialogic/Modules/Character/DefaultAnimations/slide_down_in_out.gd index d76746f..281846e 100644 --- a/addons/dialogic/Modules/Character/DefaultAnimations/slide_down_in_out.gd +++ b/addons/dialogic/Modules/Character/DefaultAnimations/slide_down_in_out.gd @@ -17,3 +17,10 @@ func animate() -> void: await tween.finished finished_once.emit() + + +func _get_named_variations() -> Dictionary: + return { + "slide in down": {"reversed": false, "type": AnimationType.IN}, + "slide out up": {"reversed": true, "type": AnimationType.OUT}, + } diff --git a/addons/dialogic/Modules/Character/DefaultAnimations/slide_left_in_out.gd b/addons/dialogic/Modules/Character/DefaultAnimations/slide_left_in_out.gd index 7667072..b267688 100644 --- a/addons/dialogic/Modules/Character/DefaultAnimations/slide_left_in_out.gd +++ b/addons/dialogic/Modules/Character/DefaultAnimations/slide_left_in_out.gd @@ -17,3 +17,10 @@ func animate() -> void: await tween.finished finished_once.emit() + + +func _get_named_variations() -> Dictionary: + return { + "slide in left": {"reversed": false, "type": AnimationType.IN}, + "slide out right": {"reversed": true, "type": AnimationType.OUT}, + } diff --git a/addons/dialogic/Modules/Character/DefaultAnimations/slide_right_in_out.gd b/addons/dialogic/Modules/Character/DefaultAnimations/slide_right_in_out.gd index 3568a20..828fecb 100644 --- a/addons/dialogic/Modules/Character/DefaultAnimations/slide_right_in_out.gd +++ b/addons/dialogic/Modules/Character/DefaultAnimations/slide_right_in_out.gd @@ -18,3 +18,10 @@ func animate() -> void: tween.tween_property(node, 'position:x', end_position_x, time) tween.finished.connect(emit_signal.bind('finished_once')) + + +func _get_named_variations() -> Dictionary: + return { + "slide in right": {"reversed": false, "type": AnimationType.IN}, + "slide out left": {"reversed": true, "type": AnimationType.OUT}, + } diff --git a/addons/dialogic/Modules/Character/DefaultAnimations/slide_up_in.gd b/addons/dialogic/Modules/Character/DefaultAnimations/slide_up_in.gd index d0928b0..c1fe73e 100644 --- a/addons/dialogic/Modules/Character/DefaultAnimations/slide_up_in.gd +++ b/addons/dialogic/Modules/Character/DefaultAnimations/slide_up_in.gd @@ -16,3 +16,10 @@ func animate() -> void: await tween.finished finished_once.emit() + + +func _get_named_variations() -> Dictionary: + return { + "slide in up": {"reversed": false, "type": AnimationType.IN}, + "slide out down": {"reversed": true, "type": AnimationType.OUT}, + } diff --git a/addons/dialogic/Modules/Character/DefaultAnimations/tada.gd b/addons/dialogic/Modules/Character/DefaultAnimations/tada.gd index bc38560..0d578b1 100644 --- a/addons/dialogic/Modules/Character/DefaultAnimations/tada.gd +++ b/addons/dialogic/Modules/Character/DefaultAnimations/tada.gd @@ -4,7 +4,7 @@ func animate() -> void: var tween := (node.create_tween() as Tween) tween.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_OUT) - var strength :float = 0.01 + var strength: float = 0.01 tween.set_parallel(true) tween.tween_property(node, 'scale', Vector2(1,1)*(1+strength), time*0.3) @@ -17,3 +17,9 @@ func animate() -> void: tween.parallel().tween_property(node, 'rotation', 0.0, time*0.3) tween.finished.connect(emit_signal.bind('finished_once')) + + +func _get_named_variations() -> Dictionary: + return { + "tada": {"type": AnimationType.ACTION}, + } diff --git a/addons/dialogic/Modules/Character/DefaultAnimations/zoom_center_in_out.gd b/addons/dialogic/Modules/Character/DefaultAnimations/zoom_center_in_out.gd index 95dd52f..2595c28 100644 --- a/addons/dialogic/Modules/Character/DefaultAnimations/zoom_center_in_out.gd +++ b/addons/dialogic/Modules/Character/DefaultAnimations/zoom_center_in_out.gd @@ -27,3 +27,10 @@ func animate() -> void: await tween.finished finished_once.emit() + + +func _get_named_variations() -> Dictionary: + return { + "zoom center in": {"reversed": false, "type": AnimationType.IN}, + "zoom center out": {"reversed": true, "type": AnimationType.OUT}, + } diff --git a/addons/dialogic/Modules/Character/DefaultAnimations/zoom_in_out.gd b/addons/dialogic/Modules/Character/DefaultAnimations/zoom_in_out.gd index 5d7a950..21cc338 100644 --- a/addons/dialogic/Modules/Character/DefaultAnimations/zoom_in_out.gd +++ b/addons/dialogic/Modules/Character/DefaultAnimations/zoom_in_out.gd @@ -26,3 +26,10 @@ func animate() -> void: await tween.finished finished_once.emit() + + +func _get_named_variations() -> Dictionary: + return { + "zoom in": {"reversed": false, "type": AnimationType.IN}, + "zoom out": {"reversed": true, "type": AnimationType.OUT}, + } diff --git a/addons/dialogic/Modules/Character/DialogicPortraitAnimationsUtil.gd b/addons/dialogic/Modules/Character/DialogicPortraitAnimationsUtil.gd new file mode 100644 index 0000000..66908e3 --- /dev/null +++ b/addons/dialogic/Modules/Character/DialogicPortraitAnimationsUtil.gd @@ -0,0 +1,47 @@ +@tool +class_name DialogicPortraitAnimationUtil + +enum AnimationType {ALL=-1, IN=1, OUT=2, ACTION=3, CROSSFADE=4} + + +static func guess_animation(string:String, type := AnimationType.ALL) -> String: + var default := {} + var filter := {} + var ignores := [] + match type: + AnimationType.ALL: + pass + AnimationType.IN: + filter = {"type":AnimationType.IN} + ignores = ["in"] + AnimationType.OUT: + filter = {"type":AnimationType.OUT} + ignores = ["out"] + AnimationType.ACTION: + filter = {"type":AnimationType.ACTION} + AnimationType.CROSSFADE: + filter = {"type":AnimationType.CROSSFADE} + ignores = ["cross"] + return DialogicResourceUtil.guess_special_resource(&"PortraitAnimation", string, default, filter, ignores).get("path", "") + + +static func get_portrait_animations_filtered(type := AnimationType.ALL) -> Dictionary: + var filter := {"type":type} + if type == AnimationType.ALL: + filter["type"] = [AnimationType.IN, AnimationType.OUT, AnimationType.ACTION] + return DialogicResourceUtil.list_special_resources("PortraitAnimation", filter) + + +static func get_suggestions(_search_text := "", current_value:= "", empty_text := "Default", action := AnimationType.ALL) -> Dictionary: + var suggestions := {} + + if empty_text and current_value: + suggestions[empty_text] = {'value':"", 'editor_icon':["GuiRadioUnchecked", "EditorIcons"]} + + for anim_name in get_portrait_animations_filtered(action): + suggestions[DialogicUtil.pretty_name(anim_name)] = { + 'value' : DialogicUtil.pretty_name(anim_name), + 'editor_icon' : ["Animation", "EditorIcons"] + } + + return suggestions diff --git a/addons/dialogic/Modules/Character/LayeredPortrait/layered_portrait.tscn b/addons/dialogic/Modules/Character/LayeredPortrait/layered_portrait.tscn deleted file mode 100644 index fb37208..0000000 --- a/addons/dialogic/Modules/Character/LayeredPortrait/layered_portrait.tscn +++ /dev/null @@ -1,36 +0,0 @@ -[gd_scene load_steps=5 format=3 uid="uid://jac4eurttev1"] - -[ext_resource type="Script" path="res://addons/dialogic/Modules/Character/LayeredPortrait/layered_portrait.gd" id="1_7l060"] -[ext_resource type="Texture2D" uid="uid://djqit26f4be4f" path="res://addons/dialogic/Example Assets/portraits/Princess/princess_blank.png" id="2_yttk1"] -[ext_resource type="Texture2D" uid="uid://c5aku2g01k6c6" path="res://addons/dialogic/Example Assets/portraits/Princess/shock.png" id="3_mexya"] -[ext_resource type="Texture2D" uid="uid://dsid4ye0q74nl" path="res://addons/dialogic/Example Assets/portraits/Princess/smile.png" id="4_wvcco"] - -[node name="LayeredPortrait" type="Node2D"] -script = ExtResource("1_7l060") - -[node name="Layer1" type="Sprite2D" parent="."] -position = Vector2(0, -1547) -texture = ExtResource("2_yttk1") -centered = false - -[node name="Group1" type="Control" parent="."] -layout_mode = 3 -anchors_preset = 0 -offset_right = 40.0 -offset_bottom = 40.0 - -[node name="Layer1" type="Sprite2D" parent="Group1"] -position = Vector2(508, -1446) -texture = ExtResource("3_mexya") -centered = false - -[node name="Layer2" type="Sprite2D" parent="Group1"] -position = Vector2(508, -1446) -texture = ExtResource("4_wvcco") -centered = false - -[node name="Layer3" type="Sprite2D" parent="Group1"] -centered = false - -[node name="Layer2" type="Sprite2D" parent="."] -centered = false diff --git a/addons/dialogic/Modules/Character/class_dialogic_animation.gd b/addons/dialogic/Modules/Character/class_dialogic_animation.gd index 713ba43..7b9c11d 100644 --- a/addons/dialogic/Modules/Character/class_dialogic_animation.gd +++ b/addons/dialogic/Modules/Character/class_dialogic_animation.gd @@ -3,6 +3,8 @@ extends Node ## Class that can be used to animate portraits. Can be extended to create animations. +enum AnimationType {IN=1, OUT=2, ACTION=3, CROSSFADE=4} + signal finished_once signal finished @@ -58,6 +60,10 @@ func resume() -> void: node.process_mode = Node.PROCESS_MODE_INHERIT +func _get_named_variations() -> Dictionary: + return {} + + ## If the animation wants to change the modulation, this method ## will return the property to change. ## diff --git a/addons/dialogic/Modules/Character/custom_portrait_thumbnail.png b/addons/dialogic/Modules/Character/custom_portrait_thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..77d3cf323f080bdeb1d28bc3ef51983f76650059 GIT binary patch literal 2888 zcmcgudpOkT7oUV?-N{HaBU)PbHi{6rL`jtENEpU_FxG8c#-(wY$}-jFewnP01~Z6U z3X@u4Ye-BCQj<$*23y80>^r-^=h^4?JimW_|Lh;%@Atgtyx(&^=REJ{ocG!VdmC{P z1rZ1YB7XLal_LbQOAE*kpu*s-VpSY1flNzf}*K<|H6ilP|4KF8VbcpBiHe0p|eRiFKU+B zwe4t1cGJnHyoydWgSws?VKONl9UgEvJOqOozVAZ0zpc=A*?#Zdy$Xto!`QB^sTr@#2bKu6Wr>5!|W;>T95hk>gGE2I#-)Uolf(E<0PaX7K*}3H5aqP&EJ24BR zV+f(Oee}j33hh2^t-f``U?`l6UiZt(&6V&=R{+v5lE4`iq$}JMk6d6Dt#=2|-EB4m^n`tj4JS1n;IjqP^4sV+m0^`?$WrOt1ND;^J8%}j?3SfB z9=v&Gewv7q-CnmF10o87x$>Brt$G{TQ5CR)B2`Bh62^a<^B6-S?&1s$Ucl?jq`Ml_rXih zJjOVSbhKFh_x%CBTAnfY#q|6iktD=PjrBE6>Z4zss_obHUkt#qPQPF&X52Zfze`^D&|_fN0mZ|f7%Q167g zwl^qhhYyF5E;cx8R3>fm#t^$TuL8p}-;3V(<&4?6xiFGrL!HM%ja*y4Egki)G9Vz} zYu{nAA+8!m>TQny62L;EGNiP$LIMJ;l~TSnbgs`TW|K(9QPC*Qcyo(Qx5zu>Zd(nx zECo1xWPbi0;M>US*RpFp6*`@{&t8E)-ODdbQ|G%irep;Ece9vA?v^F>jtmWzM;p~u zRjF+s%_)PwD<~@)C8ul$a}H6KRS2-30GExT=cTH9_BG%Zy#NGEM8u5aTyOb612(VwAe&k3Jk2~NULO_ zPTOhZzNZ=}UV0c_`X7adN3m~10q4gOxvz}fqIv|_j}!0$wjTYnGE#bYd^{vkaBi{# z$KXNv{xVU8Y+XB+B~9gfxvZMX%4a z&8W{(!h7i=%2N_WXyTCqs4J9@euaWkK`K85$q`_7f|`E(!u=zGc-K%FVhe73usVd9 zrfLUr9{y2P)o=6b-ie%J6;z`Bi4(zzf?5RBdhLZDZsQ--)b!1-8-z~;eO@(Y82 z(4nL&r-f^?rTburisXqB*2%|iIFijG9pVi~L^$?_m?kl@Lak-;loYs4G@Fs3vZErV< ziHZ3*iF@nGE816v+x`|GUly1s2Eu5?eOqhD%*=d{va{XDY-w(;>FV+p6%}ny+37@> zCD&$V3ImGDlgFN<{MOqWGt&=aq3?)wvbERO=g1=?Bb8vvX?@)AJ6Z$UXi`S?^(u?< zJBwXAQ#^U3z$i^iT`p_m6NS14y8&6_b}X(ji z$?JffNEL$r7?>3HWYfB~wiB!htLt;|8(^otptaB<#s2hx{uR}IU>cua{5vnpG z8HCO)p2yZ2o77@so`H;(yn0!unqj(W=g|^6)S0xoR!{(&jxTE*t4&^eM{FeGq`?_N zf#voZTe5OEIBc@rrPu&_d|Qxsueh{y1YoZp$k%OZMc-&KLJ@APYM74 literal 0 HcmV?d00001 diff --git a/addons/dialogic/Modules/Character/default_portrait.gd b/addons/dialogic/Modules/Character/default_portrait.gd index 25edb32..dcd89b0 100644 --- a/addons/dialogic/Modules/Character/default_portrait.gd +++ b/addons/dialogic/Modules/Character/default_portrait.gd @@ -5,7 +5,7 @@ extends DialogicPortrait ## The parent class has a character and portrait variable. @export_group('Main') -@export_file var image : String = "" +@export_file var image := "" ## Load anything related to the given character and portrait diff --git a/addons/dialogic/Modules/Character/default_portrait_thumbnail.png b/addons/dialogic/Modules/Character/default_portrait_thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..369a1118b9a08d0b8e2f0b81b9f2d337d5ec0374 GIT binary patch literal 5647 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 String: if action == Actions.JOIN or (action == Actions.UPDATE and set_transform): result_string += " " + str(transform) + # SETS: + if action == Actions.JOIN or action == Actions.LEAVE: + set_mirrored = mirrored != default_values.get("mirrored", false) + set_z_index = z_index != default_values.get("z_index", 0) + var shortcode := store_to_shortcode_parameters() if shortcode != "": @@ -296,7 +301,7 @@ func get_shortcode_parameters() -> Dictionary: 'Update':{'value':Actions.UPDATE}}}, "character" : {"property": "character_identifier", "default": "", "custom_stored":true,}, "portrait" : {"property": "portrait", "default": "", "custom_stored":true,}, - "tranform" : {"property": "tranform", "default": 1, "custom_stored":true,}, + "transform" : {"property": "transform", "default": "center", "custom_stored":true,}, "animation" : {"property": "animation_name", "default": ""}, "length" : {"property": "animation_length", "default": 0.5}, @@ -383,7 +388,7 @@ func build_event_editor() -> void: 'placeholder' : 'Default', 'enable_pretty_name' : true}, 'should_show_fade_options()') - add_body_edit('fade_length', ValueType.NUMBER, {'left_text':'Length:', 'suffix':'s'}, + add_body_edit('fade_length', ValueType.NUMBER, {'left_text':'Length:', 'suffix':'s', "min":0}, 'should_show_fade_options() and !fade_animation.is_empty()') add_body_line_break("should_show_fade_options()") add_body_edit('animation_name', ValueType.DYNAMIC_OPTIONS, @@ -393,14 +398,14 @@ func build_event_editor() -> void: 'placeholder' : 'Default', 'enable_pretty_name' : true}, 'should_show_animation_options()') - add_body_edit('animation_length', ValueType.NUMBER, {'left_text':'Length:', 'suffix':'s'}, + add_body_edit('animation_length', ValueType.NUMBER, {'left_text':'Length:', 'suffix':'s', "min":0}, 'should_show_animation_options() and !animation_name.is_empty()') add_body_edit('animation_wait', ValueType.BOOL, {'left_text':'Await end:'}, 'should_show_animation_options() and !animation_name.is_empty()') - add_body_edit('animation_repeats', ValueType.NUMBER, {'left_text':'Repeat:', 'mode':1}, + add_body_edit('animation_repeats', ValueType.NUMBER, {'left_text':'Repeat:', 'mode':1, "min":1}, 'should_show_animation_options() and !animation_name.is_empty() and action == %s)' %Actions.UPDATE) add_body_line_break() - add_body_edit('transform_time', ValueType.NUMBER, {'left_text':'Movement duration:'}, + add_body_edit('transform_time', ValueType.NUMBER, {'left_text':'Movement duration:', "min":0}, "should_show_transform_options()") add_body_edit("transform_trans", ValueType.FIXED_OPTIONS, {'options':trans_options, 'left_text':"Trans:"}, 'should_show_transform_options() and transform_time > 0') add_body_edit("transform_ease", ValueType.FIXED_OPTIONS, {'options':ease_options, 'left_text':"Ease:"}, 'should_show_transform_options() and transform_time > 0') @@ -450,13 +455,19 @@ func get_position_suggestions(search_text:String='') -> Dictionary: func get_animation_suggestions(search_text:String='') -> Dictionary: - var empty_text := "Default" - if action == Actions.UPDATE: - empty_text = "None" - return DialogicUtil.get_portrait_animation_suggestions(search_text, empty_text, action+1) + var DPAU := DialogicPortraitAnimationUtil + match action: + Actions.JOIN: + return DPAU.get_suggestions(search_text, animation_name, "Default", DPAU.AnimationType.IN) + Actions.LEAVE: + return DPAU.get_suggestions(search_text, animation_name, "Default", DPAU.AnimationType.OUT) + Actions.UPDATE: + return DPAU.get_suggestions(search_text, animation_name, "None", DPAU.AnimationType.ACTION) + return {} + func get_fade_suggestions(search_text:String='') -> Dictionary: - return DialogicUtil.get_portrait_animation_suggestions(search_text, "Default", 1) + return DialogicPortraitAnimationUtil.get_suggestions(search_text, fade_animation, "Default", DialogicPortraitAnimationUtil.AnimationType.CROSSFADE) ####################### CODE COMPLETION ######################################## @@ -474,44 +485,53 @@ func _get_code_completion(CodeCompletionHelper:Node, TextNode:TextEdit, line:Str CodeCompletionHelper.suggest_portraits(TextNode, completion_character) elif not '[' in line_until_caret and symbol == ' ': - for position in get_position_suggestions(): - TextNode.add_code_completion_option(CodeEdit.KIND_MEMBER, position, position+' ', TextNode.syntax_highlighter.normal_color) - - if '[' in line_until_caret and (symbol == "[" or symbol == " "): - suggest_parameter("animation", line, TextNode) - - if "animation=" in line: - for param in ["length", "wait"]: - suggest_parameter(param, line, TextNode) - if line.begins_with('update'): - suggest_parameter("repeat", line, TextNode) - if line.begins_with("update"): - for param in ["time", "trans", "ease"]: - suggest_parameter(param, line, TextNode) - if not line.begins_with('leave'): - for param in ["mirrored", "z_index", "extra_data"]: - suggest_parameter(param, line, TextNode) - - if line_until_caret.ends_with('animation="'): - var animations := [] - - if line.begins_with('join'): - animations = DialogicUtil.get_portrait_animation_scripts(DialogicUtil.AnimationType.IN) - - if line.begins_with('update'): - animations = DialogicUtil.get_portrait_animation_scripts(DialogicUtil.AnimationType.ACTION) - - if line.begins_with('leave'): - animations = DialogicUtil.get_portrait_animation_scripts(DialogicUtil.AnimationType.OUT) - - for script: String in animations: - TextNode.add_code_completion_option(CodeEdit.KIND_MEMBER, DialogicUtil.pretty_name(script), DialogicUtil.pretty_name(script)+'" ', TextNode.syntax_highlighter.normal_color) - elif line_until_caret.ends_with('wait="') or line_until_caret.ends_with('mirrored="'): - CodeCompletionHelper.suggest_bool(TextNode, TextNode.syntax_highlighter.normal_color) - elif line_until_caret.ends_with('trans="'): - CodeCompletionHelper.suggest_custom_suggestions(list_to_suggestions(trans_options), TextNode, TextNode.syntax_highlighter.normal_color) - elif line_until_caret.ends_with('ease="'): - CodeCompletionHelper.suggest_custom_suggestions(list_to_suggestions(ease_options), TextNode, TextNode.syntax_highlighter.normal_color) + if not line.begins_with("leave"): + for position in get_position_suggestions(): + TextNode.add_code_completion_option(CodeEdit.KIND_MEMBER, position, position+' ', TextNode.syntax_highlighter.normal_color) + + # Shortcode Part + if '[' in line_until_caret: + # Suggest Parameters + if symbol == '[' or symbol == ' ' and line_until_caret.count('"')%2 == 0:# and (symbol == "[" or (symbol == " " and line_until_caret.rfind('="') < line_until_caret.rfind('"')-1)): + suggest_parameter("animation", line, TextNode) + + if "animation=" in line: + for param in ["length", "wait"]: + suggest_parameter(param, line, TextNode) + if line.begins_with('update'): + suggest_parameter("repeat", line, TextNode) + if line.begins_with("update"): + for param in ["move_time", "move_trans", "move_ease"]: + suggest_parameter(param, line, TextNode) + if not line.begins_with('leave'): + for param in ["mirrored", "z_index", "extra_data"]: + suggest_parameter(param, line, TextNode) + + # Suggest Values + else: + var current_param: RegExMatch = CodeCompletionHelper.completion_shortcode_param_getter_regex.search(line) + if not current_param: + return + + match current_param.get_string("param"): + "animation": + var animations := {} + if line.begins_with('join'): + animations = DialogicPortraitAnimationUtil.get_portrait_animations_filtered(DialogicPortraitAnimationUtil.AnimationType.IN) + elif line.begins_with('update'): + animations = DialogicPortraitAnimationUtil.get_portrait_animations_filtered(DialogicPortraitAnimationUtil.AnimationType.ACTION) + elif line.begins_with('leave'): + animations = DialogicPortraitAnimationUtil.get_portrait_animations_filtered(DialogicPortraitAnimationUtil.AnimationType.OUT) + + for script: String in animations: + TextNode.add_code_completion_option(CodeEdit.KIND_VARIABLE, DialogicUtil.pretty_name(script), DialogicUtil.pretty_name(script), TextNode.syntax_highlighter.normal_color, null, '" ') + + "wait", "mirrored": + CodeCompletionHelper.suggest_bool(TextNode, TextNode.syntax_highlighter.normal_color) + "move_trans": + CodeCompletionHelper.suggest_custom_suggestions(list_to_suggestions(trans_options), TextNode, TextNode.syntax_highlighter.normal_color) + "move_ease": + CodeCompletionHelper.suggest_custom_suggestions(list_to_suggestions(ease_options), TextNode, TextNode.syntax_highlighter.normal_color) func suggest_parameter(parameter:String, line:String, TextNode:TextEdit) -> void: diff --git a/addons/dialogic/Modules/Character/event_position.gd b/addons/dialogic/Modules/Character/event_position.gd deleted file mode 100644 index e8b7e0a..0000000 --- a/addons/dialogic/Modules/Character/event_position.gd +++ /dev/null @@ -1,216 +0,0 @@ -@tool -class_name DialogicPositionEvent -extends DialogicEvent - -## Event that allows moving of positions (and characters that are on that position). -## Requires the Portraits subsystem to be present! - -enum Actions {CHANGE, RESET, RESET_ALL} - - -### Settings - -## The type of action: SetRelative, SetAbsolute, Reset, ResetAll -var action := Actions.CHANGE -## The position that should be affected -var position: String = "center" - -var relative_change := false - -## A string containing the position -## This string can contain x and y component: "x100 y200". -## Each component can be a percentage: "x.5% y1%" -var translation := "" -var set_translation := false # auto-set - -var rotation: float = 0 -var set_rotation := false # auto-set - -## A string -var rect_size := "" -var set_rect_size := false # auto-set - -var scale: Vector2 = Vector2() -var set_scale := false # auto-set - -## The time the tweening will take. -var tween_time: float = 0.5 - -var tween_ease := Tween.EaseType.EASE_IN_OUT -var tween_trans := Tween.TransitionType.TRANS_SINE - -var tween_await := true - -var ease_options := [ - {'label': 'In', 'value': Tween.EASE_IN}, - {'label': 'Out', 'value': Tween.EASE_OUT}, - {'label': 'In_Out', 'value': Tween.EASE_IN_OUT}, - {'label': 'Out_In', 'value': Tween.EASE_OUT_IN}, - ] - -var trans_options := [ - {'label': 'Linear', 'value': Tween.TRANS_LINEAR}, - {'label': 'Sine', 'value': Tween.TRANS_SINE}, - {'label': 'Quint', 'value': Tween.TRANS_QUINT}, - {'label': 'Quart', 'value': Tween.TRANS_QUART}, - {'label': 'Quad', 'value': Tween.TRANS_QUAD}, - {'label': 'Expo', 'value': Tween.TRANS_EXPO}, - {'label': 'Elastic', 'value': Tween.TRANS_ELASTIC}, - {'label': 'Cubic', 'value': Tween.TRANS_CUBIC}, - {'label': 'Circ', 'value': Tween.TRANS_CIRC}, - {'label': 'Bounce', 'value': Tween.TRANS_BOUNCE}, - {'label': 'Back', 'value': Tween.TRANS_BACK}, - {'label': 'Spring', 'value': Tween.TRANS_SPRING} - ] - - -################################################################################ -## EXECUTE -################################################################################ -func _execute() -> void: - var final_movement_time: float = tween_time - - if dialogic.Inputs.auto_skip.enabled: - var time_per_event: float = dialogic.Inputs.auto_skip.time_per_event - final_movement_time = max(tween_time, time_per_event) - - var container: DialogicNode_PortraitContainer = dialogic.PortraitContainers.get_container(position) - match action: - Actions.RESET_ALL: - var tween := dialogic.create_tween().set_parallel(true).set_ease(tween_ease).set_trans(tween_trans) - dialogic.PortraitContainers.reset_all_containers(final_movement_time, tween) - if tween_await and tween.is_running(): - await tween.finished - Actions.RESET: - if container: - var tween := dialogic.create_tween().set_parallel(true).set_ease(tween_ease).set_trans(tween_trans) - dialogic.PortraitContainers.reset_container(container, final_movement_time, tween) - if tween_await and tween.is_running(): - await tween.finished - Actions.CHANGE: - if container == null: - container = dialogic.PortraitContainers.add_container(position, translation, rect_size) - - var tween := dialogic.create_tween().set_parallel(true).set_ease(tween_ease).set_trans(tween_trans) - if set_translation: - dialogic.PortraitContainers.translate_container(container, translation, relative_change, tween, tween_time) - if set_rotation: - dialogic.PortraitContainers.rotate_container(container, rotation, relative_change, tween, tween_time) - if set_rect_size: - dialogic.PortraitContainers.resize_container(container, rect_size, relative_change, tween, tween_time) - - if tween_await and tween.is_running(): - await tween.finished - - - finish() - - -################################################################################ -## INITIALIZE -################################################################################ - -func _init() -> void: - event_name = "Position" - set_default_color('Color2') - event_category = "Other" - event_sorting_index = 2 - - -func _get_icon() -> Resource: - return load(self.get_script().get_path().get_base_dir().path_join('event_portrait_position.svg')) - -################################################################################ -## SAVING/LOADING -################################################################################ - -func get_shortcode() -> String: - return "update_position" - - -func get_shortcode_parameters() -> Dictionary: - return { - #param_name : property_info - "action" : {"property": "action", "default": Actions.CHANGE, - "suggestions": func(): return {"Change":{'value':0, 'text_alt':['change', 'set']}, "Reset":{'value':1,'text_alt':['reset'] }, "Reset All":{'value':2,'text_alt':['reset_all']}}}, - "id" : {"property": "position", "default": "0"}, - "pos" : {"property": "translation", "default": ""}, - "rot" : {"property": "rotation", "default": 0}, - "size" : {"property": "rect_size", "default": Vector2()}, - "relative" : {"property":"relative_change", "default": false}, - "time" : {"property": "tween_time", "default": 0}, - "await" : {"property": "tween_await", "default": true}, - "ease" : {"property": "tween_ease", "default": Tween.EaseType.EASE_IN_OUT, - "suggestions": func(): return list_to_suggestions(ease_options)}, - "trans" : {"property": "tween_trans", "default": Tween.TransitionType.TRANS_SINE, - "suggestions": func(): return list_to_suggestions(trans_options)}, - } - - -################################################################################ -## EDITOR REPRESENTATION -################################################################################ - -func build_event_editor() -> void: - add_header_edit('action', ValueType.FIXED_OPTIONS, { - 'options': [ - { - 'label': 'Change', - 'value': Actions.CHANGE, - }, - { - 'label': 'Reset', - 'value': Actions.RESET, - }, - { - 'label': 'Reset All', - 'value': Actions.RESET_ALL, - } - ] - }) - add_header_edit("position", ValueType.DYNAMIC_OPTIONS, { - 'suggestions_func':get_position_suggestions, - 'placeholder': "Position"}, - 'action != Actions.RESET_ALL', - ) - add_body_edit('set_translation', ValueType.BOOL_BUTTON, - {'editor_icon': ["ToolMove", "EditorIcons"], 'tooltip':'Change translation'}, "action == Actions.CHANGE") - add_body_edit("translation", ValueType.SINGLELINE_TEXT, {'left_text':'Translate:'}, - "action == Actions.CHANGE and set_translation") - add_body_edit('set_rotation', ValueType.BOOL_BUTTON, - {'editor_icon': ["ToolRotate", "EditorIcons"], 'tooltip':'Change Rotation'}, "action == Actions.CHANGE") - add_body_edit("rotation", ValueType.NUMBER, {'left_text':'Rotate:', 'min':-360, 'max':360}, - "action == Actions.CHANGE and set_rotation") - add_body_edit('set_rect_size', ValueType.BOOL_BUTTON, - {'editor_icon': ["Rectangle", "EditorIcons"], 'tooltip':'Change Rect Size'}, "action == Actions.CHANGE") - add_body_edit("rect_size", ValueType.SINGLELINE_TEXT, {'left_text':'Rect Size:'}, - "action == Actions.CHANGE and set_rect_size") - add_body_edit("relative_change", ValueType.BOOL, {'left_text':"Relative:"}, "action == Actions.CHANGE") - add_body_line_break("action == Actions.CHANGE") - add_body_edit("tween_time", ValueType.NUMBER, {'left_text':"Time:"}) - add_body_edit("tween_await", ValueType.BOOL, {'left_text':"Await:"}, 'tween_time > 0') - add_body_edit("tween_trans", ValueType.FIXED_OPTIONS, {'options':trans_options, 'left_text':"Trans:"}, 'tween_time > 0') - add_body_edit("tween_ease", ValueType.FIXED_OPTIONS, {'options':ease_options, 'left_text':"Ease:"}, 'tween_time > 0') - - -func list_to_suggestions(list:Array) -> Dictionary: - return list.reduce( - func(accum, value): - accum[value.label] = value - accum[value.label]["text_alt"] = [value.label.to_lower()] - return accum, - {}) - - -func get_position_suggestions(search_text:String='') -> Dictionary: - var icon := load(this_folder.path_join('event_portrait_position.svg')) - var setting: String = ProjectSettings.get_setting('dialogic/portraits/position_suggestion_names', 'leftmost, left, center, right, rightmost') - - var suggestions := {} - if not search_text.is_empty(): - suggestions[search_text] = {'value':search_text.strip_edges(), 'editor_icon':["GuiScrollArrowRight", "EditorIcons"]} - for position_id in setting.split(','): - suggestions[position_id.strip_edges()] = {'value':position_id.strip_edges(), 'icon':icon} - if not search_text.is_empty() and position_id.strip_edges().begins_with(search_text): - suggestions.erase(search_text) - return suggestions diff --git a/addons/dialogic/Modules/Character/index.gd b/addons/dialogic/Modules/Character/index.gd index ff4bd3a..805d62a 100644 --- a/addons/dialogic/Modules/Character/index.gd +++ b/addons/dialogic/Modules/Character/index.gd @@ -3,7 +3,7 @@ extends DialogicIndexer func _get_events() -> Array: - return [this_folder.path_join('event_character.gd'), this_folder.path_join('event_position.gd')] + return [this_folder.path_join('event_character.gd')] func _get_subsystems() -> Array: @@ -16,5 +16,40 @@ func _get_text_effects() -> Array[Dictionary]: return [{'command':'portrait', 'subsystem':'Portraits', 'method':'text_effect_portrait', 'arg':true}] -func _get_special_resources() -> Array[Dictionary]: - return list_special_resources('DefaultAnimations', &'PortraitAnimation') +func _get_special_resources() -> Dictionary: + return {&'PortraitAnimation': list_animations("DefaultAnimations")} + + +func _get_portrait_scene_presets() -> Array[Dictionary]: + return [ + { + "path": "", + "name": "Default Scene", + "description": "The default scene defined in Settings>Portraits.", + "author":"Dialogic", + "type": "Default", + "icon":"", + "preview_image":[this_folder.path_join("default_portrait_thumbnail.png")], + "documentation":"", + }, + { + "path": "CUSTOM", + "name": "Custom Scene", + "description": "A custom scene. Should extend DialogicPortrait and be in @tool mode.", + "author":"Dialogic", + "type": "Custom", + "icon":"", + "preview_image":[this_folder.path_join("custom_portrait_thumbnail.png")], + "documentation":"https://docs.dialogic.pro/custom-portraits.html", + }, + { + "path": this_folder.path_join("default_portrait.tscn"), + "name": "Simple Image Portrait", + "description": "Can display images as portraits. Does nothing else.", + "author":"Dialogic", + "type": "General", + "icon":"", + "preview_image":[this_folder.path_join("simple_image_portrait_thumbnail.png")], + "documentation":"", + } + ] diff --git a/addons/dialogic/Modules/Character/node_portrait_container.gd b/addons/dialogic/Modules/Character/node_portrait_container.gd index 21f8ed7..316db94 100644 --- a/addons/dialogic/Modules/Character/node_portrait_container.gd +++ b/addons/dialogic/Modules/Character/node_portrait_container.gd @@ -22,7 +22,12 @@ enum PositionModes { @export var portrait_prefix := '' @export_subgroup('Portrait Placement') -enum SizeModes {KEEP, FIT_STRETCH, FIT_IGNORE_SCALE, FIT_SCALE_HEIGHT} +enum SizeModes { + KEEP, ## The height and width of the container have no effect, only the origin. + FIT_STRETCH, ## The portrait will be fitted into the container, ignoring it's aspect ratio and the character/portrait scale. + FIT_IGNORE_SCALE, ## The portrait will be fitted into the container, ignoring the character/portrait scale, but preserving the aspect ratio. + FIT_SCALE_HEIGHT ## Recommended. The portrait will be scaled to fit the container height. A character/portrait scale of 100% means 100% container height. Aspect ratio will be preserved. + } ## Defines how to affect the scale of the portrait @export var size_mode: SizeModes = SizeModes.FIT_SCALE_HEIGHT : set(mode): @@ -63,7 +68,7 @@ enum PivotModes {AT_ORIGIN, PERCENTAGE, PIXELS} set(character): debug_character = character _update_debug_portrait_scene() -@export var debug_character_portrait: String = "": +@export var debug_character_portrait := "": set(portrait): debug_character_portrait = portrait _update_debug_portrait_scene() @@ -187,8 +192,8 @@ func _update_debug_portrait_scene() -> void: if mode == PositionModes.SPEAKER and !portrait_prefix.is_empty(): if portrait_prefix+debug_portrait in character.portraits: debug_portrait = portrait_prefix+debug_portrait - var portrait_info :Dictionary = character.get_portrait_info(debug_portrait) - var portrait_scene_path :String = portrait_info.get('scene', default_portrait_scene) + var portrait_info: Dictionary = character.get_portrait_info(debug_portrait) + var portrait_scene_path: String = portrait_info.get('scene', default_portrait_scene) if portrait_scene_path.is_empty(): portrait_scene_path = default_portrait_scene debug_character_scene_node = load(portrait_scene_path).instantiate() if !is_instance_valid(debug_character_scene_node): diff --git a/addons/dialogic/Modules/Character/event_portrait_position.svg b/addons/dialogic/Modules/Character/portrait_position.svg similarity index 100% rename from addons/dialogic/Modules/Character/event_portrait_position.svg rename to addons/dialogic/Modules/Character/portrait_position.svg diff --git a/addons/dialogic/Modules/Character/settings_portraits.gd b/addons/dialogic/Modules/Character/settings_portraits.gd index 2e4b206..5e13819 100644 --- a/addons/dialogic/Modules/Character/settings_portraits.gd +++ b/addons/dialogic/Modules/Character/settings_portraits.gd @@ -21,7 +21,7 @@ func _ready(): %JoinDefault.mode = 1 %LeaveDefault.get_suggestions_func = get_leave_animation_suggestions %LeaveDefault.mode = 1 - %CrossFadeDefault.get_suggestions_func = get_join_animation_suggestions + %CrossFadeDefault.get_suggestions_func = get_crossfade_animation_suggestions %CrossFadeDefault.mode = 1 %PositionSuggestions.text_submitted.connect(save_setting.bind(POSITION_SUGGESTION_KEY)) @@ -55,25 +55,19 @@ func _refresh(): # JOIN %JoinDefault.resource_icon = get_theme_icon(&"Animation", &"EditorIcons") - %JoinDefault.set_value(DialogicUtil.pretty_name( - ProjectSettings.get_setting(ANIMATION_JOIN_DEFAULT_KEY, - get_script().resource_path.get_base_dir().path_join('DefaultAnimations/fade_in_up.gd')))) + %JoinDefault.set_value(ProjectSettings.get_setting(ANIMATION_JOIN_DEFAULT_KEY, "Fade In Up")) %JoinDefaultLength.set_value(ProjectSettings.get_setting(ANIMATION_JOIN_DEFAULT_LENGTH_KEY, 0.5)) %JoinDefaultWait.button_pressed = ProjectSettings.get_setting(ANIMATION_JOIN_DEFAULT_WAIT_KEY, true) # LEAVE %LeaveDefault.resource_icon = get_theme_icon(&"Animation", &"EditorIcons") - %LeaveDefault.set_value( - ProjectSettings.get_setting(ANIMATION_LEAVE_DEFAULT_KEY, - get_script().resource_path.get_base_dir().path_join('DefaultAnimations/fade_out_down.gd'))) + %LeaveDefault.set_value(ProjectSettings.get_setting(ANIMATION_LEAVE_DEFAULT_KEY, "Fade Out Down")) %LeaveDefaultLength.set_value(ProjectSettings.get_setting(ANIMATION_LEAVE_DEFAULT_LENGTH_KEY, 0.5)) %LeaveDefaultWait.button_pressed = ProjectSettings.get_setting(ANIMATION_LEAVE_DEFAULT_WAIT_KEY, true) # CROSS FADE %CrossFadeDefault.resource_icon = get_theme_icon(&"Animation", &"EditorIcons") - %CrossFadeDefault.set_value( - ProjectSettings.get_setting(ANIMATION_CROSSFADE_DEFAULT_KEY, - get_script().resource_path.get_base_dir().path_join('DefaultAnimations/fade_in.gd'))) + %CrossFadeDefault.set_value(ProjectSettings.get_setting(ANIMATION_CROSSFADE_DEFAULT_KEY, "Fade Cross")) %CrossFadeDefaultLength.set_value(ProjectSettings.get_setting(ANIMATION_CROSSFADE_DEFAULT_LENGTH_KEY, 0.5)) @@ -87,23 +81,15 @@ func save_setting(value:Variant, settings_key:String) -> void: func get_join_animation_suggestions(search_text:String) -> Dictionary: - var suggestions := {} - for anim in list_animations(): - if '_in' in anim.get_file(): - suggestions[DialogicUtil.pretty_name(anim)] = {'value':anim, 'icon':get_theme_icon('Animation', 'EditorIcons')} - return suggestions + return DialogicPortraitAnimationUtil.get_suggestions(search_text, %JoinDefault.current_value, "", DialogicPortraitAnimationUtil.AnimationType.IN) func get_leave_animation_suggestions(search_text:String) -> Dictionary: - var suggestions := {} - for anim in list_animations(): - if '_out' in anim.get_file(): - suggestions[DialogicUtil.pretty_name(anim)] = {'value':anim, 'icon':get_theme_icon('Animation', 'EditorIcons')} - return suggestions + return DialogicPortraitAnimationUtil.get_suggestions(search_text, %LeaveDefault.current_value, "", DialogicPortraitAnimationUtil.AnimationType.OUT) + + +func get_crossfade_animation_suggestions(search_text:String) -> Dictionary: + return DialogicPortraitAnimationUtil.get_suggestions(search_text, %CrossFadeDefault.current_value, "", DialogicPortraitAnimationUtil.AnimationType.CROSSFADE) -func list_animations() -> Array: - var list := DialogicUtil.listdir(get_script().resource_path.get_base_dir().path_join('DefaultAnimations'), true, false, true) - list.append_array(DialogicUtil.listdir(ProjectSettings.get_setting('dialogic/animations/custom_folder', 'res://addons/dialogic_additions/Animations'), true, false, true)) - return list diff --git a/addons/dialogic/Modules/Character/simple_image_portrait_thumbnail.png b/addons/dialogic/Modules/Character/simple_image_portrait_thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..656215f706a361304b8ab69fe6b2aa6f22636054 GIT binary patch literal 3462 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 Vtf?`)4(?D8J1Zy4T64_xe*kv1S7HDF literal 0 HcmV?d00001 diff --git a/addons/dialogic/Modules/Character/subsystem_containers.gd b/addons/dialogic/Modules/Character/subsystem_containers.gd index fb13ea1..cf89c34 100644 --- a/addons/dialogic/Modules/Character/subsystem_containers.gd +++ b/addons/dialogic/Modules/Character/subsystem_containers.gd @@ -45,11 +45,11 @@ func add_container(position_id: String, position := "", size := "") -> DialogicN if example_position: var new_position := DialogicNode_PortraitContainer.new() example_position.get_parent().add_child(new_position) + new_position.name = "Portrait_"+position_id.validate_node_name() new_position.size = str_to_vector(size) copy_container_setup(example_position, new_position) new_position.container_ids = [position_id] new_position.position = str_to_vector(position)-new_position._get_origin_position() - new_position.name = "Portrait_"+position_id.validate_node_name() position_changed.emit({&'change':'added', &'container_node':new_position, &'position_id':position_id}) return new_position return null @@ -181,7 +181,7 @@ func resize_container(container: DialogicNode_PortraitContainer, rect_size: Vari tween.finished.connect(save_position_container.bind(container)) else: container.position = container.position + relative_position_change - container.size = final_rect_resize + container.set_deferred("size", final_rect_resize) save_position_container(container) position_changed.emit({&'change':'resized', &'container_node':container}) diff --git a/addons/dialogic/Modules/Character/subsystem_portraits.gd b/addons/dialogic/Modules/Character/subsystem_portraits.gd index 6431b22..28f2c5d 100644 --- a/addons/dialogic/Modules/Character/subsystem_portraits.gd +++ b/addons/dialogic/Modules/Character/subsystem_portraits.gd @@ -254,6 +254,9 @@ func _animate_node(node: Node, animation_path: String, length: float, repeats := ## Moves the given portrait to the given container. func _move_character(character_node: Node2D, transform:="", time := 0.0, easing:= Tween.EASE_IN_OUT, trans:= Tween.TRANS_SINE) -> void: var tween := character_node.create_tween().set_ease(easing).set_trans(trans).set_parallel() + if time == 0: + tween.kill() + tween = null var container: DialogicNode_PortraitContainer = character_node.get_parent() dialogic.PortraitContainers.move_container(container, transform, tween, time) @@ -299,8 +302,8 @@ func z_sort_portrait_containers(con1: DialogicNode_PortraitContainer, con2: Dial ## Private method to remove a [param portrait_node]. func _remove_portrait(portrait_node: Node) -> void: + portrait_node.get_parent().remove_child(portrait_node) portrait_node.queue_free() - #_remove_portrait_timed(portrait_node) ## Gets the default animation length for joining characters @@ -391,11 +394,11 @@ func join_character(character:DialogicCharacter, portrait:String, position_id:S character_joined.emit(info) if animation_name.is_empty(): - animation_name = ProjectSettings.get_setting('dialogic/animations/join_default', "Fade Up In") + animation_name = ProjectSettings.get_setting('dialogic/animations/join_default', "Fade In Up") animation_length = _get_join_default_length() animation_wait = ProjectSettings.get_setting('dialogic/animations/join_default_wait', true) - animation_name = DialogicResourceUtil.guess_special_resource("PortraitAnimation", animation_name, "") + animation_name = DialogicPortraitAnimationUtil.guess_animation(animation_name, DialogicPortraitAnimationUtil.AnimationType.IN) if animation_name and animation_length > 0: var anim: DialogicAnimation = _animate_node(character_node, animation_name, animation_length) @@ -447,10 +450,10 @@ func change_character_portrait(character: DialogicCharacter, portrait: String, f return if fade_animation == "DEFAULT": - fade_animation = ProjectSettings.get_setting('dialogic/animations/cross_fade_default', "Fade In Out") + fade_animation = ProjectSettings.get_setting('dialogic/animations/cross_fade_default', "Fade Cross") fade_length = ProjectSettings.get_setting('dialogic/animations/cross_fade_default_length', 0.5) - fade_animation = DialogicResourceUtil.guess_special_resource("PortraitAnimation", fade_animation, fade_animation) + fade_animation = DialogicPortraitAnimationUtil.guess_animation(fade_animation, DialogicPortraitAnimationUtil.AnimationType.CROSSFADE) var info := _change_portrait(dialogic.current_state_info.portraits[character.resource_path].node, portrait, fade_animation, fade_length) dialogic.current_state_info.portraits[character.resource_path].portrait = info.portrait @@ -493,10 +496,9 @@ func animate_character(character: DialogicCharacter, animation_path: String, len if not is_character_joined(character): return null - animation_path = DialogicResourceUtil.guess_special_resource("PortraitAnimation", animation_path, "") + animation_path = DialogicPortraitAnimationUtil.guess_animation(animation_path) var character_node: Node = dialogic.current_state_info.portraits[character.resource_path].node - #var portrait_node: Node = character_node.get_child(-1) return _animate_node(character_node, animation_path, length, repeats, is_reversed) @@ -520,11 +522,11 @@ func leave_character(character: DialogicCharacter, animation_name:= "", animatio return if animation_name.is_empty(): - animation_name = ProjectSettings.get_setting('dialogic/animations/leave_default', "Fade Down Out") + animation_name = ProjectSettings.get_setting('dialogic/animations/leave_default', "Fade Out Down") animation_length = _get_leave_default_length() animation_wait = ProjectSettings.get_setting('dialogic/animations/leave_default_wait', true) - animation_name = DialogicResourceUtil.guess_special_resource("PortraitAnimation", animation_name, "") + animation_name = DialogicPortraitAnimationUtil.guess_animation(animation_name, DialogicPortraitAnimationUtil.AnimationType.OUT) if not animation_name.is_empty(): var character_node := get_character_node(character) @@ -552,8 +554,8 @@ func leave_all_characters(animation_name:="", animation_length:=0.0, animation_w ## Return `null` if the [param character] is not part of the scene. func get_character_node(character: DialogicCharacter) -> Node: if is_character_joined(character): - return dialogic.current_state_info['portraits'][character.resource_path].node - + if is_instance_valid(dialogic.current_state_info['portraits'][character.resource_path].node): + return dialogic.current_state_info['portraits'][character.resource_path].node return null @@ -564,6 +566,7 @@ func remove_character(character: DialogicCharacter) -> void: if is_instance_valid(character_node) and character_node is Node: var container := character_node.get_parent() + container.get_parent().remove_child(container) container.queue_free() character_node.queue_free() character_left.emit({'character': character}) @@ -610,51 +613,65 @@ func get_character_info(character:DialogicCharacter) -> Dictionary: #endregion -#region Positions -#################################################################################################### - -#endregion - - #region SPEAKER PORTRAIT CONTAINERS #################################################################################################### ## Updates all portrait containers set to SPEAKER. func change_speaker(speaker: DialogicCharacter = null, portrait := "") -> void: for container: Node in get_tree().get_nodes_in_group('dialogic_portrait_con_speaker'): - + var just_joined := true for character_node: Node in container.get_children(): - if not character_node.get_meta('character') == speaker: - - for portrait_node: Node in character_node.get_children(): - _remove_portrait(portrait_node) + var leave_animation: String = ProjectSettings.get_setting('dialogic/animations/leave_default', "Fade Out") + leave_animation = DialogicPortraitAnimationUtil.guess_animation(leave_animation, DialogicPortraitAnimationUtil.AnimationType.OUT) + var leave_animation_length := _get_leave_default_length() + + if leave_animation and leave_animation_length: + var animate_out := _animate_node(character_node, leave_animation, leave_animation_length, 1, true) + animate_out.finished.connect(character_node.queue_free) + else: + character_node.get_parent().remove_child(character_node) + character_node.queue_free() + else: + just_joined = false if speaker == null or speaker.portraits.is_empty(): continue - if container.get_children().is_empty(): + if just_joined: _create_character_node(speaker, container) + elif portrait.is_empty(): continue if portrait.is_empty(): portrait = speaker.default_portrait + var fade_animation: String = ProjectSettings.get_setting('dialogic/animations/cross_fade_default', "Fade Cross") + var fade_length: float = ProjectSettings.get_setting('dialogic/animations/cross_fade_default_length', 0.5) + + fade_animation = DialogicPortraitAnimationUtil.guess_animation(fade_animation, DialogicPortraitAnimationUtil.AnimationType.CROSSFADE) + if container.portrait_prefix+portrait in speaker.portraits: - _change_portrait(container.get_child(-1), container.portrait_prefix+portrait) - else: - _change_portrait(container.get_child(-1), portrait) + portrait = container.portrait_prefix+portrait + + _change_portrait(container.get_child(-1), portrait, fade_animation, fade_length) # if the character has no portraits _change_portrait won't actually add a child node if container.get_child(-1).get_child_count() == 0: continue + if just_joined: + var join_animation: String = ProjectSettings.get_setting('dialogic/animations/join_default', "Fade In Up") + join_animation = DialogicPortraitAnimationUtil.guess_animation(join_animation, DialogicPortraitAnimationUtil.AnimationType.IN) + var join_animation_length := _get_join_default_length() + + if join_animation and join_animation_length: + _animate_node(container.get_child(-1), join_animation, join_animation_length) + _change_portrait_mirror(container.get_child(-1)) if speaker: - if speaker.resource_path != dialogic.current_state_info['speaker']: - if dialogic.current_state_info['speaker'] and is_character_joined(load(dialogic.current_state_info['speaker'])): dialogic.current_state_info['portraits'][dialogic.current_state_info['speaker']].node.get_child(-1)._unhighlight() diff --git a/addons/dialogic/Modules/Choice/event_choice.gd b/addons/dialogic/Modules/Choice/event_choice.gd index c9cb59c..9b603fc 100644 --- a/addons/dialogic/Modules/Choice/event_choice.gd +++ b/addons/dialogic/Modules/Choice/event_choice.gd @@ -9,24 +9,30 @@ enum ElseActions {HIDE=0, DISABLE=1, DEFAULT=2} ### Settings ## The text that is displayed on the choice button. -var text :String = "" +var text := "" ## If not empty this condition will determine if this choice is active. -var condition: String = "" +var condition := "" ## Determines what happens if [condition] is false. Default will use the action set in the settings. -var else_action: = ElseActions.DEFAULT +var else_action := ElseActions.DEFAULT ## The text that is displayed if [condition] is false and [else_action] is Disable. ## If empty [text] will be used for disabled button as well. -var disabled_text: String = "" +var disabled_text := "" +## A dictionary that can be filled with arbitrary information +## This can then be interpreted by a custom choice layer +var extra_data := {} + + +## UI helper +var _has_condition := false #endregion -var regex := RegEx.create_from_string(r'- (?(?(?=\[if)|.)*)(\[if (?([^\]\[]|\[[^\]]*\])+)])?\s?(\s*\[(?.*)\])?') +var regex := RegEx.create_from_string(r'- (?(?>\\\||(?(?=.*\|)[^|]|(?!\[if)[^|]))*)\|?\s*(\[if(?([^\]\[]|\[[^\]]*\])+)\])?\s*(\[(?[^]]*)\])?') #region EXECUTION ################################################################################ func _execute() -> void: - if dialogic.Choices.is_question(dialogic.current_event_idx): dialogic.Choices.show_current_question(false) dialogic.current_state = dialogic.States.AWAITING_CHOICE @@ -59,21 +65,19 @@ func to_text() -> String: var result_string := "" result_string = "- "+text.strip_edges() - if condition: - result_string += " [if "+condition+"]" - + var shortcode := store_to_shortcode_parameters() + if (condition and _has_condition) or shortcode: + result_string += " |" + if condition and _has_condition: + result_string += " [if " + condition + "]" + + if shortcode or extra_data: + result_string += " [" + shortcode + if extra_data: + for i in extra_data: + result_string += ' ' + i + '="' + value_to_string(extra_data[i]) + '"' + result_string += "]" - var shortcode := '[' - if else_action == ElseActions.HIDE: - shortcode += 'else="hide"' - elif else_action == ElseActions.DISABLE: - shortcode += 'else="disable"' - - if disabled_text: - shortcode += " alt_text="+'"'+disabled_text+'"' - - if len(shortcode) > 1: - result_string += shortcode + "]" return result_string @@ -81,16 +85,27 @@ func from_text(string:String) -> void: var result := regex.search(string.strip_edges()) if result == null: return - text = result.get_string('text') - condition = result.get_string('condition') + text = result.get_string('text').strip_edges() + condition = result.get_string('condition').strip_edges() + _has_condition = not condition.is_empty() if result.get_string('shortcode'): - var shortcode_params := parse_shortcode_parameters(result.get_string('shortcode')) - else_action = { - 'default':ElseActions.DEFAULT, - 'hide':ElseActions.HIDE, - 'disable':ElseActions.DISABLE}.get(shortcode_params.get('else', ''), ElseActions.DEFAULT) + load_from_shortcode_parameters(result.get_string("shortcode")) + var shortcode := parse_shortcode_parameters(result.get_string('shortcode')) + shortcode.erase("else") + shortcode.erase("alt_text") + extra_data = shortcode.duplicate() - disabled_text = shortcode_params.get('alt_text', '') + +func get_shortcode_parameters() -> Dictionary: + return { + "else" : {"property": "else_action", "default": ElseActions.DEFAULT, + "suggestions": func(): return { + "Default" :{'value':ElseActions.DEFAULT, 'text_alt':['default']}, + "Hide" :{'value':ElseActions.HIDE,'text_alt':['hide'] }, + "Disable" :{'value':ElseActions.DISABLE,'text_alt':['disable']}}}, + "alt_text" : {"property": "disabled_text", "default": ""}, + "extra_data" : {"property": "extra_data", "default": {}, "custom_stored":true}, + } func is_valid_event(string:String) -> bool: @@ -122,8 +137,11 @@ func _get_property_original_translation(property:String) -> String: func build_event_editor() -> void: add_header_edit("text", ValueType.SINGLELINE_TEXT, {'autofocus':true}) - add_body_edit("condition", ValueType.CONDITION, {'left_text':'if '}) - add_body_edit("else_action", ValueType.FIXED_OPTIONS, {'left_text':'else ', + add_body_edit("", ValueType.LABEL, {"text":"Condition:"}) + add_body_edit("_has_condition", ValueType.BOOL_BUTTON, {"editor_icon":["Add", "EditorIcons"], "tooltip":"Add Condition"}, "not _has_condition") + add_body_edit("condition", ValueType.CONDITION, {}, "_has_condition") + add_body_edit("_has_condition", ValueType.BOOL_BUTTON, {"editor_icon":["Remove", "EditorIcons"], "tooltip":"Remove Condition"}, "_has_condition") + add_body_edit("else_action", ValueType.FIXED_OPTIONS, {'left_text':'Else:', 'options': [ { 'label': 'Default', @@ -137,14 +155,16 @@ func build_event_editor() -> void: 'label': 'Disable', 'value': ElseActions.DISABLE, } - ]}, '!condition.is_empty()') + ]}, '_has_condition') add_body_edit("disabled_text", ValueType.SINGLELINE_TEXT, { 'left_text':'Disabled text:', 'placeholder':'(Empty for same)'}, 'allow_alt_text()') + add_body_line_break() + add_body_edit("extra_data", ValueType.DICTIONARY, {"left_text":"Extra Data:"}) func allow_alt_text() -> bool: - return condition and ( + return _has_condition and ( else_action == ElseActions.DISABLE or (else_action == ElseActions.DEFAULT and ProjectSettings.get_setting("dialogic/choices/def_false_behaviour", 0) == 1)) @@ -186,6 +206,9 @@ func _get_syntax_highlighting(Highlighter:SyntaxHighlighter, dict:Dictionary, li dict[0] = {'color':event_color} + if not result: + return dict + var condition_begin := result.get_start("condition") var condition_end := result.get_end("condition") @@ -199,8 +222,8 @@ func _get_syntax_highlighting(Highlighter:SyntaxHighlighter, dict:Dictionary, li dict[from+1] = {"color":Highlighter.code_flow_color} dict[condition_begin] = {"color":Highlighter.normal_color} dict = Highlighter.color_condition(dict, line, condition_begin, condition_end) - if shortcode_begin: - dict = Highlighter.color_shortcode_content(dict, line, shortcode_begin, 0, event_color) + if shortcode_begin: + dict = Highlighter.color_shortcode_content(dict, line, shortcode_begin, 0, event_color) return dict #endregion diff --git a/addons/dialogic/Modules/Choice/node_button_sound.gd b/addons/dialogic/Modules/Choice/node_button_sound.gd index ccbff4a..3f6cdbe 100644 --- a/addons/dialogic/Modules/Choice/node_button_sound.gd +++ b/addons/dialogic/Modules/Choice/node_button_sound.gd @@ -3,13 +3,13 @@ extends AudioStreamPlayer ## Node that is used for playing sound effects on hover/focus/press of sibling DialogicNode_ChoiceButtons. -## Sound to be played if one of the sibling ChoiceButtons is pressed. +## Sound to be played if one of the sibling ChoiceButtons is pressed. ## If sibling ChoiceButton has a sound_pressed set, that is prioritized. -@export var sound_pressed:AudioStream +@export var sound_pressed: AudioStream ## Sound to be played on hover. See [sound_pressed] for more. -@export var sound_hover:AudioStream +@export var sound_hover: AudioStream ## Sound to be played on focus. See [sound_pressed] for more. -@export var sound_focus:AudioStream +@export var sound_focus: AudioStream func _ready() -> void: add_to_group('dialogic_button_sound') diff --git a/addons/dialogic/Modules/Choice/settings_choices.gd b/addons/dialogic/Modules/Choice/settings_choices.gd index cfd736d..66e4482 100644 --- a/addons/dialogic/Modules/Choice/settings_choices.gd +++ b/addons/dialogic/Modules/Choice/settings_choices.gd @@ -7,8 +7,8 @@ func _refresh() -> void: %FalseBehaviour.select(ProjectSettings.get_setting('dialogic/choices/def_false_behaviour', 0)) %HotkeyType.select(ProjectSettings.get_setting('dialogic/choices/hotkey_behaviour', 0)) - var reveal_delay :float = ProjectSettings.get_setting('dialogic/choices/reveal_delay', 0) - var reveal_by_input :bool = ProjectSettings.get_setting('dialogic/choices/reveal_by_input', false) + var reveal_delay: float = ProjectSettings.get_setting('dialogic/choices/reveal_delay', 0) + var reveal_by_input: bool = ProjectSettings.get_setting('dialogic/choices/reveal_by_input', false) if not reveal_by_input and reveal_delay == 0: _on_appear_mode_item_selected(0) if not reveal_by_input and reveal_delay != 0: diff --git a/addons/dialogic/Modules/Choice/subsystem_choices.gd b/addons/dialogic/Modules/Choice/subsystem_choices.gd index 8c5bb0d..615b822 100644 --- a/addons/dialogic/Modules/Choice/subsystem_choices.gd +++ b/addons/dialogic/Modules/Choice/subsystem_choices.gd @@ -6,19 +6,19 @@ extends DialogicSubsystem signal choice_selected(info:Dictionary) ## Emitted when a set of choices is reached and shown. ## Info includes the keys 'choices' (an array of dictionaries with infos on all the choices). -signal choices_shown(info:Dictionary) +signal question_shown(info:Dictionary) ## Contains information on the latest question. var last_question_info := {} ## The delay between the text finishing revealing and the choices appearing -var reveal_delay: float = 0.0 +var reveal_delay := 0.0 ## If true the player has to click to reveal choices when they are reached -var reveal_by_input: bool = false +var reveal_by_input := false ## The delay between the choices becoming visible and being clickable. Can prevent accidental selection. -var block_delay: float = 0.2 +var block_delay := 0.2 ## If true, the first (top-most) choice will be focused -var autofocus_first_choice: bool = true +var autofocus_first_choice := true enum FalseBehaviour {HIDE=0, DISABLE=1} @@ -68,10 +68,6 @@ func hide_all_choices() -> void: node.disconnect('button_up', _on_choice_selected) - -func show_choices() -> void: - hide_all_choices() - ## Collects information on all the choices of the current question. ## The result is a dictionary like this: ## {'choices': @@ -114,11 +110,14 @@ func get_current_question_info() -> Dictionary: var hide := choice_event.else_action == DialogicChoiceEvent.ElseActions.HIDE hide = hide or choice_event.else_action == DialogicChoiceEvent.ElseActions.DEFAULT and default_false_behaviour == DialogicChoiceEvent.ElseActions.HIDE choice_info['visible'] = not hide + if not hide: button_idx += 1 choice_info.text = dialogic.Text.parse_text(choice_info.text, true, true, false, true, false, false) + choice_info.merge(choice_event.extra_data) + if dialogic.has_subsystem('History'): choice_info['visited_before'] = dialogic.History.has_event_been_visited(choice_index) @@ -179,7 +178,9 @@ func show_current_question(instant:=true) -> void: if node.pressed.is_connected(_on_choice_selected): node.pressed.disconnect(_on_choice_selected) node.pressed.connect(_on_choice_selected.bind(choice)) + _choice_blocker.start(block_delay) + question_shown.emit(question_info) if missing_button: printerr("[Dialogic] The layout you are using doesn't have enough Choice Buttons for the choices you are trying to display.") diff --git a/addons/dialogic/Modules/Choice/ui_choice_end.gd b/addons/dialogic/Modules/Choice/ui_choice_end.gd index f6e4837..acc5d82 100644 --- a/addons/dialogic/Modules/Choice/ui_choice_end.gd +++ b/addons/dialogic/Modules/Choice/ui_choice_end.gd @@ -17,9 +17,9 @@ func refresh() -> void: func _on_add_choice_pressed() -> void: - var timeline = find_parent('VisualEditor') + var timeline := find_parent('VisualEditor') if timeline: - var resource = DialogicChoiceEvent.new() + var resource := DialogicChoiceEvent.new() resource.created_by_button = true timeline.add_event_undoable(resource, get_parent().get_index()+1) timeline.indent_events() diff --git a/addons/dialogic/Modules/Clear/event_clear.gd b/addons/dialogic/Modules/Clear/event_clear.gd index c675cda..f7ea830 100644 --- a/addons/dialogic/Modules/Clear/event_clear.gd +++ b/addons/dialogic/Modules/Clear/event_clear.gd @@ -34,7 +34,7 @@ func _execute() -> void: if clear_portraits and dialogic.has_subsystem('Portraits') and len(dialogic.Portraits.get_joined_characters()) != 0: if final_time == 0: - dialogic.Portraits.leave_all_characters(DialogicResourceUtil.guess_special_resource("PortraitAnimation", 'Instant In Or Out'), final_time, step_by_step) + dialogic.Portraits.leave_all_characters(DialogicResourceUtil.guess_special_resource("PortraitAnimation", 'Instant In Or Out').path, final_time, step_by_step) else: dialogic.Portraits.leave_all_characters("", final_time, step_by_step) if step_by_step: await dialogic.get_tree().create_timer(final_time).timeout diff --git a/addons/dialogic/Modules/Comment/event_comment.gd b/addons/dialogic/Modules/Comment/event_comment.gd index cbc25b8..ad0b1dd 100644 --- a/addons/dialogic/Modules/Comment/event_comment.gd +++ b/addons/dialogic/Modules/Comment/event_comment.gd @@ -8,7 +8,7 @@ extends DialogicEvent ### Settings ## Content of the comment. -var text :String = "" +var text := "" ################################################################################ @@ -36,8 +36,7 @@ func _init() -> void: ################################################################################ func to_text() -> String: - var result_string = "# "+text - return result_string + return "# "+text func from_text(string:String) -> void: diff --git a/addons/dialogic/Modules/Condition/event_condition.gd b/addons/dialogic/Modules/Condition/event_condition.gd index 3a21b8b..0f8bed8 100644 --- a/addons/dialogic/Modules/Condition/event_condition.gd +++ b/addons/dialogic/Modules/Condition/event_condition.gd @@ -10,7 +10,7 @@ enum ConditionTypes {IF, ELIF, ELSE} ## condition type (see [ConditionTypes]). Defaults to if. var condition_type := ConditionTypes.IF ## The condition as a string. Will be executed as an Expression. -var condition: String = "" +var condition := "" ################################################################################ @@ -26,7 +26,7 @@ func _execute() -> void: var result :bool= dialogic.Expressions.execute_condition(condition) if not result: - var idx :int= dialogic.current_event_idx + var idx :int = dialogic.current_event_idx var ignore := 1 while true: idx += 1 diff --git a/addons/dialogic/Modules/Condition/ui_condition_end.gd b/addons/dialogic/Modules/Condition/ui_condition_end.gd index b5200ce..4a5ac1d 100644 --- a/addons/dialogic/Modules/Condition/ui_condition_end.gd +++ b/addons/dialogic/Modules/Condition/ui_condition_end.gd @@ -1,12 +1,14 @@ @tool extends HBoxContainer -var parent_resource = null +var parent_resource: DialogicEvent = null + func _ready() -> void: $AddElif.button_up.connect(add_elif) $AddElse.button_up.connect(add_else) + func refresh() -> void: if parent_resource is DialogicConditionEvent: # hide add elif and add else button on ELSE event @@ -15,9 +17,9 @@ func refresh() -> void: $Label.text = "End of "+["IF", "ELIF", "ELSE"][parent_resource.condition_type]+" ("+parent_resource.condition+")" # hide add add else button if followed by ELIF or ELSE event - var timeline_editor = find_parent('VisualEditor') + var timeline_editor := find_parent('VisualEditor') if timeline_editor: - var next_event = null + var next_event: DialogicEvent = null if timeline_editor.get_block_below(get_parent()): next_event = timeline_editor.get_block_below(get_parent()).resource if next_event is DialogicConditionEvent: @@ -28,19 +30,21 @@ func refresh() -> void: else: hide() + func add_elif() -> void: - var timeline = find_parent('VisualEditor') + var timeline := find_parent('VisualEditor') if timeline: - var resource = DialogicConditionEvent.new() + var resource := DialogicConditionEvent.new() resource.condition_type = DialogicConditionEvent.ConditionTypes.ELIF timeline.add_event_undoable(resource, get_parent().get_index()+1) timeline.indent_events() timeline.something_changed() + func add_else() -> void: - var timeline = find_parent('VisualEditor') + var timeline := find_parent('VisualEditor') if timeline: - var resource = DialogicConditionEvent.new() + var resource := DialogicConditionEvent.new() resource.condition_type = DialogicConditionEvent.ConditionTypes.ELSE timeline.add_event_undoable(resource, get_parent().get_index()+1) timeline.indent_events() diff --git a/addons/dialogic/Modules/Core/index.gd b/addons/dialogic/Modules/Core/index.gd index a9a1791..7082d4b 100644 --- a/addons/dialogic/Modules/Core/index.gd +++ b/addons/dialogic/Modules/Core/index.gd @@ -20,3 +20,8 @@ func _get_text_effects() -> Array[Dictionary]: {'command':'ns', 'subsystem':'Inputs', 'method':'effect_noskip'}, {'command':'input', 'subsystem':'Inputs', 'method':'effect_input'}, ] + +func _get_text_modifiers() -> Array[Dictionary]: + return [ + {'subsystem':'Expressions', 'method':"modifier_condition", 'command':'if', 'mode':-1}, + ] diff --git a/addons/dialogic/Modules/Core/subsystem_animation.gd b/addons/dialogic/Modules/Core/subsystem_animation.gd index cffba65..4769134 100644 --- a/addons/dialogic/Modules/Core/subsystem_animation.gd +++ b/addons/dialogic/Modules/Core/subsystem_animation.gd @@ -3,24 +3,40 @@ extends DialogicSubsystem ## Subsystem that allows entering and leaving an animation state. signal finished +signal animation_interrupted -var prev_state: int = 0 +var prev_state: DialogicGameHandler.States = DialogicGameHandler.States.IDLE +var _is_animating := false #region MAIN METHODS #################################################################################################### +func clear_game_state(_clear_flag := DialogicGameHandler.ClearFlags.FULL_CLEAR) -> void: + stop_animation() + + func is_animating() -> bool: - return dialogic.current_state == dialogic.States.ANIMATING + return _is_animating func start_animating() -> void: prev_state = dialogic.current_state dialogic.current_state = dialogic.States.ANIMATING + _is_animating = true func animation_finished(_arg := "") -> void: + # It can happen that the animation state has already been stopped + if not is_animating(): + return + _is_animating = false dialogic.current_state = prev_state as DialogicGameHandler.States finished.emit() + +func stop_animation() -> void: + animation_finished() + animation_interrupted.emit() + #endregion diff --git a/addons/dialogic/Modules/Core/subsystem_expression.gd b/addons/dialogic/Modules/Core/subsystem_expression.gd index 992aed7..61d2c79 100644 --- a/addons/dialogic/Modules/Core/subsystem_expression.gd +++ b/addons/dialogic/Modules/Core/subsystem_expression.gd @@ -51,6 +51,15 @@ func execute_condition(condition:String) -> bool: return true return false + +var condition_modifier_regex := RegEx.create_from_string(r"(?(DEFINE)(?([^{}]|\{(?P>nobraces)\})*))\[if *(?\{(?P>nobraces)\})(?(\\\]|\\\/|[^\]\/])*)(\/(?(\\\]|[^\]])*))?\]") +func modifier_condition(text:String) -> String: + for find in condition_modifier_regex.search_all(text): + if execute_condition(find.get_string("condition")): + text = text.replace(find.get_string(), find.get_string("truetext").strip_edges()) + else: + text = text.replace(find.get_string(), find.get_string("falsetext").strip_edges()) + return text #endregion diff --git a/addons/dialogic/Modules/Core/subsystem_input.gd b/addons/dialogic/Modules/Core/subsystem_input.gd index 209cb94..1c21f69 100644 --- a/addons/dialogic/Modules/Core/subsystem_input.gd +++ b/addons/dialogic/Modules/Core/subsystem_input.gd @@ -12,12 +12,15 @@ signal dialogic_action signal autoskip_timer_finished +const _SETTING_INPUT_ACTION := "dialogic/text/input_action" +const _SETTING_INPUT_ACTION_DEFAULT := "dialogic_default_action" + var input_block_timer := Timer.new() var _auto_skip_timer_left: float = 0.0 var action_was_consumed := false var auto_skip: DialogicAutoSkip = null -var auto_advance : DialogicAutoAdvance = null +var auto_advance: DialogicAutoAdvance = null var manual_advance: DialogicManualAdvance = null @@ -89,8 +92,8 @@ func handle_input() -> void: ## Unhandled Input is used for all NON-Mouse based inputs. func _unhandled_input(event:InputEvent) -> void: - if Input.is_action_just_pressed(ProjectSettings.get_setting('dialogic/text/input_action', 'dialogic_default_action')): - if event is InputEventMouse: + if is_input_pressed(event, true): + if event is InputEventMouse or event is InputEventScreenTouch: return handle_input() @@ -98,17 +101,21 @@ func _unhandled_input(event:InputEvent) -> void: ## Input is used for all mouse based inputs. ## If any DialogicInputNode is present this won't do anything (because that node handles MouseInput then). func _input(event:InputEvent) -> void: - if Input.is_action_just_pressed(ProjectSettings.get_setting('dialogic/text/input_action', 'dialogic_default_action')): - + if is_input_pressed(event): if not event is InputEventMouse or get_tree().get_nodes_in_group('dialogic_input').any(func(node):return node.is_visible_in_tree()): return handle_input() +func is_input_pressed(event: InputEvent, exact := false) -> bool: + var action: String = ProjectSettings.get_setting(_SETTING_INPUT_ACTION, _SETTING_INPUT_ACTION_DEFAULT) + return (event is InputEventAction and event.action == action) or Input.is_action_just_pressed(action, exact) + + ## This is called from the gui_input of the InputCatcher and DialogText nodes func handle_node_gui_input(event:InputEvent) -> void: - if Input.is_action_just_pressed(ProjectSettings.get_setting('dialogic/text/input_action', 'dialogic_default_action')): + if Input.is_action_just_pressed(ProjectSettings.get_setting(_SETTING_INPUT_ACTION, _SETTING_INPUT_ACTION_DEFAULT)): if event is InputEventMouseButton and event.pressed: DialogicUtil.autoload().Inputs.handle_input() @@ -119,7 +126,7 @@ func is_input_blocked() -> bool: func block_input(time:=0.1) -> void: if time > 0: - input_block_timer.wait_time = time + input_block_timer.wait_time = max(time, input_block_timer.time_left) input_block_timer.start() diff --git a/addons/dialogic/Modules/DefaultLayoutParts/Base_Default/default_layout_base.gd b/addons/dialogic/Modules/DefaultLayoutParts/Base_Default/default_layout_base.gd index 648b2cd..af6878c 100644 --- a/addons/dialogic/Modules/DefaultLayoutParts/Base_Default/default_layout_base.gd +++ b/addons/dialogic/Modules/DefaultLayoutParts/Base_Default/default_layout_base.gd @@ -4,6 +4,7 @@ extends DialogicLayoutBase ## The default layout base scene. @export var canvas_layer: int = 1 +@export var follow_viewport: bool = false @export_subgroup("Global") @export var global_bg_color: Color = Color(0, 0, 0, 0.9) @@ -15,5 +16,6 @@ extends DialogicLayoutBase func _apply_export_overrides() -> void: # apply layer set(&'layer', canvas_layer) + set(&'follow_viewport_enabled', follow_viewport) diff --git a/addons/dialogic/Modules/DefaultLayoutParts/Base_TextBubble/text_bubble_base.gd b/addons/dialogic/Modules/DefaultLayoutParts/Base_TextBubble/text_bubble_base.gd index 6f18a31..ed4707a 100644 --- a/addons/dialogic/Modules/DefaultLayoutParts/Base_TextBubble/text_bubble_base.gd +++ b/addons/dialogic/Modules/DefaultLayoutParts/Base_TextBubble/text_bubble_base.gd @@ -7,7 +7,7 @@ var bubbles: Array = [] var registered_characters: Dictionary = {} @export_group("Main") -@export_range(1, 25, 1) var bubble_count : int = 2 +@export_range(1, 25, 1) var bubble_count: int = 2 func _ready() -> void: @@ -24,12 +24,32 @@ func _ready() -> void: add_bubble() -func register_character(character:DialogicCharacter, node:Node): +func register_character(character:Variant, node:Node): + if typeof(character) == TYPE_STRING: + var character_string: String = character + if character.begins_with("res://"): + character = load(character) + else: + character = DialogicResourceUtil.get_character_resource(character) + if not character: + printerr("[Dialogic] Textbubble: Tried registering character from invalid string '", character_string, "'.") + registered_characters[character] = node if len(registered_characters) > len(bubbles) and len(bubbles) < bubble_count: add_bubble() +func _get_persistent_info() -> Dictionary: + return {"textbubble_registers": registered_characters} + + +func _load_persistent_info(info: Dictionary) -> void: + var register_info: Dictionary = info.get("textbubble_registers", {}) + for character in register_info: + if is_instance_valid(register_info[character]): + register_character(character, register_info[character]) + + func add_bubble() -> void: if not has_node('TextBubbleLayer'): return diff --git a/addons/dialogic/Modules/DefaultLayoutParts/Base_TextBubble/text_bubble_base.tscn b/addons/dialogic/Modules/DefaultLayoutParts/Base_TextBubble/text_bubble_base.tscn index c1c917c..27a00fc 100644 --- a/addons/dialogic/Modules/DefaultLayoutParts/Base_TextBubble/text_bubble_base.tscn +++ b/addons/dialogic/Modules/DefaultLayoutParts/Base_TextBubble/text_bubble_base.tscn @@ -13,6 +13,7 @@ bg_color = Color(0, 0, 0, 0.654902) script = ExtResource("1_urqwc") [node name="Example" type="Control" parent="."] +visible = false layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 diff --git a/addons/dialogic/Modules/DefaultLayoutParts/Layer_FullBackground/full_background_layer.tscn b/addons/dialogic/Modules/DefaultLayoutParts/Layer_FullBackground/full_background_layer.tscn index b476635..f1d44c0 100644 --- a/addons/dialogic/Modules/DefaultLayoutParts/Layer_FullBackground/full_background_layer.tscn +++ b/addons/dialogic/Modules/DefaultLayoutParts/Layer_FullBackground/full_background_layer.tscn @@ -4,6 +4,7 @@ [ext_resource type="Script" path="res://addons/dialogic/Modules/Background/node_background_holder.gd" id="2_ghan2"] [node name="BackgroundLayer" type="Control"] +layout_direction = 2 layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 @@ -20,4 +21,5 @@ anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 mouse_filter = 2 +color = Color(1, 1, 1, 0) script = ExtResource("2_ghan2") diff --git a/addons/dialogic/Modules/DefaultLayoutParts/Layer_History/example_history_item.gd b/addons/dialogic/Modules/DefaultLayoutParts/Layer_History/example_history_item.gd index d52a259..83fef50 100644 --- a/addons/dialogic/Modules/DefaultLayoutParts/Layer_History/example_history_item.gd +++ b/addons/dialogic/Modules/DefaultLayoutParts/Layer_History/example_history_item.gd @@ -14,7 +14,7 @@ func get_icon() -> TextureRect: func load_info(text:String, character:String = "", character_color: Color =Color(), icon:Texture= null) -> void: get_text_box().text = text - var name_label : Label = get_name_label() + var name_label: Label = get_name_label() if character: name_label.text = character name_label.add_theme_color_override('font_color', character_color) @@ -22,9 +22,9 @@ func load_info(text:String, character:String = "", character_color: Color =Color else: name_label.hide() - var icon_node : TextureRect = get_icon() + var icon_node: TextureRect = get_icon() if icon == null: icon_node.hide() else: icon_node.show() - icon_node.texture = icon \ No newline at end of file + icon_node.texture = icon diff --git a/addons/dialogic/Modules/DefaultLayoutParts/Layer_SpeakerPortraitTextbox/textbox_with_speaker_portrait.tscn b/addons/dialogic/Modules/DefaultLayoutParts/Layer_SpeakerPortraitTextbox/textbox_with_speaker_portrait.tscn index 59fefc0..2df6a81 100644 --- a/addons/dialogic/Modules/DefaultLayoutParts/Layer_SpeakerPortraitTextbox/textbox_with_speaker_portrait.tscn +++ b/addons/dialogic/Modules/DefaultLayoutParts/Layer_SpeakerPortraitTextbox/textbox_with_speaker_portrait.tscn @@ -21,6 +21,7 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +mouse_filter = 2 script = ExtResource("1_7jt4d") box_panel = "res://addons/dialogic/Modules/DefaultLayoutParts/Layer_SpeakerPortraitTextbox/default_stylebox.tres" @@ -33,6 +34,7 @@ anchor_right = 0.5 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 0 +mouse_filter = 2 [node name="Panel" type="PanelContainer" parent="Anchor"] unique_name_in_owner = true @@ -49,9 +51,11 @@ offset_right = 250.0 offset_bottom = -50.0 grow_horizontal = 2 grow_vertical = 0 +mouse_filter = 2 [node name="HBox" type="HBoxContainer" parent="Anchor/Panel"] layout_mode = 2 +mouse_filter = 2 theme_override_constants/separation = 15 [node name="PortraitPanel" type="Panel" parent="Anchor/Panel/HBox"] @@ -60,6 +64,7 @@ clip_children = 1 layout_mode = 2 size_flags_horizontal = 3 size_flags_stretch_ratio = 0.3 +mouse_filter = 2 theme_override_styles/panel = SubResource("StyleBoxFlat_dmg1w") [node name="PortraitBackgroundColor" type="ColorRect" parent="Anchor/Panel/HBox/PortraitPanel"] @@ -74,6 +79,7 @@ offset_right = 7.0 offset_bottom = 3.0 grow_horizontal = 2 grow_vertical = 2 +mouse_filter = 2 color = Color(0, 0, 0, 0.231373) [node name="DialogicNode_PortraitContainer" type="Control" parent="Anchor/Panel/HBox/PortraitPanel/PortraitBackgroundColor"] @@ -84,13 +90,16 @@ anchor_bottom = 1.0 offset_top = 4.0 grow_horizontal = 2 grow_vertical = 2 +mouse_filter = 2 script = ExtResource("1_4jxq7") mode = 1 +container_ids = PackedStringArray("1") debug_character_portrait = "speaker" [node name="VBoxContainer" type="VBoxContainer" parent="Anchor/Panel/HBox"] layout_mode = 2 size_flags_horizontal = 3 +mouse_filter = 2 [node name="DialogicNode_NameLabel" type="Label" parent="Anchor/Panel/HBox/VBoxContainer"] unique_name_in_owner = true @@ -99,7 +108,7 @@ theme_override_font_sizes/font_size = 8 text = "Name" script = ExtResource("2_y0h34") -[node name="DialogicNode_DialogText" type="RichTextLabel" parent="Anchor/Panel/HBox/VBoxContainer"] +[node name="DialogicNode_DialogText" type="RichTextLabel" parent="Anchor/Panel/HBox/VBoxContainer" node_paths=PackedStringArray("textbox_root")] unique_name_in_owner = true layout_mode = 2 size_flags_vertical = 3 @@ -108,6 +117,7 @@ bbcode_enabled = true text = "Some text" scroll_following = true script = ExtResource("3_11puy") +textbox_root = NodePath("../../..") [node name="DialogicNode_TypeSounds" type="AudioStreamPlayer" parent="Anchor/Panel/HBox/VBoxContainer/DialogicNode_DialogText"] script = ExtResource("5_sr2qw") diff --git a/addons/dialogic/Modules/DefaultLayoutParts/Layer_Textbubble/text_bubble.gd b/addons/dialogic/Modules/DefaultLayoutParts/Layer_Textbubble/text_bubble.gd index ce69740..669c2e2 100644 --- a/addons/dialogic/Modules/DefaultLayoutParts/Layer_Textbubble/text_bubble.gd +++ b/addons/dialogic/Modules/DefaultLayoutParts/Layer_Textbubble/text_bubble.gd @@ -32,7 +32,7 @@ var bg_padding := 30 func _ready() -> void: reset() - DialogicUtil.autoload().Choices.choices_shown.connect(_on_choices_shown) + DialogicUtil.autoload().Choices.question_shown.connect(_on_question_shown) func reset() -> void: @@ -133,7 +133,7 @@ func _resize_bubble(content_size:Vector2, popup:=false) -> void: name_label_holder.size.x = text.size.x -func _on_choices_shown(info:Dictionary) -> void: +func _on_question_shown(info:Dictionary) -> void: if !is_visible_in_tree(): return @@ -193,7 +193,7 @@ func add_choice_container(node:Container, alignment:=FlowContainer.ALIGNMENT_BEG func get_speaker_canvas_position() -> Vector2: - if node_to_point_at: + if is_instance_valid(node_to_point_at): if node_to_point_at is Node3D: base_position = get_viewport().get_camera_3d().unproject_position( (node_to_point_at as Node3D).global_position) diff --git a/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Choices/vn_choice_layer.gd b/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Choices/vn_choice_layer.gd index a0371f0..97195f5 100644 --- a/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Choices/vn_choice_layer.gd +++ b/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Choices/vn_choice_layer.gd @@ -31,6 +31,7 @@ extends DialogicLayoutLayer @export var boxes_v_separation: int = 10 @export var boxes_fill_width: bool = true @export var boxes_min_size: Vector2 = Vector2() +@export var boxes_offset: Vector2 = Vector2() @export_group('Sounds') @export_range(-80, 24, 0.01) var sounds_volume: float = -10 @@ -96,6 +97,7 @@ func _apply_export_overrides() -> void: layer_theme.set_stylebox(&'focus', &'Button', load(boxes_stylebox_focused) as StyleBox) get_choices().add_theme_constant_override(&"separation", boxes_v_separation) + self.position = boxes_offset for child: Node in get_choices().get_children(): if not child is DialogicNode_ChoiceButton: @@ -109,6 +111,7 @@ func _apply_export_overrides() -> void: choice.custom_minimum_size = boxes_min_size + set(&'theme', layer_theme) # apply sound settings diff --git a/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Choices/vn_choice_layer.tscn b/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Choices/vn_choice_layer.tscn index 75482d9..7c9fb00 100644 --- a/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Choices/vn_choice_layer.tscn +++ b/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Choices/vn_choice_layer.tscn @@ -25,10 +25,10 @@ anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 anchor_bottom = 0.5 -offset_left = -86.5 -offset_top = -103.0 -offset_right = 86.5 -offset_bottom = 103.0 +offset_left = -41.0 +offset_top = -47.0 +offset_right = 42.0 +offset_bottom = 47.0 grow_horizontal = 2 grow_vertical = 2 mouse_filter = 2 diff --git a/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/animations.gd b/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/animations.gd index 43eca1f..c03b3ee 100644 --- a/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/animations.gd +++ b/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/animations.gd @@ -7,11 +7,12 @@ enum AnimationsIn {NONE, POP_IN, FADE_UP} enum AnimationsOut {NONE, POP_OUT, FADE_DOWN} enum AnimationsNewText {NONE, WIGGLE} -var animation_in : AnimationsIn -var animation_out : AnimationsOut -var animation_new_text : AnimationsNewText +var animation_in: AnimationsIn +var animation_out: AnimationsOut +var animation_new_text: AnimationsNewText + +var full_clear := true -var full_clear : bool = true func get_text_panel() -> PanelContainer: return %DialogTextPanel @@ -22,19 +23,20 @@ func get_dialog() -> DialogicNode_DialogText: func _ready() -> void: - var text_system : Node = DialogicUtil.autoload().get(&'Text') - var _error : int = 0 - _error = text_system.connect(&'animation_textbox_hide', _on_textbox_hide) - _error = text_system.connect(&'animation_textbox_show', _on_textbox_show) - _error = text_system.connect(&'animation_textbox_new_text', _on_textbox_new_text) - _error = text_system.connect(&'about_to_show_text', _on_about_to_show_text) + var text_system: Node = DialogicUtil.autoload().get(&'Text') + text_system.connect(&'animation_textbox_hide', _on_textbox_hide) + text_system.connect(&'animation_textbox_show', _on_textbox_show) + text_system.connect(&'animation_textbox_new_text', _on_textbox_new_text) + text_system.connect(&'about_to_show_text', _on_about_to_show_text) + var animation_system: Node = DialogicUtil.autoload().get(&'Animations') + animation_system.connect(&'animation_interrupted', _on_animation_interrupted) func _on_textbox_show() -> void: if animation_in == AnimationsIn.NONE: return play('RESET') - var animation_system : Node = DialogicUtil.autoload().get(&'Animations') + var animation_system: Node = DialogicUtil.autoload().get(&'Animations') animation_system.call(&'start_animating') get_text_panel().get_parent().get_parent().set(&'modulate', Color.TRANSPARENT) get_dialog().text = "" @@ -43,15 +45,15 @@ func _on_textbox_show() -> void: play("textbox_pop") AnimationsIn.FADE_UP: play("textbox_fade_up") - if not is_connected(&'animation_finished', Callable(animation_system, &'animation_finished')): - var _error : int = connect(&'animation_finished', Callable(animation_system, &'animation_finished'), CONNECT_ONE_SHOT) + if not animation_finished.is_connected(Callable(animation_system, &'animation_finished')): + animation_finished.connect(Callable(animation_system, &'animation_finished'), CONNECT_ONE_SHOT) func _on_textbox_hide() -> void: if animation_out == AnimationsOut.NONE: return play('RESET') - var animation_system : Node = DialogicUtil.autoload().get(&'Animations') + var animation_system: Node = DialogicUtil.autoload().get(&'Animations') animation_system.call(&'start_animating') match animation_out: AnimationsOut.POP_OUT: @@ -59,8 +61,8 @@ func _on_textbox_hide() -> void: AnimationsOut.FADE_DOWN: play_backwards("textbox_fade_up") - if not is_connected(&'animation_finished', Callable(animation_system, &'animation_finished')): - var _error : int = connect(&'animation_finished', Callable(animation_system, &'animation_finished'), CONNECT_ONE_SHOT) + if not animation_finished.is_connected(Callable(animation_system, &'animation_finished')): + animation_finished.connect(Callable(animation_system, &'animation_finished'), CONNECT_ONE_SHOT) func _on_about_to_show_text(info:Dictionary) -> void: @@ -74,7 +76,7 @@ func _on_textbox_new_text() -> void: if animation_new_text == AnimationsNewText.NONE: return - var animation_system : Node = DialogicUtil.autoload().get(&'Animation') + var animation_system: Node = DialogicUtil.autoload().get(&'Animations') animation_system.call(&'start_animating') if full_clear: get_dialog().text = "" @@ -82,5 +84,10 @@ func _on_textbox_new_text() -> void: AnimationsNewText.WIGGLE: play("new_text") - if not is_connected(&'animation_finished', Callable(animation_system, &'animation_finished')): - var _error : int = connect(&'animation_finished', Callable(animation_system, &'animation_finished'), CONNECT_ONE_SHOT) + if not animation_finished.is_connected(Callable(animation_system, &'animation_finished')): + animation_finished.connect(Callable(animation_system, &'animation_finished'), CONNECT_ONE_SHOT) + + +func _on_animation_interrupted() -> void: + if is_playing(): + stop() diff --git a/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/autoadvance_indicator.gd b/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/autoadvance_indicator.gd index fa8bbff..a4384bd 100644 --- a/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/autoadvance_indicator.gd +++ b/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/autoadvance_indicator.gd @@ -1,6 +1,6 @@ extends Range -var enabled : bool = true +var enabled: bool = true func _process(_delta : float) -> void: if !enabled: diff --git a/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_layer.gd b/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_layer.gd index 7bbe6ce..95a4ce3 100644 --- a/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_layer.gd +++ b/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_layer.gd @@ -38,10 +38,10 @@ enum AnimationsNewText {NONE, WIGGLE} @export_subgroup('Font') @export var text_use_global_font: bool = true -@export_file('*.ttf', '*.tres') var normal_font:String = "" -@export_file('*.ttf', '*.tres') var bold_font:String = "" -@export_file('*.ttf', '*.tres') var italics_font:String = "" -@export_file('*.ttf', '*.tres') var bold_italics_font:String = "" +@export_file('*.ttf', '*.tres') var normal_font: String = "" +@export_file('*.ttf', '*.tres') var bold_font: String = "" +@export_file('*.ttf', '*.tres') var italics_font: String = "" +@export_file('*.ttf', '*.tres') var bold_italics_font: String = "" @export_group("Box") diff --git a/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_layer.tscn b/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_layer.tscn index 06569db..5521ef8 100644 --- a/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_layer.tscn +++ b/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_layer.tscn @@ -263,7 +263,6 @@ mouse_filter = 2 [node name="DialogTextPanel" type="PanelContainer" parent="Anchor/AnimationParent/Sizer"] unique_name_in_owner = true self_modulate = Color(0.00784314, 0.00784314, 0.00784314, 0.843137) -custom_minimum_size = Vector2(300, 50) layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 diff --git a/addons/dialogic/Modules/DefaultLayoutParts/Style_SpeakerTextbox/speaker_textbox_style.tres b/addons/dialogic/Modules/DefaultLayoutParts/Style_SpeakerTextbox/speaker_textbox_style.tres index 627d991..9ff8d5b 100644 --- a/addons/dialogic/Modules/DefaultLayoutParts/Style_SpeakerTextbox/speaker_textbox_style.tres +++ b/addons/dialogic/Modules/DefaultLayoutParts/Style_SpeakerTextbox/speaker_textbox_style.tres @@ -15,14 +15,14 @@ script = ExtResource("2_i34tx") scene = ExtResource("1_sde84") overrides = {} -[sub_resource type="Resource" id="Resource_gc1b5"] +[sub_resource type="Resource" id="Resource_x576n"] script = ExtResource("2_i34tx") -scene = ExtResource("3_epko4") +scene = ExtResource("4_8y2vo") overrides = {} -[sub_resource type="Resource" id="Resource_x576n"] +[sub_resource type="Resource" id="Resource_gc1b5"] script = ExtResource("2_i34tx") -scene = ExtResource("4_8y2vo") +scene = ExtResource("3_epko4") overrides = {} [sub_resource type="Resource" id="Resource_otikm"] @@ -51,4 +51,4 @@ name = "Speaker Textbox Style" base_overrides = { "global_bg_color": "Color(0.298039, 0.2, 0.113725, 0.901961)" } -layers = Array[ExtResource("2_i34tx")]([SubResource("Resource_35sbo"), SubResource("Resource_gc1b5"), SubResource("Resource_x576n"), SubResource("Resource_otikm"), SubResource("Resource_w8ec6"), SubResource("Resource_qmo1y"), SubResource("Resource_legp8")]) +layers = Array[ExtResource("2_i34tx")]([SubResource("Resource_35sbo"), SubResource("Resource_x576n"), SubResource("Resource_gc1b5"), SubResource("Resource_otikm"), SubResource("Resource_w8ec6"), SubResource("Resource_qmo1y"), SubResource("Resource_legp8")]) diff --git a/addons/dialogic/Modules/Glossary/glossary_editor.gd b/addons/dialogic/Modules/Glossary/glossary_editor.gd index 2e8014e..403ed6d 100644 --- a/addons/dialogic/Modules/Glossary/glossary_editor.gd +++ b/addons/dialogic/Modules/Glossary/glossary_editor.gd @@ -144,7 +144,7 @@ func _on_load_glossary_file_pressed() -> void: func load_glossary_file(path:String) -> void: - var list :Array= ProjectSettings.get_setting('dialogic/glossary/glossary_files', []) + var list: Array = ProjectSettings.get_setting('dialogic/glossary/glossary_files', []) if not path in list: list.append(path) diff --git a/addons/dialogic/Modules/Glossary/glossary_resource.gd b/addons/dialogic/Modules/Glossary/glossary_resource.gd index edc1fcc..638d036 100644 --- a/addons/dialogic/Modules/Glossary/glossary_resource.gd +++ b/addons/dialogic/Modules/Glossary/glossary_resource.gd @@ -10,7 +10,7 @@ extends Resource ## a string, representing the actual key for the key used. ## The string key-value pairs are the alias keys, they allow to redirect ## the actual glossary entry. -@export var entries: Dictionary = {} +@export var entries := {} ## If false, no entries from this glossary will be shown @export var enabled: bool = true @@ -39,13 +39,13 @@ const PRIVATE_PROPERTY_PREFIX := "_" ## Private ID assigned when this glossary is translated. -@export var _translation_id: String = "" +@export var _translation_id := "" ## Private lookup table used to find the translation ID of a glossary entry. ## The keys (String) are all translated words that may trigger a glossary entry to ## be shown. ## The values (String) are the translation ID. -@export var _translation_keys: Dictionary = {} +@export var _translation_keys := {} diff --git a/addons/dialogic/Modules/HighlightPortrait/highlight_portrait_thumbnail.png b/addons/dialogic/Modules/HighlightPortrait/highlight_portrait_thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..33a594c77864e15660c1281e4c173ead7f3dae2d GIT binary patch literal 5955 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 literal 0 HcmV?d00001 diff --git a/addons/dialogic/Modules/HighlightPortrait/index.gd b/addons/dialogic/Modules/HighlightPortrait/index.gd new file mode 100644 index 0000000..ec9b315 --- /dev/null +++ b/addons/dialogic/Modules/HighlightPortrait/index.gd @@ -0,0 +1,17 @@ +@tool +extends DialogicIndexer + + +func _get_portrait_scene_presets() -> Array[Dictionary]: + return [ + { + "path": this_folder.path_join("simple_highlight_portrait.tscn"), + "name": "Simple Highlight Portrait", + "description": "A portrait scene that displays a simple image, but changes color and moves to the front when this character is speaking.", + "author":"Dialogic", + "type": "General", + "icon":"", + "preview_image":[this_folder.path_join("highlight_portrait_thumbnail.png")], + "documentation":"", + }, + ] diff --git a/addons/dialogic/Example Assets/portraits/simple_highlight_portrait.gd b/addons/dialogic/Modules/HighlightPortrait/simple_highlight_portrait.gd similarity index 81% rename from addons/dialogic/Example Assets/portraits/simple_highlight_portrait.gd rename to addons/dialogic/Modules/HighlightPortrait/simple_highlight_portrait.gd index a6b8756..5ed6649 100644 --- a/addons/dialogic/Example Assets/portraits/simple_highlight_portrait.gd +++ b/addons/dialogic/Modules/HighlightPortrait/simple_highlight_portrait.gd @@ -2,10 +2,10 @@ extends DialogicPortrait @export_group('Main') -@export_file var image: String = "" +@export_file var image := "" var unhighlighted_color := Color.DARK_GRAY -var prev_z_index := 0 +var _prev_z_index := 0 ## Load anything related to the given character and portrait func _update_portrait(passed_character:DialogicCharacter, passed_portrait:String) -> void: @@ -21,10 +21,10 @@ func _ready() -> void: func _highlight() -> void: create_tween().tween_property(self, 'modulate', Color.WHITE, 0.15) - prev_z_index = DialogicUtil.autoload().Portraits.get_character_info(character).get('z_index', 0) + _prev_z_index = DialogicUtil.autoload().Portraits.get_character_info(character).get('z_index', 0) DialogicUtil.autoload().Portraits.change_character_z_index(character, 99) func _unhighlight() -> void: create_tween().tween_property(self, 'modulate', unhighlighted_color, 0.15) - DialogicUtil.autoload().Portraits.change_character_z_index(character, prev_z_index) + DialogicUtil.autoload().Portraits.change_character_z_index(character, _prev_z_index) diff --git a/addons/dialogic/Example Assets/portraits/simple_highlight_portrait.tscn b/addons/dialogic/Modules/HighlightPortrait/simple_highlight_portrait.tscn similarity index 61% rename from addons/dialogic/Example Assets/portraits/simple_highlight_portrait.tscn rename to addons/dialogic/Modules/HighlightPortrait/simple_highlight_portrait.tscn index 44cb571..cf814eb 100644 --- a/addons/dialogic/Example Assets/portraits/simple_highlight_portrait.tscn +++ b/addons/dialogic/Modules/HighlightPortrait/simple_highlight_portrait.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://br18lgpga2y2v"] -[ext_resource type="Script" path="res://addons/dialogic/Example Assets/portraits/simple_highlight_portrait.gd" id="1_ceqva"] +[ext_resource type="Script" path="res://addons/dialogic/Modules/HighlightPortrait/simple_highlight_portrait.gd" id="1_ceqva"] [node name="DefaultPortrait" type="Node2D"] script = ExtResource("1_ceqva") diff --git a/addons/dialogic/Modules/History/settings_history.gd b/addons/dialogic/Modules/History/settings_history.gd index 7560712..97b5cd9 100644 --- a/addons/dialogic/Modules/History/settings_history.gd +++ b/addons/dialogic/Modules/History/settings_history.gd @@ -8,7 +8,9 @@ func _get_priority() -> int: func _ready() -> void: %SimpleHistoryEnabled.toggled.connect(setting_toggled.bind('dialogic/history/simple_history_enabled')) + %SimpleHistorySave.toggled.connect(setting_toggled.bind('dialogic/history/simple_history_save')) %FullHistoryEnabled.toggled.connect(setting_toggled.bind('dialogic/history/full_history_enabled')) + %FullHistorySave.toggled.connect(setting_toggled.bind('dialogic/history/full_history_save')) %AlreadyReadHistoryEnabled.toggled.connect(setting_toggled.bind('dialogic/history/visited_event_history_enabled')) %SaveOnAutoSaveToggle.toggled.connect(setting_toggled.bind('dialogic/history/save_on_autosave')) %SaveOnSaveToggle.toggled.connect(setting_toggled.bind('dialogic/history/save_on_save')) @@ -16,7 +18,9 @@ func _ready() -> void: func _refresh() -> void: %SimpleHistoryEnabled.button_pressed = ProjectSettings.get_setting('dialogic/history/simple_history_enabled', false) + %SimpleHistorySave.button_pressed = ProjectSettings.get_setting('dialogic/history/simple_history_save', false) %FullHistoryEnabled.button_pressed = ProjectSettings.get_setting('dialogic/history/full_history_enabled', false) + %FullHistorySave.button_pressed = ProjectSettings.get_setting('dialogic/history/full_history_save', false) %AlreadyReadHistoryEnabled.button_pressed = ProjectSettings.get_setting('dialogic/history/visited_event_history_enabled', false) diff --git a/addons/dialogic/Modules/History/settings_history.tscn b/addons/dialogic/Modules/History/settings_history.tscn index 7bf916d..ed55edb 100644 --- a/addons/dialogic/Modules/History/settings_history.tscn +++ b/addons/dialogic/Modules/History/settings_history.tscn @@ -3,7 +3,7 @@ [ext_resource type="Script" path="res://addons/dialogic/Modules/History/settings_history.gd" id="1_hbhst"] [ext_resource type="PackedScene" uid="uid://dbpkta2tjsqim" path="res://addons/dialogic/Editor/Common/hint_tooltip_icon.tscn" id="2_wefye"] -[sub_resource type="Image" id="Image_3h4fk"] +[sub_resource type="Image" id="Image_3clns"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -12,8 +12,8 @@ data = { "width": 16 } -[sub_resource type="ImageTexture" id="ImageTexture_8li2l"] -image = SubResource("Image_3h4fk") +[sub_resource type="ImageTexture" id="ImageTexture_irr0a"] +image = SubResource("Image_3clns") [node name="History" type="PanelContainer"] anchors_preset = 15 @@ -45,7 +45,7 @@ text = "Enabled" layout_mode = 2 tooltip_text = "When enabled, some events (Text, Join, Leave, Choice) will store a log. Also, the default layout will feature the log panel option." -texture = SubResource("ImageTexture_8li2l") +texture = SubResource("ImageTexture_irr0a") hint_text = "When enabled, some events (Text, Join, Leave, Choice) will store a log. Also, the default layout will feature the log panel option." @@ -53,6 +53,23 @@ Also, the default layout will feature the log panel option." unique_name_in_owner = true layout_mode = 2 +[node name="HBoxContainer2" type="HBoxContainer" parent="HistoryOptions"] +layout_mode = 2 + +[node name="Label" type="Label" parent="HistoryOptions/HBoxContainer2"] +layout_mode = 2 +text = "Save and Load" + +[node name="HintTooltip" parent="HistoryOptions/HBoxContainer2" instance=ExtResource("2_wefye")] +layout_mode = 2 +tooltip_text = "When enabled, the simple history is included in the savegame." +texture = SubResource("ImageTexture_irr0a") +hint_text = "When enabled, the simple history is included in the savegame. Also, it is reset on Dialogic.clear(FULL_CLEAR)." + +[node name="SimpleHistorySave" type="CheckBox" parent="HistoryOptions/HBoxContainer2"] +unique_name_in_owner = true +layout_mode = 2 + [node name="Title" type="Label" parent="HistoryOptions"] layout_mode = 2 theme_type_variation = &"DialogicSettingsSection" @@ -68,13 +85,30 @@ text = "Enabled" [node name="HintTooltip" parent="HistoryOptions/HBoxContainer5" instance=ExtResource("2_wefye")] layout_mode = 2 tooltip_text = "When enabled, stores a copy of each event." -texture = SubResource("ImageTexture_8li2l") +texture = SubResource("ImageTexture_irr0a") hint_text = "When enabled, stores a copy of each event." [node name="FullHistoryEnabled" type="CheckBox" parent="HistoryOptions/HBoxContainer5"] unique_name_in_owner = true layout_mode = 2 +[node name="HBoxContainer6" type="HBoxContainer" parent="HistoryOptions"] +layout_mode = 2 + +[node name="Label" type="Label" parent="HistoryOptions/HBoxContainer6"] +layout_mode = 2 +text = "Save and Load" + +[node name="HintTooltip" parent="HistoryOptions/HBoxContainer6" instance=ExtResource("2_wefye")] +layout_mode = 2 +tooltip_text = "When enabled, the full history is included in the savegame." +texture = SubResource("ImageTexture_irr0a") +hint_text = "When enabled, the full history is included in the savegame. Also, it is reset on Dialogic.clear(FULL_CLEAR)." + +[node name="FullHistorySave" type="CheckBox" parent="HistoryOptions/HBoxContainer6"] +unique_name_in_owner = true +layout_mode = 2 + [node name="Title2" type="Label" parent="HistoryOptions"] layout_mode = 2 theme_type_variation = &"DialogicSettingsSection" @@ -92,7 +126,7 @@ layout_mode = 2 tooltip_text = "Remembers whether events were already met in the timeline. When enabled the signals \"Dialogic.History.visited_event\" and \"Dialogic.History.unvisited_event\" are emitted. " -texture = SubResource("ImageTexture_8li2l") +texture = SubResource("ImageTexture_irr0a") hint_text = "Remembers whether events were already met in the timeline. When enabled the signals \"Dialogic.History.visited_event\" and \"Dialogic.History.unvisited_event\" are emitted. " @@ -112,7 +146,7 @@ text = "Save on Auto-Save signal" layout_mode = 2 tooltip_text = "Stores the already-visited history in a global save file when an Auto-Save occurs. The Auto-Save is part of the Save settings." -texture = SubResource("ImageTexture_8li2l") +texture = SubResource("ImageTexture_irr0a") hint_text = "Stores the already-visited history in a global save file when an Auto-Save occurs. The Auto-Save is part of the Save settings." @@ -132,7 +166,7 @@ layout_mode = 2 tooltip_text = "Stores the already-visited history in a global save file when a normal Save occurs. This can be done via the Dialogic.Save.save method. This setting ignores Auto-Saves." -texture = SubResource("ImageTexture_8li2l") +texture = SubResource("ImageTexture_irr0a") hint_text = "Stores the already-visited history in a global save file when a normal Save occurs. This can be done via the Dialogic.Save.save method. This setting ignores Auto-Saves." diff --git a/addons/dialogic/Modules/History/subsystem_history.gd b/addons/dialogic/Modules/History/subsystem_history.gd index 74f9c25..d1371ea 100644 --- a/addons/dialogic/Modules/History/subsystem_history.gd +++ b/addons/dialogic/Modules/History/subsystem_history.gd @@ -9,15 +9,17 @@ signal close_requested ## Simple history that stores limited information ## Used for the history display var simple_history_enabled := false +var simple_history_save := false var simple_history_content : Array[Dictionary] = [] signal simple_history_changed ## Whether to keep a history of every Dialogic event encountered. var full_event_history_enabled := false +var full_event_history_save := false ## The full history of all Dialogic events encountered. ## Requires [member full_event_history_enabled] to be true. -var full_event_history_content := [] +var full_event_history_content: Array[DialogicEvent] = [] ## Emitted if a new event has been inserted into the full event history. signal full_event_history_changed @@ -78,8 +80,10 @@ func _ready() -> void: dialogic.event_handled.connect(store_full_event) dialogic.event_handled.connect(_check_seen) - simple_history_enabled = ProjectSettings.get_setting('dialogic/history/simple_history_enabled', simple_history_enabled ) + simple_history_enabled = ProjectSettings.get_setting('dialogic/history/simple_history_enabled', simple_history_enabled) + simple_history_save = ProjectSettings.get_setting('dialogic/history/simple_history_save', simple_history_save) full_event_history_enabled = ProjectSettings.get_setting('dialogic/history/full_history_enabled', full_event_history_enabled) + full_event_history_save = ProjectSettings.get_setting('dialogic/history/full_history_save', full_event_history_save) visited_event_history_enabled = ProjectSettings.get_setting('dialogic/history/visited_event_history_enabled', visited_event_history_enabled) @@ -99,6 +103,47 @@ func post_install() -> void: save_visited_history_on_save = ProjectSettings.get_setting('dialogic/history/save_on_save', save_visited_history_on_save) +func clear_game_state(clear_flag := DialogicGameHandler.ClearFlags.FULL_CLEAR) -> void: + if clear_flag == DialogicGameHandler.ClearFlags.FULL_CLEAR: + if simple_history_save: + simple_history_content = [] + dialogic.current_state_info.erase("history_simple") + if full_event_history_save: + full_event_history_content = [] + dialogic.current_state_info.erase("history_full") + + +func load_game_state(load_flag := LoadFlags.FULL_LOAD) -> void: + if load_flag == LoadFlags.FULL_LOAD: + if simple_history_save and dialogic.current_state_info.has("history_simple"): + simple_history_content.assign(dialogic.current_state_info["history_simple"]) + + if full_event_history_save and dialogic.current_state_info.has("history_full"): + full_event_history_content = [] + + for event_text in dialogic.current_state_info["history_full"]: + var event: DialogicEvent + for i in DialogicResourceUtil.get_event_cache(): + if i.is_valid_event(event_text): + event = i.duplicate() + break + event.from_text(event_text) + full_event_history_content.append(event) + + +func save_game_state() -> void: + if simple_history_save: + dialogic.current_state_info["history_simple"] = Array(simple_history_content) + else: + dialogic.current_state_info.erase("history_simple") + if full_event_history_save: + dialogic.current_state_info["history_full"] = [] + for event in full_event_history_content: + dialogic.current_state_info["history_full"].append(event.to_text()) + else: + dialogic.current_state_info.erase("history_full") + + func open_history() -> void: open_requested.emit() diff --git a/addons/dialogic/Modules/Jump/event_jump.gd b/addons/dialogic/Modules/Jump/event_jump.gd index 7f33e0c..050dfa9 100644 --- a/addons/dialogic/Modules/Jump/event_jump.gd +++ b/addons/dialogic/Modules/Jump/event_jump.gd @@ -8,15 +8,15 @@ extends DialogicEvent ### Settings ## The timeline to jump to, if null then it's the current one. This setting should be a dialogic timeline resource. -var timeline : DialogicTimeline +var timeline: DialogicTimeline ## If not empty, the event will try to find a Label event with this set as name. Empty by default.. -var label_name : String = "" +var label_name := "" ### Helpers ## Used to set the timeline resource from the unique name identifier and vice versa -var timeline_identifier: String = "": +var timeline_identifier := "": get: if timeline: var identifier := DialogicResourceUtil.get_unique_identifier(timeline.resource_path) @@ -75,7 +75,7 @@ func to_text() -> String: func from_text(string:String) -> void: - var result := RegEx.create_from_string('jump (?.*\\/)?(?