ajhahn.de
← Theria
GDScript 22 lines
class_name InputCommand
extends RefCounted
## A single tick of intent for one entity.
##
## The simulation consumes these. Nothing here touches rendering or the engine
## input system, so the same command type is produced by the local player, a
## bot, or — later — the network layer.

## Desired movement direction. Components are expected in [-1, 1]; the
## simulation clamps the magnitude to 1 so diagonal input is not faster.
var move_dir: Vector2 = Vector2.ZERO

## Ability cast intent for this tick. `ability_slot` is the bar slot to cast (0..3
## of the active form's kit), or -1 for no cast. `target_point` aims a skillshot or
## ground ability (a world position); `target_id` locks a unit-targeted one (an
## entity id). The fields the chosen ability does not use are ignored. Only
## `move_dir` is carried over the wire today; ability intent is consumed locally
## (v0.1 is local-only), so adding it here does not reshape the netcode protocol.
var ability_slot: int = -1
var target_point: Vector2 = Vector2.ZERO
var target_id: int = 0