mirror of
https://github.com/creazy231/cs2-css-flashlight.git
synced 2026-09-27 20:17:04 +02:00
Restrict flashlight by CT/T/Any via config, drop tracked docs, and ship the 0.1.1 version bump. Co-authored-by: Cursor <cursoragent@cursor.com>
76 lines
2 KiB
C#
76 lines
2 KiB
C#
using System.Numerics;
|
|
|
|
namespace Flashlight;
|
|
|
|
public static class FlashlightLogic
|
|
{
|
|
public static bool TryToggle(ref bool isOn, ref bool canToggle)
|
|
{
|
|
if (!canToggle)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
isOn = !isOn;
|
|
canToggle = false;
|
|
return true;
|
|
}
|
|
|
|
public static bool IsUsePressedEdge(bool usePressed, bool wasUsePressed)
|
|
{
|
|
return usePressed && !wasUsePressed;
|
|
}
|
|
|
|
public static float GetEyeOffsetZ(bool isCrouching, float standOffset, float crouchOffset)
|
|
{
|
|
return isCrouching ? crouchOffset : standOffset;
|
|
}
|
|
|
|
public static Vector3 CalculateLightOrigin(
|
|
Vector3 pawnOrigin,
|
|
Vector3 forward,
|
|
float eyeOffsetZ,
|
|
float forwardDistance)
|
|
{
|
|
return new Vector3(
|
|
pawnOrigin.X + forward.X * forwardDistance,
|
|
pawnOrigin.Y + forward.Y * forwardDistance,
|
|
pawnOrigin.Z + eyeOffsetZ + forward.Z * forwardDistance);
|
|
}
|
|
|
|
public static Vector3 ForwardFromAnglesDegrees(float pitch, float yaw)
|
|
{
|
|
var pitchRad = pitch * (MathF.PI / 180f);
|
|
var yawRad = yaw * (MathF.PI / 180f);
|
|
var cosPitch = MathF.Cos(pitchRad);
|
|
|
|
return new Vector3(
|
|
cosPitch * MathF.Cos(yawRad),
|
|
cosPitch * MathF.Sin(yawRad),
|
|
-MathF.Sin(pitchRad));
|
|
}
|
|
|
|
public static bool ShouldCreateLight(bool isOn, bool hasValidLight)
|
|
{
|
|
return isOn && !hasValidLight;
|
|
}
|
|
|
|
public static bool ShouldDestroyLight(bool isOn, bool hasValidLight)
|
|
{
|
|
return !isOn && hasValidLight;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Returns whether <paramref name="team"/> may use the flashlight.
|
|
/// Team values match CS2: 2 = Terrorist, 3 = Counter-Terrorist.
|
|
/// </summary>
|
|
public static bool IsTeamAllowed(string allowedTeam, byte team)
|
|
{
|
|
return allowedTeam switch
|
|
{
|
|
"T" => team == 2,
|
|
"CT" => team == 3,
|
|
_ => true
|
|
};
|
|
}
|
|
}
|