@mafiahub/types 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/color.d.ts +34 -0
- package/core/events.d.ts +42 -0
- package/core/quaternion.d.ts +27 -0
- package/core/vector2.d.ts +26 -0
- package/core/vector3.d.ts +31 -0
- package/core/vector4.d.ts +28 -0
- package/framework/exports.d.ts +13 -0
- package/framework/imports.d.ts +9 -0
- package/framework/messages.d.ts +22 -0
- package/index.d.ts +9 -0
- package/package.json +20 -0
package/core/color.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
declare namespace Core {
|
|
2
|
+
/**
|
|
3
|
+
* RGBA color. Components are stored as floats in [0, 1] range.
|
|
4
|
+
* Use `Color.fromRGB()` to construct from 0-255 values.
|
|
5
|
+
*/
|
|
6
|
+
class Color {
|
|
7
|
+
constructor(r: number, g: number, b: number, a?: number);
|
|
8
|
+
|
|
9
|
+
r: number;
|
|
10
|
+
g: number;
|
|
11
|
+
b: number;
|
|
12
|
+
a: number;
|
|
13
|
+
|
|
14
|
+
lerp(target: Color, t: number): this;
|
|
15
|
+
set(r: number, g: number, b: number, a?: number): this;
|
|
16
|
+
clone(): Color;
|
|
17
|
+
toHex(includeAlpha?: boolean): string;
|
|
18
|
+
toString(): string;
|
|
19
|
+
toJSON(): { r: number; g: number; b: number; a: number };
|
|
20
|
+
|
|
21
|
+
static fromHex(hex: string): Color;
|
|
22
|
+
/** Construct from 0-255 component values. */
|
|
23
|
+
static fromRGB(r: number, g: number, b: number, a?: number): Color;
|
|
24
|
+
static white(): Color;
|
|
25
|
+
static black(): Color;
|
|
26
|
+
static red(): Color;
|
|
27
|
+
static green(): Color;
|
|
28
|
+
static blue(): Color;
|
|
29
|
+
static yellow(): Color;
|
|
30
|
+
static cyan(): Color;
|
|
31
|
+
static magenta(): Color;
|
|
32
|
+
static transparent(): Color;
|
|
33
|
+
}
|
|
34
|
+
}
|
package/core/events.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
declare namespace Core {
|
|
2
|
+
/**
|
|
3
|
+
* Global event bus with async support.
|
|
4
|
+
*
|
|
5
|
+
* Reserved events (framework-only, cannot be emitted from JS):
|
|
6
|
+
* `resourceStart`, `resourceStop`, `resourceError`,
|
|
7
|
+
* `playerConnect`, `playerDisconnect`, `playerSpawn`,
|
|
8
|
+
* `serverStart`, `serverStop`
|
|
9
|
+
*/
|
|
10
|
+
const Events: {
|
|
11
|
+
/**
|
|
12
|
+
* Register a listener for an event.
|
|
13
|
+
* @returns An unsubscribe function.
|
|
14
|
+
*/
|
|
15
|
+
on(eventName: string, handler: (...args: any[]) => void): () => void;
|
|
16
|
+
|
|
17
|
+
/** Register a one-time listener. */
|
|
18
|
+
once(eventName: string, handler: (...args: any[]) => void): void;
|
|
19
|
+
|
|
20
|
+
/** Remove a specific listener. */
|
|
21
|
+
off(eventName: string, handler: (...args: any[]) => void): void;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Emit an event globally. Reserved events cannot be emitted.
|
|
25
|
+
* Resolves when all handlers complete; rejects with
|
|
26
|
+
* `AggregateError` if any handler fails.
|
|
27
|
+
*/
|
|
28
|
+
emit(eventName: string, ...args: any[]): Promise<void>;
|
|
29
|
+
|
|
30
|
+
/** Emit an event targeting a specific resource's listeners. */
|
|
31
|
+
emitTo(resourceName: string, eventName: string, ...args: any[]): Promise<void>;
|
|
32
|
+
|
|
33
|
+
/** Register a resource-local listener. */
|
|
34
|
+
onLocal(eventName: string, handler: (...args: any[]) => void): void;
|
|
35
|
+
|
|
36
|
+
/** Emit a resource-local event. */
|
|
37
|
+
emitLocal(eventName: string, ...args: any[]): Promise<void>;
|
|
38
|
+
|
|
39
|
+
/** Get the number of global listeners for an event. */
|
|
40
|
+
listenerCount(eventName: string): number;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
declare namespace Core {
|
|
2
|
+
class Quaternion {
|
|
3
|
+
constructor(w: number, x: number, y: number, z: number);
|
|
4
|
+
|
|
5
|
+
w: number;
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
z: number;
|
|
9
|
+
|
|
10
|
+
multiply(other: Quaternion): this;
|
|
11
|
+
normalize(): this;
|
|
12
|
+
slerp(target: Quaternion, t: number): this;
|
|
13
|
+
conjugate(): Quaternion;
|
|
14
|
+
inverse(): Quaternion;
|
|
15
|
+
dot(other: Quaternion): number;
|
|
16
|
+
rotateVector(v: Vector3): Vector3;
|
|
17
|
+
toEuler(): Vector3;
|
|
18
|
+
set(w: number, x: number, y: number, z: number): this;
|
|
19
|
+
clone(): Quaternion;
|
|
20
|
+
toString(): string;
|
|
21
|
+
toJSON(): { w: number; x: number; y: number; z: number };
|
|
22
|
+
|
|
23
|
+
static identity(): Quaternion;
|
|
24
|
+
static fromEuler(pitch: number, yaw: number, roll: number): Quaternion;
|
|
25
|
+
static fromAxisAngle(axis: Vector3, angle: number): Quaternion;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
declare namespace Core {
|
|
2
|
+
class Vector2 {
|
|
3
|
+
constructor(x: number, y: number);
|
|
4
|
+
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
readonly length: number;
|
|
8
|
+
readonly lengthSquared: number;
|
|
9
|
+
|
|
10
|
+
add(other: Vector2): this;
|
|
11
|
+
sub(other: Vector2): this;
|
|
12
|
+
mul(scalar: number): this;
|
|
13
|
+
div(scalar: number): this;
|
|
14
|
+
normalize(): this;
|
|
15
|
+
dot(other: Vector2): number;
|
|
16
|
+
distance(other: Vector2): number;
|
|
17
|
+
lerp(target: Vector2, t: number): this;
|
|
18
|
+
set(x: number, y: number): this;
|
|
19
|
+
clone(): Vector2;
|
|
20
|
+
toString(): string;
|
|
21
|
+
toJSON(): { x: number; y: number };
|
|
22
|
+
|
|
23
|
+
static zero(): Vector2;
|
|
24
|
+
static one(): Vector2;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
declare namespace Core {
|
|
2
|
+
class Vector3 {
|
|
3
|
+
constructor(x: number, y: number, z: number);
|
|
4
|
+
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
z: number;
|
|
8
|
+
readonly length: number;
|
|
9
|
+
readonly lengthSquared: number;
|
|
10
|
+
|
|
11
|
+
add(other: Vector3): this;
|
|
12
|
+
sub(other: Vector3): this;
|
|
13
|
+
mul(scalar: number): this;
|
|
14
|
+
div(scalar: number): this;
|
|
15
|
+
normalize(): this;
|
|
16
|
+
dot(other: Vector3): number;
|
|
17
|
+
cross(other: Vector3): this;
|
|
18
|
+
distance(other: Vector3): number;
|
|
19
|
+
lerp(target: Vector3, t: number): this;
|
|
20
|
+
set(x: number, y: number, z: number): this;
|
|
21
|
+
clone(): Vector3;
|
|
22
|
+
toString(): string;
|
|
23
|
+
toJSON(): { x: number; y: number; z: number };
|
|
24
|
+
|
|
25
|
+
static zero(): Vector3;
|
|
26
|
+
static one(): Vector3;
|
|
27
|
+
static up(): Vector3;
|
|
28
|
+
static forward(): Vector3;
|
|
29
|
+
static right(): Vector3;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
declare namespace Core {
|
|
2
|
+
class Vector4 {
|
|
3
|
+
constructor(x: number, y: number, z: number, w: number);
|
|
4
|
+
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
z: number;
|
|
8
|
+
w: number;
|
|
9
|
+
readonly length: number;
|
|
10
|
+
readonly lengthSquared: number;
|
|
11
|
+
|
|
12
|
+
add(other: Vector4): this;
|
|
13
|
+
sub(other: Vector4): this;
|
|
14
|
+
mul(scalar: number): this;
|
|
15
|
+
div(scalar: number): this;
|
|
16
|
+
normalize(): this;
|
|
17
|
+
dot(other: Vector4): number;
|
|
18
|
+
distance(other: Vector4): number;
|
|
19
|
+
lerp(target: Vector4, t: number): this;
|
|
20
|
+
set(x: number, y: number, z: number, w: number): this;
|
|
21
|
+
clone(): Vector4;
|
|
22
|
+
toString(): string;
|
|
23
|
+
toJSON(): { x: number; y: number; z: number; w: number };
|
|
24
|
+
|
|
25
|
+
static zero(): Vector4;
|
|
26
|
+
static one(): Vector4;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare namespace Framework {
|
|
2
|
+
const Exports: {
|
|
3
|
+
/** Register a named export from the current resource. */
|
|
4
|
+
register(name: string, value: any): boolean;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Get a specific export from another resource.
|
|
8
|
+
* Throws if the resource is not found, not running, or the export
|
|
9
|
+
* does not exist.
|
|
10
|
+
*/
|
|
11
|
+
get(resourceName: string, exportName: string): any;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
declare namespace Framework {
|
|
2
|
+
const messages: {
|
|
3
|
+
/**
|
|
4
|
+
* Register a handler for incoming messages of a given type.
|
|
5
|
+
* @param handler Receives `(payload, reply)`. Call `reply(value)`
|
|
6
|
+
* to send a response back to the requester.
|
|
7
|
+
*/
|
|
8
|
+
handle(
|
|
9
|
+
messageType: string,
|
|
10
|
+
handler: (payload: any, reply: (value: any) => void) => void,
|
|
11
|
+
): void;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Send a request to another resource and await a reply.
|
|
15
|
+
* Rejects if the target resource has no handler or the handler throws.
|
|
16
|
+
*/
|
|
17
|
+
request(resourceName: string, messageType: string, payload?: any): Promise<any>;
|
|
18
|
+
|
|
19
|
+
/** Fire-and-forget message to another resource. */
|
|
20
|
+
send(resourceName: string, messageType: string, payload?: any): void;
|
|
21
|
+
};
|
|
22
|
+
}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference path="core/vector2.d.ts" />
|
|
2
|
+
/// <reference path="core/vector3.d.ts" />
|
|
3
|
+
/// <reference path="core/vector4.d.ts" />
|
|
4
|
+
/// <reference path="core/quaternion.d.ts" />
|
|
5
|
+
/// <reference path="core/color.d.ts" />
|
|
6
|
+
/// <reference path="core/events.d.ts" />
|
|
7
|
+
/// <reference path="framework/messages.d.ts" />
|
|
8
|
+
/// <reference path="framework/imports.d.ts" />
|
|
9
|
+
/// <reference path="framework/exports.d.ts" />
|
package/package.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mafiahub/types",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "TypeScript type definitions for the MafiaHub Framework scripting API",
|
|
5
|
+
"types": "index.d.ts",
|
|
6
|
+
"files": [
|
|
7
|
+
"index.d.ts",
|
|
8
|
+
"core/*.d.ts",
|
|
9
|
+
"framework/*.d.ts"
|
|
10
|
+
],
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "https://github.com/MafiaHub/Framework.git",
|
|
14
|
+
"directory": "types"
|
|
15
|
+
},
|
|
16
|
+
"license": "SEE LICENSE IN ../LICENSE",
|
|
17
|
+
"publishConfig": {
|
|
18
|
+
"access": "public"
|
|
19
|
+
}
|
|
20
|
+
}
|