{ "type": "File", "start": 0, "end": 1108, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 51, "column": 1 } }, "program": { "type": "Program", "start": 0, "end": 1108, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 51, "column": 1 } }, "sourceType": "module", "body": [ { "type": "ImportDeclaration", "start": 23, "end": 57, "loc": { "start": { "line": 2, "column": 0 }, "end": { "line": 2, "column": 34 } }, "specifiers": [ { "type": "ImportSpecifier", "start": 32, "end": 40, "loc": { "start": { "line": 2, "column": 9 }, "end": { "line": 2, "column": 17 } }, "imported": { "type": "Identifier", "start": 32, "end": 40, "loc": { "start": { "line": 2, "column": 9 }, "end": { "line": 2, "column": 17 }, "identifierName": "GameRoot" }, "name": "GameRoot", "leadingComments": null }, "local": { "type": "Identifier", "start": 32, "end": 40, "loc": { "start": { "line": 2, "column": 9 }, "end": { "line": 2, "column": 17 }, "identifierName": "GameRoot" }, "name": "GameRoot" }, "leadingComments": null } ], "source": { "type": "StringLiteral", "start": 48, "end": 56, "loc": { "start": { "line": 2, "column": 25 }, "end": { "line": 2, "column": 33 } }, "extra": { "rawValue": "./root", "raw": "\"./root\"" }, "value": "./root" }, "leadingComments": [ { "type": "CommentBlock", "value": " typehints:start ", "start": 0, "end": 21, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 21 } } } ] }, { "type": "ImportDeclaration", "start": 59, "end": 116, "loc": { "start": { "line": 3, "column": 0 }, "end": { "line": 3, "column": 57 } }, "specifiers": [ { "type": "ImportSpecifier", "start": 68, "end": 82, "loc": { "start": { "line": 3, "column": 9 }, "end": { "line": 3, "column": 23 } }, "imported": { "type": "Identifier", "start": 68, "end": 82, "loc": { "start": { "line": 3, "column": 9 }, "end": { "line": 3, "column": 23 }, "identifierName": "DrawParameters" }, "name": "DrawParameters" }, "local": { "type": "Identifier", "start": 68, "end": 82, "loc": { "start": { "line": 3, "column": 9 }, "end": { "line": 3, "column": 23 }, "identifierName": "DrawParameters" }, "name": "DrawParameters" } } ], "source": { "type": "StringLiteral", "start": 90, "end": 115, "loc": { "start": { "line": 3, "column": 31 }, "end": { "line": 3, "column": 56 } }, "extra": { "rawValue": "../core/draw_parameters", "raw": "\"../core/draw_parameters\"" }, "value": "../core/draw_parameters" }, "trailingComments": [ { "type": "CommentBlock", "value": " typehints:end ", "start": 118, "end": 137, "loc": { "start": { "line": 4, "column": 0 }, "end": { "line": 4, "column": 19 } } }, { "type": "CommentBlock", "value": "*\r\n * A game system processes all entities which match a given schema, usually a list of\r\n * required components. This is the core of the game logic.\r\n ", "start": 141, "end": 297, "loc": { "start": { "line": 6, "column": 0 }, "end": { "line": 9, "column": 3 } } } ] }, { "type": "ExportNamedDeclaration", "start": 299, "end": 1108, "loc": { "start": { "line": 10, "column": 0 }, "end": { "line": 51, "column": 1 } }, "specifiers": [], "source": null, "declaration": { "type": "ClassDeclaration", "start": 306, "end": 1108, "loc": { "start": { "line": 10, "column": 7 }, "end": { "line": 51, "column": 1 } }, "id": { "type": "Identifier", "start": 312, "end": 322, "loc": { "start": { "line": 10, "column": 13 }, "end": { "line": 10, "column": 23 }, "identifierName": "GameSystem" }, "name": "GameSystem", "leadingComments": null }, "superClass": null, "body": { "type": "ClassBody", "start": 323, "end": 1108, "loc": { "start": { "line": 10, "column": 24 }, "end": { "line": 51, "column": 1 } }, "body": [ { "type": "ClassMethod", "start": 379, "end": 432, "loc": { "start": { "line": 14, "column": 4 }, "end": { "line": 16, "column": 5 } }, "static": false, "computed": false, "key": { "type": "Identifier", "start": 379, "end": 390, "loc": { "start": { "line": 14, "column": 4 }, "end": { "line": 14, "column": 15 }, "identifierName": "constructor" }, "name": "constructor", "leadingComments": null }, "kind": "constructor", "id": null, "generator": false, "expression": false, "async": false, "params": [ { "type": "Identifier", "start": 391, "end": 395, "loc": { "start": { "line": 14, "column": 16 }, "end": { "line": 14, "column": 20 }, "identifierName": "root" }, "name": "root" } ], "body": { "type": "BlockStatement", "start": 397, "end": 432, "loc": { "start": { "line": 14, "column": 22 }, "end": { "line": 16, "column": 5 } }, "body": [ { "type": "ExpressionStatement", "start": 408, "end": 425, "loc": { "start": { "line": 15, "column": 8 }, "end": { "line": 15, "column": 25 } }, "expression": { "type": "AssignmentExpression", "start": 408, "end": 424, "loc": { "start": { "line": 15, "column": 8 }, "end": { "line": 15, "column": 24 } }, "operator": "=", "left": { "type": "MemberExpression", "start": 408, "end": 417, "loc": { "start": { "line": 15, "column": 8 }, "end": { "line": 15, "column": 17 } }, "object": { "type": "ThisExpression", "start": 408, "end": 412, "loc": { "start": { "line": 15, "column": 8 }, "end": { "line": 15, "column": 12 } } }, "property": { "type": "Identifier", "start": 413, "end": 417, "loc": { "start": { "line": 15, "column": 13 }, "end": { "line": 15, "column": 17 }, "identifierName": "root" }, "name": "root" }, "computed": false }, "right": { "type": "Identifier", "start": 420, "end": 424, "loc": { "start": { "line": 15, "column": 20 }, "end": { "line": 15, "column": 24 }, "identifierName": "root" }, "name": "root" } } } ], "directives": [], "trailingComments": null }, "leadingComments": [ { "type": "CommentBlock", "value": "*\r\n * @param {GameRoot} root\r\n ", "start": 330, "end": 373, "loc": { "start": { "line": 11, "column": 4 }, "end": { "line": 13, "column": 7 } } } ], "trailingComments": [ { "type": "CommentLine", "value": "/// PUBLIC API /////", "start": 440, "end": 462, "loc": { "start": { "line": 18, "column": 4 }, "end": { "line": 18, "column": 26 } } }, { "type": "CommentBlock", "value": "*\r\n * Returns static id\r\n ", "start": 470, "end": 508, "loc": { "start": { "line": 20, "column": 4 }, "end": { "line": 22, "column": 7 } } } ] }, { "type": "ClassMethod", "start": 514, "end": 590, "loc": { "start": { "line": 23, "column": 4 }, "end": { "line": 26, "column": 5 } }, "static": true, "computed": false, "key": { "type": "Identifier", "start": 521, "end": 526, "loc": { "start": { "line": 23, "column": 11 }, "end": { "line": 23, "column": 16 }, "identifierName": "getId" }, "name": "getId" }, "kind": "method", "id": null, "generator": false, "expression": false, "async": false, "params": [], "body": { "type": "BlockStatement", "start": 529, "end": 590, "loc": { "start": { "line": 23, "column": 19 }, "end": { "line": 26, "column": 5 } }, "body": [ { "type": "ExpressionStatement", "start": 540, "end": 549, "loc": { "start": { "line": 24, "column": 8 }, "end": { "line": 24, "column": 17 } }, "expression": { "type": "Identifier", "start": 540, "end": 548, "loc": { "start": { "line": 24, "column": 8 }, "end": { "line": 24, "column": 16 }, "identifierName": "abstract" }, "name": "abstract" } }, { "type": "ReturnStatement", "start": 559, "end": 583, "loc": { "start": { "line": 25, "column": 8 }, "end": { "line": 25, "column": 32 } }, "argument": { "type": "StringLiteral", "start": 566, "end": 582, "loc": { "start": { "line": 25, "column": 15 }, "end": { "line": 25, "column": 31 } }, "extra": { "rawValue": "unknown-system", "raw": "\"unknown-system\"" }, "value": "unknown-system" } } ], "directives": [], "trailingComments": null }, "leadingComments": [ { "type": "CommentLine", "value": "/// PUBLIC API /////", "start": 440, "end": 462, "loc": { "start": { "line": 18, "column": 4 }, "end": { "line": 18, "column": 26 } } }, { "type": "CommentBlock", "value": "*\r\n * Returns static id\r\n ", "start": 470, "end": 508, "loc": { "start": { "line": 20, "column": 4 }, "end": { "line": 22, "column": 7 } } } ], "trailingComments": [ { "type": "CommentBlock", "value": "*\r\n * Updates the game system, override to perform logic\r\n ", "start": 598, "end": 669, "loc": { "start": { "line": 28, "column": 4 }, "end": { "line": 30, "column": 7 } } } ] }, { "type": "ClassMethod", "start": 675, "end": 686, "loc": { "start": { "line": 31, "column": 4 }, "end": { "line": 31, "column": 15 } }, "static": false, "computed": false, "key": { "type": "Identifier", "start": 675, "end": 681, "loc": { "start": { "line": 31, "column": 4 }, "end": { "line": 31, "column": 10 }, "identifierName": "update" }, "name": "update", "leadingComments": null }, "kind": "method", "id": null, "generator": false, "expression": false, "async": false, "params": [], "body": { "type": "BlockStatement", "start": 684, "end": 686, "loc": { "start": { "line": 31, "column": 13 }, "end": { "line": 31, "column": 15 } }, "body": [], "directives": [], "leadingComments": null, "trailingComments": null }, "leadingComments": [ { "type": "CommentBlock", "value": "*\r\n * Updates the game system, override to perform logic\r\n ", "start": 598, "end": 669, "loc": { "start": { "line": 28, "column": 4 }, "end": { "line": 30, "column": 7 } } } ], "trailingComments": [ { "type": "CommentBlock", "value": "*\r\n * Override, do not call this directly, use startDraw()\r\n * @param {DrawParameters} parameters\r\n ", "start": 694, "end": 810, "loc": { "start": { "line": 33, "column": 4 }, "end": { "line": 36, "column": 7 } } } ] }, { "type": "ClassMethod", "start": 816, "end": 835, "loc": { "start": { "line": 37, "column": 4 }, "end": { "line": 37, "column": 23 } }, "static": false, "computed": false, "key": { "type": "Identifier", "start": 816, "end": 820, "loc": { "start": { "line": 37, "column": 4 }, "end": { "line": 37, "column": 8 }, "identifierName": "draw" }, "name": "draw", "leadingComments": null }, "kind": "method", "id": null, "generator": false, "expression": false, "async": false, "params": [ { "type": "Identifier", "start": 821, "end": 831, "loc": { "start": { "line": 37, "column": 9 }, "end": { "line": 37, "column": 19 }, "identifierName": "parameters" }, "name": "parameters" } ], "body": { "type": "BlockStatement", "start": 833, "end": 835, "loc": { "start": { "line": 37, "column": 21 }, "end": { "line": 37, "column": 23 } }, "body": [], "directives": [], "leadingComments": null, "trailingComments": null }, "leadingComments": [ { "type": "CommentBlock", "value": "*\r\n * Override, do not call this directly, use startDraw()\r\n * @param {DrawParameters} parameters\r\n ", "start": 694, "end": 810, "loc": { "start": { "line": 33, "column": 4 }, "end": { "line": 36, "column": 7 } } } ], "trailingComments": [ { "type": "CommentBlock", "value": "*\r\n * Should refresh all caches\r\n ", "start": 843, "end": 889, "loc": { "start": { "line": 39, "column": 4 }, "end": { "line": 41, "column": 7 } } } ] }, { "type": "ClassMethod", "start": 895, "end": 913, "loc": { "start": { "line": 42, "column": 4 }, "end": { "line": 42, "column": 22 } }, "static": false, "computed": false, "key": { "type": "Identifier", "start": 895, "end": 908, "loc": { "start": { "line": 42, "column": 4 }, "end": { "line": 42, "column": 17 }, "identifierName": "refreshCaches" }, "name": "refreshCaches", "leadingComments": null }, "kind": "method", "id": null, "generator": false, "expression": false, "async": false, "params": [], "body": { "type": "BlockStatement", "start": 911, "end": 913, "loc": { "start": { "line": 42, "column": 20 }, "end": { "line": 42, "column": 22 } }, "body": [], "directives": [], "leadingComments": null, "trailingComments": null }, "leadingComments": [ { "type": "CommentBlock", "value": "*\r\n * Should refresh all caches\r\n ", "start": 843, "end": 889, "loc": { "start": { "line": 39, "column": 4 }, "end": { "line": 41, "column": 7 } } } ], "trailingComments": [ { "type": "CommentBlock", "value": "*\r\n * @see GameSystem.draw Wrapper arround the draw method\r\n * @param {DrawParameters} parameters\r\n ", "start": 921, "end": 1037, "loc": { "start": { "line": 44, "column": 4 }, "end": { "line": 47, "column": 7 } } } ] }, { "type": "ClassMethod", "start": 1043, "end": 1105, "loc": { "start": { "line": 48, "column": 4 }, "end": { "line": 50, "column": 5 } }, "static": false, "computed": false, "key": { "type": "Identifier", "start": 1043, "end": 1052, "loc": { "start": { "line": 48, "column": 4 }, "end": { "line": 48, "column": 13 }, "identifierName": "startDraw" }, "name": "startDraw", "leadingComments": null }, "kind": "method", "id": null, "generator": false, "expression": false, "async": false, "params": [ { "type": "Identifier", "start": 1053, "end": 1063, "loc": { "start": { "line": 48, "column": 14 }, "end": { "line": 48, "column": 24 }, "identifierName": "parameters" }, "name": "parameters" } ], "body": { "type": "BlockStatement", "start": 1065, "end": 1105, "loc": { "start": { "line": 48, "column": 26 }, "end": { "line": 50, "column": 5 } }, "body": [ { "type": "ExpressionStatement", "start": 1076, "end": 1098, "loc": { "start": { "line": 49, "column": 8 }, "end": { "line": 49, "column": 30 } }, "expression": { "type": "CallExpression", "start": 1076, "end": 1097, "loc": { "start": { "line": 49, "column": 8 }, "end": { "line": 49, "column": 29 } }, "callee": { "type": "MemberExpression", "start": 1076, "end": 1085, "loc": { "start": { "line": 49, "column": 8 }, "end": { "line": 49, "column": 17 } }, "object": { "type": "ThisExpression", "start": 1076, "end": 1080, "loc": { "start": { "line": 49, "column": 8 }, "end": { "line": 49, "column": 12 } } }, "property": { "type": "Identifier", "start": 1081, "end": 1085, "loc": { "start": { "line": 49, "column": 13 }, "end": { "line": 49, "column": 17 }, "identifierName": "draw" }, "name": "draw" }, "computed": false }, "arguments": [ { "type": "Identifier", "start": 1086, "end": 1096, "loc": { "start": { "line": 49, "column": 18 }, "end": { "line": 49, "column": 28 }, "identifierName": "parameters" }, "name": "parameters" } ] } } ], "directives": [] }, "leadingComments": [ { "type": "CommentBlock", "value": "*\r\n * @see GameSystem.draw Wrapper arround the draw method\r\n * @param {DrawParameters} parameters\r\n ", "start": 921, "end": 1037, "loc": { "start": { "line": 44, "column": 4 }, "end": { "line": 47, "column": 7 } } } ] } ] }, "leadingComments": [ { "type": "CommentBlock", "value": " typehints:end ", "start": 118, "end": 137, "loc": { "start": { "line": 4, "column": 0 }, "end": { "line": 4, "column": 19 } } }, { "type": "CommentBlock", "value": "*\r\n * A game system processes all entities which match a given schema, usually a list of\r\n * required components. This is the core of the game logic.\r\n ", "start": 141, "end": 297, "loc": { "start": { "line": 6, "column": 0 }, "end": { "line": 9, "column": 3 } } } ], "trailingComments": [] }, "leadingComments": [ { "type": "CommentBlock", "value": " typehints:end ", "start": 118, "end": 137, "loc": { "start": { "line": 4, "column": 0 }, "end": { "line": 4, "column": 19 } } }, { "type": "CommentBlock", "value": "*\r\n * A game system processes all entities which match a given schema, usually a list of\r\n * required components. This is the core of the game logic.\r\n ", "start": 141, "end": 297, "loc": { "start": { "line": 6, "column": 0 }, "end": { "line": 9, "column": 3 } } } ] } ], "directives": [] }, "comments": [ { "type": "CommentBlock", "value": " typehints:start ", "start": 0, "end": 21, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 21 } } }, { "type": "CommentBlock", "value": " typehints:end ", "start": 118, "end": 137, "loc": { "start": { "line": 4, "column": 0 }, "end": { "line": 4, "column": 19 } } }, { "type": "CommentBlock", "value": "*\r\n * A game system processes all entities which match a given schema, usually a list of\r\n * required components. This is the core of the game logic.\r\n ", "start": 141, "end": 297, "loc": { "start": { "line": 6, "column": 0 }, "end": { "line": 9, "column": 3 } } }, { "type": "CommentBlock", "value": "*\r\n * @param {GameRoot} root\r\n ", "start": 330, "end": 373, "loc": { "start": { "line": 11, "column": 4 }, "end": { "line": 13, "column": 7 } } }, { "type": "CommentLine", "value": "/// PUBLIC API /////", "start": 440, "end": 462, "loc": { "start": { "line": 18, "column": 4 }, "end": { "line": 18, "column": 26 } } }, { "type": "CommentBlock", "value": "*\r\n * Returns static id\r\n ", "start": 470, "end": 508, "loc": { "start": { "line": 20, "column": 4 }, "end": { "line": 22, "column": 7 } } }, { "type": "CommentBlock", "value": "*\r\n * Updates the game system, override to perform logic\r\n ", "start": 598, "end": 669, "loc": { "start": { "line": 28, "column": 4 }, "end": { "line": 30, "column": 7 } } }, { "type": "CommentBlock", "value": "*\r\n * Override, do not call this directly, use startDraw()\r\n * @param {DrawParameters} parameters\r\n ", "start": 694, "end": 810, "loc": { "start": { "line": 33, "column": 4 }, "end": { "line": 36, "column": 7 } } }, { "type": "CommentBlock", "value": "*\r\n * Should refresh all caches\r\n ", "start": 843, "end": 889, "loc": { "start": { "line": 39, "column": 4 }, "end": { "line": 41, "column": 7 } } }, { "type": "CommentBlock", "value": "*\r\n * @see GameSystem.draw Wrapper arround the draw method\r\n * @param {DrawParameters} parameters\r\n ", "start": 921, "end": 1037, "loc": { "start": { "line": 44, "column": 4 }, "end": { "line": 47, "column": 7 } } } ], "tokens": [ { "type": "CommentBlock", "value": " typehints:start ", "start": 0, "end": 21, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 21 } } }, { "type": { "label": "import", "keyword": "import", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "import", "start": 23, "end": 29, "loc": { "start": { "line": 2, "column": 0 }, "end": { "line": 2, "column": 6 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 30, "end": 31, "loc": { "start": { "line": 2, "column": 7 }, "end": { "line": 2, "column": 8 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "GameRoot", "start": 32, "end": 40, "loc": { "start": { "line": 2, "column": 9 }, "end": { "line": 2, "column": 17 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 41, "end": 42, "loc": { "start": { "line": 2, "column": 18 }, "end": { "line": 2, "column": 19 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "from", "start": 43, "end": 47, "loc": { "start": { "line": 2, "column": 20 }, "end": { "line": 2, "column": 24 } } }, { "type": { "label": "string", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "./root", "start": 48, "end": 56, "loc": { "start": { "line": 2, "column": 25 }, "end": { "line": 2, "column": 33 } } }, { "type": { "label": ";", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 56, "end": 57, "loc": { "start": { "line": 2, "column": 33 }, "end": { "line": 2, "column": 34 } } }, { "type": { "label": "import", "keyword": "import", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "import", "start": 59, "end": 65, "loc": { "start": { "line": 3, "column": 0 }, "end": { "line": 3, "column": 6 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 66, "end": 67, "loc": { "start": { "line": 3, "column": 7 }, "end": { "line": 3, "column": 8 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "DrawParameters", "start": 68, "end": 82, "loc": { "start": { "line": 3, "column": 9 }, "end": { "line": 3, "column": 23 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 83, "end": 84, "loc": { "start": { "line": 3, "column": 24 }, "end": { "line": 3, "column": 25 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "from", "start": 85, "end": 89, "loc": { "start": { "line": 3, "column": 26 }, "end": { "line": 3, "column": 30 } } }, { "type": { "label": "string", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "../core/draw_parameters", "start": 90, "end": 115, "loc": { "start": { "line": 3, "column": 31 }, "end": { "line": 3, "column": 56 } } }, { "type": { "label": ";", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 115, "end": 116, "loc": { "start": { "line": 3, "column": 56 }, "end": { "line": 3, "column": 57 } } }, { "type": "CommentBlock", "value": " typehints:end ", "start": 118, "end": 137, "loc": { "start": { "line": 4, "column": 0 }, "end": { "line": 4, "column": 19 } } }, { "type": "CommentBlock", "value": "*\r\n * A game system processes all entities which match a given schema, usually a list of\r\n * required components. This is the core of the game logic.\r\n ", "start": 141, "end": 297, "loc": { "start": { "line": 6, "column": 0 }, "end": { "line": 9, "column": 3 } } }, { "type": { "label": "export", "keyword": "export", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "export", "start": 299, "end": 305, "loc": { "start": { "line": 10, "column": 0 }, "end": { "line": 10, "column": 6 } } }, { "type": { "label": "class", "keyword": "class", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "class", "start": 306, "end": 311, "loc": { "start": { "line": 10, "column": 7 }, "end": { "line": 10, "column": 12 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "GameSystem", "start": 312, "end": 322, "loc": { "start": { "line": 10, "column": 13 }, "end": { "line": 10, "column": 23 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 323, "end": 324, "loc": { "start": { "line": 10, "column": 24 }, "end": { "line": 10, "column": 25 } } }, { "type": "CommentBlock", "value": "*\r\n * @param {GameRoot} root\r\n ", "start": 330, "end": 373, "loc": { "start": { "line": 11, "column": 4 }, "end": { "line": 13, "column": 7 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "constructor", "start": 379, "end": 390, "loc": { "start": { "line": 14, "column": 4 }, "end": { "line": 14, "column": 15 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 390, "end": 391, "loc": { "start": { "line": 14, "column": 15 }, "end": { "line": 14, "column": 16 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "root", "start": 391, "end": 395, "loc": { "start": { "line": 14, "column": 16 }, "end": { "line": 14, "column": 20 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 395, "end": 396, "loc": { "start": { "line": 14, "column": 20 }, "end": { "line": 14, "column": 21 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 397, "end": 398, "loc": { "start": { "line": 14, "column": 22 }, "end": { "line": 14, "column": 23 } } }, { "type": { "label": "this", "keyword": "this", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "this", "start": 408, "end": 412, "loc": { "start": { "line": 15, "column": 8 }, "end": { "line": 15, "column": 12 } } }, { "type": { "label": ".", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 412, "end": 413, "loc": { "start": { "line": 15, "column": 12 }, "end": { "line": 15, "column": 13 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "root", "start": 413, "end": 417, "loc": { "start": { "line": 15, "column": 13 }, "end": { "line": 15, "column": 17 } } }, { "type": { "label": "=", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": true, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "=", "start": 418, "end": 419, "loc": { "start": { "line": 15, "column": 18 }, "end": { "line": 15, "column": 19 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "root", "start": 420, "end": 424, "loc": { "start": { "line": 15, "column": 20 }, "end": { "line": 15, "column": 24 } } }, { "type": { "label": ";", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 424, "end": 425, "loc": { "start": { "line": 15, "column": 24 }, "end": { "line": 15, "column": 25 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 431, "end": 432, "loc": { "start": { "line": 16, "column": 4 }, "end": { "line": 16, "column": 5 } } }, { "type": "CommentLine", "value": "/// PUBLIC API /////", "start": 440, "end": 462, "loc": { "start": { "line": 18, "column": 4 }, "end": { "line": 18, "column": 26 } } }, { "type": "CommentBlock", "value": "*\r\n * Returns static id\r\n ", "start": 470, "end": 508, "loc": { "start": { "line": 20, "column": 4 }, "end": { "line": 22, "column": 7 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "static", "start": 514, "end": 520, "loc": { "start": { "line": 23, "column": 4 }, "end": { "line": 23, "column": 10 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "getId", "start": 521, "end": 526, "loc": { "start": { "line": 23, "column": 11 }, "end": { "line": 23, "column": 16 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 526, "end": 527, "loc": { "start": { "line": 23, "column": 16 }, "end": { "line": 23, "column": 17 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 527, "end": 528, "loc": { "start": { "line": 23, "column": 17 }, "end": { "line": 23, "column": 18 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 529, "end": 530, "loc": { "start": { "line": 23, "column": 19 }, "end": { "line": 23, "column": 20 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "abstract", "start": 540, "end": 548, "loc": { "start": { "line": 24, "column": 8 }, "end": { "line": 24, "column": 16 } } }, { "type": { "label": ";", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 548, "end": 549, "loc": { "start": { "line": 24, "column": 16 }, "end": { "line": 24, "column": 17 } } }, { "type": { "label": "return", "keyword": "return", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "return", "start": 559, "end": 565, "loc": { "start": { "line": 25, "column": 8 }, "end": { "line": 25, "column": 14 } } }, { "type": { "label": "string", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "unknown-system", "start": 566, "end": 582, "loc": { "start": { "line": 25, "column": 15 }, "end": { "line": 25, "column": 31 } } }, { "type": { "label": ";", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 582, "end": 583, "loc": { "start": { "line": 25, "column": 31 }, "end": { "line": 25, "column": 32 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 589, "end": 590, "loc": { "start": { "line": 26, "column": 4 }, "end": { "line": 26, "column": 5 } } }, { "type": "CommentBlock", "value": "*\r\n * Updates the game system, override to perform logic\r\n ", "start": 598, "end": 669, "loc": { "start": { "line": 28, "column": 4 }, "end": { "line": 30, "column": 7 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "update", "start": 675, "end": 681, "loc": { "start": { "line": 31, "column": 4 }, "end": { "line": 31, "column": 10 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 681, "end": 682, "loc": { "start": { "line": 31, "column": 10 }, "end": { "line": 31, "column": 11 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 682, "end": 683, "loc": { "start": { "line": 31, "column": 11 }, "end": { "line": 31, "column": 12 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 684, "end": 685, "loc": { "start": { "line": 31, "column": 13 }, "end": { "line": 31, "column": 14 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 685, "end": 686, "loc": { "start": { "line": 31, "column": 14 }, "end": { "line": 31, "column": 15 } } }, { "type": "CommentBlock", "value": "*\r\n * Override, do not call this directly, use startDraw()\r\n * @param {DrawParameters} parameters\r\n ", "start": 694, "end": 810, "loc": { "start": { "line": 33, "column": 4 }, "end": { "line": 36, "column": 7 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "draw", "start": 816, "end": 820, "loc": { "start": { "line": 37, "column": 4 }, "end": { "line": 37, "column": 8 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 820, "end": 821, "loc": { "start": { "line": 37, "column": 8 }, "end": { "line": 37, "column": 9 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "parameters", "start": 821, "end": 831, "loc": { "start": { "line": 37, "column": 9 }, "end": { "line": 37, "column": 19 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 831, "end": 832, "loc": { "start": { "line": 37, "column": 19 }, "end": { "line": 37, "column": 20 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 833, "end": 834, "loc": { "start": { "line": 37, "column": 21 }, "end": { "line": 37, "column": 22 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 834, "end": 835, "loc": { "start": { "line": 37, "column": 22 }, "end": { "line": 37, "column": 23 } } }, { "type": "CommentBlock", "value": "*\r\n * Should refresh all caches\r\n ", "start": 843, "end": 889, "loc": { "start": { "line": 39, "column": 4 }, "end": { "line": 41, "column": 7 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "refreshCaches", "start": 895, "end": 908, "loc": { "start": { "line": 42, "column": 4 }, "end": { "line": 42, "column": 17 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 908, "end": 909, "loc": { "start": { "line": 42, "column": 17 }, "end": { "line": 42, "column": 18 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 909, "end": 910, "loc": { "start": { "line": 42, "column": 18 }, "end": { "line": 42, "column": 19 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 911, "end": 912, "loc": { "start": { "line": 42, "column": 20 }, "end": { "line": 42, "column": 21 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 912, "end": 913, "loc": { "start": { "line": 42, "column": 21 }, "end": { "line": 42, "column": 22 } } }, { "type": "CommentBlock", "value": "*\r\n * @see GameSystem.draw Wrapper arround the draw method\r\n * @param {DrawParameters} parameters\r\n ", "start": 921, "end": 1037, "loc": { "start": { "line": 44, "column": 4 }, "end": { "line": 47, "column": 7 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "startDraw", "start": 1043, "end": 1052, "loc": { "start": { "line": 48, "column": 4 }, "end": { "line": 48, "column": 13 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 1052, "end": 1053, "loc": { "start": { "line": 48, "column": 13 }, "end": { "line": 48, "column": 14 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "parameters", "start": 1053, "end": 1063, "loc": { "start": { "line": 48, "column": 14 }, "end": { "line": 48, "column": 24 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 1063, "end": 1064, "loc": { "start": { "line": 48, "column": 24 }, "end": { "line": 48, "column": 25 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 1065, "end": 1066, "loc": { "start": { "line": 48, "column": 26 }, "end": { "line": 48, "column": 27 } } }, { "type": { "label": "this", "keyword": "this", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "this", "start": 1076, "end": 1080, "loc": { "start": { "line": 49, "column": 8 }, "end": { "line": 49, "column": 12 } } }, { "type": { "label": ".", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 1080, "end": 1081, "loc": { "start": { "line": 49, "column": 12 }, "end": { "line": 49, "column": 13 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "draw", "start": 1081, "end": 1085, "loc": { "start": { "line": 49, "column": 13 }, "end": { "line": 49, "column": 17 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 1085, "end": 1086, "loc": { "start": { "line": 49, "column": 17 }, "end": { "line": 49, "column": 18 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "parameters", "start": 1086, "end": 1096, "loc": { "start": { "line": 49, "column": 18 }, "end": { "line": 49, "column": 28 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 1096, "end": 1097, "loc": { "start": { "line": 49, "column": 28 }, "end": { "line": 49, "column": 29 } } }, { "type": { "label": ";", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 1097, "end": 1098, "loc": { "start": { "line": 49, "column": 29 }, "end": { "line": 49, "column": 30 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 1104, "end": 1105, "loc": { "start": { "line": 50, "column": 4 }, "end": { "line": 50, "column": 5 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 1107, "end": 1108, "loc": { "start": { "line": 51, "column": 0 }, "end": { "line": 51, "column": 1 } } }, { "type": { "label": "eof", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 1108, "end": 1108, "loc": { "start": { "line": 51, "column": 1 }, "end": { "line": 51, "column": 1 } } } ] }