From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Sun, 30 Mar 2025 04:06:01 +0000 (+1100) Subject: Better jetpack emitter (#36093) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=ef11f963440e1bdd390962e30a1cf402c1341198;p=space-station-14.git Better jetpack emitter (#36093) * Better jetpack emitter Still need particles this just tilts me whenever I see it. * Update Resources/Prototypes/Entities/Objects/Tools/jetpacks.yml Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> --------- Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> --- diff --git a/Content.Client/Movement/Systems/JetpackSystem.cs b/Content.Client/Movement/Systems/JetpackSystem.cs index 2954140d79..804736ab7a 100644 --- a/Content.Client/Movement/Systems/JetpackSystem.cs +++ b/Content.Client/Movement/Systems/JetpackSystem.cs @@ -49,13 +49,17 @@ public sealed class JetpackSystem : SharedJetpackSystem // TODO: Please don't copy-paste this I beg // make a generic particle emitter system / actual particles instead. - var query = EntityQueryEnumerator(); + var query = EntityQueryEnumerator(); - while (query.MoveNext(out var uid, out var comp)) + while (query.MoveNext(out var uid, out var comp, out var xform)) { - if (_timing.CurTime < comp.TargetTime) - continue; + if (_transform.InRange(xform.Coordinates, comp.LastCoordinates, comp.MaxDistance)) + { + if (_timing.CurTime < comp.TargetTime) + continue; + } + comp.LastCoordinates = _transform.GetMoverCoordinates(xform.Coordinates); comp.TargetTime = _timing.CurTime + TimeSpan.FromSeconds(comp.EffectCooldown); CreateParticles(uid); diff --git a/Content.Shared/Movement/Components/ActiveJetpackComponent.cs b/Content.Shared/Movement/Components/ActiveJetpackComponent.cs index 615dc3aee4..03c2a8345d 100644 --- a/Content.Shared/Movement/Components/ActiveJetpackComponent.cs +++ b/Content.Shared/Movement/Components/ActiveJetpackComponent.cs @@ -1,4 +1,5 @@ using Robust.Shared.GameStates; +using Robust.Shared.Map; namespace Content.Shared.Movement.Components; @@ -9,5 +10,10 @@ namespace Content.Shared.Movement.Components; public sealed partial class ActiveJetpackComponent : Component { public float EffectCooldown = 0.3f; + + public float MaxDistance = 0.7f; + + public EntityCoordinates LastCoordinates; + public TimeSpan TargetTime = TimeSpan.Zero; }