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
TypeScript
/** @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
}
}