Module: hcje/utils

General miscellaneous utilities.

Source:

Methods

(static) areRectsOverlapping(rectA, rectB)

Test if two rectangles overlap.

Parameters:
Name Type Description
rectA module:hcje/utils~RectData

first rectangle.

rectB module:hcje/utisl:RectData

second rectangle.

Source:

(static) clamp(value, min, max) → {number}

Clamp a value between range: inclusive.

Parameters:
Name Type Description
value number

Number to clamp.

min number

Minimum value inclusive.

max number

Maximum value inclusive.

Source:
Returns:
Type
number

(static) copyCoordinate() → {module:hcje/utils~Coordinate}

Copy coordinate and return as a new object.

Source:
Returns:
Type
module:hcje/utils~Coordinate

(static) copyDimensions() → {module:hcje/utils~Dimensions}

Copy dimensions and return as a new object.

Source:
Returns:
Type
module:hcje/utils~Dimensions

(static) copyPositionData() → {module:hcje/utils~PositionData}

Copy position data and return as a new object.

Source:
Returns:
Type
module:hcje/utils~PositionData

(static) copyRectData() → {module:hcje/utils~RectData}

Copy rectangle data and return as a new object.

Source:
Returns:
Type
module:hcje/utils~RectData

(static) createWaiter() → {module:utils~Waiter}

Create a Waiter object. This object allow the program to wait until the application calls its end method.

Source:
Returns:
Type
module:utils~Waiter

(static) fetchArrayBuffer(url, headers, options) → {Promise}

Call to fetch to get an array buffer from a media file.

Parameters:
Name Type Description
url string | URL | Request

Url to fetch.

headers Object

The Headers to add to the request.

options RequestInit

If null, the content type is derived from the url. See RequestInit.

Source:
See:
Throws:
Error
Returns:

Fulfils to the ArrayBuffer.

Type
Promise

(static) fetchJson(url, fallbackResult) → {Promise}

Call to fetch to get json.

Parameters:
Name Type Description
url string | URL | Request

Url to fetch.

fallbackResult Object

Result if error

Source:
Throws:

Thrown if error occurs and fallbackResult is undefined. Null is a valid fallbackResult

Type
Error
Returns:

Fulfils to Object. On error, fulfils to fallbackResult or throws error.

Type
Promise

(static) fetchText(url, fallbackResult) → {Promise}

Call to fetch to get text.

Parameters:
Name Type Description
url string | URL | Request

Url to fetch.

fallbackResult string

Result if error

Source:
Throws:

Thrown if error occurs and fallbackResult is undefined. Null is a valid fallbackResult

Type
Error
Returns:

Fulfils to text. On error, fulfils to fallbackResult or throws error.

Type
Promise

(static) fetchTextOrJson(url, asJson, fallbackResult) → {Promise}

Call to fetch to get text.

Parameters:
Name Type Description
url string | URL | Request

Url to fetch.

asJson boolean

If true pass the result as JSON.

fallbackResult string | Object

Result to return if error.

Source:
See:
Throws:

Thrown if error occurs and fallbackResult is undefined. Null is a valid fallbackResult

Type
Error
Returns:

Fulfils to text or json. On error, fulfils to fallbackResult. If fallbackResult is undefined, an error is thrown.

Type
Promise

(static) getHcjeAssetHref(name) → {string}

Get the name of an asset in the HCJE regardless of where the HCJE has been installed.

Parameters:
Name Type Description
name string

the name of the asset in the HCJE's asset folder.

Source:
Returns:
Type
string

(static) getRandomIntExclusive(min, max)

Get random integer in range. If max <= min, returns min.

Parameters:
Name Type Description
min number

Minimum value inclusive

max number

Maximum value exclusive

Source:

(static) getRandomIntInclusive(min, max)

Get random integer in range. If max <= min, returns min.

Parameters:
Name Type Description
min number

Minimum value inclusive.

max number

Maximum value inclusive.

Source:

(static) getRandomMember(arr) → {*}

Get a random entry from an array or string.

Parameters:
Name Type Description
arr Array.<*>

Array from which to get entry.

Source:
Returns:

Entry; undefined if arr undefined or empty.

Type
*

(static) getRandomNumberBetween(min, max) → {number}

Get random number between min (inclusive) and max (exclusive).

Parameters:
Name Type Description
min number

Minimum value inclusive.

max number

Maximum value exclusive.

Source:
Returns:
Type
number

(static) greatestCommonDivisor(a, b) → {number}

Get greatest common divisor.

Parameters:
Name Type Description
a number

First number.

b number

Second number.

Source:
Returns:
Type
number

(static) jitter(value, variation) → {number}

Get a random number based on a value and variation. For a value of N and variation of V the result will be a random number between N  (1 - V) and N  (1 + V).

Parameters:
Name Type Description
value number

Number to adjust.

variation number

Variation to apply to the value. This is a proportion of the value, not an absolute value.

Source:
Returns:
Type
number

(static) lowestCommonMultiple(valueA, valueB) → {number}

Calculate the lowest common multiple of two numbers.

Parameters:
Name Type Description
valueA number

First number.

valueB number

Second number.

Source:
Returns:
Type
number

(static) lowestCommonMultipleOfArray(values) → {number}

Get lowest common multiple of an array of values.

Parameters:
Name Type Description
values Array.<number>

Array of numbers.

Source:
Returns:
Type
number

(static) parseInt(str, defaultValueopt)

Safely parse an integer.

Parameters:
Name Type Attributes Default Description
str string

String to parse.

defaultValue number <optional>
0

Value to return on failure. Note this should be an integer, but it is not validated.

Source:

(static) rollDice(sidesopt) → {number}

Get dice roll.

Parameters:
Name Type Attributes Default Description
sides number <optional>
6

Number of sides on the dice.

Source:
Returns:
Type
number

(static) shrinkRect(rect, shrinkage) → {module:hcje/utils~RectData}

Shrink a rectangle. The shrinkage will not reduce the width or height to below zero.

Parameters:
Name Type Description
rect module:hcje/utils~RectData

rectangle.

shrinkage number | module:hcje/utils~Shrinkage

if a number is provided, it is applied to the left, right, top and bottom equally. If undefined or 0, a copy of the original rect is returned.

Source:
Returns:
Type
module:hcje/utils~RectData

(static) shuffle(arr) → {Array.<*>}

Shuffle array. This uses Sattolo's algorithm to ensure every item is always in a new position. The original array IS modified. See Fisher Yates shuffle and Sattolo cycle

Parameters:
Name Type Description
arr Array.<*>

The array to shuffle.

Source:
Returns:
Type
Array.<*>

(static) sleep(ms) → {Promise}

Sleep for time.

Parameters:
Name Type Description
ms number

Period to sleep in milliseconds.

Source:
Returns:
Type
Promise

(static) tossCoin() → {boolean}

Get coin toss.

Source:
Returns:
Type
boolean

Type Definitions

Coordinate

Properties:
Name Type Description
x number
y number
Source:

Dimensions

Properties:
Name Type Description
width number
height number
Source:

PositionData

Properties:
Name Type Description
x number

x position.

y number

y - position.

angle number

radians.

Source:

RectData

Properties:
Name Type Description
x number

left position

y number

top position

width number
height number
Source:

Shrinkage

Definition of shrinkage to apply to a rectangle.

Type:
  • Object
Properties:
Name Type Description
shrinkage.left number

amount to reduce size by on left.

shrinkage.right number

amount to reduce size by on right.

shrinkage.top number

amount to reduce size by on top.

shrinkage.bottom number

amount to reduce size by on bottom.

Source: