From 01b04cf8f5b250b62c9b778d2d6fd444de801013 Mon Sep 17 00:00:00 2001
From: Kyaw Aung <kyawaung0924@gmail.com>
Date: Sat, 1 Feb 2025 02:02:48 -0600
Subject: [PATCH] title menu buttons dynamically change texture

---
 .godot/editor/editor_layout.cfg               |   6 ++--
 .godot/editor/filesystem_cache8               |  31 ++++++++--------
 .godot/editor/script_editor_cache.cfg         |  10 +++---
 .godot/uid_cache.bin                          | Bin 3408 -> 3465 bytes
 Assets/ui/title_screen/play_button.png        | Bin 533 -> 579 bytes
 Assets/ui/title_screen/rules_button.aseprite  | Bin 0 -> 1458 bytes
 Assets/ui/title_screen/rules_button.png       | Bin 0 -> 608 bytes
 .../ui/title_screen/rules_button.png.import   |  34 ++++++++++++++++++
 scenes/title_screen/menu_button.tscn          |   4 +--
 scripts/title_screen/menu_button.gd           |   6 ++++
 scripts/title_screen/title_screen.gd          |   4 ++-
 11 files changed, 68 insertions(+), 27 deletions(-)
 create mode 100644 Assets/ui/title_screen/rules_button.aseprite
 create mode 100644 Assets/ui/title_screen/rules_button.png
 create mode 100644 Assets/ui/title_screen/rules_button.png.import

diff --git a/.godot/editor/editor_layout.cfg b/.godot/editor/editor_layout.cfg
index db070e2..37beb42 100644
--- a/.godot/editor/editor_layout.cfg
+++ b/.godot/editor/editor_layout.cfg
@@ -2,7 +2,7 @@
 
 dock_3_selected_tab_idx=0
 dock_4_selected_tab_idx=0
-dock_5_selected_tab_idx=1
+dock_5_selected_tab_idx=0
 dock_floating={}
 dock_bottom=[]
 dock_closed=[]
@@ -17,8 +17,8 @@ dock_filesystem_v_split_offset=0
 dock_filesystem_display_mode=0
 dock_filesystem_file_sort=0
 dock_filesystem_file_list_display_mode=1
-dock_filesystem_selected_paths=PackedStringArray("res://scenes/title_screen/")
-dock_filesystem_uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://scenes/", "res://scenes/title_screen/")
+dock_filesystem_selected_paths=PackedStringArray("res://assets/ui/title_screen/rules_button.png")
+dock_filesystem_uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://scenes/", "res://scenes/title_screen/", "res://assets/", "res://assets/ui/", "res://assets/ui/title_screen/")
 dock_3="Scene,Import"
 dock_4="FileSystem"
 dock_5="Inspector,Node,History"
diff --git a/.godot/editor/filesystem_cache8 b/.godot/editor/filesystem_cache8
index cec9545..db9e209 100644
--- a/.godot/editor/filesystem_cache8
+++ b/.godot/editor/filesystem_cache8
@@ -1,7 +1,7 @@
 ea4bc82a6ad023ab7ee23ee620429895
-::res://::1738394856
+::res://::1738396768
 icon.svg::CompressedTexture2D::6378281210119878262::1738189402::1738378143::1::::<><>::
-main.tscn::PackedScene::5692118487183161714::1738394856::0::1::::<><>::
+main.tscn::PackedScene::5692118487183161714::1738396768::0::1::::<><>::
 README.md::TextFile::-1::1738189402::0::1::::<><>::
 ::res://assets/::1738378134
 ::res://assets/noise/::1738378134
@@ -30,11 +30,11 @@ White_knight.png::CompressedTexture2D::854350289879594279::1738378134::173837817
 White_Pawn.png::CompressedTexture2D::919180529085242722::1738378134::1738378176::1::::<><>::
 White_Queen.png::CompressedTexture2D::4902137832695542513::1738378134::1738378176::1::::<><>::
 White_rook.png::CompressedTexture2D::4194129281780453908::1738378134::1738378176::1::::<><>::
-::res://assets/shaders/::1738394856
-bg.gdshader::Shader::-1::1738394856::0::1::::<><>::
-color.gdshader::Shader::-1::1738394856::0::1::::<><>::
-3d_effect.gdshader::Shader::-1::1738394856::0::1::::<><>::
-shadow.gdshader::Shader::-1::1738394856::0::1::::<><>::
+::res://assets/shaders/::1738396768
+bg.gdshader::Shader::-1::1738396768::0::1::::<><>::
+color.gdshader::Shader::-1::1738396768::0::1::::<><>::
+3d_effect.gdshader::Shader::-1::1738396768::0::1::::<><>::
+shadow.gdshader::Shader::-1::1738396768::0::1::::<><>::
 ::res://assets/sprites/::1738378176
 bishop.png::CompressedTexture2D::4631301773944929250::1738378134::1738378176::1::::<><>::
 knight.png::CompressedTexture2D::3545640967717948854::1738378134::1738378176::1::::<><>::
@@ -62,9 +62,10 @@ white_rook.png::CompressedTexture2D::3317152307554436932::1738378134::1738378176
 Go_Save_The_King_Menu.jpg::CompressedTexture2D::7252735845995868232::1738378134::1738378176::1::::<><>::
 Mockup Gameplay Design.jpg::CompressedTexture2D::4859609684236806088::1738378134::1738378176::1::::<><>::
 Mockup Shop Design.jpg::CompressedTexture2D::8043055154093708922::1738378134::1738378176::1::::<><>::
-::res://assets/ui/title_screen/::1738394480
-play_button.png::CompressedTexture2D::5896995890187459238::1738388371::1738388601::1::::<><>::
+::res://assets/ui/title_screen/::1738396831
+play_button.png::CompressedTexture2D::5896995890187459238::1738396598::1738396750::1::::<><>::
 quit_button.png::CompressedTexture2D::5172428563227279585::1738395082::1738395084::1::::<><>::
+rules_button.png::CompressedTexture2D::8060955005205795067::1738396860::1738396865::1::::<><>::
 ::res://scenes/::1738379187
 Bishop.tscn::PackedScene::2789588702038144760::1738378134::0::1::::<><>::res://scripts/Bishop.gd<>uid://b68o4mj7wcwvq::::res://assets/sprites/bishop.png
 board.tscn::PackedScene::5124694183364421304::1738378134::0::1::::<><>::uid://b0px5wlrm0mb3::::res://assets/temp_assets/temp_chess_board.png<>res://scripts/board.gd
@@ -76,9 +77,9 @@ Pawn.tscn::PackedScene::3675784333675896641::1738378134::0::1::::<><>::res://scr
 Queen.tscn::PackedScene::7495869360053814603::1738378134::0::1::::<><>::res://scripts/Queen.gd<>uid://cb3vq168iyomb::::res://assets/Resized Chess Piece Assets/White_Queen.png
 Rook.tscn::PackedScene::9162401199636684468::1738378134::0::1::::<><>::uid://b00wxxfjk04ke::::res://assets/Resized Chess Piece Assets/White_rook.png
 texture_holder.tscn::PackedScene::594714386286134588::1738378134::0::1::::<><>::
-::res://scenes/title_screen/::1738394856
-menu_button.tscn::PackedScene::3297943059633979218::1738394856::0::1::::<><>::res://assets/shaders/3d_effect.gdshader<>res://scripts/title_screen/menu_button.gd<>uid://cfxte4aca86mf::::res://assets/ui/title_screen/quit_button.png
-title_screen.tscn::PackedScene::8154710134031658440::1738394856::0::1::::<><>::res://scripts/title_screen/title_screen.gd<>uid://bm8sv1itwm467::::res://scenes/title_screen/menu_button.tscn
+::res://scenes/title_screen/::1738396768
+menu_button.tscn::PackedScene::3297943059633979218::1738396768::0::1::::<><>::res://assets/shaders/3d_effect.gdshader<>res://scripts/title_screen/menu_button.gd
+title_screen.tscn::PackedScene::8154710134031658440::1738396768::0::1::::<><>::res://scripts/title_screen/title_screen.gd<>uid://bm8sv1itwm467::::res://scenes/title_screen/menu_button.tscn
 ::res://scripts/::1738378687
 Bishop.gd::GDScript::-1::1738378134::0::1::::Bishop<>Piece<>::
 board.gd::GDScript::-1::1738378134::0::1::::Board<>Sprite2D<>::
@@ -89,6 +90,6 @@ Pawn.gd::GDScript::-1::1738378134::0::1::::Pawn<>Piece<>::
 Piece.gd::GDScript::-1::1738378134::0::1::::Piece<>Node2D<>::
 Queen.gd::GDScript::-1::1738378134::0::1::::Queen<>Piece<>::
 Rook.gd::GDScript::-1::1738378134::0::1::::Rook<>Piece<>::
-::res://scripts/title_screen/::1738394853
-menu_button.gd::GDScript::-1::1738394853::0::1::::TitleButton<>Button<>::
-title_screen.gd::GDScript::-1::1738378698::0::1::::<>Control<>::
+::res://scripts/title_screen/::1738396766
+menu_button.gd::GDScript::-1::1738395823::0::1::::TitleButton<>Button<>::
+title_screen.gd::GDScript::-1::1738396766::0::1::::<>Control<>::
diff --git a/.godot/editor/script_editor_cache.cfg b/.godot/editor/script_editor_cache.cfg
index c3df920..a12934b 100644
--- a/.godot/editor/script_editor_cache.cfg
+++ b/.godot/editor/script_editor_cache.cfg
@@ -115,10 +115,10 @@ state={
 state={
 "bookmarks": PackedInt32Array(),
 "breakpoints": PackedInt32Array(),
-"column": 1,
+"column": 70,
 "folded_lines": Array[int]([]),
 "h_scroll_position": 0,
-"row": 16,
+"row": 9,
 "scroll_position": 0.0,
 "selection": false,
 "syntax_highlighter": "GDScript"
@@ -129,11 +129,11 @@ state={
 state={
 "bookmarks": PackedInt32Array(),
 "breakpoints": PackedInt32Array(),
-"column": 30,
+"column": 1,
 "folded_lines": Array[int]([]),
 "h_scroll_position": 0,
-"row": 36,
-"scroll_position": 0.0,
+"row": 45,
+"scroll_position": 24.0,
 "selection": false,
 "syntax_highlighter": "GDScript"
 }
diff --git a/.godot/uid_cache.bin b/.godot/uid_cache.bin
index a4003fe947a0a9386d0c7df3cd41c15c37bd033c..d62cc6d6760c1a425711a6732e9ed785b30f567e 100644
GIT binary patch
delta 41
xcmca0)hW&BxRKGHm-F|9O~Ln^@8#=GR^(L>C@RfKEsjqrEh)**(<{hJ2LMVP58VI&

delta 10
RcmeB_z97Zuu#wT97XT7P0^R@s

diff --git a/Assets/ui/title_screen/play_button.png b/Assets/ui/title_screen/play_button.png
index 839092fce1794c2ce4a541709e08e850178317d9..39db5e0d90f931d9e7251c5f3ce7bdedf6eb81a9 100644
GIT binary patch
literal 579
zcmeAS@N?(olHy`uVBq!ia0vp^zkt}AgAGVVR?T_~q!^2X+?^QKos)S9WdHSaaSW-L
z^Y*S|UXz1F+rwKWtmYs7g<qE5uuXgNH4dgz24}w8WJha0dpe)b&42p3-L;IqzwiBK
zXn4yh%ftagf8NwG%rB5@TXeqs?eClYvew&F_b2nuw_Be5@7|^7?^dk8Dx+q_Vj=s}
zuIi;{o%wSv`|mfhW{XA7zbtkBZeaXsRi7`S=MHbU?aFpdz={QeG9G=Cdat?j{)g{7
z`}XWCH31sXG3!OK`iVQ7<@Iw;y1Y$tiWhpk_5EGD>PMHwy-sZ`X=iW(BL3~qjcyC=
zms#k{07b^9FWsJe#r1`N!wUh0XLAd;JpcG@PWiiD<BN(77r^NM#g*qC|G#Bgf9rkV
z44|U4MfrxJQM(@PpR^<R?xYzPGVfn`esO913Z1)P<x8!vR&Nvkl%=_^WaYhIb={qO
zj4gbOI(Ne}YG=Av`;>4flyC@aEZKgg?*66X9bctGuDv<p|2O9~L<T5HBog>|P}o%a
zBd=1Y{FVdtzyJ`aYWQq$r2cz^6~cEQZ#G<B`Z}*#{>biQWmB?u)W=-T`+nu;jaM?$
tYI18D4_gS!GMN}&Y|I3ifP{Xq@|agmKd`1$6__d*JYD@<);T3K0RUmV_#yxR

literal 533
zcmeAS@N?(olHy`uVBq!ia0vp^zkt}AgAGVVR?T_~q!^2X+?^QKos)S9WS{qRaSW-L
z^Y*T%-{Sxghl`6s7FV#}{D18PpG}*fkV4lD#_iwd6e@%*dj0+GiOQ;dF>(JGmVYaM
z&C4)Ny@W%+iiJa#sfCa6|F(M#^LO+;R(oG9-L`xE%w4&`|E|xP_Rr`0kDIbzch5TP
z($28Zx#5C*f$Z_Ke9{jDogjS02N$Ma{~?<_FTdh{ocq3*QWG^RmL+Pxu5cQa9@@M2
zTuRb=qlM=?KbrCA&98m9y?n}=<Cnk|I`!W!nwi_VUk+rdqQeUTg%Y)y)s>TK1;I`-
zDnC|eH(&q!&f@p~ePHgCS-jbLe*f0*fByViY;aLg!T93z8C>bN9^VhP39eO}dBJl3
z`+4r+_X8t$fy_K`Y3|+MuVPN@UHaqB(qA{vZ=V6OgkwWV{ehd)E9dlg@-aHKHypWi
zH|Y2CXLW7f_ZNIRG4sd!f8XA~Ed&M(%%5NvBEkzvctXX8BlFgN<W@S$uKQsk$W;Cv
zeaZi}AAg0W{Y&eewu4`@%bZ^beE3qcb5G7*!2_F6?P>^L6A`sAF^KUNFrFDaUHx3v
IIVCg!0AbbcWB>pF

diff --git a/Assets/ui/title_screen/rules_button.aseprite b/Assets/ui/title_screen/rules_button.aseprite
new file mode 100644
index 0000000000000000000000000000000000000000..a39e2873171a45884fe5effe72041cb351400ec6
GIT binary patch
literal 1458
zcmdnQ%E0hoDI>!#25$xh21W)3h7=%10H7F1kU;<lX#tFY_W%0G2DX(AXn`0IvnznD
zM6xam$Yue#P65bJQZRAVut~Et><_cPU#NC-LE5{+vwnXvoB1>#YoCGnlsxZD{UC1@
zBO6P5`x1kMrs%wf$+Q2*pM7%r_MiX%|Ic2#y``=_Gb<}HEU3(>YmJf7&G6*w)w}wq
zdv)a-D1mHJU<Q&f@E^$FVsJ`K&Q34NFU?Dl0rD|burRpg=atk0<yaMf1Q7gZg3v(!
z0mHUp&fCL=oD2*+%p3Oq(+xYmDtUs#te8+Lfv-0iQ&X)Pp90;@3Jg3^1~w$?FEH4H
zte<=_NY#<Y>F@vf_jFHxI=k9np<>4T@0{vOp1*zDT<>;|WzL*hE%T>mjP|Z?dVB8V
zpULK7XY8iVE=rquFZ^KHbKcmwd)`jIxx6U&oX(2nlheLmp0np8Zob%g7WI6aYR_AD
zrWkX-db#AN@xhbQ=i?@s0c~iivda8;r{UAFThmMb&ll01CmnDv;`gR^{~xFAey%p%
ze~S6MeX6N>r)IK#E!l9lc=BoWQ_}wTCm8{?7TKQPX%X;iS=Fs4Kz8{q4dbA@z91)E
zFJ8_)t1-o@=ITz(^l7hmUS>V(U?jWm70~+AU+=tZN>iB07heiA^J&$)5=Y|+KJDwR
zz~))UsLfpYPHJxCy7czbD#ll17XvlCDVUkEY*%(k+Rk~hdXvwDl=lK{*nBv3(#%)u
zE&`1x+u>sreAm=!bIf_Z>7Hq;cDn)Xy!p`Rq)+Mf7iT`*w(&o-OXXX5{qO5@A_M$c
zb?2>5h<$eb;ddkvEur6jX})0Rid_lz?0!DwNUYjsHL#1hU#(nnwAkyB-sDJOu%lVO
zhFp4NsaiPw<eE;fyPK-CGC$6Fw4=LvT6Q}qgn=41Gp3gNzbgX8AxQf3-JVUGPsUyW
zh6m6B$JzPJr_PCd4}7`|?4*~m^@nb@ay^Y(X=iS^c}s<r!|od`Me9T6&z=(*Wh1*F
zHpgja_^R{1=X7-E@m<g}TX;wN>T|X9X=48D8RD}8-c5Z~JlWX0dpYx#ZeNY>USD^f
zoVoPqWyV`a)uvQ0{dMQbnM;peGQ2%>ai-DXhpW%|Lait$S$3x2$Esprgn^BfnX73G
zi6pR5-0tb8pb-Ptei==B32yD(F6oocwB)abx(kEn^EEE(%5PxWEBWx|*SvFTGhgk!
zvf_Iw(5eSFzuM0AHM&~8^5(lWJGz;lTHj*W#D7ZV^OHWVZPwcF9y$E%Gi!L$Y;@9Q
z=i(-@=dWKr{dxaW&HrQXqUNk$KK*(9>Cb;fjblu9?kl$4`=I{#c?~1~cfVTHu9vS{
zF8=5J56RSLC+F68KMs#MKa=@&(;i`w)MuOBN=z*3j((kExxnwlcK^V%d71A_dHe2f
myjvVRUs(Lf?d2NA=S{xPVmto+#=D&>&%c-X#~i@-d<g*D0e8Is

literal 0
HcmV?d00001

diff --git a/Assets/ui/title_screen/rules_button.png b/Assets/ui/title_screen/rules_button.png
new file mode 100644
index 0000000000000000000000000000000000000000..6113264d638355ea83d425caff68e09f0c2bb2b0
GIT binary patch
literal 608
zcmeAS@N?(olHy`uVBq!ia0vp^zkt}AgAGVVR?T_~q!^2X+?^QKos)UVz`!Ks>Eakt
zG3V`FZ@<G10xSVd5v|e%|5vw4r|_=!NO+=gP|pASm1_2asKQgG{~G+KfByNJb;hmi
z_lynSSY(+vtXKp}I22w8JXrhmnEkrz(`NsF`uT6|XR~Y1?k3+}Yq$OSne$ekwr_ZL
z^Zk<-Go#-b_wq6N>AqY1-KOgQ^A$f{?5UP7++LHne&+npg(s)W{q?IldoO8zW(miI
zFEX-jfrU>ussnWZE%Mo360di#D!!+QYZ<rInw51I%H?HmxGWBK`nqkeWa>Fppt4<N
zzospI{N}rDqW@+6yRoh8-sK%Yr#W0uJh0*Ui_^uq;?EQ2y0tSjflY)vJ>kaf><iAP
zZ|~5RKQC6|bwk<VUti+frPd-J3-_8u8}i(KF|Q^0<+s@v-qZsfhA^<dXdm0$=66j}
zp?A0vuibz0rPq&d_4d*xKKm^;5np0-IjmGO9&d{&#jx<e?GVKVpgS(x8$8~6a=}H#
zrUlLnj$mbNdnKO#eeuBp=$p3OFLG<7B&GrtO4Sy*uW|ZT!LjnxoXzWQnOL!0c#&gv
z%KH4fvzFPD?`M>7EVvl|>fh&ouXs;dfMxANGRu7J_Amav5vYCn>7ReDW<Ab6d*ks|
z^Z!53ES_E4BKdx&d3~#;_FebuFAlt$Wo8x7j21E<czG7~%@!=sGzTUb22WQ%mvv4F
FO#owY6V(6!

literal 0
HcmV?d00001

diff --git a/Assets/ui/title_screen/rules_button.png.import b/Assets/ui/title_screen/rules_button.png.import
new file mode 100644
index 0000000..8167851
--- /dev/null
+++ b/Assets/ui/title_screen/rules_button.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dm310sn1jtu88"
+path="res://.godot/imported/rules_button.png-542c34aa0699ae6214a11d8bf596087a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/title_screen/rules_button.png"
+dest_files=["res://.godot/imported/rules_button.png-542c34aa0699ae6214a11d8bf596087a.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/scenes/title_screen/menu_button.tscn b/scenes/title_screen/menu_button.tscn
index 883ee8b..e1dbaed 100644
--- a/scenes/title_screen/menu_button.tscn
+++ b/scenes/title_screen/menu_button.tscn
@@ -1,8 +1,7 @@
-[gd_scene load_steps=16 format=3 uid="uid://bm8sv1itwm467"]
+[gd_scene load_steps=15 format=3 uid="uid://bm8sv1itwm467"]
 
 [ext_resource type="Shader" path="res://assets/shaders/3d_effect.gdshader" id="1_loqws"]
 [ext_resource type="Script" path="res://scripts/title_screen/menu_button.gd" id="1_mo82s"]
-[ext_resource type="Texture2D" uid="uid://cfxte4aca86mf" path="res://assets/ui/title_screen/quit_button.png" id="3_aox2s"]
 
 [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_no32e"]
 
@@ -55,7 +54,6 @@ material = SubResource("ShaderMaterial_xb1tv")
 layout_mode = 0
 offset_right = 40.0
 offset_bottom = 40.0
-texture = ExtResource("3_aox2s")
 
 [connection signal="gui_input" from="MenuTexture" to="." method="_on_gui_input"]
 [connection signal="mouse_exited" from="MenuTexture" to="." method="_on_mouse_exited"]
diff --git a/scripts/title_screen/menu_button.gd b/scripts/title_screen/menu_button.gd
index 533a5e8..78eae88 100644
--- a/scripts/title_screen/menu_button.gd
+++ b/scripts/title_screen/menu_button.gd
@@ -40,3 +40,9 @@ func _on_mouse_exited() -> void:
 	tween_rot = create_tween().set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_BACK).set_parallel(true)
 	tween_rot.tween_property(menu_btn_texture.material, "shader_parameter/x_rot", 0.0, 0.4)
 	tween_rot.tween_property(menu_btn_texture.material, "shader_parameter/y_rot", 0.0, 0.4)
+	
+func get_texture_rect() -> TextureRect:
+	return $MenuTexture
+	
+func set_image(image_path: String) -> void:
+	$MenuTexture.texture = load(image_path)
diff --git a/scripts/title_screen/title_screen.gd b/scripts/title_screen/title_screen.gd
index 609c9f3..5dbfce4 100644
--- a/scripts/title_screen/title_screen.gd
+++ b/scripts/title_screen/title_screen.gd
@@ -6,7 +6,9 @@ extends Control
 
 # Called when the node enters the scene tree for the first time.
 func _ready() -> void:
-	pass # Replace with function body.
+	play_button.set_image("res://assets/ui/title_screen/play_button.png")
+	rules_button.set_image("res://assets/ui/title_screen/rules_button.png")
+	quit_button.set_image("res://assets/ui/title_screen/quit_button.png")
 
 
 # Called every frame. 'delta' is the elapsed time since the previous frame.
-- 
GitLab