]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Better jetpack emitter (#36093)
authormetalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Sun, 30 Mar 2025 04:06:01 +0000 (15:06 +1100)
committerGitHub <noreply@github.com>
Sun, 30 Mar 2025 04:06:01 +0000 (15:06 +1100)
* 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>
Content.Client/Movement/Systems/JetpackSystem.cs
Content.Shared/Movement/Components/ActiveJetpackComponent.cs

index 2954140d7927b00639fdacdbdb7dae6c3f0a026b..804736ab7a9bd210843c869b338109804c126dbf 100644 (file)
@@ -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<ActiveJetpackComponent>();
+        var query = EntityQueryEnumerator<ActiveJetpackComponent, TransformComponent>();
 
-        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);
index 615dc3aee43e85efeecce2df159a788f67ce047d..03c2a8345dee6ba95fdc529accd862c7ec4b4e15 100644 (file)
@@ -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;
 }