12#include <glm/vec3.hpp>
31static_assert(std::is_trivially_copyable_v<BeamState>,
32 "BeamState must be trivially copyable for network serialization");
Projectile component and weapon/surface type enumerations.
WeaponType
Weapon type — determines tracer style, damage, sound, and impact effects.
Definition WeaponState.hpp:12
@ EnergyGun
Fast hitscan energy burst.
Definition WeaponState.hpp:16
Per-entity state of a continuous beam weapon.
Definition BeamState.hpp:19
bool active
True while the beam is firing.
Definition BeamState.hpp:20
uint8_t locked
True when the energy beam is damaging a locked target.
Definition BeamState.hpp:23
uint8_t _pad2[2]
Padding for alignment.
Definition BeamState.hpp:24
glm::vec3 hitPoint
World-space beam end (hit or max range).
Definition BeamState.hpp:27
uint8_t _pad[3]
Padding for alignment.
Definition BeamState.hpp:21
glm::vec3 origin
World-space beam start (eye position).
Definition BeamState.hpp:26
WeaponType type
Weapon type (selects colour / VFX).
Definition BeamState.hpp:22
float lockStrength
0..1 visual ramp for Tesla arc attachment.
Definition BeamState.hpp:25
glm::vec3 guidePoint
Straight-ahead endpoint used before arcing toward a target.
Definition BeamState.hpp:28