From fc4cc8cdade8962234ce75248e33233c2294a5a6 Mon Sep 17 00:00:00 2001 From: hut Date: Sun, 28 Apr 2024 01:33:27 +0200 Subject: [PATCH] add sprite reticule --- Cargo.lock | 64 +++++++++++++++++ Cargo.toml | 2 +- assets/sprites/reticule.png | Bin 0 -> 3762 bytes assets/sprites/reticule2.png | Bin 0 -> 2437 bytes assets/sprites/reticule3.png | Bin 0 -> 1524 bytes media/reticule.svg | 74 ++++++++++++++++++++ media/reticule2.svg | 129 +++++++++++++++++++++++++++++++++++ media/reticule3.svg | 90 ++++++++++++++++++++++++ src/hud.rs | 38 +++++++---- 9 files changed, 381 insertions(+), 16 deletions(-) create mode 100644 assets/sprites/reticule.png create mode 100644 assets/sprites/reticule2.png create mode 100644 assets/sprites/reticule3.png create mode 100644 media/reticule.svg create mode 100644 media/reticule2.svg create mode 100644 media/reticule3.svg diff --git a/Cargo.lock b/Cargo.lock index 1ca0bd6..bf36244 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -72,6 +72,12 @@ dependencies = [ "winit", ] +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + [[package]] name = "ahash" version = "0.8.11" @@ -1503,6 +1509,15 @@ dependencies = [ "windows 0.54.0", ] +[[package]] +name = "crc32fast" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" +dependencies = [ + "cfg-if", +] + [[package]] name = "crossbeam-channel" version = "0.5.12" @@ -1739,6 +1754,15 @@ version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" +[[package]] +name = "fdeflate" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" +dependencies = [ + "simd-adler32", +] + [[package]] name = "file-id" version = "0.2.1" @@ -1766,6 +1790,16 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +[[package]] +name = "flate2" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + [[package]] name = "foreign-types" version = "0.5.0" @@ -2086,6 +2120,7 @@ dependencies = [ "color_quant", "jpeg-decoder", "num-traits", + "png", ] [[package]] @@ -2392,6 +2427,16 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" +[[package]] +name = "miniz_oxide" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +dependencies = [ + "adler", + "simd-adler32", +] + [[package]] name = "mio" version = "0.8.11" @@ -2903,6 +2948,19 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +[[package]] +name = "png" +version = "0.17.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + [[package]] name = "polling" version = "3.5.0" @@ -3286,6 +3344,12 @@ dependencies = [ "wide", ] +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + [[package]] name = "slab" version = "0.4.9" diff --git a/Cargo.toml b/Cargo.toml index 48644bb..c6f188b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ rust-version = "1.76.0" [dependencies] regex = "1" -bevy = { version = "0.13.2", default-features = false, features = ["animation", "bevy_asset", "bevy_audio", "bevy_scene", "bevy_winit", "bevy_core_pipeline", "bevy_pbr", "bevy_gltf", "bevy_render", "bevy_text", "bevy_ui", "jpeg", "multi-threaded", "tonemapping_luts", "vorbis"]} +bevy = { version = "0.13.2", default-features = false, features = ["animation", "bevy_asset", "bevy_audio", "bevy_scene", "bevy_winit", "bevy_core_pipeline", "bevy_pbr", "bevy_gltf", "bevy_render", "bevy_text", "bevy_ui", "jpeg", "multi-threaded", "png", "tonemapping_luts", "vorbis"]} bevy_xpbd_3d = { version = "0.4.2", default-features = false, features = ["3d", "f64", "parry-f64", "parallel", "async-collider"] } bevy_embedded_assets = { version = "0.10.2", optional = true } fastrand = "2.0" diff --git a/assets/sprites/reticule.png b/assets/sprites/reticule.png new file mode 100644 index 0000000000000000000000000000000000000000..1eb89a2f1dcef788e79f91d8372fdb742e925509 GIT binary patch literal 3762 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 W{@hbV&L{EaO^~IzEuzBABmV!Q%v*K< literal 0 HcmV?d00001 diff --git a/assets/sprites/reticule2.png b/assets/sprites/reticule2.png new file mode 100644 index 0000000000000000000000000000000000000000..d97afb197cf8baa21253c8232b16bc3ccac6900d GIT binary patch literal 2437 zcmZ`*XH=8f7EM7T0V$zGga`?aAYwE;#84s%9|S=|k)yT2J!kK;ZiWkmycfA2 z34uWNo^=4+WEl7@_Ux9eQNIr!+O zgvDavLn9b50hgkJ@R89WWuL6}%PykM0%zR+SuUzbiqZ+fq*aRhiXL@bT;ThGQ6`4ybMR#{RuIhimsVz4>f7vCX{7iWT~ zU<*sjyt=wNb8Vs%Fe*pcO@aLYAArD&@ftJAa$MT%MY_Q=Tk4DpZ+c>4LQq;-Dh=MQ ztcA!wQW;z0XASPBYedBrvc5V$aH4iRe*61|kvP8p;GzW=Am+w2f;6uq_^^I7vc5ks6}mKP*@ zIhfZjZR1ugsS=iGLh`SPHb$yR{ima(O=#qS9_Czs&f-lq3egjA1Etq^FwcA!GjG@a zl4S^CF5}kCY%hnw^uL4Rc3Jk6y5KvvUZ0yT3zh#P;j5qO^`F*ybSaz4$K0*Px@`fP zB;f_qLUKg&?nv;MI}go%WH;}gxvfgDd;Bh>1)wI)@OZKI)t0pm4lLGYbii;7m&t7z z3S8Z<*Jtrpl4;2~S|fwvyH_yL5b zH$z-pJB+ol8nZkP@Zn$grp$Je&Awkh-hTtJ588xp1LlZ8dit-5`yP-AhI(ROtJ!BS zE-ogyS~;T5sQh~M^9Iw#G34vAVLOX8MtLp7;;ivU6FKXl8<4r1wM%jI=jmZ*pS(?~ zY-GFY7drOB!l1ceef`#tu7DA4>9+j9}F~kReeO5J}8X0ZW`)R=lX2D zGY-iz?k^sJfN?`Y3xrbkT_R%Knn)CmobM4nkDTeVhHP`MKhme_u#=OMr}z_Dz16!v|LX)V6`P64$)eV_Hp~fuIry>%-F)fQZQr!C zv@Q48NMGN{qcIgBHN(qJ1|pHj>9%a!Fc%6jOdo9K^Z7fR;S*|$64kq79}9Px1&7fT zLc_yF==@0Nu1xYk_}X7W_Vww&9FsVkO0fw&d5^cl@bV!B7NsDs_598q)&Bu`c5ZHN zSD;CWS$}!4WA%ZGWf#{UH@6undgJD@x3|gag<)4a6&+Y6j;?`mNn|p4$}cS&iNRoE z!MMsf;+Q}n&_z@qs;{dHMSM1S)>&0`N#b`q8?|@uUNnRZJr-nA!lHjMpVxw@a>A6F z?FyZsz6XP!N8?ZlUj;7b?i`2myd;SyZ4lB^Z4zctLHWVjxbqUj}b#G-T0 z@`{a6axXt7SA)`ls}|c*p_Hi`j~Te$xvt}E8gtW?w=82t2MF@i+zizdcdgeimHOdX zqsEI_>i0iZkeNSJC;W9|M-b4Fqjq;F@D#+%Wu;TPxMG*BiHr6P{o~~c2LDUQO1o`e z9pX%s@=rUzA0drdhMU3cGi1VYokh|Cs+jc8Ev${>+t5~c8!lR)>b#GTO<+M!;8rhN zR7@v+-jIJ9q!rMIm`|>E6kR;0@mV(E=$PYSjlD4sP1KN~5fO>ne`?LjhP3h@D?Hw5 zcK6}FkJc4JA^Vk|XyoG>3uZ~>jVwe9C?5D4t7y)z5>To|FG~MHZ;npG>~`Ro6|(fGSi4~tFWjBFhVb)t0wgwpWp6U zer1#MYKU!OQJYN=K;wb=m_G50OZA=nmz p=fwKRdVD);W5Vi_xPf2opCwEjPx?c z>bT%?Q&@Jz6`juE*r|~VyuSb(D0@|b&JmOCjfth+Xe$zlH1tb@qd~@CmP8^sS>)RhhOLgj)g_PaV<7v0z@@Bn>c6DXi?qAJEack^N_Zz$1P0D8oI7-(wm-4u zeb~dAn#H*@Dh;Uo4nILc*Z!@>LsjZH+({VPhe7C9jJq#TShvW1%V1Jm*;vlnMm z0bKqub)+pM19;fyV)zc~ltUP(UqTKrJ-is6nS<~9i(4An&Z<_Kdgy7oDe))BY!R** zNwft<5u=_|Ak%Xz=kTa^4XB2Pr|$_^zQ^yq)F|@cje1L2M!0n}y5;?fn~Y4x#4S;e z|3LBJEpSnp+q_4;MYi1IKfRd|!z|eqTy0QV+ScA-`oOC7i}Jo}v`hjsuTu7ff}FLZ K08KXZl>Yz$A%V02 literal 0 HcmV?d00001 diff --git a/assets/sprites/reticule3.png b/assets/sprites/reticule3.png new file mode 100644 index 0000000000000000000000000000000000000000..4db6e869b19e9028ee3ce9207914178ad41320cf GIT binary patch literal 1524 zcmc&!c`(}v6#k)N-K?vK$i`8$m2Qn}#HyBL>W(GqNKqrLs#a2=A+Dr$mtsO$I!I`# zlF(|k)!Dkz%TXFr6+!qV<4UV_v|>`~*!2IM**|yY``(-R=FRu!y_xr}1qYqf)w0k6 z06^E*2OFZyr0@IzqKuT;3W73eQhXw*0HF8cJ5~D0&EG4`Q*jZgq2zO^w78VB0F6d- zPE1as#>Y|4I+IfpYF2)=004ESFZKi>oxMCwJWou6@;|R4_l5;QGJDK#O;o%fu*(2f zX%~H*B*z)f z*XShbuBUbNcv=T)xm_-qS7ansv#DSFd)VbDH!Q)#h&AS=f96g*ocZ9tP(>?6vyeO) z{LMV6wkAW}vBEFBaG(dxs;gPG`lSWUq7@A2H-X0BL>&u7R`?OaHms!kONV6Z z5<%vaX?vz(B`K6k&^Z()Bw{cau;vmcQc>zqc&cSdu+&x(RXlYG?Ao-HY66BC-ED2F zvy9FHi*g<2hUQybxY1x}|`b7gq0Qk+!zj5?+RVC+V zA0kn#C(VKj7E;KM;lX3;SR5n@JfxoyVc7;A#g zrsCD&`Bp-kx5jt)~>_ukQ1%d_r_CNTh2vvcipw=KtZFz*0(%+6;+xCiSip&?P{ zUXI%!kOU+czLRui^e;H?sV>?ZOLxa$ddOppyY@GRmeuG?7xC0ovgdAxk$xmCJhx|@ z@pn{pL25V>OxxZlKT+@S6gmLpd3$?XyHYwT30wlG!2(1kMXxrDM0m($!KJ$~S)C6b zQXf5Af6Vr}btEKP!^*HKeWeN7o~*hC_DZCaQI*scH6X0}^6XRNfLgoD>T9C4HA>f! zxyQ8)CrffPbyULfY;KvV!;PW*ZUqrb>a@CN(WLYwU}0+@*-ci^<&P`Mm{rgcQ z7Q#I|Jcc?uJ4a5xcUy{kt1$Tk_~L@F_q@(r{ReTB B<`w_| literal 0 HcmV?d00001 diff --git a/media/reticule.svg b/media/reticule.svg new file mode 100644 index 0000000..0bfb176 --- /dev/null +++ b/media/reticule.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + diff --git a/media/reticule2.svg b/media/reticule2.svg new file mode 100644 index 0000000..7f9bfc5 --- /dev/null +++ b/media/reticule2.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + diff --git a/media/reticule3.svg b/media/reticule3.svg new file mode 100644 index 0000000..80bddb4 --- /dev/null +++ b/media/reticule3.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + diff --git a/src/hud.rs b/src/hud.rs index 081b25f..b0db0af 100644 --- a/src/hud.rs +++ b/src/hud.rs @@ -290,23 +290,31 @@ fn setup( }); // Add Reticule - commands.spawn(( - Reticule, - ToggleableHudElement, - NodeBundle { - style: Style { - width: Val::Px(2.0), - height: Val::Px(2.0), - position_type: PositionType::Absolute, - top: Val::Vh(50.0), - left: Val::Vw(50.0), - ..default() - }, - visibility, - background_color: Color::rgb(0.4, 0.4, 0.6).into(), + let reticule_handle: Handle = asset_server.load("sprites/reticule3.png"); + commands.spawn(NodeBundle { + style: Style { + width: Val::Percent(100.0), + height: Val::Percent(100.0), + align_items: AlignItems::Center, + justify_content: JustifyContent::SpaceAround, ..default() }, - )); + ..default() + }).with_children(|builder| { + builder.spawn(( + ImageBundle { + image: UiImage::new(reticule_handle), + style: Style { + width: Val::VMin(3.0), + height: Val::VMin(3.0), + ..Default::default() + }, + ..Default::default() + }, + ToggleableHudElement, + Reticule, + )); + }); // Chat "subtitles" and choices commands.spawn(NodeBundle {