]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Mob collision tweaks (#36296)
authormetalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Fri, 4 Apr 2025 15:14:04 +0000 (02:14 +1100)
committerGitHub <noreply@github.com>
Fri, 4 Apr 2025 15:14:04 +0000 (17:14 +0200)
* Mob collision tweaks

- Remove the dot product default so moving also pops it.
- Cleanup the cvars so admins can adjust

* Gas canister revert

Content.Server/Movement/Commands/ToggleMobCollisionCommand.cs [deleted file]
Content.Shared/CCVar/CCVars.Movement.cs
Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml

diff --git a/Content.Server/Movement/Commands/ToggleMobCollisionCommand.cs b/Content.Server/Movement/Commands/ToggleMobCollisionCommand.cs
deleted file mode 100644 (file)
index 8276291..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-using Content.Server.Administration;
-using Content.Shared.Administration;
-using Content.Shared.CCVar;
-using Robust.Shared.Configuration;
-using Robust.Shared.Console;
-
-namespace Content.Server.Movement.Commands;
-
-/// <summary>
-/// Temporary command to enable admins to toggle the mob collision cvar.
-/// </summary>
-[AdminCommand(AdminFlags.VarEdit)]
-public sealed class ToggleMobCollisionCommand : IConsoleCommand
-{
-    [Dependency] private readonly IConfigurationManager _cfgManager = default!;
-
-    public string Command => "toggle_mob_collision";
-    public string Description => "Toggles mob collision";
-    public string Help => Description;
-    public void Execute(IConsoleShell shell, string argStr, string[] args)
-    {
-        _cfgManager.SetCVar(CCVars.MovementMobPushing, !_cfgManager.GetCVar(CCVars.MovementMobPushing));
-    }
-}
index 539a27c1004a463e6fa72d7040d4e90d33021c9c..39b9836c405e9f95b9b6e85826bdb96fa73554e6 100644 (file)
@@ -1,3 +1,5 @@
+using Content.Shared.Administration;
+using Content.Shared.CCVar.CVarAccess;
 using Robust.Shared.Configuration;
 
 namespace Content.Shared.CCVar;
@@ -7,24 +9,28 @@ public sealed partial class CCVars
     /// <summary>
     /// Is mob pushing enabled.
     /// </summary>
+    [CVarControl(AdminFlags.VarEdit)]
     public static readonly CVarDef<bool> MovementMobPushing =
         CVarDef.Create("movement.mob_pushing", false, CVar.SERVER | CVar.REPLICATED);
 
     /// <summary>
     /// Can we push mobs not moving.
     /// </summary>
+    [CVarControl(AdminFlags.VarEdit)]
     public static readonly CVarDef<bool> MovementPushingStatic =
         CVarDef.Create("movement.pushing_static", true, CVar.SERVER | CVar.REPLICATED);
 
     /// <summary>
     /// Dot product for the pushed entity's velocity to a target entity's velocity before it gets moved.
     /// </summary>
+    [CVarControl(AdminFlags.VarEdit)]
     public static readonly CVarDef<float> MovementPushingVelocityProduct =
-        CVarDef.Create("movement.pushing_velocity_product", 0.0f, CVar.SERVER | CVar.REPLICATED);
+        CVarDef.Create("movement.pushing_velocity_product", -1f, CVar.SERVER | CVar.REPLICATED);
 
     /// <summary>
     /// Cap for how much an entity can be pushed per second.
     /// </summary>
+    [CVarControl(AdminFlags.VarEdit)]
     public static readonly CVarDef<float> MovementPushingCap =
         CVarDef.Create("movement.pushing_cap", 100f, CVar.SERVER | CVar.REPLICATED);
 
@@ -32,6 +38,7 @@ public sealed partial class CCVars
     /// Minimum pushing impulse per tick. If the value is below this it rounds to 0.
     /// This is an optimisation to avoid pushing small values that won't actually move the mobs.
     /// </summary>
+    [CVarControl(AdminFlags.VarEdit)]
     public static readonly CVarDef<float> MovementMinimumPush =
         CVarDef.Create("movement.minimum_push", 0.1f, CVar.SERVER | CVar.REPLICATED);
 
@@ -39,12 +46,14 @@ public sealed partial class CCVars
     /// <summary>
     /// Penetration depth cap for considering mob collisions.
     /// </summary>
+    [CVarControl(AdminFlags.VarEdit)]
     public static readonly CVarDef<float> MovementPenetrationCap =
         CVarDef.Create("movement.penetration_cap", 0.3f, CVar.SERVER | CVar.REPLICATED);
 
     /// <summary>
     /// Based on the mass difference multiplies the push amount by this proportionally.
     /// </summary>
+    [CVarControl(AdminFlags.VarEdit)]
     public static readonly CVarDef<float> MovementPushMassCap =
         CVarDef.Create("movement.push_mass_cap", 1.75f, CVar.SERVER | CVar.REPLICATED);
 }
index 12b3261dfa06cd537a9a6d445d379a009e2d14bc..33c4dfbe178ebe18ab1fa0ecf282290c526cd125 100644 (file)
@@ -65,7 +65,6 @@
     - type: Damageable
       damageContainer: Inorganic
       damageModifierSet: Metallic
-    - type: MobCollision
     - type: Physics
       bodyType: Dynamic
     - type: Fixtures
@@ -75,7 +74,6 @@
             !type:PhysShapeAabb
             bounds: "-0.25,-0.25,0.25,0.25"
           density: 190
-          hard: false
           mask:
           - SmallMobMask
           layer: