UNPKG

anomaly-packer

Version:

Anomaly Packer is a utility package for STALKER Anomaly creators to help them develop addons at speed with TypeScript's type-safety and game-oriented build tools.

198 lines (181 loc) 6.59 kB
/** @noSelfInFile */ // Engine luabind classes that stock Anomaly (vanilla) registers but were not yet // modelled during the vanilla pass: holders/vehicles, physics, device and console. // Members added by modded exes live in `addons/modded_exes.d.ts` as interface merges. //#region Holders / vehicles /** Base holder interface (things the actor can "enter": cars, mounted guns, ladders). */ declare class holder { engaged(): boolean action(id: number, flags: number): void Action(id: number, flags: number): void SetParam(id: number, value: vector): void SetEnterLocked(locked: boolean): void SetExitLocked(locked: boolean): void } /** Explosive object (grenades, exploding props). */ declare class CExplosive { explode(): void } /** Drivable car. Obtained via `game_object:get_car()`. */ declare class CCar extends CGameObjectBase implements CHolderCustom { Action(id: number, flags: number): void SetParam(id: number, value: vector): void /** Whether the mounted weapon can hit its target */ CanHit(): boolean FireDirDiff(): number IsObjectVisible(obj: CGameObject): boolean HasWeapon(): boolean CurrentVel(): vector GetfHealth(): number SetfHealth(value: number): number SetExplodeTime(time: number): void ExplodeTime(): number CarExplode(): void GetfFuel(): number SetfFuel(fuel: number): void GetfFuelTank(): number SetfFuelTank(fuel_tank: number): void GetfFuelConsumption(): number SetfFuelConsumption(fuel_consumption: number): void ChangefFuel(fuel: number): void ChangefHealth(health: number): void PlayDamageParticles(): void StopDamageParticles(): void StartEngine(): void StopEngine(): void IsActiveEngine(): boolean HandBreak(): void ReleaseHandBreak(): void GetRPM(): number SetRPM(value: number): void } declare const CCar: { /** Mounted weapon action ids (`CCarWeapon`) */ readonly eWpnDesiredDir: number readonly eWpnDesiredPos: number readonly eWpnActivate: number readonly eWpnFire: number readonly eWpnAutoFire: number readonly eWpnToDefaultDir: number } //#endregion //#region Physics /** Scripted physics shell of an object, a set of {@link physics_element}s and joints. */ declare class physics_shell { apply_force(x: number, y: number, z: number): void get_element_by_bone_name(bone_name: string): physics_element get_element_by_bone_id(bone_id: number): physics_element get_element_by_order(order: number): physics_element get_elements_number(): number get_joint_by_bone_name(bone_name: string): physics_joint get_joint_by_bone_id(bone_id: number): physics_joint get_joint_by_order(order: number): physics_joint get_joints_number(): number block_breaking(): void unblock_breaking(): void is_breaking_blocked(): boolean is_breakable(): boolean get_linear_vel(): vector get_angular_vel(): vector freeze(): void unfreeze(): void } /** A single physics element (bone body) of a {@link physics_shell}. */ declare class physics_element { apply_force(x: number, y: number, z: number): void is_breakable(): boolean get_linear_vel(): vector get_angular_vel(): vector get_mass(): number get_density(): number get_volume(): number fix(): void release_fixed(): void is_fixed(): boolean global_transform(): matrix } /** A single physics joint (constraint between two {@link physics_element}s) of a {@link physics_shell}. */ declare class physics_joint { get_bone_id(): number get_first_element(): physics_element get_stcond_element(): physics_element set_anchor_global(x: number, y: number, z: number): void set_anchor_vs_first_element(x: number, y: number, z: number): void set_anchor_vs_second_element(x: number, y: number, z: number): void get_axes_number(): number set_axis_spring_dumping_factors(spring_factor: number, damping_factor: number, axis_num: number): void set_joint_spring_dumping_factors(spring_factor: number, damping_factor: number): void set_axis_dir_global(x: number, y: number, z: number, axis_num: number): void set_axis_dir_vs_first_element(x: number, y: number, z: number, axis_num: number): void set_axis_dir_vs_second_element(x: number, y: number, z: number, axis_num: number): void set_limits(low: number, high: number, axis_num: number): void set_max_force_and_velocity(force: number, velocity?: number, axis_num?: number): void get_max_force_and_velocity(force: number, velocity: number, axis_num: number): void get_axis_angle(axis_num: number): number /** Fills `lo_limit`, `hi_limit` (out params) and returns them as a multi-return. */ get_limits(lo_limit: number, hi_limit: number, axis_num: number): LuaMultiReturn<[lo: number, hi: number]> /** Writes the axis direction into `axis` (mutated in place). */ get_axis_dir(num: number, axis: vector): void /** Writes the anchor into `anchor` (mutated in place). */ get_anchor(anchor: vector): void is_breakable(): boolean } //#endregion //#region Device / console / particles /** Render device singleton, obtained via {@link device}. */ declare class render_device { readonly width: number readonly height: number readonly time_delta: number readonly f_time_delta: number readonly cam_pos: vector readonly cam_dir: vector readonly cam_top: vector readonly cam_right: vector readonly fov: number readonly aspect_ratio: number readonly precache_frame: number readonly frame: number time_global(): number time_continual(): number is_paused(): boolean pause(pause: boolean): void } declare function device(): render_device /** Game console singleton, obtained via {@link get_console}. */ declare class CConsole { execute(command: string): void execute_script(path: string): void execute_deferred(command: string): void show(): void hide(): void get_string(name: string): string get_integer(name: string): number get_bool(name: string): boolean get_float(name: string): number get_token(name: string): string } declare function get_console(): CConsole /** * Particle system instance. * @customConstructor particles_object */ declare class particles_object { constructor(name: string) play(): void play_at_pos(pos: vector, xform?: matrix): void stop(): void stop_deffered(): void playing(): boolean looped(): boolean move_to(pos: vector, dir: vector): void set_position(pos: vector): void set_direction(dir: vector): void set_orientation(dir: vector): void last_position(): vector load_path(path: string): void start_path(looped?: boolean): void stop_path(): void pause_path(pause: boolean): void } //#endregion