Saltar a contenido

Weapon State Publisher

Tipo: Exec (In → Out)
Categoría: PLAYER

Puente normalizador entre Inventory Manager y el resto del pipeline de armas. Lee el slot activo de _inv_slots y publica todas las variables weapon_* en un formato estándar que los demás nodos consumen.

Debe colocarse después de Inventory Manager en el grafo.

Sockets

Socket Dirección Tipo
In Entrada Exec
Out Salida Exec

Variables publicadas (weapon_*)

Estas variables son de solo lectura para todos los nodos excepto este.

Variable Tipo Descripción
weapon_exists bool El slot activo tiene un arma
weapon_type string Tipo del arma activa (ej: "PISTOL")
weapon_is_melee bool El arma activa es cuerpo a cuerpo
weapon_ammo int Balas en el cargador actual
weapon_ammo_max int Capacidad máxima del cargador
weapon_magazines int Cargadores de reserva
weapon_magazines_max int Máximo de cargadores de reserva
weapon_slot int Índice del slot activo
weapon_can_fire bool True si existe el arma Y (es melee O tiene balas)
weapon_fire_requested bool True el frame en que _inv_last_evt == "FIRED"
weapon_reload_requested bool True el frame en que _inv_last_evt == "RELOADED"

Posición en el grafo

[Inventory Manager]
    ├── Changed ──► [Weapon State Publisher] → [Weapon Fire Executor] → ...
    └── Idle    ──►

!!! note "Por qué existe este nodo" Inventory Manager trabaja con dicts Python (_inv_slots[n]). Este nodo convierte esos dicts a variables planas tipadas (weapon_ammo: int), haciendo que el resto del pipeline sea independiente de la implementación interna del inventario.