react-simple-game-engine 0.2.13 → 0.2.14

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.
@@ -3,7 +3,8 @@ import { SceneClass } from "../classes/scene-management";
3
3
  import { SceneRunnerPublicProps } from "./scene-runner";
4
4
  declare type WorldViewProps = SceneRunnerPublicProps & {
5
5
  scenes: SceneClass[];
6
+ logPopup?: boolean;
6
7
  };
7
- export declare function GameBootstrap({ scenes, ...props }: WorldViewProps): JSX.Element;
8
+ export declare function GameBootstrap({ logPopup, scenes, ...props }: WorldViewProps): JSX.Element;
8
9
  export {};
9
10
  //# sourceMappingURL=game-bootstrap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"game-bootstrap.d.ts","sourceRoot":"","sources":["../../src/ui-components/game-bootstrap.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAmB,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAe,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAErE,aAAK,cAAc,GAAG,sBAAsB,GAAG;IAC7C,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,eAkCjE"}
1
+ {"version":3,"file":"game-bootstrap.d.ts","sourceRoot":"","sources":["../../src/ui-components/game-bootstrap.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAmB,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE1E,OAAO,EAAe,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAErE,aAAK,cAAc,GAAG,sBAAsB,GAAG;IAC7C,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,eAqC3E"}
@@ -20,12 +20,13 @@ var __rest = (this && this.__rest) || function (s, e) {
20
20
  }
21
21
  return t;
22
22
  };
23
- import { jsx as _jsx } from "react/jsx-runtime";
23
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
24
24
  import { useEffect, useMemo, useState } from "react";
25
25
  import { SceneManagement } from "../classes/scene-management";
26
+ import { Logger } from "./logger";
26
27
  import { SceneRunner } from "./scene-runner";
27
28
  export function GameBootstrap(_a) {
28
- var scenes = _a.scenes, props = __rest(_a, ["scenes"]);
29
+ var logPopup = _a.logPopup, scenes = _a.scenes, props = __rest(_a, ["logPopup", "scenes"]);
29
30
  var sceneManagement = useMemo(function () {
30
31
  return new SceneManagement(scenes);
31
32
  }, [scenes]);
@@ -46,5 +47,5 @@ export function GameBootstrap(_a) {
46
47
  }
47
48
  });
48
49
  }, [currentScene]);
49
- return (_jsx(SceneRunner, __assign({ current: currentScene }, props), currentScene.sessionId));
50
+ return (_jsxs(_Fragment, { children: [_jsx(SceneRunner, __assign({ current: currentScene }, props), currentScene.sessionId), logPopup && _jsx(Logger, {})] }));
50
51
  }
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ export declare function Logger(): import("react").ReactPortal;
3
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/ui-components/logger.tsx"],"names":[],"mappings":";AAIA,wBAAgB,MAAM,gCAoGrB"}
@@ -0,0 +1,113 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
13
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
14
+ if (ar || !(i in from)) {
15
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
16
+ ar[i] = from[i];
17
+ }
18
+ }
19
+ return to.concat(ar || Array.prototype.slice.call(from));
20
+ };
21
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
22
+ import { useCallback, useMemo, useRef, useState } from "react";
23
+ import ReactDOM from "react-dom";
24
+ import { toText } from "../utils";
25
+ export function Logger() {
26
+ var _a = useState([]), messages = _a[0], setMessages = _a[1];
27
+ var refList = useRef(null);
28
+ var container = useMemo(function () {
29
+ var c = document.createElement("div");
30
+ c.style.zIndex = "4";
31
+ c.style.position = "fixed";
32
+ c.style.top = "0";
33
+ c.style.right = "0";
34
+ document.body.appendChild(c);
35
+ return c;
36
+ }, []);
37
+ var pushMessage = useCallback(function (args) {
38
+ setMessages(function (prev) { return __spreadArray(__spreadArray([], prev, true), [
39
+ args
40
+ .map(function (arg) {
41
+ return arg && typeof arg === "object"
42
+ ? toText(arg)
43
+ : arg === null
44
+ ? "null"
45
+ : arg === undefined
46
+ ? "undefined"
47
+ : arg;
48
+ })
49
+ .join(", "),
50
+ ], false); });
51
+ if (refList.current) {
52
+ refList.current.scrollTop = refList.current.scrollHeight;
53
+ }
54
+ }, []);
55
+ useMemo(function () {
56
+ var originLog = console.log.bind(console);
57
+ console.log = function () {
58
+ var args = [];
59
+ for (var _i = 0; _i < arguments.length; _i++) {
60
+ args[_i] = arguments[_i];
61
+ }
62
+ originLog.apply(void 0, args);
63
+ pushMessage(args);
64
+ };
65
+ var originError = console.error.bind(console);
66
+ console.error = function () {
67
+ var args = [];
68
+ for (var _i = 0; _i < arguments.length; _i++) {
69
+ args[_i] = arguments[_i];
70
+ }
71
+ originError.apply(void 0, args);
72
+ pushMessage(args);
73
+ };
74
+ var originWarn = console.warn.bind(console);
75
+ console.warn = function () {
76
+ var args = [];
77
+ for (var _i = 0; _i < arguments.length; _i++) {
78
+ args[_i] = arguments[_i];
79
+ }
80
+ originWarn.apply(void 0, args);
81
+ pushMessage(args);
82
+ };
83
+ var originInfo = console.info.bind(console);
84
+ console.info = function () {
85
+ var args = [];
86
+ for (var _i = 0; _i < arguments.length; _i++) {
87
+ args[_i] = arguments[_i];
88
+ }
89
+ originInfo.apply(void 0, args);
90
+ pushMessage(args);
91
+ };
92
+ }, [pushMessage]);
93
+ return ReactDOM.createPortal(messages.length ? (_jsxs("div", __assign({ style: {
94
+ width: "calc(50vw - 200px)",
95
+ height: "calc(50vh - 50px)",
96
+ minWidth: 200,
97
+ minHeight: 150,
98
+ position: "absolute",
99
+ top: 5,
100
+ right: 5,
101
+ padding: 5,
102
+ backgroundColor: "#0000007b",
103
+ color: "#fff",
104
+ fontSize: "0.8rem",
105
+ display: "flex",
106
+ flexDirection: "column",
107
+ } }, { children: [_jsx("div", __assign({ style: { width: "100%", display: "flex", justifyContent: "flex-end" } }, { children: _jsx("p", __assign({ onClick: function () { return setMessages([]); } }, { children: "X Clear" })) })), _jsx("div", __assign({ style: {
108
+ flex: 1,
109
+ width: "100%",
110
+ overflowX: "hidden",
111
+ overflowY: "auto",
112
+ }, ref: refList }, { children: messages.map(function (mss, i) { return (_jsxs("p", { children: ["- ", mss] }, i)); }) }))] }))) : null, container);
113
+ }
package/lib/utils.d.ts CHANGED
@@ -13,4 +13,5 @@ export declare function useWindowSize(): {
13
13
  width: number;
14
14
  height: number;
15
15
  };
16
+ export declare function toText(obj: Record<string, any> | Record<string, any>[]): string | Record<string, any>;
16
17
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAiBxC,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAInE;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,KAAK,CAAC,CAiChB;AAED,wBAAsB,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,oBAQxC;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAO5B;AAED,wBAAsB,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAC3C,KAAK,EAAE,CAAC,EAAE,EACV,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,CAAC,CAAC,EACtE,KAAK,SAAI,GACR,OAAO,CAAC,CAAC,EAAE,CAAC,CAkBd;AAED,wBAAgB,aAAa;;;EAiB5B"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAiBxC,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAInE;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,KAAK,CAAC,CAiChB;AAED,wBAAsB,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,oBAQxC;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAO5B;AAED,wBAAsB,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAC3C,KAAK,EAAE,CAAC,EAAE,EACV,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,CAAC,CAAC,EACtE,KAAK,SAAI,GACR,OAAO,CAAC,CAAC,EAAE,CAAC,CAkBd;AAED,wBAAgB,aAAa;;;EAiB5B;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,gCAetE"}
package/lib/utils.js CHANGED
@@ -180,3 +180,20 @@ export function useWindowSize() {
180
180
  }, []);
181
181
  return size;
182
182
  }
183
+ export function toText(obj) {
184
+ var arr = Array.isArray(obj) ? obj : [obj];
185
+ try {
186
+ return "[".concat(arr
187
+ .map(function (o) {
188
+ return o && typeof o === "object"
189
+ ? "{".concat(Object.keys(o)
190
+ .map(function (k) { return "".concat(k, ": ").concat(o[k]); })
191
+ .join(", "), "}")
192
+ : o;
193
+ })
194
+ .join(", "), "]");
195
+ }
196
+ catch (error) {
197
+ return obj;
198
+ }
199
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-simple-game-engine",
3
- "version": "0.2.13",
3
+ "version": "0.2.14",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib",
@@ -12,8 +12,9 @@
12
12
  "p5": "^1.4.1"
13
13
  },
14
14
  "devDependencies": {
15
- "@types/react": "^18.0.17",
16
15
  "@types/node": "^16.7.13",
16
+ "@types/react": "^18.0.17",
17
+ "@types/react-dom": "^18.0.6",
17
18
  "typescript": "^4.4.2"
18
19
  },
19
20
  "scripts": {