Commit graph

12 commits

Author SHA1 Message Date
Tobias Thiele
b43f9fdea3 🔦 Fix flashlight beam not tracking view pitch
The light was positioned once at toggle time and then handed to the engine
via SetParent + SetParentAttachmentMaintainOffset on the pawn's
`axis_of_intent` attachment. That attachment carries the body's yaw but not
the view pitch, so once parented the beam could only ever rotate
horizontally — looking up or down did nothing.

Drop the parenting and drive the light's transform ourselves every tick from
the pawn's live AbsOrigin and V_angle, which is how the plugin behaved before
0.1.1 replaced the per-tick teleport with a parented entity.

Also:
- OnTick no longer short-circuits on !AllowUseKey, which otherwise stopped
  the light updating for servers that only expose css_fl_toggle.
- ForwardDistance now offsets the light horizontally only. Applying it along
  the pitched forward vector put the light below ground when looking straight
  down (crouched eye height 46 minus 54).
- Sweep up the light when the pawn is dead; an un-parented entity no longer
  dies with its pawn.
- Remove the now-unused AttachmentName config key.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-27 08:50:29 +02:00
Tobias Thiele
c7779740c7 ⚙️ Add AllowedTeam and bump to 0.1.1
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>
2026-07-21 07:34:09 +02:00
Tobias Thiele
a0ef6311ee 🔦 Modernize flashlight for CSS/.NET 10
Bump to CounterStrikeSharp 1.0.371 and .NET 10, replace per-tick light
spawns with a parented light_barn, add plugin config, real unit tests,
and refresh CI plus docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 07:26:30 +02:00
Vesper
57e502fbf6 fix: Entity validity check before Remove() - fixes #2
Add IsValid checks before calling Remove() on flashlight entities to prevent
InvalidOperationException when players switch teams.

Changes:
- Add validity check in ToggleFlashlight() before entity.Remove()
- Add validity check in OnPlayerDisconnect() before flashlight.Remove()
- Add OnPlayerTeam event handler to clean up flashlight on team switch
- Bump version to 0.0.7

This prevents the 'Entity is not valid' crash reported in Issue #2 when
players switch teams and their entities become invalid.
2026-02-28 22:21:00 +00:00
Vesper
bd2ad516f4 feat: Update to latest CS2/CSS API and .NET 8.0
- Update TargetFramework from net7.0 to net8.0
- Update CounterStrikeSharp.API from 1.0.126 to 1.0.363
- Update MinimumApiVersion from 126 to 363
- Bump ModuleVersion to 0.0.6
- FIX: Replace deprecated EyeAngles with V_angle (fixes #5)
- FIX: Fix closure capture bug in timer callbacks (race condition)
- Add null checks for player pawn data
- Add xUnit test project with core logic tests
- Update solution file to include test project
- Update README with development instructions and changelog

Workflow update will be handled separately due to GitHub token scope requirements.

This update ensures compatibility with the latest Counter-Strike 2
and CounterStrikeSharp API versions.
2026-02-28 22:16:15 +00:00
Tobias Thiele
91f7dd4f69 💡 Update module version to 0.0.5 in Flashlight.cs 2023-12-14 06:53:39 +01:00
Tobias Thiele
ea40c1a5ba 💡 ✏️ Update CounterStrikeSharp.API version to 1.0.126
- Updated the CounterStrikeSharp.API version in the Flashlight.csproj file to 1.0.126.
2023-12-14 06:53:12 +01:00
Tobias Thiele
95c459f931 Fix server crash on some systems 2023-12-13 17:57:52 +01:00
Tobias Thiele
e5733dab3a Update version number 2023-12-13 11:05:13 +01:00
Tobias Thiele
963229bb5d Fix /fl_toggle 2023-12-13 11:04:36 +01:00
Tobias Thiele
72cb2020e2 Fix crouching with temp solution 2023-12-13 10:32:26 +01:00
Tobias Thiele
01b43dcdef 🚀 Initial commit 2023-12-13 09:46:00 +01:00