import type { Vec3 } from '@quake2ts/shared'; import type { Entity } from '../entities/entity.js'; import type { EntitySystem } from '../entities/system.js'; export type MutableVec3 = { x: number; y: number; z: number; }; /** * Mirror of the rerelease `M_walkmove` helper without collision. * Moves the entity along its yaw plane and always reports success. */ export declare function walkMove(self: Entity, yawDegrees: number, distance: number): boolean; /** * Match the rerelease `M_ChangeYaw` turning speed rules. * `yaw_speed` is interpreted the same way as Quake II: degrees per tenth-second. */ export declare function changeYaw(self: Entity, deltaSeconds: number): void; export declare const M_ChangeYaw: typeof changeYaw; export declare function facingIdeal(self: Entity): boolean; export declare function ai_move(self: Entity, distance: number): void; export declare function monster_done_dodge(self: Entity): void; /** * Implements strafing logic for monsters (Combat Positioning). * Matches rerelease `ai_run_slide` behavior. */ export declare function ai_run_slide(self: Entity, distance: number, context: EntitySystem): void; export declare function ai_stand(self: Entity, dist: number, context: EntitySystem): void; export declare function ai_walk(self: Entity, dist: number, context: EntitySystem): void; export declare function ai_turn(self: Entity, distance: number, deltaSeconds: number): void; export declare function ai_run(self: Entity, dist: number, context: EntitySystem): void; export declare function ai_charge(self: Entity, dist: number, context: EntitySystem): void; export declare function ai_face(self: Entity, enemy: Entity | null, distance: number, deltaSeconds: number): void; export declare function CheckGround(self: Entity, context: EntitySystem): void; export declare function M_CheckBottomEx(self: Entity, context: EntitySystem): number; export declare function M_CheckBottom(self: Entity, context: EntitySystem): boolean; export declare function M_MoveStep(self: Entity, move: Vec3, relink: boolean, context: EntitySystem): boolean; export declare function M_walkmove(self: Entity, yawDegrees: number, distance: number, context: EntitySystem): boolean; export declare function SV_StepDirection(self: Entity, yaw: number, dist: number, context: EntitySystem): boolean; export declare function SV_NewChaseDir(self: Entity, enemy: Entity | null, dist: number, context: EntitySystem): void; export declare function M_MoveToPath(self: Entity, context: EntitySystem): void; export declare function M_MoveToGoal(self: Entity, dist: number, context: EntitySystem): boolean; export declare function G_IdealHoverPosition(ent: Entity, context: EntitySystem): Vec3; export declare function SV_flystep(ent: Entity, move: Vec3, relink: boolean, context: EntitySystem): boolean; export declare function M_droptofloor_generic(origin: MutableVec3, mins: Vec3, maxs: Vec3, ceiling: boolean, ignore: Entity, mask: number, allow_partial: boolean, context: EntitySystem): boolean; export declare function M_droptofloor(ent: Entity, context: EntitySystem): boolean; //# sourceMappingURL=movement.d.ts.map