From 1d3349f7e0b9d4cbccf908f945ee122dcd9e604c Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 25 Mar 2025 16:48:11 +0100 Subject: [PATCH] Mouse cursor resizing --- ExternalMaterial/3DCursor/3DCursor.png | 3 ++ ExternalMaterial/3DCursor/3DCursor.png.import | 34 +++++++++++++++ ExternalMaterial/3DCursor/3DCursor.pxc | Bin 0 -> 2985 bytes ExternalMaterial/3DCursor/3DCursor.pxc1 | Bin 0 -> 3020 bytes .../CirnoTitle/CirnoTitleRecovered.pxc | Bin 5660 -> 9852 bytes .../CirnoTitle/CirnoTitleRecovered.pxc1 | Bin 9173 -> 9862 bytes Scripts/GlobalState.cs | 40 +++++++++++++++++- Scripts/UI/OptionsMenu.cs | 4 ++ project.godot | 2 - 9 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 ExternalMaterial/3DCursor/3DCursor.png create mode 100644 ExternalMaterial/3DCursor/3DCursor.png.import create mode 100644 ExternalMaterial/3DCursor/3DCursor.pxc create mode 100644 ExternalMaterial/3DCursor/3DCursor.pxc1 diff --git a/ExternalMaterial/3DCursor/3DCursor.png b/ExternalMaterial/3DCursor/3DCursor.png new file mode 100644 index 00000000..036475fe --- /dev/null +++ b/ExternalMaterial/3DCursor/3DCursor.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42d3346a11e9847904627ebd770233a27cf0f7a2aec0dbec9e0b20826fef2408 +size 460 diff --git a/ExternalMaterial/3DCursor/3DCursor.png.import b/ExternalMaterial/3DCursor/3DCursor.png.import new file mode 100644 index 00000000..f8eef80d --- /dev/null +++ b/ExternalMaterial/3DCursor/3DCursor.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d3oxwik1uoe4j" +path="res://.godot/imported/3DCursor.png-3846395cd15d92b7aa2d0b098e1c7a4b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ExternalMaterial/3DCursor/3DCursor.png" +dest_files=["res://.godot/imported/3DCursor.png-3846395cd15d92b7aa2d0b098e1c7a4b.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/ExternalMaterial/3DCursor/3DCursor.pxc b/ExternalMaterial/3DCursor/3DCursor.pxc new file mode 100644 index 0000000000000000000000000000000000000000..8dc9763ac0b884c649598ec1f44ec2d3fec2b4e9 GIT binary patch literal 2985 zcmV;a3s&@aob4NJQ{p=J`6-=#6}?SMU+^39a@SQ?5p~yHc9_tn5NVs*rhx4D-=Cx{ zB_N;(ckb?7b!TnU_!Mpk$mhzFGeNVBhcx3@QEa}XbU4W!f5<=gdO?# zmmCksc>WDfkXO9L0SxCan8W=6j1n+@mShq_8`CHGSUJ*5vQ0b^$;V~YG7M8yHS@W^ z^MyEUoa|m-Hb&n;MFl$0@2}NLz1?b_PDdAB)Jg_gO)kj+>lrf?zhq8XI-=E5bXC_( zdVOW7z5B+v-D{m+R?ohDy}Dx~Ci3xN*-}a}qvKH3jgm~CLXM3i?P~Sz1&RmV8VL~V zjDt8tHa!i(gl1?)@-bj&q0fihkbd7o5}F`8p_l}6_N8klF(tlyOrr!nm-aE}Hgq6G zo4P*#EIMm-si1$>lFmq1tV)G7v!z{_5Fd-@bA$o*Ath1v#`vmmBnyApfC!GeBj_cF zO9X5Dp_JI~&*y@SD-z>%6J+?}u1_57V&u#x0x69!hX(`3qppMFkVzt^u=EzHvcDoL zt_g+fX;?jl65x|qP2VyNpuj2MegPJgKuI|=b%8l;8+t3(^R1ZQz9xrE-2}|lz#cHg zdpqi7pk-ke*x6?)Tr4$QN=MzE)8(8!b z=uZxI?jo>a0>#ju?k~>AH>z?sbhWYC1Yexyb?zcGrJT74pql?B7Xeg7(>`3pdKYmB ztYQ}X_7ULd!$o|!hz}R>JGh9=G;tSUC|2qsz)}v;CLROxr+S7t^}>6_s#xWBcm++( zO%HomWqUNWq^W}8sbe1n@pcYj8K_n%E0$&gQ!qlcG}nAT%q8h+_#sPUw>4_ZKo121 zFJL^}fxfK0Snn7~J_9H@+p;s&fmF8h=tnix7tv4KMt@@D^NQ?d5SJ`xj^MKQz$PlM zuw0vK4I4<`7SZO2^(7)cxtT4ywt=dvhDE=fot&a+FueMHbFNm;nx8(oY%pUU?0P8Z z(}BoU79!49nz5rz?zpU?bX(dTTMFSmq>Zd!(oVnzEsCCg@L^l z^JX%|BF=6Y5pFNLb3a#j>eoV%w*?&Q1C}>&7zpZ{mbdLK2y1#g^*On5`=cdq*M42l<^aZ@RS5B z+m))^HSLmZ2o&F;h+=yWKm}oXhlzYenf`{p52dQ}z##24hiL>O9Ff512H*xwXcFy_ z>X~J^v~4fhF+*fxtqYJZrEBQmB;E<4qAQC(+5(0X40nMK7J#*BltqJk(lcgKr7vk& zXFm{6Sg`6y{&qHMb4vRaN63x%^S-Qf0a3bPc6u0~c$Wn#tCp$iim9%|u;=o_954(h zhTd+nwHA0hU}~|GUt9~C1l~6FlV!Npkz%e>Ho>;TUCpq*!nW@WRIQXNhN)Hr;JeC) zU>;5b$^+W1%2O|my8hqh=c0qynx%`C2z!y1*A_LLOY$tgrX>b z-s~Vmr=!(tNfeW4{&WX# zEqtX*GfTHZihVp?8+Ql;($HD*5wi+!0Uf=MJ563~*rxiFk833?+g%-q3%%OtF+l-y z89mg;YbU%mRykZ38);&Ul5v*Bv8x%ic^>Vg=dNYJi{*9P*x9Kj z$8SOaO;=3gA3L~`R_5N5{fKNZR{^ zWR@FkTl8GXUvsmVwJBU3TKrpwkA$_qz?0u6fLxOOT0}yrN1`>>>wQ2^1Ge@wJ#Dq8 z_@AHKauJJHb|UkzykwUci7S1`JKzZlzDKC3Snmi=G#U|c@!OL!;keXm5$r5w7xRM4 zgnBsLolnySon`1|vjceIHgl9=~6ENAD> z*r=?O74VY--cxafkca<4_O36hJsPSLUqJB9?x%DW_0HQ*CbwM!Z-mapgGihx#Y$9 zr4z4_Ajr?2FpwN}cfi=}aaMO-$l1wnr_C@hV$(j5F+$CsGxs+CW|Ju3Y_{_EaT@y+ z-4RRC0w+5fy@)Sm;}Qwb^X7&%rFeGHR2T*rY>^w;MbrE_J#5I430F*C?#N~Ux`fFH z4hrTM_fUm>gp`O`v9}vS9)_n9ol6@R;DjmF41d-Z(1-{(VR@r)GD+x43GpZ{$j@)R zcH^{+bPN|K+N0z^TA-pRmcpbn&fd>|fISa6b3XIzh%<-5prl}G7Jz0~jk7F`-`&Zp z+a%=#SDRTD$T9Q9?m>H)%BWkUx5wJ-wVMOtRx53Y8Ab}d{1`~Sj&gdzBGrfvufwI+ zAbN@Grk5=`GWtBFVA?nvKUD80ZUaq%`)}7uqh(BQ?a^uLRC{dR)(`IQM~zQm_4~L{ zxxVdmI)By98lTSt?@F<2nsXKKreSbR@WJU6`0ay{F*4izEBM_3>PVeb9TQeAKYu$p zz>js!a&9Yk&ByVHKdz(3_qYlMfvVgaItw#;eLZY7gK@n!oRX6PzPkH9@UA)d>F0Xg zx-Xyb=dWSK7<{Yf{Mj^ZdZ%EvB2QCws12J+@9v=jbma=^dNS=BH}Qeh8$XtLXY|>a zemaPs4*XvA@#^uQRT*lngF(OIUtH=gdOV1Duai#~(SfUJBh;^5L)bXz$c$-Oj?9>5 fq&yrTF4Z|tpH~^#-08B&{;gNYpa1uN!0`twWpK}r literal 0 HcmV?d00001 diff --git a/ExternalMaterial/3DCursor/3DCursor.pxc1 b/ExternalMaterial/3DCursor/3DCursor.pxc1 new file mode 100644 index 0000000000000000000000000000000000000000..52c2c1783bebbb9b612e807709ec0186085406fa GIT binary patch literal 3020 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 Oaq9Q@um1o=0Q!tl%o6bc literal 0 HcmV?d00001 diff --git a/ExternalMaterial/CirnoTitle/CirnoTitleRecovered.pxc b/ExternalMaterial/CirnoTitle/CirnoTitleRecovered.pxc index 38aef310834aa3381f480bdfb6e3a6bace768697..a64d50fb45c4b8783ccfd3a70c7ccace65343917 100644 GIT binary patch literal 9852 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 literal 5660 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 literal 9173 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 diff --git a/Scripts/GlobalState.cs b/Scripts/GlobalState.cs index 4550a380..d66d4d63 100644 --- a/Scripts/GlobalState.cs +++ b/Scripts/GlobalState.cs @@ -1,3 +1,4 @@ +using System; using System.Threading.Tasks; using Cirno.Scripts.Resources; using Cirno.Scripts.Utils; @@ -20,6 +21,12 @@ public partial class GlobalState : Node private Control _loadingPlaque; + private readonly StringName _menuMouseTexturePath = "uid://d3oxwik1uoe4j"; + private readonly StringName _reticuleMouseTexturePath = "uid://8nns6w0skiy3"; + + private Texture2D _menuMouseTexture; + private Image _menuMouseImage; + public override void _Ready() { Instance = this; @@ -32,9 +39,28 @@ public partial class GlobalState : Node _fader = CreateFader(); + _menuMouseTexture =ResourceLoader.Load(_menuMouseTexturePath); + _menuMouseImage = _menuMouseTexture.GetImage(); + + GetTree().GetRoot().SizeChanged += OnSizeChanged; + //_mouseTexture = + OnSizeChanged(); //LoadPlaque(); } + private void OnSizeChanged() + { + var root = GetTree().GetRoot(); + var baseSize = root.ContentScaleSize; + var newSize = root.Size; + + int scaleX = newSize.X / baseSize.X; + int scaleY = newSize.Y / baseSize.Y; + int scale = Math.Min(scaleX, scaleY); // Ensure pixel-perfect scaling + + ResizeCursor(scale / 2); + } + public void GotoScene(string path) { // This function will usually be called from a signal callback, @@ -176,9 +202,21 @@ public partial class GlobalState : Node saveFile.StoreLine(jsonString); } - + public void LoadGame() { } + + public void ResizeCursor(float scale) + { + var scaled = (Image)_menuMouseImage.Duplicate(); + + var size = (Vector2I)(scale * _menuMouseTexture.GetSize()); + + scaled.Resize(size.X, size.Y, Image.Interpolation.Nearest); + + DisplayServer.CursorSetCustomImage(scaled); + } + } \ No newline at end of file diff --git a/Scripts/UI/OptionsMenu.cs b/Scripts/UI/OptionsMenu.cs index e10f3753..2b4319ed 100644 --- a/Scripts/UI/OptionsMenu.cs +++ b/Scripts/UI/OptionsMenu.cs @@ -120,5 +120,9 @@ public partial class OptionsMenu : MenuBase AudioServer.SetBusVolumeLinear(AudioServer.GetBusIndex("Effects"), config.GetValue("Audio", "Effects", AudioServer.GetBusVolumeLinear(AudioServer.GetBusIndex("Effects"))).AsSingle()); AudioServer.SetBusVolumeLinear(AudioServer.GetBusIndex("Music"), config.GetValue("Audio", "Music", AudioServer.GetBusVolumeLinear(AudioServer.GetBusIndex("Music"))).AsSingle()); + + // Scale mouse + + GlobalState.Instance.ResizeCursor(4); } } \ No newline at end of file diff --git a/project.godot b/project.godot index 959366a3..d68930e0 100644 --- a/project.godot +++ b/project.godot @@ -127,8 +127,6 @@ window/size/window_width_override=1920 window/size/window_height_override=1080 window/stretch/mode="canvas_items" window/stretch/scale_mode="integer" -mouse_cursor/custom_image="uid://8nns6w0skiy3" -mouse_cursor/custom_image_hotspot=Vector2(24, 24) [dotnet]