using Content.Shared.Administration;
using Content.Shared.CCVar.CVarAccess;
using Robust.Shared.Configuration;
namespace Content.Shared.CCVar;
public sealed partial class CCVars
{
///
/// Is mob pushing enabled.
///
[CVarControl(AdminFlags.VarEdit)]
public static readonly CVarDef MovementMobPushing =
CVarDef.Create("movement.mob_pushing", false, CVar.SERVER | CVar.REPLICATED);
///
/// Can we push mobs not moving.
///
[CVarControl(AdminFlags.VarEdit)]
public static readonly CVarDef MovementPushingStatic =
CVarDef.Create("movement.pushing_static", true, CVar.SERVER | CVar.REPLICATED);
///
/// Dot product for the pushed entity's velocity to a target entity's velocity before it gets moved.
///
[CVarControl(AdminFlags.VarEdit)]
public static readonly CVarDef MovementPushingVelocityProduct =
CVarDef.Create("movement.pushing_velocity_product", -9999f, CVar.SERVER | CVar.REPLICATED);
///
/// Cap for how much an entity can be pushed per second.
///
[CVarControl(AdminFlags.VarEdit)]
public static readonly CVarDef MovementPushingCap =
CVarDef.Create("movement.pushing_cap", 25f, CVar.SERVER | CVar.REPLICATED);
///
/// 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.
///
[CVarControl(AdminFlags.VarEdit)]
public static readonly CVarDef MovementMinimumPush =
CVarDef.Create("movement.minimum_push", 0f, CVar.SERVER | CVar.REPLICATED);
// Really this just exists because hot reloading is cooked on rider.
///
/// Penetration depth cap for considering mob collisions.
///
[CVarControl(AdminFlags.VarEdit)]
public static readonly CVarDef MovementPenetrationCap =
CVarDef.Create("movement.penetration_cap", 0.5f, CVar.SERVER | CVar.REPLICATED);
///
/// Based on the mass difference multiplies the push amount by this proportionally.
///
[CVarControl(AdminFlags.VarEdit)]
public static readonly CVarDef MovementPushMassCap =
CVarDef.Create("movement.push_mass_cap", 1.75f, CVar.SERVER | CVar.REPLICATED);
}