UNPKG

@skyrim-platform/papyrus-util

Version:

TypeScript library for the PapyrusUtil Skyrim modding utility

313 lines (308 loc) 19.2 kB
/* ============================================== Typescript definitions for v4.2 ============================================== This file was automatically generated by Papyrus-2-Typescript.exe https://github.com/CarlosLeyvaAyala/Papyrus-2-Typescript The program has no way to know the intention of the humans that made the scripts, so it's always advisable to manually check all generated files to make sure everything is declared as it should. Take note the program assumes this script exists in some subfolder to the folder where `skyrimPlatform.ts` is found, otherwise you'll get "Cannot find module..." type of errors. If you want to have this script in some other place, just change the relative path of each `import`. */ import * as sp from "skyrimPlatform"; var sn = sp.PapyrusUtil; // Get version of papyrus DLL library. Version 4.1 will return 41. export var GetVersion = function () { return sn.GetVersion(); }; // Get version of compiled papyrus scripts which should match return from GetVersion() export var GetScriptVersion = function () { return sn.GetScriptVersion(); }; // ## // ## Array manipulation utilities // ## // Few extra array types not provided by SKSE normally to help avoid having to use and cast Form arrays export var ActorArray = function (size, filler) { if (filler === void 0) { filler = null; } return sn.ActorArray(size, filler); }; export var ResizeActorArray = function (ArrayValues, toSize, filler) { if (filler === void 0) { filler = null; } return sn.ResizeActorArray(ArrayValues, toSize, filler); }; export var ObjRefArray = function (size, filler) { if (filler === void 0) { filler = null; } return sn.ObjRefArray(size, filler); }; export var ResizeObjRefArray = function (ArrayValues, toSize, filler) { if (filler === void 0) { filler = null; } return sn.ResizeObjRefArray(ArrayValues, toSize, filler); }; // ## Append a value to the end of the given array and return the new array. // ## NOTE: The array has to be recreated each time you call this. For the sake of memory usage and performance, DO NOT use these to build up an array through a loop, // ## in such a situation it is significantly faster to create the full length array first and then fill it. Best to limit to only the occasional need. export var PushFloat = function (ArrayValues, push) { return sn.PushFloat(ArrayValues, push); }; export var PushInt = function (ArrayValues, push) { return sn.PushInt(ArrayValues, push); }; // bool[] function PushBool(bool[] ArrayValues, bool push) global native // // Bugged - Non-native version available below export var PushString = function (ArrayValues, push) { return sn.PushString(ArrayValues, push); }; export var PushForm = function (ArrayValues, push) { return sn.PushForm(ArrayValues, push); }; export var PushAlias = function (ArrayValues, push) { return sn.PushAlias(ArrayValues, push); }; export var PushActor = function (ArrayValues, push) { return sn.PushActor(ArrayValues, push); }; export var PushObjRef = function (ArrayValues, push) { return sn.PushObjRef(ArrayValues, push); }; // ## Removes all elements from the given array matching the provided value and returns the shortened array. export var RemoveFloat = function (ArrayValues, ToRemove) { return sn.RemoveFloat(ArrayValues, ToRemove); }; export var RemoveInt = function (ArrayValues, ToRemove) { return sn.RemoveInt(ArrayValues, ToRemove); }; // bool[] function RemoveBool(bool[] ArrayValues, bool ToRemove) global native // // Bugged - Non-native version available below export var RemoveString = function (ArrayValues, ToRemove) { return sn.RemoveString(ArrayValues, ToRemove); }; export var RemoveForm = function (ArrayValues, ToRemove) { return sn.RemoveForm(ArrayValues, ToRemove); }; export var RemoveAlias = function (ArrayValues, ToRemove) { return sn.RemoveAlias(ArrayValues, ToRemove); }; export var RemoveActor = function (ArrayValues, ToRemove) { return sn.RemoveActor(ArrayValues, ToRemove); }; export var RemoveObjRef = function (ArrayValues, ToRemove) { return sn.RemoveObjRef(ArrayValues, ToRemove); }; // ## Removes all duplicate elements from the given array and returns the shortened array with only a single instance of all element values. export var RemoveDupeFloat = function (ArrayValues) { return sn.RemoveDupeFloat(ArrayValues); }; export var RemoveDupeInt = function (ArrayValues) { return sn.RemoveDupeInt(ArrayValues); }; export var RemoveDupeString = function (ArrayValues) { return sn.RemoveDupeString(ArrayValues); }; export var RemoveDupeForm = function (ArrayValues) { return sn.RemoveDupeForm(ArrayValues); }; export var RemoveDupeAlias = function (ArrayValues) { return sn.RemoveDupeAlias(ArrayValues); }; export var RemoveDupeActor = function (ArrayValues) { return sn.RemoveDupeActor(ArrayValues); }; export var RemoveDupeObjRef = function (ArrayValues) { return sn.RemoveDupeObjRef(ArrayValues); }; // ## Get an array of values from ArrayValues1 that ARE NOT among the values of ArrayValues2. Duplicates are removed by default. // ## Setting CompareBoth = true will change the behavior to also include the reverse comparison of ArrayValues2 values that are not present in ArrayValues1. // ## Setting IncludeDupes = true will allow the resulting array to include duplicate entries of the same value if they were also duplicated in the input arrays. export var GetDiffFloat = function (ArrayValues1, ArrayValues2, CompareBoth, IncludeDupes) { if (CompareBoth === void 0) { CompareBoth = false; } if (IncludeDupes === void 0) { IncludeDupes = false; } return sn.GetDiffFloat(ArrayValues1, ArrayValues2, CompareBoth, IncludeDupes); }; export var GetDiffInt = function (ArrayValues1, ArrayValues2, CompareBoth, IncludeDupes) { if (CompareBoth === void 0) { CompareBoth = false; } if (IncludeDupes === void 0) { IncludeDupes = false; } return sn.GetDiffInt(ArrayValues1, ArrayValues2, CompareBoth, IncludeDupes); }; export var GetDiffString = function (ArrayValues1, ArrayValues2, CompareBoth, IncludeDupes) { if (CompareBoth === void 0) { CompareBoth = false; } if (IncludeDupes === void 0) { IncludeDupes = false; } return sn.GetDiffString(ArrayValues1, ArrayValues2, CompareBoth, IncludeDupes); }; export var GetDiffForm = function (ArrayValues1, ArrayValues2, CompareBoth, IncludeDupes) { if (CompareBoth === void 0) { CompareBoth = false; } if (IncludeDupes === void 0) { IncludeDupes = false; } return sn.GetDiffForm(ArrayValues1, ArrayValues2, CompareBoth, IncludeDupes); }; export var GetDiffAlias = function (ArrayValues1, ArrayValues2, CompareBoth, IncludeDupes) { if (CompareBoth === void 0) { CompareBoth = false; } if (IncludeDupes === void 0) { IncludeDupes = false; } return sn.GetDiffAlias(ArrayValues1, ArrayValues2, CompareBoth, IncludeDupes); }; export var GetDiffActor = function (ArrayValues1, ArrayValues2, CompareBoth, IncludeDupes) { if (CompareBoth === void 0) { CompareBoth = false; } if (IncludeDupes === void 0) { IncludeDupes = false; } return sn.GetDiffActor(ArrayValues1, ArrayValues2, CompareBoth, IncludeDupes); }; export var GetDiffObjRef = function (ArrayValues1, ArrayValues2, CompareBoth, IncludeDupes) { if (CompareBoth === void 0) { CompareBoth = false; } if (IncludeDupes === void 0) { IncludeDupes = false; } return sn.GetDiffObjRef(ArrayValues1, ArrayValues2, CompareBoth, IncludeDupes); }; // ## Get an array of values that are present in both ArrayValues1 and ArrayValues2. export var GetMatchingFloat = function (ArrayValues1, ArrayValues2) { return sn.GetMatchingFloat(ArrayValues1, ArrayValues2); }; export var GetMatchingInt = function (ArrayValues1, ArrayValues2) { return sn.GetMatchingInt(ArrayValues1, ArrayValues2); }; export var GetMatchingString = function (ArrayValues1, ArrayValues2) { return sn.GetMatchingString(ArrayValues1, ArrayValues2); }; export var GetMatchingForm = function (ArrayValues1, ArrayValues2) { return sn.GetMatchingForm(ArrayValues1, ArrayValues2); }; export var GetMatchingAlias = function (ArrayValues1, ArrayValues2) { return sn.GetMatchingAlias(ArrayValues1, ArrayValues2); }; export var GetMatchingActor = function (ArrayValues1, ArrayValues2) { return sn.GetMatchingActor(ArrayValues1, ArrayValues2); }; export var GetMatchingObjRef = function (ArrayValues1, ArrayValues2) { return sn.GetMatchingObjRef(ArrayValues1, ArrayValues2); }; // ## Returns the number of instances an array has an element equal to the given value export var CountFloat = function (ArrayValues, EqualTo) { return sn.CountFloat(ArrayValues, EqualTo); }; export var CountInt = function (ArrayValues, EqualTo) { return sn.CountInt(ArrayValues, EqualTo); }; export var CountBool = function (ArrayValues, EqualTo) { return sn.CountBool(ArrayValues, EqualTo); }; export var CountString = function (ArrayValues, EqualTo) { return sn.CountString(ArrayValues, EqualTo); }; export var CountForm = function (ArrayValues, EqualTo) { return sn.CountForm(ArrayValues, EqualTo); }; export var CountAlias = function (ArrayValues, EqualTo) { return sn.CountAlias(ArrayValues, EqualTo); }; export var CountActor = function (ArrayValues, EqualTo) { return sn.CountActor(ArrayValues, EqualTo); }; export var CountObjRef = function (ArrayValues, EqualTo) { return sn.CountObjRef(ArrayValues, EqualTo); }; // ## Returns two arrays combined into one, optionally also removing any duplicate occurrences of a value. export var MergeFloatArray = function (ArrayValues1, ArrayValues2, RemoveDupes) { if (RemoveDupes === void 0) { RemoveDupes = false; } return sn.MergeFloatArray(ArrayValues1, ArrayValues2, RemoveDupes); }; export var MergeIntArray = function (ArrayValues1, ArrayValues2, RemoveDupes) { if (RemoveDupes === void 0) { RemoveDupes = false; } return sn.MergeIntArray(ArrayValues1, ArrayValues2, RemoveDupes); }; // bool[] function MergeBoolArray(bool[] ArrayValues1, bool[] ArrayValues2, bool RemoveDupes = false) global native // // Bugged - Non-native version available below export var MergeStringArray = function (ArrayValues1, ArrayValues2, RemoveDupes) { if (RemoveDupes === void 0) { RemoveDupes = false; } return sn.MergeStringArray(ArrayValues1, ArrayValues2, RemoveDupes); }; export var MergeFormArray = function (ArrayValues1, ArrayValues2, RemoveDupes) { if (RemoveDupes === void 0) { RemoveDupes = false; } return sn.MergeFormArray(ArrayValues1, ArrayValues2, RemoveDupes); }; export var MergeAliasArray = function (ArrayValues1, ArrayValues2, RemoveDupes) { if (RemoveDupes === void 0) { RemoveDupes = false; } return sn.MergeAliasArray(ArrayValues1, ArrayValues2, RemoveDupes); }; export var MergeActorArray = function (ArrayValues1, ArrayValues2, RemoveDupes) { if (RemoveDupes === void 0) { RemoveDupes = false; } return sn.MergeActorArray(ArrayValues1, ArrayValues2, RemoveDupes); }; export var MergeObjRefArray = function (ArrayValues1, ArrayValues2, RemoveDupes) { if (RemoveDupes === void 0) { RemoveDupes = false; } return sn.MergeObjRefArray(ArrayValues1, ArrayValues2, RemoveDupes); }; // ## Returns a sub section of an array indicated by a starting and ending index. // ## The default argument "int EndIndex = -1" clamps the to the end of the array. Equivalent of setting EndIndex = (ArrayValues.Length - 1) export var SliceFloatArray = function (ArrayValues, StartIndex, EndIndex) { if (EndIndex === void 0) { EndIndex = -1; } return sn.SliceFloatArray(ArrayValues, StartIndex, EndIndex); }; export var SliceIntArray = function (ArrayValues, StartIndex, EndIndex) { if (EndIndex === void 0) { EndIndex = -1; } return sn.SliceIntArray(ArrayValues, StartIndex, EndIndex); }; // bool[] function SliceBoolArray(bool[] ArrayValues, int StartIndex, int EndIndex = -1) global native // // Bugged - Non-native version available below export var SliceStringArray = function (ArrayValues, StartIndex, EndIndex) { if (EndIndex === void 0) { EndIndex = -1; } return sn.SliceStringArray(ArrayValues, StartIndex, EndIndex); }; export var SliceFormArray = function (ArrayValues, StartIndex, EndIndex) { if (EndIndex === void 0) { EndIndex = -1; } return sn.SliceFormArray(ArrayValues, StartIndex, EndIndex); }; export var SliceAliasArray = function (ArrayValues, StartIndex, EndIndex) { if (EndIndex === void 0) { EndIndex = -1; } return sn.SliceAliasArray(ArrayValues, StartIndex, EndIndex); }; export var SliceActorArray = function (ArrayValues, StartIndex, EndIndex) { if (EndIndex === void 0) { EndIndex = -1; } return sn.SliceActorArray(ArrayValues, StartIndex, EndIndex); }; export var SliceObjRefArray = function (ArrayValues, StartIndex, EndIndex) { if (EndIndex === void 0) { EndIndex = -1; } return sn.SliceObjRefArray(ArrayValues, StartIndex, EndIndex); }; // ## Sorts a given array's elements alphanumerically. Sorted in ascending order by default. export var SortIntArray = function (ArrayValues, descending) { if (descending === void 0) { descending = false; } return sn.SortIntArray(ArrayValues, descending); }; export var SortFloatArray = function (ArrayValues, descending) { if (descending === void 0) { descending = false; } return sn.SortFloatArray(ArrayValues, descending); }; export var SortStringArray = function (ArrayValues, descending) { if (descending === void 0) { descending = false; } return sn.SortStringArray(ArrayValues, descending); }; // ## // ## Shortcuts for common usage // ## export var ClearEmpty = function (ArrayValues) { return sn.ClearEmpty(ArrayValues); }; export var ClearNone = function (ArrayValues) { return sn.ClearNone(ArrayValues); }; export var CountFalse = function (ArrayValues) { return sn.CountFalse(ArrayValues); }; export var CountTrue = function (ArrayValues) { return sn.CountTrue(ArrayValues); }; export var CountNone = function (ArrayValues) { return sn.CountNone(ArrayValues); }; // ## // ## Extra String Utilities // ## // ## Similar to SKSE's native StringUtil.Split() except results are whitespace trimmed. So comma, separated,list,can, be, spaced,or,not. export var StringSplit = function (ArgString, Delimiter) { if (Delimiter === void 0) { Delimiter = ","; } return sn.StringSplit(ArgString, Delimiter); }; // ## Opposite of StringSplit() export var StringJoin = function (Values, Delimiter) { if (Delimiter === void 0) { Delimiter = ","; } return sn.StringJoin(Values, Delimiter); }; // ## // ## Shortcuts for some common number actions. Mostly to help cut some basic and overly verbose checks down to a single line. // ## Making these native instead of normal globals is probably massive overkill, but why not... // ## // ## Return the total sum of all values stored in the given array export var AddIntValues = function (Values) { return sn.AddIntValues(Values); }; export var AddFloatValues = function (Values) { return sn.AddFloatValues(Values); }; // ## Returns the value clamped to the min or max when out of range export var ClampInt = function (value, min, max) { return sn.ClampInt(value, min, max); }; export var ClampFloat = function (value, min, max) { return sn.ClampFloat(value, min, max); }; // ## Similar to the clamp functions, only values wrap around to the other side of range instead. // ## Mostly useful for traversing around array values by wrapping the index from end to end without having to check for it being out of range first. // ## i.e.: Form var = myFormArray[WrapInt(i, (myFormArray.Length - 1))] export var WrapInt = function (value, end, start) { if (start === void 0) { start = 0; } return sn.WrapInt(value, end, start); }; export var WrapFloat = function (value, end, start) { if (start === void 0) { start = 0.0; } return sn.WrapFloat(value, end, start); }; // ## Returns the given value signed if bool is true, unsigned if false, regardless if value started out signed or not. export var SignInt = function (doSign, value) { return sn.SignInt(doSign, value); }; export var SignFloat = function (doSign, value) { return sn.SignFloat(doSign, value); }; // ## // ## Non-Native bool versions of some functions where SKSE version is bugged. // ## SKSE version VMResultArray<bool> fails to be manipulated by other native functions past creation. // ## export var ResizeBoolArray = function (ArrayValues, toSize, filler) { if (filler === void 0) { filler = false; } return sn.ResizeBoolArray(ArrayValues, toSize, filler); }; export var PushBool = function (ArrayValues, push) { return sn.PushBool(ArrayValues, push); }; export var RemoveBool = function (ArrayValues, ToRemove) { return sn.RemoveBool(ArrayValues, ToRemove); }; export var MergeBoolArray = function (ArrayValues1, ArrayValues2, RemoveDupes) { if (RemoveDupes === void 0) { RemoveDupes = false; } return sn.MergeBoolArray(ArrayValues1, ArrayValues2, RemoveDupes); }; export var SliceBoolArray = function (ArrayValues, StartIndex, EndIndex) { if (EndIndex === void 0) { EndIndex = -1; } return sn.SliceBoolArray(ArrayValues, StartIndex, EndIndex); }; // ## // ## DEPRECATED: SKSE now provides their own variable sized arrays for these types - mirrored here for backwards compatibility. // ## export var FloatArray = function (size, filler) { if (filler === void 0) { filler = 0.0; } return sn.FloatArray(size, filler); }; export var IntArray = function (size, filler) { if (filler === void 0) { filler = 0; } return sn.IntArray(size, filler); }; export var BoolArray = function (size, filler) { if (filler === void 0) { filler = false; } return sn.BoolArray(size, filler); }; export var StringArray = function (size, filler) { if (filler === void 0) { filler = ""; } return sn.StringArray(size, filler); }; export var FormArray = function (size, filler) { if (filler === void 0) { filler = null; } return sn.FormArray(size, filler); }; export var AliasArray = function (size, filler) { if (filler === void 0) { filler = null; } return sn.AliasArray(size, filler); }; export var ResizeFloatArray = function (ArrayValues, toSize, filler) { if (filler === void 0) { filler = 0.0; } return sn.ResizeFloatArray(ArrayValues, toSize, filler); }; export var ResizeIntArray = function (ArrayValues, toSize, filler) { if (filler === void 0) { filler = 0; } return sn.ResizeIntArray(ArrayValues, toSize, filler); }; export var ResizeStringArray = function (ArrayValues, toSize, filler) { if (filler === void 0) { filler = ""; } return sn.ResizeStringArray(ArrayValues, toSize, filler); }; export var ResizeFormArray = function (ArrayValues, toSize, filler) { if (filler === void 0) { filler = null; } return sn.ResizeFormArray(ArrayValues, toSize, filler); }; export var ResizeAliasArray = function (ArrayValues, toSize, filler) { if (filler === void 0) { filler = null; } return sn.ResizeAliasArray(ArrayValues, toSize, filler); };