]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Make pointing cooldown a cvar (#30623)
authorDrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
Sun, 4 Aug 2024 03:34:33 +0000 (20:34 -0700)
committerGitHub <noreply@github.com>
Sun, 4 Aug 2024 03:34:33 +0000 (13:34 +1000)
* Make pointing cooldown a cvar

* Remove empty line

Content.Server/Pointing/EntitySystems/PointingSystem.cs
Content.Shared/CCVar/CCVars.cs

index f2f60f3063ec2f9572ed14cbb0ef51eee0b63172..d5ad1fb123e42b66645403aec5e2cc118da026ba 100644 (file)
@@ -1,6 +1,7 @@
 using System.Linq;
 using Content.Server.Administration.Logs;
 using Content.Server.Pointing.Components;
+using Content.Shared.CCVar;
 using Content.Shared.Database;
 using Content.Shared.Examine;
 using Content.Shared.Eye;
@@ -14,6 +15,7 @@ using Content.Shared.Popups;
 using JetBrains.Annotations;
 using Robust.Server.GameObjects;
 using Robust.Server.Player;
+using Robust.Shared.Configuration;
 using Robust.Shared.Enums;
 using Robust.Shared.GameStates;
 using Robust.Shared.Input.Binding;
@@ -27,6 +29,7 @@ namespace Content.Server.Pointing.EntitySystems
     [UsedImplicitly]
     internal sealed class PointingSystem : SharedPointingSystem
     {
+        [Dependency] private readonly IConfigurationManager _config = default!;
         [Dependency] private readonly IReplayRecordingManager _replay = default!;
         [Dependency] private readonly IMapManager _mapManager = default!;
         [Dependency] private readonly IPlayerManager _playerManager = default!;
@@ -40,7 +43,7 @@ namespace Content.Server.Pointing.EntitySystems
         [Dependency] private readonly IAdminLogManager _adminLogger = default!;
         [Dependency] private readonly ExamineSystemShared _examine = default!;
 
-        private static readonly TimeSpan PointDelay = TimeSpan.FromSeconds(0.5f);
+        private TimeSpan _pointDelay = TimeSpan.FromSeconds(0.5f);
 
         /// <summary>
         ///     A dictionary of players to the last time that they
@@ -124,7 +127,7 @@ namespace Content.Server.Pointing.EntitySystems
             }
 
             if (_pointers.TryGetValue(session, out var lastTime) &&
-                _gameTiming.CurTime < lastTime + PointDelay)
+                _gameTiming.CurTime < lastTime + _pointDelay)
             {
                 return false;
             }
@@ -257,6 +260,8 @@ namespace Content.Server.Pointing.EntitySystems
             CommandBinds.Builder
                 .Bind(ContentKeyFunctions.Point, new PointerInputCmdHandler(TryPoint))
                 .Register<PointingSystem>();
+
+            Subs.CVar(_config, CCVars.PointingCooldownSeconds, v => _pointDelay = TimeSpan.FromSeconds(v), true);
         }
 
         private void OnPointAttempt(PointingAttemptEvent ev, EntitySessionEventArgs args)
index 9f8a02cbb731f989dc93e62f2c4f84c510db1d48..6c145d69da33c8ce13275b13eed8a6a9e64e70d5 100644 (file)
@@ -2212,6 +2212,12 @@ namespace Content.Shared.CCVar
         public static readonly CVarDef<string> TippyEntity =
             CVarDef.Create("tippy.entity", "Tippy", CVar.SERVER | CVar.REPLICATED);
 
+        /// <summary>
+        ///     The number of seconds that must pass for a single entity to be able to point at something again.
+        /// </summary>
+        public static readonly CVarDef<float> PointingCooldownSeconds =
+            CVarDef.Create("pointing.cooldown_seconds", 0.5f, CVar.SERVERONLY);
+
         /*
          * DEBUG
          */