unreal-toolkit-next 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +18 -0
- package/dist/index.d.ts +69 -0
- package/dist/index.js +131 -0
- package/package.json +35 -0
package/README.md
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# Unreal Toolkit - Next Edition
|
2
|
+
A universal runtime library for advanced Unreal Engine web game development. The **Unreal Toolkit** requires
|
3
|
+
the **TOOLKIT** namespaces to be globally accessible.
|
4
|
+
|
5
|
+
<a href="https://www.npmjs.com/package/unreal-toolkit">Classic Edition (UMD)</a>
|
6
|
+
<br/>
|
7
|
+
<a href="https://github.com/UnrealJS/UnrealToolkit/tree/master/Runtime">Browser Edition (CDN)</a>
|
8
|
+
|
9
|
+
|
10
|
+
## Default Installation (ES6)
|
11
|
+
```bash
|
12
|
+
npm install unreal-toolkit-next
|
13
|
+
```
|
14
|
+
|
15
|
+
* Default Toolkit Import Libraries
|
16
|
+
```javascript
|
17
|
+
import TOOLKIT from 'unreal-toolkit';
|
18
|
+
```
|
package/dist/index.d.ts
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
/** ES6 Module Imports */
|
2
|
+
/**
|
3
|
+
* Unreal Toolkit (Static Manager Pattern)
|
4
|
+
* @class UnrealToolkit - All rights reserved (c) 2024 Mackey Kinard
|
5
|
+
*/
|
6
|
+
export declare class UnrealToolkit {
|
7
|
+
private static _EventBus;
|
8
|
+
/** Unreal Toolkit event message bus
|
9
|
+
* @example
|
10
|
+
* ```typescript
|
11
|
+
* // Handle myevent message
|
12
|
+
* UnrealToolkit.EventBus.OnMessage("myevent", (data:string) => {
|
13
|
+
* console.log("My Event Data: " + data);
|
14
|
+
* });
|
15
|
+
*
|
16
|
+
* // Post myevent message
|
17
|
+
* UnrealToolkit.EventBus.PostMessage("myevent", "Hello World!");
|
18
|
+
* ```
|
19
|
+
*/
|
20
|
+
static get EventBus(): UnrealMessageBus;
|
21
|
+
}
|
22
|
+
/**
|
23
|
+
* Unreal Toolkit Message Bus (Asynchronous Post Message Communication)
|
24
|
+
* @class UnrealMessageBus - All rights reserved (c) 2024 Mackey Kinard
|
25
|
+
*/
|
26
|
+
export declare class UnrealMessageBus {
|
27
|
+
constructor();
|
28
|
+
/** Handle event bus message
|
29
|
+
* @param message The message to handle
|
30
|
+
* @param data The data to handle
|
31
|
+
* @returns void
|
32
|
+
*/
|
33
|
+
OnMessage(message: string, handler: (data: string) => void): void;
|
34
|
+
/** Post event bus message
|
35
|
+
* @param message The message to post
|
36
|
+
* @param data The data to post
|
37
|
+
* @param target The target to post
|
38
|
+
* @param transfer The transfer to post
|
39
|
+
* @returns void
|
40
|
+
*/
|
41
|
+
PostMessage(message: string, data?: string): void;
|
42
|
+
/** Remove event bus message handler
|
43
|
+
* @param message The message to remove
|
44
|
+
* @param handler The handler to remove
|
45
|
+
* @returns void
|
46
|
+
*/
|
47
|
+
RemoveHandler(message: string, handler: (data: string) => void): void;
|
48
|
+
/** Clear and reset all event bus message handlers
|
49
|
+
* @returns void
|
50
|
+
*/
|
51
|
+
ResetHandlers(): void;
|
52
|
+
/** Dispose the unreal message bus
|
53
|
+
* @returns void
|
54
|
+
*/
|
55
|
+
Dispose(): void;
|
56
|
+
/** Handle window message event
|
57
|
+
* @param event The message event to handle
|
58
|
+
* @returns void
|
59
|
+
*/
|
60
|
+
private HandleWindowMessage;
|
61
|
+
/** Dispatch internal event bus message
|
62
|
+
* @param message The message to dispatch
|
63
|
+
* @param data The data to dispatch
|
64
|
+
* @returns void
|
65
|
+
*/
|
66
|
+
private OnDispatchMessage;
|
67
|
+
private ListenerDictionary;
|
68
|
+
}
|
69
|
+
export default UnrealToolkit;
|
package/dist/index.js
ADDED
@@ -0,0 +1,131 @@
|
|
1
|
+
/** ES6 Module Imports */
|
2
|
+
/**
|
3
|
+
* Unreal Toolkit (Static Manager Pattern)
|
4
|
+
* @class UnrealToolkit - All rights reserved (c) 2024 Mackey Kinard
|
5
|
+
*/
|
6
|
+
export class UnrealToolkit {
|
7
|
+
/** Unreal Toolkit event message bus
|
8
|
+
* @example
|
9
|
+
* ```typescript
|
10
|
+
* // Handle myevent message
|
11
|
+
* UnrealToolkit.EventBus.OnMessage("myevent", (data:string) => {
|
12
|
+
* console.log("My Event Data: " + data);
|
13
|
+
* });
|
14
|
+
*
|
15
|
+
* // Post myevent message
|
16
|
+
* UnrealToolkit.EventBus.PostMessage("myevent", "Hello World!");
|
17
|
+
* ```
|
18
|
+
*/
|
19
|
+
static get EventBus() {
|
20
|
+
if (UnrealToolkit._EventBus == null)
|
21
|
+
UnrealToolkit._EventBus = new UnrealMessageBus();
|
22
|
+
return UnrealToolkit._EventBus;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
UnrealToolkit._EventBus = null;
|
26
|
+
/**
|
27
|
+
* Unreal Toolkit Message Bus (Asynchronous Post Message Communication)
|
28
|
+
* @class UnrealMessageBus - All rights reserved (c) 2024 Mackey Kinard
|
29
|
+
*/
|
30
|
+
export class UnrealMessageBus {
|
31
|
+
constructor() {
|
32
|
+
this.ListenerDictionary = {};
|
33
|
+
if (window && window.top) {
|
34
|
+
this.HandleWindowMessage = this.HandleWindowMessage.bind(this);
|
35
|
+
window.top.addEventListener("message", this.HandleWindowMessage);
|
36
|
+
}
|
37
|
+
else {
|
38
|
+
console.warn("UnrealMessageBus: No Top Window Available");
|
39
|
+
}
|
40
|
+
}
|
41
|
+
/** Handle event bus message
|
42
|
+
* @param message The message to handle
|
43
|
+
* @param data The data to handle
|
44
|
+
* @returns void
|
45
|
+
*/
|
46
|
+
OnMessage(message, handler) {
|
47
|
+
let listeners;
|
48
|
+
if (this.ListenerDictionary[message] == null) {
|
49
|
+
listeners = [];
|
50
|
+
this.ListenerDictionary[message] = listeners;
|
51
|
+
}
|
52
|
+
else {
|
53
|
+
listeners = this.ListenerDictionary[message];
|
54
|
+
}
|
55
|
+
const index = listeners.findIndex((e) => { return handler == e; });
|
56
|
+
if (index < 0)
|
57
|
+
listeners.push(handler);
|
58
|
+
}
|
59
|
+
/** Post event bus message
|
60
|
+
* @param message The message to post
|
61
|
+
* @param data The data to post
|
62
|
+
* @param target The target to post
|
63
|
+
* @param transfer The transfer to post
|
64
|
+
* @returns void
|
65
|
+
*/
|
66
|
+
PostMessage(message, data) {
|
67
|
+
if (window && window.top)
|
68
|
+
window.top.postMessage({ source: "unrealmessagebus", message: message, data: data });
|
69
|
+
else
|
70
|
+
console.warn("UnrealMessageBus: No Top Window Available");
|
71
|
+
}
|
72
|
+
/** Remove event bus message handler
|
73
|
+
* @param message The message to remove
|
74
|
+
* @param handler The handler to remove
|
75
|
+
* @returns void
|
76
|
+
*/
|
77
|
+
RemoveHandler(message, handler) {
|
78
|
+
const listeners = this.ListenerDictionary[message];
|
79
|
+
if (listeners == null)
|
80
|
+
return;
|
81
|
+
const index = listeners.findIndex((e) => { return handler == e; });
|
82
|
+
if (index >= 0)
|
83
|
+
listeners.splice(index, 1);
|
84
|
+
}
|
85
|
+
/** Clear and reset all event bus message handlers
|
86
|
+
* @returns void
|
87
|
+
*/
|
88
|
+
ResetHandlers() {
|
89
|
+
this.ListenerDictionary = {};
|
90
|
+
}
|
91
|
+
/** Dispose the unreal message bus
|
92
|
+
* @returns void
|
93
|
+
*/
|
94
|
+
Dispose() {
|
95
|
+
this.ResetHandlers();
|
96
|
+
if (window && window.top)
|
97
|
+
window.top.removeEventListener("message", this.HandleWindowMessage);
|
98
|
+
}
|
99
|
+
/** Handle window message event
|
100
|
+
* @param event The message event to handle
|
101
|
+
* @returns void
|
102
|
+
*/
|
103
|
+
HandleWindowMessage(event) {
|
104
|
+
if (event != null && event.data != null && event.data.message != null && event.data.source != null && event.data.source == "unrealmessagebus") {
|
105
|
+
this.OnDispatchMessage(event.data.message, (event.data.data != null) ? event.data.data : null);
|
106
|
+
}
|
107
|
+
}
|
108
|
+
/** Dispatch internal event bus message
|
109
|
+
* @param message The message to dispatch
|
110
|
+
* @param data The data to dispatch
|
111
|
+
* @returns void
|
112
|
+
*/
|
113
|
+
OnDispatchMessage(message, data = null) {
|
114
|
+
const listeners = this.ListenerDictionary[message];
|
115
|
+
if (listeners == null)
|
116
|
+
return;
|
117
|
+
listeners.forEach((listener) => { try {
|
118
|
+
if (listener)
|
119
|
+
listener(data);
|
120
|
+
}
|
121
|
+
catch (e) {
|
122
|
+
console.warn(e);
|
123
|
+
} });
|
124
|
+
}
|
125
|
+
}
|
126
|
+
/** Unreal Toolkit Runtime Module */
|
127
|
+
if (typeof window !== 'undefined') {
|
128
|
+
window.UnrealToolkit = UnrealToolkit;
|
129
|
+
}
|
130
|
+
console.log("Unreal Toolkit Runtime - Version 0.0.1");
|
131
|
+
export default UnrealToolkit;
|
package/package.json
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
{
|
2
|
+
"name": "unreal-toolkit-next",
|
3
|
+
"version": "0.0.1",
|
4
|
+
"description": "Unreal Toolkit Runtime Library (ES6)",
|
5
|
+
"module": "dist/index.js",
|
6
|
+
"types": "dist/index.d.ts",
|
7
|
+
"scripts": {
|
8
|
+
"clean": "rimraf dist",
|
9
|
+
"build": "npm run build-all",
|
10
|
+
"build-ts": "tsc",
|
11
|
+
"build-old": "webpack --mode production",
|
12
|
+
"build-all": "npm run clean && npm run build-ts"
|
13
|
+
},
|
14
|
+
"keywords": [
|
15
|
+
"unrealjs",
|
16
|
+
"unreal-toolkit",
|
17
|
+
"game-development",
|
18
|
+
"wasm",
|
19
|
+
"webgl",
|
20
|
+
"webgpu"
|
21
|
+
],
|
22
|
+
"files": [
|
23
|
+
"README.md",
|
24
|
+
"package.json",
|
25
|
+
"dist/**/*"
|
26
|
+
],
|
27
|
+
"devDependencies": {
|
28
|
+
"rimraf": "^6.0.1",
|
29
|
+
"terser": "^5.31.6",
|
30
|
+
"ts-loader": "^9.5.1",
|
31
|
+
"typescript": "^5.5.4",
|
32
|
+
"webpack": "^5.93.0",
|
33
|
+
"webpack-cli": "^5.1.4"
|
34
|
+
}
|
35
|
+
}
|