From 114ec579f53f1430102f3bd6c9aa6784ba1c1b3f Mon Sep 17 00:00:00 2001 From: =?utf8?q?=D0=93=D0=BE=D0=BB=D1=83=D0=B1=D1=8C?= <124601871+Golubgik@users.noreply.github.com> Date: Tue, 8 Jul 2025 02:19:28 +0700 Subject: [PATCH] =?utf8?q?JumpBoots=20Attempt=20=E2=84=962=20(#36862)?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> Co-authored-by: unknown Co-authored-by: ScarKy0 --- Content.Shared/Actions/ActionGrantSystem.cs | 6 +++ .../Actions/ItemActionGrantComponent.cs | 6 +++ .../Components/JumpAbilityComponent.cs | 36 ++++++++++++++++++ .../Systems/SharedJumpAbilitySystem.cs | 35 +++++++++++++++++ Resources/Audio/Effects/attributions.yml | 5 +++ Resources/Audio/Effects/stealthoff.ogg | Bin 0 -> 6727 bytes Resources/Prototypes/Actions/types.yml | 14 +++++++ .../Entities/Clothing/Shoes/misc.yml | 27 +++++++++++++ .../Recipes/Lathes/Packs/science.yml | 1 + Resources/Prototypes/Recipes/Lathes/misc.yml | 13 ++++++- Resources/Prototypes/Research/industrial.yml | 1 + .../Boots/jumpboots.rsi/equipped-FEET-vox.png | Bin 0 -> 3030 bytes .../Boots/jumpboots.rsi/equipped-FEET.png | Bin 0 -> 2611 bytes .../Shoes/Boots/jumpboots.rsi/icon.png | Bin 0 -> 2378 bytes .../Shoes/Boots/jumpboots.rsi/inhand-left.png | Bin 0 -> 2473 bytes .../Boots/jumpboots.rsi/inhand-right.png | Bin 0 -> 2544 bytes .../Shoes/Boots/jumpboots.rsi/meta.json | 30 +++++++++++++++ .../Interface/Actions/jump.rsi/icon.png | Bin 0 -> 1673 bytes .../Interface/Actions/jump.rsi/meta.json | 14 +++++++ 19 files changed, 187 insertions(+), 1 deletion(-) create mode 100644 Content.Shared/Movement/Components/JumpAbilityComponent.cs create mode 100644 Content.Shared/Movement/Systems/SharedJumpAbilitySystem.cs create mode 100644 Resources/Audio/Effects/stealthoff.ogg create mode 100644 Resources/Textures/Clothing/Shoes/Boots/jumpboots.rsi/equipped-FEET-vox.png create mode 100644 Resources/Textures/Clothing/Shoes/Boots/jumpboots.rsi/equipped-FEET.png create mode 100644 Resources/Textures/Clothing/Shoes/Boots/jumpboots.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Shoes/Boots/jumpboots.rsi/inhand-left.png create mode 100644 Resources/Textures/Clothing/Shoes/Boots/jumpboots.rsi/inhand-right.png create mode 100644 Resources/Textures/Clothing/Shoes/Boots/jumpboots.rsi/meta.json create mode 100644 Resources/Textures/Interface/Actions/jump.rsi/icon.png create mode 100644 Resources/Textures/Interface/Actions/jump.rsi/meta.json diff --git a/Content.Shared/Actions/ActionGrantSystem.cs b/Content.Shared/Actions/ActionGrantSystem.cs index f73ecf8a46..e5b737f28f 100644 --- a/Content.Shared/Actions/ActionGrantSystem.cs +++ b/Content.Shared/Actions/ActionGrantSystem.cs @@ -1,3 +1,5 @@ +using Content.Shared.Inventory; + namespace Content.Shared.Actions; /// @@ -17,9 +19,13 @@ public sealed class ActionGrantSystem : EntitySystem private void OnItemGet(Entity ent, ref GetItemActionsEvent args) { + if (!TryComp(ent.Owner, out ActionGrantComponent? grant)) return; + if (ent.Comp.ActiveIfWorn && (args.SlotFlags == null || args.SlotFlags == SlotFlags.POCKET)) + return; + foreach (var action in grant.ActionEntities) { args.AddAction(action); diff --git a/Content.Shared/Actions/ItemActionGrantComponent.cs b/Content.Shared/Actions/ItemActionGrantComponent.cs index d1769b51a2..db722d0c46 100644 --- a/Content.Shared/Actions/ItemActionGrantComponent.cs +++ b/Content.Shared/Actions/ItemActionGrantComponent.cs @@ -11,4 +11,10 @@ public sealed partial class ItemActionGrantComponent : Component { [DataField(required: true), AutoNetworkedField, AlwaysPushInheritance] public List Actions = new(); + + /// + /// Actions will only be available if the item is in the clothing slot. + /// + [DataField, AutoNetworkedField] + public bool ActiveIfWorn; } diff --git a/Content.Shared/Movement/Components/JumpAbilityComponent.cs b/Content.Shared/Movement/Components/JumpAbilityComponent.cs new file mode 100644 index 0000000000..6da9161578 --- /dev/null +++ b/Content.Shared/Movement/Components/JumpAbilityComponent.cs @@ -0,0 +1,36 @@ +using Content.Shared.Actions; +using Content.Shared.Movement.Systems; +using Robust.Shared.Audio; +using Robust.Shared.GameStates; + +namespace Content.Shared.Movement.Components; + +/// +/// A component for configuring the settings for the jump action. +/// To give the jump action to an entity use and . +/// The basic action prototype is "ActionGravityJump". +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState, Access(typeof(SharedJumpAbilitySystem))] +public sealed partial class JumpAbilityComponent : Component +{ + /// + /// How far you will jump (in tiles). + /// + [DataField, AutoNetworkedField] + public float JumpDistance = 5f; + + /// + /// Basic “throwing” speed for TryThrow method. + /// + [DataField, AutoNetworkedField] + public float JumpThrowSpeed = 10f; + + /// + /// This gets played whenever the jump action is used. + /// + [DataField, AutoNetworkedField] + public SoundSpecifier? JumpSound; +} + +public sealed partial class GravityJumpEvent : InstantActionEvent; + diff --git a/Content.Shared/Movement/Systems/SharedJumpAbilitySystem.cs b/Content.Shared/Movement/Systems/SharedJumpAbilitySystem.cs new file mode 100644 index 0000000000..ac720cae68 --- /dev/null +++ b/Content.Shared/Movement/Systems/SharedJumpAbilitySystem.cs @@ -0,0 +1,35 @@ +using Content.Shared.Gravity; +using Content.Shared.Movement.Components; +using Content.Shared.Throwing; +using Robust.Shared.Audio.Systems; + +namespace Content.Shared.Movement.Systems; + +public sealed partial class SharedJumpAbilitySystem : EntitySystem +{ + [Dependency] private readonly ThrowingSystem _throwing = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedGravitySystem _gravity = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnGravityJump); + } + + private void OnGravityJump(Entity entity, ref GravityJumpEvent args) + { + if (_gravity.IsWeightless(args.Performer)) + return; + + var xform = Transform(args.Performer); + var throwing = xform.LocalRotation.ToWorldVec() * entity.Comp.JumpDistance; + var direction = xform.Coordinates.Offset(throwing); // to make the character jump in the direction he's looking + + _throwing.TryThrow(args.Performer, direction, entity.Comp.JumpThrowSpeed); + + _audio.PlayPredicted(entity.Comp.JumpSound, args.Performer, args.Performer); + args.Handled = true; + } +} diff --git a/Resources/Audio/Effects/attributions.yml b/Resources/Audio/Effects/attributions.yml index f330220421..3a7f18c7a3 100644 --- a/Resources/Audio/Effects/attributions.yml +++ b/Resources/Audio/Effects/attributions.yml @@ -247,6 +247,11 @@ copyright: "Created by mattroks101 for Bee Station. cig_snuff converted to mono" source: "https://github.com/BeeStation/BeeStation-Hornet/pull/29" +- files: [stealthoff.ogg] + copyright: 'TGStation at d4f678a1772007ff8d7eddd21cf7218c8e07bfc0' + license: "CC-BY-SA-3.0" + source: https://github.com/tgstation/tgstation/commit/d4f678a1772007ff8d7eddd21cf7218c8e07bfc0 + - files: ["soft_thump.ogg"] license: "CC-BY-4.0" copyright: "Clipped by FairlySadPanda (Github) from a sound created by CheChoDj (Freesound)" diff --git a/Resources/Audio/Effects/stealthoff.ogg b/Resources/Audio/Effects/stealthoff.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d78706e9cdcb60f5a3a3f99b1a8f796edefcbe81 GIT binary patch literal 6727 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Shoes/Boots/jumpboots.rsi/equipped-FEET.png b/Resources/Textures/Clothing/Shoes/Boots/jumpboots.rsi/equipped-FEET.png new file mode 100644 index 0000000000000000000000000000000000000000..06c62f2869a573dbcb70e9ea10ebaa832a33b4ad GIT binary patch literal 2611 zcmb_ec}x^%6klwS!+^EmRW*!b(x^B)^Ucm)BdZ`w1;ctEidIdSo%wcmgxy(Z26n-E zpQN?X)|$o`o5pzl0a9xz+7_+1wkm3h)gm@c>6MBG)S5QhZ}t+cS4cOzJKucszTf-3 z-+OQ0)=Zr|F(vu6WSvfzQjl*iLf35Vlh_-5?-3VVLzg6f{%l33OFgQ6;y%bs9ir1E z$YSvN|mW1?WgON`>ul(XWb<57Q7ir&OWZ za6~m6gV!H}^(hgZkYZ$z^OHbNX)%Qi1wLlyuaL__&IO)?<fVmh@EMQpLnn^J%MTJcr zk|4UOx|;%mvKAvdU}YK0Bc`Zk1Wx6iYb@}rOOm}D3Rv`VZb1c7#11j@x(IXZgY zF7XvwX0`L-DiZ! z+3b-6l(T$Mi>4~#cRE}UV}OO~o#l9~k8L=w6)+U=$hP=|T)&X2k@Eo$M4-B@tAJR!iW74>4A=K%5xeM$$#lbCqZmySJoi_AD(}$}k-0C-K z*dYd-uQ|4CQqnq8sl0>D-ZIqRbxu|n(DN>NaQl#gITsHvTbCm@rxM=a+8oE$6`MA; zJ8#r(X|pf>DCI`5t#8{u`t@H7q>qU`g;J(!>1}1&F*!OY$zKlKTojaJ4+~042txZ>sooVRE%{kS3LxX~+yl!vH{CCin_#S5l!8AFk79p4|m`|`;C_uaqr+G1HaGkf>m zjtYHO;;#9LeVP+DCMQ(t57ktEOHW$0#9cy~f?wU~-7=}cfj6#PHg0fJV7BAI+@)zd z-SKDL85zTz4Y!XgpLMkU*z8$Z_}%iNx6dC)*goJE*HP2<^ISeK_VZ~$%h^i@60Tmm b^W`;ibyd5enZDdt`&(C#H`!i0p>+AbCG?0G literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Shoes/Boots/jumpboots.rsi/icon.png b/Resources/Textures/Clothing/Shoes/Boots/jumpboots.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8a548ba6a4b6b27c53b801232ffd33ca5617cda9 GIT binary patch literal 2378 zcmb_edu-Hn94`#m1jz^x11enYL#gDLTH0>A z&F~lr1{9wGBsvJuMZ^b@hvO9lgBTzJ20|1!3?Uduh=4CpBZi-F@2;^o@@+J1kZ z@8|P<-1k;g&6zcF_@l!y3>z7&4Ah`2?i>Zf(Anzf_#IsyGAf_5Fl@va=NN>&(=`sm z@=Yz=U^j%G6=gl{mJ~e#-O0FttTC*lENMvcd}!kl7}XMf;>wCfwDP^e0IXk1pjHR3_G6iEW4imP8Y(dV}Xx44rYS!-n zoqK(Y0~Fg(DCc89F7bHIg=NoZMKUr08PM7aw;PbEftKE4%5X+2qFLmqF~kZJO15r> zbv>5NR8^KT&aiHPKRr)ND0-VUrQZe^kZkBDP}WesXcBnCz$-Fd5qPH2oJiAY(~z!c zYI}cEK+-}Oa3Wwu0B$iwHKRzjbWdYN7FFGhOGvO5m!gm|5>W!rg;A`~W4ehPBX(?x zMJOZ&6P7I{WEc$i38dMrX^QA$psX;6zNB(2sjwU%1ppw)svM-1hzCXlHM>8c%Pmf3 zo&D)5S9BR+-1N%R5tZQ>g;ZsqhxGb5o{S(Ml7n8amlnJ{!=__`*vvIG)M!$yKdQq@ zL5LFXV`U(-q%Wd+Nd|BXDR?1I0)db4ERcMvDm&GD({mQ39O<)ABCSlfOqZgWRZJ@# zm^1{C0|2Fu1wbJgnWM=F z1V{?$^?DSJm3%&d7y9i^;iO4XcV~|rpeR*pj+*w2-&(jJ#{f^&yC}&{ANvW}DPX7& znaA1yxxTNcX7;x=Lj-!4!cKd)bk%N?OjsU8b#c$eq3%T9l3MRh9V#l2WnLvYUht4m zM!eyq)&es9)EG^#O}#&w3hGfyxby< z-g$9WLG;NX!RZCArpDzbSDrq9=&S8(x9z^(#a>u+q3fCJKQ7sPDLKVjzxi_BpIGUV z!n1k*+J^H+p*W)CKXv z?rW2J#$5WkueA{SgbZxiq`4K0!zBf%6I%(quEk1Kpb+rPXs$G5^5Vk} z4_nxAX4)%@`szQfM{{WOQ`Gb-_bQ?K zw#}xfibF=E&1nliujppNqastoo=hS|tSM?yZ6>AaYp_FWIA$aR%+-U38QMSrW~DdG zg;NbUZZvgSctuxpMDJRo%ZRD1p%-No0+7ItN@o)7Nn6PTm>jM`?%ipYp>rnAngCPp zI;7jeEp&rvVcO?`K<7A)_Q@WMR9+LJ3u&I?Aq&Y@1dvw*P7!&!@L`BM3q_UI;F5wf z@)Tg=j+0VYHl0p;(t^jdVl0$pndNwv=K-+*c4yL2GazZtA43RYTepmqW0*ae$K|Jg4xY0>x)IQQ^3} zY1l+Yv~#>E1e_d!g5u>ADBNaBY6hu}dQW4dD^b%*s6?=lP-B=)C1VU-45QLuwwo4l zOxOuI7U8fGO4^Q^)Nv>nV2EaqVIT!zQRe-U0DL@xfR{uK$Uc<^Vl>KWJ_+g&%VX<< zrrzOZ)?J^ka%AcR47)v5lMFIq&Tg|sTkD=5PeKtv?UFep@YOHYAZq!Un z8cBjz^s9cr`2{aPNaTPfN)ULlz#%>=lJMw@ShrCKM7{?n#ljGa5Ry_5AVh%IT`b<~ z1yJ-yRT0Ce--qwS8j~#|ofEYv4>%1%AVQG`8dMR90tuy{`u(y`9=AHjDKC({dnAYh zlK&>djZ9}j!wS5%sD{qE3e&~}b#q@CDy&b(F#)|xljObIX4FZm z7Oszx8oOr`vXhaw)pd8L&P$r+^=c9jcuoVl>=r3PDiBnkENG%%ll`Pf^PFy{4y6c` z6|ylyZmek^gn9v6kE_WTCMOKbJh+(q>)$)YOt=I6e`0c_nXfSRzr~k(H|`7~iOfxr zgU!7y9;xJ^cqro}iIYW++~kd&T@+RFb|_dM$!r_$d%U@By-uu|)Bb(CS z{}DcMc4VvP>y0}%9lJEN{IN9^hslPjVss<{4-LXX&jvYMnrZ{iIVAnT)u0C+Vx2nuJyX)jkA#?^^ z-}7U9*QUjnhp&Ftadh;=(CEygBO9*|e7Ji!ve~h^E`FD|Vm|lNNPlMYxmBlkUt`yo zYhO&tea`f{$>jB(s(5Yam%}w3BNgHI9=SC2np`{U+o>P9!%NhKk+S9Gm9Tc!;G;vY stpEJ??z*>v>C$dD97V|JrLyjlo~r#9v#&O9asNz(8k>WA7Qfv4FR?T|WdHyG literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Shoes/Boots/jumpboots.rsi/inhand-right.png b/Resources/Textures/Clothing/Shoes/Boots/jumpboots.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..f7ee26e9a8609042ad5d7ad2572141fefed9a538 GIT binary patch literal 2544 zcmb_eYitx%7@d-!P$VX5kW{h5;sZkO&YkDZOjz2|E$s%jly(W_)i87CZgKFhm5S5)4H61A&APsuEBziWn6_Q$>UE&b}yE3L$QGc3$5- z-#O>|?!Eh3b5q0E@``ebqQ-_BLoMW7;~k?OBEP%MW#`FhbgFTILs4TM_l`1Z%hvG} zHLBcclRs;|?g23!oBZc~vAemTn6rJ!5FDcF$k~sWHn=Xhg7?&^j=aN_P0@l8tJe)n(ZvF=5B& zSVSUfIO(`r65((t=p&l_rfH~(BE?t(${--}GSHyF0bQ46fO%cS*btB|$~^BFj+Hk=M<)G8a*5i9UxE(kaZA8Cpl-s>_@{G-+0Z zJXQ=H@RGy<(GYZ?@Wc^O3~)T5fn%I9jqxT5fymFnyJ8sX0?U%N;#t-J9P+R@Q3R|Y$20-6F*$($i&eBxFc1{<7zd!vvOr+H z!m^|kl0+2pnk*}U!K!ll@@6r^yGjy}UT8EumwO6+wBltYXXxBKR5j$SFF_yjCKfh) zg~#R)J$PT$E{xB_F##QB!sW9&R?N+4Hm>a;{d&&{&D@Q=qje8Yoh;je#t9h67zscU zN$+S#=YfO+oMs3C7K=(z`t8(NDatA;Sp%S4TmT+~dchVH*ODEW>{g8L!NuI)T99Ws zSj>>C+5aad*P8hbWA1Fe+`B>h87XA$5!ocY%hL8tZb}xFtRpq!8&+@Zwp$ur_^N)w)_v}VS3m8Wm%7?}x$?{>bmOs$A8y`JxBblp zPrQESy(3CvU1Uf9+CS}q6{qJ`WLMSgIk#$~)3pBhW1t3=#mg$j)QmaRMlD=(bi}C< z!nif#w(X_%Q5!~X8yT;nKuzn^zpj3f{-Jw+puhXzp7S5PyZ&SJ-2ACmHmIK+T>ZvB z3+?uu?=Pypap7EWwYS|V>Azog zm!wzT?EHG&r6X;dgr}$P`nK|NPn9?zold_s#DS=hSCwZCaPJMp_; zDo;GKzF{uDU>%w{P_gv;1GU2w9zxTXf0X^S_&0l^QEsg}ga+1~d}{lZ1CjQ!ov*0X z&7ob?_LGkuzc_*JzwuI4d)bWM%E^aUJUMFBi}bAi-u?TyzRHPrm~-Oc&Dq_H4)k4r Q$NNtfu5SwMnXz>3zx@4BMF0Q* literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Shoes/Boots/jumpboots.rsi/meta.json b/Resources/Textures/Clothing/Shoes/Boots/jumpboots.rsi/meta.json new file mode 100644 index 0000000000..faaa2fe6bb --- /dev/null +++ b/Resources/Textures/Clothing/Shoes/Boots/jumpboots.rsi/meta.json @@ -0,0 +1,30 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/cd6ba31a1b5891133c14b9ebba4a4479143b5167", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-FEET", + "directions": 4 + }, + { + "name": "equipped-FEET-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Interface/Actions/jump.rsi/icon.png b/Resources/Textures/Interface/Actions/jump.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..46af10ae2797f666b4de8fc9677a0b2ea289b816 GIT binary patch literal 1673 zcmbVNZA{!`9PcS^aEzDjoYA?sTFipt_3aLitE+%_OwO!G;LL8BL3-`eyUMjsX$yA{ z7IC@+qFG{ChMSm7MU0DK;y1z;r!i&*KkN%L;&3=IktL!=qoQ%~>2Y`247#|c?eo&# z^ZUR5JKWmxSebj98^f@&NOQOijkxm^Z$NLWzyB9Blo-wXEDS64IFAcEK6WRD6|Jbz zm>m=La1zu=QHF6qW;6q#F>F_T#t@}0VB>L+P<5X8Vdet@S7n~qTPx6l5dulIx!(ls z{Vh?cze@_rMExW9t_+6=G+>K(MoZ}ym*I&lFNfyNHbvlBh~32#jgCM(CbZ%qXaYPy zGG2+MX*>`lfh@9dpYkBi(kw$U==OUVmh;h^pT%<*fy9}z!nK8W=Y*jZPb6*I;3z7c zPLpXL3C#q>1cO0}W+|5SB81oK(`_;1)vc;LLl{_+sT#Hlb=+YTL22|&IT zgo2E9bF}RQkL>rn>2vhk;wdPgE zSs%&Z)q7Q4hH2~mYYu?0Xak-=QA6>fy-XlV*KxHhSL?5#{TxlNK?NwQO5eKBAjh!R zK~c`gqAlJKEK8gMO-)1wtD2Yql%XdGyx>MI1XIvNf{}K?lqVN z6+11OpfQ2Gb;ER`kn)sMhii6F|1>fC?V6g+!%-t}riB)S7KJ7Tbkw;_)S@0Pe_#m1 zT#b=%V>EW?`%$LiAYFNA$0t*s^7|%>c1qh9ifdkcez<;a?!DE!@ppHY*G+x?;q9*< z{q>nw>&^+|;|DIy%yi(3W8aKU{r=7$o9J7y*vUI)-?zCVhc<5+bxnW9!M6hRpHEXRd)Gv+jl$#!4C%N-rOq_sCe#Gtp65$#riT{B)W;{Z#0+pTC|D zgpyktzTI~I(zB;VTIW{VYj-?!F;F?aX;05gMX|J@dIZ)DomS2+jk%L$txJCnUb)z` r{rrHZt-N>Z#=*|3zT>W|_bis^FE3A4zxCDI&d(y!)DoV2wDaKKom(`< literal 0 HcmV?d00001 diff --git a/Resources/Textures/Interface/Actions/jump.rsi/meta.json b/Resources/Textures/Interface/Actions/jump.rsi/meta.json new file mode 100644 index 0000000000..7a2119f3fb --- /dev/null +++ b/Resources/Textures/Interface/Actions/jump.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/a373b4cb08298523d40acc14f9c390a0c403fc31", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + } + ] +} -- 2.51.2