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.

70 lines (65 loc) 3.96 kB
/** @noSelfInFile */ /** Item pixel axis returned by {@link utils_xml.get_item_axis}. */ import type { Section } from 'anomaly-packer' declare global { interface ItemAxis { x1: number y1: number x2: number y2: number w: number h: number } /** A parsed XML node produced by {@link utils_xml.XmlParser}. */ interface XmlNode { Name?: string Value?: string Attributes: Record<string, string> ChildNodes: XmlNode[] } namespace utils_xml { export function get_color(color: Color, to_code?: boolean): string export function get_hud_xml(): CScriptXmlInit export function get_Mhud_xml(): CScriptXmlInit /** Condition-graded colour (red/orange/yellow/green by `condition` 0–100). */ export function get_color_con(condition: number, to_code?: boolean): string export function get_icons_texture(section?: Section.Item): string /** * Interpolates an ARGB colour for `val` between the `{A,R,G,B,value}` stops. * @param mi min stop @param md middle stop @param mx max stop */ export function lerp_color(val: number, mi: number[], md: number[], mx: number[]): number export function correct_ratio(element: CUIWindow, main_dialog?: boolean): void export function move_element(element: CUIWindow, x?: number, y?: number): void export function sync_pos(base: CUIWindow, element: CUIWindow): void export function sync_size(base: CUIWindow, element: CUIWindow, offset_x?: number, offset_y?: number): void export function sync_element(element: CUIWindow, base: CUIWindow): void export function sync_cursor(base: CUIWindow, element: CUIWindow | undefined, offset_x?: number, offset_y?: number): void export function align_to_center(element: CUIWindow, base: CUIWindow, offset_x?: number, offset_y?: number): void export function adjust_pos_to_element(element: CUIWindow, offset_x: number, offset_y: number, ...elements: CUIWindow[]): void export function adjust_size_to_element(element: CUIWindow, _w: number, _h: number, ...elements: CUIWindow[]): void /** * Item pixel axis from its section's inventory grid info. * @returns `{x1,y1,x2,y2,w,h}`, or the four corner values `(x1, y1, x2, y2)` * as a multi-return when `unpacked` is set. */ export function get_item_axis<Unpacked extends boolean = false>(section: Section.Item, grid_size?: number, unpacked?: Unpacked): Unpacked extends true ? LuaMultiReturn<[number, number, number, number]> : ItemAxis export function is_widescreen(): boolean export function screen_ratio(): number export function hide_menu(): void export function get_name_cond(condition: number, is_wpn?: boolean, section?: Section.Item): string export function set_msg(str: string, ignore?: boolean): void /** Human-readable level name for a level section id (falls back to the id). */ export function get_special_txt(str: string): string export function set_icon(sec: Section.Item, hidden: boolean | undefined, XML_temp: CScriptXmlInit, XML_box: CScriptXmlInit, XML_box_small?: CScriptXmlInit): void export function set_upgr_icon(obj: CGameObject, sec: Section.Item, XML_box: CScriptXmlInit, XML_temp: CScriptXmlInit): void /** Places item `p` into the first free spot of `grid`; returns the last row used. */ export function set_grid_element(p: AnyTable, grid: AnyTable, ...ele: CUIWindow[]): number /** Minimal XML parser object (`XmlParser:loadFile`, `:ParseXmlText`, …). */ export const XmlParser: AnyTable export function XmlFindNodeWithAttribute(n: XmlNode, node_name: string, prop_name: string, val: string): XmlNode | undefined export function XmlFindNextNodeByName(n: XmlNode, node_name: string): XmlNode | undefined export function XmlGetNodeValue(n: XmlNode, node_name: string): string | undefined export function XmlGetNodeAttribute(n: XmlNode, node_name: string, attribute: string): string | undefined } }