431 lines
9.6 KiB
JavaScript
431 lines
9.6 KiB
JavaScript
// ===========================================================================
|
|
// Vortrex's Roleplay Resource
|
|
// https://github.com/VortrexFTW/gtac_roleplay
|
|
// ===========================================================================
|
|
// FILE: v.js
|
|
// DESC: Provides shared utilities
|
|
// TYPE: Shared (JavaScript)
|
|
// ===========================================================================
|
|
|
|
let bindableKeys = {
|
|
8: "backspace",
|
|
9: "tab",
|
|
13: "return",
|
|
27: "escape",
|
|
32: "space",
|
|
33: "exclamation",
|
|
34: "doublequote",
|
|
35: "hashtag",
|
|
36: "dollar",
|
|
37: "percent",
|
|
38: "ampersand",
|
|
39: "quote",
|
|
40: "leftparenthesis",
|
|
41: "rightparenthesis",
|
|
42: "asterisk",
|
|
43: "plus",
|
|
44: "comma",
|
|
45: "minus",
|
|
46: "period",
|
|
47: "slash",
|
|
48: "0",
|
|
49: "1",
|
|
50: "2",
|
|
51: "3",
|
|
52: "4",
|
|
53: "5",
|
|
54: "6",
|
|
55: "7",
|
|
56: "8",
|
|
57: "9",
|
|
58: "colon",
|
|
59: "semicolon",
|
|
60: "less",
|
|
61: "equals",
|
|
62: "greater",
|
|
63: "questionmark",
|
|
64: "at",
|
|
91: "leftbracket",
|
|
92: "backslash",
|
|
93: "rightbracket",
|
|
95: "underscore",
|
|
97: "a",
|
|
98: "b",
|
|
99: "c",
|
|
100: "d",
|
|
101: "e",
|
|
102: "f",
|
|
103: "g",
|
|
104: "h",
|
|
105: "i",
|
|
106: "j",
|
|
107: "k",
|
|
108: "l",
|
|
109: "m",
|
|
110: "n",
|
|
111: "o",
|
|
112: "p",
|
|
113: "q",
|
|
114: "r",
|
|
115: "s",
|
|
116: "t",
|
|
117: "u",
|
|
118: "v",
|
|
119: "w",
|
|
120: "x",
|
|
121: "y",
|
|
122: "z",
|
|
127: "delete",
|
|
1073741881: "capslock",
|
|
1073741882: "f12",
|
|
1073741883: "f2",
|
|
1073741884: "f3",
|
|
1073741885: "f4",
|
|
1073741886: "f5",
|
|
1073741887: "f6",
|
|
1073741888: "f7",
|
|
1073741889: "f8",
|
|
1073741890: "f9",
|
|
1073741891: "f10",
|
|
1073741892: "f11",
|
|
1073741893: "f12",
|
|
1073741894: "printscreen",
|
|
1073741895: "scrolllock",
|
|
1073741896: "pause",
|
|
1073741897: "insert",
|
|
1073741898: "home",
|
|
1073741899: "pageup",
|
|
1073741901: "end",
|
|
1073741902: "pagedown",
|
|
1073741903: "right",
|
|
1073741904: "left",
|
|
1073741905: "down",
|
|
1073741906: "up",
|
|
1073741908: "numdivide",
|
|
1073741909: "nummultiply",
|
|
1073741910: "numminus",
|
|
1073741911: "numplus",
|
|
1073741912: "numenter",
|
|
1073741913: "num1",
|
|
1073741914: "num2",
|
|
1073741915: "num3",
|
|
1073741916: "num4",
|
|
1073741917: "num5",
|
|
1073741918: "num6",
|
|
1073741919: "num7",
|
|
1073741920: "num8",
|
|
1073741921: "num9",
|
|
1073741922: "num0",
|
|
1073741923: "numperiod",
|
|
1073742048: "leftctrl",
|
|
1073742049: "leftshift",
|
|
1073742050: "leftalt",
|
|
1073742052: "rightctrl",
|
|
1073742053: "rightshift",
|
|
1073742054: "rightalt",
|
|
};
|
|
|
|
// ===========================================================================
|
|
|
|
function makeLargeNumberReadable(num) {
|
|
return new Number(num).toLocaleString("en-US");
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function getKeyIdFromParams(params) {
|
|
let tempParams = toLowerCase(toString(params));
|
|
|
|
//let sdlName = sdl.getKeyFromName(tempParams);
|
|
//if(sdlName != null) {
|
|
// return sdlName;
|
|
//}
|
|
|
|
for(let i in bindableKeys) {
|
|
if(toLowerCase(bindableKeys[i]) == toLowerCase(tempParams)) {
|
|
return i;
|
|
}
|
|
}
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function getKeyNameFromId(params) {
|
|
return bindableKeys[toInteger(params)];
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function and(var1, var2) {
|
|
return (var1 && var2);
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function or(var1, var2) {
|
|
return (var1 || var2);
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function not(var1) {
|
|
return !var1;
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function bitAnd(var1, var2) {
|
|
return var1 & var2;
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function bitOr(var1, var2) {
|
|
return var1 | var2;
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function bitXor(var1, var2) {
|
|
return var1 ^ var2;
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function bitNot(var1) {
|
|
return ~var1;
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function bitLeftShift(var1, var2) {
|
|
return var1 << var2;
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function bitRightShift(var1, var2) {
|
|
return var1 >> var2;
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function greaterThan(var1, var2) {
|
|
return var1 > var2;
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function lessThan(var1, var2) {
|
|
return (var1 < var2);
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function greaterThanOrEqualTo(var1, var2) {
|
|
return (var1 >= var2);
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function lessThanOrEqualTo(var1, var2) {
|
|
return (var1 <= var2);
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function equals(var1, var2) {
|
|
return (var1 == var2);
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function modulo(var1, var2) {
|
|
return var1 % var2;
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function add(...args) {
|
|
return args.reduce((acc, a) => {
|
|
return acc + a;
|
|
}, 0);
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function subtract(...args) {
|
|
return args.reduce((acc, a) => {
|
|
return acc - a;
|
|
}, 0);
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function multiply(...args) {
|
|
return args.reduce((acc, a) => {
|
|
return acc * a;
|
|
}, 0);
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function divide(...args) {
|
|
return args.reduce((acc, a) => {
|
|
return acc / a;
|
|
}, 0);
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function toArray(...args) {
|
|
return args;
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function toInteger(val) {
|
|
return Number(val);
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function toFloat(val, fixed = 2) {
|
|
return parseFloat((val).toFixed(fixed));
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function toString(val) {
|
|
return String(val);
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function toVector3(x, y, z) {
|
|
return new Vec3(toFloat(x), toFloat(y), toFloat(z));
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function toVector2(x, y) {
|
|
return new Vec2(x, y);
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function toUpperCase(val) {
|
|
return String(val).toUpperCase();
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function toLowerCase(val) {
|
|
return String(val).toLowerCase();
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function isNull(val) {
|
|
if(val == null) {
|
|
return true;
|
|
}
|
|
|
|
if(typeof val === "undefined") {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function getEntityData(entity, dataName) {
|
|
if(entity != null) {
|
|
if(entity.getData != null) {
|
|
return entity.getData(dataName);
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function setEntityData(entity, dataName, dataValue, syncToClients = true) {
|
|
if(entity != null) {
|
|
if(typeof server != "undefined") {
|
|
return entity.setData(dataName, dataValue, syncToClients);
|
|
} else {
|
|
return entity.setData(dataName, dataValue);
|
|
}
|
|
}
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function removeEntityData(entity, dataName) {
|
|
if(entity != null) {
|
|
return entity.removeData(dataName);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function doesEntityDataExist(entity, dataName) {
|
|
if(entity != null) {
|
|
return (entity.getData(dataName) != null);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function getDistance(vec1, vec2) {
|
|
if(isNull(vec1) || isNull(vec2)) {
|
|
return false;
|
|
}
|
|
return vec1.distance(vec2);
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function logToConsole(tempLogLevel, text) {
|
|
if((logLevel & tempLogLevel) || logLevel == LOG_ALL) {
|
|
if(tempLogLevel == LOG_ERROR) {
|
|
console.error(text);
|
|
return true;
|
|
} else if(tempLogLevel == LOG_WARN) {
|
|
console.warn(text);
|
|
return true;
|
|
} else {
|
|
console.log(text);
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function Enum(constantsList) {
|
|
let tempTable = {};
|
|
for(let i in constantsList) {
|
|
tempTable[constantsList[i]] = i;
|
|
}
|
|
return tempTable;
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function isServerScript() {
|
|
return (typeof server != "undefined");
|
|
}
|
|
|
|
// ===========================================================================
|
|
|
|
function getPercentage(num, per) {
|
|
return (num/100)*per;
|
|
}
|
|
|
|
// ===========================================================================
|