-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathdoc.json
1 lines (1 loc) · 818 KB
/
doc.json
1
{"types":{"RGBValue":[{"kind":"TypeAliasDeclaration","id":0,"name":"RGBValue","type":{"kind":"TupleType","id":0,"elements":[{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0}]}}],"RGBAValue":[{"kind":"TypeAliasDeclaration","id":0,"name":"RGBAValue","type":{"kind":"TupleType","id":0,"elements":[{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0}]}}],"Color":[{"kind":"ClassDeclaration","id":0,"name":"Color","members":{"r":[{"kind":"PropertyDeclaration","id":0,"name":"r","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Red (0-255.","tags":{}}}],"g":[{"kind":"PropertyDeclaration","id":0,"name":"g","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Green (0-255).","tags":{}}}],"b":[{"kind":"PropertyDeclaration","id":0,"name":"b","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Blue (0-255).","tags":{}}}],"fromArray":[{"kind":"MethodDeclaration","id":0,"name":"fromArray","parameters":[{"kind":"Parameter","id":0,"name":"arr","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"fromHex":[{"kind":"MethodDeclaration","id":0,"name":"fromHex","parameters":[{"kind":"Parameter","id":0,"name":"hex","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"NumberKeyword","id":0}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"Color"},"jsDoc":{"doc":"Create color from hex string or literal.","tags":{"example":["```js\nColor.fromHex(0xfcef8d)\nColor.fromHex(\"#5ba675\")\nColor.fromHex(\"d46eb3\")\n```"],"since":["v3000.0"]}}}],"fromHSL":[{"kind":"MethodDeclaration","id":0,"name":"fromHSL","parameters":[{"kind":"Parameter","id":0,"name":"h","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"s","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"l","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"RED":[{"kind":"PropertyDeclaration","id":0,"name":"RED","type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"GREEN":[{"kind":"PropertyDeclaration","id":0,"name":"GREEN","type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"BLUE":[{"kind":"PropertyDeclaration","id":0,"name":"BLUE","type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"YELLOW":[{"kind":"PropertyDeclaration","id":0,"name":"YELLOW","type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"MAGENTA":[{"kind":"PropertyDeclaration","id":0,"name":"MAGENTA","type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"CYAN":[{"kind":"PropertyDeclaration","id":0,"name":"CYAN","type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"WHITE":[{"kind":"PropertyDeclaration","id":0,"name":"WHITE","type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"BLACK":[{"kind":"PropertyDeclaration","id":0,"name":"BLACK","type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"clone":[{"kind":"MethodDeclaration","id":0,"name":"clone","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"lighten":[{"kind":"MethodDeclaration","id":0,"name":"lighten","parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Color"},"jsDoc":{"doc":"Lighten the color (adds RGB by n).","tags":{}}}],"darken":[{"kind":"MethodDeclaration","id":0,"name":"darken","parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Color"},"jsDoc":{"doc":"Darkens the color (subtracts RGB by n).","tags":{}}}],"invert":[{"kind":"MethodDeclaration","id":0,"name":"invert","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"mult":[{"kind":"MethodDeclaration","id":0,"name":"mult","parameters":[{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"lerp":[{"kind":"MethodDeclaration","id":0,"name":"lerp","parameters":[{"kind":"Parameter","id":0,"name":"dest","type":{"kind":"TypeReference","id":0,"typeName":"Color"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Color"},"jsDoc":{"doc":"Linear interpolate to a destination color.","tags":{"since":["v3000.0"]}}}],"toHSL":[{"kind":"MethodDeclaration","id":0,"name":"toHSL","parameters":[],"type":{"kind":"TupleType","id":0,"elements":[{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0}]},"jsDoc":{"doc":"Convert color into HSL format.","tags":{"since":["v3001.0"]}}}],"eq":[{"kind":"MethodDeclaration","id":0,"name":"eq","parameters":[{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"type":{"kind":"BooleanKeyword","id":0}}],"toHex":[{"kind":"MethodDeclaration","id":0,"name":"toHex","parameters":[],"type":{"kind":"StringKeyword","id":0},"jsDoc":{"doc":"Return the hex string of color.","tags":{"since":["v3000.0"]}}}],"toArray":[{"kind":"MethodDeclaration","id":0,"name":"toArray","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Array","typeArguments":[{"kind":"NumberKeyword","id":0}]},"jsDoc":{"doc":"Return the color converted to an array.","tags":{"since":["v3001.0"]}}}]},"jsDoc":{"doc":"0-255 RGBA color.","tags":{"group":["Math"]}}}],"ColorArgs":[{"kind":"TypeAliasDeclaration","id":0,"name":"ColorArgs","type":{"kind":"UnionType","id":0,"types":[{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Color"}]},{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Color"},{"kind":"NumberKeyword","id":0}]},{"kind":"TypeReference","id":0,"typeName":"RGBValue"},{"kind":"TypeReference","id":0,"typeName":"RGBAValue"},{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]},{"kind":"TupleType","id":0,"elements":[{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}]},{"kind":"TupleType","id":0,"elements":[]}]}}],"Vec2Args":[{"kind":"TypeAliasDeclaration","id":0,"name":"Vec2Args","type":{"kind":"UnionType","id":0,"types":[{"kind":"TupleType","id":0,"elements":[{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0}]},{"kind":"TupleType","id":0,"elements":[{"kind":"NumberKeyword","id":0}]},{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"}]},{"kind":"TupleType","id":0,"elements":[{"kind":"UnionType","id":0,"types":[{"kind":"NumberKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]}]},{"kind":"TupleType","id":0,"elements":[]}]},"jsDoc":{"doc":"Possible arguments for a Vec2.","tags":{"group":["Math"]}}}],"Vec2":[{"kind":"ClassDeclaration","id":0,"name":"Vec2","members":{"x":[{"kind":"PropertyDeclaration","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"The x coordinate","tags":{}}}],"y":[{"kind":"PropertyDeclaration","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"The y coordinate","tags":{}}}],"fromAngle":[{"kind":"MethodDeclaration","id":0,"name":"fromAngle","parameters":[{"kind":"Parameter","id":0,"name":"deg","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Create a new Vec2 from an angle in degrees","tags":{}}}],"fromArray":[{"kind":"MethodDeclaration","id":0,"name":"fromArray","parameters":[{"kind":"Parameter","id":0,"name":"arr","type":{"kind":"TypeReference","id":0,"typeName":"Array","typeArguments":[{"kind":"NumberKeyword","id":0}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Create a new Vec2 from an array","tags":{}}}],"ZERO":[{"kind":"PropertyDeclaration","id":0,"name":"ZERO","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"An empty vector. (0, 0)","tags":{}}}],"ONE":[{"kind":"PropertyDeclaration","id":0,"name":"ONE","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"A vector with both components of 1. (1, 1)","tags":{}}}],"LEFT":[{"kind":"PropertyDeclaration","id":0,"name":"LEFT","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"A vector signaling to the left. (-1, 0)","tags":{}}}],"RIGHT":[{"kind":"PropertyDeclaration","id":0,"name":"RIGHT","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"A vector signaling to the right. (1, 0)","tags":{}}}],"UP":[{"kind":"PropertyDeclaration","id":0,"name":"UP","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"A vector signaling up. (0, -1)","tags":{}}}],"DOWN":[{"kind":"PropertyDeclaration","id":0,"name":"DOWN","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"A vector signaling down. (0, 1)","tags":{}}}],"toAxis":[{"kind":"MethodDeclaration","id":0,"name":"toAxis","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Closest orthogonal direction: LEFT, RIGHT, UP, or DOWN","tags":{}}}],"clone":[{"kind":"MethodDeclaration","id":0,"name":"clone","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Clone the vector","tags":{}}}],"copy":[{"kind":"MethodDeclaration","id":0,"name":"copy","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"out","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"add":[{"kind":"MethodDeclaration","id":0,"name":"add","parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"TypeReference","id":0,"typeName":"Vec2Args"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Returns the sum with another vector.","tags":{}}},{"kind":"MethodDeclaration","id":0,"name":"add","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"out","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Calculates the sum of the vectors","tags":{"param":["The first term","The second term","The vector sum"],"returns":["The sum of the vectors"]}}}],"addScaled":[{"kind":"MethodDeclaration","id":0,"name":"addScaled","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"s","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"out","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"addc":[{"kind":"MethodDeclaration","id":0,"name":"addc","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"out","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Calculates the sum of the vectors","tags":{"param":["The first term","The x of the second term","The y of the second term","The vector sum"],"returns":["The sum of the vectors"]}}}],"sub":[{"kind":"MethodDeclaration","id":0,"name":"sub","parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"TypeReference","id":0,"typeName":"Vec2Args"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Returns the difference with another vector.","tags":{}}},{"kind":"MethodDeclaration","id":0,"name":"sub","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"out","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Calculates the difference of the vectors","tags":{"param":["The first term","The second term","The vector difference"],"returns":["The difference of the vectors"]}}}],"subc":[{"kind":"MethodDeclaration","id":0,"name":"subc","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"out","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Calculates the difference of the vectors","tags":{"param":["The first term","The x of the second term","The y of the second term","The vector difference"],"returns":["The difference of the vectors"]}}}],"scale":[{"kind":"MethodDeclaration","id":0,"name":"scale","parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"TypeReference","id":0,"typeName":"Vec2Args"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Scale by another vector. or a single number","tags":{}}},{"kind":"MethodDeclaration","id":0,"name":"scale","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"s","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"out","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Calculates the scale of the vector","tags":{"param":["The vector","The x scale","The y scale","The scaled vector"],"returns":["The scale of the vector"]}}}],"scalec":[{"kind":"MethodDeclaration","id":0,"name":"scalec","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"out","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Calculates the scale of the vector","tags":{"param":["The vector","The x scale","The y scale","The scaled vector"],"returns":["The scale of the vector"]}}}],"scalev":[{"kind":"MethodDeclaration","id":0,"name":"scalev","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"out","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Calculates the scale of the vector","tags":{"param":["The vector","The scale","The scaled vector"],"returns":["The scale of the vector"]}}}],"invScale":[{"kind":"MethodDeclaration","id":0,"name":"invScale","parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"TypeReference","id":0,"typeName":"Vec2Args"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Scale by the inverse of another vector. or a single number","tags":{}}}],"dist":[{"kind":"MethodDeclaration","id":0,"name":"dist","parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"TypeReference","id":0,"typeName":"Vec2Args"}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get distance between another vector","tags":{}}},{"kind":"MethodDeclaration","id":0,"name":"dist","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Calculates the distance between the vectors","tags":{"param":["The vector","The other vector"],"returns":["The between the vectors"]}}}],"sdist":[{"kind":"MethodDeclaration","id":0,"name":"sdist","parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"TypeReference","id":0,"typeName":"Vec2Args"}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get squared distance between another vector","tags":{}}},{"kind":"MethodDeclaration","id":0,"name":"sdist","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Calculates the squared distance between the vectors","tags":{"param":["The vector","The other vector"],"returns":["The distance between the vectors"]}}}],"len":[{"kind":"MethodDeclaration","id":0,"name":"len","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get length of the vector","tags":{"since":["v3000.0"]}}},{"kind":"MethodDeclaration","id":0,"name":"len","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Calculates the length of the vector","tags":{"param":["The vector"],"returns":["The length of the vector"]}}}],"slen":[{"kind":"MethodDeclaration","id":0,"name":"slen","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get squared length of the vector","tags":{"since":["v3000.0"]}}},{"kind":"MethodDeclaration","id":0,"name":"slen","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Calculates the squared length of the vector","tags":{"param":["The vector"],"returns":["The squared length of the vector"]}}}],"unit":[{"kind":"MethodDeclaration","id":0,"name":"unit","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Get the unit vector (length of 1).","tags":{}}},{"kind":"MethodDeclaration","id":0,"name":"unit","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"out","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"normal":[{"kind":"MethodDeclaration","id":0,"name":"normal","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Get the perpendicular vector.","tags":{}}},{"kind":"MethodDeclaration","id":0,"name":"normal","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"out","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"reflect":[{"kind":"MethodDeclaration","id":0,"name":"reflect","parameters":[{"kind":"Parameter","id":0,"name":"normal","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Get the reflection of a vector with a normal.","tags":{"since":["v3000.0"]}}}],"project":[{"kind":"MethodDeclaration","id":0,"name":"project","parameters":[{"kind":"Parameter","id":0,"name":"on","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Get the projection of a vector onto another vector.","tags":{"since":["v3000.0"]}}}],"reject":[{"kind":"MethodDeclaration","id":0,"name":"reject","parameters":[{"kind":"Parameter","id":0,"name":"on","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Get the rejection of a vector onto another vector.","tags":{"since":["v3000.0"]}}}],"rotate":[{"kind":"MethodDeclaration","id":0,"name":"rotate","parameters":[{"kind":"Parameter","id":0,"name":"vecOrAngle","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"NumberKeyword","id":0}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"MethodDeclaration","id":0,"name":"rotate","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"dir","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"out","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Calculates the rotated vector","tags":{"param":["The vector","The rotation vector","The rotated vector"],"returns":["The rotated vector"]}}}],"rotateByAngle":[{"kind":"MethodDeclaration","id":0,"name":"rotateByAngle","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"angle","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"out","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Calculates the rotated vector","tags":{"param":["The vector","The angle in radians","The rotated vector"],"returns":["The rotated vector"]}}}],"invRotate":[{"kind":"MethodDeclaration","id":0,"name":"invRotate","parameters":[{"kind":"Parameter","id":0,"name":"vecOrAngle","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"NumberKeyword","id":0}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"inverseRotate":[{"kind":"MethodDeclaration","id":0,"name":"inverseRotate","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"dir","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"out","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Calculates the inverse rotated vector","tags":{"param":["The vector","The rotation vector","The rotated vector"],"returns":["The rotated vector"]}}}],"dot":[{"kind":"MethodDeclaration","id":0,"name":"dot","parameters":[{"kind":"Parameter","id":0,"name":"p2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get the dot product with another vector.","tags":{}}},{"kind":"MethodDeclaration","id":0,"name":"dot","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get the dot product between 2 vectors.","tags":{"since":["v3000.0"]}}}],"cross":[{"kind":"MethodDeclaration","id":0,"name":"cross","parameters":[{"kind":"Parameter","id":0,"name":"p2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get the cross product with another vector.","tags":{"since":["v3000.0"]}}},{"kind":"MethodDeclaration","id":0,"name":"cross","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get the cross product between 2 vectors.","tags":{"since":["v3000.0"]}}}],"angle":[{"kind":"MethodDeclaration","id":0,"name":"angle","parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"TypeReference","id":0,"typeName":"Vec2Args"}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get the angle of the vector in degrees.","tags":{}}}],"toAngle":[{"kind":"MethodDeclaration","id":0,"name":"toAngle","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Calculates the angle represented by the vector in radians","tags":{"param":["The vector"],"returns":["Angle represented by the vector in radians"]}}}],"angleBetween":[{"kind":"MethodDeclaration","id":0,"name":"angleBetween","parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"TypeReference","id":0,"typeName":"Vec2Args"}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get the angle between this vector and another vector.","tags":{"since":["v3000.0"]}}},{"kind":"MethodDeclaration","id":0,"name":"angleBetween","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Calculates the angle between the vectors in radians","tags":{"param":["First vector","Second vector"],"returns":["Angle between the vectors in radians"]}}}],"lerp":[{"kind":"MethodDeclaration","id":0,"name":"lerp","parameters":[{"kind":"Parameter","id":0,"name":"dest","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Linear interpolate to a destination vector (for positions).","tags":{}}},{"kind":"MethodDeclaration","id":0,"name":"lerp","parameters":[{"kind":"Parameter","id":0,"name":"src","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"dst","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"out","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Linear interpolate src and dst by t","tags":{"param":["First vector","Second vector","Percentage","The linear interpolation between src and dst by t"],"returns":["The linear interpolation between src and dst by t"]}}}],"slerp":[{"kind":"MethodDeclaration","id":0,"name":"slerp","parameters":[{"kind":"Parameter","id":0,"name":"dest","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Spherical linear interpolate to a destination vector (for rotations).","tags":{"since":["v3000.0"]}}},{"kind":"MethodDeclaration","id":0,"name":"slerp","parameters":[{"kind":"Parameter","id":0,"name":"src","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"dst","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"out","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Spherical interpolate src and dst by t","tags":{"param":["First vector","Second vector","Percentage","The spherical interpolation between src and dst by t"],"returns":["The spherical interpolation between src and dst by t"]}}}],"isZero":[{"kind":"MethodDeclaration","id":0,"name":"isZero","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If the vector (x, y) is zero.","tags":{"since":["v3000.0"]}}}],"toFixed":[{"kind":"MethodDeclaration","id":0,"name":"toFixed","parameters":[{"kind":"Parameter","id":0,"name":"n","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"To n precision floating point.","tags":{}}}],"transform":[{"kind":"MethodDeclaration","id":0,"name":"transform","parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"Mat4"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Multiply by a Mat4.","tags":{"since":["v3000.0"]}}}],"eq":[{"kind":"MethodDeclaration","id":0,"name":"eq","parameters":[{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"See if one vector is equal to another.","tags":{"since":["v3000.0"]}}}],"bbox":[{"kind":"MethodDeclaration","id":0,"name":"bbox","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Rect"},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"Converts the vector to a "},{"kind":"JSDocLink","id":0,"name":"Rect","text":"`Rect()`"},{"kind":"JSDocText","id":0,"text":" with the vector as the origin."}],"tags":{"since":["v3000.0."]}}}],"toArray":[{"kind":"MethodDeclaration","id":0,"name":"toArray","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Array","typeArguments":[{"kind":"NumberKeyword","id":0}]},"jsDoc":{"doc":"Converts the vector to an array.","tags":{"since":["v3001.0"]}}}]},"jsDoc":{"doc":"A 2D vector.","tags":{"group":["Math"]}}}],"Quad":[{"kind":"ClassDeclaration","id":0,"name":"Quad","members":{"x":[{"kind":"PropertyDeclaration","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}}],"y":[{"kind":"PropertyDeclaration","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"w":[{"kind":"PropertyDeclaration","id":0,"name":"w","type":{"kind":"NumberKeyword","id":0}}],"h":[{"kind":"PropertyDeclaration","id":0,"name":"h","type":{"kind":"NumberKeyword","id":0}}],"scale":[{"kind":"MethodDeclaration","id":0,"name":"scale","parameters":[{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Quad"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Quad"}}],"pos":[{"kind":"MethodDeclaration","id":0,"name":"pos","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"clone":[{"kind":"MethodDeclaration","id":0,"name":"clone","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Quad"}}],"eq":[{"kind":"MethodDeclaration","id":0,"name":"eq","parameters":[{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Quad"}}],"type":{"kind":"BooleanKeyword","id":0}}]},"jsDoc":{"tags":{"group":["Math"]}}}],"Mat2":[{"kind":"ClassDeclaration","id":0,"name":"Mat2","members":{"a":[{"kind":"PropertyDeclaration","id":0,"name":"a","type":{"kind":"NumberKeyword","id":0}}],"b":[{"kind":"PropertyDeclaration","id":0,"name":"b","type":{"kind":"NumberKeyword","id":0}}],"c":[{"kind":"PropertyDeclaration","id":0,"name":"c","type":{"kind":"NumberKeyword","id":0}}],"d":[{"kind":"PropertyDeclaration","id":0,"name":"d","type":{"kind":"NumberKeyword","id":0}}],"mul":[{"kind":"MethodDeclaration","id":0,"name":"mul","parameters":[{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Mat2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat2"}}],"transform":[{"kind":"MethodDeclaration","id":0,"name":"transform","parameters":[{"kind":"Parameter","id":0,"name":"point","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"inverse":[{"kind":"GetAccessor","id":0,"name":"inverse","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Mat2"}}],"transpose":[{"kind":"GetAccessor","id":0,"name":"transpose","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Mat2"}}],"eigenvalues":[{"kind":"GetAccessor","id":0,"name":"eigenvalues","parameters":[],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}}],"eigenvectors":[{"kind":"MethodDeclaration","id":0,"name":"eigenvectors","parameters":[{"kind":"Parameter","id":0,"name":"e1","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"e2","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}}}],"det":[{"kind":"GetAccessor","id":0,"name":"det","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"trace":[{"kind":"GetAccessor","id":0,"name":"trace","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"rotation":[{"kind":"MethodDeclaration","id":0,"name":"rotation","parameters":[{"kind":"Parameter","id":0,"name":"radians","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat2"}}],"scale":[{"kind":"MethodDeclaration","id":0,"name":"scale","parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat2"}}]}}],"Mat23":[{"kind":"ClassDeclaration","id":0,"name":"Mat23","members":{"a":[{"kind":"PropertyDeclaration","id":0,"name":"a","type":{"kind":"NumberKeyword","id":0}}],"b":[{"kind":"PropertyDeclaration","id":0,"name":"b","type":{"kind":"NumberKeyword","id":0}}],"c":[{"kind":"PropertyDeclaration","id":0,"name":"c","type":{"kind":"NumberKeyword","id":0}}],"d":[{"kind":"PropertyDeclaration","id":0,"name":"d","type":{"kind":"NumberKeyword","id":0}}],"e":[{"kind":"PropertyDeclaration","id":0,"name":"e","type":{"kind":"NumberKeyword","id":0}}],"f":[{"kind":"PropertyDeclaration","id":0,"name":"f","type":{"kind":"NumberKeyword","id":0}}],"fromMat2":[{"kind":"MethodDeclaration","id":0,"name":"fromMat2","parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"Mat2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"toMat2":[{"kind":"MethodDeclaration","id":0,"name":"toMat2","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Mat2"}}],"fromTranslation":[{"kind":"MethodDeclaration","id":0,"name":"fromTranslation","parameters":[{"kind":"Parameter","id":0,"name":"t","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"fromRotation":[{"kind":"MethodDeclaration","id":0,"name":"fromRotation","parameters":[{"kind":"Parameter","id":0,"name":"radians","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"fromScale":[{"kind":"MethodDeclaration","id":0,"name":"fromScale","parameters":[{"kind":"Parameter","id":0,"name":"s","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"clone":[{"kind":"MethodDeclaration","id":0,"name":"clone","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"setMat23":[{"kind":"MethodDeclaration","id":0,"name":"setMat23","parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"type":{"kind":"VoidKeyword","id":0}}],"setIdentity":[{"kind":"MethodDeclaration","id":0,"name":"setIdentity","parameters":[],"type":{"kind":"VoidKeyword","id":0}}],"mul":[{"kind":"MethodDeclaration","id":0,"name":"mul","parameters":[{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"translateSelfV":[{"kind":"MethodDeclaration","id":0,"name":"translateSelfV","parameters":[{"kind":"Parameter","id":0,"name":"t","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"translateSelf":[{"kind":"MethodDeclaration","id":0,"name":"translateSelf","parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"rotateSelf":[{"kind":"MethodDeclaration","id":0,"name":"rotateSelf","parameters":[{"kind":"Parameter","id":0,"name":"degrees","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"scaleSelfV":[{"kind":"MethodDeclaration","id":0,"name":"scaleSelfV","parameters":[{"kind":"Parameter","id":0,"name":"s","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"scaleSelf":[{"kind":"MethodDeclaration","id":0,"name":"scaleSelf","parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"mulSelf":[{"kind":"MethodDeclaration","id":0,"name":"mulSelf","parameters":[{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"type":{"kind":"VoidKeyword","id":0}}],"transform":[{"kind":"MethodDeclaration","id":0,"name":"transform","parameters":[{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"transformPoint":[{"kind":"MethodDeclaration","id":0,"name":"transformPoint","parameters":[{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"o","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"transformVector":[{"kind":"MethodDeclaration","id":0,"name":"transformVector","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"o","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"det":[{"kind":"GetAccessor","id":0,"name":"det","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"inverse":[{"kind":"GetAccessor","id":0,"name":"inverse","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"getTranslation":[{"kind":"MethodDeclaration","id":0,"name":"getTranslation","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"getRotation":[{"kind":"MethodDeclaration","id":0,"name":"getRotation","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"getScale":[{"kind":"MethodDeclaration","id":0,"name":"getScale","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}]}}],"Mat4":[{"kind":"ClassDeclaration","id":0,"name":"Mat4","members":{"m":[{"kind":"PropertyDeclaration","id":0,"name":"m","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}}],"translate":[{"kind":"MethodDeclaration","id":0,"name":"translate","parameters":[{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat4"}},{"kind":"MethodDeclaration","id":0,"name":"translate","parameters":[{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"ThisType","id":0}}],"scale":[{"kind":"MethodDeclaration","id":0,"name":"scale","parameters":[{"kind":"Parameter","id":0,"name":"s","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat4"}},{"kind":"MethodDeclaration","id":0,"name":"scale","parameters":[{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"ThisType","id":0}}],"rotateX":[{"kind":"MethodDeclaration","id":0,"name":"rotateX","parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat4"}}],"rotateY":[{"kind":"MethodDeclaration","id":0,"name":"rotateY","parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat4"}}],"rotateZ":[{"kind":"MethodDeclaration","id":0,"name":"rotateZ","parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat4"}}],"rotate":[{"kind":"MethodDeclaration","id":0,"name":"rotate","parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat4"}}],"mult":[{"kind":"MethodDeclaration","id":0,"name":"mult","parameters":[{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Mat4"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Mat4"}}],"multVec2":[{"kind":"MethodDeclaration","id":0,"name":"multVec2","parameters":[{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"getTranslation":[{"kind":"MethodDeclaration","id":0,"name":"getTranslation","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"getScale":[{"kind":"MethodDeclaration","id":0,"name":"getScale","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"getRotation":[{"kind":"MethodDeclaration","id":0,"name":"getRotation","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"getSkew":[{"kind":"MethodDeclaration","id":0,"name":"getSkew","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"invert":[{"kind":"MethodDeclaration","id":0,"name":"invert","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Mat4"}}],"clone":[{"kind":"MethodDeclaration","id":0,"name":"clone","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Mat4"}}]},"jsDoc":{"tags":{"group":["Math"]}}}],"RNG":[{"kind":"ClassDeclaration","id":0,"name":"RNG","members":{"seed":[{"kind":"PropertyDeclaration","id":0,"name":"seed","type":{"kind":"NumberKeyword","id":0}}],"gen":[{"kind":"MethodDeclaration","id":0,"name":"gen","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"genNumber":[{"kind":"MethodDeclaration","id":0,"name":"genNumber","parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"b","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0}}],"genVec2":[{"kind":"MethodDeclaration","id":0,"name":"genVec2","parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"b","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"genColor":[{"kind":"MethodDeclaration","id":0,"name":"genColor","parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"TypeReference","id":0,"typeName":"Color"}},{"kind":"Parameter","id":0,"name":"b","type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"genAny":[{"kind":"MethodDeclaration","id":0,"name":"genAny","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T","default":{"kind":"TypeReference","id":0,"typeName":"RNGValue"}}],"parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"UnionType","id":0,"types":[{"kind":"TupleType","id":0,"elements":[]},{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"T"}]},{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"T"},{"kind":"TypeReference","id":0,"typeName":"T"}]}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"T"}}]},"jsDoc":{"tags":{"group":["Math"]}}}],"ShapeType":[{"kind":"TypeAliasDeclaration","id":0,"name":"ShapeType","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Point"},{"kind":"TypeReference","id":0,"typeName":"Circle"},{"kind":"TypeReference","id":0,"typeName":"Line"},{"kind":"TypeReference","id":0,"typeName":"Rect"},{"kind":"TypeReference","id":0,"typeName":"Polygon"},{"kind":"TypeReference","id":0,"typeName":"Ellipse"}]},"jsDoc":{"tags":{"group":["Math"]}}}],"RaycastHit":[{"kind":"TypeAliasDeclaration","id":0,"name":"RaycastHit","type":{"kind":"TypeLiteral","id":0,"members":{"fraction":[{"kind":"PropertySignature","id":0,"name":"fraction","type":{"kind":"NumberKeyword","id":0}}],"normal":[{"kind":"PropertySignature","id":0,"name":"normal","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"point":[{"kind":"PropertySignature","id":0,"name":"point","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"gridPos":[{"kind":"PropertySignature","id":0,"name":"gridPos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"questionToken":true}],"object":[{"kind":"PropertySignature","id":0,"name":"object","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"},"questionToken":true}]}},"jsDoc":{"tags":{"group":["Math"]}}}],"RaycastResult":[{"kind":"TypeAliasDeclaration","id":0,"name":"RaycastResult","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"RaycastHit"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"tags":{"group":["Math"]}}}],"Point":[{"kind":"ClassDeclaration","id":0,"name":"Point","members":{"pt":[{"kind":"PropertyDeclaration","id":0,"name":"pt","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"transform":[{"kind":"MethodDeclaration","id":0,"name":"transform","parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Point"}}],"bbox":[{"kind":"MethodDeclaration","id":0,"name":"bbox","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Rect"}}],"area":[{"kind":"MethodDeclaration","id":0,"name":"area","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"clone":[{"kind":"MethodDeclaration","id":0,"name":"clone","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Point"}}],"collides":[{"kind":"MethodDeclaration","id":0,"name":"collides","parameters":[{"kind":"Parameter","id":0,"name":"shape","type":{"kind":"TypeReference","id":0,"typeName":"ShapeType"}}],"type":{"kind":"BooleanKeyword","id":0}}],"contains":[{"kind":"MethodDeclaration","id":0,"name":"contains","parameters":[{"kind":"Parameter","id":0,"name":"point","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"BooleanKeyword","id":0}}],"raycast":[{"kind":"MethodDeclaration","id":0,"name":"raycast","parameters":[{"kind":"Parameter","id":0,"name":"origin","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"direction","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"RaycastResult"}}],"random":[{"kind":"MethodDeclaration","id":0,"name":"random","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}]}}],"Line":[{"kind":"ClassDeclaration","id":0,"name":"Line","members":{"p1":[{"kind":"PropertyDeclaration","id":0,"name":"p1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"p2":[{"kind":"PropertyDeclaration","id":0,"name":"p2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"transform":[{"kind":"MethodDeclaration","id":0,"name":"transform","parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Line"}}],"bbox":[{"kind":"MethodDeclaration","id":0,"name":"bbox","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Rect"}}],"area":[{"kind":"MethodDeclaration","id":0,"name":"area","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"clone":[{"kind":"MethodDeclaration","id":0,"name":"clone","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Line"}}],"collides":[{"kind":"MethodDeclaration","id":0,"name":"collides","parameters":[{"kind":"Parameter","id":0,"name":"shape","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"ShapeType"},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]}}],"type":{"kind":"BooleanKeyword","id":0}}],"contains":[{"kind":"MethodDeclaration","id":0,"name":"contains","parameters":[{"kind":"Parameter","id":0,"name":"point","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"BooleanKeyword","id":0}}],"raycast":[{"kind":"MethodDeclaration","id":0,"name":"raycast","parameters":[{"kind":"Parameter","id":0,"name":"origin","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"direction","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"RaycastResult"}}],"random":[{"kind":"MethodDeclaration","id":0,"name":"random","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}]},"jsDoc":{"tags":{"group":["Math"]}}}],"Rect":[{"kind":"ClassDeclaration","id":0,"name":"Rect","members":{"pos":[{"kind":"PropertyDeclaration","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"width":[{"kind":"PropertyDeclaration","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0}}],"height":[{"kind":"PropertyDeclaration","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0}}],"fromPoints":[{"kind":"MethodDeclaration","id":0,"name":"fromPoints","parameters":[{"kind":"Parameter","id":0,"name":"p1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"p2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Rect"}}],"center":[{"kind":"MethodDeclaration","id":0,"name":"center","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"points":[{"kind":"MethodDeclaration","id":0,"name":"points","parameters":[],"type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]}}],"transform":[{"kind":"MethodDeclaration","id":0,"name":"transform","parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Polygon"}}],"bbox":[{"kind":"MethodDeclaration","id":0,"name":"bbox","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Rect"}}],"area":[{"kind":"MethodDeclaration","id":0,"name":"area","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"clone":[{"kind":"MethodDeclaration","id":0,"name":"clone","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Rect"}}],"distToPoint":[{"kind":"MethodDeclaration","id":0,"name":"distToPoint","parameters":[{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"NumberKeyword","id":0}}],"sdistToPoint":[{"kind":"MethodDeclaration","id":0,"name":"sdistToPoint","parameters":[{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"NumberKeyword","id":0}}],"collides":[{"kind":"MethodDeclaration","id":0,"name":"collides","parameters":[{"kind":"Parameter","id":0,"name":"shape","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"ShapeType"},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]}}],"type":{"kind":"BooleanKeyword","id":0}}],"contains":[{"kind":"MethodDeclaration","id":0,"name":"contains","parameters":[{"kind":"Parameter","id":0,"name":"point","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"BooleanKeyword","id":0}}],"raycast":[{"kind":"MethodDeclaration","id":0,"name":"raycast","parameters":[{"kind":"Parameter","id":0,"name":"origin","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"direction","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"RaycastResult"}}],"random":[{"kind":"MethodDeclaration","id":0,"name":"random","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}]},"jsDoc":{"tags":{"group":["Math"]}}}],"Circle":[{"kind":"ClassDeclaration","id":0,"name":"Circle","members":{"center":[{"kind":"PropertyDeclaration","id":0,"name":"center","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"radius":[{"kind":"PropertyDeclaration","id":0,"name":"radius","type":{"kind":"NumberKeyword","id":0}}],"transform":[{"kind":"MethodDeclaration","id":0,"name":"transform","parameters":[{"kind":"Parameter","id":0,"name":"tr","type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Ellipse"}}],"bbox":[{"kind":"MethodDeclaration","id":0,"name":"bbox","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Rect"}}],"area":[{"kind":"MethodDeclaration","id":0,"name":"area","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"clone":[{"kind":"MethodDeclaration","id":0,"name":"clone","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Circle"}}],"collides":[{"kind":"MethodDeclaration","id":0,"name":"collides","parameters":[{"kind":"Parameter","id":0,"name":"shape","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"ShapeType"},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]}}],"type":{"kind":"BooleanKeyword","id":0}}],"contains":[{"kind":"MethodDeclaration","id":0,"name":"contains","parameters":[{"kind":"Parameter","id":0,"name":"point","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"BooleanKeyword","id":0}}],"raycast":[{"kind":"MethodDeclaration","id":0,"name":"raycast","parameters":[{"kind":"Parameter","id":0,"name":"origin","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"direction","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"RaycastResult"}}],"random":[{"kind":"MethodDeclaration","id":0,"name":"random","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}]},"jsDoc":{"tags":{"group":["Math"]}}}],"Ellipse":[{"kind":"ClassDeclaration","id":0,"name":"Ellipse","members":{"center":[{"kind":"PropertyDeclaration","id":0,"name":"center","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"radiusX":[{"kind":"PropertyDeclaration","id":0,"name":"radiusX","type":{"kind":"NumberKeyword","id":0}}],"radiusY":[{"kind":"PropertyDeclaration","id":0,"name":"radiusY","type":{"kind":"NumberKeyword","id":0}}],"angle":[{"kind":"PropertyDeclaration","id":0,"name":"angle","type":{"kind":"NumberKeyword","id":0}}],"fromMat2":[{"kind":"MethodDeclaration","id":0,"name":"fromMat2","parameters":[{"kind":"Parameter","id":0,"name":"tr","type":{"kind":"TypeReference","id":0,"typeName":"Mat2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Ellipse"}}],"toMat2":[{"kind":"MethodDeclaration","id":0,"name":"toMat2","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Mat2"}}],"transform":[{"kind":"MethodDeclaration","id":0,"name":"transform","parameters":[{"kind":"Parameter","id":0,"name":"tr","type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Ellipse"}}],"bbox":[{"kind":"MethodDeclaration","id":0,"name":"bbox","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Rect"}}],"area":[{"kind":"MethodDeclaration","id":0,"name":"area","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"clone":[{"kind":"MethodDeclaration","id":0,"name":"clone","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Ellipse"}}],"collides":[{"kind":"MethodDeclaration","id":0,"name":"collides","parameters":[{"kind":"Parameter","id":0,"name":"shape","type":{"kind":"TypeReference","id":0,"typeName":"ShapeType"}}],"type":{"kind":"BooleanKeyword","id":0}}],"contains":[{"kind":"MethodDeclaration","id":0,"name":"contains","parameters":[{"kind":"Parameter","id":0,"name":"point","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"BooleanKeyword","id":0}}],"raycast":[{"kind":"MethodDeclaration","id":0,"name":"raycast","parameters":[{"kind":"Parameter","id":0,"name":"origin","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"direction","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"RaycastResult"}}],"random":[{"kind":"MethodDeclaration","id":0,"name":"random","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}]},"jsDoc":{"tags":{"group":["Math"]}}}],"Polygon":[{"kind":"ClassDeclaration","id":0,"name":"Polygon","members":{"pts":[{"kind":"PropertyDeclaration","id":0,"name":"pts","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}}],"transform":[{"kind":"MethodDeclaration","id":0,"name":"transform","parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Polygon"}}],"bbox":[{"kind":"MethodDeclaration","id":0,"name":"bbox","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Rect"}}],"area":[{"kind":"MethodDeclaration","id":0,"name":"area","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"clone":[{"kind":"MethodDeclaration","id":0,"name":"clone","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Polygon"}}],"collides":[{"kind":"MethodDeclaration","id":0,"name":"collides","parameters":[{"kind":"Parameter","id":0,"name":"shape","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"ShapeType"},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]}}],"type":{"kind":"BooleanKeyword","id":0}}],"contains":[{"kind":"MethodDeclaration","id":0,"name":"contains","parameters":[{"kind":"Parameter","id":0,"name":"point","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"BooleanKeyword","id":0}}],"raycast":[{"kind":"MethodDeclaration","id":0,"name":"raycast","parameters":[{"kind":"Parameter","id":0,"name":"origin","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"direction","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"RaycastResult"}}],"random":[{"kind":"MethodDeclaration","id":0,"name":"random","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"cut":[{"kind":"MethodDeclaration","id":0,"name":"cut","parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"b","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TupleType","id":0,"elements":[{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Polygon"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Polygon"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}]}}]},"jsDoc":{"tags":{"group":["Math"]}}}],"StepPosition":[{"kind":"TypeAliasDeclaration","id":0,"name":"StepPosition","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"jump-start","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"jump-end","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"jump-none","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"jump-both","hasExtendedUnicodeEscape":false}}]}}],"DrawCurveOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"DrawCurveOpt","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"RenderProps"},{"kind":"TypeLiteral","id":0,"members":{"segments":[{"kind":"PropertySignature","id":0,"name":"segments","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The amount of line segments to draw.","tags":{}}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The width of the line.","tags":{}}}]}}]}}],"DrawBezierOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"DrawBezierOpt","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"DrawCurveOpt"},{"kind":"TypeLiteral","id":0,"members":{"pt1":[{"kind":"PropertySignature","id":0,"name":"pt1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"The first point.","tags":{}}}],"pt2":[{"kind":"PropertySignature","id":0,"name":"pt2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"The the first control point.","tags":{}}}],"pt3":[{"kind":"PropertySignature","id":0,"name":"pt3","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"The the second control point.","tags":{}}}],"pt4":[{"kind":"PropertySignature","id":0,"name":"pt4","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"The second point.","tags":{}}}]}}]}}],"DrawCircleOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"DrawCircleOpt","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Omit","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"RenderProps"},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"angle","hasExtendedUnicodeEscape":false}}]},{"kind":"TypeLiteral","id":0,"members":{"radius":[{"kind":"PropertySignature","id":0,"name":"radius","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Radius of the circle.","tags":{}}}],"start":[{"kind":"PropertySignature","id":0,"name":"start","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Starting angle.","tags":{}}}],"fill":[{"kind":"PropertySignature","id":0,"name":"fill","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If fill the shape with color (set this to false if you only want an outline).","tags":{}}}],"gradient":[{"kind":"PropertySignature","id":0,"name":"gradient","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Color"},{"kind":"TypeReference","id":0,"typeName":"Color"}]},"questionToken":true,"jsDoc":{"doc":"Use gradient instead of solid color.","tags":{"since":["v3000.0"]}}}],"resolution":[{"kind":"PropertySignature","id":0,"name":"resolution","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Multiplier for circle vertices resolution (default 1)","tags":{}}}],"anchor":[{"kind":"PropertySignature","id":0,"name":"anchor","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Anchor"},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]},"questionToken":true,"jsDoc":{"doc":"The anchor point, or the pivot point. Default to \"topleft\".","tags":{}}}]}}]},"jsDoc":{"doc":"How the circle should look like.","tags":{}}}],"GfxCtx":[{"kind":"TypeAliasDeclaration","id":0,"name":"GfxCtx","type":{"kind":"TypeReference","id":0,"typeName":"ReturnType","typeArguments":[{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"initGfx"}}]}}],"Texture":[{"kind":"ClassDeclaration","id":0,"name":"Texture","members":{"ctx":[{"kind":"PropertyDeclaration","id":0,"name":"ctx","type":{"kind":"TypeReference","id":0,"typeName":"GfxCtx"}}],"src":[{"kind":"PropertyDeclaration","id":0,"name":"src","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}},{"kind":"TypeReference","id":0,"typeName":"ImageSource"}]}}],"glTex":[{"kind":"PropertyDeclaration","id":0,"name":"glTex","type":{"kind":"TypeReference","id":0,"typeName":"WebGLTexture"}}],"width":[{"kind":"PropertyDeclaration","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0}}],"height":[{"kind":"PropertyDeclaration","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0}}],"fromImage":[{"kind":"MethodDeclaration","id":0,"name":"fromImage","parameters":[{"kind":"Parameter","id":0,"name":"ctx","type":{"kind":"TypeReference","id":0,"typeName":"GfxCtx"}},{"kind":"Parameter","id":0,"name":"img","type":{"kind":"TypeReference","id":0,"typeName":"ImageSource"}},{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"TextureOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Texture"}}],"update":[{"kind":"MethodDeclaration","id":0,"name":"update","parameters":[{"kind":"Parameter","id":0,"name":"img","type":{"kind":"TypeReference","id":0,"typeName":"ImageSource"}},{"kind":"Parameter","id":0,"name":"x","questionToken":true,"type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}],"bind":[{"kind":"MethodDeclaration","id":0,"name":"bind","parameters":[],"type":{"kind":"VoidKeyword","id":0}}],"unbind":[{"kind":"MethodDeclaration","id":0,"name":"unbind","parameters":[],"type":{"kind":"VoidKeyword","id":0}}],"free":[{"kind":"MethodDeclaration","id":0,"name":"free","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Frees up texture memory. Call this once the texture is no longer being used to avoid memory leaks.","tags":{}}}]}}],"VertexFormat":[{"kind":"TypeAliasDeclaration","id":0,"name":"VertexFormat","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeLiteral","id":0,"members":{"size":[{"kind":"PropertySignature","id":0,"name":"size","type":{"kind":"NumberKeyword","id":0}}]}}}}],"BatchRenderer":[{"kind":"ClassDeclaration","id":0,"name":"BatchRenderer","members":{"ctx":[{"kind":"PropertyDeclaration","id":0,"name":"ctx","type":{"kind":"TypeReference","id":0,"typeName":"GfxCtx"}}],"glVBuf":[{"kind":"PropertyDeclaration","id":0,"name":"glVBuf","type":{"kind":"TypeReference","id":0,"typeName":"WebGLBuffer"}}],"glIBuf":[{"kind":"PropertyDeclaration","id":0,"name":"glIBuf","type":{"kind":"TypeReference","id":0,"typeName":"WebGLBuffer"}}],"vqueue":[{"kind":"PropertyDeclaration","id":0,"name":"vqueue","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}}],"iqueue":[{"kind":"PropertyDeclaration","id":0,"name":"iqueue","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}}],"stride":[{"kind":"PropertyDeclaration","id":0,"name":"stride","type":{"kind":"NumberKeyword","id":0}}],"maxVertices":[{"kind":"PropertyDeclaration","id":0,"name":"maxVertices","type":{"kind":"NumberKeyword","id":0}}],"maxIndices":[{"kind":"PropertyDeclaration","id":0,"name":"maxIndices","type":{"kind":"NumberKeyword","id":0}}],"vertexFormat":[{"kind":"PropertyDeclaration","id":0,"name":"vertexFormat","type":{"kind":"TypeReference","id":0,"typeName":"VertexFormat"}}],"numDraws":[{"kind":"PropertyDeclaration","id":0,"name":"numDraws","type":{"kind":"NumberKeyword","id":0}}],"curPrimitive":[{"kind":"PropertyDeclaration","id":0,"name":"curPrimitive","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"GLenum"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"curTex":[{"kind":"PropertyDeclaration","id":0,"name":"curTex","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Texture"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"curShader":[{"kind":"PropertyDeclaration","id":0,"name":"curShader","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Shader"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"curUniform":[{"kind":"PropertyDeclaration","id":0,"name":"curUniform","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Uniform"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"push":[{"kind":"MethodDeclaration","id":0,"name":"push","parameters":[{"kind":"Parameter","id":0,"name":"primitive","type":{"kind":"TypeReference","id":0,"typeName":"GLenum"}},{"kind":"Parameter","id":0,"name":"verts","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"indices","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"shader","type":{"kind":"TypeReference","id":0,"typeName":"Shader"}},{"kind":"Parameter","id":0,"name":"tex","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Texture"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}},{"kind":"Parameter","id":0,"name":"uniform","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Uniform"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"type":{"kind":"VoidKeyword","id":0}}],"flush":[{"kind":"MethodDeclaration","id":0,"name":"flush","parameters":[],"type":{"kind":"VoidKeyword","id":0}}],"free":[{"kind":"MethodDeclaration","id":0,"name":"free","parameters":[],"type":{"kind":"VoidKeyword","id":0}}]}}],"Mesh":[{"kind":"ClassDeclaration","id":0,"name":"Mesh","members":{"ctx":[{"kind":"PropertyDeclaration","id":0,"name":"ctx","type":{"kind":"TypeReference","id":0,"typeName":"GfxCtx"}}],"glVBuf":[{"kind":"PropertyDeclaration","id":0,"name":"glVBuf","type":{"kind":"TypeReference","id":0,"typeName":"WebGLBuffer"}}],"glIBuf":[{"kind":"PropertyDeclaration","id":0,"name":"glIBuf","type":{"kind":"TypeReference","id":0,"typeName":"WebGLBuffer"}}],"vertexFormat":[{"kind":"PropertyDeclaration","id":0,"name":"vertexFormat","type":{"kind":"TypeReference","id":0,"typeName":"VertexFormat"}}],"count":[{"kind":"PropertyDeclaration","id":0,"name":"count","type":{"kind":"NumberKeyword","id":0}}],"draw":[{"kind":"MethodDeclaration","id":0,"name":"draw","parameters":[{"kind":"Parameter","id":0,"name":"primitive","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"GLenum"}}],"type":{"kind":"VoidKeyword","id":0}}],"free":[{"kind":"MethodDeclaration","id":0,"name":"free","parameters":[],"type":{"kind":"VoidKeyword","id":0}}]}}],"initGfx":[{"kind":"FunctionDeclaration","id":0,"name":"initGfx","parameters":[{"kind":"Parameter","id":0,"name":"gl","type":{"kind":"TypeReference","id":0,"typeName":"WebGLRenderingContext"}},{"kind":"Parameter","id":0,"name":"opts","questionToken":true,"type":{"kind":"TypeLiteral","id":0,"members":{"texFilter":[{"kind":"PropertySignature","id":0,"name":"texFilter","type":{"kind":"TypeReference","id":0,"typeName":"TexFilter"},"questionToken":true}]}}}],"type":{"kind":"TypeLiteral","id":0,"members":{"gl":[{"kind":"PropertySignature","id":0,"name":"gl","type":{"kind":"TypeReference","id":0,"typeName":"WebGLRenderingContext"}}],"opts":[{"kind":"PropertySignature","id":0,"name":"opts","type":{"kind":"TypeLiteral","id":0,"members":{"texFilter":[{"kind":"PropertySignature","id":0,"name":"texFilter","type":{"kind":"TypeReference","id":0,"typeName":"TexFilter"},"questionToken":true}]}}}],"onDestroy":[{"kind":"PropertySignature","id":0,"name":"onDestroy","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"UnknownKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0}}}],"destroy":[{"kind":"PropertySignature","id":0,"name":"destroy","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushTexture2D":[{"kind":"PropertySignature","id":0,"name":"pushTexture2D","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLTexture"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popTexture2D":[{"kind":"PropertySignature","id":0,"name":"popTexture2D","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushArrayBuffer":[{"kind":"PropertySignature","id":0,"name":"pushArrayBuffer","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLBuffer"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popArrayBuffer":[{"kind":"PropertySignature","id":0,"name":"popArrayBuffer","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushElementArrayBuffer":[{"kind":"PropertySignature","id":0,"name":"pushElementArrayBuffer","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLBuffer"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popElementArrayBuffer":[{"kind":"PropertySignature","id":0,"name":"popElementArrayBuffer","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushFramebuffer":[{"kind":"PropertySignature","id":0,"name":"pushFramebuffer","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLFramebuffer"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popFramebuffer":[{"kind":"PropertySignature","id":0,"name":"popFramebuffer","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushRenderbuffer":[{"kind":"PropertySignature","id":0,"name":"pushRenderbuffer","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLRenderbuffer"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popRenderbuffer":[{"kind":"PropertySignature","id":0,"name":"popRenderbuffer","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushViewport":[{"kind":"PropertySignature","id":0,"name":"pushViewport","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeLiteral","id":0,"members":{"x":[{"kind":"PropertySignature","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}}],"y":[{"kind":"PropertySignature","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"w":[{"kind":"PropertySignature","id":0,"name":"w","type":{"kind":"NumberKeyword","id":0}}],"h":[{"kind":"PropertySignature","id":0,"name":"h","type":{"kind":"NumberKeyword","id":0}}]}}}],"type":{"kind":"VoidKeyword","id":0}}}],"popViewport":[{"kind":"PropertySignature","id":0,"name":"popViewport","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushProgram":[{"kind":"PropertySignature","id":0,"name":"pushProgram","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLProgram"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popProgram":[{"kind":"PropertySignature","id":0,"name":"popProgram","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"setVertexFormat":[{"kind":"PropertySignature","id":0,"name":"setVertexFormat","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"fmt","type":{"kind":"TypeReference","id":0,"typeName":"VertexFormat"}}],"type":{"kind":"VoidKeyword","id":0}}}]}}}],"GfxFont":[{"kind":"InterfaceDeclaration","id":0,"name":"GfxFont","members":{"tex":[{"kind":"PropertySignature","id":0,"name":"tex","type":{"kind":"TypeReference","id":0,"typeName":"Texture"}}],"map":[{"kind":"PropertySignature","id":0,"name":"map","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"Quad"}]}}],"size":[{"kind":"PropertySignature","id":0,"name":"size","type":{"kind":"NumberKeyword","id":0}}]}}],"BitmapFontData":[{"kind":"TypeAliasDeclaration","id":0,"name":"BitmapFontData","type":{"kind":"TypeReference","id":0,"typeName":"GfxFont"}}],"LoadBitmapFontOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"LoadBitmapFontOpt","members":{"chars":[{"kind":"PropertySignature","id":0,"name":"chars","type":{"kind":"StringKeyword","id":0},"questionToken":true}],"filter":[{"kind":"PropertySignature","id":0,"name":"filter","type":{"kind":"TypeReference","id":0,"typeName":"TexFilter"},"questionToken":true}],"outline":[{"kind":"PropertySignature","id":0,"name":"outline","type":{"kind":"NumberKeyword","id":0},"questionToken":true}]}}],"FontData":[{"kind":"ClassDeclaration","id":0,"name":"FontData","members":{"fontface":[{"kind":"PropertyDeclaration","id":0,"name":"fontface","type":{"kind":"TypeReference","id":0,"typeName":"FontFace"}}],"filter":[{"kind":"PropertyDeclaration","id":0,"name":"filter","type":{"kind":"TypeReference","id":0,"typeName":"TexFilter"}}],"outline":[{"kind":"PropertyDeclaration","id":0,"name":"outline","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Outline"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"size":[{"kind":"PropertyDeclaration","id":0,"name":"size","type":{"kind":"NumberKeyword","id":0}}]}}],"DrawTextOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"DrawTextOpt","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"RenderProps"},{"kind":"TypeLiteral","id":0,"members":{"text":[{"kind":"PropertySignature","id":0,"name":"text","type":{"kind":"StringKeyword","id":0},"jsDoc":{"doc":"The text to render.","tags":{}}}],"font":[{"kind":"PropertySignature","id":0,"name":"font","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"FontData"},{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"FontData"}]},{"kind":"TypeReference","id":0,"typeName":"BitmapFontData"},{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"BitmapFontData"}]}]},"questionToken":true,"jsDoc":{"doc":"The name of font to use.","tags":{}}}],"size":[{"kind":"PropertySignature","id":0,"name":"size","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The size of text (the height of each character).","tags":{}}}],"align":[{"kind":"PropertySignature","id":0,"name":"align","type":{"kind":"TypeReference","id":0,"typeName":"TextAlign"},"questionToken":true,"jsDoc":{"doc":"Text alignment (default \"left\")","tags":{"since":["v3000.0"]}}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The maximum width. Will wrap word around if exceed.","tags":{}}}],"lineSpacing":[{"kind":"PropertySignature","id":0,"name":"lineSpacing","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The gap between each line (only available for bitmap fonts).","tags":{"since":["v2000.2"]}}}],"letterSpacing":[{"kind":"PropertySignature","id":0,"name":"letterSpacing","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The gap between each character (only available for bitmap fonts).","tags":{"since":["v2000.2"]}}}],"anchor":[{"kind":"PropertySignature","id":0,"name":"anchor","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Anchor"},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]},"questionToken":true,"jsDoc":{"doc":"The anchor point, or the pivot point. Default to \"topleft\".","tags":{}}}],"transform":[{"kind":"PropertySignature","id":0,"name":"transform","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"CharTransform"},{"kind":"TypeReference","id":0,"typeName":"CharTransformFunc"}]},"questionToken":true,"jsDoc":{"doc":"Transform the pos, scale, rotation or color for each character based on the index or char (only available for bitmap fonts).","tags":{"since":["v2000.1"]}}}],"styles":[{"kind":"PropertySignature","id":0,"name":"styles","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"CharTransform"},{"kind":"TypeReference","id":0,"typeName":"CharTransformFunc"}]}]},"questionToken":true,"jsDoc":{"doc":"Stylesheet for styled chunks, in the syntax of \"this is a [stylename]styled[/stylename] word\" (only available for bitmap fonts).","tags":{"since":["v2000.2"]}}}],"indentAll":[{"kind":"PropertySignature","id":0,"name":"indentAll","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If true, any (whitespace) indent on the first line of the paragraph\nwill be copied to all of the lines for those parts that text-wrap.","tags":{}}}]}}]},"jsDoc":{"doc":"How the text should look like.","tags":{"group":["Draw"]}}}],"CharTransformFunc":[{"kind":"TypeAliasDeclaration","id":0,"name":"CharTransformFunc","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"idx","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"ch","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"CharTransform"}},"jsDoc":{"doc":"A function that returns a character transform config. Useful if you're generating dynamic styles.","tags":{}}}],"CharTransform":[{"kind":"InterfaceDeclaration","id":0,"name":"CharTransform","members":{"pos":[{"kind":"PropertySignature","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"questionToken":true,"jsDoc":{"doc":"Offset to apply to the position of the text character.\nShifts the character's position by the specified 2D vector.","tags":{}}}],"scale":[{"kind":"PropertySignature","id":0,"name":"scale","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"NumberKeyword","id":0}]},"questionToken":true,"jsDoc":{"doc":"Scale transformation to apply to the text character's current scale.\nWhen a number, it is scaled uniformly.\nGiven a 2D vector, it is scaled independently along the X and Y axis.","tags":{}}}],"angle":[{"kind":"PropertySignature","id":0,"name":"angle","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Increases the amount of degrees to rotate the text character.","tags":{}}}],"color":[{"kind":"PropertySignature","id":0,"name":"color","type":{"kind":"TypeReference","id":0,"typeName":"Color"},"questionToken":true,"jsDoc":{"doc":"Color transformation applied to the text character.\nMultiplies the current color with this color.","tags":{}}}],"opacity":[{"kind":"PropertySignature","id":0,"name":"opacity","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Opacity multiplication applied to the text character.\nFor example, an opacity of 0.4 with 2 set in the transformation, the resulting opacity will be 0.8 (0.4 × 2).","tags":{}}}],"override":[{"kind":"PropertySignature","id":0,"name":"override","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"If true, the styles applied by this specific "},{"kind":"JSDocLink","id":0,"text":""},{"kind":"JSDocText","id":0,"text":" entry transform\nwill override, rather than compose with, the default styles given in "},{"kind":"JSDocLink","id":0,"text":""},{"kind":"JSDocText","id":0,"text":" and by other\ncomponents' styles."}],"tags":{}}}]},"jsDoc":{"doc":"Describes how to transform each character.","tags":{"group":["Options"]}}}],"TextAlign":[{"kind":"TypeAliasDeclaration","id":0,"name":"TextAlign","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"center","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"left","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"right","hasExtendedUnicodeEscape":false}}]},"jsDoc":{"doc":"How the text should be aligned.","tags":{"group":["Draw"]}}}],"FormattedText":[{"kind":"TypeAliasDeclaration","id":0,"name":"FormattedText","type":{"kind":"TypeLiteral","id":0,"members":{"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0}}],"chars":[{"kind":"PropertySignature","id":0,"name":"chars","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"FormattedChar"}}}],"opt":[{"kind":"PropertySignature","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"DrawTextOpt"}}],"renderedText":[{"kind":"PropertySignature","id":0,"name":"renderedText","type":{"kind":"StringKeyword","id":0}}]}},"jsDoc":{"doc":"Formatted text with info on how and where to render each character.","tags":{}}}],"FormattedChar":[{"kind":"InterfaceDeclaration","id":0,"name":"FormattedChar","members":{"ch":[{"kind":"PropertySignature","id":0,"name":"ch","type":{"kind":"StringKeyword","id":0}}],"tex":[{"kind":"PropertySignature","id":0,"name":"tex","type":{"kind":"TypeReference","id":0,"typeName":"Texture"}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0}}],"quad":[{"kind":"PropertySignature","id":0,"name":"quad","type":{"kind":"TypeReference","id":0,"typeName":"Quad"}}],"pos":[{"kind":"PropertySignature","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"scale":[{"kind":"PropertySignature","id":0,"name":"scale","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"angle":[{"kind":"PropertySignature","id":0,"name":"angle","type":{"kind":"NumberKeyword","id":0}}],"color":[{"kind":"PropertySignature","id":0,"name":"color","type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"opacity":[{"kind":"PropertySignature","id":0,"name":"opacity","type":{"kind":"NumberKeyword","id":0}}]},"jsDoc":{"doc":"One formated character.","tags":{}}}],"DrawLineOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"DrawLineOpt","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Omit","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"RenderProps"},{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"angle","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"scale","hasExtendedUnicodeEscape":false}}]}]},{"kind":"TypeLiteral","id":0,"members":{"p1":[{"kind":"PropertySignature","id":0,"name":"p1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Starting point of the line.","tags":{}}}],"p2":[{"kind":"PropertySignature","id":0,"name":"p2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Ending point of the line.","tags":{}}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The width, or thickness of the line,","tags":{}}}]}}]},"jsDoc":{"doc":"How the line should look like.","tags":{}}}],"LineJoin":[{"kind":"TypeAliasDeclaration","id":0,"name":"LineJoin","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"none","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"round","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"bevel","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"miter","hasExtendedUnicodeEscape":false}}]}}],"LineCap":[{"kind":"TypeAliasDeclaration","id":0,"name":"LineCap","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"butt","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"round","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"square","hasExtendedUnicodeEscape":false}}]}}],"DrawLinesOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"DrawLinesOpt","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Omit","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"RenderProps"},{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"angle","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"scale","hasExtendedUnicodeEscape":false}}]}]},{"kind":"TypeLiteral","id":0,"members":{"pts":[{"kind":"PropertySignature","id":0,"name":"pts","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},"jsDoc":{"doc":"The points that should be connected with a line.","tags":{}}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The width, or thickness of the lines,","tags":{}}}],"radius":[{"kind":"PropertySignature","id":0,"name":"radius","type":{"kind":"UnionType","id":0,"types":[{"kind":"NumberKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}]},"questionToken":true,"jsDoc":{"doc":"The radius of each corner.","tags":{}}}],"join":[{"kind":"PropertySignature","id":0,"name":"join","type":{"kind":"TypeReference","id":0,"typeName":"LineJoin"},"questionToken":true,"jsDoc":{"doc":"Line join style (default \"none\").","tags":{}}}],"cap":[{"kind":"PropertySignature","id":0,"name":"cap","type":{"kind":"TypeReference","id":0,"typeName":"LineCap"},"questionToken":true,"jsDoc":{"doc":"Line cap style (default \"none\").","tags":{}}}],"miterLimit":[{"kind":"PropertySignature","id":0,"name":"miterLimit","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Maximum miter length, anything longer becomes bevel.","tags":{}}}]}}]},"jsDoc":{"doc":"How the lines should look like.","tags":{}}}],"DrawRectOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"DrawRectOpt","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"RenderProps"},{"kind":"TypeLiteral","id":0,"members":{"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Width of the rectangle.","tags":{}}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Height of the rectangle.","tags":{}}}],"gradient":[{"kind":"PropertySignature","id":0,"name":"gradient","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Color"},{"kind":"TypeReference","id":0,"typeName":"Color"}]},"questionToken":true,"jsDoc":{"doc":"Use gradient instead of solid color.","tags":{"since":["v3000.0"]}}}],"horizontal":[{"kind":"PropertySignature","id":0,"name":"horizontal","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If the gradient should be horizontal.","tags":{"since":["v3000.0"]}}}],"fill":[{"kind":"PropertySignature","id":0,"name":"fill","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If fill the shape with color (set this to false if you only want an outline).","tags":{}}}],"radius":[{"kind":"PropertySignature","id":0,"name":"radius","type":{"kind":"UnionType","id":0,"types":[{"kind":"NumberKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}]},"questionToken":true,"jsDoc":{"doc":"The radius of each corner.","tags":{}}}],"anchor":[{"kind":"PropertySignature","id":0,"name":"anchor","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Anchor"},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]},"questionToken":true,"jsDoc":{"doc":"The anchor point, or the pivot point. Default to \"topleft\".","tags":{}}}]}}]},"jsDoc":{"doc":"How the rectangle should look like.","tags":{}}}],"GjkCollisionResult":[{"kind":"TypeAliasDeclaration","id":0,"name":"GjkCollisionResult","type":{"kind":"TypeLiteral","id":0,"members":{"normal":[{"kind":"PropertySignature","id":0,"name":"normal","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"The direction the first shape needs to be moved to resolve the collision","tags":{}}}],"distance":[{"kind":"PropertySignature","id":0,"name":"distance","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"The distance the first shape needs to be moved to resolve the collision","tags":{}}}]}}}],"Graph":[{"kind":"InterfaceDeclaration","id":0,"name":"Graph","members":{"getNeighbours":[{"kind":"MethodSignature","id":0,"name":"getNeighbours","parameters":[{"kind":"Parameter","id":0,"name":"node","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}}],"getCost":[{"kind":"MethodSignature","id":0,"name":"getCost","parameters":[{"kind":"Parameter","id":0,"name":"node","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"neighbor","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0}}],"getHeuristic":[{"kind":"MethodSignature","id":0,"name":"getHeuristic","parameters":[{"kind":"Parameter","id":0,"name":"node","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"goal","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0}}],"getPath":[{"kind":"MethodSignature","id":0,"name":"getPath","parameters":[{"kind":"Parameter","id":0,"name":"from","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"to","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}}],"getWaypointPath":[{"kind":"MethodSignature","id":0,"name":"getWaypointPath","parameters":[{"kind":"Parameter","id":0,"name":"from","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"to","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"AnyKeyword","id":0}}],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}}]}}],"Grid":[{"kind":"ClassDeclaration","id":0,"name":"Grid","heritageClauses":[{"kind":"HeritageClause","id":0,"token":119,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Graph"}}]}],"members":{"_columns":[{"kind":"PropertyDeclaration","id":0,"name":"_columns"}],"_rows":[{"kind":"PropertyDeclaration","id":0,"name":"_rows"}],"_tileWidth":[{"kind":"PropertyDeclaration","id":0,"name":"_tileWidth"}],"_tileHeight":[{"kind":"PropertyDeclaration","id":0,"name":"_tileHeight"}],"_data":[{"kind":"PropertyDeclaration","id":0,"name":"_data"}],"_diagonals":[{"kind":"PropertyDeclaration","id":0,"name":"_diagonals"}],"_connMap":[{"kind":"PropertyDeclaration","id":0,"name":"_connMap"}],"_buildConnectivityMap":[{"kind":"PropertyDeclaration","id":0,"name":"_buildConnectivityMap"}],"_getTile":[{"kind":"PropertyDeclaration","id":0,"name":"_getTile"}],"_getTileX":[{"kind":"PropertyDeclaration","id":0,"name":"_getTileX"}],"_getTileY":[{"kind":"PropertyDeclaration","id":0,"name":"_getTileY"}],"getNeighbours":[{"kind":"MethodDeclaration","id":0,"name":"getNeighbours","parameters":[{"kind":"Parameter","id":0,"name":"tile","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}}],"getCost":[{"kind":"MethodDeclaration","id":0,"name":"getCost","parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"b","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0}}],"getHeuristic":[{"kind":"MethodDeclaration","id":0,"name":"getHeuristic","parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"b","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0}}],"getPath":[{"kind":"MethodDeclaration","id":0,"name":"getPath","parameters":[{"kind":"Parameter","id":0,"name":"start","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"goal","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}}],"getWaypointPath":[{"kind":"MethodDeclaration","id":0,"name":"getWaypointPath","parameters":[{"kind":"Parameter","id":0,"name":"start","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"goal","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}}]},"jsDoc":{"doc":"A grid is a graph consisting of connected grid cells","tags":{}}}],"NavEdge":[{"kind":"ClassDeclaration","id":0,"name":"NavEdge","members":{"a":[{"kind":"PropertyDeclaration","id":0,"name":"a","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"b":[{"kind":"PropertyDeclaration","id":0,"name":"b","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"polygon":[{"kind":"PropertyDeclaration","id":0,"name":"polygon","type":{"kind":"TypeReference","id":0,"typeName":"WeakRef","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"NavPolygon"}]}}],"isLeft":[{"kind":"MethodDeclaration","id":0,"name":"isLeft","parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0}}],"middle":[{"kind":"GetAccessor","id":0,"name":"middle","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}]}}],"NavPolygon":[{"kind":"ClassDeclaration","id":0,"name":"NavPolygon","members":{"_edges":[{"kind":"PropertyDeclaration","id":0,"name":"_edges"}],"_centroid":[{"kind":"PropertyDeclaration","id":0,"name":"_centroid"}],"_id":[{"kind":"PropertyDeclaration","id":0,"name":"_id"}],"id":[{"kind":"GetAccessor","id":0,"name":"id","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"edges":[{"kind":"SetAccessor","id":0,"name":"edges","parameters":[{"kind":"Parameter","id":0,"name":"edges","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"NavEdge"}}}]},{"kind":"GetAccessor","id":0,"name":"edges","parameters":[],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"NavEdge"}}}],"centroid":[{"kind":"GetAccessor","id":0,"name":"centroid","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"contains":[{"kind":"MethodDeclaration","id":0,"name":"contains","parameters":[{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"BooleanKeyword","id":0}}]}}],"NavMesh":[{"kind":"ClassDeclaration","id":0,"name":"NavMesh","heritageClauses":[{"kind":"HeritageClause","id":0,"token":119,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Graph"}}]}],"members":{"_polygons":[{"kind":"PropertyDeclaration","id":0,"name":"_polygons"}],"_pointCache":[{"kind":"PropertyDeclaration","id":0,"name":"_pointCache"}],"_edgeCache":[{"kind":"PropertyDeclaration","id":0,"name":"_edgeCache"}],"_addPoint":[{"kind":"PropertyDeclaration","id":0,"name":"_addPoint"}],"_addEdge":[{"kind":"PropertyDeclaration","id":0,"name":"_addEdge"}],"_findEdge":[{"kind":"PropertyDeclaration","id":0,"name":"_findEdge"}],"_findCommonEdge":[{"kind":"PropertyDeclaration","id":0,"name":"_findCommonEdge"}],"addPolygon":[{"kind":"MethodDeclaration","id":0,"name":"addPolygon","parameters":[{"kind":"Parameter","id":0,"name":"vertices","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}}],"type":{"kind":"TypeReference","id":0,"typeName":"NavPolygon"}}],"addRect":[{"kind":"MethodDeclaration","id":0,"name":"addRect","parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"size","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"NavPolygon"}}],"_getLocation":[{"kind":"PropertyDeclaration","id":0,"name":"_getLocation"}],"getNeighbours":[{"kind":"MethodDeclaration","id":0,"name":"getNeighbours","parameters":[{"kind":"Parameter","id":0,"name":"index","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}}],"getCost":[{"kind":"MethodDeclaration","id":0,"name":"getCost","parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"b","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0}}],"getHeuristic":[{"kind":"MethodDeclaration","id":0,"name":"getHeuristic","parameters":[{"kind":"Parameter","id":0,"name":"indexA","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"indexB","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0}}],"getPath":[{"kind":"MethodDeclaration","id":0,"name":"getPath","parameters":[{"kind":"Parameter","id":0,"name":"start","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"goal","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}}],"getWaypointPath":[{"kind":"MethodDeclaration","id":0,"name":"getWaypointPath","parameters":[{"kind":"Parameter","id":0,"name":"start","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"goal","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"AnyKeyword","id":0}}],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}}]}}],"SatResult":[{"kind":"TypeAliasDeclaration","id":0,"name":"SatResult","type":{"kind":"TypeLiteral","id":0,"members":{"normal":[{"kind":"PropertySignature","id":0,"name":"normal","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"distance":[{"kind":"PropertySignature","id":0,"name":"distance","type":{"kind":"NumberKeyword","id":0}}]}}}],"CircleComp":[{"kind":"InterfaceDeclaration","id":0,"name":"CircleComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"draw":[{"kind":"PropertySignature","id":0,"name":"draw","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"Comp"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"draw","hasExtendedUnicodeEscape":false}}}}],"radius":[{"kind":"PropertySignature","id":0,"name":"radius","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Radius of circle.","tags":{}}}],"renderArea":[{"kind":"MethodSignature","id":0,"name":"renderArea","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Circle"},"jsDoc":{"doc":"Render area of the circle.","tags":{"since":["v3000.0"]}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"circle","text":"`circle()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"CircleCompOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"CircleCompOpt","members":{"fill":[{"kind":"PropertySignature","id":0,"name":"fill","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"If fill the circle (useful if you only want to render outline with\n"},{"kind":"JSDocLink","id":0,"name":"outline","text":"`outline()`"},{"kind":"JSDocText","id":0,"text":" component)."}],"tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"Options for the "},{"kind":"JSDocLink","id":0,"name":"circle","text":"`circle()``"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"ColorComp":[{"kind":"InterfaceDeclaration","id":0,"name":"ColorComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"color":[{"kind":"PropertySignature","id":0,"name":"color","type":{"kind":"TypeReference","id":0,"typeName":"Color"}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"color","text":"`color()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"EllipseComp":[{"kind":"InterfaceDeclaration","id":0,"name":"EllipseComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"draw":[{"kind":"PropertySignature","id":0,"name":"draw","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"Comp"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"draw","hasExtendedUnicodeEscape":false}}}}],"radiusX":[{"kind":"PropertySignature","id":0,"name":"radiusX","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Semi-major axis of ellipse.","tags":{}}}],"radiusY":[{"kind":"PropertySignature","id":0,"name":"radiusY","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Semi-minor axis of ellipse.","tags":{}}}],"renderArea":[{"kind":"MethodSignature","id":0,"name":"renderArea","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Ellipse"},"jsDoc":{"doc":"Render area of the ellipse.","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"ellipse","text":"`ellipse()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"EllipseCompOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"EllipseCompOpt","members":{"fill":[{"kind":"PropertySignature","id":0,"name":"fill","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"If fill is false, the ellipse is not filled (useful if you only want to render outline with\n"},{"kind":"JSDocLink","id":0,"name":"outline","text":"`outline()`"},{"kind":"JSDocText","id":0,"text":" component)."}],"tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"Options for the "},{"kind":"JSDocLink","id":0,"name":"ellipse","text":"`ellipse()``"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"MaskComp":[{"kind":"InterfaceDeclaration","id":0,"name":"MaskComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"mask":[{"kind":"PropertySignature","id":0,"name":"mask","type":{"kind":"TypeReference","id":0,"typeName":"Mask"}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"mask","text":"`mask()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"OpacityComp":[{"kind":"InterfaceDeclaration","id":0,"name":"OpacityComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"opacity":[{"kind":"PropertySignature","id":0,"name":"opacity","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Opacity of the current object.","tags":{}}}],"fadeIn":[{"kind":"MethodSignature","id":0,"name":"fadeIn","parameters":[{"kind":"Parameter","id":0,"name":"time","questionToken":true,"type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"easeFunc","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"EaseFunc"}}],"type":{"kind":"TypeReference","id":0,"typeName":"TweenController"},"jsDoc":{"doc":"Fade in at the start.","tags":{}}}],"fadeOut":[{"kind":"MethodSignature","id":0,"name":"fadeOut","parameters":[{"kind":"Parameter","id":0,"name":"time","questionToken":true,"type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"easeFunc","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"EaseFunc"}}],"type":{"kind":"TypeReference","id":0,"typeName":"TweenController"},"jsDoc":{"doc":"Fade out at the start.","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"opacity","text":"`opacity()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"OutlineComp":[{"kind":"InterfaceDeclaration","id":0,"name":"OutlineComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"outline":[{"kind":"PropertySignature","id":0,"name":"outline","type":{"kind":"TypeReference","id":0,"typeName":"Outline"}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"outline","text":"`outline()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"EmitterOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"EmitterOpt","type":{"kind":"TypeLiteral","id":0,"members":{"shape":[{"kind":"PropertySignature","id":0,"name":"shape","type":{"kind":"TypeReference","id":0,"typeName":"ShapeType"},"questionToken":true,"jsDoc":{"doc":"Shape of the emitter. If given, particles spawn within this shape.","tags":{}}}],"lifetime":[{"kind":"PropertySignature","id":0,"name":"lifetime","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Lifetime of the emitter.","tags":{}}}],"rate":[{"kind":"PropertySignature","id":0,"name":"rate","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Rate of emission in particles per second if the emitter should emit out of itself.","tags":{}}}],"position":[{"kind":"PropertySignature","id":0,"name":"position","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Position (relative) of emission.","tags":{}}}],"direction":[{"kind":"PropertySignature","id":0,"name":"direction","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Direction of emission.","tags":{}}}],"spread":[{"kind":"PropertySignature","id":0,"name":"spread","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Spread (cone) of emission around the direction.","tags":{}}}]}},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"Options for the "},{"kind":"JSDocLink","id":0,"name":"particles","text":"`particles()`"},{"kind":"JSDocText","id":0,"text":"'s component"}],"tags":{}}}],"ParticlesOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"ParticlesOpt","type":{"kind":"TypeLiteral","id":0,"members":{"max":[{"kind":"PropertySignature","id":0,"name":"max","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Maximum number of simultaneously rendered particles.","tags":{}}}],"lifeTime":[{"kind":"PropertySignature","id":0,"name":"lifeTime","type":{"kind":"TupleType","id":0,"elements":[{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0}]},"questionToken":true,"jsDoc":{"doc":"Minimum and maximum lifetime of a particle in seconds.","tags":{}}}],"speed":[{"kind":"PropertySignature","id":0,"name":"speed","type":{"kind":"TupleType","id":0,"elements":[{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0}]},"questionToken":true,"jsDoc":{"doc":"Minimum and maximum speed of a particle in pixels per second.","tags":{}}}],"acceleration":[{"kind":"PropertySignature","id":0,"name":"acceleration","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]},"questionToken":true,"jsDoc":{"doc":"Minimum and maximum acceleration of a particle in pixels per second^2.","tags":{}}}],"damping":[{"kind":"PropertySignature","id":0,"name":"damping","type":{"kind":"TupleType","id":0,"elements":[{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0}]},"questionToken":true,"jsDoc":{"doc":"Minimum and maximum damping of a particle.","tags":{}}}],"angle":[{"kind":"PropertySignature","id":0,"name":"angle","type":{"kind":"TupleType","id":0,"elements":[{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0}]},"questionToken":true,"jsDoc":{"doc":"Minimum and maximum start angle of a particle.","tags":{}}}],"angularVelocity":[{"kind":"PropertySignature","id":0,"name":"angularVelocity","type":{"kind":"TupleType","id":0,"elements":[{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0}]},"questionToken":true,"jsDoc":{"doc":"Minimum and maximum angular velocity of a particle.","tags":{}}}],"scales":[{"kind":"PropertySignature","id":0,"name":"scales","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}},"questionToken":true,"jsDoc":{"doc":"Scale from start to end for a particle.","tags":{}}}],"colors":[{"kind":"PropertySignature","id":0,"name":"colors","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Color"}},"questionToken":true,"jsDoc":{"doc":"Colors from start to end for a particle.","tags":{}}}],"opacities":[{"kind":"PropertySignature","id":0,"name":"opacities","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}},"questionToken":true,"jsDoc":{"doc":"Opacity from start to end for a particle.","tags":{}}}],"quads":[{"kind":"PropertySignature","id":0,"name":"quads","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Quad"}},"questionToken":true,"jsDoc":{"doc":"Quads from start to end for a particle.","tags":{}}}],"texture":[{"kind":"PropertySignature","id":0,"name":"texture","type":{"kind":"TypeReference","id":0,"typeName":"Texture"},"jsDoc":{"doc":"Texture used for the particle.","tags":{}}}]}},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"Options for the "},{"kind":"JSDocLink","id":0,"name":"particles","text":"`particles()`"},{"kind":"JSDocText","id":0,"text":"'s component"}],"tags":{"group":["Component Types"]}}}],"ParticlesComp":[{"kind":"InterfaceDeclaration","id":0,"name":"ParticlesComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"emitter":[{"kind":"PropertySignature","id":0,"name":"emitter","type":{"kind":"TypeLiteral","id":0,"members":{"position":[{"kind":"PropertySignature","id":0,"name":"position","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Relative position of the emitter","tags":{}}}],"direction":[{"kind":"PropertySignature","id":0,"name":"direction","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Relative direction of the emitter","tags":{}}}]}}}],"emit":[{"kind":"MethodSignature","id":0,"name":"emit","parameters":[{"kind":"Parameter","id":0,"name":"n","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Emit a number of particles","tags":{}}}],"onEnd":[{"kind":"MethodSignature","id":0,"name":"onEnd","parameters":[{"kind":"Parameter","id":0,"name":"cb","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Called when the emitter expires","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"particles","text":"`particles()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"PolygonComp":[{"kind":"InterfaceDeclaration","id":0,"name":"PolygonComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"draw":[{"kind":"PropertySignature","id":0,"name":"draw","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"Comp"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"draw","hasExtendedUnicodeEscape":false}}}}],"pts":[{"kind":"PropertySignature","id":0,"name":"pts","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},"jsDoc":{"doc":"Points in the polygon.","tags":{}}}],"radius":[{"kind":"PropertySignature","id":0,"name":"radius","type":{"kind":"UnionType","id":0,"types":[{"kind":"NumberKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}]},"questionToken":true,"jsDoc":{"doc":"The radius of each corner.","tags":{}}}],"colors":[{"kind":"PropertySignature","id":0,"name":"colors","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Color"}},"questionToken":true,"jsDoc":{"doc":"The color of each vertex.","tags":{}}}],"uv":[{"kind":"PropertySignature","id":0,"name":"uv","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},"questionToken":true,"jsDoc":{"doc":"The uv of each vertex.","tags":{"since":["v3001.0"]}}}],"tex":[{"kind":"PropertySignature","id":0,"name":"tex","type":{"kind":"TypeReference","id":0,"typeName":"Texture"},"questionToken":true,"jsDoc":{"doc":"The texture used when uv coordinates are present.","tags":{"since":["v3001.0"]}}}],"renderArea":[{"kind":"MethodSignature","id":0,"name":"renderArea","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Polygon"}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"polygon","text":"`polygon()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"since":["v3001.0"],"group":["Component Types"]}}}],"PolygonCompOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"PolygonCompOpt","type":{"kind":"TypeReference","id":0,"typeName":"Omit","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"DrawPolygonOpt"},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"pts","hasExtendedUnicodeEscape":false}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"Options for the "},{"kind":"JSDocLink","id":0,"name":"polygon","text":"`polygon()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"RectComp":[{"kind":"InterfaceDeclaration","id":0,"name":"RectComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"draw":[{"kind":"PropertySignature","id":0,"name":"draw","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"Comp"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"draw","hasExtendedUnicodeEscape":false}}}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Width of rectangle.","tags":{}}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Height of rectangle.","tags":{}}}],"radius":[{"kind":"PropertySignature","id":0,"name":"radius","type":{"kind":"UnionType","id":0,"types":[{"kind":"NumberKeyword","id":0},{"kind":"TupleType","id":0,"elements":[{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0}]}]},"questionToken":true,"jsDoc":{"doc":"The radius of each corner.","tags":{}}}],"renderArea":[{"kind":"MethodSignature","id":0,"name":"renderArea","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Rect"},"jsDoc":{"tags":{"since":["v3000.0"]}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"rect","text":"`rect()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"RectCompOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"RectCompOpt","members":{"radius":[{"kind":"PropertySignature","id":0,"name":"radius","type":{"kind":"UnionType","id":0,"types":[{"kind":"NumberKeyword","id":0},{"kind":"TupleType","id":0,"elements":[{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0}]}]},"questionToken":true,"jsDoc":{"doc":"Radius of the rectangle corners.","tags":{}}}],"fill":[{"kind":"PropertySignature","id":0,"name":"fill","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If fill the rectangle (useful if you only want to render outline with outline() component).","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"Options for the "},{"kind":"JSDocLink","id":0,"name":"rect","text":"`rect()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"ShaderComp":[{"kind":"InterfaceDeclaration","id":0,"name":"ShaderComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"uniform":[{"kind":"PropertySignature","id":0,"name":"uniform","type":{"kind":"TypeReference","id":0,"typeName":"Uniform"},"questionToken":true}],"shader":[{"kind":"PropertySignature","id":0,"name":"shader","type":{"kind":"StringKeyword","id":0}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"shader","text":"`shader()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"Registry":[{"kind":"ClassDeclaration","id":0,"name":"Registry","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Map"},"typeArguments":[{"kind":"NumberKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"T"}]}]}],"members":{"lastID":[{"kind":"PropertyDeclaration","id":0,"name":"lastID"}],"push":[{"kind":"MethodDeclaration","id":0,"name":"push","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"T"}}],"type":{"kind":"NumberKeyword","id":0}}],"pushd":[{"kind":"MethodDeclaration","id":0,"name":"pushd","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"TypeReference","id":0,"typeName":"T"}}],"type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}]}}],"KEventController":[{"kind":"ClassDeclaration","id":0,"name":"KEventController","members":{"paused":[{"kind":"PropertyDeclaration","id":0,"name":"paused","type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If the event is paused","tags":{}}}],"cancel":[{"kind":"PropertyDeclaration","id":0,"name":"cancel","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}},"jsDoc":{"doc":"Cancel the event","tags":{}}}],"join":[{"kind":"MethodDeclaration","id":0,"name":"join","parameters":[{"kind":"Parameter","id":0,"name":"events","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}],"replace":[{"kind":"MethodDeclaration","id":0,"name":"replace","parameters":[{"kind":"Parameter","id":0,"name":"oldEv","type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}},{"kind":"Parameter","id":0,"name":"newEv","type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}]},"jsDoc":{"doc":"A controller for all events in KAPLAY.","tags":{"example":["```js\n// Create a new event\nconst logHi = onUpdate(() => {\n debug.log(\"hi\");\n});\n\n// Pause the event\nlogHi.paused = true;\n\n// Cancel the event\nlogHi.cancel();\n\n```"],"group":["Events"]}}}],"KEvent":[{"kind":"ClassDeclaration","id":0,"name":"KEvent","typeParameters":[{"kind":"TypeParameter","id":0,"name":"Args","constraint":{"kind":"ArrayType","id":0,"elementType":{"kind":"AnyKeyword","id":0}},"default":{"kind":"ArrayType","id":0,"elementType":{"kind":"AnyKeyword","id":0}}}],"members":{"cancellers":[{"kind":"PropertyDeclaration","id":0,"name":"cancellers"}],"handlers":[{"kind":"PropertyDeclaration","id":0,"name":"handlers"}],"add":[{"kind":"MethodDeclaration","id":0,"name":"add","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"TypeReference","id":0,"typeName":"Args"}}],"type":{"kind":"UnknownKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}],"addOnce":[{"kind":"MethodDeclaration","id":0,"name":"addOnce","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"ParenthesizedType","id":0,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Args"},{"kind":"TypeReference","id":0,"typeName":"PromiseLike","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"Args"}]}]}}}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}],"next":[{"kind":"MethodDeclaration","id":0,"name":"next","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Promise","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"Args"}]}}],"trigger":[{"kind":"MethodDeclaration","id":0,"name":"trigger","parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"TypeReference","id":0,"typeName":"Args"}}],"type":{"kind":"VoidKeyword","id":0}}],"numListeners":[{"kind":"MethodDeclaration","id":0,"name":"numListeners","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"clear":[{"kind":"MethodDeclaration","id":0,"name":"clear","parameters":[],"type":{"kind":"VoidKeyword","id":0}}]}}],"KEventHandler":[{"kind":"ClassDeclaration","id":0,"name":"KEventHandler","typeParameters":[{"kind":"TypeParameter","id":0,"name":"EventMap","constraint":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"AnyKeyword","id":0}}]}}],"members":{"handlers":[{"kind":"PropertyDeclaration","id":0,"name":"handlers"}],"registers":[{"kind":"PropertyDeclaration","id":0,"name":"registers","type":{"kind":"TypeReference","id":0,"typeName":"Partial","typeArguments":[{"kind":"MappedType","id":0,"typeParameter":{"kind":"TypeParameter","id":0,"name":"Name","constraint":{"kind":"TypeOperator","id":0,"operator":143,"type":{"kind":"TypeReference","id":0,"typeName":"EventMap"}}},"type":{"kind":"TypeReference","id":0,"typeName":"Registry","typeArguments":[{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"EventMap"},"indexType":{"kind":"TypeReference","id":0,"typeName":"Name"}}}],"type":{"kind":"VoidKeyword","id":0}}]},"members":{}}]}}],"on":[{"kind":"MethodDeclaration","id":0,"name":"on","typeParameters":[{"kind":"TypeParameter","id":0,"name":"Name","constraint":{"kind":"TypeOperator","id":0,"operator":143,"type":{"kind":"TypeReference","id":0,"typeName":"EventMap"}}}],"parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"TypeReference","id":0,"typeName":"Name"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"EventMap"},"indexType":{"kind":"TypeReference","id":0,"typeName":"Name"}}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}],"onOnce":[{"kind":"MethodDeclaration","id":0,"name":"onOnce","typeParameters":[{"kind":"TypeParameter","id":0,"name":"Name","constraint":{"kind":"TypeOperator","id":0,"operator":143,"type":{"kind":"TypeReference","id":0,"typeName":"EventMap"}}}],"parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"TypeReference","id":0,"typeName":"Name"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"EventMap"},"indexType":{"kind":"TypeReference","id":0,"typeName":"Name"}}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}],"next":[{"kind":"MethodDeclaration","id":0,"name":"next","typeParameters":[{"kind":"TypeParameter","id":0,"name":"Name","constraint":{"kind":"TypeOperator","id":0,"operator":143,"type":{"kind":"TypeReference","id":0,"typeName":"EventMap"}}}],"parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"TypeReference","id":0,"typeName":"Name"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Promise","typeArguments":[{"kind":"UnknownKeyword","id":0}]}}],"trigger":[{"kind":"MethodDeclaration","id":0,"name":"trigger","typeParameters":[{"kind":"TypeParameter","id":0,"name":"Name","constraint":{"kind":"TypeOperator","id":0,"operator":143,"type":{"kind":"TypeReference","id":0,"typeName":"EventMap"}}}],"parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"TypeReference","id":0,"typeName":"Name"}},{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"EventMap"},"indexType":{"kind":"TypeReference","id":0,"typeName":"Name"}}}],"type":{"kind":"VoidKeyword","id":0}}],"remove":[{"kind":"MethodDeclaration","id":0,"name":"remove","typeParameters":[{"kind":"TypeParameter","id":0,"name":"Name","constraint":{"kind":"TypeOperator","id":0,"operator":143,"type":{"kind":"TypeReference","id":0,"typeName":"EventMap"}}}],"parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"TypeReference","id":0,"typeName":"Name"}}],"type":{"kind":"VoidKeyword","id":0}}],"clear":[{"kind":"MethodDeclaration","id":0,"name":"clear","parameters":[],"type":{"kind":"VoidKeyword","id":0}}],"numListeners":[{"kind":"MethodDeclaration","id":0,"name":"numListeners","typeParameters":[{"kind":"TypeParameter","id":0,"name":"Name","constraint":{"kind":"TypeOperator","id":0,"operator":143,"type":{"kind":"TypeReference","id":0,"typeName":"EventMap"}}}],"parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"TypeReference","id":0,"typeName":"Name"}}],"type":{"kind":"NumberKeyword","id":0}}]}}],"BinaryHeap":[{"kind":"ClassDeclaration","id":0,"name":"BinaryHeap","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"members":{"_items":[{"kind":"PropertyDeclaration","id":0,"name":"_items","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"T"}}}],"_compareFn":[{"kind":"PropertyDeclaration","id":0,"name":"_compareFn","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"TypeReference","id":0,"typeName":"T"}},{"kind":"Parameter","id":0,"name":"b","type":{"kind":"TypeReference","id":0,"typeName":"T"}}],"type":{"kind":"BooleanKeyword","id":0}}}],"insert":[{"kind":"MethodDeclaration","id":0,"name":"insert","parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"T"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Insert an item into the binary heap","tags":{}}}],"remove":[{"kind":"MethodDeclaration","id":0,"name":"remove","parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"T"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Remove the smallest item from the binary heap in case of a min heap\nor the greatest item from the binary heap in case of a max heap","tags":{}}}],"clear":[{"kind":"MethodDeclaration","id":0,"name":"clear","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Remove all items","tags":{}}}],"moveUp":[{"kind":"MethodDeclaration","id":0,"name":"moveUp","parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}],"moveDown":[{"kind":"MethodDeclaration","id":0,"name":"moveDown","parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}],"swap":[{"kind":"MethodDeclaration","id":0,"name":"swap","parameters":[{"kind":"Parameter","id":0,"name":"index1","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"index2","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}],"length":[{"kind":"GetAccessor","id":0,"name":"length","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Returns the amount of items","tags":{}}}]}}],"SpriteComp":[{"kind":"InterfaceDeclaration","id":0,"name":"SpriteComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"draw":[{"kind":"PropertySignature","id":0,"name":"draw","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"Comp"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"draw","hasExtendedUnicodeEscape":false}}}}],"sprite":[{"kind":"PropertySignature","id":0,"name":"sprite","type":{"kind":"StringKeyword","id":0},"jsDoc":{"doc":"Name of the sprite.","tags":{}}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Width for sprite.","tags":{}}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Height for sprite.","tags":{}}}],"frame":[{"kind":"PropertySignature","id":0,"name":"frame","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Current frame in the entire spritesheet.","tags":{}}}],"animFrame":[{"kind":"PropertySignature","id":0,"name":"animFrame","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Current frame in relative to the animation that is currently playing.","tags":{}}}],"quad":[{"kind":"PropertySignature","id":0,"name":"quad","type":{"kind":"TypeReference","id":0,"typeName":"Quad"},"jsDoc":{"doc":"The rectangular area of the texture to render.","tags":{}}}],"play":[{"kind":"MethodSignature","id":0,"name":"play","parameters":[{"kind":"Parameter","id":0,"name":"anim","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"options","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"SpriteAnimPlayOpt"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Play a piece of anim.","tags":{}}}],"stop":[{"kind":"MethodSignature","id":0,"name":"stop","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Stop current anim.","tags":{}}}],"numFrames":[{"kind":"MethodSignature","id":0,"name":"numFrames","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get total number of frames.","tags":{}}}],"getCurAnim":[{"kind":"MethodSignature","id":0,"name":"getCurAnim","parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"SpriteCurAnim"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Get the current animation data.","tags":{"since":["v3001.0"]}}}],"curAnim":[{"kind":"MethodSignature","id":0,"name":"curAnim","parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"UndefinedKeyword","id":0}]},"jsDoc":{"doc":"Get current anim name.","tags":{"deprecated":["Use `getCurAnim().name` instead."]}}}],"hasAnim":[{"kind":"MethodSignature","id":0,"name":"hasAnim","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Check if object's sprite has an animation.","tags":{}}}],"getAnim":[{"kind":"MethodSignature","id":0,"name":"getAnim","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"SpriteAnim"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Get an animation.","tags":{}}}],"animSpeed":[{"kind":"PropertySignature","id":0,"name":"animSpeed","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Speed multiplier for all animations (for the actual fps for an anim use .play(\"anim\", { speed: 10 })).","tags":{}}}],"flipX":[{"kind":"PropertySignature","id":0,"name":"flipX","type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Flip texture horizontally.","tags":{}}}],"flipY":[{"kind":"PropertySignature","id":0,"name":"flipY","type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Flip texture vertically.","tags":{}}}],"onAnimStart":[{"kind":"MethodSignature","id":0,"name":"onAnimStart","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"anim","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when an animation is played.","tags":{}}}],"onAnimEnd":[{"kind":"MethodSignature","id":0,"name":"onAnimEnd","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"anim","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when an animation is ended.","tags":{}}}],"renderArea":[{"kind":"MethodSignature","id":0,"name":"renderArea","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Rect"},"jsDoc":{"tags":{"since":["v3000.0"]}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"sprite","text":"`sprite()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"SpriteCompOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"SpriteCompOpt","members":{"frame":[{"kind":"PropertySignature","id":0,"name":"frame","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If the sprite is loaded with multiple frames, or sliced, use the frame option to specify which frame to draw.","tags":{}}}],"tiled":[{"kind":"PropertySignature","id":0,"name":"tiled","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If provided width and height, don't stretch but instead render tiled.","tags":{}}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Stretch sprite to a certain width.","tags":{}}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Stretch sprite to a certain height.","tags":{}}}],"anim":[{"kind":"PropertySignature","id":0,"name":"anim","type":{"kind":"StringKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Play an animation on start.","tags":{}}}],"animSpeed":[{"kind":"PropertySignature","id":0,"name":"animSpeed","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Speed multiplier for all animations (for the actual fps for an anim use .play(\"anim\", { speed: 10 })).","tags":{}}}],"flipX":[{"kind":"PropertySignature","id":0,"name":"flipX","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Flip texture horizontally.","tags":{}}}],"flipY":[{"kind":"PropertySignature","id":0,"name":"flipY","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Flip texture vertically.","tags":{}}}],"quad":[{"kind":"PropertySignature","id":0,"name":"quad","type":{"kind":"TypeReference","id":0,"typeName":"Quad"},"questionToken":true,"jsDoc":{"doc":"The rectangular sub-area of the texture to render, default to full texture `quad(0, 0, 1, 1)`.","tags":{}}}],"fill":[{"kind":"PropertySignature","id":0,"name":"fill","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If fill the sprite (useful if you only want to render outline with outline() component).","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"Options for the "},{"kind":"JSDocLink","id":0,"name":"sprite","text":"`sprite()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"TextComp":[{"kind":"InterfaceDeclaration","id":0,"name":"TextComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"draw":[{"kind":"PropertySignature","id":0,"name":"draw","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"Comp"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"draw","hasExtendedUnicodeEscape":false}}}}],"text":[{"kind":"PropertySignature","id":0,"name":"text","type":{"kind":"StringKeyword","id":0},"jsDoc":{"doc":"The text to render.","tags":{}}}],"renderedText":[{"kind":"PropertySignature","id":0,"name":"renderedText","type":{"kind":"StringKeyword","id":0},"jsDoc":{"doc":"The text after formatting.","tags":{}}}],"textSize":[{"kind":"PropertySignature","id":0,"name":"textSize","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"The text size.","tags":{}}}],"font":[{"kind":"PropertySignature","id":0,"name":"font","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"BitmapFontData"}]},"jsDoc":{"doc":"The font to use.","tags":{}}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Width of text.","tags":{}}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Height of text.","tags":{}}}],"align":[{"kind":"PropertySignature","id":0,"name":"align","type":{"kind":"TypeReference","id":0,"typeName":"TextAlign"},"jsDoc":{"doc":"Text alignment (\"left\", \"center\" or \"right\", default \"left\").","tags":{"since":["v3000.0"]}}}],"lineSpacing":[{"kind":"PropertySignature","id":0,"name":"lineSpacing","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"The gap between each line.","tags":{"since":["v2000.2"]}}}],"letterSpacing":[{"kind":"PropertySignature","id":0,"name":"letterSpacing","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"The gap between each character.","tags":{"since":["v2000.2"]}}}],"textTransform":[{"kind":"PropertySignature","id":0,"name":"textTransform","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"CharTransform"},{"kind":"TypeReference","id":0,"typeName":"CharTransformFunc"}]},"jsDoc":{"doc":"Transform the pos, scale, rotation or color for each character based on the index or char.","tags":{"since":["v2000.1"]}}}],"textStyles":[{"kind":"PropertySignature","id":0,"name":"textStyles","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"CharTransform"},{"kind":"TypeReference","id":0,"typeName":"CharTransformFunc"}]}]},"jsDoc":{"doc":"Stylesheet for styled chunks, in the syntax of \"this is a [style]text[/style] word\".","tags":{"since":["v2000.2"]}}}],"renderArea":[{"kind":"MethodSignature","id":0,"name":"renderArea","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Rect"},"jsDoc":{"tags":{"since":["v3000.0"]}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"text","text":"`text()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"TextCompOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"TextCompOpt","members":{"size":[{"kind":"PropertySignature","id":0,"name":"size","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Height of text.","tags":{}}}],"font":[{"kind":"PropertySignature","id":0,"name":"font","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"BitmapFontData"}]},"questionToken":true,"jsDoc":{"doc":"The font to use.","tags":{}}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Wrap text to a certain width.","tags":{}}}],"align":[{"kind":"PropertySignature","id":0,"name":"align","type":{"kind":"TypeReference","id":0,"typeName":"TextAlign"},"questionToken":true,"jsDoc":{"doc":"Text alignment (\"left\", \"center\" or \"right\", default \"left\").","tags":{"since":["v3000.0"]}}}],"lineSpacing":[{"kind":"PropertySignature","id":0,"name":"lineSpacing","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The gap between each line.","tags":{"since":["v2000.2"]}}}],"letterSpacing":[{"kind":"PropertySignature","id":0,"name":"letterSpacing","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The gap between each character.","tags":{"since":["v2000.2"]}}}],"transform":[{"kind":"PropertySignature","id":0,"name":"transform","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"CharTransform"},{"kind":"TypeReference","id":0,"typeName":"CharTransformFunc"}]},"questionToken":true,"jsDoc":{"doc":"Transform the pos, scale, rotation or color for each character based on the index or char.","tags":{"since":["v2000.1"]}}}],"styles":[{"kind":"PropertySignature","id":0,"name":"styles","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"CharTransform"},{"kind":"TypeReference","id":0,"typeName":"CharTransformFunc"}]}]},"questionToken":true,"jsDoc":{"doc":"Stylesheet for styled chunks, in the syntax of \"this is a [style]text[/style] word\".","tags":{"since":["v2000.2"]}}}],"indentAll":[{"kind":"PropertySignature","id":0,"name":"indentAll","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If true, any (whitespace) indent on the first line of the paragraph\nwill be copied to all of the lines for those parts that text-wrap.","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"Options for the "},{"kind":"JSDocLink","id":0,"name":"text","text":"`text()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"UVQuadComp":[{"kind":"InterfaceDeclaration","id":0,"name":"UVQuadComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"draw":[{"kind":"PropertySignature","id":0,"name":"draw","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"Comp"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"draw","hasExtendedUnicodeEscape":false}}}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Width of rect.","tags":{}}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Height of height.","tags":{}}}],"renderArea":[{"kind":"MethodSignature","id":0,"name":"renderArea","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Rect"},"jsDoc":{"tags":{"since":["v3000.0"]}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"uvquad","text":"`uvquad()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"AgentComp":[{"kind":"InterfaceDeclaration","id":0,"name":"AgentComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"agentSpeed":[{"kind":"PropertySignature","id":0,"name":"agentSpeed","type":{"kind":"NumberKeyword","id":0}}],"allowDiagonals":[{"kind":"PropertySignature","id":0,"name":"allowDiagonals","type":{"kind":"BooleanKeyword","id":0}}],"getDistanceToTarget":[{"kind":"MethodSignature","id":0,"name":"getDistanceToTarget","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"getNextLocation":[{"kind":"MethodSignature","id":0,"name":"getNextLocation","parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"getPath":[{"kind":"MethodSignature","id":0,"name":"getPath","parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"getTarget":[{"kind":"MethodSignature","id":0,"name":"getTarget","parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"isNavigationFinished":[{"kind":"MethodSignature","id":0,"name":"isNavigationFinished","parameters":[],"type":{"kind":"BooleanKeyword","id":0}}],"isTargetReachable":[{"kind":"MethodSignature","id":0,"name":"isTargetReachable","parameters":[],"type":{"kind":"BooleanKeyword","id":0}}],"isTargetReached":[{"kind":"MethodSignature","id":0,"name":"isTargetReached","parameters":[],"type":{"kind":"BooleanKeyword","id":0}}],"setTarget":[{"kind":"MethodSignature","id":0,"name":"setTarget","parameters":[{"kind":"Parameter","id":0,"name":"target","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0}}],"onNavigationStarted":[{"kind":"MethodSignature","id":0,"name":"onNavigationStarted","parameters":[{"kind":"Parameter","id":0,"name":"cb","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}],"onNavigationNext":[{"kind":"MethodSignature","id":0,"name":"onNavigationNext","parameters":[{"kind":"Parameter","id":0,"name":"cb","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}],"onNavigationEnded":[{"kind":"MethodSignature","id":0,"name":"onNavigationEnded","parameters":[{"kind":"Parameter","id":0,"name":"cb","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}],"onTargetReached":[{"kind":"MethodSignature","id":0,"name":"onTargetReached","parameters":[{"kind":"Parameter","id":0,"name":"cb","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"agent","text":"`agent()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"AgentCompOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"AgentCompOpt","type":{"kind":"TypeLiteral","id":0,"members":{"speed":[{"kind":"PropertySignature","id":0,"name":"speed","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"allowDiagonals":[{"kind":"PropertySignature","id":0,"name":"allowDiagonals","type":{"kind":"BooleanKeyword","id":0},"questionToken":true}]}},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"Options for the "},{"kind":"JSDocLink","id":0,"name":"agent","text":"`agent()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"PathfinderMapComp":[{"kind":"InterfaceDeclaration","id":0,"name":"PathfinderMapComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"navigate":[{"kind":"MethodSignature","id":0,"name":"navigate","parameters":[{"kind":"Parameter","id":0,"name":"origin","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"target","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"navigationOpt","type":{"kind":"AnyKeyword","id":0}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"UndefinedKeyword","id":0}]},"jsDoc":{"doc":"Get navigation waypoints to reach the given target from the given origin.","tags":{}}}],"graph":[{"kind":"PropertySignature","id":0,"name":"graph","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Graph"},{"kind":"UndefinedKeyword","id":0}]},"jsDoc":{"doc":"The graph to use for navigation.","tags":{}}}]}}],"PathfinderMapCompOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"PathfinderMapCompOpt","members":{"graph":[{"kind":"PropertySignature","id":0,"name":"graph","type":{"kind":"TypeReference","id":0,"typeName":"Graph"},"questionToken":true,"jsDoc":{"doc":"The graph to use for navigation. If null, the ancestors are queried for a pathfinderMap component.","tags":{}}}]}}],"PathfinderComp":[{"kind":"InterfaceDeclaration","id":0,"name":"PathfinderComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"navigateTo":[{"kind":"MethodSignature","id":0,"name":"navigateTo","parameters":[{"kind":"Parameter","id":0,"name":"target","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"UndefinedKeyword","id":0}]},"jsDoc":{"doc":"Get navigation waypoints to reach the given target from the current position.","tags":{}}}],"graph":[{"kind":"PropertySignature","id":0,"name":"graph","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Graph"},{"kind":"UndefinedKeyword","id":0}]},"jsDoc":{"doc":"Get the graph used for navigastion if any.","tags":{}}}]}}],"PathfinderCompOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"PathfinderCompOpt","members":{"graph":[{"kind":"PropertySignature","id":0,"name":"graph","type":{"kind":"TypeReference","id":0,"typeName":"Graph"},"questionToken":true,"jsDoc":{"doc":"The graph to use for navigation. If null, the ancestors are queried for a pathfinderMap component.","tags":{}}}],"navigationOpt":[{"kind":"PropertySignature","id":0,"name":"navigationOpt","type":{"kind":"AnyKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The navigation options depending on the kind of graph used.","tags":{}}}]}}],"PatrolComp":[{"kind":"InterfaceDeclaration","id":0,"name":"PatrolComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"waypoints":[{"kind":"PropertySignature","id":0,"name":"waypoints","type":{"kind":"UnionType","id":0,"types":[{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"UndefinedKeyword","id":0}]},"jsDoc":{"doc":"Path to follow. If null, doesn't move.","tags":{}}}],"patrolSpeed":[{"kind":"PropertySignature","id":0,"name":"patrolSpeed","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Speed of the movement during patrol.","tags":{}}}],"nextLocation":[{"kind":"PropertySignature","id":0,"name":"nextLocation","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"UndefinedKeyword","id":0}]},"jsDoc":{"doc":"Current subgoal, if any.","tags":{}}}],"onPatrolFinished":[{"kind":"MethodSignature","id":0,"name":"onPatrolFinished","parameters":[{"kind":"Parameter","id":0,"name":"cb","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"objects","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Attaches an event handler which is called when using \"stop\" and the end of the path is reached.","tags":{"param":["The event handler called when the patrol finishes."]}}}]}}],"PatrolEndBehavior":[{"kind":"TypeAliasDeclaration","id":0,"name":"PatrolEndBehavior","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"loop","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"ping-pong","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"stop","hasExtendedUnicodeEscape":false}}]}}],"PatrolCompOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"PatrolCompOpt","members":{"waypoints":[{"kind":"PropertySignature","id":0,"name":"waypoints","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},"questionToken":true,"jsDoc":{"doc":"Path to follow. If null, starts suspended.","tags":{}}}],"speed":[{"kind":"PropertySignature","id":0,"name":"speed","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Speed of the movement during patrol.","tags":{}}}],"endBehavior":[{"kind":"PropertySignature","id":0,"name":"endBehavior","type":{"kind":"TypeReference","id":0,"typeName":"PatrolEndBehavior"},"questionToken":true,"jsDoc":{"doc":"What to do after the last waypoint has been reached.","tags":{}}}]}}],"FixedComp":[{"kind":"InterfaceDeclaration","id":0,"name":"FixedComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"fixed":[{"kind":"PropertySignature","id":0,"name":"fixed","type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If the obj is unaffected by camera","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"fixed","text":"`fixed()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"PosComp":[{"kind":"InterfaceDeclaration","id":0,"name":"PosComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"pos":[{"kind":"PropertySignature","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Object's current world position.","tags":{}}}],"move":[{"kind":"MethodSignature","id":0,"name":"move","parameters":[{"kind":"Parameter","id":0,"name":"xVel","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"yVel","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Move how many pixels per second. If object is 'solid', it won't move into other 'solid' objects.","tags":{}}},{"kind":"MethodSignature","id":0,"name":"move","parameters":[{"kind":"Parameter","id":0,"name":"vel","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0}}],"moveBy":[{"kind":"MethodSignature","id":0,"name":"moveBy","parameters":[{"kind":"Parameter","id":0,"name":"dx","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"dy","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Move how many pixels, without multiplying dt, but still checking for 'solid'.","tags":{}}},{"kind":"MethodSignature","id":0,"name":"moveBy","parameters":[{"kind":"Parameter","id":0,"name":"d","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0}}],"moveTo":[{"kind":"MethodSignature","id":0,"name":"moveTo","parameters":[{"kind":"Parameter","id":0,"name":"dest","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"speed","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Move to a spot with a speed (pixels per second), teleports if speed is not given.","tags":{}}},{"kind":"MethodSignature","id":0,"name":"moveTo","parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"speed","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}],"screenPos":[{"kind":"MethodSignature","id":0,"name":"screenPos","parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Get the position of the object on the screen.","tags":{}}}],"worldPos":[{"kind":"MethodSignature","id":0,"name":"worldPos","parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Get the position of the object relative to the root.","tags":{}}}],"toScreen":[{"kind":"MethodSignature","id":0,"name":"toScreen","parameters":[{"kind":"Parameter","id":0,"name":"this","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"PosComp"},{"kind":"TypeReference","id":0,"typeName":"FixedComp"}]}]}},{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Transform a local point (relative to this) to a screen point (relative to the camera)","tags":{}}}],"toWorld":[{"kind":"MethodSignature","id":0,"name":"toWorld","parameters":[{"kind":"Parameter","id":0,"name":"this","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"PosComp"}]}},{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Transform a local point (relative to this) to a world point (relative to the root)","tags":{"since":["v3001.0"]}}}],"fromScreen":[{"kind":"MethodSignature","id":0,"name":"fromScreen","parameters":[{"kind":"Parameter","id":0,"name":"this","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"PosComp"},{"kind":"TypeReference","id":0,"typeName":"FixedComp"}]}]}},{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Transform a screen point (relative to the camera) to a local point (relative to this)","tags":{"since":["v3001.0"]}}}],"fromWorld":[{"kind":"MethodSignature","id":0,"name":"fromWorld","parameters":[{"kind":"Parameter","id":0,"name":"this","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"PosComp"}]}},{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Transform a world point (relative to the root) to a local point (relative to this)","tags":{"since":["v3001.0"]}}}],"toOther":[{"kind":"MethodSignature","id":0,"name":"toOther","parameters":[{"kind":"Parameter","id":0,"name":"this","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"PosComp"}]}},{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"PosComp"}]}},{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Transform a point relative to this to a point relative to other","tags":{"since":["v3001.0"]}}}],"fromOther":[{"kind":"MethodSignature","id":0,"name":"fromOther","parameters":[{"kind":"Parameter","id":0,"name":"this","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"PosComp"}]}},{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"PosComp"}]}},{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Transform a point relative to other to a point relative to this","tags":{"since":["v3001.0"]}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"pos","text":"`pos()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"SentryComp":[{"kind":"InterfaceDeclaration","id":0,"name":"SentryComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"direction":[{"kind":"PropertySignature","id":0,"name":"direction","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"questionToken":true,"jsDoc":{"doc":"The direction the sentry is pointing to.","tags":{}}}],"directionAngle":[{"kind":"PropertySignature","id":0,"name":"directionAngle","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The direction of the sentry as an angle in degrees.","tags":{}}}],"fieldOfView":[{"kind":"PropertySignature","id":0,"name":"fieldOfView","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The field of view of the sentry in degrees.","tags":{}}}],"spotted":[{"kind":"PropertySignature","id":0,"name":"spotted","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"AnyKeyword","id":0}]}},"jsDoc":{"doc":"The objects spotted most recently.","tags":{}}}],"onObjectsSpotted":[{"kind":"MethodSignature","id":0,"name":"onObjectsSpotted","parameters":[{"kind":"Parameter","id":0,"name":"cb","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"objects","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Attaches an event handler which is called when objects of interest are spotted.","tags":{"param":["The event handler called when objects are spotted."]}}}],"isWithinFieldOfView":[{"kind":"MethodSignature","id":0,"name":"isWithinFieldOfView","parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"PosComp"}]}},{"kind":"Parameter","id":0,"name":"direction","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"fieldOfView","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Returns true if the object is within the field of view.","tags":{"param":["The object to test.","The direction to look at.","The field of view in degrees."]}}}],"hasLineOfSight":[{"kind":"MethodSignature","id":0,"name":"hasLineOfSight","parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"PosComp"}]}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Returns true if there is a line of sight to the object.","tags":{"param":["The object to test."]}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"sentry","text":"`sentry()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"SentryCompOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"SentryCompOpt","members":{"direction":[{"kind":"PropertySignature","id":0,"name":"direction","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"NumberKeyword","id":0}]},"questionToken":true,"jsDoc":{"doc":"The direction the sentry is pointing to. If undefined, direction has no influence.","tags":{}}}],"fieldOfView":[{"kind":"PropertySignature","id":0,"name":"fieldOfView","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The field of view of the sentry in degrees. If undefined, defaults to human fov of 200 degrees.","tags":{}}}],"lineOfSight":[{"kind":"PropertySignature","id":0,"name":"lineOfSight","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If true, line of sight matters. This means that objects which are blocked from view by areas are invisible.","tags":{}}}],"raycastExclude":[{"kind":"PropertySignature","id":0,"name":"raycastExclude","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}},"questionToken":true,"jsDoc":{"doc":"When using line of sight, the objects which are transparent for the ray. Include at least a tag identifying the sentry.","tags":{}}}],"checkFrequency":[{"kind":"PropertySignature","id":0,"name":"checkFrequency","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The frequency of checking, defaults to every second.","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"Options for the "},{"kind":"JSDocLink","id":0,"name":"sentry","text":"`sentry()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"SentryCandidatesCb":[{"kind":"TypeAliasDeclaration","id":0,"name":"SentryCandidatesCb","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"AnyKeyword","id":0}]}}}}],"SentryCandidates":[{"kind":"TypeAliasDeclaration","id":0,"name":"SentryCandidates","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"SentryCandidatesCb"},{"kind":"TypeReference","id":0,"typeName":"QueryOpt"}]}}],"TileComp":[{"kind":"InterfaceDeclaration","id":0,"name":"TileComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"tilePos":[{"kind":"PropertySignature","id":0,"name":"tilePos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"The tile position inside the level.","tags":{}}}],"isObstacle":[{"kind":"PropertySignature","id":0,"name":"isObstacle","type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If the tile is an obstacle in pathfinding.","tags":{}}}],"cost":[{"kind":"PropertySignature","id":0,"name":"cost","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"How much a tile is cost to traverse in pathfinding (default 0).","tags":{}}}],"edges":[{"kind":"PropertySignature","id":0,"name":"edges","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Edge"}},"jsDoc":{"doc":"If the tile has hard edges that cannot pass in pathfinding.","tags":{}}}],"tilePosOffset":[{"kind":"PropertySignature","id":0,"name":"tilePosOffset","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Position offset when setting `tilePos`.","tags":{}}}],"edgeMask":[{"kind":"PropertySignature","id":0,"name":"edgeMask","type":{"kind":"TypeReference","id":0,"typeName":"EdgeMask"}}],"getLevel":[{"kind":"MethodSignature","id":0,"name":"getLevel","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"LevelComp"}]}}],"tileMove":[{"kind":"MethodSignature","id":0,"name":"tileMove","parameters":[{"kind":"Parameter","id":0,"name":"dir","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0}}],"moveLeft":[{"kind":"MethodSignature","id":0,"name":"moveLeft","parameters":[],"type":{"kind":"VoidKeyword","id":0}}],"moveRight":[{"kind":"MethodSignature","id":0,"name":"moveRight","parameters":[],"type":{"kind":"VoidKeyword","id":0}}],"moveUp":[{"kind":"MethodSignature","id":0,"name":"moveUp","parameters":[],"type":{"kind":"VoidKeyword","id":0}}],"moveDown":[{"kind":"MethodSignature","id":0,"name":"moveDown","parameters":[],"type":{"kind":"VoidKeyword","id":0}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"tile","text":"`tile()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"TileCompOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"TileCompOpt","type":{"kind":"TypeLiteral","id":0,"members":{"isObstacle":[{"kind":"PropertySignature","id":0,"name":"isObstacle","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If the tile is an obstacle in pathfinding.","tags":{}}}],"cost":[{"kind":"PropertySignature","id":0,"name":"cost","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"How much a tile is cost to traverse in pathfinding (default 0).","tags":{}}}],"edges":[{"kind":"PropertySignature","id":0,"name":"edges","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Edge"}},"questionToken":true,"jsDoc":{"doc":"If the tile has hard edges that cannot pass in pathfinding.","tags":{}}}],"offset":[{"kind":"PropertySignature","id":0,"name":"offset","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"questionToken":true,"jsDoc":{"doc":"Position offset when setting `tilePos`.","tags":{}}}]}},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"Options for the "},{"kind":"JSDocLink","id":0,"name":"tile","text":"`tile()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"TimeDirection":[{"kind":"TypeAliasDeclaration","id":0,"name":"TimeDirection","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"forward","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"reverse","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"ping-pong","hasExtendedUnicodeEscape":false}}]}}],"Interpolation":[{"kind":"TypeAliasDeclaration","id":0,"name":"Interpolation","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"none","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"linear","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"slerp","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"spline","hasExtendedUnicodeEscape":false}}]}}],"AnimateOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"AnimateOpt","members":{"duration":[{"kind":"PropertySignature","id":0,"name":"duration","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Duration of the animation in seconds","tags":{}}}],"loops":[{"kind":"PropertySignature","id":0,"name":"loops","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Loops, Default is undefined aka infinite","tags":{}}}],"direction":[{"kind":"PropertySignature","id":0,"name":"direction","type":{"kind":"TypeReference","id":0,"typeName":"TimeDirection"},"questionToken":true,"jsDoc":{"doc":"Behavior when reaching the end of the animation. Default is forward.","tags":{}}}],"easing":[{"kind":"PropertySignature","id":0,"name":"easing","type":{"kind":"TypeReference","id":0,"typeName":"EaseFunc"},"questionToken":true,"jsDoc":{"doc":"Easing function. Default is linear time.","tags":{}}}],"interpolation":[{"kind":"PropertySignature","id":0,"name":"interpolation","type":{"kind":"TypeReference","id":0,"typeName":"Interpolation"},"questionToken":true,"jsDoc":{"doc":"Interpolation function. Default is linear interpolation.","tags":{}}}],"timing":[{"kind":"PropertySignature","id":0,"name":"timing","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}},"questionToken":true,"jsDoc":{"doc":"Timestamps in percent for the given keys, if omitted, keys are equally spaced.","tags":{}}}],"easings":[{"kind":"PropertySignature","id":0,"name":"easings","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"EaseFunc"}},"questionToken":true,"jsDoc":{"doc":"Easings for the given keys, if omitted, easing is used.","tags":{}}}]}}],"AnimateCompOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"AnimateCompOpt","members":{"followMotion":[{"kind":"PropertySignature","id":0,"name":"followMotion","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Changes the angle so it follows the motion, requires the rotate component","tags":{}}}],"relative":[{"kind":"PropertySignature","id":0,"name":"relative","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The animation is added to the base values of pos, angle, scale and opacity instead of replacing them","tags":{}}}]}}],"BaseValues":[{"kind":"InterfaceDeclaration","id":0,"name":"BaseValues","members":{"pos":[{"kind":"PropertySignature","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"angle":[{"kind":"PropertySignature","id":0,"name":"angle","type":{"kind":"NumberKeyword","id":0}}],"scale":[{"kind":"PropertySignature","id":0,"name":"scale","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"opacity":[{"kind":"PropertySignature","id":0,"name":"opacity","type":{"kind":"NumberKeyword","id":0}}]}}],"AnimateComp":[{"kind":"InterfaceDeclaration","id":0,"name":"AnimateComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"animate":[{"kind":"MethodSignature","id":0,"name":"animate","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T","constraint":{"kind":"TypeReference","id":0,"typeName":"LerpValue"}}],"parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"keys","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"T"}}},{"kind":"Parameter","id":0,"name":"opts","type":{"kind":"TypeReference","id":0,"typeName":"AnimateOpt"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Animates a property on this object.","tags":{"param":["Name of the property to animate.","Keys determining the value at a certain point in time.","Options."]}}}],"unanimate":[{"kind":"MethodSignature","id":0,"name":"unanimate","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Removes the animation from the given property.","tags":{"param":["Name of the property to remove the animation from."]}}}],"unanimateAll":[{"kind":"MethodSignature","id":0,"name":"unanimateAll","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Removes the animations from all properties","tags":{}}}],"onAnimateFinished":[{"kind":"MethodSignature","id":0,"name":"onAnimateFinished","parameters":[{"kind":"Parameter","id":0,"name":"cb","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Attaches an event handler which is called when all the animation channels have finished.","tags":{"param":["The event handler called when the animation finishes."]}}}],"onAnimateChannelFinished":[{"kind":"MethodSignature","id":0,"name":"onAnimateChannelFinished","parameters":[{"kind":"Parameter","id":0,"name":"cb","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Attaches an event handler which is called when an animation channels has finished.","tags":{"param":["The event handler called when an animation channel finishes."]}}}],"base":[{"kind":"PropertySignature","id":0,"name":"base","type":{"kind":"TypeReference","id":0,"typeName":"BaseValues"},"jsDoc":{"doc":"Base values for relative animation","tags":{}}}],"animation":[{"kind":"PropertySignature","id":0,"name":"animation","type":{"kind":"TypeLiteral","id":0,"members":{"paused":[{"kind":"PropertySignature","id":0,"name":"paused","type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Pauses playing","tags":{}}}],"seek":[{"kind":"MethodSignature","id":0,"name":"seek","parameters":[{"kind":"Parameter","id":0,"name":"time","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Move the animation to a specific point in time","tags":{}}}],"duration":[{"kind":"PropertySignature","id":0,"name":"duration","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Returns the duration of the animation","tags":{}}}]}}}],"serializeAnimationChannels":[{"kind":"MethodSignature","id":0,"name":"serializeAnimationChannels","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"AnimationChannel"}]}}],"serializeAnimationOptions":[{"kind":"MethodSignature","id":0,"name":"serializeAnimationOptions","parameters":[],"type":{"kind":"TypeLiteral","id":0,"members":{"followMotion":[{"kind":"PropertySignature","id":0,"name":"followMotion","type":{"kind":"BooleanKeyword","id":0},"questionToken":true}],"relative":[{"kind":"PropertySignature","id":0,"name":"relative","type":{"kind":"BooleanKeyword","id":0},"questionToken":true}]}},"jsDoc":{"doc":"Serializes the options of this object to plain Javascript types","tags":{}}}]}}],"AnimationChannelKeys":[{"kind":"TypeAliasDeclaration","id":0,"name":"AnimationChannelKeys","type":{"kind":"UnionType","id":0,"types":[{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}},{"kind":"ArrayType","id":0,"elementType":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}}]}}],"AnimationOptions":[{"kind":"TypeAliasDeclaration","id":0,"name":"AnimationOptions","type":{"kind":"TypeLiteral","id":0,"members":{"duration":[{"kind":"PropertySignature","id":0,"name":"duration","type":{"kind":"NumberKeyword","id":0}}],"loops":[{"kind":"PropertySignature","id":0,"name":"loops","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"direction":[{"kind":"PropertySignature","id":0,"name":"direction","type":{"kind":"TypeReference","id":0,"typeName":"TimeDirection"},"questionToken":true}],"easing":[{"kind":"PropertySignature","id":0,"name":"easing","type":{"kind":"StringKeyword","id":0},"questionToken":true}],"interpolation":[{"kind":"PropertySignature","id":0,"name":"interpolation","type":{"kind":"TypeReference","id":0,"typeName":"Interpolation"},"questionToken":true}],"timing":[{"kind":"PropertySignature","id":0,"name":"timing","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}},"questionToken":true}],"easings":[{"kind":"PropertySignature","id":0,"name":"easings","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}},"questionToken":true}]}}}],"AnimationChannel":[{"kind":"TypeAliasDeclaration","id":0,"name":"AnimationChannel","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeLiteral","id":0,"members":{"keys":[{"kind":"PropertySignature","id":0,"name":"keys","type":{"kind":"TypeReference","id":0,"typeName":"AnimationChannelKeys"}}]}},{"kind":"TypeReference","id":0,"typeName":"AnimationOptions"}]}}],"FakeMouseComp":[{"kind":"InterfaceDeclaration","id":0,"name":"FakeMouseComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"isPressed":[{"kind":"GetAccessor","id":0,"name":"isPressed","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Whether the fake mouse is pressed.","tags":{}}}],"press":[{"kind":"MethodSignature","id":0,"name":"press","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Trigger press (onClick).","tags":{}}}],"release":[{"kind":"MethodSignature","id":0,"name":"release","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Trigger release.","tags":{}}}],"onPress":[{"kind":"MethodSignature","id":0,"name":"onPress","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Register an event that runs when the fake mouse performs a click.","tags":{}}}],"onRelease":[{"kind":"MethodSignature","id":0,"name":"onRelease","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Register an event that runs when the fake mouse releases.","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"fakeMouse","text":"`fakeMouse()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{}}}],"FakeMouseOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"FakeMouseOpt","type":{"kind":"TypeLiteral","id":0,"members":{"followMouse":[{"kind":"PropertySignature","id":0,"name":"followMouse","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Whether the fake mouse should follow the real mouse. Defaults to `true`.","tags":{}}}]}},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"Options for the "},{"kind":"JSDocLink","id":0,"name":"fakeMouse","text":"`fakeMouse()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{}}}],"HealthComp":[{"kind":"InterfaceDeclaration","id":0,"name":"HealthComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"hurt":[{"kind":"MethodSignature","id":0,"name":"hurt","parameters":[{"kind":"Parameter","id":0,"name":"n","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Decrease HP by n (defaults to 1).","tags":{}}}],"heal":[{"kind":"MethodSignature","id":0,"name":"heal","parameters":[{"kind":"Parameter","id":0,"name":"n","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Increase HP by n (defaults to 1).","tags":{}}}],"hp":[{"kind":"MethodSignature","id":0,"name":"hp","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Current health points.","tags":{}}}],"setHP":[{"kind":"MethodSignature","id":0,"name":"setHP","parameters":[{"kind":"Parameter","id":0,"name":"hp","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Set current health points.","tags":{}}}],"maxHP":[{"kind":"MethodSignature","id":0,"name":"maxHP","parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"NumberKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Max amount of HP.","tags":{}}}],"setMaxHP":[{"kind":"MethodSignature","id":0,"name":"setMaxHP","parameters":[{"kind":"Parameter","id":0,"name":"hp","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Set max amount of HP.","tags":{}}}],"onHurt":[{"kind":"MethodSignature","id":0,"name":"onHurt","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"amount","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when hurt() is called upon the object.","tags":{"since":["v2000.1"]}}}],"onHeal":[{"kind":"MethodSignature","id":0,"name":"onHeal","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"amount","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when heal() is called upon the object.","tags":{"since":["v2000.1"]}}}],"onDeath":[{"kind":"MethodSignature","id":0,"name":"onDeath","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when object's HP is equal or below 0.","tags":{"since":["v2000.1"]}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"health","text":"`health()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"LifespanCompOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"LifespanCompOpt","members":{"fade":[{"kind":"PropertySignature","id":0,"name":"fade","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Fade out duration (default 0 which is no fade out).","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"lifespan","text":"`lifespan()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"NamedComp":[{"kind":"InterfaceDeclaration","id":0,"name":"NamedComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"named","text":"`named()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"StateComp":[{"kind":"InterfaceDeclaration","id":0,"name":"StateComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"state":[{"kind":"PropertySignature","id":0,"name":"state","type":{"kind":"StringKeyword","id":0},"jsDoc":{"doc":"Current state.","tags":{}}}],"enterState":[{"kind":"PropertySignature","id":0,"name":"enterState","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"state","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"AnyKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}},"jsDoc":{"doc":"Enter a state, trigger onStateEnd for previous state and onStateEnter for the new State state.","tags":{}}}],"onStateTransition":[{"kind":"MethodSignature","id":0,"name":"onStateTransition","parameters":[{"kind":"Parameter","id":0,"name":"from","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"to","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register event that runs once when a specific state transition happens. Accepts arguments passed from `enterState(name, ...args)`.","tags":{"since":["v2000.2"]}}}],"onStateEnter":[{"kind":"PropertySignature","id":0,"name":"onStateEnter","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"state","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"AnyKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}},"jsDoc":{"doc":"Register event that runs once when enters a specific state. Accepts arguments passed from `enterState(name, ...args)`.","tags":{}}}],"onStateEnd":[{"kind":"PropertySignature","id":0,"name":"onStateEnd","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"state","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}},"jsDoc":{"doc":"Register an event that runs once when leaves a specific state.","tags":{}}}],"onStateUpdate":[{"kind":"PropertySignature","id":0,"name":"onStateUpdate","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"state","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}},"jsDoc":{"doc":"Register an event that runs every frame when in a specific state.","tags":{}}}],"onStateDraw":[{"kind":"PropertySignature","id":0,"name":"onStateDraw","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"state","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}},"jsDoc":{"doc":"Register an event that runs every frame when in a specific state.","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"state","text":"`state()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"StayComp":[{"kind":"InterfaceDeclaration","id":0,"name":"StayComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"stay":[{"kind":"PropertySignature","id":0,"name":"stay","type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If the obj should not be destroyed on scene switch.","tags":{}}}],"scenesToStay":[{"kind":"PropertySignature","id":0,"name":"scenesToStay","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}},"questionToken":true,"jsDoc":{"doc":"Array of scenes that the obj will stay on.","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"stay","text":"`stay()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"TextInputComp":[{"kind":"InterfaceDeclaration","id":0,"name":"TextInputComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"hasFocus":[{"kind":"PropertySignature","id":0,"name":"hasFocus","type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Enable the text input array from being modified by user input.","tags":{}}}],"typedText":[{"kind":"PropertySignature","id":0,"name":"typedText","type":{"kind":"StringKeyword","id":0},"jsDoc":{"doc":"The \"real\" text that the user typed, without any escaping.","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"textInput","text":"`textInput()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"TimerComp":[{"kind":"InterfaceDeclaration","id":0,"name":"TimerComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"maxLoopsPerFrame":[{"kind":"PropertySignature","id":0,"name":"maxLoopsPerFrame","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"The maximum number of loops per frame allowed,\nto keep loops with sub-frame intervals from freezing the game.","tags":{}}}],"wait":[{"kind":"MethodSignature","id":0,"name":"wait","parameters":[{"kind":"Parameter","id":0,"name":"time","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"action","questionToken":true,"type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"TimerController"},"jsDoc":{"doc":"Run the callback after n seconds.","tags":{}}}],"loop":[{"kind":"MethodSignature","id":0,"name":"loop","parameters":[{"kind":"Parameter","id":0,"name":"time","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"maxLoops","questionToken":true,"type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"waitFirst","questionToken":true,"type":{"kind":"BooleanKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"TimerController"},"jsDoc":{"doc":"Run the callback every n seconds.\n\nIf waitFirst is false (the default), the function will\nbe called once on the very next frame, and then loop like normal.","tags":{"since":["v3000.0"]}}}],"tween":[{"kind":"MethodSignature","id":0,"name":"tween","typeParameters":[{"kind":"TypeParameter","id":0,"name":"V","constraint":{"kind":"TypeReference","id":0,"typeName":"LerpValue"}}],"parameters":[{"kind":"Parameter","id":0,"name":"from","type":{"kind":"TypeReference","id":0,"typeName":"V"}},{"kind":"Parameter","id":0,"name":"to","type":{"kind":"TypeReference","id":0,"typeName":"V"}},{"kind":"Parameter","id":0,"name":"duration","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"setValue","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"value","type":{"kind":"TypeReference","id":0,"typeName":"V"}}],"type":{"kind":"VoidKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"easeFunc","questionToken":true,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"TweenController"},"jsDoc":{"doc":"Tweeeeen! Note that this doesn't specifically mean tweening on this object's property, this just registers the timer on this object, so the tween will cancel with the object gets destroyed, or paused when obj.paused is true.","tags":{"since":["v3000.0"]}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"timer","text":"`timer()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"AreaComp":[{"kind":"InterfaceDeclaration","id":0,"name":"AreaComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"area":[{"kind":"PropertySignature","id":0,"name":"area","type":{"kind":"TypeLiteral","id":0,"members":{"shape":[{"kind":"PropertySignature","id":0,"name":"shape","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Shape"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"If we use a custom shape over render shape.","tags":{}}}],"scale":[{"kind":"PropertySignature","id":0,"name":"scale","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Area scale.","tags":{}}}],"offset":[{"kind":"PropertySignature","id":0,"name":"offset","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Area offset.","tags":{}}}],"cursor":[{"kind":"PropertySignature","id":0,"name":"cursor","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Cursor"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Cursor on hover.","tags":{}}}]}},"jsDoc":{"doc":"Collider area info.","tags":{}}}],"collisionIgnore":[{"kind":"PropertySignature","id":0,"name":"collisionIgnore","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Tag"}},"jsDoc":{"doc":"If this object should ignore collisions against certain other objects.","tags":{"since":["v3000.0"]}}}],"restitution":[{"kind":"PropertySignature","id":0,"name":"restitution","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"friction":[{"kind":"PropertySignature","id":0,"name":"friction","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"isClicked":[{"kind":"MethodSignature","id":0,"name":"isClicked","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If was just clicked on last frame.","tags":{}}}],"isHovering":[{"kind":"MethodSignature","id":0,"name":"isHovering","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If is being hovered on.","tags":{}}}],"checkCollision":[{"kind":"MethodSignature","id":0,"name":"checkCollision","parameters":[{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"AreaComp"}]}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Collision"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Check collision with another game obj.","tags":{"since":["v3000.0"]}}}],"getCollisions":[{"kind":"MethodSignature","id":0,"name":"getCollisions","parameters":[],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Collision"}},"jsDoc":{"doc":"Get all collisions currently happening.","tags":{"since":["v3000.0"]}}}],"isColliding":[{"kind":"MethodSignature","id":0,"name":"isColliding","parameters":[{"kind":"Parameter","id":0,"name":"o","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"AreaComp"}]}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If is currently colliding with another game obj.","tags":{}}}],"isOverlapping":[{"kind":"MethodSignature","id":0,"name":"isOverlapping","parameters":[{"kind":"Parameter","id":0,"name":"o","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"AreaComp"}]}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If is currently overlapping with another game obj (like isColliding, but will return false if the objects are just touching edges).","tags":{}}}],"onClick":[{"kind":"MethodSignature","id":0,"name":"onClick","parameters":[{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Register an event runs when clicked.","tags":{"since":["v2000.1"]}}}],"onHover":[{"kind":"MethodSignature","id":0,"name":"onHover","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event runs once when hovered.","tags":{"since":["v3000.0"]}}}],"onHoverUpdate":[{"kind":"MethodSignature","id":0,"name":"onHoverUpdate","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event runs every frame when hovered.","tags":{"since":["v3000.0"]}}}],"onHoverEnd":[{"kind":"MethodSignature","id":0,"name":"onHoverEnd","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event runs once when unhovered.","tags":{"since":["v3000.0"]}}}],"onCollide":[{"kind":"MethodSignature","id":0,"name":"onCollide","parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},{"kind":"Parameter","id":0,"name":"col","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"Collision"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Register an event runs once when collide with another game obj with certain tag.","tags":{"since":["v2001.0"]}}},{"kind":"MethodSignature","id":0,"name":"onCollide","parameters":[{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},{"kind":"Parameter","id":0,"name":"col","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"Collision"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Register an event runs once when collide with another game obj.","tags":{"since":["v2000.1"]}}}],"onCollideUpdate":[{"kind":"MethodSignature","id":0,"name":"onCollideUpdate","parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},{"kind":"Parameter","id":0,"name":"col","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"Collision"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event runs every frame when collide with another game obj with certain tag.","tags":{"since":["v3000.0"]}}},{"kind":"MethodSignature","id":0,"name":"onCollideUpdate","parameters":[{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},{"kind":"Parameter","id":0,"name":"col","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"Collision"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event runs every frame when collide with another game obj.","tags":{"since":["v3000.0"]}}}],"onCollideEnd":[{"kind":"MethodSignature","id":0,"name":"onCollideEnd","parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event runs once when stopped colliding with another game obj with certain tag.","tags":{"since":["v3000.0"]}}},{"kind":"MethodSignature","id":0,"name":"onCollideEnd","parameters":[{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Register an event runs once when stopped colliding with another game obj.","tags":{"since":["v3000.0"]}}}],"hasPoint":[{"kind":"MethodSignature","id":0,"name":"hasPoint","parameters":[{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If has a certain point inside collider.","tags":{}}}],"resolveCollision":[{"kind":"MethodSignature","id":0,"name":"resolveCollision","parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Push out from another solid game obj if currently overlapping.","tags":{}}}],"localArea":[{"kind":"MethodSignature","id":0,"name":"localArea","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Shape"},"jsDoc":{"doc":"Get the geometry data for the collider in local coordinate space.","tags":{"since":["v3000.0"]}}}],"worldArea":[{"kind":"MethodSignature","id":0,"name":"worldArea","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Shape"},"jsDoc":{"doc":"Get the geometry data for the collider in world coordinate space.","tags":{}}}],"screenArea":[{"kind":"MethodSignature","id":0,"name":"screenArea","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Shape"},"jsDoc":{"doc":"Get the geometry data for the collider in screen coordinate space.","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"area","text":"`area()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"AreaCompOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"AreaCompOpt","members":{"shape":[{"kind":"PropertySignature","id":0,"name":"shape","type":{"kind":"TypeReference","id":0,"typeName":"Shape"},"questionToken":true,"jsDoc":{"doc":"The shape of the area (currently only Rect and Polygon is supported).","tags":{"example":["```js\nadd([\n sprite(\"butterfly\"),\n pos(100, 200),\n // a triangle shape!\n area({ shape: new Polygon([vec2(0), vec2(100), vec2(-100, 100)]) }),\n])\n```"]}}}],"scale":[{"kind":"PropertySignature","id":0,"name":"scale","type":{"kind":"UnionType","id":0,"types":[{"kind":"NumberKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]},"questionToken":true,"jsDoc":{"doc":"Area scale.","tags":{}}}],"offset":[{"kind":"PropertySignature","id":0,"name":"offset","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"questionToken":true,"jsDoc":{"doc":"Area offset.","tags":{}}}],"cursor":[{"kind":"PropertySignature","id":0,"name":"cursor","type":{"kind":"TypeReference","id":0,"typeName":"Cursor"},"questionToken":true,"jsDoc":{"doc":"Cursor on hover.","tags":{}}}],"collisionIgnore":[{"kind":"PropertySignature","id":0,"name":"collisionIgnore","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Tag"}},"questionToken":true,"jsDoc":{"doc":"If this object should ignore collisions against certain other objects.","tags":{"since":["v3000.0"]}}}],"restitution":[{"kind":"PropertySignature","id":0,"name":"restitution","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Bounciness factor between 0 and 1.","tags":{"since":["v4000.0"]}}}],"friction":[{"kind":"PropertySignature","id":0,"name":"friction","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Friction factor between 0 and 1.","tags":{"since":["v4000.0"]}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"Options for the "},{"kind":"JSDocLink","id":0,"name":"area","text":"`area()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"BodyComp":[{"kind":"InterfaceDeclaration","id":0,"name":"BodyComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"vel":[{"kind":"PropertySignature","id":0,"name":"vel","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Object current velocity.","tags":{"since":["v3001.0"]}}}],"damping":[{"kind":"PropertySignature","id":0,"name":"damping","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"How much velocity decays (velocity *= 1 / (1 + damping * dt) every frame).","tags":{"since":["v3001.0"]}}}],"isStatic":[{"kind":"PropertySignature","id":0,"name":"isStatic","type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If object is static, it won't move, all non static objects won't move past it, and all\ncalls to addForce(), applyImpulse(), or jump() on this body will do absolutely nothing.","tags":{}}}],"jumpForce":[{"kind":"PropertySignature","id":0,"name":"jumpForce","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Initial speed in pixels per second for jump().","tags":{}}}],"gravityScale":[{"kind":"PropertySignature","id":0,"name":"gravityScale","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Gravity multiplier.","tags":{}}}],"mass":[{"kind":"PropertySignature","id":0,"name":"mass","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Mass of the body, decides how much a non-static body should move when resolves with another non-static body. (default 1).","tags":{"since":["v3000.0"]}}}],"stickToPlatform":[{"kind":"PropertySignature","id":0,"name":"stickToPlatform","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If object should move with moving platform (default true).","tags":{"since":["v3000.0"]}}}],"curPlatform":[{"kind":"MethodSignature","id":0,"name":"curPlatform","parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"GameObj"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Current platform landing on.","tags":{}}}],"isGrounded":[{"kind":"MethodSignature","id":0,"name":"isGrounded","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If currently landing on a platform.","tags":{"since":["v2000.1"]}}}],"isFalling":[{"kind":"MethodSignature","id":0,"name":"isFalling","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If currently falling.","tags":{"since":["v2000.1"]}}}],"isJumping":[{"kind":"MethodSignature","id":0,"name":"isJumping","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If currently rising.","tags":{"since":["v3000.0"]}}}],"applyImpulse":[{"kind":"MethodSignature","id":0,"name":"applyImpulse","parameters":[{"kind":"Parameter","id":0,"name":"impulse","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Applies an impulse","tags":{"param":["The impulse vector, applied directly"]}}}],"addForce":[{"kind":"MethodSignature","id":0,"name":"addForce","parameters":[{"kind":"Parameter","id":0,"name":"force","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Applies a force","tags":{"param":["The force vector, applied after scaled by the inverse mass"]}}}],"jump":[{"kind":"MethodSignature","id":0,"name":"jump","parameters":[{"kind":"Parameter","id":0,"name":"force","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Upward thrust.","tags":{}}}],"onPhysicsResolve":[{"kind":"MethodSignature","id":0,"name":"onPhysicsResolve","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"col","type":{"kind":"TypeReference","id":0,"typeName":"Collision"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when a collision is resolved.","tags":{"since":["v3000.0"]}}}],"onBeforePhysicsResolve":[{"kind":"MethodSignature","id":0,"name":"onBeforePhysicsResolve","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"col","type":{"kind":"TypeReference","id":0,"typeName":"Collision"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs before a collision would be resolved.","tags":{"since":["v3000.0"]}}}],"onGround":[{"kind":"MethodSignature","id":0,"name":"onGround","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when the object is grounded.","tags":{"since":["v2000.1"]}}}],"onFall":[{"kind":"MethodSignature","id":0,"name":"onFall","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when the object starts falling.","tags":{"since":["v2000.1"]}}}],"onFallOff":[{"kind":"MethodSignature","id":0,"name":"onFallOff","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when the object falls off platform.","tags":{"since":["v3000.0"]}}}],"onHeadbutt":[{"kind":"MethodSignature","id":0,"name":"onHeadbutt","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when the object bumps into something on the head.","tags":{"since":["v2000.1"]}}}],"onLand":[{"kind":"MethodSignature","id":0,"name":"onLand","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when an object lands on this object.","tags":{"since":["v3001.0"]}}}],"onHeadbutted":[{"kind":"MethodSignature","id":0,"name":"onHeadbutted","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when the object is bumped by another object head.","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"body","text":"`body()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"BodyCompOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"BodyCompOpt","members":{"damping":[{"kind":"PropertySignature","id":0,"name":"damping","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"How much velocity decays (velocity *= 1 / (1 + damping * dt) every frame).","tags":{"since":["v3001.0"]}}}],"jumpForce":[{"kind":"PropertySignature","id":0,"name":"jumpForce","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Initial speed in pixels per second for jump().","tags":{}}}],"maxVelocity":[{"kind":"PropertySignature","id":0,"name":"maxVelocity","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Maximum velocity when falling.","tags":{}}}],"gravityScale":[{"kind":"PropertySignature","id":0,"name":"gravityScale","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Gravity multiplier.","tags":{}}}],"isStatic":[{"kind":"PropertySignature","id":0,"name":"isStatic","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If object is static, it won't move, all non static objects won't move past it, and all\ncalls to addForce(), applyImpulse(), or jump() on this body will do absolutely nothing.","tags":{"since":["v3000.0"]}}}],"stickToPlatform":[{"kind":"PropertySignature","id":0,"name":"stickToPlatform","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If object should move with moving platform (default true).","tags":{"since":["v3000.0"]}}}],"mass":[{"kind":"PropertySignature","id":0,"name":"mass","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Mass of the body, decides how much a non-static body should move when resolves with another non-static body. (default 1).","tags":{"since":["v3000.0"]}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"Options for the "},{"kind":"JSDocLink","id":0,"name":"body","text":"`body()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"DoubleJumpComp":[{"kind":"InterfaceDeclaration","id":0,"name":"DoubleJumpComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"numJumps":[{"kind":"PropertySignature","id":0,"name":"numJumps","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Number of jumps allowed.","tags":{}}}],"doubleJump":[{"kind":"MethodSignature","id":0,"name":"doubleJump","parameters":[{"kind":"Parameter","id":0,"name":"force","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Performs double jump (the initial jump only happens if player is grounded).","tags":{}}}],"onDoubleJump":[{"kind":"MethodSignature","id":0,"name":"onDoubleJump","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when the object performs the second jump when double jumping.","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"doubleJump","text":"`doubleJump()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"SurfaceEffectorCompOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"SurfaceEffectorCompOpt","type":{"kind":"TypeLiteral","id":0,"members":{"speed":[{"kind":"PropertySignature","id":0,"name":"speed","type":{"kind":"NumberKeyword","id":0}}],"speedVariation":[{"kind":"PropertySignature","id":0,"name":"speedVariation","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"forceScale":[{"kind":"PropertySignature","id":0,"name":"forceScale","type":{"kind":"NumberKeyword","id":0},"questionToken":true}]}}}],"SurfaceEffectorComp":[{"kind":"InterfaceDeclaration","id":0,"name":"SurfaceEffectorComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"speed":[{"kind":"PropertySignature","id":0,"name":"speed","type":{"kind":"NumberKeyword","id":0}}],"speedVariation":[{"kind":"PropertySignature","id":0,"name":"speedVariation","type":{"kind":"NumberKeyword","id":0}}],"forceScale":[{"kind":"PropertySignature","id":0,"name":"forceScale","type":{"kind":"NumberKeyword","id":0}}]}}],"AreaEffectorCompOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"AreaEffectorCompOpt","type":{"kind":"TypeLiteral","id":0,"members":{"useGlobalAngle":[{"kind":"PropertySignature","id":0,"name":"useGlobalAngle","type":{"kind":"BooleanKeyword","id":0},"questionToken":true}],"force":[{"kind":"PropertySignature","id":0,"name":"force","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"linearDrag":[{"kind":"PropertySignature","id":0,"name":"linearDrag","type":{"kind":"NumberKeyword","id":0},"questionToken":true}]}}}],"AreaEffectorComp":[{"kind":"InterfaceDeclaration","id":0,"name":"AreaEffectorComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"useGlobalAngle":[{"kind":"PropertySignature","id":0,"name":"useGlobalAngle","type":{"kind":"BooleanKeyword","id":0}}],"force":[{"kind":"PropertySignature","id":0,"name":"force","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"linearDrag":[{"kind":"PropertySignature","id":0,"name":"linearDrag","type":{"kind":"NumberKeyword","id":0}}]}}],"ForceMode":[{"kind":"TypeAliasDeclaration","id":0,"name":"ForceMode","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"constant","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"inverseLinear","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"inverseSquared","hasExtendedUnicodeEscape":false}}]}}],"PointEffectorCompOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"PointEffectorCompOpt","type":{"kind":"TypeLiteral","id":0,"members":{"forceMagnitude":[{"kind":"PropertySignature","id":0,"name":"forceMagnitude","type":{"kind":"NumberKeyword","id":0}}],"distanceScale":[{"kind":"PropertySignature","id":0,"name":"distanceScale","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"forceMode":[{"kind":"PropertySignature","id":0,"name":"forceMode","type":{"kind":"TypeReference","id":0,"typeName":"ForceMode"},"questionToken":true}],"linearDrag":[{"kind":"PropertySignature","id":0,"name":"linearDrag","type":{"kind":"NumberKeyword","id":0},"questionToken":true}]}}}],"PointEffectorComp":[{"kind":"InterfaceDeclaration","id":0,"name":"PointEffectorComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"forceMagnitude":[{"kind":"PropertySignature","id":0,"name":"forceMagnitude","type":{"kind":"NumberKeyword","id":0}}],"distanceScale":[{"kind":"PropertySignature","id":0,"name":"distanceScale","type":{"kind":"NumberKeyword","id":0}}],"forceMode":[{"kind":"PropertySignature","id":0,"name":"forceMode","type":{"kind":"TypeReference","id":0,"typeName":"ForceMode"}}],"linearDrag":[{"kind":"PropertySignature","id":0,"name":"linearDrag","type":{"kind":"NumberKeyword","id":0}}]}}],"ConstantForceCompOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"ConstantForceCompOpt","type":{"kind":"TypeLiteral","id":0,"members":{"force":[{"kind":"PropertySignature","id":0,"name":"force","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"questionToken":true}],"useGlobalAngle":[{"kind":"PropertySignature","id":0,"name":"useGlobalAngle","type":{"kind":"BooleanKeyword","id":0},"questionToken":true}]}}}],"ConstantForceComp":[{"kind":"InterfaceDeclaration","id":0,"name":"ConstantForceComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"force":[{"kind":"PropertySignature","id":0,"name":"force","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"UndefinedKeyword","id":0}]}}],"useGlobalAngle":[{"kind":"PropertySignature","id":0,"name":"useGlobalAngle","type":{"kind":"BooleanKeyword","id":0}}]}}],"PlatformEffectorCompOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"PlatformEffectorCompOpt","type":{"kind":"TypeLiteral","id":0,"members":{"ignoreSides":[{"kind":"PropertySignature","id":0,"name":"ignoreSides","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},"questionToken":true,"jsDoc":{"doc":"If the object is about to collide and the collision normal direction is\nin here, the object won't collide.\n\nShould be a list of unit vectors `LEFT`, `RIGHT`, `UP`, or `DOWN`.","tags":{}}}],"shouldCollide":[{"kind":"PropertySignature","id":0,"name":"shouldCollide","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"this","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"PlatformEffectorComp"}]}},{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},{"kind":"Parameter","id":0,"name":"normal","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"BooleanKeyword","id":0}},"questionToken":true,"jsDoc":{"doc":"A function that determines whether the object should collide.\n\nIf present, it overrides the `ignoreSides`; if absent, it is\nautomatically created from `ignoreSides`.","tags":{}}}]}}}],"PlatformEffectorComp":[{"kind":"InterfaceDeclaration","id":0,"name":"PlatformEffectorComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"platformIgnore":[{"kind":"PropertySignature","id":0,"name":"platformIgnore","type":{"kind":"TypeReference","id":0,"typeName":"Set","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"GameObj"}]},"jsDoc":{"doc":"A set of the objects that should not collide with this, because `shouldCollide` returned true.\n\nObjects in here are automatically removed when they stop colliding, so the casual user shouldn't\nneed to touch this much. However, if an object is added to this set before the object collides\nwith the platform effector, it won't collide even if `shouldCollide` returns true.","tags":{}}}]}}],"BuoyancyEffectorCompOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"BuoyancyEffectorCompOpt","type":{"kind":"TypeLiteral","id":0,"members":{"surfaceLevel":[{"kind":"PropertySignature","id":0,"name":"surfaceLevel","type":{"kind":"NumberKeyword","id":0}}],"density":[{"kind":"PropertySignature","id":0,"name":"density","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"linearDrag":[{"kind":"PropertySignature","id":0,"name":"linearDrag","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"angularDrag":[{"kind":"PropertySignature","id":0,"name":"angularDrag","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"flowAngle":[{"kind":"PropertySignature","id":0,"name":"flowAngle","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"flowMagnitude":[{"kind":"PropertySignature","id":0,"name":"flowMagnitude","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"flowVariation":[{"kind":"PropertySignature","id":0,"name":"flowVariation","type":{"kind":"NumberKeyword","id":0},"questionToken":true}]}}}],"BuoyancyEffectorComp":[{"kind":"InterfaceDeclaration","id":0,"name":"BuoyancyEffectorComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"surfaceLevel":[{"kind":"PropertySignature","id":0,"name":"surfaceLevel","type":{"kind":"NumberKeyword","id":0}}],"density":[{"kind":"PropertySignature","id":0,"name":"density","type":{"kind":"NumberKeyword","id":0}}],"linearDrag":[{"kind":"PropertySignature","id":0,"name":"linearDrag","type":{"kind":"NumberKeyword","id":0}}],"angularDrag":[{"kind":"PropertySignature","id":0,"name":"angularDrag","type":{"kind":"NumberKeyword","id":0}}],"flowAngle":[{"kind":"PropertySignature","id":0,"name":"flowAngle","type":{"kind":"NumberKeyword","id":0}}],"flowMagnitude":[{"kind":"PropertySignature","id":0,"name":"flowMagnitude","type":{"kind":"NumberKeyword","id":0}}],"flowVariation":[{"kind":"PropertySignature","id":0,"name":"flowVariation","type":{"kind":"NumberKeyword","id":0}}],"applyBuoyancy":[{"kind":"MethodSignature","id":0,"name":"applyBuoyancy","parameters":[{"kind":"Parameter","id":0,"name":"body","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"BodyComp"}]}},{"kind":"Parameter","id":0,"name":"submergedArea","type":{"kind":"TypeReference","id":0,"typeName":"Polygon"}}],"type":{"kind":"VoidKeyword","id":0}}],"applyDrag":[{"kind":"MethodSignature","id":0,"name":"applyDrag","parameters":[{"kind":"Parameter","id":0,"name":"body","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"BodyComp"}]}},{"kind":"Parameter","id":0,"name":"submergedArea","type":{"kind":"TypeReference","id":0,"typeName":"Polygon"}}],"type":{"kind":"VoidKeyword","id":0}}]}}],"AnchorComp":[{"kind":"InterfaceDeclaration","id":0,"name":"AnchorComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"anchor":[{"kind":"PropertySignature","id":0,"name":"anchor","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Anchor"},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]},"jsDoc":{"doc":"Anchor point for render.","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"anchor","text":"`anchor()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"FollowComp":[{"kind":"InterfaceDeclaration","id":0,"name":"FollowComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"follow":[{"kind":"PropertySignature","id":0,"name":"follow","type":{"kind":"TypeLiteral","id":0,"members":{"obj":[{"kind":"PropertySignature","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"offset":[{"kind":"PropertySignature","id":0,"name":"offset","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}]}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"follow","text":"`follow()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"LayerComp":[{"kind":"InterfaceDeclaration","id":0,"name":"LayerComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"layerIndex":[{"kind":"GetAccessor","id":0,"name":"layerIndex","parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"NumberKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Get the index of the current layer the object is assigned to.","tags":{"returns":["The index of the layer the object is assigned to, or `null` if the layer does not exist."]}}}],"layer":[{"kind":"GetAccessor","id":0,"name":"layer","parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Get the name of the current layer the object is assigned to.","tags":{"returns":["The name of the layer the object is assigned to."]}}},{"kind":"SetAccessor","id":0,"name":"layer","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}}],"jsDoc":{"doc":"Set the name of the layer the object should be assigned to.","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"layer","text":"`layer()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"OffScreenComp":[{"kind":"InterfaceDeclaration","id":0,"name":"OffScreenComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"isOffScreen":[{"kind":"MethodSignature","id":0,"name":"isOffScreen","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If object is currently out of view.","tags":{}}}],"onExitScreen":[{"kind":"MethodSignature","id":0,"name":"onExitScreen","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when object goes out of view.","tags":{}}}],"onEnterScreen":[{"kind":"MethodSignature","id":0,"name":"onEnterScreen","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when object enters view.","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"offscreen","text":"`offscreen()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"OffScreenCompOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"OffScreenCompOpt","members":{"hide":[{"kind":"PropertySignature","id":0,"name":"hide","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If hide object when out of view.","tags":{}}}],"pause":[{"kind":"PropertySignature","id":0,"name":"pause","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If pause object when out of view.","tags":{}}}],"unpause":[{"kind":"PropertySignature","id":0,"name":"unpause","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If unpause object when back in view.","tags":{}}}],"destroy":[{"kind":"PropertySignature","id":0,"name":"destroy","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If destroy object when out of view.","tags":{}}}],"distance":[{"kind":"PropertySignature","id":0,"name":"distance","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The distance when out of view is triggered (default 200).","tags":{"since":["v3000.0"]}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"Options for "},{"kind":"JSDocLink","id":0,"name":"offscreen","text":"`offscreen()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"RotateComp":[{"kind":"InterfaceDeclaration","id":0,"name":"RotateComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"angle":[{"kind":"PropertySignature","id":0,"name":"angle","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Angle in degrees.","tags":{}}}],"rotateBy":[{"kind":"MethodSignature","id":0,"name":"rotateBy","parameters":[{"kind":"Parameter","id":0,"name":"angle","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Rotate in degrees.","tags":{}}}],"rotateTo":[{"kind":"MethodSignature","id":0,"name":"rotateTo","parameters":[{"kind":"Parameter","id":0,"name":"s","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Rotate to a degree (like directly assign to .angle)","tags":{"since":["v3000.0"]}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"rotate","text":"`rotate()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"ScaleComp":[{"kind":"InterfaceDeclaration","id":0,"name":"ScaleComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"scale":[{"kind":"PropertySignature","id":0,"name":"scale","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"The current scale of the object","tags":{"returns":[[{"kind":"JSDocText","id":0,"text":"The current scale of the object as a "},{"kind":"JSDocLink","id":0,"name":"Vec2","text":"`Vec2`"}]]}}}],"scaleTo":[{"kind":"MethodSignature","id":0,"name":"scaleTo","parameters":[{"kind":"Parameter","id":0,"name":"s","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Set the scale of the object to a number","tags":{}}},{"kind":"MethodSignature","id":0,"name":"scaleTo","parameters":[{"kind":"Parameter","id":0,"name":"s","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Set the scale of the object to a Vec2","tags":{}}},{"kind":"MethodSignature","id":0,"name":"scaleTo","parameters":[{"kind":"Parameter","id":0,"name":"sx","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"sy","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Set the scale of the object to a number for x and y","tags":{}}}],"scaleBy":[{"kind":"MethodSignature","id":0,"name":"scaleBy","parameters":[{"kind":"Parameter","id":0,"name":"s","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Scale the object by a number","tags":{}}},{"kind":"MethodSignature","id":0,"name":"scaleBy","parameters":[{"kind":"Parameter","id":0,"name":"s","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Scale the object by a Vec2","tags":{}}},{"kind":"MethodSignature","id":0,"name":"scaleBy","parameters":[{"kind":"Parameter","id":0,"name":"sx","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"sy","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Scale the object by a number for x and y","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"scale","text":"`scale()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"ZComp":[{"kind":"InterfaceDeclaration","id":0,"name":"ZComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"z":[{"kind":"PropertySignature","id":0,"name":"z","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Defines the z-index of this game obj","tags":{}}}]},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"The "},{"kind":"JSDocLink","id":0,"name":"z","text":"`z()`"},{"kind":"JSDocText","id":0,"text":" component."}],"tags":{"group":["Component Types"]}}}],"Vec3":[{"kind":"ClassDeclaration","id":0,"name":"Vec3","members":{"x":[{"kind":"PropertyDeclaration","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}}],"y":[{"kind":"PropertyDeclaration","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"z":[{"kind":"PropertyDeclaration","id":0,"name":"z","type":{"kind":"NumberKeyword","id":0}}],"dot":[{"kind":"MethodDeclaration","id":0,"name":"dot","parameters":[{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Vec3"}}],"type":{"kind":"NumberKeyword","id":0}}],"cross":[{"kind":"MethodDeclaration","id":0,"name":"cross","parameters":[{"kind":"Parameter","id":0,"name":"other","type":{"kind":"TypeReference","id":0,"typeName":"Vec3"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec3"}}]}}],"DrawSpriteOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"DrawSpriteOpt","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"RenderProps"},{"kind":"TypeLiteral","id":0,"members":{"sprite":[{"kind":"PropertySignature","id":0,"name":"sprite","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"SpriteData"},{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SpriteData"}]}]},"jsDoc":{"doc":"The sprite name in the asset manager, or the raw sprite data.","tags":{}}}],"frame":[{"kind":"PropertySignature","id":0,"name":"frame","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If the sprite is loaded with multiple frames, or sliced, use the frame option to specify which frame to draw.","tags":{}}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Width of sprite. If `height` is not specified it'll stretch with aspect ratio. If `tiled` is set to true it'll tiled to the specified width horizontally.","tags":{}}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Height of sprite. If `width` is not specified it'll stretch with aspect ratio. If `tiled` is set to true it'll tiled to the specified width vertically.","tags":{}}}],"tiled":[{"kind":"PropertySignature","id":0,"name":"tiled","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"When set to true, `width` and `height` will not scale the sprite but instead render multiple tiled copies of them until the specified width and height. Useful for background texture pattern etc.","tags":{}}}],"flipX":[{"kind":"PropertySignature","id":0,"name":"flipX","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If flip the texture horizontally.","tags":{}}}],"flipY":[{"kind":"PropertySignature","id":0,"name":"flipY","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If flip the texture vertically.","tags":{}}}],"quad":[{"kind":"PropertySignature","id":0,"name":"quad","type":{"kind":"TypeReference","id":0,"typeName":"Quad"},"questionToken":true,"jsDoc":{"doc":"The sub-area to render from the texture, by default it'll render the whole `quad(0, 0, 1, 1)`","tags":{}}}],"anchor":[{"kind":"PropertySignature","id":0,"name":"anchor","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Anchor"},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]},"questionToken":true,"jsDoc":{"doc":"The anchor point, or the pivot point. Default to \"topleft\".","tags":{}}}],"pos":[{"kind":"PropertySignature","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"questionToken":true,"jsDoc":{"doc":"The position","tags":{}}}]}}]},"jsDoc":{"doc":"How the sprite should look like.","tags":{}}}],"DrawTriangleOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"DrawTriangleOpt","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"RenderProps"},{"kind":"TypeLiteral","id":0,"members":{"p1":[{"kind":"PropertySignature","id":0,"name":"p1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"First point of triangle.","tags":{}}}],"p2":[{"kind":"PropertySignature","id":0,"name":"p2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Second point of triangle.","tags":{}}}],"p3":[{"kind":"PropertySignature","id":0,"name":"p3","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Third point of triangle.","tags":{}}}],"fill":[{"kind":"PropertySignature","id":0,"name":"fill","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If fill the shape with color (set this to false if you only want an outline).","tags":{}}}],"radius":[{"kind":"PropertySignature","id":0,"name":"radius","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The radius of each corner.","tags":{}}}]}}]},"jsDoc":{"doc":"How the triangle should look like.","tags":{}}}],"FrameBuffer":[{"kind":"ClassDeclaration","id":0,"name":"FrameBuffer","members":{"ctx":[{"kind":"PropertyDeclaration","id":0,"name":"ctx","type":{"kind":"TypeReference","id":0,"typeName":"GfxCtx"}}],"tex":[{"kind":"PropertyDeclaration","id":0,"name":"tex","type":{"kind":"TypeReference","id":0,"typeName":"Texture"}}],"glFramebuffer":[{"kind":"PropertyDeclaration","id":0,"name":"glFramebuffer","type":{"kind":"TypeReference","id":0,"typeName":"WebGLFramebuffer"}}],"glRenderbuffer":[{"kind":"PropertyDeclaration","id":0,"name":"glRenderbuffer","type":{"kind":"TypeReference","id":0,"typeName":"WebGLRenderbuffer"}}],"width":[{"kind":"GetAccessor","id":0,"name":"width","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"height":[{"kind":"GetAccessor","id":0,"name":"height","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"toImageData":[{"kind":"MethodDeclaration","id":0,"name":"toImageData","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"ImageData"}}],"toDataURL":[{"kind":"MethodDeclaration","id":0,"name":"toDataURL","parameters":[],"type":{"kind":"StringKeyword","id":0}}],"clear":[{"kind":"MethodDeclaration","id":0,"name":"clear","parameters":[],"type":{"kind":"VoidKeyword","id":0}}],"draw":[{"kind":"MethodDeclaration","id":0,"name":"draw","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0}}],"bind":[{"kind":"MethodDeclaration","id":0,"name":"bind","parameters":[],"type":{"kind":"VoidKeyword","id":0}}],"unbind":[{"kind":"MethodDeclaration","id":0,"name":"unbind","parameters":[],"type":{"kind":"VoidKeyword","id":0}}],"free":[{"kind":"MethodDeclaration","id":0,"name":"free","parameters":[],"type":{"kind":"VoidKeyword","id":0}}]},"jsDoc":{"tags":{"group":["GFX"]}}}],"ShaderData":[{"kind":"TypeAliasDeclaration","id":0,"name":"ShaderData","type":{"kind":"TypeReference","id":0,"typeName":"Shader"}}],"UniformValue":[{"kind":"TypeAliasDeclaration","id":0,"name":"UniformValue","type":{"kind":"UnionType","id":0,"types":[{"kind":"NumberKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Color"},{"kind":"TypeReference","id":0,"typeName":"Mat4"},{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Color"}}]},"jsDoc":{"tags":{"group":["Math"]}}}],"UniformKey":[{"kind":"TypeAliasDeclaration","id":0,"name":"UniformKey","type":{"kind":"TypeReference","id":0,"typeName":"Exclude","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"u_tex","hasExtendedUnicodeEscape":false}}]},"jsDoc":{"tags":{"group":["Math"]}}}],"Uniform":[{"kind":"TypeAliasDeclaration","id":0,"name":"Uniform","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"UniformKey"},{"kind":"TypeReference","id":0,"typeName":"UniformValue"}]},"jsDoc":{"tags":{"group":["Math"]}}}],"Shader":[{"kind":"ClassDeclaration","id":0,"name":"Shader","members":{"ctx":[{"kind":"PropertyDeclaration","id":0,"name":"ctx","type":{"kind":"TypeReference","id":0,"typeName":"GfxCtx"}}],"glProgram":[{"kind":"PropertyDeclaration","id":0,"name":"glProgram","type":{"kind":"TypeReference","id":0,"typeName":"WebGLProgram"}}],"bind":[{"kind":"MethodDeclaration","id":0,"name":"bind","parameters":[],"type":{"kind":"VoidKeyword","id":0}}],"unbind":[{"kind":"MethodDeclaration","id":0,"name":"unbind","parameters":[],"type":{"kind":"VoidKeyword","id":0}}],"send":[{"kind":"MethodDeclaration","id":0,"name":"send","parameters":[{"kind":"Parameter","id":0,"name":"uniform","type":{"kind":"TypeReference","id":0,"typeName":"Uniform"}}],"type":{"kind":"VoidKeyword","id":0}}],"free":[{"kind":"MethodDeclaration","id":0,"name":"free","parameters":[],"type":{"kind":"VoidKeyword","id":0}}]},"jsDoc":{"tags":{"group":["GFX"]}}}],"AppGfxCtx":[{"kind":"TypeAliasDeclaration","id":0,"name":"AppGfxCtx","type":{"kind":"TypeReference","id":0,"typeName":"ReturnType","typeArguments":[{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"initAppGfx"}}]}}],"undefined":[{"kind":"FirstStatement","id":0,"declarationList":{"kind":"VariableDeclarationList","id":0,"declarations":[{"kind":"VariableDeclaration","id":0,"name":"initAppGfx","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"gopt","type":{"kind":"TypeReference","id":0,"typeName":"KAPLAYOpt"}},{"kind":"Parameter","id":0,"name":"ggl","type":{"kind":"TypeReference","id":0,"typeName":"GfxCtx"}}],"type":{"kind":"TypeLiteral","id":0,"members":{"lastDrawCalls":[{"kind":"PropertySignature","id":0,"name":"lastDrawCalls","type":{"kind":"NumberKeyword","id":0}}],"ggl":[{"kind":"PropertySignature","id":0,"name":"ggl","type":{"kind":"TypeLiteral","id":0,"members":{"gl":[{"kind":"PropertySignature","id":0,"name":"gl","type":{"kind":"TypeReference","id":0,"typeName":"WebGLRenderingContext"}}],"opts":[{"kind":"PropertySignature","id":0,"name":"opts","type":{"kind":"TypeLiteral","id":0,"members":{"texFilter":[{"kind":"PropertySignature","id":0,"name":"texFilter","type":{"kind":"TypeReference","id":0,"typeName":"TexFilter"},"questionToken":true}]}}}],"onDestroy":[{"kind":"PropertySignature","id":0,"name":"onDestroy","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"UnknownKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0}}}],"destroy":[{"kind":"PropertySignature","id":0,"name":"destroy","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushTexture2D":[{"kind":"PropertySignature","id":0,"name":"pushTexture2D","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLTexture"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popTexture2D":[{"kind":"PropertySignature","id":0,"name":"popTexture2D","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushArrayBuffer":[{"kind":"PropertySignature","id":0,"name":"pushArrayBuffer","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLBuffer"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popArrayBuffer":[{"kind":"PropertySignature","id":0,"name":"popArrayBuffer","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushElementArrayBuffer":[{"kind":"PropertySignature","id":0,"name":"pushElementArrayBuffer","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLBuffer"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popElementArrayBuffer":[{"kind":"PropertySignature","id":0,"name":"popElementArrayBuffer","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushFramebuffer":[{"kind":"PropertySignature","id":0,"name":"pushFramebuffer","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLFramebuffer"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popFramebuffer":[{"kind":"PropertySignature","id":0,"name":"popFramebuffer","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushRenderbuffer":[{"kind":"PropertySignature","id":0,"name":"pushRenderbuffer","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLRenderbuffer"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popRenderbuffer":[{"kind":"PropertySignature","id":0,"name":"popRenderbuffer","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushViewport":[{"kind":"PropertySignature","id":0,"name":"pushViewport","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeLiteral","id":0,"members":{"x":[{"kind":"PropertySignature","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}}],"y":[{"kind":"PropertySignature","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"w":[{"kind":"PropertySignature","id":0,"name":"w","type":{"kind":"NumberKeyword","id":0}}],"h":[{"kind":"PropertySignature","id":0,"name":"h","type":{"kind":"NumberKeyword","id":0}}]}}}],"type":{"kind":"VoidKeyword","id":0}}}],"popViewport":[{"kind":"PropertySignature","id":0,"name":"popViewport","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushProgram":[{"kind":"PropertySignature","id":0,"name":"pushProgram","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLProgram"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popProgram":[{"kind":"PropertySignature","id":0,"name":"popProgram","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"setVertexFormat":[{"kind":"PropertySignature","id":0,"name":"setVertexFormat","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"fmt","type":{"kind":"TypeReference","id":0,"typeName":"VertexFormat"}}],"type":{"kind":"VoidKeyword","id":0}}}]}}}],"defShader":[{"kind":"PropertySignature","id":0,"name":"defShader","type":{"kind":"TypeReference","id":0,"typeName":"Shader"}}],"defTex":[{"kind":"PropertySignature","id":0,"name":"defTex","type":{"kind":"TypeReference","id":0,"typeName":"Texture"}}],"frameBuffer":[{"kind":"PropertySignature","id":0,"name":"frameBuffer","type":{"kind":"TypeReference","id":0,"typeName":"FrameBuffer"}}],"postShader":[{"kind":"PropertySignature","id":0,"name":"postShader","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"postShaderUniform":[{"kind":"PropertySignature","id":0,"name":"postShaderUniform","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Uniform"},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Uniform"}}},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"renderer":[{"kind":"PropertySignature","id":0,"name":"renderer","type":{"kind":"TypeReference","id":0,"typeName":"BatchRenderer"}}],"transform":[{"kind":"PropertySignature","id":0,"name":"transform","type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"transformStack":[{"kind":"PropertySignature","id":0,"name":"transformStack","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}}],"transformStackIndex":[{"kind":"PropertySignature","id":0,"name":"transformStackIndex","type":{"kind":"NumberKeyword","id":0}}],"bgTex":[{"kind":"PropertySignature","id":0,"name":"bgTex","type":{"kind":"TypeReference","id":0,"typeName":"Texture"}}],"bgColor":[{"kind":"PropertySignature","id":0,"name":"bgColor","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Color"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"bgAlpha":[{"kind":"PropertySignature","id":0,"name":"bgAlpha","type":{"kind":"NumberKeyword","id":0}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0}}],"viewport":[{"kind":"PropertySignature","id":0,"name":"viewport","type":{"kind":"TypeLiteral","id":0,"members":{"x":[{"kind":"PropertySignature","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}}],"y":[{"kind":"PropertySignature","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0}}]}}}],"fixed":[{"kind":"PropertySignature","id":0,"name":"fixed","type":{"kind":"BooleanKeyword","id":0}}]}}}}]}},{"kind":"FirstStatement","id":0,"declarationList":{"kind":"VariableDeclarationList","id":0,"declarations":[{"kind":"VariableDeclaration","id":0,"name":"initAssets","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"ggl","type":{"kind":"TypeReference","id":0,"typeName":"GfxCtx"}},{"kind":"Parameter","id":0,"name":"spriteAtlasPadding","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeLiteral","id":0,"members":{"urlPrefix":[{"kind":"PropertySignature","id":0,"name":"urlPrefix","type":{"kind":"StringKeyword","id":0}}],"sprites":[{"kind":"PropertySignature","id":0,"name":"sprites","type":{"kind":"TypeReference","id":0,"typeName":"AssetBucket","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SpriteData"}]}}],"fonts":[{"kind":"PropertySignature","id":0,"name":"fonts","type":{"kind":"TypeReference","id":0,"typeName":"AssetBucket","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"FontData"}]}}],"bitmapFonts":[{"kind":"PropertySignature","id":0,"name":"bitmapFonts","type":{"kind":"TypeReference","id":0,"typeName":"AssetBucket","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"GfxFont"}]}}],"sounds":[{"kind":"PropertySignature","id":0,"name":"sounds","type":{"kind":"TypeReference","id":0,"typeName":"AssetBucket","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SoundData"}]}}],"shaders":[{"kind":"PropertySignature","id":0,"name":"shaders","type":{"kind":"TypeReference","id":0,"typeName":"AssetBucket","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"Shader"}]}}],"custom":[{"kind":"PropertySignature","id":0,"name":"custom","type":{"kind":"TypeReference","id":0,"typeName":"AssetBucket","typeArguments":[{"kind":"AnyKeyword","id":0}]}}],"music":[{"kind":"PropertySignature","id":0,"name":"music","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"StringKeyword","id":0}]}}],"packer":[{"kind":"PropertySignature","id":0,"name":"packer","type":{"kind":"TypeReference","id":0,"typeName":"TexPacker"}}],"loaded":[{"kind":"PropertySignature","id":0,"name":"loaded","type":{"kind":"BooleanKeyword","id":0}}]}}}}]}},{"kind":"FirstStatement","id":0,"declarationList":{"kind":"VariableDeclarationList","id":0,"declarations":[{"kind":"VariableDeclaration","id":0,"name":"initAudio","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeLiteral","id":0,"members":{"ctx":[{"kind":"PropertySignature","id":0,"name":"ctx","type":{"kind":"TypeReference","id":0,"typeName":"AudioContext"}}],"masterNode":[{"kind":"PropertySignature","id":0,"name":"masterNode","type":{"kind":"TypeReference","id":0,"typeName":"GainNode"}}],"burpSnd":[{"kind":"PropertySignature","id":0,"name":"burpSnd","type":{"kind":"TypeReference","id":0,"typeName":"SoundData"}}]}}}}]}},{"kind":"FirstStatement","id":0,"declarationList":{"kind":"VariableDeclarationList","id":0,"declarations":[{"kind":"VariableDeclaration","id":0,"name":"initGame","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeLiteral","id":0,"members":{"events":[{"kind":"PropertySignature","id":0,"name":"events","type":{"kind":"TypeReference","id":0,"typeName":"KEventHandler","typeArguments":[{"kind":"TypeLiteral","id":0,"members":{"mouseMove":[{"kind":"PropertySignature","id":0,"name":"mouseMove","type":{"kind":"TupleType","id":0,"elements":[]}}],"mouseDown":[{"kind":"PropertySignature","id":0,"name":"mouseDown","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"}]}}],"mousePress":[{"kind":"PropertySignature","id":0,"name":"mousePress","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"}]}}],"mouseRelease":[{"kind":"PropertySignature","id":0,"name":"mouseRelease","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"}]}}],"charInput":[{"kind":"PropertySignature","id":0,"name":"charInput","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"keyPress":[{"kind":"PropertySignature","id":0,"name":"keyPress","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"keyDown":[{"kind":"PropertySignature","id":0,"name":"keyDown","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"keyPressRepeat":[{"kind":"PropertySignature","id":0,"name":"keyPressRepeat","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"keyRelease":[{"kind":"PropertySignature","id":0,"name":"keyRelease","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"touchStart":[{"kind":"PropertySignature","id":0,"name":"touchStart","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Touch"}]}}],"touchMove":[{"kind":"PropertySignature","id":0,"name":"touchMove","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Touch"}]}}],"touchEnd":[{"kind":"PropertySignature","id":0,"name":"touchEnd","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Touch"}]}}],"gamepadButtonDown":[{"kind":"PropertySignature","id":0,"name":"gamepadButtonDown","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"gamepadButtonPress":[{"kind":"PropertySignature","id":0,"name":"gamepadButtonPress","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"gamepadButtonRelease":[{"kind":"PropertySignature","id":0,"name":"gamepadButtonRelease","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"gamepadStick":[{"kind":"PropertySignature","id":0,"name":"gamepadStick","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]}}],"gamepadConnect":[{"kind":"PropertySignature","id":0,"name":"gamepadConnect","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Gamepad"}]}}],"gamepadDisconnect":[{"kind":"PropertySignature","id":0,"name":"gamepadDisconnect","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Gamepad"}]}}],"scroll":[{"kind":"PropertySignature","id":0,"name":"scroll","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"}]}}],"add":[{"kind":"PropertySignature","id":0,"name":"add","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"GameObj"}]}}],"destroy":[{"kind":"PropertySignature","id":0,"name":"destroy","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"GameObj"}]}}],"use":[{"kind":"PropertySignature","id":0,"name":"use","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"GameObj"},{"kind":"StringKeyword","id":0}]}}],"unuse":[{"kind":"PropertySignature","id":0,"name":"unuse","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"GameObj"},{"kind":"StringKeyword","id":0}]}}],"tag":[{"kind":"PropertySignature","id":0,"name":"tag","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"GameObj"},{"kind":"StringKeyword","id":0}]}}],"untag":[{"kind":"PropertySignature","id":0,"name":"untag","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"GameObj"},{"kind":"StringKeyword","id":0}]}}],"load":[{"kind":"PropertySignature","id":0,"name":"load","type":{"kind":"TupleType","id":0,"elements":[]}}],"loadError":[{"kind":"PropertySignature","id":0,"name":"loadError","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"AnyKeyword","id":0}]}]}}],"loading":[{"kind":"PropertySignature","id":0,"name":"loading","type":{"kind":"TupleType","id":0,"elements":[{"kind":"NumberKeyword","id":0}]}}],"error":[{"kind":"PropertySignature","id":0,"name":"error","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Error"}]}}],"input":[{"kind":"PropertySignature","id":0,"name":"input","type":{"kind":"TupleType","id":0,"elements":[]}}],"frameEnd":[{"kind":"PropertySignature","id":0,"name":"frameEnd","type":{"kind":"TupleType","id":0,"elements":[]}}],"resize":[{"kind":"PropertySignature","id":0,"name":"resize","type":{"kind":"TupleType","id":0,"elements":[]}}],"sceneLeave":[{"kind":"PropertySignature","id":0,"name":"sceneLeave","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"sceneEnter":[{"kind":"PropertySignature","id":0,"name":"sceneEnter","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}]}}]}}],"objEvents":[{"kind":"PropertySignature","id":0,"name":"objEvents","type":{"kind":"TypeReference","id":0,"typeName":"KEventHandler","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"GameObjEvents"}]}}],"root":[{"kind":"PropertySignature","id":0,"name":"root","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"TimerComp"}]}}],"gravity":[{"kind":"PropertySignature","id":0,"name":"gravity","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"scenes":[{"kind":"PropertySignature","id":0,"name":"scenes","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SceneName"},{"kind":"TypeReference","id":0,"typeName":"SceneDef"}]}}],"currentScene":[{"kind":"PropertySignature","id":0,"name":"currentScene","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"SceneName"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"layers":[{"kind":"PropertySignature","id":0,"name":"layers","type":{"kind":"UnionType","id":0,"types":[{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"defaultLayerIndex":[{"kind":"PropertySignature","id":0,"name":"defaultLayerIndex","type":{"kind":"NumberKeyword","id":0}}],"logs":[{"kind":"PropertySignature","id":0,"name":"logs","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeLiteral","id":0,"members":{"msg":[{"kind":"PropertySignature","id":0,"name":"msg","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"TypeLiteral","id":0,"members":{}}]}}],"time":[{"kind":"PropertySignature","id":0,"name":"time","type":{"kind":"NumberKeyword","id":0}}]}}}}],"cam":[{"kind":"PropertySignature","id":0,"name":"cam","type":{"kind":"TypeLiteral","id":0,"members":{"pos":[{"kind":"PropertySignature","id":0,"name":"pos","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"scale":[{"kind":"PropertySignature","id":0,"name":"scale","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"angle":[{"kind":"PropertySignature","id":0,"name":"angle","type":{"kind":"NumberKeyword","id":0}}],"shake":[{"kind":"PropertySignature","id":0,"name":"shake","type":{"kind":"NumberKeyword","id":0}}],"transform":[{"kind":"PropertySignature","id":0,"name":"transform","type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}]}}}]}}}}]}},{"kind":"FirstStatement","id":0,"declarationList":{"kind":"VariableDeclarationList","id":0,"declarations":[{"kind":"VariableDeclaration","id":0,"name":"initApp","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeLiteral","id":0,"members":{"canvas":[{"kind":"PropertySignature","id":0,"name":"canvas","type":{"kind":"TypeReference","id":0,"typeName":"HTMLCanvasElement"}}],"touchToMouse":[{"kind":"PropertySignature","id":0,"name":"touchToMouse","type":{"kind":"BooleanKeyword","id":0},"questionToken":true}],"gamepads":[{"kind":"PropertySignature","id":0,"name":"gamepads","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"GamepadDef"}]},"questionToken":true}],"pixelDensity":[{"kind":"PropertySignature","id":0,"name":"pixelDensity","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"maxFPS":[{"kind":"PropertySignature","id":0,"name":"maxFPS","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"buttons":[{"kind":"PropertySignature","id":0,"name":"buttons","type":{"kind":"TypeReference","id":0,"typeName":"ButtonsDef"},"questionToken":true}]}}}],"type":{"kind":"TypeLiteral","id":0,"members":{"state":[{"kind":"PropertySignature","id":0,"name":"state","type":{"kind":"TypeLiteral","id":0,"members":{"canvas":[{"kind":"PropertySignature","id":0,"name":"canvas","type":{"kind":"TypeReference","id":0,"typeName":"HTMLCanvasElement"}}],"buttons":[{"kind":"PropertySignature","id":0,"name":"buttons","type":{"kind":"TypeReference","id":0,"typeName":"ButtonsDef"}}],"buttonsByKey":[{"kind":"PropertySignature","id":0,"name":"buttonsByKey","type":{"kind":"TypeReference","id":0,"typeName":"Map","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"buttonsByMouse":[{"kind":"PropertySignature","id":0,"name":"buttonsByMouse","type":{"kind":"TypeReference","id":0,"typeName":"Map","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"buttonsByGamepad":[{"kind":"PropertySignature","id":0,"name":"buttonsByGamepad","type":{"kind":"TypeReference","id":0,"typeName":"Map","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"buttonsByKeyCode":[{"kind":"PropertySignature","id":0,"name":"buttonsByKeyCode","type":{"kind":"TypeReference","id":0,"typeName":"Map","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"loopID":[{"kind":"PropertySignature","id":0,"name":"loopID","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}},{"kind":"NumberKeyword","id":0}]}}],"stopped":[{"kind":"PropertySignature","id":0,"name":"stopped","type":{"kind":"BooleanKeyword","id":0}}],"dt":[{"kind":"PropertySignature","id":0,"name":"dt","type":{"kind":"NumberKeyword","id":0}}],"fixedDt":[{"kind":"PropertySignature","id":0,"name":"fixedDt","type":{"kind":"NumberKeyword","id":0}}],"restDt":[{"kind":"PropertySignature","id":0,"name":"restDt","type":{"kind":"NumberKeyword","id":0}}],"time":[{"kind":"PropertySignature","id":0,"name":"time","type":{"kind":"NumberKeyword","id":0}}],"realTime":[{"kind":"PropertySignature","id":0,"name":"realTime","type":{"kind":"NumberKeyword","id":0}}],"fpsCounter":[{"kind":"PropertySignature","id":0,"name":"fpsCounter","type":{"kind":"TypeReference","id":0,"typeName":"FPSCounter"}}],"timeScale":[{"kind":"PropertySignature","id":0,"name":"timeScale","type":{"kind":"NumberKeyword","id":0}}],"skipTime":[{"kind":"PropertySignature","id":0,"name":"skipTime","type":{"kind":"BooleanKeyword","id":0}}],"isHidden":[{"kind":"PropertySignature","id":0,"name":"isHidden","type":{"kind":"BooleanKeyword","id":0}}],"numFrames":[{"kind":"PropertySignature","id":0,"name":"numFrames","type":{"kind":"NumberKeyword","id":0}}],"mousePos":[{"kind":"PropertySignature","id":0,"name":"mousePos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"mouseDeltaPos":[{"kind":"PropertySignature","id":0,"name":"mouseDeltaPos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"keyState":[{"kind":"PropertySignature","id":0,"name":"keyState","type":{"kind":"TypeReference","id":0,"typeName":"ButtonState","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"mouseState":[{"kind":"PropertySignature","id":0,"name":"mouseState","type":{"kind":"TypeReference","id":0,"typeName":"ButtonState","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"}]}}],"mergedGamepadState":[{"kind":"PropertySignature","id":0,"name":"mergedGamepadState","type":{"kind":"TypeReference","id":0,"typeName":"GamepadState"}}],"gamepadStates":[{"kind":"PropertySignature","id":0,"name":"gamepadStates","type":{"kind":"TypeReference","id":0,"typeName":"Map","typeArguments":[{"kind":"NumberKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"GamepadState"}]}}],"lastInputDevice":[{"kind":"PropertySignature","id":0,"name":"lastInputDevice","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"mouse","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"keyboard","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"gamepad","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"buttonState":[{"kind":"PropertySignature","id":0,"name":"buttonState","type":{"kind":"TypeReference","id":0,"typeName":"ButtonState","typeArguments":[{"kind":"StringKeyword","id":0}]}}],"gamepads":[{"kind":"PropertySignature","id":0,"name":"gamepads","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}}],"charInputted":[{"kind":"PropertySignature","id":0,"name":"charInputted","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}}],"isMouseMoved":[{"kind":"PropertySignature","id":0,"name":"isMouseMoved","type":{"kind":"BooleanKeyword","id":0}}],"lastWidth":[{"kind":"PropertySignature","id":0,"name":"lastWidth","type":{"kind":"NumberKeyword","id":0}}],"lastHeight":[{"kind":"PropertySignature","id":0,"name":"lastHeight","type":{"kind":"NumberKeyword","id":0}}],"events":[{"kind":"PropertySignature","id":0,"name":"events","type":{"kind":"TypeReference","id":0,"typeName":"KEventHandler","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"AppEventMap"}]}}]}}}],"dt":[{"kind":"PropertySignature","id":0,"name":"dt","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"NumberKeyword","id":0}}}],"fixedDt":[{"kind":"PropertySignature","id":0,"name":"fixedDt","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"NumberKeyword","id":0}}}],"restDt":[{"kind":"PropertySignature","id":0,"name":"restDt","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"NumberKeyword","id":0}}}],"time":[{"kind":"PropertySignature","id":0,"name":"time","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"NumberKeyword","id":0}}}],"run":[{"kind":"PropertySignature","id":0,"name":"run","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"fixedUpdate","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"update","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"processInput","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"resetInput","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0}}}],"canvas":[{"kind":"PropertySignature","id":0,"name":"canvas","type":{"kind":"TypeReference","id":0,"typeName":"HTMLCanvasElement"}}],"fps":[{"kind":"PropertySignature","id":0,"name":"fps","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"NumberKeyword","id":0}}}],"numFrames":[{"kind":"PropertySignature","id":0,"name":"numFrames","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"NumberKeyword","id":0}}}],"quit":[{"kind":"PropertySignature","id":0,"name":"quit","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"isHidden":[{"kind":"PropertySignature","id":0,"name":"isHidden","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"BooleanKeyword","id":0}}}],"setFullscreen":[{"kind":"PropertySignature","id":0,"name":"setFullscreen","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"f","questionToken":true,"type":{"kind":"BooleanKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"isFullscreen":[{"kind":"PropertySignature","id":0,"name":"isFullscreen","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"BooleanKeyword","id":0}}}],"setCursor":[{"kind":"PropertySignature","id":0,"name":"setCursor","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"c","type":{"kind":"TypeReference","id":0,"typeName":"Cursor"}}],"type":{"kind":"VoidKeyword","id":0}}}],"screenshot":[{"kind":"PropertySignature","id":0,"name":"screenshot","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"StringKeyword","id":0}}}],"getGamepads":[{"kind":"PropertySignature","id":0,"name":"getGamepads","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}}}],"getCursor":[{"kind":"PropertySignature","id":0,"name":"getCursor","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Cursor"}}}],"setCursorLocked":[{"kind":"PropertySignature","id":0,"name":"setCursorLocked","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"b","type":{"kind":"BooleanKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"isCursorLocked":[{"kind":"PropertySignature","id":0,"name":"isCursorLocked","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"BooleanKeyword","id":0}}}],"isTouchscreen":[{"kind":"PropertySignature","id":0,"name":"isTouchscreen","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"BooleanKeyword","id":0}}}],"mousePos":[{"kind":"PropertySignature","id":0,"name":"mousePos","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}}],"mouseDeltaPos":[{"kind":"PropertySignature","id":0,"name":"mouseDeltaPos","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}}],"isKeyDown":[{"kind":"PropertySignature","id":0,"name":"isKeyDown","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isKeyPressed":[{"kind":"PropertySignature","id":0,"name":"isKeyPressed","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isKeyPressedRepeat":[{"kind":"PropertySignature","id":0,"name":"isKeyPressedRepeat","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isKeyReleased":[{"kind":"PropertySignature","id":0,"name":"isKeyReleased","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isMouseDown":[{"kind":"PropertySignature","id":0,"name":"isMouseDown","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isMousePressed":[{"kind":"PropertySignature","id":0,"name":"isMousePressed","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isMouseReleased":[{"kind":"PropertySignature","id":0,"name":"isMouseReleased","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isMouseMoved":[{"kind":"PropertySignature","id":0,"name":"isMouseMoved","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"BooleanKeyword","id":0}}}],"isGamepadButtonPressed":[{"kind":"PropertySignature","id":0,"name":"isGamepadButtonPressed","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isGamepadButtonDown":[{"kind":"PropertySignature","id":0,"name":"isGamepadButtonDown","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isGamepadButtonReleased":[{"kind":"PropertySignature","id":0,"name":"isGamepadButtonReleased","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"getGamepadStick":[{"kind":"PropertySignature","id":0,"name":"getGamepadStick","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"stick","type":{"kind":"TypeReference","id":0,"typeName":"GamepadStick"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}}],"isButtonPressed":[{"kind":"PropertySignature","id":0,"name":"isButtonPressed","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isButtonDown":[{"kind":"PropertySignature","id":0,"name":"isButtonDown","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isButtonReleased":[{"kind":"PropertySignature","id":0,"name":"isButtonReleased","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"setButton":[{"kind":"PropertySignature","id":0,"name":"setButton","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"binding","type":{"kind":"TypeReference","id":0,"typeName":"ButtonBinding"}}],"type":{"kind":"VoidKeyword","id":0}}}],"getButton":[{"kind":"PropertySignature","id":0,"name":"getButton","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"ButtonBinding"}}}],"pressButton":[{"kind":"PropertySignature","id":0,"name":"pressButton","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"releaseButton":[{"kind":"PropertySignature","id":0,"name":"releaseButton","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"charInputted":[{"kind":"PropertySignature","id":0,"name":"charInputted","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}}}],"onResize":[{"kind":"PropertySignature","id":0,"name":"onResize","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onKeyDown":[{"kind":"PropertySignature","id":0,"name":"onKeyDown","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onKeyPress":[{"kind":"PropertySignature","id":0,"name":"onKeyPress","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onKeyPressRepeat":[{"kind":"PropertySignature","id":0,"name":"onKeyPressRepeat","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onKeyRelease":[{"kind":"PropertySignature","id":0,"name":"onKeyRelease","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onMouseDown":[{"kind":"PropertySignature","id":0,"name":"onMouseDown","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"mouse","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onMousePress":[{"kind":"PropertySignature","id":0,"name":"onMousePress","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"mouse","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onMouseRelease":[{"kind":"PropertySignature","id":0,"name":"onMouseRelease","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"mouse","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onMouseMove":[{"kind":"PropertySignature","id":0,"name":"onMouseMove","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"dpos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onCharInput":[{"kind":"PropertySignature","id":0,"name":"onCharInput","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"ch","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onTouchStart":[{"kind":"PropertySignature","id":0,"name":"onTouchStart","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"TypeReference","id":0,"typeName":"Touch"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onTouchMove":[{"kind":"PropertySignature","id":0,"name":"onTouchMove","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"TypeReference","id":0,"typeName":"Touch"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onTouchEnd":[{"kind":"PropertySignature","id":0,"name":"onTouchEnd","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"TypeReference","id":0,"typeName":"Touch"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onScroll":[{"kind":"PropertySignature","id":0,"name":"onScroll","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"delta","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onHide":[{"kind":"PropertySignature","id":0,"name":"onHide","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onShow":[{"kind":"PropertySignature","id":0,"name":"onShow","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onGamepadButtonDown":[{"kind":"PropertySignature","id":0,"name":"onGamepadButtonDown","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onGamepadButtonPress":[{"kind":"PropertySignature","id":0,"name":"onGamepadButtonPress","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onGamepadButtonRelease":[{"kind":"PropertySignature","id":0,"name":"onGamepadButtonRelease","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onGamepadStick":[{"kind":"PropertySignature","id":0,"name":"onGamepadStick","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"stick","type":{"kind":"TypeReference","id":0,"typeName":"GamepadStick"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"value","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"gp","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onGamepadConnect":[{"kind":"PropertySignature","id":0,"name":"onGamepadConnect","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onGamepadDisconnect":[{"kind":"PropertySignature","id":0,"name":"onGamepadDisconnect","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onButtonPress":[{"kind":"PropertySignature","id":0,"name":"onButtonPress","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"StringKeyword","id":0}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onButtonDown":[{"kind":"PropertySignature","id":0,"name":"onButtonDown","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"StringKeyword","id":0}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onButtonRelease":[{"kind":"PropertySignature","id":0,"name":"onButtonRelease","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"StringKeyword","id":0}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"getLastInputDeviceType":[{"kind":"PropertySignature","id":0,"name":"getLastInputDeviceType","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"ButtonBindingDevice"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}}],"events":[{"kind":"PropertySignature","id":0,"name":"events","type":{"kind":"TypeReference","id":0,"typeName":"KEventHandler","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"AppEventMap"}]}}]}}}}]}},{"kind":"FirstStatement","id":0,"declarationList":{"kind":"VariableDeclarationList","id":0,"declarations":[{"kind":"VariableDeclaration","id":0,"name":"kaplay","type":{"kind":"FunctionType","id":0,"typeParameters":[{"kind":"TypeParameter","id":0,"name":"TPlugins","constraint":{"kind":"TypeReference","id":0,"typeName":"PluginList","typeArguments":[{"kind":"UnknownKeyword","id":0}]},"default":{"kind":"TupleType","id":0,"elements":[{"kind":"UndefinedKeyword","id":0}]}},{"kind":"TypeParameter","id":0,"name":"TButtons","constraint":{"kind":"TypeReference","id":0,"typeName":"ButtonsDef"},"default":{"kind":"TypeLiteral","id":0,"members":{}}},{"kind":"TypeParameter","id":0,"name":"TButtonsName","constraint":{"kind":"StringKeyword","id":0},"default":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeOperator","id":0,"operator":143,"type":{"kind":"TypeReference","id":0,"typeName":"TButtons"}},{"kind":"StringKeyword","id":0}]}}],"parameters":[{"kind":"Parameter","id":0,"name":"gopt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"KAPLAYOpt","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"TPlugins"},{"kind":"TypeReference","id":0,"typeName":"TButtons"}]}}],"type":{"kind":"ConditionalType","id":0,"checkType":{"kind":"TypeReference","id":0,"typeName":"TPlugins"},"extendsType":{"kind":"TupleType","id":0,"elements":[{"kind":"UndefinedKeyword","id":0}]},"trueType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"TButtons"},{"kind":"TypeReference","id":0,"typeName":"TButtonsName"}]},"falseType":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"TButtons"},{"kind":"TypeReference","id":0,"typeName":"TButtonsName"}]},{"kind":"TypeReference","id":0,"typeName":"MergePlugins","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"TPlugins"}]}]}}}}]},"jsDoc":{"doc":"Initialize KAPLAY context. The starting point of all KAPLAY games.","tags":{"example":["```js\n// Start KAPLAY with default options (will create a fullscreen canvas under <body>)\nkaplay()\n\n// Init with some options\nkaplay({\n width: 320,\n height: 240,\n font: \"sans-serif\",\n canvas: document.querySelector(\"#mycanvas\"),\n background: [ 0, 0, 255, ],\n})\n\n// All KAPLAY functions are imported to global after calling kaplay()\nadd()\nonUpdate()\nonKeyPress()\nvec2()\n\n// If you want to prevent KAPLAY from importing all functions to global and use a context handle for all KAPLAY functions\nconst k = kaplay({ global: false })\n\nk.add(...)\nk.onUpdate(...)\nk.onKeyPress(...)\nk.vec2(...)\n```"],"group":["Start"]}}},{"kind":"ExportDeclaration","id":0,"isTypeOnly":false,"exportClause":{"kind":"NamedExports","id":0,"elements":[{"kind":"ExportSpecifier","id":0,"isTypeOnly":false,"propertyName":{"kind":"Identifier","id":0,"escapedText":"kaplay"},"name":"default"}]}},{"kind":"ExportDeclaration","id":0,"isTypeOnly":false,"exportClause":{"kind":"NamedExports","id":0,"elements":[]}}],"TexPacker":[{"kind":"ClassDeclaration","id":0,"name":"TexPacker","members":{"lastTextureId":[{"kind":"PropertyDeclaration","id":0,"name":"lastTextureId"}],"textures":[{"kind":"PropertyDeclaration","id":0,"name":"textures"}],"bigTextures":[{"kind":"PropertyDeclaration","id":0,"name":"bigTextures"}],"texturesPosition":[{"kind":"PropertyDeclaration","id":0,"name":"texturesPosition"}],"canvas":[{"kind":"PropertyDeclaration","id":0,"name":"canvas"}],"c2d":[{"kind":"PropertyDeclaration","id":0,"name":"c2d"}],"x":[{"kind":"PropertyDeclaration","id":0,"name":"x"}],"y":[{"kind":"PropertyDeclaration","id":0,"name":"y"}],"curHeight":[{"kind":"PropertyDeclaration","id":0,"name":"curHeight"}],"gfx":[{"kind":"PropertyDeclaration","id":0,"name":"gfx"}],"padding":[{"kind":"PropertyDeclaration","id":0,"name":"padding"}],"add":[{"kind":"MethodDeclaration","id":0,"name":"add","parameters":[{"kind":"Parameter","id":0,"name":"img","type":{"kind":"TypeReference","id":0,"typeName":"ImageSource"}}],"type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Texture"},{"kind":"TypeReference","id":0,"typeName":"Quad"},{"kind":"NumberKeyword","id":0}]}}],"free":[{"kind":"MethodDeclaration","id":0,"name":"free","parameters":[],"type":{"kind":"VoidKeyword","id":0}}],"remove":[{"kind":"MethodDeclaration","id":0,"name":"remove","parameters":[{"kind":"Parameter","id":0,"name":"packerId","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}]}}],"SoundData":[{"kind":"ClassDeclaration","id":0,"name":"SoundData","members":{"buf":[{"kind":"PropertyDeclaration","id":0,"name":"buf","type":{"kind":"TypeReference","id":0,"typeName":"AudioBuffer"}}],"fromAudioBuffer":[{"kind":"MethodDeclaration","id":0,"name":"fromAudioBuffer","parameters":[{"kind":"Parameter","id":0,"name":"buf","type":{"kind":"TypeReference","id":0,"typeName":"AudioBuffer"}}],"type":{"kind":"TypeReference","id":0,"typeName":"SoundData"}}],"fromArrayBuffer":[{"kind":"MethodDeclaration","id":0,"name":"fromArrayBuffer","parameters":[{"kind":"Parameter","id":0,"name":"buf","type":{"kind":"TypeReference","id":0,"typeName":"ArrayBuffer"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Promise","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SoundData"}]}}],"fromURL":[{"kind":"MethodDeclaration","id":0,"name":"fromURL","parameters":[{"kind":"Parameter","id":0,"name":"url","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Promise","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SoundData"}]}}]}}],"SpriteAnim":[{"kind":"TypeAliasDeclaration","id":0,"name":"SpriteAnim","type":{"kind":"UnionType","id":0,"types":[{"kind":"NumberKeyword","id":0},{"kind":"TypeLiteral","id":0,"members":{"from":[{"kind":"PropertySignature","id":0,"name":"from","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"The starting frame.","tags":{}}}],"to":[{"kind":"PropertySignature","id":0,"name":"to","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"The end frame.","tags":{}}}],"loop":[{"kind":"PropertySignature","id":0,"name":"loop","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If this anim should be played in loop.","tags":{}}}],"pingpong":[{"kind":"PropertySignature","id":0,"name":"pingpong","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"When looping should it move back instead of go to start frame again.","tags":{}}}],"speed":[{"kind":"PropertySignature","id":0,"name":"speed","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"This anim's speed in frames per second.","tags":{}}}]}}]},"jsDoc":{"doc":"Frame-based animation configuration.","tags":{}}}],"SpriteAnims":[{"kind":"TypeAliasDeclaration","id":0,"name":"SpriteAnims","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"SpriteAnim"}]},"jsDoc":{"doc":"A dict of name <-> animation.","tags":{}}}],"LoadSpriteOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"LoadSpriteOpt","members":{"sliceX":[{"kind":"PropertySignature","id":0,"name":"sliceX","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If the defined area contains multiple sprites, how many frames are in the area horizontally.","tags":{}}}],"sliceY":[{"kind":"PropertySignature","id":0,"name":"sliceY","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If the defined area contains multiple sprites, how many frames are in the area vertically.","tags":{}}}],"slice9":[{"kind":"PropertySignature","id":0,"name":"slice9","type":{"kind":"TypeReference","id":0,"typeName":"NineSlice"},"questionToken":true,"jsDoc":{"doc":"9 slice sprite for proportional scaling.","tags":{"since":["v3000.0"]}}}],"frames":[{"kind":"PropertySignature","id":0,"name":"frames","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Quad"}},"questionToken":true,"jsDoc":{"doc":"Individual frames.","tags":{"since":["v3000.0"]}}}],"anims":[{"kind":"PropertySignature","id":0,"name":"anims","type":{"kind":"TypeReference","id":0,"typeName":"SpriteAnims"},"questionToken":true,"jsDoc":{"doc":"Animation configuration.","tags":{}}}]},"jsDoc":{"doc":"Sprite loading configuration.","tags":{}}}],"NineSlice":[{"kind":"TypeAliasDeclaration","id":0,"name":"NineSlice","type":{"kind":"TypeLiteral","id":0,"members":{"left":[{"kind":"PropertySignature","id":0,"name":"left","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"The width of the 9-slice's left column.","tags":{}}}],"right":[{"kind":"PropertySignature","id":0,"name":"right","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"The width of the 9-slice's right column.","tags":{}}}],"top":[{"kind":"PropertySignature","id":0,"name":"top","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"The height of the 9-slice's top row.","tags":{}}}],"bottom":[{"kind":"PropertySignature","id":0,"name":"bottom","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"The height of the 9-slice's bottom row.","tags":{}}}]}}}],"LoadSpriteSrc":[{"kind":"TypeAliasDeclaration","id":0,"name":"LoadSpriteSrc","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"ImageSource"}]}}],"SpriteData":[{"kind":"ClassDeclaration","id":0,"name":"SpriteData","members":{"tex":[{"kind":"PropertyDeclaration","id":0,"name":"tex","type":{"kind":"TypeReference","id":0,"typeName":"Texture"}}],"frames":[{"kind":"PropertyDeclaration","id":0,"name":"frames","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Quad"}}}],"anims":[{"kind":"PropertyDeclaration","id":0,"name":"anims","type":{"kind":"TypeReference","id":0,"typeName":"SpriteAnims"}}],"slice9":[{"kind":"PropertyDeclaration","id":0,"name":"slice9","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"NineSlice"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"packerId":[{"kind":"PropertyDeclaration","id":0,"name":"packerId","type":{"kind":"UnionType","id":0,"types":[{"kind":"NumberKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"width":[{"kind":"GetAccessor","id":0,"name":"width","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"tags":{"since":["v3001.0"]}}}],"height":[{"kind":"GetAccessor","id":0,"name":"height","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"from":[{"kind":"MethodDeclaration","id":0,"name":"from","parameters":[{"kind":"Parameter","id":0,"name":"src","type":{"kind":"TypeReference","id":0,"typeName":"LoadSpriteSrc"}},{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"LoadSpriteOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Promise","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SpriteData"}]}}],"fromImage":[{"kind":"MethodDeclaration","id":0,"name":"fromImage","parameters":[{"kind":"Parameter","id":0,"name":"data","type":{"kind":"TypeReference","id":0,"typeName":"ImageSource"}},{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"LoadSpriteOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"SpriteData"}}],"fromURL":[{"kind":"MethodDeclaration","id":0,"name":"fromURL","parameters":[{"kind":"Parameter","id":0,"name":"url","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"LoadSpriteOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Promise","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SpriteData"}]}}]}}],"Asset":[{"kind":"ClassDeclaration","id":0,"name":"Asset","typeParameters":[{"kind":"TypeParameter","id":0,"name":"D"}],"members":{"loaded":[{"kind":"PropertyDeclaration","id":0,"name":"loaded","type":{"kind":"BooleanKeyword","id":0}},{"kind":"MethodDeclaration","id":0,"name":"loaded","typeParameters":[{"kind":"TypeParameter","id":0,"name":"D"}],"parameters":[{"kind":"Parameter","id":0,"name":"data","type":{"kind":"TypeReference","id":0,"typeName":"D"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"D"}]}}],"data":[{"kind":"PropertyDeclaration","id":0,"name":"data","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"D"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"error":[{"kind":"PropertyDeclaration","id":0,"name":"error","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Error"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"onLoadEvents":[{"kind":"PropertyDeclaration","id":0,"name":"onLoadEvents"}],"onErrorEvents":[{"kind":"PropertyDeclaration","id":0,"name":"onErrorEvents"}],"onFinishEvents":[{"kind":"PropertyDeclaration","id":0,"name":"onFinishEvents"}],"onLoad":[{"kind":"MethodDeclaration","id":0,"name":"onLoad","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"data","type":{"kind":"TypeReference","id":0,"typeName":"D"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"ThisType","id":0}}],"onError":[{"kind":"MethodDeclaration","id":0,"name":"onError","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"err","type":{"kind":"TypeReference","id":0,"typeName":"Error"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"ThisType","id":0}}],"onFinish":[{"kind":"MethodDeclaration","id":0,"name":"onFinish","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"ThisType","id":0}}],"then":[{"kind":"MethodDeclaration","id":0,"name":"then","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"data","type":{"kind":"TypeReference","id":0,"typeName":"D"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"D"}]}}],"catch":[{"kind":"MethodDeclaration","id":0,"name":"catch","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"err","type":{"kind":"TypeReference","id":0,"typeName":"Error"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"D"}]}}],"finally":[{"kind":"MethodDeclaration","id":0,"name":"finally","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"D"}]}}]},"jsDoc":{"doc":"An asset is a resource that is loaded asynchronously.\n\nIt can be a sprite, a sound, a font, a shader, etc.","tags":{}}}],"AssetBucket":[{"kind":"ClassDeclaration","id":0,"name":"AssetBucket","typeParameters":[{"kind":"TypeParameter","id":0,"name":"D"}],"members":{"assets":[{"kind":"PropertyDeclaration","id":0,"name":"assets","type":{"kind":"TypeReference","id":0,"typeName":"Map","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"D"}]}]}}],"lastUID":[{"kind":"PropertyDeclaration","id":0,"name":"lastUID","type":{"kind":"NumberKeyword","id":0}}],"add":[{"kind":"MethodDeclaration","id":0,"name":"add","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}},{"kind":"Parameter","id":0,"name":"loader","type":{"kind":"TypeReference","id":0,"typeName":"Promise","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"D"}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"D"}]}}],"addLoaded":[{"kind":"MethodDeclaration","id":0,"name":"addLoaded","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}},{"kind":"Parameter","id":0,"name":"data","type":{"kind":"TypeReference","id":0,"typeName":"D"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"D"}]}}],"get":[{"kind":"MethodDeclaration","id":0,"name":"get","parameters":[{"kind":"Parameter","id":0,"name":"handle","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"D"}]},{"kind":"UndefinedKeyword","id":0}]}}],"progress":[{"kind":"MethodDeclaration","id":0,"name":"progress","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"getFailedAssets":[{"kind":"MethodDeclaration","id":0,"name":"getFailedAssets","parameters":[],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"D"}]}]}}}]}}],"AssetsCtx":[{"kind":"TypeAliasDeclaration","id":0,"name":"AssetsCtx","type":{"kind":"TypeReference","id":0,"typeName":"ReturnType","typeArguments":[{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"initAssets"}}]}}],"AsepriteData":[{"kind":"TypeAliasDeclaration","id":0,"name":"AsepriteData","type":{"kind":"TypeLiteral","id":0,"members":{"frames":[{"kind":"PropertySignature","id":0,"name":"frames","type":{"kind":"TypeReference","id":0,"typeName":"Array","typeArguments":[{"kind":"TypeLiteral","id":0,"members":{"frame":[{"kind":"PropertySignature","id":0,"name":"frame","type":{"kind":"TypeLiteral","id":0,"members":{"x":[{"kind":"PropertySignature","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}}],"y":[{"kind":"PropertySignature","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"w":[{"kind":"PropertySignature","id":0,"name":"w","type":{"kind":"NumberKeyword","id":0}}],"h":[{"kind":"PropertySignature","id":0,"name":"h","type":{"kind":"NumberKeyword","id":0}}]}}}]}}]}}],"meta":[{"kind":"PropertySignature","id":0,"name":"meta","type":{"kind":"TypeLiteral","id":0,"members":{"size":[{"kind":"PropertySignature","id":0,"name":"size","type":{"kind":"TypeLiteral","id":0,"members":{"w":[{"kind":"PropertySignature","id":0,"name":"w","type":{"kind":"NumberKeyword","id":0}}],"h":[{"kind":"PropertySignature","id":0,"name":"h","type":{"kind":"NumberKeyword","id":0}}]}}}],"frameTags":[{"kind":"PropertySignature","id":0,"name":"frameTags","type":{"kind":"TypeReference","id":0,"typeName":"Array","typeArguments":[{"kind":"TypeLiteral","id":0,"members":{"from":[{"kind":"PropertySignature","id":0,"name":"from","type":{"kind":"NumberKeyword","id":0}}],"to":[{"kind":"PropertySignature","id":0,"name":"to","type":{"kind":"NumberKeyword","id":0}}],"direction":[{"kind":"PropertySignature","id":0,"name":"direction","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"forward","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"reverse","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"pingpong","hasExtendedUnicodeEscape":false}}]}}]}}]}}]}}}]}}}],"PeditFile":[{"kind":"InterfaceDeclaration","id":0,"name":"PeditFile","members":{"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0}}],"frames":[{"kind":"PropertySignature","id":0,"name":"frames","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}}],"anims":[{"kind":"PropertySignature","id":0,"name":"anims","type":{"kind":"TypeReference","id":0,"typeName":"SpriteAnims"}}]}}],"SpriteAtlasData":[{"kind":"TypeAliasDeclaration","id":0,"name":"SpriteAtlasData","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"SpriteAtlasEntry"}]}}],"SpriteAtlasEntry":[{"kind":"TypeAliasDeclaration","id":0,"name":"SpriteAtlasEntry","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"LoadSpriteOpt"},{"kind":"TypeLiteral","id":0,"members":{"x":[{"kind":"PropertySignature","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"X position of the top left corner.","tags":{}}}],"y":[{"kind":"PropertySignature","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Y position of the top left corner.","tags":{}}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Sprite area width.","tags":{}}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Sprite area height.","tags":{}}}]}}]},"jsDoc":{"doc":"A sprite in a sprite atlas.","tags":{}}}],"AudioCtx":[{"kind":"TypeAliasDeclaration","id":0,"name":"AudioCtx","type":{"kind":"TypeReference","id":0,"typeName":"ReturnType","typeArguments":[{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"initAudio"}}]}}],"AudioPlayOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"AudioPlayOpt","members":{"paused":[{"kind":"PropertySignature","id":0,"name":"paused","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If audio should start out paused.","tags":{"since":["v3000.0"]}}}],"loop":[{"kind":"PropertySignature","id":0,"name":"loop","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If audio should be played again from start when its ended.","tags":{}}}],"volume":[{"kind":"PropertySignature","id":0,"name":"volume","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Volume of audio. 1.0 means full volume, 0.5 means half volume.","tags":{}}}],"speed":[{"kind":"PropertySignature","id":0,"name":"speed","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Playback speed. 1.0 means normal playback speed, 2.0 means twice as fast.","tags":{}}}],"detune":[{"kind":"PropertySignature","id":0,"name":"detune","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Detune the sound. Every 100 means a semitone.","tags":{"example":["```js\n// play a random note in the octave\nplay(\"noteC\", {\n detune: randi(0, 12) * 100,\n})\n```"]}}}],"seek":[{"kind":"PropertySignature","id":0,"name":"seek","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The start time, in seconds.","tags":{}}}],"pan":[{"kind":"PropertySignature","id":0,"name":"pan","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The stereo pan of the sound.\n-1.0 means fully from the left channel, 0.0 means centered, 1.0 means fully right.\nDefaults to 0.0.","tags":{}}}],"connectTo":[{"kind":"PropertySignature","id":0,"name":"connectTo","type":{"kind":"TypeReference","id":0,"typeName":"AudioNode"},"questionToken":true,"jsDoc":{"doc":"If the audio node should start out connected to another audio node rather than\nKAPLAY's default volume node. Defaults to undefined, i.e. use KAPLAY's volume node.","tags":{}}}]},"jsDoc":{"doc":"Audio play configurations.","tags":{}}}],"AudioPlay":[{"kind":"InterfaceDeclaration","id":0,"name":"AudioPlay","members":{"play":[{"kind":"MethodSignature","id":0,"name":"play","parameters":[{"kind":"Parameter","id":0,"name":"time","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Start playing audio.","tags":{"since":["v3000.0"]}}}],"seek":[{"kind":"MethodSignature","id":0,"name":"seek","parameters":[{"kind":"Parameter","id":0,"name":"time","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Seek time.","tags":{"since":["v3000.0"]}}}],"stop":[{"kind":"MethodSignature","id":0,"name":"stop","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Stop the sound.","tags":{"since":["v3001.0"]}}}],"paused":[{"kind":"PropertySignature","id":0,"name":"paused","type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If the sound is paused.","tags":{"since":["v2000.1"]}}}],"speed":[{"kind":"PropertySignature","id":0,"name":"speed","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Playback speed of the sound. 1.0 means normal playback speed, 2.0 means twice as fast.","tags":{}}}],"detune":[{"kind":"PropertySignature","id":0,"name":"detune","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Detune the sound. Every 100 means a semitone.","tags":{"example":["```js\n// tune down a semitone\nmusic.detune = -100\n\n// tune up an octave\nmusic.detune = 1200\n```"]}}}],"volume":[{"kind":"PropertySignature","id":0,"name":"volume","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Volume of the sound. 1.0 means full volume, 0.5 means half volume.","tags":{}}}],"pan":[{"kind":"PropertySignature","id":0,"name":"pan","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The stereo pan of the sound.\n-1.0 means fully from the left channel, 0.0 means centered, 1.0 means fully right.\nDefaults to 0.0.","tags":{}}}],"loop":[{"kind":"PropertySignature","id":0,"name":"loop","type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If the audio should start again when it ends.","tags":{}}}],"time":[{"kind":"MethodSignature","id":0,"name":"time","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"The current playing time (not accurate if speed is changed).","tags":{}}}],"duration":[{"kind":"MethodSignature","id":0,"name":"duration","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"The total duration.","tags":{}}}],"onEnd":[{"kind":"MethodSignature","id":0,"name":"onEnd","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when audio ends.","tags":{"since":["v3000.0"]}}}],"then":[{"kind":"MethodSignature","id":0,"name":"then","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}],"connect":[{"kind":"MethodSignature","id":0,"name":"connect","parameters":[{"kind":"Parameter","id":0,"name":"node","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"AudioNode"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Disconnect the audio node from whatever it is currently connected to\nand connect it to the passed-in audio node, or to Kaplay's default volume node\nif no node is passed.","tags":{}}}]}}],"GameObjEventMap":[{"kind":"TypeAliasDeclaration","id":0,"name":"GameObjEventMap","type":{"kind":"TypeLiteral","id":0,"members":{}},"jsDoc":{"doc":"Game Object events with their arguments.\n\nIf looking for use it with `obj.on()`, ignore first parameter (Game Obj)","tags":{"group":["Events"]}}}],"GameObjEvents":[{"kind":"TypeAliasDeclaration","id":0,"name":"GameObjEvents","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"GameObjEventMap"},{"kind":"TypeLiteral","id":0,"members":{}}]}}],"GameObjEventNames":[{"kind":"TypeAliasDeclaration","id":0,"name":"GameObjEventNames","type":{"kind":"TypeOperator","id":0,"operator":143,"type":{"kind":"TypeReference","id":0,"typeName":"GameObjEventMap"}}}],"AppEventMap":[{"kind":"TypeAliasDeclaration","id":0,"name":"AppEventMap","type":{"kind":"TypeLiteral","id":0,"members":{"mouseMove":[{"kind":"PropertySignature","id":0,"name":"mouseMove","type":{"kind":"TupleType","id":0,"elements":[]}}],"mouseDown":[{"kind":"PropertySignature","id":0,"name":"mouseDown","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"}]}}],"mousePress":[{"kind":"PropertySignature","id":0,"name":"mousePress","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"}]}}],"mouseRelease":[{"kind":"PropertySignature","id":0,"name":"mouseRelease","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"}]}}],"charInput":[{"kind":"PropertySignature","id":0,"name":"charInput","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"keyPress":[{"kind":"PropertySignature","id":0,"name":"keyPress","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"keyDown":[{"kind":"PropertySignature","id":0,"name":"keyDown","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"keyPressRepeat":[{"kind":"PropertySignature","id":0,"name":"keyPressRepeat","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"keyRelease":[{"kind":"PropertySignature","id":0,"name":"keyRelease","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"touchStart":[{"kind":"PropertySignature","id":0,"name":"touchStart","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Touch"}]}}],"touchMove":[{"kind":"PropertySignature","id":0,"name":"touchMove","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Touch"}]}}],"touchEnd":[{"kind":"PropertySignature","id":0,"name":"touchEnd","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Touch"}]}}],"gamepadButtonDown":[{"kind":"PropertySignature","id":0,"name":"gamepadButtonDown","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"TypeReference","id":0,"typeName":"KGamepad"}]}}],"gamepadButtonPress":[{"kind":"PropertySignature","id":0,"name":"gamepadButtonPress","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"TypeReference","id":0,"typeName":"KGamepad"}]}}],"gamepadButtonRelease":[{"kind":"PropertySignature","id":0,"name":"gamepadButtonRelease","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"TypeReference","id":0,"typeName":"KGamepad"}]}}],"gamepadStick":[{"kind":"PropertySignature","id":0,"name":"gamepadStick","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"KGamepad"}]}}],"gamepadConnect":[{"kind":"PropertySignature","id":0,"name":"gamepadConnect","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"KGamepad"}]}}],"gamepadDisconnect":[{"kind":"PropertySignature","id":0,"name":"gamepadDisconnect","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"KGamepad"}]}}],"buttonDown":[{"kind":"PropertySignature","id":0,"name":"buttonDown","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"buttonPress":[{"kind":"PropertySignature","id":0,"name":"buttonPress","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"buttonRelease":[{"kind":"PropertySignature","id":0,"name":"buttonRelease","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"scroll":[{"kind":"PropertySignature","id":0,"name":"scroll","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"}]}}],"hide":[{"kind":"PropertySignature","id":0,"name":"hide","type":{"kind":"TupleType","id":0,"elements":[]}}],"show":[{"kind":"PropertySignature","id":0,"name":"show","type":{"kind":"TupleType","id":0,"elements":[]}}],"resize":[{"kind":"PropertySignature","id":0,"name":"resize","type":{"kind":"TupleType","id":0,"elements":[]}}],"input":[{"kind":"PropertySignature","id":0,"name":"input","type":{"kind":"TupleType","id":0,"elements":[]}}]}},"jsDoc":{"doc":"App events with their arguments","tags":{}}}],"TupleWithoutFirst":[{"kind":"TypeAliasDeclaration","id":0,"name":"TupleWithoutFirst","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T","constraint":{"kind":"ArrayType","id":0,"elementType":{"kind":"AnyKeyword","id":0}}}],"type":{"kind":"ConditionalType","id":0,"checkType":{"kind":"TypeReference","id":0,"typeName":"T"},"extendsType":{"kind":"TupleType","id":0,"elements":[{"kind":"InferType","id":0,"typeParameter":{"kind":"TypeParameter","id":0,"name":"R"}},{"kind":"RestType","id":0,"type":{"kind":"InferType","id":0,"typeParameter":{"kind":"TypeParameter","id":0,"name":"E"}}}]},"trueType":{"kind":"TypeReference","id":0,"typeName":"E"},"falseType":{"kind":"NeverKeyword","id":0}}}],"SceneName":[{"kind":"TypeAliasDeclaration","id":0,"name":"SceneName","type":{"kind":"StringKeyword","id":0},"jsDoc":{"doc":"The name of a scene.","tags":{}}}],"SceneDef":[{"kind":"TypeAliasDeclaration","id":0,"name":"SceneDef","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"AnyKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"Game":[{"kind":"TypeAliasDeclaration","id":0,"name":"Game","type":{"kind":"TypeReference","id":0,"typeName":"ReturnType","typeArguments":[{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"initGame"}}]}}],"BoomOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"BoomOpt","members":{"speed":[{"kind":"PropertySignature","id":0,"name":"speed","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Animation speed.","tags":{}}}],"scale":[{"kind":"PropertySignature","id":0,"name":"scale","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Scale.","tags":{}}}],"comps":[{"kind":"PropertySignature","id":0,"name":"comps","type":{"kind":"TypeReference","id":0,"typeName":"CompList","typeArguments":[{"kind":"AnyKeyword","id":0}]},"questionToken":true,"jsDoc":{"doc":"Additional components.","tags":{"since":["v3000.0"]}}}]},"jsDoc":{"tags":{"group":["Options"]}}}],"LevelOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"LevelOpt","members":{"tileWidth":[{"kind":"PropertySignature","id":0,"name":"tileWidth","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Width of each block.","tags":{}}}],"tileHeight":[{"kind":"PropertySignature","id":0,"name":"tileHeight","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Height of each block.","tags":{}}}],"pos":[{"kind":"PropertySignature","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"questionToken":true,"jsDoc":{"doc":"Position of the first block.","tags":{}}}],"tiles":[{"kind":"PropertySignature","id":0,"name":"tiles","type":{"kind":"TypeLiteral","id":0,"members":{}},"jsDoc":{"doc":"Definition of each tile.","tags":{}}}],"wildcardTile":[{"kind":"PropertySignature","id":0,"name":"wildcardTile","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"sym","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"CompList","typeArguments":[{"kind":"AnyKeyword","id":0}]},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}},{"kind":"UndefinedKeyword","id":0}]}},"questionToken":true,"jsDoc":{"doc":"Called when encountered a symbol not defined in \"tiles\".","tags":{}}}]},"jsDoc":{"tags":{"group":["Options"]}}}],"KeepFlags":[{"kind":"EnumDeclaration","id":0,"name":"KeepFlags","members":{"Pos":[{"kind":"EnumMember","id":0,"name":"Pos","initializer":{"kind":"FirstLiteralToken","id":0,"text":"1","numericLiteralFlags":0}}],"Angle":[{"kind":"EnumMember","id":0,"name":"Angle","initializer":{"kind":"FirstLiteralToken","id":0,"text":"2","numericLiteralFlags":0}}],"Scale":[{"kind":"EnumMember","id":0,"name":"Scale","initializer":{"kind":"FirstLiteralToken","id":0,"text":"4","numericLiteralFlags":0}}],"All":[{"kind":"EnumMember","id":0,"name":"All","initializer":{"kind":"FirstLiteralToken","id":0,"text":"7","numericLiteralFlags":0}}]}}],"SetParentOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"SetParentOpt","type":{"kind":"TypeLiteral","id":0,"members":{"keep":[{"kind":"PropertySignature","id":0,"name":"keep","type":{"kind":"TypeReference","id":0,"typeName":"KeepFlags"}}]}}}],"System":[{"kind":"TypeAliasDeclaration","id":0,"name":"System","type":{"kind":"TypeLiteral","id":0,"members":{"run":[{"kind":"PropertySignature","id":0,"name":"run","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"when":[{"kind":"PropertySignature","id":0,"name":"when","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"LCEvents"}}}]}}}],"LCEvents":[{"kind":"EnumDeclaration","id":0,"name":"LCEvents","members":{}}],"KAPLAYInternal":[{"kind":"TypeAliasDeclaration","id":0,"name":"KAPLAYInternal","type":{"kind":"TypeLiteral","id":0,"members":{"k":[{"kind":"PropertySignature","id":0,"name":"k","type":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"}}],"globalOpt":[{"kind":"PropertySignature","id":0,"name":"globalOpt","type":{"kind":"TypeReference","id":0,"typeName":"KAPLAYOpt"}}],"gfx":[{"kind":"PropertySignature","id":0,"name":"gfx","type":{"kind":"TypeReference","id":0,"typeName":"AppGfxCtx"}}],"game":[{"kind":"PropertySignature","id":0,"name":"game","type":{"kind":"TypeReference","id":0,"typeName":"Game"}}],"app":[{"kind":"PropertySignature","id":0,"name":"app","type":{"kind":"TypeReference","id":0,"typeName":"App"}}],"assets":[{"kind":"PropertySignature","id":0,"name":"assets","type":{"kind":"TypeReference","id":0,"typeName":"ReturnType","typeArguments":[{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"initAssets"}}]}}],"fontCacheCanvas":[{"kind":"PropertySignature","id":0,"name":"fontCacheCanvas","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"HTMLCanvasElement"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"fontCacheC2d":[{"kind":"PropertySignature","id":0,"name":"fontCacheC2d","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"CanvasRenderingContext2D"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"debug":[{"kind":"PropertySignature","id":0,"name":"debug","type":{"kind":"TypeReference","id":0,"typeName":"Debug"}}],"audio":[{"kind":"PropertySignature","id":0,"name":"audio","type":{"kind":"TypeReference","id":0,"typeName":"AudioCtx"}}],"pixelDensity":[{"kind":"PropertySignature","id":0,"name":"pixelDensity","type":{"kind":"NumberKeyword","id":0}}],"canvas":[{"kind":"PropertySignature","id":0,"name":"canvas","type":{"kind":"TypeReference","id":0,"typeName":"HTMLCanvasElement"}}],"gscale":[{"kind":"PropertySignature","id":0,"name":"gscale","type":{"kind":"NumberKeyword","id":0}}],"kaSprite":[{"kind":"PropertySignature","id":0,"name":"kaSprite","type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SpriteData"}]}}],"boomSprite":[{"kind":"PropertySignature","id":0,"name":"boomSprite","type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SpriteData"}]}}],"systems":[{"kind":"PropertySignature","id":0,"name":"systems","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"System"}}}],"systemsByEvent":[{"kind":"PropertySignature","id":0,"name":"systemsByEvent","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"System"}}}}]}},"jsDoc":{"doc":"Sensitive KAPLAY data","tags":{}}}],"KAPLAYCtx":[{"kind":"InterfaceDeclaration","id":0,"name":"KAPLAYCtx","typeParameters":[{"kind":"TypeParameter","id":0,"name":"TButtonDef","constraint":{"kind":"TypeReference","id":0,"typeName":"ButtonsDef"},"default":{"kind":"TypeLiteral","id":0,"members":{}}},{"kind":"TypeParameter","id":0,"name":"TButton","constraint":{"kind":"StringKeyword","id":0},"default":{"kind":"StringKeyword","id":0}}],"members":{"_k":[{"kind":"PropertySignature","id":0,"name":"_k","type":{"kind":"TypeReference","id":0,"typeName":"KAPLAYInternal"},"jsDoc":{"doc":"Internal data that should not be accessed directly.","tags":{"readonly":[null],"group":["Misc"]}}}],"add":[{"kind":"MethodSignature","id":0,"name":"add","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"parameters":[{"kind":"Parameter","id":0,"name":"comps","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"CompList","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]},{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]},"jsDoc":{"doc":"Assemble a game object from a list of components, and add it to the game,","tags":{"example":["```js\nconst player = add([\n // List of components, each offers a set of functionalities\n sprite(\"mark\"),\n pos(100, 200),\n area(),\n body(),\n health(8),\n // Plain strings are tags, a quicker way to let us define behaviors for a group\n \"player\",\n \"friendly\",\n // Components are just plain objects, you can pass an object literal as a component.\n {\n dir: LEFT,\n dead: false,\n speed: 240,\n },\n]);\n\n// .jump is provided by body()\nplayer.jump();\n\n// .moveTo is provided by pos()\nplayer.moveTo(300, 200);\n\n// .onUpdate() is on every game object, it registers an event that runs every frame\nplayer.onUpdate(() => {\n // .move() is provided by pos()\n player.move(player.dir.scale(player.speed));\n});\n\n// .onCollide is provided by area()\nplayer.onCollide(\"tree\", () => {\n destroy(player);\n});\n```"],"param":[[{"kind":"JSDocText","id":0,"text":"- List of components to add to the game object, or a game object made with "},{"kind":"JSDocLink","id":0,"name":"make","text":"`make()`"},{"kind":"JSDocText","id":0,"text":"."}]],"returns":["The added game object that contains all properties and methods each component offers."],"group":["Game Obj"]}}}],"make":[{"kind":"MethodSignature","id":0,"name":"make","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"parameters":[{"kind":"Parameter","id":0,"name":"comps","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"CompList","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]},"jsDoc":{"doc":"Create a game object like add(), but not adding to the scene.","tags":{"param":["- List of components to add to the game object."],"example":["```js\nconst label = make([\n rect(100, 20),\n]);\n\n// Add a new text to the label\nlabel.add([\n text(\"Hello, world!\"),\n]);\n\n// Add game object to the scene\n// Now it will render\nadd(label);\n```"],"returns":["The created game object that contains all properties and methods each component offers."],"since":["v3000.1"],"group":["Game Obj"]}}}],"readd":[{"kind":"MethodSignature","id":0,"name":"readd","parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"TypeReference","id":0,"typeName":"GameObj"},"jsDoc":{"doc":"Remove and re-add the game obj, without triggering add / destroy events.","tags":{"param":["- The game object to re-add."],"example":["```js\n// Common way to use this is to have one sprite overlap another sprite, and use readd() to have the bottom sprite on top of the other.\n\n// Create two sprites.\nconst greenBean = add([\n sprite(\"bean\"),\n pos(200,140),\n color(255, 255, 255),\n area(),\n]);\n\n// This bean will overlap the green bean.\nconst purpleBean = add([\n sprite(\"bean\"),\n pos(230,140),\n color(255, 0, 255),\n area(),\n]);\n\n// Example 1: simply call readd() on the target you want on top.\nreadd(greenBean);\n\n// Example 2: using onClick() or other functions with readd().\n// If you comment out the first example, and use this readd() with a function like onClick(), you\ncan keep switching which sprite is above the other ( click on edge of face ).\n\npurpleBean.onClick(() => {\n readd(greenBean);\n});\n\ngreenBean.onClick(() => {\n readd(purpleBean);\n});\n```"],"returns":["The re-added game object."],"since":["v3001.0"],"group":["Game Obj"]}}}],"get":[{"kind":"MethodSignature","id":0,"name":"get","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T","default":{"kind":"AnyKeyword","id":0}}],"parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Tag"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Tag"}}]}},{"kind":"Parameter","id":0,"name":"opts","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"GetOpt"}}],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]}},"jsDoc":{"doc":"Get a list of all game objs with certain tag.","tags":{"param":["- The tag to search for. Use \"*\" to get all objects.","- Additional options."],"example":["```js\n// get a list of all game objs with tag \"bomb\"\nconst allBombs = get(\"bomb\");\n\n// To get all objects use \"*\"\nconst allObjs = get(\"*\");\n\n// Recursively get all children and descendents\nconst allObjs = get(\"*\", { recursive: true });\n```\n\n// Get a live query which updates in real-time\nconst allObjs = get(\"*\", { liveUpdate: true });\n```"],"returns":["A list of game objects that have the tag."],"since":["v2000.0"],"group":["Game Obj"]}}}],"query":[{"kind":"MethodSignature","id":0,"name":"query","parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"QueryOpt"}}],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},"jsDoc":{"doc":"Get a list of game objects in an advanced way.","tags":{"param":["- The query options."],"example":["```js\nconst bean = k.add([\"friend\", \"bean\"]);\nconst bean2 = k.add([\"friend\", \"bean\"]);\nconst bag = k.add([\"friend\", \"bag\"]);\n\n// get bean\nquery({\n include: \"bean\",\n}) // will return [bean, bean2];\n\n// get all friends excluding bean\nquery({\n include: \"friend\",\n exclude: \"bean\",\n}); // will return [bag]\n\n// get all visible friends\nquery({\n include: \"friend\",\n visible: true,\n});\n\n// get all friends less than 150 pixels from bean\nbean.query({\n include: \"friend\",\n distance: 150,\n});\n\n```"],"group":["Game Obj"]}}}],"destroy":[{"kind":"MethodSignature","id":0,"name":"destroy","parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Remove the game obj.","tags":{"param":["- The game object to remove."],"example":["```js\n// every time bean collides with anything with tag \"fruit\", remove it\nbean.onCollide(\"fruit\", (fruit) => {\n destroy(fruit);\n});\n```"],"group":["Game Obj"]}}}],"destroyAll":[{"kind":"MethodSignature","id":0,"name":"destroyAll","parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Remove all game objs with certain tag.","tags":{"param":["- The tag to search for."],"example":["```js\n// destroy all objects with tag \"bomb\" when you click one\nonClick(\"bomb\", () => {\n destroyAll(\"bomb\");\n});\n```"],"group":["Game Obj"]}}}],"pos":[{"kind":"MethodSignature","id":0,"name":"pos","parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"PosComp"},"jsDoc":{"doc":"Set the position of a Game Object.","tags":{"param":["- The x position to set.","- The y position to set."],"example":["```js\n// This game object will draw a \"bean\" sprite at (100, 200)\nadd([\n pos(100, 200),\n sprite(\"bean\"),\n]);\n```"],"returns":["The position comp."],"since":["v2000.0"],"group":["Components"]}}},{"kind":"MethodSignature","id":0,"name":"pos","parameters":[{"kind":"Parameter","id":0,"name":"xy","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"PosComp"}},{"kind":"MethodSignature","id":0,"name":"pos","parameters":[{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"PosComp"}},{"kind":"MethodSignature","id":0,"name":"pos","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"PosComp"}}],"scale":[{"kind":"MethodSignature","id":0,"name":"scale","parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"ScaleComp"},"jsDoc":{"doc":"Set the scale of a Game Object.","tags":{"param":["- The x scale to set.","- The y scale to set."],"example":["```js\n// scale uniformly with one value\nadd([\n sprite(\"bean\"),\n\t scale(3),\n]);\n\n// scale with x & y values. In this case, scales more horizontally.\nadd([\n sprite(\"bean\"),\n\t scale(3, 1),\n]);\n\n // scale with vec2(x,y).\nbean.scale = vec2(2,4);\n\n```"],"returns":["The scale comp."],"since":["v2000.0"],"group":["Components"]}}},{"kind":"MethodSignature","id":0,"name":"scale","parameters":[{"kind":"Parameter","id":0,"name":"xy","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"ScaleComp"}},{"kind":"MethodSignature","id":0,"name":"scale","parameters":[{"kind":"Parameter","id":0,"name":"s","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"ScaleComp"}},{"kind":"MethodSignature","id":0,"name":"scale","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"ScaleComp"}}],"rotate":[{"kind":"MethodSignature","id":0,"name":"rotate","parameters":[{"kind":"Parameter","id":0,"name":"a","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"RotateComp"},"jsDoc":{"doc":"Rotates a Game Object (in degrees).","tags":{"param":["- The angle to rotate by. Defaults to 0."],"example":["```js\nlet bean = add([\n sprite(\"bean\"),\n rotate(),\n])\n\n// bean will be upside down!\nbean.angle = 180\n```"],"returns":["The rotate comp."],"since":["v2000.0"],"group":["Components"]}}}],"color":[{"kind":"MethodSignature","id":0,"name":"color","parameters":[{"kind":"Parameter","id":0,"name":"r","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"g","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"b","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"ColorComp"},"jsDoc":{"doc":"Sets the color of a Game Object (rgb 0-255).","tags":{"param":["- The red value to set.","- The green value to set.","- The blue value to set."],"example":["```js\n// blue frog\nadd([\n sprite(\"bean\"),\n color(0, 0, 255),\n]);\n```"],"returns":["The color comp."],"since":["v2000.0"],"group":["Components"]}}},{"kind":"MethodSignature","id":0,"name":"color","parameters":[{"kind":"Parameter","id":0,"name":"c","type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"type":{"kind":"TypeReference","id":0,"typeName":"ColorComp"}},{"kind":"MethodSignature","id":0,"name":"color","parameters":[{"kind":"Parameter","id":0,"name":"rgb","type":{"kind":"TupleType","id":0,"elements":[{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0},{"kind":"NumberKeyword","id":0}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"ColorComp"}},{"kind":"MethodSignature","id":0,"name":"color","parameters":[{"kind":"Parameter","id":0,"name":"c","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"ColorComp"}},{"kind":"MethodSignature","id":0,"name":"color","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"ColorComp"}}],"opacity":[{"kind":"MethodSignature","id":0,"name":"opacity","parameters":[{"kind":"Parameter","id":0,"name":"o","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"OpacityComp"},"jsDoc":{"doc":"Sets the opacity of a Game Object (0.0 - 1.0).","tags":{"param":["- The opacity value to set."],"example":["```js\nconst bean = add([\n sprite(\"bean\"),\n opacity(0.5) // Make bean 50% transparent\n])\n\n// Make bean invisible\nbean.opacity = 0\n\n// Make bean fully visible\nbean.opacity = 1\n```"],"returns":["The opacity comp."],"since":["v2000.0"],"group":["Components"]}}}],"sprite":[{"kind":"MethodSignature","id":0,"name":"sprite","parameters":[{"kind":"Parameter","id":0,"name":"spr","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"SpriteData"},{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SpriteData"}]}]}},{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"SpriteCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"SpriteComp"},"jsDoc":{"doc":"Attach and render a sprite to a Game Object.","tags":{"param":["- The sprite to render.",[{"kind":"JSDocText","id":0,"text":"- Options for the sprite component. See "},{"kind":"JSDocLink","id":0,"name":"SpriteCompOpt","text":"`SpriteCompOpt`"},{"kind":"JSDocText","id":0,"text":"."}]],"example":["```js\n// minimal setup\nadd([\n sprite(\"bean\"),\n])\n\n// with options\nconst bean = add([\n sprite(\"bean\", {\n // start with animation \"idle\"\n anim: \"idle\",\n }),\n])\n\n// play / stop an anim\nbean.play(\"jump\")\nbean.stop()\n\n// manually setting a frame\nbean.frame = 3\n```"],"returns":["The sprite comp."],"since":["v2000.0"],"group":["Components"]}}}],"text":[{"kind":"MethodSignature","id":0,"name":"text","parameters":[{"kind":"Parameter","id":0,"name":"txt","questionToken":true,"type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"TextCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"TextComp"},"jsDoc":{"doc":"Attach and render a text to a Game Object.","tags":{"param":["- The text to display.",[{"kind":"JSDocText","id":0,"text":"- Options for the text component. See "},{"kind":"JSDocLink","id":0,"name":"TextCompOpt","text":""},{"kind":"JSDocText","id":0,"text":"."}]],"example":["```js\n// a simple score counter\nconst score = add([\n text(\"Score: 0\"),\n pos(24, 24),\n { value: 0 },\n])\n\nplayer.onCollide(\"coin\", () => {\n score.value += 1\n score.text = \"Score:\" + score.value\n})\n\n// with options\nadd([\n pos(24, 24),\n text(\"ohhi\", {\n size: 48, // 48 pixels tall\n width: 320, // it'll wrap to next line when width exceeds this value\n font: \"sans-serif\", // specify any font you loaded or browser built-in\n }),\n])\n```"],"returns":["The text comp."],"since":["v2000.0"],"group":["Components"]}}}],"polygon":[{"kind":"MethodSignature","id":0,"name":"polygon","parameters":[{"kind":"Parameter","id":0,"name":"pts","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}},{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"PolygonCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"PolygonComp"},"jsDoc":{"doc":"Attach and render a polygon to a Game Object.","tags":{"param":["- The points to render the polygon.",[{"kind":"JSDocText","id":0,"text":"- Options for the polygon component. See "},{"kind":"JSDocLink","id":0,"name":"PolygonCompOpt","text":"`PolygonCompOpt`"},{"kind":"JSDocText","id":0,"text":"."}]],"example":["```js\n// Make a square the hard way\nadd([\n pos(80, 120),\n polygon([vec2(0,0), vec2(50,0), vec2(50,50), vec2(0,50)]),\n outline(4),\n area(),\n])\n```"],"returns":["The polygon comp."],"since":["v3001.0"],"group":["Components"]}}}],"rect":[{"kind":"MethodSignature","id":0,"name":"rect","parameters":[{"kind":"Parameter","id":0,"name":"w","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"h","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"RectCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"RectComp"},"jsDoc":{"doc":"Attach and render a rectangle to a Game Object.","tags":{"param":["- The width of the rectangle.","- The height of the rectangle.",[{"kind":"JSDocText","id":0,"text":"- Options for the rectangle component. See "},{"kind":"JSDocLink","id":0,"name":"RectCompOpt","text":"`RectCompOpt`"},{"kind":"JSDocText","id":0,"text":"."}]],"example":["```js\nconst obstacle = add([\n pos(80, 120),\n rect(20, 40),\n outline(4),\n area(),\n])\n```"],"returns":["The rectangle component."],"group":["Components"]}}}],"circle":[{"kind":"MethodSignature","id":0,"name":"circle","parameters":[{"kind":"Parameter","id":0,"name":"radius","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"CircleCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"CircleComp"},"jsDoc":{"doc":"Attach and render a circle to a Game Object.","tags":{"param":["- The radius of the circle.",[{"kind":"JSDocText","id":0,"text":"- Options for the circle component. See "},{"kind":"JSDocLink","id":0,"name":"CircleCompOpt","text":"`CircleCompOpt`"},{"kind":"JSDocText","id":0,"text":"."}]],"example":["```js\nadd([\n pos(80, 120),\n circle(16),\n])\n```"],"returns":["The circle comp."],"since":["v2000.0"],"group":["Components"]}}}],"ellipse":[{"kind":"MethodSignature","id":0,"name":"ellipse","parameters":[{"kind":"Parameter","id":0,"name":"radiusX","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"radiusY","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"EllipseComp"},"jsDoc":{"doc":"Attach and render an ellipse to a Game Object.","tags":{"param":["- The radius of the ellipse on the x-axis.","- The radius of the ellipse on the y-axis."],"example":["```js\nadd([\n pos(80, 120),\n ellipse(16, 8),\n])\n```"],"returns":["The ellipse comp."],"since":["v2000.0"],"group":["Components"]}}}],"uvquad":[{"kind":"MethodSignature","id":0,"name":"uvquad","parameters":[{"kind":"Parameter","id":0,"name":"w","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"h","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"UVQuadComp"},"jsDoc":{"doc":"Attach and render a UV quad to a Game Object.","tags":{"param":["- The width of the quad.","- The height of the quad."],"example":["```js\nadd([\n uvquad(width(), height()),\n shader(\"spiral\"),\n])\n```"],"returns":["The UV quad comp."],"since":["v2000.0"],"group":["Components"]}}}],"area":[{"kind":"MethodSignature","id":0,"name":"area","parameters":[{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"AreaCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"AreaComp"},"jsDoc":{"doc":"Attach a collider area from shape and enables collision detection in a Game Object.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- Options for the area component. See "},{"kind":"JSDocLink","id":0,"name":"AreaCompOpt","text":"`AreaCompOpt`"},{"kind":"JSDocText","id":0,"text":"."}]],"example":["```js\n// Automatically generate area information from the shape of render\nconst player = add([\n sprite(\"bean\"),\n area(),\n])\n\n// Die if player collides with another game obj with tag \"tree\"\nplayer.onCollide(\"tree\", () => {\n destroy(player)\n go(\"lose\")\n})\n\n// Check for collision manually every frame instead of registering an event\nplayer.onUpdate(() => {\n if (player.isColliding(bomb)) {\n score += 1\n }\n})\n```"],"returns":["The area comp."],"since":["v2000.0"],"group":["Components"]}}}],"anchor":[{"kind":"MethodSignature","id":0,"name":"anchor","parameters":[{"kind":"Parameter","id":0,"name":"o","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Anchor"},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"AnchorComp"},"jsDoc":{"doc":"Anchor point for render (default \"topleft\").","tags":{"param":["- The anchor point to set."],"example":["```js\n// set anchor to \"center\" so it'll rotate from center\nadd([\n rect(40, 10),\n rotate(45),\n anchor(\"center\"),\n])\n```"],"returns":["The anchor comp."],"since":["v2000.0"],"group":["Components"]}}}],"z":[{"kind":"MethodSignature","id":0,"name":"z","parameters":[{"kind":"Parameter","id":0,"name":"z","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"ZComp"},"jsDoc":{"doc":"Determines the draw order for objects on the same layer. Object will be drawn on top if z value is bigger.","tags":{"param":["- The z value to set."],"example":["```js\nconst bean = add([\n sprite(\"bean\"),\n pos(100, 100),\n z(10), // Bean has a z value of 10\n])\n\n// Mark has a z value of 20, so he will always be drawn on top of bean\nconst mark = add([\n sprite(\"mark\"),\n pos(100, 100),\n z(20),\n])\n\nbean.z = 30 // Bean now has a higher z value, so it will be drawn on top of mark\n```"],"returns":["The z comp."],"since":["v2000.0"],"group":["Components"]}}}],"layer":[{"kind":"MethodSignature","id":0,"name":"layer","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"LayerComp"},"jsDoc":{"doc":"Determines the layer for objects. Object will be drawn on top if the layer index is higher.","tags":{"param":["- The layer name to set."],"example":["```js\n// Define layers\nlayers([\"background\", \"game\", \"foreground\"], \"game\")\n\nconst bean = add([\n sprite(\"bean\"),\n pos(100, 100),\n layer(\"background\"),\n])\n\n// Mark is in a higher layer, so he will be drawn on top of bean\nconst mark = add([\n sprite(\"mark\"),\n pos(100, 100),\n layer(\"game\"),\n])\n\nbean.layer(\"foreground\") // Bean is now in the foreground layer and will be drawn on top of mark"],"returns":["The layer comp."],"since":["v3001.0"],"group":["Layer"]}}}],"outline":[{"kind":"MethodSignature","id":0,"name":"outline","parameters":[{"kind":"Parameter","id":0,"name":"width","questionToken":true,"type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"color","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"Color"}},{"kind":"Parameter","id":0,"name":"opacity","questionToken":true,"type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"join","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"LineJoin"}},{"kind":"Parameter","id":0,"name":"miterLimit","questionToken":true,"type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"cap","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"LineCap"}}],"type":{"kind":"TypeReference","id":0,"typeName":"OutlineComp"},"jsDoc":{"doc":"Give an object an outline. Doesn't support sprite or text components.","tags":{"param":["- The width of the outline.","- The color of the outline.","- The opacity of the outline.","- -The line join style.","- The miter limit ratio.","-The line cap style."],"example":["```js\n// Add an outline to a rectangle\n\nadd([\n rect(40, 40),\n outline(4),\n]);\n```"],"returns":["The outline comp."],"since":["v2000.0"],"group":["Components"]}}}],"particles":[{"kind":"MethodSignature","id":0,"name":"particles","parameters":[{"kind":"Parameter","id":0,"name":"popt","type":{"kind":"TypeReference","id":0,"typeName":"ParticlesOpt"}},{"kind":"Parameter","id":0,"name":"eopt","type":{"kind":"TypeReference","id":0,"typeName":"EmitterOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"ParticlesComp"},"jsDoc":{"doc":"Attach a particle emitter to a Game Object.","tags":{"param":["- The options for the particles.","- The options for the emitter."],"example":["```js\n// beansplosion\n\n// create the emitter\nconst emitter = add([\n pos(center()),\n particles({\n max: 100,\n speed: [75, 100],\n lifeTime: [0.75,1.0],\n angle: [0, 360],\n opacities: [1.0, 0.0],\n texture: getSprite(\"bean\").tex, // texture of a sprite\n quads: getSprite(\"bean\").frames, // frames of a sprite\n }, {\n direction: 0,\n spread: 360,\n }),\n])\n\nonUpdate(() => {\n emitter.emit(1)\n})\n```"],"returns":["The particles comp."],"since":["v3001.0"],"group":["Components"]}}}],"body":[{"kind":"MethodSignature","id":0,"name":"body","parameters":[{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"BodyCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"BodyComp"},"jsDoc":{"doc":"Physical body that responds to gravity. Requires \"area\" and \"pos\" comp. This also makes the object \"solid\".","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- Options for the body component. See "},{"kind":"JSDocLink","id":0,"name":"BodyCompOpt","text":"`BodyCompOpt`"},{"kind":"JSDocText","id":0,"text":"."}]],"example":["```js\n// bean jumpy\nconst bean = add([\n sprite(\"bean\"),\n // body() requires \"pos\" and \"area\" component\n pos(),\n area(),\n body(),\n])\n\n// when bean is grounded, press space to jump\n// check out #BodyComp for more methods\nonKeyPress(\"space\", () => {\n if (bean.isGrounded()) {\n bean.jump()\n }\n})\n\n// run something when bean falls and hits a ground\nbean.onGround(() => {\n debug.log(\"oh no!\")\n})\n```"],"returns":["The body comp."],"since":["v2000.0"],"group":["Components"]}}}],"surfaceEffector":[{"kind":"MethodSignature","id":0,"name":"surfaceEffector","parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"SurfaceEffectorCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"SurfaceEffectorComp"},"jsDoc":{"doc":"Applies a force on a colliding object in order to make it move along the collision tangent vector.\nGood for conveyor belts.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- Options for the surface effector component. See "},{"kind":"JSDocLink","id":0,"name":"SurfaceEffectorCompOpt","text":"`SurfaceEffectorCompOpt`"},{"kind":"JSDocText","id":0,"text":"."}]],"example":["```js\nloadSprite(\"belt\", \"/sprites/jumpy.png\")\n\n// conveyor belt\nadd([\n pos(center()),\n sprite(\"belt\"),\n rotate(90),\n area(),\n body({ isStatic: true }),\n surfaceEffector({\n speed: 50,\n })\n])\n```"],"returns":["The surface effector comp."],"since":["v3001.0"],"group":["Components"]}}}],"areaEffector":[{"kind":"MethodSignature","id":0,"name":"areaEffector","parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"AreaEffectorCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"AreaEffectorComp"},"jsDoc":{"doc":"Applies a force on a colliding object.\nGood to apply anti-gravity, wind or water flow.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- Options for the area effector component. See "},{"kind":"JSDocLink","id":0,"name":"AreaEffectorCompOpt","text":"`AreaEffectorCompOpt`"},{"kind":"JSDocText","id":0,"text":"."}]],"returns":["The area effector comp."],"since":["v3001.0"],"group":["Components"]}}}],"pointEffector":[{"kind":"MethodSignature","id":0,"name":"pointEffector","parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"PointEffectorCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"PointEffectorComp"},"jsDoc":{"doc":"Applies a force on a colliding object directed towards this object's origin.\nGood to apply magnetic attraction or repulsion.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- Options for the point effector component. See "},{"kind":"JSDocLink","id":0,"name":"PointEffectorCompOpt","text":"`PointEffectorCompOpt`"},{"kind":"JSDocText","id":0,"text":"."}]],"returns":["The point effector comp."],"since":["v3001.0"],"group":["Components"]}}}],"platformEffector":[{"kind":"MethodSignature","id":0,"name":"platformEffector","parameters":[{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"PlatformEffectorCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"PlatformEffectorComp"},"jsDoc":{"doc":"The platform effector makes it easier to implement one way platforms\nor walls. This effector is typically used with a static body, and it\nwill only be solid depending on the direction the object is traveling from.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- Options for the platform effector component. See "},{"kind":"JSDocLink","id":0,"name":"PlatformEffectorCompOpt","text":"`PlatformEffectorCompOpt`"},{"kind":"JSDocText","id":0,"text":"."}]],"returns":["The platform effector comp."],"since":["v3001.0"],"group":["Components"]}}}],"buoyancyEffector":[{"kind":"MethodSignature","id":0,"name":"buoyancyEffector","parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"BuoyancyEffectorCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"BuoyancyEffectorComp"},"jsDoc":{"doc":"Applies an upwards force (force against gravity) to colliding objects depending on the fluid density and submerged area.\nGood to apply constant thrust.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- Options for the buoyancy effector component. See "},{"kind":"JSDocLink","id":0,"name":"BuoyancyEffectorCompOpt","text":"`BuoyancyEffectorCompOpt`"},{"kind":"JSDocText","id":0,"text":"."}]],"returns":["The buoyancy effector comp."],"since":["v3001.0"],"group":["Components"]}}}],"constantForce":[{"kind":"MethodSignature","id":0,"name":"constantForce","parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"ConstantForceCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"ConstantForceComp"},"jsDoc":{"doc":"Applies a constant force to the object.\nGood to apply constant thrust.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- Options for the constant force component. See "},{"kind":"JSDocLink","id":0,"name":"ConstantForceCompOpt","text":"`ConstantForceCompOpt`"},{"kind":"JSDocText","id":0,"text":"."}]],"returns":["The constant force comp."],"since":["v3001.0"],"group":["Components"]}}}],"doubleJump":[{"kind":"MethodSignature","id":0,"name":"doubleJump","parameters":[{"kind":"Parameter","id":0,"name":"numJumps","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"DoubleJumpComp"},"jsDoc":{"doc":"Enables double jump.","tags":{"requires":[[{"kind":"JSDocText","id":0,"text":""},{"kind":"JSDocLink","id":0,"name":"body","text":"`body()`"}]],"param":["- The number of jumps allowed. Defaults to 1."],"returns":["The double jump comp."],"since":["v3000.0"],"group":["Components"]}}}],"move":[{"kind":"MethodSignature","id":0,"name":"move","parameters":[{"kind":"Parameter","id":0,"name":"dir","type":{"kind":"UnionType","id":0,"types":[{"kind":"NumberKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]}},{"kind":"Parameter","id":0,"name":"speed","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"EmptyComp"},"jsDoc":{"doc":"Move towards a direction infinitely, and destroys when it leaves game view.","tags":{"requires":[[{"kind":"JSDocText","id":0,"text":""},{"kind":"JSDocLink","id":0,"name":"pos","text":"`pos()`"}]],"param":["- The direction to move towards.","- The speed to move at."],"example":["```js\n// enemy throwing feces at player\nconst projectile = add([\n sprite(\"feces\"),\n pos(enemy.pos),\n area(),\n move(player.pos.angle(enemy.pos), 1200),\n offscreen({ destroy: true }),\n])\n```"],"returns":["The move comp."],"since":["v2000.0"],"group":["Components"]}}}],"offscreen":[{"kind":"MethodSignature","id":0,"name":"offscreen","parameters":[{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"OffScreenCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"OffScreenComp"},"jsDoc":{"doc":"Control the behavior of object when it goes out of view.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- Options for the offscreen component. See "},{"kind":"JSDocLink","id":0,"name":"OffScreenCompOpt","text":"`OffScreenCompOpt`"},{"kind":"JSDocText","id":0,"text":"."}]],"example":["```js\nadd([\n pos(player.pos),\n sprite(\"bullet\"),\n offscreen({ destroy: true }),\n \"projectile\",\n]);\n```"],"returns":["The offscreen comp."],"since":["v2000.2"],"group":["Components"]}}}],"follow":[{"kind":"MethodSignature","id":0,"name":"follow","parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"GameObj"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}},{"kind":"Parameter","id":0,"name":"offset","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"FollowComp"},"jsDoc":{"doc":"Follow another game obj's position.","tags":{"param":["- The game obj to follow.","- The offset to follow at."],"example":["```js\nconst bean = add(...)\n\nadd([\n sprite(\"bag\"),\n pos(),\n follow(bean) // Follow bean's position\n]);\n\n// Using offset\nconst target = add(...)\n\nconst mark = add([\n sprite(\"mark\"),\n pos(),\n follow(target, vec2(32, 32)) // Follow target's position with an offset\n])\n\nmark.follow.offset = vec2(64, 64) // Change the offset\n```"],"returns":["The follow comp."],"since":["v2000.0"],"group":["Components"]}}}],"shader":[{"kind":"MethodSignature","id":0,"name":"shader","parameters":[{"kind":"Parameter","id":0,"name":"id","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"uniform","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Uniform"},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Uniform"}}}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"ShaderComp"},"jsDoc":{"doc":"Custom shader to manipulate sprite.","tags":{"param":["- The shader id.","- The uniform to pass to the shader."],"returns":["The shader comp."],"since":["v2000.0"],"group":["Components"]}}}],"textInput":[{"kind":"MethodSignature","id":0,"name":"textInput","parameters":[{"kind":"Parameter","id":0,"name":"hasFocus","questionToken":true,"type":{"kind":"BooleanKeyword","id":0}},{"kind":"Parameter","id":0,"name":"maxInputLength","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"TextInputComp"},"jsDoc":{"doc":"Get input from the user and store it in the nodes text property, displaying it with the text component and allowing other functions to access it.","tags":{"param":["- Whether the text input should have focus.","- The maximum length of the input."],"example":["```js\nconst obj = add([\n text(\"\"),\n textInput(),\n])\n\nobj.hasFocus = false\ndebug.log(obj.text) // oh no i cant see my new text since it was disabled\n```"],"returns":["The text input comp."],"since":["v3001.0"],"group":["Components"]}}}],"timer":[{"kind":"MethodSignature","id":0,"name":"timer","parameters":[{"kind":"Parameter","id":0,"name":"maxLoopsPerFrame","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"TimerComp"},"jsDoc":{"doc":"Enable timer related functions like wait(), loop(), tween() on the game object.","tags":{"param":["- The maximum number of loops per frame."],"example":["```js\nconst obj = add([\n timer(),\n])\n\nobj.wait(2, () => { ... })\nobj.loop(0.5, () => { ... })\nobj.tween(obj.pos, mousePos(), 0.5, (p) => obj.pos = p, easings.easeOutElastic)\n```"],"returns":["The timer comp."],"since":["v2000.0"],"group":["Components"]}}}],"fixed":[{"kind":"MethodSignature","id":0,"name":"fixed","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"FixedComp"},"jsDoc":{"doc":"Make a game obj unaffected by camera or parent object transforms, and render at last.\nUseful for UI elements.","tags":{"example":["```js\n// this will be be fixed on top left and not affected by camera\nconst score = add([\n text(0),\n pos(12, 12),\n fixed(),\n])\n```"],"returns":["The fixed comp."],"since":["v2000.0"],"group":["Components"]}}}],"stay":[{"kind":"MethodSignature","id":0,"name":"stay","parameters":[{"kind":"Parameter","id":0,"name":"scenesToStay","questionToken":true,"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"StayComp"},"jsDoc":{"doc":"Don't get destroyed on scene switch. Only works in objects attached to root.","tags":{"param":["- The scenes to stay in. By default it stays in all scenes."],"example":["```js\nplayer.onCollide(\"bomb\", () => {\n // spawn an explosion and switch scene, but don't destroy the explosion game obj on scene switch\n add([\n sprite(\"explosion\", { anim: \"burst\", }),\n stay(),\n lifespan(1),\n ])\n go(\"lose\", score)\n})\n```"],"returns":["The stay comp."],"since":["v2000.0"],"group":["Components"]}}}],"health":[{"kind":"MethodSignature","id":0,"name":"health","parameters":[{"kind":"Parameter","id":0,"name":"hp","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"maxHP","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"HealthComp"},"jsDoc":{"doc":"Handles health related logic and events.","tags":{"param":["- The initial health points.","- The maximum health points."],"example":["```js\nconst player = add([\n health(3),\n])\n\nplayer.onCollide(\"bad\", (bad) => {\n player.hurt(1)\n bad.hurt(1)\n})\n\nplayer.onCollide(\"apple\", () => {\n player.heal(1)\n})\n\nplayer.on(\"hurt\", () => {\n play(\"ouch\")\n})\n\n// triggers when hp reaches 0\nplayer.on(\"death\", () => {\n destroy(player)\n go(\"lose\")\n})\n```"],"returns":["The health comp."],"since":["v2000.0"],"group":["Components"]}}}],"lifespan":[{"kind":"MethodSignature","id":0,"name":"lifespan","parameters":[{"kind":"Parameter","id":0,"name":"time","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"options","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"LifespanCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"EmptyComp"},"jsDoc":{"doc":"Destroy the game obj after certain amount of time","tags":{"param":["- The time to live.",[{"kind":"JSDocText","id":0,"text":"- Options for the lifespan component. See "},{"kind":"JSDocLink","id":0,"name":"LifespanCompOpt","text":"`LifespanCompOpt`"},{"kind":"JSDocText","id":0,"text":"."}]],"example":["```js\n// spawn an explosion, destroy after 1 seconds, start fading away after 0.5 second\nadd([\n sprite(\"explosion\", { anim: \"burst\", }),\n lifespan(1, { fade: 0.5 }),\n])\n```"],"returns":["The lifespan comp."],"since":["v2000.0"],"group":["Components"]}}}],"named":[{"kind":"MethodSignature","id":0,"name":"named","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"NamedComp"},"jsDoc":{"doc":"Names an game obj.","tags":{"param":["- The name to set."],"returns":["The named comp."],"since":["v3001.0"],"group":["Components"]}}}],"state":[{"kind":"MethodSignature","id":0,"name":"state","parameters":[{"kind":"Parameter","id":0,"name":"initialState","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"stateList","questionToken":true,"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"StateComp"},"jsDoc":{"doc":"Finite state machine.","tags":{"param":["- The initial state.","- The list of states."],"example":["```js\nconst enemy = add([\n pos(80, 100),\n sprite(\"robot\"),\n state(\"idle\", [\"idle\", \"attack\", \"move\"]),\n])\n\n// this callback will run once when enters \"attack\" state\nenemy.onStateEnter(\"attack\", () => {\n // enter \"idle\" state when the attack animation ends\n enemy.play(\"attackAnim\", {\n // any additional arguments will be passed into the onStateEnter() callback\n onEnd: () => enemy.enterState(\"idle\", rand(1, 3)),\n })\n checkHit(enemy, player)\n})\n\n// this will run once when enters \"idle\" state\nenemy.onStateEnter(\"idle\", (time) => {\n enemy.play(\"idleAnim\")\n wait(time, () => enemy.enterState(\"move\"))\n})\n\n// this will run every frame when current state is \"move\"\nenemy.onStateUpdate(\"move\", () => {\n enemy.follow(player)\n if (enemy.pos.dist(player.pos) < 16) {\n enemy.enterState(\"attack\")\n }\n})\n```"],"returns":["The state comp."],"since":["v2000.1"],"group":["Components"]}}},{"kind":"MethodSignature","id":0,"name":"state","parameters":[{"kind":"Parameter","id":0,"name":"initialState","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"stateList","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"transitions","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"StateComp"},"jsDoc":{"doc":"state() with pre-defined transitions.","tags":{"param":["- The initial state.","- The list of states.","- The transitions between states."],"example":["```js\nconst enemy = add([\n pos(80, 100),\n sprite(\"robot\"),\n state(\"idle\", [\"idle\", \"attack\", \"move\"], {\n \"idle\": \"attack\",\n \"attack\": \"move\",\n \"move\": [ \"idle\", \"attack\" ],\n }),\n])\n\n// this callback will only run once when enter \"attack\" state from \"idle\"\nenemy.onStateTransition(\"idle\", \"attack\", () => {\n checkHit(enemy, player)\n})\n```"],"returns":["The state comp."],"since":["v2000.2"],"group":["Components"]}}}],"fadeIn":[{"kind":"MethodSignature","id":0,"name":"fadeIn","parameters":[{"kind":"Parameter","id":0,"name":"time","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Comp"},"jsDoc":{"tags":{"deprecated":["since v3001.0"],"requires":[[{"kind":"JSDocText","id":0,"text":""},{"kind":"JSDocLink","id":0,"name":"opacity","text":"`opacity()`"},{"kind":"JSDocText","id":0,"text":"Fade object in.\n\nUses opacity for finding what to fade into and to set opacity during fade animation."}]],"returns":["An empty comp."],"since":["v3000.0"],"group":["Components"]}}}],"mask":[{"kind":"MethodSignature","id":0,"name":"mask","parameters":[{"kind":"Parameter","id":0,"name":"maskType","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"Mask"}}],"type":{"kind":"TypeReference","id":0,"typeName":"MaskComp"},"jsDoc":{"doc":"Mask all children object render.","tags":{"param":["- The type of mask to use."],"returns":["The mask comp."],"since":["v3001.0"],"group":["Components"]}}}],"drawon":[{"kind":"MethodSignature","id":0,"name":"drawon","parameters":[{"kind":"Parameter","id":0,"name":"canvas","type":{"kind":"TypeReference","id":0,"typeName":"FrameBuffer"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Comp"},"jsDoc":{"doc":"Specifies the FrameBuffer the object should be drawn on.","tags":{"param":["- The FrameBuffer to draw on."],"example":["```js\n// Draw on another canvas\nlet canvas = makeCanvas(width(), height());\n\nlet beanOnCanvas = add([\n sprite(\"bean\"),\n drawon(canvas.fb),\n]);\n```"],"returns":["The drawon comp."],"since":["v3000.0"],"group":["Components"]}}}],"tile":[{"kind":"MethodSignature","id":0,"name":"tile","parameters":[{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"TileCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"TileComp"},"jsDoc":{"doc":"A tile on a tile map.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- Options for the tile component. See "},{"kind":"JSDocLink","id":0,"name":"TileCompOpt","text":"`TileCompOpt`"},{"kind":"JSDocText","id":0,"text":"."}]],"returns":["The tile comp."],"since":["v3000.0"],"group":["Components"]}}}],"agent":[{"kind":"MethodSignature","id":0,"name":"agent","parameters":[{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"AgentCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"AgentComp"},"jsDoc":{"doc":"An agent which can finds it way on a tilemap.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- Options for the agent component. See "},{"kind":"JSDocLink","id":0,"name":"AgentCompOpt","text":"`AgentCompOpt`"},{"kind":"JSDocText","id":0,"text":"."}]],"returns":["The agent comp."],"since":["v3000.0"],"group":["Components"]}}}],"animate":[{"kind":"MethodSignature","id":0,"name":"animate","parameters":[{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"AnimateCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"AnimateComp"},"jsDoc":{"doc":"A component to animate properties.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- Options for the animate component. See "},{"kind":"JSDocLink","id":0,"name":"AnimateCompOpt","text":"`AnimateCompOpt`"},{"kind":"JSDocText","id":0,"text":"."}]],"example":["```js\nlet movingBean = add([\n sprite(\"bean\"),\n pos(50, 150),\n anchor(\"center\"),\n animate(),\n]);\n\n// Moving right to left using ping-pong\nmovingBean.animate(\"pos\", [vec2(50, 150), vec2(150, 150)], {\n duration: 2,\n direction: \"ping-pong\",\n});\n```"],"returns":["The animate comp."],"since":["v3001.0"],"group":["Components"]}}}],"fakeMouse":[{"kind":"MethodSignature","id":0,"name":"fakeMouse","parameters":[{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"FakeMouseOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"FakeMouseComp"},"jsDoc":{"doc":"A fake mouse that follows the mouse position and triggers events.\n\n[Guide about fake mouse](https://v4000.kaplayjs.com/guides/fake_mouse/)","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- Options for the fake mouse comp. See "},{"kind":"JSDocLink","id":0,"name":"FakeMouseOpt","text":"`FakeMouseOpt`"},{"kind":"JSDocText","id":0,"text":"."}]],"returns":["The fake mouse comp."],"since":["v3001.0"],"group":["Components"]}}}],"serializeAnimation":[{"kind":"MethodSignature","id":0,"name":"serializeAnimation","parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Animation"},"jsDoc":{"doc":"Serializes the animation to plain objects","tags":{"param":["- The game obj to serialize."],"returns":["The serialized animation."],"since":["v3001.0"],"group":["Components"]}}}],"sentry":[{"kind":"MethodSignature","id":0,"name":"sentry","parameters":[{"kind":"Parameter","id":0,"name":"candidates","type":{"kind":"TypeReference","id":0,"typeName":"SentryCandidates"}},{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"SentryCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"SentryComp"},"jsDoc":{"doc":"A sentry which reacts to objects coming into view.","tags":{"returns":["The sentry comp."],"since":["v3001.0"],"group":["Components"]}}}],"patrol":[{"kind":"MethodSignature","id":0,"name":"patrol","parameters":[{"kind":"Parameter","id":0,"name":"opts","type":{"kind":"TypeReference","id":0,"typeName":"PatrolCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"PatrolComp"},"jsDoc":{"doc":"A patrol which can follow waypoints to a goal.","tags":{"since":["v3001.0"],"group":["Components"]}}}],"pathfinder":[{"kind":"MethodSignature","id":0,"name":"pathfinder","parameters":[{"kind":"Parameter","id":0,"name":"opts","type":{"kind":"TypeReference","id":0,"typeName":"PathfinderCompOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"PathfinderComp"},"jsDoc":{"doc":"A navigator pathfinder which can calculate waypoints to a goal.","tags":{"since":["v3001.0"],"group":["Components"]}}}],"raycast":[{"kind":"MethodSignature","id":0,"name":"raycast","parameters":[{"kind":"Parameter","id":0,"name":"origin","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"direction","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"exclude","questionToken":true,"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"RaycastResult"},"jsDoc":{"doc":"Create a raycast.","tags":{"since":["v3001.0"],"group":["Math"]}}}],"trigger":[{"kind":"MethodSignature","id":0,"name":"trigger","parameters":[{"kind":"Parameter","id":0,"name":"event","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"AnyKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Trigger an event on all game objs with certain tag.","tags":{"param":["- The tag to trigger to.","- Arguments to pass to the `on()` functions"],"example":["```js\ntrigger(\"shoot\", \"target\", 140);\n\non(\"shoot\", \"target\", (obj, score) => {\n obj.destroy();\n debug.log(140); // every bomb was 140 score points!\n});\n```"],"since":["v3001.0.6"],"group":["Events"],"experimental":["This feature is in experimental phase, it will be fully released in v3001.1.0"]}}}],"on":[{"kind":"MethodSignature","id":0,"name":"on","typeParameters":[{"kind":"TypeParameter","id":0,"name":"Ev","constraint":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"GameObjEventNames"},{"kind":"ParenthesizedType","id":0,"type":{"kind":"IntersectionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"TypeLiteral","id":0,"members":{}}]}}]}}],"parameters":[{"kind":"Parameter","id":0,"name":"event","type":{"kind":"TypeReference","id":0,"typeName":"Ev"}},{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"TypeReference","id":0,"typeName":"TupleWithoutFirst","typeArguments":[{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"GameObjEvents"},"indexType":{"kind":"TypeReference","id":0,"typeName":"Ev"}}]}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event on all game objs with certain tag.","tags":{"param":["- The tag to listen for.","- The function to run when the event is triggered."],"example":["```js\n// a custom event defined by body() comp\n// every time an obj with tag \"bomb\" hits the floor, destroy it and addKaboom()\non(\"ground\", \"bomb\", (bomb) => {\n destroy(bomb)\n addKaboom(bomb.pos)\n})\n\n// a custom event can be defined manually\n// by passing an event name, a tag, and a callback function\n// if you want any tag, use a tag of \"*\"\non(\"talk\", \"npc\", (npc, message) => {\n npc.add([\n text(message),\n pos(0, -50),\n lifespan(2),\n opacity(),\n ])\n});\n\nonKeyPress(\"space\", () => {\n // the trigger method on game objs can be used to trigger a custom event\n npc.trigger(\"talk\", \"Hello, KAPLAY!\");\n});\n\n```"],"returns":["The event controller."],"since":["v2000.0"],"group":["Events"]}}}],"onFixedUpdate":[{"kind":"MethodSignature","id":0,"name":"onFixedUpdate","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs at a fixed framerate.","tags":{"param":["- The function to run when the event is triggered."],"returns":["The event controller."],"since":["v3001.0"],"group":["Events"]}}},{"kind":"MethodSignature","id":0,"name":"onFixedUpdate","parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}],"onUpdate":[{"kind":"MethodSignature","id":0,"name":"onUpdate","parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs every frame (~60 times per second) for all game objs with certain tag.","tags":{"param":["- The tag to listen for.","- The function to run when the event is triggered."],"example":["```js\n// move every \"tree\" 120 pixels per second to the left, destroy it when it leaves screen\n// there'll be nothing to run if there's no \"tree\" obj in the scene\nonUpdate(\"tree\", (tree) => {\n tree.move(-120, 0)\n if (tree.pos.x < 0) {\n destroy(tree)\n }\n})\n```"],"returns":["The event controller."],"since":["v2000.1"],"group":["Events"]}}},{"kind":"MethodSignature","id":0,"name":"onUpdate","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs every frame (~60 times per second).","tags":{"param":["- The function to run when the event is triggered."],"example":["```js\n// This will run every frame\nonUpdate(() => {\n debug.log(\"ohhi\")\n})\n```"],"returns":["The event controller."],"since":["v2000.1"],"group":["Events"]}}}],"onDraw":[{"kind":"MethodSignature","id":0,"name":"onDraw","parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs every frame (~60 times per second) for all game objs with certain tag (this is the same as onUpdate but all draw events are run after update events, drawXXX() functions only work in this phase).","tags":{"param":["- The tag to listen for.","- The function to run when the event is triggered."],"returns":["The event controller."],"since":["v2000.1"],"group":["Events"]}}},{"kind":"MethodSignature","id":0,"name":"onDraw","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs every frame (~60 times per second) (this is the same as onUpdate but all draw events are run after update events, drawXXX() functions only work in this phase).","tags":{"example":["```js\nonDraw(() => {\n drawLine({\n p1: vec2(0),\n p2: mousePos(),\n color: rgb(0, 0, 255),\n })\n})\n```"],"returns":["The event controller."],"since":["v2000.1"],"group":["Events"]}}}],"onAdd":[{"kind":"MethodSignature","id":0,"name":"onAdd","parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when an object with the provided tag is added.","tags":{"param":["- The tag to listen for.","- The function that runs when an object is added."],"example":["```js\n// This will run when the object is added.\nonAdd(\"player\", () => {\n debug.log(\"ohhi\");\n});\n\nadd([\n pos(),\n \"player\"\n]);\n```"],"returns":["The event controller."],"since":["v2000.0"],"group":["Events"]}}},{"kind":"MethodSignature","id":0,"name":"onAdd","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when an object is added","tags":{"param":["- The tag to match, only called for objects with a matching tag.","- The function that runs when an object is added."],"example":["```js\n// This will run when the object is added.\nonAdd(() => {\n debug.log(\"ohhi\");\n});\n\nadd([\n pos(),\n]);\n```"],"returns":["The event controller."],"since":["v2000.0"],"group":["Events"]}}}],"onDestroy":[{"kind":"MethodSignature","id":0,"name":"onDestroy","parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when an object with the provided tag is destroyed.","tags":{"param":["- The function that runs when an object is destroyed."],"example":["```js\n// This will run when the tagged object is destroyed.\nonDestroy(\"bean\", () => {\n debug.log(\"ohbye\");\n});\n\nlet player = add([\n pos(),\n \"bean\"\n])\n\n// Destroy the tagged object\ndestroy(player);\n```"],"returns":["The event controller."],"since":["v2000.0"],"group":["Events"]}}},{"kind":"MethodSignature","id":0,"name":"onDestroy","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when an object is destroyed.","tags":{"param":["- The tag to match, only called for objects with a matching tag.","- The function that runs when an object is destroyed."],"example":["```js\n// This will run when the object is destroyed.\nonDestroy(() => {\n debug.log(\"ohbye\");\n});\n\nlet ghosty = add([\n pos(),\n]);\n\n// Destroy the object\ndestroy(ghosty);\n```"],"returns":["The event controller."],"group":["Events"]}}}],"onUse":[{"kind":"MethodSignature","id":0,"name":"onUse","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},{"kind":"Parameter","id":0,"name":"id","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when an object starts using a component.","tags":{"param":["- The function that runs when an object starts using component.","- The id of the component that was added."],"returns":["The event controller."],"since":["v3001.1"],"group":["Events"]}}}],"onUnuse":[{"kind":"MethodSignature","id":0,"name":"onUnuse","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},{"kind":"Parameter","id":0,"name":"id","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when an object stops using a component.","tags":{"param":["- The function that runs when an object stops using a component.","- The id of the component that was removed.d"],"returns":["The event controller."],"since":["v3001.1"],"group":["Events"]}}}],"onTag":[{"kind":"MethodSignature","id":0,"name":"onTag","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when an object gains a tag.","tags":{"param":["- The function that runs when an object gains a tag.","- The tag which was added."],"returns":["The event controller."],"since":["v3001.1"],"group":["Events"]}}}],"onUntag":[{"kind":"MethodSignature","id":0,"name":"onUntag","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when an object loses a tag.","tags":{"param":["- The function that runs when an object loses a tag.","- The tag which was removed."],"returns":["The event controller."],"since":["v3001.1"],"group":["Events"]}}}],"onLoad":[{"kind":"MethodSignature","id":0,"name":"onLoad","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KEventController"},{"kind":"UndefinedKeyword","id":0}]},"jsDoc":{"doc":"Register an event that runs when all assets finished loading.","tags":{"param":["- The function to run when the event is triggered."],"example":["```js\nconst bean = add([\n sprite(\"bean\"),\n]);\n\n// certain assets related data are only available when the game finishes loading\nonLoad(() => {\n debug.log(bean.width)\n});\n```"],"returns":["The event controller."],"since":["v2000.1"],"group":["Events"]}}}],"onLoadError":[{"kind":"MethodSignature","id":0,"name":"onLoadError","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"failedAsset","type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"AnyKeyword","id":0}]}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KEventController"},{"kind":"UndefinedKeyword","id":0}]},"jsDoc":{"doc":"Register an event that runs once for each asset that failed to load,\nafter all others have completed.","tags":{"param":["The function to run when the event is triggered."],"example":["```js\n// this will not load\nloadSprite(\"bobo\", \"notavalidURL\");\n\n// process the error\n// you decide whether to ignore it, or throw an error and halt the game\nonLoadError((name, asset) => {\n debug.error(`${name} failed to load: ${asset.error}`);\n});\n```"],"returns":["The event controller."],"since":["v3001.0"],"group":["Events"]}}}],"onLoading":[{"kind":"MethodSignature","id":0,"name":"onLoading","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"progress","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs every frame when assets are initially loading. Can be used to draw a custom loading screen.","tags":{"param":["- The function that runs when assets are loading."],"example":["```\n// progress bar\nonLoading((progress) => {\n // Background of the bar\n drawRect({\n width: 240,\n height: 40,\n pos: center().add(-120,0),\n color: BLACK,\n anchor: `left,\n });\n // Progress of the bar\n drawRect({\n width: map(progress, 0, 1, 0, 220),\n height: 32,\n pos: center().add(-116, 0),\n color: BLUE,\n anchor: `left\n });\n});\n```"],"returns":["The event controller."],"since":["v3000.0"],"group":["Events"]}}}],"onError":[{"kind":"MethodSignature","id":0,"name":"onError","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"err","type":{"kind":"TypeReference","id":0,"typeName":"Error"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register a custom error handler. Can be used to draw a custom error screen.","tags":{"param":["- The function that runs when the program errors."],"example":["```js\n// Create custom error handler\nonError((err) => {\n drawRect({\n width: width(),\n height: height(),\n pos: center(),\n color: RED,\n anchor: `center,\n });\n\n drawText({\n text: err.message,\n size: 48,\n width: width()/2,\n anchor: `center`,\n align: `center`,\n pos: center(),\n color: BLACK\n });\n});\n\n// cause common error\nlet pos = add([\n pos()\n]);\n```"],"returns":["The event controller."],"since":["v3000.0"],"group":["Events"]}}}],"onResize":[{"kind":"MethodSignature","id":0,"name":"onResize","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when the canvas resizes.","tags":{"param":["- The function that runs when the canvas resizes."],"example":["```js\n// create a rectangle with screen size\nlet rectangle = add([\n rect(width(), height()),\n color(GREEN),\n]);\n\n// resize the rectangle to screen size\nonResize(() => {\n debug.log(`Old Size: ${rectangle.width}x${rectangle.height}`);\n rectangle.width = width();\n rectangle.height = height();\n debug.log(`New Size: ${rectangle.width}x${rectangle.height}`);\n});\n```"],"returns":["The event controller."],"since":["v3000.0"],"group":["Events"]}}}],"onCleanup":[{"kind":"MethodSignature","id":0,"name":"onCleanup","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Cleanup function to run when quit() is called.","tags":{"param":["- The function that runs when quit() is called."],"example":["```js\n// useful externally from KAPLAY\nonCleanup(() => {\n console.log(`ohbye :(`);\n});\n\nquit();\n```"],"returns":["The event controller."],"since":["v3000.0"],"group":["Events"]}}}],"onGamepadConnect":[{"kind":"MethodSignature","id":0,"name":"onGamepadConnect","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when a gamepad is connected.","tags":{"param":["- The function that runs when quit() is called."],"example":["```js\n// watch for a controller connecting\nonGamepadConnect((gp) => {\n debug.log(`ohhi player ${gp.index + 1}`);\n});\n```"],"returns":["The event controller."],"since":["v3000.0"],"group":["Input"]}}}],"onGamepadDisconnect":[{"kind":"MethodSignature","id":0,"name":"onGamepadDisconnect","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when a gamepad is disconnected.","tags":{"param":["- The function that runs when quit() is called."],"example":["```js\n// watch for a controller disconnecting\nonGamepadDisconnect((gp) => {\n debug.log(`ohbye player ${gp.index + 1}`);\n});\n```"],"returns":["The event controller."],"since":["v3000.0"],"group":["Input"]}}}],"onCollide":[{"kind":"MethodSignature","id":0,"name":"onCollide","parameters":[{"kind":"Parameter","id":0,"name":"t1","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"t2","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},{"kind":"Parameter","id":0,"name":"b","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},{"kind":"Parameter","id":0,"name":"col","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"Collision"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs once when 2 game objs with certain tags collides (required to have area() component).","tags":{"param":["- The tag of the first game obj.","- The tag of the second game obj.","- The function to run when the event is triggered."],"example":["```js\nonCollide(\"sun\", \"earth\", () => {\n addExplosion()\n})\n```"],"returns":["The event controller."],"since":["v2000.1"],"group":["Events"]}}}],"onCollideUpdate":[{"kind":"MethodSignature","id":0,"name":"onCollideUpdate","parameters":[{"kind":"Parameter","id":0,"name":"t1","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"t2","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},{"kind":"Parameter","id":0,"name":"b","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},{"kind":"Parameter","id":0,"name":"col","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"Collision"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs every frame when 2 game objs with certain tags collides (required to have area() component).","tags":{"param":["- The tag of the first game obj.","- The tag of the second game obj.","- The function to run when the event is triggered."],"example":["```js\nonCollideUpdate(\"sun\", \"earth\", () => {\n debug.log(\"okay this is so hot\");\n})l\n```"],"returns":["The event controller."],"since":["v3000.0"],"group":["Events"]}}}],"onCollideEnd":[{"kind":"MethodSignature","id":0,"name":"onCollideEnd","parameters":[{"kind":"Parameter","id":0,"name":"t1","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"t2","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},{"kind":"Parameter","id":0,"name":"b","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},{"kind":"Parameter","id":0,"name":"col","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"Collision"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs once frame when 2 game objs with certain tags stops colliding (required to have area() component).","tags":{"param":["- The tag of the first game obj.","- The tag of the second game obj.","- The function to run when the event is triggered."],"example":["```js\nonCollideEnd(\"bean\", \"earth\", () => {\n debug.log(\"destroying world in 3... 2... 1...\")\n});\n```"],"returns":["The event controller."],"since":["v3000.0"],"group":["Physics"]}}}],"onClick":[{"kind":"MethodSignature","id":0,"name":"onClick","parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when game objs with certain tags are clicked (required to have the area() component).","tags":{"param":["- The tag to listen for.","- The function to run when the event is triggered."],"example":["```js\n// click on any \"chest\" to open\nonClick(\"chest\", (chest) => chest.open())\n```"],"returns":["The event controller."],"since":["v2000.1"],"group":["Input"]}}},{"kind":"MethodSignature","id":0,"name":"onClick","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when users clicks.","tags":{"param":["- The function to run when the event is triggered."],"example":["```js\n// click on anywhere to go to \"game\" scene\nonClick(() => go(\"game\"));\n```"],"returns":["The event controller."],"since":["v2000.1"],"group":["Events"]}}}],"onHover":[{"kind":"MethodSignature","id":0,"name":"onHover","parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs once when game objs with certain tags are hovered (required to have area() component).","tags":{"param":["- The tag to listen for.","- The function to run when the event is triggered."],"returns":["The event controller."],"since":["v3000.0"],"group":["Events"]}}}],"onHoverUpdate":[{"kind":"MethodSignature","id":0,"name":"onHoverUpdate","parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs every frame when game objs with certain tags are hovered (required to have area() component).","tags":{"param":["- The tag to listen for.","- The function to run when the event is triggered."],"example":["```js\n// Rotate bean 90 degrees per second when hovered\nonHoverUpdate(\"bean\", (bean) => {\n bean.angle += dt() * 90\n});\n```"],"returns":["The event controller."],"since":["v3000.0"],"group":["Events"]}}}],"onHoverEnd":[{"kind":"MethodSignature","id":0,"name":"onHoverEnd","parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"a","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs once when game objs with certain tags are unhovered (required to have area() component).","tags":{"param":["- The tag to listen for.","- The function to run when the event is triggered."],"returns":["The event controller."],"since":["v3000.0"],"group":["Events"]}}}],"onKeyDown":[{"kind":"MethodSignature","id":0,"name":"onKeyDown","parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs every frame when a key is held down.","tags":{"param":["- The key(s) to listen for.","- The function to run when the event is triggered."],"example":["```js\n// move left by SPEED pixels per frame every frame when left arrow key is being held down\nonKeyDown(\"left\", () => {\n bean.move(-SPEED, 0)\n});\n```"],"returns":["The event controller."],"since":["v2000.1"],"group":["Input"]}}},{"kind":"MethodSignature","id":0,"name":"onKeyDown","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs every frame when any key is held down.","tags":{"param":["- The function to run when the event is triggered."],"returns":["The event controller."],"since":["v2000.1"],"group":["Input"]}}}],"onKeyPress":[{"kind":"MethodSignature","id":0,"name":"onKeyPress","parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when user presses certain keys.","tags":{"param":["- The key(s) to listen for.","- The function to run when the event is triggered."],"example":["```js\n// .jump() once when \"space\" is just being pressed\nonKeyPress(\"space\", () => {\n bean.jump();\n});\n\nonKeyPress([\"up\", \"space\"], () => {\n bean.jump();\n});\n```"],"returns":["The event controller."],"since":["v2000.1"],"group":["Input"]}}},{"kind":"MethodSignature","id":0,"name":"onKeyPress","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when user presses any key.","tags":{"param":["- The function to run when the event is triggered."],"example":["```js\n// Call restart() when player presses any key\nonKeyPress((key) => {\n debug.log(`key pressed ${key}`);\n restart();\n});\n```"],"returns":["The event controller."],"since":["v3001.0"],"group":["Input"]}}}],"onKeyPressRepeat":[{"kind":"MethodSignature","id":0,"name":"onKeyPressRepeat","parameters":[{"kind":"Parameter","id":0,"name":"k","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when user presses certain keys (also fires repeatedly when the keys are being held down).","tags":{"param":["- The key(s) to listen for.","- The function to run when the event is triggered."],"example":["```js\n// delete last character when \"backspace\" is being pressed and held\nonKeyPressRepeat(\"backspace\", () => {\n input.text = input.text.substring(0, input.text.length - 1);\n});\n```"],"returns":["The event controller."],"since":["v3000.1"],"group":["Input"]}}},{"kind":"MethodSignature","id":0,"name":"onKeyPressRepeat","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}],"onKeyRelease":[{"kind":"MethodSignature","id":0,"name":"onKeyRelease","parameters":[{"kind":"Parameter","id":0,"name":"k","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when user release certain keys.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"= The key(s) to listen for. See "},{"kind":"JSDocLink","id":0,"name":"Key","text":"`Key`"},{"kind":"JSDocText","id":0,"text":"."}],"- The function that runs when a user releases certain keys"],"example":["```js\n// release `a` or `b` keys\nonKeyRelease([`a`, `b`], (k) => {\n debug.log(`Released the ${k} key...`);\n});\n```"],"returns":["The event controller."],"since":["v2000.1"],"group":["Input"]}}},{"kind":"MethodSignature","id":0,"name":"onKeyRelease","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when user releases a key.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- The function that runs when a user releases a "},{"kind":"JSDocLink","id":0,"name":"Key","text":"`Key`"},{"kind":"JSDocText","id":0,"text":"."}]],"example":["```js\n// release a key\nonKeyRelease((k) => {\n debug.log(`Released the ${k} key...`);\n});\n```"],"returns":["The event controller."],"since":["v2000.1"],"group":["Input"]}}}],"onCharInput":[{"kind":"MethodSignature","id":0,"name":"onCharInput","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"ch","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when user inputs text.","tags":{"param":["- The function to run when the event is triggered."],"example":["```js\n// type into input\nonCharInput((ch) => {\n input.text += ch\n})\n```"],"returns":["The event controller."],"since":["v2000.1"],"group":["Input"]}}}],"onMouseDown":[{"kind":"MethodSignature","id":0,"name":"onMouseDown","parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs every frame when certain mouse buttons are being held down.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- The mouse button(s) to listen for. See "},{"kind":"JSDocLink","id":0,"name":"MouseButton","text":"`MouseButton`"},{"kind":"JSDocText","id":0,"text":"."}],"- The function that is run when certain mouse buttons are being held down."],"example":["```js\n// count time with left mouse button down\nlet mouseTime = 0;\nonMouseDown(\"left\", () => {\n mouseTime += dt();\n debug.log(`Time with mouse down: ${mouseTime});\n});\n```"],"returns":["The event controller."],"since":["v3001.0"],"group":["Input"]}}},{"kind":"MethodSignature","id":0,"name":"onMouseDown","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs every frame when any mouse button is being held down.","tags":{"param":["- The function that is run when any mouse button is being held down."],"example":["```js\n// count time with any mouse button down\nlet mouseTime = 0;\nonMouseDown((m) => {\n mouseTime += dt();\n});\n```"],"returns":["The event controller."],"since":["v3001.0"],"group":["Input"]}}}],"onMousePress":[{"kind":"MethodSignature","id":0,"name":"onMousePress","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when user clicks mouse.","tags":{"param":["- The function that is run when user clicks a mouse button."],"example":["```js\n// gives cookies on left press, remove on right press\nlet cookies = 0;\nonMousePress([\"left\", \"right\"], (m) => {\n if (m == \"left\") {\n cookies++;\n } else {\n cookies--;\n }\n});\n```"],"returns":["The event controller."],"since":["v3001.0"],"group":["Input"]}}},{"kind":"MethodSignature","id":0,"name":"onMousePress","parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when user clicks mouse.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- The mouse button(s) to listen for. See "},{"kind":"JSDocLink","id":0,"name":"MouseButton","text":"`MouseButton`"},{"kind":"JSDocText","id":0,"text":"."}],"- The function that is run what the user clicks cetain mouse buttons."],"example":["```js\n// gives cookies on any mouse press\nlet cookies = 0;\nonMousePress((m) => {\n cookies++;\n debug.log(`Cookies: ${cookies}`);\n});\n```"],"returns":["The event controller."],"since":["v3001.0"],"group":["Input"]}}}],"onMouseRelease":[{"kind":"MethodSignature","id":0,"name":"onMouseRelease","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when user releases mouse.","tags":{"param":["- The function that is run what the user clicks a provided mouse button."],"example":["```js\n// spawn bean where right mouse is released\nonMouseRelease(\"right\", (m) => {\n debug.log(`${m} released, spawning bean...`);\n add([\n pos(mousePos()),\n sprite(\"bean\"),\n anchor(\"center\"),\n ]);\n});\n```"],"returns":["The event controller."],"since":["v3001.0"],"group":["Input"]}}},{"kind":"MethodSignature","id":0,"name":"onMouseRelease","parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when user releases mouse.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- The button(s) to listen for. See "},{"kind":"JSDocLink","id":0,"name":"MouseButton","text":"`MouseButton`"},{"kind":"JSDocText","id":0,"text":"."}],"- The function that is run what the user clicks a provided mouse button."],"example":["```js\n// spawn bean where right mouse is released\nonMouseRelease((m) => {\n if (m == \"right\") {\n debug.log(`${m} released, spawning bean...`);\n add([\n pos(mousePos()),\n sprite(\"bean\"),\n anchor(\"center\"),\n ]);\n });\n});\n```"],"returns":["The event controller."],"since":["v3001.0"],"group":["Input"]}}}],"onMouseMove":[{"kind":"MethodSignature","id":0,"name":"onMouseMove","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"delta","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs whenever user moves the mouse.","tags":{"param":["- The function that is run what the user moves the mouse."],"example":["```js\n// runs when the mouse has moved\nonMouseMove((p, d) => {\n bean.pos = p; // set bean position to mouse position\n});\n```"],"returns":["The event controller."],"since":["v2000.1"],"group":["Input"]}}}],"onTouchStart":[{"kind":"MethodSignature","id":0,"name":"onTouchStart","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"TypeReference","id":0,"typeName":"Touch"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when a touch starts.","tags":{"param":["- The function to run when the event is triggered."],"returns":["The event controller."],"since":["v2000.1"],"group":["Input"]}}}],"onTouchMove":[{"kind":"MethodSignature","id":0,"name":"onTouchMove","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"TypeReference","id":0,"typeName":"Touch"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs whenever touch moves.","tags":{"param":["- The function to run when the event is triggered."],"returns":["The event controller."],"since":["v2000.1"],"group":["Input"]}}}],"onTouchEnd":[{"kind":"MethodSignature","id":0,"name":"onTouchEnd","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"TypeReference","id":0,"typeName":"Touch"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when a touch ends.","tags":{"param":["- The function to run when the event is triggered."],"returns":["The event controller."],"since":["v2000.1"],"group":["Input"]}}}],"onScroll":[{"kind":"MethodSignature","id":0,"name":"onScroll","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"delta","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when mouse wheel scrolled.","tags":{"param":["- The function to run when the event is triggered."],"example":["```js\n// Zoom camera on scroll\nonScroll((delta) => {\n const zoom = delta.y / 500;\n camScale(camScale().add(zoom));\n});\n```"],"returns":["The event controller."],"since":["v3000.0"],"group":["Input"]}}}],"onHide":[{"kind":"MethodSignature","id":0,"name":"onHide","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when tab is hidden.","tags":{"param":["- The function that is run what the tab is hidden."],"example":["```js\n// spooky ghost\nlet ghosty = add([\n pos(center()),\n sprite(\"ghosty\"),\n anchor(\"center\"),\n]);\n\n// when switching tabs, this runs\nonHide(() => {\n destroy(ghosty);\n add([\n text(\"There was never aa ghosttttt\"),\n pos(center()),\n anchor(\"center\")\n ]);\n});\n```"],"returns":["The event controller."],"since":["v3001.0"],"group":["Events"]}}}],"onShow":[{"kind":"MethodSignature","id":0,"name":"onShow","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when tab is shown.","tags":{"param":["- The function that is run when the tab is shown."],"example":["```js\n// user has returned to this tab\nonShow(() => {\n burp();\n});\n```"],"returns":["The event controller."],"since":["v3001.0"],"group":["Events"]}}}],"onGamepadButtonDown":[{"kind":"MethodSignature","id":0,"name":"onGamepadButtonDown","parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs every frame when certain gamepad buttons are held down.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- The button(s) to listen for. See "},{"kind":"JSDocLink","id":0,"name":"KGamepadButton","text":"`KGamepadButton`"},{"kind":"JSDocText","id":0,"text":"."}],"- The function that is run while certain gamepad buttons are held down."],"example":["```js\n// when button is being held down\nonGamepadButtonDown(\"rtrigger\", (gp) => {\n car.addForce(Vec2.fromAngle(car.angle).scale(10));\n});\n```"],"returns":["The event controller."],"since":["v3001.0"],"group":["Input"]}}},{"kind":"MethodSignature","id":0,"name":"onGamepadButtonDown","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs every frame when any gamepad buttons are held down.","tags":{"param":["- The function that is run while any gamepad buttons are held down."],"example":["```js\n// when button is being held down\nonGamepadButtonDown((btn, gp) => {\n if (btn == \"rtrigger\") {\n car.addForce(Vec2.fromAngle(car.angle).scale(10));\n } else if (btn == \"ltrigger\") {\n car.addForce(Vec2.fromAngle(car.angle).scale(-5));\n }\n});\n```"],"returns":["The event controller."],"since":["v3001.0"],"group":["Input"]}}}],"onGamepadButtonPress":[{"kind":"MethodSignature","id":0,"name":"onGamepadButtonPress","parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when user presses certain gamepad button.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- The button(s) to listen for. See "},{"kind":"JSDocLink","id":0,"name":"KGamepadButton","text":"`KGamepadButton`"},{"kind":"JSDocText","id":0,"text":"."}],"- The function that is run when certain gamepad buttons are pressed."],"example":["```js\n// when user presses button\nonGamepadButtonPress(\"south\", (btn, gp) => {\n player.jump(200);\n});\n```"],"returns":["The event controller."],"since":["v3001.0"],"group":["Input"]}}},{"kind":"MethodSignature","id":0,"name":"onGamepadButtonPress","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when user presses any gamepad button.","tags":{"param":["- The function that is run when any gamepad buttons is pressed."],"example":["```js\n// when user presses button\nonGamepadButtonPress((btn, gp) => {\n if (btn == \"south\") {\n player.jump(200); // jump\n }\n});\n```"],"returns":["The event controller."],"since":["v3001.0"],"group":["Input"]}}}],"onGamepadButtonRelease":[{"kind":"MethodSignature","id":0,"name":"onGamepadButtonRelease","parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when user releases certain gamepad button","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- The button(s) to listen for. See "},{"kind":"JSDocLink","id":0,"name":"KGamepadButton","text":"`KGamepadButton`"},{"kind":"JSDocText","id":0,"text":"."}],"- The function that is run when certain gamepad buttons are released."],"example":["```js\n// charged attack\nlet chargeTime = 0\nonGamepadButtonPress(\"west\", (btn, gp) => {\n chargeTime = time();\n});\n\n// when a gamepad button is released, this is run\nonGamepadButtonRelease(\"west\", (btn, gp) => {\n let chargedt = time() - chargeTime;\n debug.log(`Used ${chargedt * 1000} power!`);\n});\n```"],"returns":["The event controller."],"since":["v3001.0"],"group":["Input"]}}},{"kind":"MethodSignature","id":0,"name":"onGamepadButtonRelease","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when user releases any gamepad button.","tags":{"param":["- The function that is run when any gamepad buttons are released."],"example":["```js\n// when a gamepad button is released, this is run\nonGamepadButtonRelease((btn, gp) => {\n if (btn == \"north\") {\n player.jump(500);\n }\n});\n```"],"returns":["The event controller."],"since":["v3000.0"],"group":["Input"]}}}],"onGamepadStick":[{"kind":"MethodSignature","id":0,"name":"onGamepadStick","parameters":[{"kind":"Parameter","id":0,"name":"stick","type":{"kind":"TypeReference","id":0,"typeName":"GamepadStick"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"value","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"gameepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when the gamepad axis exists.","tags":{"param":[[{"kind":"JSDocText","id":0,"text":"- The stick to listen for. See "},{"kind":"JSDocLink","id":0,"name":"GamepadStick","text":"`GamepadStick`"},{"kind":"JSDocText","id":0,"text":"."}],"- The function that is run when a specific gamepad stick is moved."],"example":["```js\n// player move\nlet player = add([\n pos(center()),\n sprite(`bean`),\n]);\n\n// when left stick is moved\nonGamepadStick(\"left\", (stickVector, gp) => {\n player.move(stickVector.x, 0);\n});\n```"],"returns":["The event controller."],"since":["v3000.0"],"group":["Input"]}}}],"onButtonPress":[{"kind":"MethodSignature","id":0,"name":"onButtonPress","parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"TButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"TButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"TButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when user press a defined button\n(like \"jump\") on any input (keyboard, gamepad).","tags":{"param":["- The button(s) to listen for.","- The function to run when the event is triggered."],"returns":["The event controller."],"since":["v3001.0"],"group":["Input"]}}}],"onButtonRelease":[{"kind":"MethodSignature","id":0,"name":"onButtonRelease","parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"TButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"TButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"TButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when user release a defined button\n(like \"jump\") on any input (keyboard, gamepad).","tags":{"param":["- The button(s) to listen for.","- The function to run when the event is triggered."],"returns":["The event controller."],"since":["v3001.0"],"group":["Input"]}}},{"kind":"MethodSignature","id":0,"name":"onButtonRelease","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"TButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}],"onButtonDown":[{"kind":"MethodSignature","id":0,"name":"onButtonDown","parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"TButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"TButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"TButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when user press a defined button\n(like \"jump\") on any input (keyboard, gamepad).","tags":{"param":["- The button(s) to listen for.","- The function to run when the event is triggered."],"returns":["The event controller."],"since":["v3001.0"],"group":["Input"]}}},{"kind":"MethodSignature","id":0,"name":"onButtonDown","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"TButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}],"onSceneLeave":[{"kind":"MethodSignature","id":0,"name":"onSceneLeave","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"newScene","questionToken":true,"type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when current scene ends.","tags":{"param":["- The function to run when the event is triggered."],"returns":["The event controller."],"since":["v3000.0"],"group":["Events"]}}}],"getSceneName":[{"kind":"MethodSignature","id":0,"name":"getSceneName","parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Gets the name of the current scene. Returns null if no scene is active.","tags":{"since":["v3001.0"],"group":["Scene"]}}}],"loadRoot":[{"kind":"MethodSignature","id":0,"name":"loadRoot","parameters":[{"kind":"Parameter","id":0,"name":"path","questionToken":true,"type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"StringKeyword","id":0},"jsDoc":{"doc":"Sets the root for all subsequent resource urls.\n\nThis is useful when you want to load assets from a different domain, or setup\na base path for all assets.","tags":{"param":["- The root path."],"example":["```js\nloadRoot(\"https://myassets.com/\");\nloadSprite(\"bean\", \"sprites/bean.png\"); // will resolve to \"https://myassets.com/sprites/bean.png\"\n\nloadRoot(\"./\"); // useful for Itch.io\n```"],"group":["Assets"]}}}],"loadSprite":[{"kind":"MethodSignature","id":0,"name":"loadSprite","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}},{"kind":"Parameter","id":0,"name":"src","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"LoadSpriteSrc"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"LoadSpriteSrc"}}]}},{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"LoadSpriteOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SpriteData"}]},"jsDoc":{"doc":"Load a sprite into asset manager, with name and resource url and optional config.","tags":{"param":["- The asset name.","- The resource url.","- The optional config."],"example":["```js\n// due to browser policies you'll need a static file server to load local files\nloadSprite(\"bean\", \"bean.png\");\nloadSprite(\"apple\", \"https://play.kaplayjs.com/sprites/apple.png\");\n\n// slice a spritesheet and add anims manually\nloadSprite(\"bean\", \"bean.png\", {\n sliceX: 4,\n sliceY: 1,\n anims: {\n run: {\n from: 0,\n to: 3,\n },\n jump: {\n from: 3,\n to: 3,\n },\n },\n});\n```"],"returns":["The asset data."],"since":["v2000.0"],"group":["Assets"]}}}],"loadSpriteAtlas":[{"kind":"MethodSignature","id":0,"name":"loadSpriteAtlas","parameters":[{"kind":"Parameter","id":0,"name":"src","type":{"kind":"TypeReference","id":0,"typeName":"LoadSpriteSrc"}},{"kind":"Parameter","id":0,"name":"data","type":{"kind":"TypeReference","id":0,"typeName":"SpriteAtlasData"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"SpriteData"}]}]},"jsDoc":{"doc":"Load sprites from a sprite atlas.","tags":{"param":["- The image resource url.","- The sprite atlas data."],"example":["```js\n// See #SpriteAtlasData type for format spec\nloadSpriteAtlas(\"sprites/dungeon.png\", {\n \"hero\": {\n x: 128,\n y: 68,\n width: 144,\n height: 28,\n sliceX: 9,\n anims: {\n idle: { from: 0, to: 3 },\n run: { from: 4, to: 7 },\n hit: 8,\n },\n },\n});\n\nconst player = add([\n sprite(\"hero\"),\n]);\n\nplayer.play(\"run\");\n```"],"returns":["The asset data."],"since":["v2000.0"],"group":["Assets"]}}},{"kind":"MethodSignature","id":0,"name":"loadSpriteAtlas","parameters":[{"kind":"Parameter","id":0,"name":"src","type":{"kind":"TypeReference","id":0,"typeName":"LoadSpriteSrc"}},{"kind":"Parameter","id":0,"name":"url","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"SpriteData"}]}]},"jsDoc":{"doc":"Load sprites from a sprite atlas with URL.","tags":{"param":["- The image resource url.","- The json resource url."],"example":["```js\n// Load from json file, see #SpriteAtlasData type for format spec\nloadSpriteAtlas(\"sprites/dungeon.png\", \"sprites/dungeon.json\")\n\nconst player = add([\n sprite(\"hero\"),\n])\n\nplayer.play(\"run\")\n```"],"returns":["The asset data."],"since":["v2000.0"],"group":["Assets"]}}}],"loadAseprite":[{"kind":"MethodSignature","id":0,"name":"loadAseprite","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}},{"kind":"Parameter","id":0,"name":"imgSrc","type":{"kind":"TypeReference","id":0,"typeName":"LoadSpriteSrc"}},{"kind":"Parameter","id":0,"name":"jsonSrc","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"AsepriteData"}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SpriteData"}]},"jsDoc":{"doc":"Load a sprite with aseprite spritesheet json (should use \"array\" in the export options).","tags":{"param":["- The asset name.","- The image resource url."],"example":["```js\nloadAseprite(\"car\", \"sprites/car.png\", \"sprites/car.json\")\n```"],"returns":["The asset data."],"since":["v2000.0"],"group":["Assets"]}}}],"loadPedit":[{"kind":"MethodSignature","id":0,"name":"loadPedit","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}},{"kind":"Parameter","id":0,"name":"src","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SpriteData"}]},"jsDoc":{"tags":{"deprecated":["The format is not supported anymore."],"param":["- The asset name.","- The resource url.\n\nLoad .pedit file."],"returns":["The asset data."],"since":["v2000.0"],"group":["Assets"]}}}],"loadBean":[{"kind":"MethodSignature","id":0,"name":"loadBean","parameters":[{"kind":"Parameter","id":0,"name":"name","questionToken":true,"type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SpriteData"}]},"jsDoc":{"doc":"Load default sprite \"bean\".","tags":{"param":["- The optional name for bean."],"example":["```js\nloadBean();\n\n// use it right away\nadd([\n sprite(\"bean\"),\n]);\n```"],"returns":["The asset data."],"since":["v2000.0"],"group":["Assets"]}}}],"loadJSON":[{"kind":"MethodSignature","id":0,"name":"loadJSON","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}},{"kind":"Parameter","id":0,"name":"url","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"AnyKeyword","id":0}]},"jsDoc":{"doc":"Load custom JSON data from url.","tags":{"param":["- The asset name.","- The resource url."],"returns":["The asset data."],"since":["v3000.0"],"group":["Assets"]}}}],"loadSound":[{"kind":"MethodSignature","id":0,"name":"loadSound","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}},{"kind":"Parameter","id":0,"name":"src","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"ArrayBuffer"},{"kind":"TypeReference","id":0,"typeName":"AudioBuffer"}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SoundData"}]},"jsDoc":{"doc":"Load a sound into asset manager, with name and resource url.\n\nSupported formats: mp3, ogg, wav.","tags":{"param":["- The asset name.","- The resource url."],"example":["```js\nloadSound(\"shoot\", \"/sounds/horse.ogg\");\nloadSound(\"shoot\", \"/sounds/squeeze.mp3\");\nloadSound(\"shoot\", \"/sounds/shoot.wav\");\n```"],"returns":["The asset data."],"since":["v2000.0"],"group":["Assets"]}}}],"loadMusic":[{"kind":"MethodSignature","id":0,"name":"loadMusic","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}},{"kind":"Parameter","id":0,"name":"url","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Like loadSound(), but the audio is streamed and won't block loading. Use this for big audio files like background music.","tags":{"param":["- The asset name.","- The resource url."],"example":["```js\nloadMusic(\"shoot\", \"/music/bossfight.mp3\");\n```"],"returns":["The asset data."],"since":["v3001.0"],"group":["Assets"]}}}],"loadFont":[{"kind":"MethodSignature","id":0,"name":"loadFont","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"src","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"BinaryData"}]}},{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"LoadFontOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"FontData"}]},"jsDoc":{"doc":"Load a font (any format supported by the browser, e.g. ttf, otf, woff).","tags":{"param":["- The asset name."],"example":["```js\n// load a font from a .ttf file\nloadFont(\"frogblock\", \"fonts/frogblock.ttf\");\n```"],"returns":["The asset data."],"since":["v3000.0"],"group":["Assets"]}}}],"loadBitmapFont":[{"kind":"MethodSignature","id":0,"name":"loadBitmapFont","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}},{"kind":"Parameter","id":0,"name":"src","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"gridW","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"gridH","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"LoadBitmapFontOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"BitmapFontData"}]},"jsDoc":{"doc":"Load a bitmap font into asset manager, with name and resource url and information on the layout of the bitmap.","tags":{"param":["- The asset name.","- The resource url.","- The width of each character on the bitmap.","- The height of each character on the bitmap.","- The options for the bitmap font."],"example":["```js\n// load a bitmap font called \"04b03\", with bitmap \"fonts/04b03.png\"\n// each character on bitmap has a size of (6, 8), and contains default ASCII_CHARS\nloadBitmapFont(\"04b03\", \"fonts/04b03.png\", 6, 8);\n\n// load a font with custom characters\nloadBitmapFont(\"myfont\", \"myfont.png\", 6, 8, { chars: \"☺☻♥♦♣♠\" });\n```"],"returns":["The asset data."],"since":["v3000.0"],"group":["Assets"]}}}],"loadShader":[{"kind":"MethodSignature","id":0,"name":"loadShader","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}},{"kind":"Parameter","id":0,"name":"vert","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}},{"kind":"Parameter","id":0,"name":"frag","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"ShaderData"}]},"jsDoc":{"doc":"Load a shader with vertex and fragment code.","tags":{"param":["- The asset name.","- The vertex shader code. Null if not needed.","- The fragment shader code. Null if not needed."],"example":["```js\n// default shaders and custom shader format\nloadShader(\"outline\",\n`vec4 vert(vec2 pos, vec2 uv, vec4 color) {\n // predefined functions to get the default value by KAPLAY\n return def_vert();\n}`,\n`vec4 frag(vec2 pos, vec2 uv, vec4 color, sampler2D tex) {\n // turn everything blue-ish\n return def_frag() * vec4(0, 0, 1, 1);\n}`, false)\n```"],"returns":["The asset data."],"since":["v2000.0"],"group":["Assets"]}}}],"loadShaderURL":[{"kind":"MethodSignature","id":0,"name":"loadShaderURL","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}},{"kind":"Parameter","id":0,"name":"vert","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}},{"kind":"Parameter","id":0,"name":"frag","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"ShaderData"}]},"jsDoc":{"doc":"Load a shader with vertex and fragment code file url.","tags":{"param":["- The name of the asset.","- The vertex shader code. Null if not needed.","- The fragment shader code. Null if not needed."],"example":["```js\n// load only a fragment shader from URL\nloadShaderURL(\"outline\", null, \"/shaders/outline.glsl\")\n```"],"retunrs":["The asset data."],"since":["v3000.0"],"group":["Assets"]}}}],"load":[{"kind":"MethodSignature","id":0,"name":"load","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"parameters":[{"kind":"Parameter","id":0,"name":"l","type":{"kind":"TypeReference","id":0,"typeName":"Promise","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]},"jsDoc":{"doc":"Add a new loader to wait for before starting the game.","tags":{"param":["- The loader to wait for."],"example":["```js\nload(new Promise((resolve, reject) => {\n // anything you want to do that stalls the game in loading state\n resolve(\"ok\")\n}))\n```"],"returns":["The asset data."],"since":["v3000.0"],"group":["Assets"]}}}],"loadProgress":[{"kind":"MethodSignature","id":0,"name":"loadProgress","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get the global asset loading progress (0.0 - 1.0).","tags":{"returns":["The loading progress."],"since":["v3000.0"],"group":["Assets"]}}}],"getSprite":[{"kind":"MethodSignature","id":0,"name":"getSprite","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SpriteData"}]},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Get SpriteData from name.","tags":{"param":["- The asset name."],"returns":["The asset data."],"since":["v3000.0"],"group":["Assets"]}}}],"getSound":[{"kind":"MethodSignature","id":0,"name":"getSound","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SoundData"}]},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Get SoundData from name.","tags":{"param":["- The asset name."],"returns":["The asset data."],"since":["v3000.0"],"group":["Assets"]}}}],"getFont":[{"kind":"MethodSignature","id":0,"name":"getFont","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"FontData"}]},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Get FontData from name.","tags":{"param":["- The asset name."],"returns":["The asset data."],"since":["v3000.0"],"group":["Assets"]}}}],"getBitmapFont":[{"kind":"MethodSignature","id":0,"name":"getBitmapFont","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"BitmapFontData"}]},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Get BitmapFontData from name.","tags":{"param":["- The asset name."],"returns":["The asset data."],"since":["v3000.0"],"group":["Assets"]}}}],"getShader":[{"kind":"MethodSignature","id":0,"name":"getShader","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"ShaderData"}]},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Get ShaderData from name.","tags":{"param":["- The asset name."],"returns":["The asset data."],"since":["v3000.0"],"group":["Assets"]}}}],"getAsset":[{"kind":"MethodSignature","id":0,"name":"getAsset","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"AnyKeyword","id":0}]},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Get custom data from name.","tags":{"param":["- The asset name."],"returns":["The asset data."],"since":["v3000.0"],"group":["Assets"]}}}],"Asset":[{"kind":"PropertySignature","id":0,"name":"Asset","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"Asset"}},"jsDoc":{"doc":"The asset data.","tags":{"group":["Assets"]}}}],"SpriteData":[{"kind":"PropertySignature","id":0,"name":"SpriteData","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"SpriteData"}},"jsDoc":{"doc":"The sprite data.","tags":{"group":["Assets"]}}}],"SoundData":[{"kind":"PropertySignature","id":0,"name":"SoundData","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"SoundData"}},"jsDoc":{"tags":{"group":["Assets"]}}}],"width":[{"kind":"MethodSignature","id":0,"name":"width","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get the width of game.","tags":{"returns":["The width of the game."],"since":["v2000.0"],"group":["Info"]}}}],"getTreeRoot":[{"kind":"MethodSignature","id":0,"name":"getTreeRoot","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"GameObj"},"jsDoc":{"doc":"Get the root of all objects.","tags":{"returns":["The root object."],"since":["v2000.0"],"group":["Info"]}}}],"height":[{"kind":"MethodSignature","id":0,"name":"height","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get the height of game.","tags":{"returns":["The height of the game."],"since":["v2000.0"],"group":["Info"]}}}],"center":[{"kind":"MethodSignature","id":0,"name":"center","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Get the center point of view.","tags":{"example":["```js\n// add bean to the center of the screen\nadd([\n sprite(\"bean\"),\n pos(center()),\n // ...\n])\n```"],"returns":["The center point of the view."],"since":["v2000.0"],"group":["Info"]}}}],"dt":[{"kind":"MethodSignature","id":0,"name":"dt","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get the delta time since last frame.","tags":{"example":["```js\n// rotate bean 100 deg per second\nbean.onUpdate(() => {\n bean.angle += 100 * dt()\n})\n```"],"since":["v2000.0"],"group":["Info"]}}}],"fixedDt":[{"kind":"MethodSignature","id":0,"name":"fixedDt","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get the fixed delta time since last frame.","tags":{"since":["v3000.0"],"group":["Info"]}}}],"restDt":[{"kind":"MethodSignature","id":0,"name":"restDt","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get the rest delta time since last frame.","tags":{"since":["v3000.0"],"group":["Info"]}}}],"time":[{"kind":"MethodSignature","id":0,"name":"time","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get the total time since beginning.","tags":{"since":["v3001"],"group":["Info"]}}}],"isFocused":[{"kind":"MethodSignature","id":0,"name":"isFocused","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If the game canvas is currently focused.","tags":{"returns":["true if focused."],"since":["v2000.1"],"group":["Info"]}}}],"isTouchscreen":[{"kind":"MethodSignature","id":0,"name":"isTouchscreen","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Is currently on a touch screen device.","tags":{"returns":["true if on a touch screen device."],"since":["v3000.0"],"group":["Input"]}}}],"mousePos":[{"kind":"MethodSignature","id":0,"name":"mousePos","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Get current mouse position (without camera transform).","tags":{"returns":["The current mouse position."],"since":["v2000.0"],"group":["Input"]}}}],"mouseDeltaPos":[{"kind":"MethodSignature","id":0,"name":"mouseDeltaPos","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"How much mouse moved last frame.","tags":{"returns":["The delta mouse position."],"since":["v2000.0"],"group":["Input"]}}}],"isKeyDown":[{"kind":"MethodSignature","id":0,"name":"isKeyDown","parameters":[{"kind":"Parameter","id":0,"name":"k","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If any or certain key(s) are currently down.","tags":{"param":["- The key(s) to check."],"example":["```js\n// Any key down\n\nlet lastKeyTime = time()\nlet triedToWakeUp = false\n\nonUpdate(() => {\n if (isKeyDown()) {\n lastKeyTime = time()\n triedToWakeUp = false\n return\n }\n\n if (triedToWakeUp || time() - lastKeyTime < 5) return\n\n debug.log(\"Wake up!\")\n triedToWakeUp = true\n})\n\n// Certain key down\n// equivalent to the calling bean.move() in an onKeyDown(\"left\")\n\nonUpdate(() => {\n if (isKeyDown(\"left\")) {\n bean.move(-SPEED, 0)\n }\n})\n\n// Certain keys down\n\nlet isMoving = false\n\nonUpdate(() => {\n isMoving = isKeyDown([\"left\", \"right\"])\n})\n```"],"since":["v2000.0"],"group":["Input"]}}}],"isKeyPressed":[{"kind":"MethodSignature","id":0,"name":"isKeyPressed","parameters":[{"kind":"Parameter","id":0,"name":"k","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If any or certain key(s) are just pressed last frame.","tags":{"param":["- The key(s) to check."],"example":["```js\nonUpdate(() => {\n if (!isKeyPressed()) return // early return as no key was pressed\n\n if (isKeyPressed(\"space\")) debug.log(\"Pressed the jump key\")\n if (isKeyPressed([\"left\", \"right\"])) debug.log(\"Pressed any of the move keys\")\n})\n```"],"since":["v2000.0"],"group":["Input"]}}}],"isKeyPressedRepeat":[{"kind":"MethodSignature","id":0,"name":"isKeyPressedRepeat","parameters":[{"kind":"Parameter","id":0,"name":"k","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If any or certain key(s) are just pressed last frame (also fires repeatedly when the keys are being held down).","tags":{"param":["- The key(s) to check."],"example":["```js\nlet heldKeys = new Set()\n\nonUpdate(() => {\n if (isKeyPressedRepeat(\"space\")) {\n pressedOrHeld([\"space\"], 'the jump key')\n } else if (isKeyPressedRepeat([\"left\", \"right\"])) {\n pressedOrHeld([\"left\", \"right\"], 'any of the move keys')\n } else if (isKeyPressedRepeat()) {\n pressedOrHeld([\"any\"], 'any key')\n }\n})\n\nonKeyRelease((key) => wait(0.1, () => {\n heldKeys.delete(key)\n heldKeys.delete(\"any\")\n}))\n\n// log message if pressed only or held as well\nfunction pressedOrHeld(keys, string) {\n debug.log(`Pressed${keys.some(key => heldKeys.has(key)) ? ' and held' : ''} ${string}`)\n keys.forEach((key) => {\n if (key == \"any\" || isKeyDown(key)) heldKeys.add(key)\n })\n}\n```"],"since":["v2000.0"],"group":["Input"]}}}],"isKeyReleased":[{"kind":"MethodSignature","id":0,"name":"isKeyReleased","parameters":[{"kind":"Parameter","id":0,"name":"k","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If any or certain key(s) are just released last frame.","tags":{"param":["- The key(s) to check."],"example":["```js\nonUpdate(() => {\n if (!isKeyReleased()) return // early return as no key was released\n\n if (isKeyReleased(\"space\")) debug.log(\"Released the jump key\")\n if (isKeyReleased([\"left\", \"right\"])) debug.log(\"Released any of the move keys\")\n})\n```"],"since":["v2000.0"],"group":["Input"]}}}],"isMouseDown":[{"kind":"MethodSignature","id":0,"name":"isMouseDown","parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}]}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If mouse buttons are currently down.","tags":{"param":["- The button(s) to check."],"since":["v2000.0"],"group":["Input"]}}}],"isMousePressed":[{"kind":"MethodSignature","id":0,"name":"isMousePressed","parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}]}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If mouse buttons are just clicked last frame","tags":{"param":["- The button(s) to check."],"since":["v2000.0"],"group":["Input"]}}}],"isMouseReleased":[{"kind":"MethodSignature","id":0,"name":"isMouseReleased","parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}]}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If mouse buttons are just released last frame.","tags":{"param":["- The button(s) to check."],"since":["v2000.0"],"group":["Input"]}}}],"isMouseMoved":[{"kind":"MethodSignature","id":0,"name":"isMouseMoved","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If mouse moved last frame.","tags":{"since":["v2000.1"],"group":["Input"]}}}],"isGamepadButtonPressed":[{"kind":"MethodSignature","id":0,"name":"isGamepadButtonPressed","parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If certain gamepad buttons are just pressed last frame","tags":{"param":["- The button(s) to check."],"since":["v3000.0"],"group":["Input"]}}}],"isGamepadButtonDown":[{"kind":"MethodSignature","id":0,"name":"isGamepadButtonDown","parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}]}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If certain gamepad buttons are currently held down.","tags":{"param":["- The button(s) to check."],"since":["v3000.0"],"group":["Input"]}}}],"isGamepadButtonReleased":[{"kind":"MethodSignature","id":0,"name":"isGamepadButtonReleased","parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If certain gamepad buttons are just released last frame.","tags":{"param":["- The button(s) to check."],"since":["v3000.0"],"group":["Input"]}}}],"isButtonPressed":[{"kind":"MethodSignature","id":0,"name":"isButtonPressed","parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"TButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"TButton"}}]}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If any or certain bound button(s) are just pressed last frame on any input (keyboard, gamepad).","tags":{"param":["- The button(s) to check."],"example":["```js\nonUpdate(() => {\n if (!isButtonPressed()) return // early return as no button was pressed\n\n if (isButtonPressed(\"jump\")) debug.log(\"Player jumped\")\n if (isButtonPressed([\"left\", \"right\"])) debug.log(\"Player moved\")\n})\n```"],"since":["v3001.0"],"group":["Input"]}}}],"isButtonDown":[{"kind":"MethodSignature","id":0,"name":"isButtonDown","parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"TButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"TButton"}}]}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If any or certain bound button(s) are currently held down on any input (keyboard, gamepad).","tags":{"param":["- The button(s) to check."],"example":["```js\nonUpdate(() => {\n if (!isButtonDown()) return // early return as no button is held down\n\n if (isButtonDown(\"jump\")) debug.log(\"Player is jumping\")\n if (isButtonDown([\"left\", \"right\"])) debug.log(\"Player is moving\")\n})\n```"],"since":["v3001.0"],"group":["Input"]}}}],"isButtonReleased":[{"kind":"MethodSignature","id":0,"name":"isButtonReleased","parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"TButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"TButton"}}]}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If any or certain bound button(s) are just released last frame on any input (keyboard, gamepad).","tags":{"param":["- The button(s) to check."],"example":["```js\nonUpdate(() => {\n if (!isButtonReleased()) return // early return as no button was released\n\n if (isButtonReleased(\"jump\")) debug.log(\"Player stopped jumping\")\n if (isButtonReleased([\"left\", \"right\"])) debug.log(\"Player stopped moving\")\n})\n```"],"since":["v3001.0"],"group":["Input"]}}}],"getButton":[{"kind":"MethodSignature","id":0,"name":"getButton","parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeOperator","id":0,"operator":143,"type":{"kind":"TypeReference","id":0,"typeName":"TButtonDef"}}}],"type":{"kind":"TypeReference","id":0,"typeName":"ButtonBinding"},"jsDoc":{"doc":"Get a input binding from a button name.","tags":{"param":["- The button to get binding for."],"since":["v3001.0"],"group":["Input"]}}}],"setButton":[{"kind":"MethodSignature","id":0,"name":"setButton","parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"def","type":{"kind":"TypeReference","id":0,"typeName":"ButtonBinding"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Set a input binding for a button name.","tags":{"param":["- The button to set binding for."],"since":["v3001.0"],"group":["Input"]}}}],"pressButton":[{"kind":"MethodSignature","id":0,"name":"pressButton","parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"TButton"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Press a button virtually.","tags":{"param":["- The button to press."],"example":["```js\n// press \"jump\" button\npressButton(\"jump\"); // triggers onButtonPress, starts onButtonDown\nreleaseButton(\"jump\"); // triggers onButtonRelease, stops onButtonDown\n```"],"since":["v3001.0"],"group":["Input"]}}}],"releaseButton":[{"kind":"MethodSignature","id":0,"name":"releaseButton","parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"TButton"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Release a button virtually.","tags":{"param":["- The button to release."],"example":["```js\n// press \"jump\" button\npressButton(\"jump\"); // triggers onButtonPress, starts onButtonDown\nreleaseButton(\"jump\"); // triggers onButtonRelease, stops onButtonDown\n```"],"since":["v3001.0"],"group":["Input"]}}}],"getGamepadStick":[{"kind":"MethodSignature","id":0,"name":"getGamepadStick","parameters":[{"kind":"Parameter","id":0,"name":"stick","type":{"kind":"TypeReference","id":0,"typeName":"GamepadStick"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Get stick axis values from a gamepad.","tags":{"param":["- The stick to get values from."],"returns":["The stick axis Vec2."],"since":["v3001.0"],"group":["Input"]}}}],"getLastInputDeviceType":[{"kind":"MethodSignature","id":0,"name":"getLastInputDeviceType","parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"ButtonBindingDevice"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Get the latest input device type that triggered the input event.","tags":{"returns":["The last input device type, or null if no input event has been triggered."],"since":["v3001.0"],"group":["Input"]}}}],"charInputted":[{"kind":"MethodSignature","id":0,"name":"charInputted","parameters":[],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}},"jsDoc":{"doc":"List of characters inputted since last frame.","tags":{"returnns":["An array of characters inputted."],"since":["v3000.0"],"group":["Input"]}}}],"setCamPos":[{"kind":"MethodSignature","id":0,"name":"setCamPos","parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Set camera position.","tags":{"param":["- The position to set the camera to."],"example":["```js\n// move camera to (100, 100)\nsetCamPos(100, 100);\nsetCamPos(vec2(100, 100));\nsetCamPos(100); // x and y are the same\n```"],"since":["v3001.1"],"group":["Camera"]}}},{"kind":"MethodSignature","id":0,"name":"setCamPos","parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}},{"kind":"MethodSignature","id":0,"name":"setCamPos","parameters":[{"kind":"Parameter","id":0,"name":"xy","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}],"getCamPos":[{"kind":"MethodSignature","id":0,"name":"getCamPos","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Get camera position.","tags":{"returns":["The current camera position."],"since":["v3001.1"],"group":["Camera"]}}}],"setCamScale":[{"kind":"MethodSignature","id":0,"name":"setCamScale","parameters":[{"kind":"Parameter","id":0,"name":"scale","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Set camera scale.","tags":{"param":["- The scale to set the camera to."],"example":["```js\n// set camera scale to (2, 2)\nsetCamScale(2, 2);\nsetCamScale(vec2(2, 2));\nsetCamScale(2); // x and y are the same\n```"],"since":["v3001.1"],"group":["Camera"]}}},{"kind":"MethodSignature","id":0,"name":"setCamScale","parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}},{"kind":"MethodSignature","id":0,"name":"setCamScale","parameters":[{"kind":"Parameter","id":0,"name":"xy","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}],"getCamScale":[{"kind":"MethodSignature","id":0,"name":"getCamScale","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Get camera scale.","tags":{"returns":["The current camera scale."],"since":["v3001.1"],"group":["Camera"]}}}],"setCamRot":[{"kind":"MethodSignature","id":0,"name":"setCamRot","parameters":[{"kind":"Parameter","id":0,"name":"angle","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Set camera rotation.","tags":{"param":["- The angle to rotate the camera."],"example":["```js\n// rotate camera 90 degrees\nsetCamRot(90);\n```"],"since":["v3001.1"],"group":["Camera"]}}}],"getCamRot":[{"kind":"MethodSignature","id":0,"name":"getCamRot","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get camera rotation.","tags":{"returns":["The current camera rotation."],"since":["v3001.1"],"group":["Camera"]}}}],"getCamTransform":[{"kind":"MethodSignature","id":0,"name":"getCamTransform","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Mat23"},"jsDoc":{"doc":"Get camera transform.","tags":{"returns":["The current camera transform."],"since":["v3001.1"],"group":["Camera"]}}}],"shake":[{"kind":"MethodSignature","id":0,"name":"shake","parameters":[{"kind":"Parameter","id":0,"name":"intensity","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Camera shake.","tags":{"param":["- The intensity of the shake. Default to 12."],"example":["```js\n// shake intensively when bean collides with a \"bomb\"\nbean.onCollide(\"bomb\", () => {\n shake(120)\n})\n```"],"since":["v3000.0"],"group":["Camera"]}}}],"flash":[{"kind":"MethodSignature","id":0,"name":"flash","parameters":[{"kind":"Parameter","id":0,"name":"flashColor","type":{"kind":"TypeReference","id":0,"typeName":"Color"}},{"kind":"Parameter","id":0,"name":"fadeOutTime","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"TimerController"},"jsDoc":{"doc":"Camera flash.","tags":{"param":["- The color of the flash.","- The time it takes for the flash to fade out."],"example":["```js\nonClick(() => {\n // flashed\n flash(WHITE, 0.5);\n});\n```"],"returns":["A timer controller."],"since":["v3001.0"],"group":["Camera"]}}}],"camPos":[{"kind":"MethodSignature","id":0,"name":"camPos","parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"tags":{"deprecated":[[{"kind":"JSDocText","id":0,"text":"Use "},{"kind":"JSDocLink","id":0,"name":"setCamPos","text":""},{"kind":"JSDocText","id":0,"text":" and "},{"kind":"JSDocLink","id":0,"name":"getCamPos","text":""},{"kind":"JSDocText","id":0,"text":" instead.\n\nGet / set camera position."}]],"param":["- The position to set the camera to."],"example":["```js\n// camera follows player\nplayer.onUpdate(() => {\n camPos(player.pos)\n})\n```"],"returns":["The current camera position."],"since":["v2000.0"],"group":["Camera"]}}},{"kind":"MethodSignature","id":0,"name":"camPos","parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"tags":{"deprecated":[null]}}},{"kind":"MethodSignature","id":0,"name":"camPos","parameters":[{"kind":"Parameter","id":0,"name":"xy","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"tags":{"deprecated":[null]}}},{"kind":"MethodSignature","id":0,"name":"camPos","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"tags":{"deprecated":[null]}}}],"camScale":[{"kind":"MethodSignature","id":0,"name":"camScale","parameters":[{"kind":"Parameter","id":0,"name":"scale","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"tags":{"deprecated":[[{"kind":"JSDocText","id":0,"text":"Use "},{"kind":"JSDocLink","id":0,"name":"setCamScale","text":""},{"kind":"JSDocText","id":0,"text":" and "},{"kind":"JSDocLink","id":0,"name":"getCamScale","text":""},{"kind":"JSDocText","id":0,"text":" instead.\n\nGet / set camera scale."}]],"param":["- The scale to set the camera to."],"returns":["The current camera scale."],"since":["v2000.0"],"group":["Camera"]}}},{"kind":"MethodSignature","id":0,"name":"camScale","parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"tags":{"deprecated":[null]}}},{"kind":"MethodSignature","id":0,"name":"camScale","parameters":[{"kind":"Parameter","id":0,"name":"xy","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"tags":{"deprecated":[null]}}},{"kind":"MethodSignature","id":0,"name":"camScale","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"tags":{"deprecated":[null]}}}],"camRot":[{"kind":"MethodSignature","id":0,"name":"camRot","parameters":[{"kind":"Parameter","id":0,"name":"angle","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"tags":{"deprecated":[[{"kind":"JSDocText","id":0,"text":"Use "},{"kind":"JSDocLink","id":0,"name":"setCamRot","text":""},{"kind":"JSDocText","id":0,"text":" and "},{"kind":"JSDocLink","id":0,"name":"getCamRot","text":""},{"kind":"JSDocText","id":0,"text":" instead.\n\nGet / set camera rotation."}]],"param":["- The angle to rotate the camera."],"returns":["The current camera rotation."],"since":["v2000.0"],"group":["Camera"]}}}],"camFlash":[{"kind":"MethodSignature","id":0,"name":"camFlash","parameters":[{"kind":"Parameter","id":0,"name":"flashColor","type":{"kind":"TypeReference","id":0,"typeName":"Color"}},{"kind":"Parameter","id":0,"name":"fadeOutTime","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"TimerController"},"jsDoc":{"tags":{"deprecated":[[{"kind":"JSDocText","id":0,"text":"use "},{"kind":"JSDocLink","id":0,"name":"flash","text":""},{"kind":"JSDocText","id":0,"text":" instead.\n\nFlash the camera."}]],"param":["- The color of the flash.","- The time it takes for the flash to fade out."],"example":["```js\nonClick(() => {\n // flashed\n camFlash(WHITE, 0.5)\n})\n```"],"returns":["A timer controller."],"since":["v3001.0"],"group":["Camera"]}}}],"camTransform":[{"kind":"MethodSignature","id":0,"name":"camTransform","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Mat23"},"jsDoc":{"tags":{"deprecated":[[{"kind":"JSDocText","id":0,"text":"use "},{"kind":"JSDocLink","id":0,"name":"getCamTransform","text":""},{"kind":"JSDocText","id":0,"text":" instead.\n\nGet camera transform."}]],"group":["Camera"]}}}],"toScreen":[{"kind":"MethodSignature","id":0,"name":"toScreen","parameters":[{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Transform a point from world position (relative to the root) to screen position (relative to the screen).","tags":{"param":["- The point to transform."],"since":["v3001.0"],"group":["Camera"]}}}],"toWorld":[{"kind":"MethodSignature","id":0,"name":"toWorld","parameters":[{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Transform a point from screen position (relative to the screen) to world position (relative to the root).","tags":{"param":["- The point to transform."],"since":["v3001.0"],"group":["Camera"]}}}],"setGravity":[{"kind":"MethodSignature","id":0,"name":"setGravity","parameters":[{"kind":"Parameter","id":0,"name":"g","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Set gravity.","tags":{"param":["- The gravity to set."],"since":["v2000.0"],"group":["Physics"]}}}],"getGravity":[{"kind":"MethodSignature","id":0,"name":"getGravity","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get gravity.","tags":{"since":["v3001.0"],"group":["Physics"]}}}],"setGravityDirection":[{"kind":"MethodSignature","id":0,"name":"setGravityDirection","parameters":[{"kind":"Parameter","id":0,"name":"d","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Set gravity direction.","tags":{"since":["v3001.0"],"group":["Physics"]}}}],"getGravityDirection":[{"kind":"MethodSignature","id":0,"name":"getGravityDirection","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Get gravity direction.","tags":{"returns":["The gravity direction."],"since":["v3001.0"],"group":["Physics"]}}}],"setBackground":[{"kind":"MethodSignature","id":0,"name":"setBackground","parameters":[{"kind":"Parameter","id":0,"name":"color","type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Set background color.","tags":{"since":["v3000.0"],"group":["Info"]}}},{"kind":"MethodSignature","id":0,"name":"setBackground","parameters":[{"kind":"Parameter","id":0,"name":"color","type":{"kind":"TypeReference","id":0,"typeName":"Color"}},{"kind":"Parameter","id":0,"name":"alpha","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}},{"kind":"MethodSignature","id":0,"name":"setBackground","parameters":[{"kind":"Parameter","id":0,"name":"r","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"g","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"b","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}},{"kind":"MethodSignature","id":0,"name":"setBackground","parameters":[{"kind":"Parameter","id":0,"name":"r","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"g","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"b","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"alpha","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}],"getBackground":[{"kind":"MethodSignature","id":0,"name":"getBackground","parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Color"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Get background color.","tags":{"returns":["The background color."],"since":["v3000.0"],"group":["Info"]}}}],"getGamepads":[{"kind":"MethodSignature","id":0,"name":"getGamepads","parameters":[],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}},"jsDoc":{"doc":"Get connected gamepads.","tags":{"returns":["An array of connected gamepads."],"since":["v3000.0"],"group":["Info"]}}}],"setCursor":[{"kind":"MethodSignature","id":0,"name":"setCursor","parameters":[{"kind":"Parameter","id":0,"name":"style","type":{"kind":"TypeReference","id":0,"typeName":"Cursor"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Set cursor style.","tags":{"param":["- The cursor style."],"example":["```js\n// Change between cursor styles\n\n// Reset cursor to default at start of every frame\nonUpdate(() => setCursor(\"default\"));\n\nbutton.onHover((c) => {\n // change cursor to pointer when hovering over button\n setCursor(\"pointer\")\n})\n\n// Hide the only cursor at start (useful for fakeMouse)\nsetCursor(\"none\");\n```"],"since":["v2000.0"],"group":["Info"]}}}],"getCursor":[{"kind":"MethodSignature","id":0,"name":"getCursor","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Cursor"},"jsDoc":{"doc":"Get current cursor style.","tags":{"returns":["The current cursor style."],"since":["v2000.0"],"group":["Info"]}}}],"setCursorLocked":[{"kind":"MethodSignature","id":0,"name":"setCursorLocked","parameters":[{"kind":"Parameter","id":0,"name":"locked","type":{"kind":"BooleanKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Lock / unlock cursor. Note that you cannot lock cursor within 1 second after user unlocking the cursor with the default unlock gesture (typically the esc key) due to browser policy.","tags":{"since":["v2000.0"],"group":["Info"]}}}],"isCursorLocked":[{"kind":"MethodSignature","id":0,"name":"isCursorLocked","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Get if cursor is currently locked.","tags":{"returns":["true if locked, false otherwise."],"since":["v2000.0"],"group":["Info"]}}}],"setFullscreen":[{"kind":"MethodSignature","id":0,"name":"setFullscreen","parameters":[{"kind":"Parameter","id":0,"name":"f","questionToken":true,"type":{"kind":"BooleanKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Enter / exit fullscreen mode. (note: mouse position is not working in fullscreen mode at the moment)","tags":{"example":["```js\n// toggle fullscreen mode on \"f\"\nonKeyPress(\"f\", (c) => {\n setFullscreen(!isFullscreen());\n});\n```"],"since":["v2000.0"],"group":["Info"]}}}],"isFullscreen":[{"kind":"MethodSignature","id":0,"name":"isFullscreen","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If currently in fullscreen mode.","tags":{"returns":["true if fullscreen, false otherwise."],"since":["v2000.0"],"group":["Info"]}}}],"wait":[{"kind":"MethodSignature","id":0,"name":"wait","parameters":[{"kind":"Parameter","id":0,"name":"n","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"action","questionToken":true,"type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"TimerController"},"jsDoc":{"doc":"Run the function after n seconds.","tags":{"param":["- The time to wait in seconds.","- The function to run."],"example":["```js\n// 3 seconds until explosion! Runnn!\nwait(3, () => {\n explode()\n})\n\n// wait() returns a PromiseLike that can be used with await\nawait wait(1)\n```"],"returns":["A timer controller."],"since":["v2000.0"],"group":["Timer"]}}}],"loop":[{"kind":"MethodSignature","id":0,"name":"loop","parameters":[{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"maxLoops","questionToken":true,"type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"waitFirst","questionToken":true,"type":{"kind":"BooleanKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"TimerController"},"jsDoc":{"doc":"Run the function every n seconds.","tags":{"param":["- The time to wait in seconds.","- The function to run.","- The maximum number of loops to run. If not provided, it will run forever.","- Whether to wait for the first loop to start."],"example":["```js\n// spawn a butterfly at random position every 1 second\nloop(1, () => {\n add([\n sprite(\"butterfly\"),\n pos(rand(vec2(width(), height()))),\n area(),\n \"friend\",\n ])\n})\n```"],"returns":["A timer controller."],"since":["v2000.0"],"group":["Timer"]}}}],"play":[{"kind":"MethodSignature","id":0,"name":"play","parameters":[{"kind":"Parameter","id":0,"name":"src","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"SoundData"},{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SoundData"}]},{"kind":"TypeReference","id":0,"typeName":"MusicData"},{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"MusicData"}]}]}},{"kind":"Parameter","id":0,"name":"options","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"AudioPlayOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"AudioPlay"},"jsDoc":{"doc":"Play a piece of audio.","tags":{"example":["```js\n// play a one off sound\nplay(\"wooosh\")\n\n// play a looping soundtrack (check out AudioPlayOpt for more options)\nconst music = play(\"OverworldlyFoe\", {\n volume: 0.8,\n loop: true\n})\n\n// using the handle to control (check out AudioPlay for more controls / info)\nmusic.paused = true\nmusic.speed = 1.2\n```"],"returns":["A control handle."],"since":["v2000.0"],"group":["Audio"]}}}],"burp":[{"kind":"MethodSignature","id":0,"name":"burp","parameters":[{"kind":"Parameter","id":0,"name":"options","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"AudioPlayOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"AudioPlay"},"jsDoc":{"doc":"Yep. Plays a burp sound.","tags":{"returns":["A control handle."],"since":["v2000.0"],"group":["Audio"]}}}],"setVolume":[{"kind":"MethodSignature","id":0,"name":"setVolume","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Set the global volume.","tags":{"param":["- The volume to set."],"example":["```js\nsetVolume(0.5)\n```"],"since":["v3001.1"],"group":["Audio"]}}}],"getVolume":[{"kind":"MethodSignature","id":0,"name":"getVolume","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get the global volume.","tags":{"returns":["The current volume."],"since":["v3001.1"],"group":["Audio"]}}}],"volume":[{"kind":"MethodSignature","id":0,"name":"volume","parameters":[{"kind":"Parameter","id":0,"name":"v","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"tags":{"deprecated":[[{"kind":"JSDocText","id":0,"text":"Use "},{"kind":"JSDocLink","id":0,"name":"setVolume","text":""},{"kind":"JSDocText","id":0,"text":" and "},{"kind":"JSDocLink","id":0,"name":"getVolume","text":""},{"kind":"JSDocText","id":0,"text":" instead.\n\nSets global volume."}]],"example":["```js\n// makes everything quieter\nvolume(0.5)\n```"],"returns":["The new volume or the current volume."],"since":["v2000.0"],"group":["Audio"]}}}],"audioCtx":[{"kind":"PropertySignature","id":0,"name":"audioCtx","type":{"kind":"TypeReference","id":0,"typeName":"AudioContext"},"jsDoc":{"doc":"Get the underlying browser AudioContext.","tags":{"since":["v2000.0"],"group":["Audio"]}}}],"rand":[{"kind":"MethodSignature","id":0,"name":"rand","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T","default":{"kind":"TypeReference","id":0,"typeName":"RNGValue"}}],"parameters":[{"kind":"Parameter","id":0,"name":"a","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"T"}},{"kind":"Parameter","id":0,"name":"b","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"T"}}],"type":{"kind":"TypeReference","id":0,"typeName":"T"},"jsDoc":{"doc":"Get a random value between the given bound.","tags":{"param":["- The lower bound. If not upper bound, this is the upper bound and the lower bound is 0.","- The upper bound."],"example":["```js\n// a random number between 0 - 8\nrand(8)\n\n// a random point on screen\nrand(vec2(width(), height()))\n\n// a random color\nrand(rgb(255, 255, 255))\n\n// a random number between 50 - 100\nrand(50, 100);\n\n// a random point on screen with x between 20 - 100 and y between 20 - 100\nrand(vec2(20), vec2(100));\n\n// spawn something on the right side of the screen but with random y value within screen height\nadd([\n pos(width(), rand(0, height())),\n]);\n```"],"since":["v2000.0"],"group":["Random"]}}}],"randi":[{"kind":"MethodSignature","id":0,"name":"randi","parameters":[{"kind":"Parameter","id":0,"name":"a","questionToken":true,"type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"b","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"rand() but floored to integer. If not arguments, returns 0 or 1.","tags":{"param":["- The lower bound. If not upper bound, this is the upper bound.","- The upper bound."],"example":["```js\nrandi(); // returns either 0 or 1\nrandi(10); // returns a random integer between 0 and 9\nrandi(10, 20); // returns a random integer between 10 and 19\n```"],"returns":["A random integer between 0 and 1."],"since":["v2000.0"],"group":["Random"]}}}],"randSeed":[{"kind":"MethodSignature","id":0,"name":"randSeed","parameters":[{"kind":"Parameter","id":0,"name":"seed","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get / set the random number generator seed.","tags":{"param":["- The seed to set."],"example":["```js\nrandSeed(Date.now())\n```"],"returns":["The new seed."],"since":["v2000.0"],"group":["Random"]}}}],"vec2":[{"kind":"MethodSignature","id":0,"name":"vec2","parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Create a 2D vector.","tags":{"example":["```js\n// { x: 0, y: 0 }\nvec2()\n\n// { x: 10, y: 10 }\nvec2(10)\n\n// { x: 100, y: 80 }\nvec2(100, 80)\n\n// move to 150 degrees direction with by length 10\nplayer.pos = pos.add(Vec2.fromAngle(150).scale(10))\n```"],"returns":["The vector."],"since":["v2000.0"],"group":["Math"]}}},{"kind":"MethodSignature","id":0,"name":"vec2","parameters":[{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"MethodSignature","id":0,"name":"vec2","parameters":[{"kind":"Parameter","id":0,"name":"xy","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"MethodSignature","id":0,"name":"vec2","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"rgb":[{"kind":"MethodSignature","id":0,"name":"rgb","parameters":[{"kind":"Parameter","id":0,"name":"r","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"g","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"b","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Color"},"jsDoc":{"doc":"Create a color from RGB values (0 - 255).","tags":{"param":["- The red value.","- The green value.","- The blue value."],"example":["```js\n// update the color of the sky to light blue\nsky.color = rgb(0, 128, 255)\n```"],"returns":["The color."],"since":["v2000.0"],"group":["Math"]}}},{"kind":"MethodSignature","id":0,"name":"rgb","parameters":[{"kind":"Parameter","id":0,"name":"hex","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Color"},"jsDoc":{"doc":"Create a color from hex string.","tags":{"param":["- The hex string."],"example":["```js\nsky.color = rgb(\"#ef6360\")"],"returns":["The color."],"since":["v2000.0"],"group":["Math"]}}},{"kind":"MethodSignature","id":0,"name":"rgb","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Color"},"jsDoc":{"doc":"Same as rgb(255, 255, 255).","tags":{"group":["Math"]}}}],"hsl2rgb":[{"kind":"MethodSignature","id":0,"name":"hsl2rgb","parameters":[{"kind":"Parameter","id":0,"name":"hue","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"saturation","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"lightness","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Color"},"jsDoc":{"doc":"Convert HSL color (all values in 0.0 - 1.0 range) to RGB color.","tags":{"param":["- The hue value.","- The saturation value.","- The lightness value."],"example":["```js\n// animate rainbow color\nonUpdate(\"rainbow\", (obj) => {\n obj.color = hsl2rgb(wave(0, 1, time()), 0.6, 0.6);\n});\n```"],"returns":["The color."],"since":["v2000.1"],"group":["Math"]}}}],"quad":[{"kind":"MethodSignature","id":0,"name":"quad","parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"w","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"h","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Quad"},"jsDoc":{"doc":"Rectangle area (0.0 - 1.0).","tags":{"param":["- The x position of the rectangle.","- The y position of the rectangle.","- The width of the rectangle.","- The height of the rectangle."],"returns":["A Quad object."],"since":["v3001.0"],"group":["Math"]}}}],"choose":[{"kind":"MethodSignature","id":0,"name":"choose","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"parameters":[{"kind":"Parameter","id":0,"name":"lst","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"T"}}}],"type":{"kind":"TypeReference","id":0,"typeName":"T"},"jsDoc":{"doc":"Choose a random item from a list.","tags":{"param":["- The list to choose from."],"example":["```js\n// decide the best fruit randomly\nconst bestFruit = choose([\"apple\", \"banana\", \"pear\", \"watermelon\"]);\n```"],"returns":["A random item from the list."],"since":["v3001.0"],"group":["Random"]}}}],"chooseMultiple":[{"kind":"MethodSignature","id":0,"name":"chooseMultiple","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"parameters":[{"kind":"Parameter","id":0,"name":"lst","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"T"}}},{"kind":"Parameter","id":0,"name":"count","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"T"}},"jsDoc":{"doc":"Choose multiple random items from a list.","tags":{"param":["- The list to choose from.","- The number of items to choose."],"returns":["An array of random items from the list."],"since":["v3001.0"],"group":["Random"]}}}],"shuffle":[{"kind":"MethodSignature","id":0,"name":"shuffle","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"parameters":[{"kind":"Parameter","id":0,"name":"lst","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"T"}}}],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"T"}},"jsDoc":{"doc":"Shuffle an array.","tags":{"param":["- The list to shuffle."],"returns":["A shuffled array."],"since":["v3001.0"],"group":["Random"]}}}],"chance":[{"kind":"MethodSignature","id":0,"name":"chance","parameters":[{"kind":"Parameter","id":0,"name":"p","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"rand(1) <= p","tags":{"example":["```js\n// every frame all objs with tag \"unlucky\" have 50% chance die\nonUpdate(\"unlucky\", (o) => {\n if (chance(0.5)) {\n destroy(o)\n }\n})\n```"],"group":["Math"]}}}],"lerp":[{"kind":"MethodSignature","id":0,"name":"lerp","typeParameters":[{"kind":"TypeParameter","id":0,"name":"V","constraint":{"kind":"TypeReference","id":0,"typeName":"LerpValue"}}],"parameters":[{"kind":"Parameter","id":0,"name":"from","type":{"kind":"TypeReference","id":0,"typeName":"V"}},{"kind":"Parameter","id":0,"name":"to","type":{"kind":"TypeReference","id":0,"typeName":"V"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"V"},"jsDoc":{"doc":"Linear interpolation.","tags":{"group":["Math"]}}}],"tween":[{"kind":"MethodSignature","id":0,"name":"tween","typeParameters":[{"kind":"TypeParameter","id":0,"name":"V","constraint":{"kind":"TypeReference","id":0,"typeName":"LerpValue"}}],"parameters":[{"kind":"Parameter","id":0,"name":"from","type":{"kind":"TypeReference","id":0,"typeName":"V"}},{"kind":"Parameter","id":0,"name":"to","type":{"kind":"TypeReference","id":0,"typeName":"V"}},{"kind":"Parameter","id":0,"name":"duration","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"setValue","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"value","type":{"kind":"TypeReference","id":0,"typeName":"V"}}],"type":{"kind":"VoidKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"easeFunc","questionToken":true,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"TweenController"},"jsDoc":{"doc":"Tweeeeeeeening!","tags":{"since":["v3000.0"],"example":["```js\n// tween bean to mouse position\ntween(bean.pos, mousePos(), 1, (p) => bean.pos = p, easings.easeOutBounce)\n```"],"group":["Math"]}}}],"easings":[{"kind":"PropertySignature","id":0,"name":"easings","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"EaseFuncs"},{"kind":"TypeReference","id":0,"typeName":"EaseFunc"}]},"jsDoc":{"doc":"A collection of easing functions for tweening.","tags":{"since":["v3000.0"],"group":["Math"]}}}],"easingSteps":[{"kind":"MethodSignature","id":0,"name":"easingSteps","parameters":[{"kind":"Parameter","id":0,"name":"steps","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"position","type":{"kind":"TypeReference","id":0,"typeName":"StepPosition"}}],"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0}},"jsDoc":{"doc":"Steps easing. Eases in discontinious steps.","tags":{"since":["v3001.0"],"group":["Math"]}}}],"easingLinear":[{"kind":"MethodSignature","id":0,"name":"easingLinear","parameters":[{"kind":"Parameter","id":0,"name":"keys","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}}],"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0}},"jsDoc":{"doc":"Linear easing with keyframes","tags":{"since":["v3001.0"],"group":["Math"]}}}],"easingCubicBezier":[{"kind":"MethodSignature","id":0,"name":"easingCubicBezier","parameters":[{"kind":"Parameter","id":0,"name":"p1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"p2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0}},"jsDoc":{"doc":"Bezier easing. Both control points need x to be within 0 and 1.","tags":{"since":["v3001.0"],"group":["Math"]}}}],"map":[{"kind":"MethodSignature","id":0,"name":"map","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"l1","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"h1","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"l2","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"h2","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":[{"kind":"JSDocText","id":0,"text":"Map a value from one range to another range.\n\nIf the value overshoots, the source range, the result values will also do.\n\nFor clamping check "},{"kind":"JSDocLink","id":0,"name":"mapc","text":""}],"tags":{"param":["The value the function will depend on.","The minimum value of the source range.","The minimum result value.","The maximum value of the source range.","The maximum result value."],"example":["```js\nonUpdate(() => {\n // Redness will be 0 when the mouse is at the left edge and 255 when the mouse is at the right edge\n const redness = map(mousePos().x, 0, width(), 0, 255)\n setBackground(rgb(redness, 0, 0))\n})\n```"],"returns":["The result value based on the source value."],"since":["v2000.0"],"group":["Math"]}}}],"mapc":[{"kind":"MethodSignature","id":0,"name":"mapc","parameters":[{"kind":"Parameter","id":0,"name":"v","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"l1","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"h1","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"l2","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"h2","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Map a value from one range to another range, and clamp to the dest range.","tags":{"param":["The value the function will depend on.","The minimum value of the source range.","The minimum result value.","The maximum value of the source range.","The maximum result value."],"example":["```js\nonUpdate(() => {\n // This variable will be 0 when the mouse is at the left edge and 255 when the mouse is at the right edge\n const redness = mapc(mousePos().x, 0, width(), 0, 255)\n setBackground(rgb(redness, 0, 0))\n})\n```"],"returns":["The clamped result value based on the source value."],"since":["v2000.0"],"group":["Math"]}}}],"wave":[{"kind":"MethodSignature","id":0,"name":"wave","parameters":[{"kind":"Parameter","id":0,"name":"lo","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"hi","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"func","questionToken":true,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0}}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Interpolate between 2 values (Optionally takes a custom periodic function, which default to Math.sin).","tags":{"example":["```js\n// bounce color between 2 values as time goes on\nonUpdate(\"colorful\", (c) => {\n c.color.r = wave(0, 255, time())\n c.color.g = wave(0, 255, time() + 1)\n c.color.b = wave(0, 255, time() + 2)\n})\n```"],"group":["Math"]}}}],"deg2rad":[{"kind":"MethodSignature","id":0,"name":"deg2rad","parameters":[{"kind":"Parameter","id":0,"name":"deg","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Convert degrees to radians.","tags":{"group":["Math"]}}}],"rad2deg":[{"kind":"MethodSignature","id":0,"name":"rad2deg","parameters":[{"kind":"Parameter","id":0,"name":"rad","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Convert radians to degrees.","tags":{"group":["Math"]}}}],"clamp":[{"kind":"MethodSignature","id":0,"name":"clamp","parameters":[{"kind":"Parameter","id":0,"name":"n","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"min","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"max","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Return a value clamped to an inclusive range of min and max.","tags":{"group":["Math"]}}}],"evaluateQuadratic":[{"kind":"MethodSignature","id":0,"name":"evaluateQuadratic","parameters":[{"kind":"Parameter","id":0,"name":"pt1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt3","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Evaluate the quadratic Bezier at the given t","tags":{"group":["Math"]}}}],"evaluateQuadraticFirstDerivative":[{"kind":"MethodSignature","id":0,"name":"evaluateQuadraticFirstDerivative","parameters":[{"kind":"Parameter","id":0,"name":"pt1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt3","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Evaluate the first derivative of a quadratic bezier at the given t","tags":{"since":["v3001.0"],"group":["Math"]}}}],"evaluateQuadraticSecondDerivative":[{"kind":"MethodSignature","id":0,"name":"evaluateQuadraticSecondDerivative","parameters":[{"kind":"Parameter","id":0,"name":"pt1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt3","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Evaluate the second derivative of a quadratic bezier at the given t","tags":{"since":["v3001.0"],"group":["Math"]}}}],"evaluateBezier":[{"kind":"MethodSignature","id":0,"name":"evaluateBezier","parameters":[{"kind":"Parameter","id":0,"name":"pt1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt3","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt4","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Evaluate the cubic Bezier at the given t","tags":{"since":["v3001.0"],"group":["Math"]}}}],"evaluateBezierFirstDerivative":[{"kind":"MethodSignature","id":0,"name":"evaluateBezierFirstDerivative","parameters":[{"kind":"Parameter","id":0,"name":"pt1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt3","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt4","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Evaluate the first derivative of a cubic Bezier at the given t","tags":{"group":["Math"]}}}],"evaluateBezierSecondDerivative":[{"kind":"MethodSignature","id":0,"name":"evaluateBezierSecondDerivative","parameters":[{"kind":"Parameter","id":0,"name":"pt1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt3","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt4","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Evaluate the second derivative of a cubic bezier at the given t","tags":{"since":["v3001.0"],"group":["Math"]}}}],"evaluateCatmullRom":[{"kind":"MethodSignature","id":0,"name":"evaluateCatmullRom","parameters":[{"kind":"Parameter","id":0,"name":"pt1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt3","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt4","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Evaluate the Catmull-Rom spline at the given t","tags":{"since":["v3001.0"],"group":["Math"]}}}],"evaluateCatmullRomFirstDerivative":[{"kind":"MethodSignature","id":0,"name":"evaluateCatmullRomFirstDerivative","parameters":[{"kind":"Parameter","id":0,"name":"pt1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt3","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt4","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Evaluate the first derivative of a Catmull-Rom spline at the given t","tags":{"since":["v3001.0"],"group":["Math"]}}}],"curveLengthApproximation":[{"kind":"MethodSignature","id":0,"name":"curveLengthApproximation","parameters":[{"kind":"Parameter","id":0,"name":"curve","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}},{"kind":"Parameter","id":0,"name":"entries","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"detail","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"inverse","type":{"kind":"BooleanKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0}},"jsDoc":{"doc":"Returns a function.\nentries is the amount of entries in the LUT.\ndetail is the sampling granularity of each segment recorded in the LUT.\nThis new function either returns the length for a given t, or t for a given length, depending on the inverse parameter.","tags":{"since":["v3001.0"],"group":["Math"]}}}],"normalizedCurve":[{"kind":"MethodSignature","id":0,"name":"normalizedCurve","parameters":[{"kind":"Parameter","id":0,"name":"curve","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}}],"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"s","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},"jsDoc":{"doc":"Returns a new curve which is normalized. This new curve has constant speed\ncurve is any curve in t (non-constant between 0 and 1)\nreturns a curve in s (constant between 0 and 1)","tags":{"since":["v3001.0"],"group":["Math"]}}}],"hermite":[{"kind":"MethodSignature","id":0,"name":"hermite","parameters":[{"kind":"Parameter","id":0,"name":"pt1","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"m1","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"m2","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"pt2","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0}},"jsDoc":{"doc":"A second order function returning an evaluator for the given 1D Hermite curve","tags":{"param":["- First point","- First control point (tangent)","- Second control point (tangent)","- Second point"],"returns":["A function which gives the value on the 1D Hermite curve at t"]}}}],"cardinal":[{"kind":"MethodSignature","id":0,"name":"cardinal","parameters":[{"kind":"Parameter","id":0,"name":"pt1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"m1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"m2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"tension","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},"jsDoc":{"doc":"A second order function returning an evaluator for the given 2D Cardinal curve","tags":{"param":["- Previous point","- First point","- Second point","- Next point","The tension of the curve, [0..1] from round to tight."],"returns":["A function which gives the value on the 2D Cardinal curve at t"]}}}],"catmullRom":[{"kind":"MethodSignature","id":0,"name":"catmullRom","parameters":[{"kind":"Parameter","id":0,"name":"pt1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"m1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"m2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},"jsDoc":{"doc":"A second order function returning an evaluator for the given 2D Catmull-Rom curve","tags":{"param":["- Previous point","- First point","- Second point","- Next point"],"returns":["A function which gives the value on the 2D Catmull-Rom curve at t"]}}}],"bezier":[{"kind":"MethodSignature","id":0,"name":"bezier","parameters":[{"kind":"Parameter","id":0,"name":"pt1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt3","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt4","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},"jsDoc":{"doc":"A second order function returning an evaluator for the given 2D quadratic Bezier curve","tags":{"param":["- First point","- First control point","- Second control point","- Second point"],"returns":["A function which gives the value on the 2D quadratic Bezier curve at t"]}}}],"kochanekBartels":[{"kind":"MethodSignature","id":0,"name":"kochanekBartels","parameters":[{"kind":"Parameter","id":0,"name":"pt1","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt2","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt3","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"pt4","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"tension","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"continuity","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"bias","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},"jsDoc":{"doc":"A second order function returning an evaluator for the given 2D Kochanek–Bartels curve","tags":{"param":["- Previous point","- First point","- Second point","- Next point","- The tension of the curve, [-1..1] from round to tight.","- The continuity of the curve, [-1..1] from box corners to inverted corners.","- The bias of the curve, [-1..1] from pre-shoot to post-shoot."],"returns":["A function which gives the value on the 2D Kochanek–Bartels curve at t"]}}}],"testLinePoint":[{"kind":"MethodSignature","id":0,"name":"testLinePoint","parameters":[{"kind":"Parameter","id":0,"name":"l","type":{"kind":"TypeReference","id":0,"typeName":"Line"}},{"kind":"Parameter","id":0,"name":"pt","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Check if a line and a point intersect.","tags":{"param":["- The line.","- The point."],"returns":["true if the line and point intersects."],"since":["v2000.0"],"group":["Math"]}}}],"testLineLine":[{"kind":"MethodSignature","id":0,"name":"testLineLine","parameters":[{"kind":"Parameter","id":0,"name":"l1","type":{"kind":"TypeReference","id":0,"typeName":"Line"}},{"kind":"Parameter","id":0,"name":"l2","type":{"kind":"TypeReference","id":0,"typeName":"Line"}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Check if 2 lines intersects, if yes returns the intersection point.","tags":{"param":["- The first line.","- The second line."],"return":["The intersection point, or null if the lines are parallel."],"since":["v2000.0"],"group":["Math"]}}}],"testLineCircle":[{"kind":"MethodSignature","id":0,"name":"testLineCircle","parameters":[{"kind":"Parameter","id":0,"name":"l","type":{"kind":"TypeReference","id":0,"typeName":"Line"}},{"kind":"Parameter","id":0,"name":"c","type":{"kind":"TypeReference","id":0,"typeName":"Circle"}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Check if a line and a circle intersect.","tags":{"param":["- The line.","- The circle."],"returns":["true if the line and circle intersects."],"since":["v2000.0"],"group":["Math"]}}}],"testRectRect":[{"kind":"MethodSignature","id":0,"name":"testRectRect","parameters":[{"kind":"Parameter","id":0,"name":"r1","type":{"kind":"TypeReference","id":0,"typeName":"Rect"}},{"kind":"Parameter","id":0,"name":"r2","type":{"kind":"TypeReference","id":0,"typeName":"Rect"}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Check if 2 rectangle overlaps.","tags":{"param":["- The first rectangle.","- The second rectangle."],"returns":["true if the rectangles overlap."],"since":["v2000.0"],"group":["Math"]}}}],"testRectLine":[{"kind":"MethodSignature","id":0,"name":"testRectLine","parameters":[{"kind":"Parameter","id":0,"name":"r","type":{"kind":"TypeReference","id":0,"typeName":"Rect"}},{"kind":"Parameter","id":0,"name":"l","type":{"kind":"TypeReference","id":0,"typeName":"Line"}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Check if a line and a rectangle overlaps.","tags":{"param":["- The line.","- The rectangle."],"returns":["true if the line and rectangle overlaps."],"since":["v2000.0"],"group":["Math"]}}}],"testRectPoint":[{"kind":"MethodSignature","id":0,"name":"testRectPoint","parameters":[{"kind":"Parameter","id":0,"name":"r","type":{"kind":"TypeReference","id":0,"typeName":"Rect"}},{"kind":"Parameter","id":0,"name":"pt","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Check if a point is inside a rectangle.","tags":{"param":["- The rectangle.","- The point."],"returns":["true if the point is inside the rectangle."],"since":["v2000.0"],"group":["Math"]}}}],"testCirclePolygon":[{"kind":"MethodSignature","id":0,"name":"testCirclePolygon","parameters":[{"kind":"Parameter","id":0,"name":"c","type":{"kind":"TypeReference","id":0,"typeName":"Circle"}},{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Polygon"}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Check if a circle and polygon intersect linewise.","tags":{"param":["- The circle.","- The polygon."],"returns":["true if the circle and polygon intersect linewise."],"since":["v2000.0"],"group":["Math"]}}}],"clipLineToRect":[{"kind":"MethodSignature","id":0,"name":"clipLineToRect","parameters":[{"kind":"Parameter","id":0,"name":"r","type":{"kind":"TypeReference","id":0,"typeName":"Rect"}},{"kind":"Parameter","id":0,"name":"l","type":{"kind":"TypeReference","id":0,"typeName":"Line"}},{"kind":"Parameter","id":0,"name":"result","type":{"kind":"TypeReference","id":0,"typeName":"Line"}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"tags":{"since":["v4000.0"],"group":["Math"]}}}],"clipLineToCircle":[{"kind":"MethodSignature","id":0,"name":"clipLineToCircle","parameters":[{"kind":"Parameter","id":0,"name":"c","type":{"kind":"TypeReference","id":0,"typeName":"Circle"}},{"kind":"Parameter","id":0,"name":"l","type":{"kind":"TypeReference","id":0,"typeName":"Line"}},{"kind":"Parameter","id":0,"name":"result","type":{"kind":"TypeReference","id":0,"typeName":"Line"}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"tags":{"since":["v4000.0"],"group":["Math"]}}}],"gjkShapeIntersects":[{"kind":"MethodSignature","id":0,"name":"gjkShapeIntersects","parameters":[{"kind":"Parameter","id":0,"name":"shapeA","type":{"kind":"TypeReference","id":0,"typeName":"Shape"}},{"kind":"Parameter","id":0,"name":"shapeB","type":{"kind":"TypeReference","id":0,"typeName":"Shape"}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"tags":{"since":["v4000.0"],"group":["Math"]}}}],"gjkShapeIntersection":[{"kind":"MethodSignature","id":0,"name":"gjkShapeIntersection","parameters":[{"kind":"Parameter","id":0,"name":"shapeA","type":{"kind":"TypeReference","id":0,"typeName":"Shape"}},{"kind":"Parameter","id":0,"name":"shapeB","type":{"kind":"TypeReference","id":0,"typeName":"Shape"}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"GjkCollisionResult"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"tags":{"since":["v4000.0"],"group":["Math"]}}}],"isConvex":[{"kind":"MethodSignature","id":0,"name":"isConvex","parameters":[{"kind":"Parameter","id":0,"name":"pts","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"tags":{"since":["v3001.0"],"group":["Math"]}}}],"triangulate":[{"kind":"MethodSignature","id":0,"name":"triangulate","parameters":[{"kind":"Parameter","id":0,"name":"pts","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}}],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}},"jsDoc":{"tags":{"since":["v3001.0"],"group":["Math"]}}}],"NavMesh":[{"kind":"PropertySignature","id":0,"name":"NavMesh","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"NavMesh"}},"jsDoc":{"doc":"A Navigation Mesh.","tags":{"since":["v3001.0"],"group":["Math"]}}}],"Point":[{"kind":"PropertySignature","id":0,"name":"Point","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"Point"}},"jsDoc":{"doc":"A point.","tags":{"since":["v3001.0"],"group":["Math"]}}}],"Line":[{"kind":"PropertySignature","id":0,"name":"Line","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"Line"}},"jsDoc":{"doc":"A line shape.","tags":{"since":["v2000.0"],"group":["Math"]}}}],"Rect":[{"kind":"PropertySignature","id":0,"name":"Rect","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"Rect"}},"jsDoc":{"doc":"A rectangle shape.","tags":{"since":["v2000.0"],"group":["Math"]}}}],"Circle":[{"kind":"PropertySignature","id":0,"name":"Circle","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"Circle"}},"jsDoc":{"doc":"A circle shape.","tags":{"since":["v2000.0"],"group":["Math"]}}}],"Ellipse":[{"kind":"PropertySignature","id":0,"name":"Ellipse","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"Ellipse"}},"jsDoc":{"doc":"A ellipse shape.","tags":{"since":["v3001.0"],"group":["Math"]}}}],"Polygon":[{"kind":"PropertySignature","id":0,"name":"Polygon","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"Polygon"}},"jsDoc":{"doc":"A polygon shape.","tags":{"since":["v2000.0"],"group":["Math"]}}}],"Vec2":[{"kind":"PropertySignature","id":0,"name":"Vec2","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"Vec2"}},"jsDoc":{"doc":"A 2D vector.","tags":{"since":["v2000.0"],"group":["Math"]}}}],"Color":[{"kind":"PropertySignature","id":0,"name":"Color","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"Color"}},"jsDoc":{"doc":"A color.","tags":{"since":["v2000.0"],"group":["Math"]}}}],"Mat4":[{"kind":"PropertySignature","id":0,"name":"Mat4","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"Mat4"}},"jsDoc":{"tags":{"since":["v3001.0"],"group":["Math"]}}}],"Mat23":[{"kind":"PropertySignature","id":0,"name":"Mat23","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"Mat23"}},"jsDoc":{"tags":{"since":["v4000.0"],"group":["Math"]}}}],"Quad":[{"kind":"PropertySignature","id":0,"name":"Quad","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"Quad"}},"jsDoc":{"doc":"A 2D quad.","tags":{"since":["v3001.0"],"group":["Math"]}}}],"RNG":[{"kind":"PropertySignature","id":0,"name":"RNG","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"RNG"}},"jsDoc":{"doc":"The Random Number Generator.","tags":{"since":["v2000.0"],"group":["Math"]}}}],"scene":[{"kind":"MethodSignature","id":0,"name":"scene","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"TypeReference","id":0,"typeName":"SceneName"}},{"kind":"Parameter","id":0,"name":"def","type":{"kind":"TypeReference","id":0,"typeName":"SceneDef"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Define a scene.","tags":{"param":["- The scene name.","- The scene definition."],"example":["```js\n// define a scene\nscene(\"game\", () => {\n// ...\n});\n\n// get options\nscene(\"game\", (opts) => {\n debug.log(opts.level);\n});"],"group":["Scene"]}}}],"go":[{"kind":"MethodSignature","id":0,"name":"go","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"TypeReference","id":0,"typeName":"SceneName"}},{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"AnyKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Go to a scene, passing all rest args to scene callback.","tags":{"param":["- The scene name.","- The rest args to pass to the scene callback."],"example":["```js\n// go to \"game\" scene\ngo(\"game\");\n\n// go with options\ngo(\"game\", { level: 1 });\n```"],"since":["v2000.0"],"group":["Scene"]}}}],"setLayers":[{"kind":"MethodSignature","id":0,"name":"setLayers","parameters":[{"kind":"Parameter","id":0,"name":"layers","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"defaultLayer","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Define the layer names. Should be called before any objects are made.","tags":{"param":["- The layer names.","- The default layer name."],"example":["```js\nlayers([\"bg\", \"obj\", \"ui\"], \"obj\")\n\n// no layer specified, will be added to \"obj\"\nadd([\n sprite(\"bean\"),\n]);\n\n// add to \"bg\" layer\nadd([\n sprite(\"bg\"),\n layer(\"bg\"),\n]);\n```"],"since":["v3001.1"],"group":["Layers"]}}}],"getLayers":[{"kind":"MethodSignature","id":0,"name":"getLayers","parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Get the layer names.","tags":{"returns":["The layer names or null if not set."],"since":["v3001.1"],"group":["Layers"],"experimental":["This feature is in experimental phase, it will be fully released in v3001.1"]}}}],"getDefaultLayer":[{"kind":"MethodSignature","id":0,"name":"getDefaultLayer","parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Get the default layer name.","tags":{"returns":["The default layer name or null if not set."],"since":["v3001.0.5"],"group":["Layers"],"experimental":["This feature is in experimental phase, it will be fully released in v3001.1"]}}}],"layers":[{"kind":"MethodSignature","id":0,"name":"layers","parameters":[{"kind":"Parameter","id":0,"name":"layers","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"defaultLayer","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"tags":{"deprecated":[[{"kind":"JSDocText","id":0,"text":"Use "},{"kind":"JSDocLink","id":0,"name":"setLayers","text":""},{"kind":"JSDocText","id":0,"text":" instead.\n\nDefine the layer names. Should be called before any objects are made."}]],"param":["- The layer names.","- The default layer name."],"example":["```js\nsetLayers([\"bg\", \"obj\", \"ui\"], \"obj\")\n\n// no layer specified, will be added to \"obj\"\nadd([\n sprite(\"bean\"),\n]);\n\n// add to \"bg\" layer\nadd([\n sprite(\"bg\"),\n layer(\"bg\"),\n]);\n```"],"since":["v3001.0"],"group":["Scene"]}}}],"addLevel":[{"kind":"MethodSignature","id":0,"name":"addLevel","parameters":[{"kind":"Parameter","id":0,"name":"map","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"LevelOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"GameObj"},"jsDoc":{"doc":"Construct a level based on symbols.","tags":{"param":["- The map data.","- The level options."],"example":["```js\naddLevel([\n \" $\",\n \" $\",\n \" $$ = $\",\n \" % ==== = $\",\n \" = \",\n \" ^^ = > = &\",\n \"===========================\",\n], {\n // define the size of tile block\n tileWidth: 32,\n tileHeight: 32,\n // define what each symbol means, by a function returning a component list (what will be passed to add())\n tiles: {\n \"=\": () => [\n sprite(\"floor\"),\n area(),\n body({ isStatic: true }),\n ],\n \"$\": () => [\n sprite(\"coin\"),\n area(),\n pos(0, -9),\n ],\n \"^\": () => [\n sprite(\"spike\"),\n area(),\n \"danger\",\n ],\n }\n})\n```"],"returns":["A game obj with the level."],"since":["v2000.0"],"group":["Level"]}}}],"getData":[{"kind":"MethodSignature","id":0,"name":"getData","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"def","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"T"}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"T"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Get data from local storage, if not present can set to a default value.","tags":{"param":["- The key to get data from.","- The default value to set if not found."],"returns":["The data or null if not found."],"since":["v2000.0"],"group":["Data"]}}}],"setData":[{"kind":"MethodSignature","id":0,"name":"setData","parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"data","type":{"kind":"AnyKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Set data from local storage.","tags":{"param":["- The key to set data to.","- The data to set."],"since":["v2000.0"],"group":["Data"]}}}],"drawSprite":[{"kind":"MethodSignature","id":0,"name":"drawSprite","parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"DrawSpriteOpt"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Draw a sprite.","tags":{"param":["- The draw sprite options."],"example":["```js\ndrawSprite({\n sprite: \"bean\",\n pos: vec2(100, 200),\n frame: 3,\n});\n```"],"since":["v2000.0"],"group":["Draw"]}}}],"drawText":[{"kind":"MethodSignature","id":0,"name":"drawText","parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"DrawTextOpt"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Draw a piece of text.","tags":{"param":["- The draw text options."],"example":["```js\ndrawText({\n text: \"oh hi\",\n size: 48,\n font: \"sans-serif\",\n width: 120,\n pos: vec2(100, 200),\n color: rgb(0, 0, 255),\n});\n```"],"since":["v2000.0"],"group":["Draw"]}}}],"drawRect":[{"kind":"MethodSignature","id":0,"name":"drawRect","parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"DrawRectOpt"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Draw a rectangle.","tags":{"param":["- The draw rect options."],"example":["```js\ndrawRect({\n width: 120,\n height: 240,\n pos: vec2(20, 20),\n color: YELLOW,\n outline: { color: BLACK, width: 4 },\n});\n```"],"since":["v2000.0"],"group":["Draw"]}}}],"drawLine":[{"kind":"MethodSignature","id":0,"name":"drawLine","parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"DrawLineOpt"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Draw a line.","tags":{"param":["- The draw line options."],"example":["```js\ndrawLine({\n p1: vec2(0),\n p2: mousePos(),\n width: 4,\n color: rgb(0, 0, 255),\n});\n```"],"since":["v3000.0"],"group":["Draw"]}}}],"drawLines":[{"kind":"MethodSignature","id":0,"name":"drawLines","parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"DrawLinesOpt"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Draw lines.","tags":{"param":["- The draw lines options."],"example":["```js\ndrawLines({\n pts: [ vec2(0), vec2(0, height()), mousePos() ],\n width: 4,\n pos: vec2(100, 200),\n color: rgb(0, 0, 255),\n});\n```"],"since":["v3000.0"],"group":["Draw"]}}}],"drawCurve":[{"kind":"MethodSignature","id":0,"name":"drawCurve","parameters":[{"kind":"Parameter","id":0,"name":"curve","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}},{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"DrawCurveOpt"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Draw a curve.","tags":{"example":["```js\ndrawCurve(t => evaluateBezier(a, b, c, d, t)\n{\n width: 2,\n color: rgb(0, 0, 255),\n});\n```"],"since":["v3001.0"],"group":["Draw"]}}}],"drawBezier":[{"kind":"MethodSignature","id":0,"name":"drawBezier","parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"DrawBezierOpt"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Draw a cubic Bezier curve.","tags":{"param":["- The draw cubic bezier options."],"example":["```js\ndrawBezier({\n pt1: vec2(100, 100),\n pt2: vec2(200, 100),\n pt3: vec2(200, 200),\n pt4: vec2(100, 200),\n width: 2,\n color: GREEN\n});\n```"],"since":["v3001.0"],"group":["Draw"]}}}],"drawTriangle":[{"kind":"MethodSignature","id":0,"name":"drawTriangle","parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"DrawTriangleOpt"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Draw a triangle.","tags":{"param":["- The draw triangle options."],"example":["```js\ndrawTriangle({\n p1: vec2(0),\n p2: vec2(0, height()),\n p3: mousePos(),\n pos: vec2(100, 200),\n color: rgb(0, 0, 255),\n});\n```"],"since":["v3001.0"],"group":["Draw"]}}}],"drawCircle":[{"kind":"MethodSignature","id":0,"name":"drawCircle","parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"DrawCircleOpt"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Draw a circle.","tags":{"param":["- The draw circle options."],"example":["```js\ndrawCircle({\n pos: vec2(100, 200),\n radius: 120,\n color: rgb(255, 255, 0),\n});\n```"],"since":["v2000.0"],"group":["Draw"]}}}],"drawEllipse":[{"kind":"MethodSignature","id":0,"name":"drawEllipse","parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"DrawEllipseOpt"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Draw an ellipse.","tags":{"param":["- The draw ellipse options."],"example":["```js\ndrawEllipse({\n pos: vec2(100, 200),\n radiusX: 120,\n radiusY: 120,\n color: rgb(255, 255, 0),\n});\n```"],"since":["v3000.0"],"group":["Draw"]}}}],"drawPolygon":[{"kind":"MethodSignature","id":0,"name":"drawPolygon","parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"DrawPolygonOpt"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Draw a convex polygon from a list of vertices.","tags":{"param":["- The draw polygon options."],"example":["```js\ndrawPolygon({\n pts: [\n vec2(-12),\n vec2(0, 16),\n vec2(12, 4),\n vec2(0, -2),\n vec2(-8),\n ],\n pos: vec2(100, 200),\n color: rgb(0, 0, 255),\n});\n```"],"since":["v3000.0"],"group":["Draw"]}}}],"drawUVQuad":[{"kind":"MethodSignature","id":0,"name":"drawUVQuad","parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"DrawUVQuadOpt"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Draw a rectangle with UV data.","tags":{"param":["- The draw rect with UV options."],"since":["v2000.0"],"group":["Draw"]}}}],"drawFormattedText":[{"kind":"MethodSignature","id":0,"name":"drawFormattedText","parameters":[{"kind":"Parameter","id":0,"name":"text","type":{"kind":"TypeReference","id":0,"typeName":"FormattedText"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Draw a piece of formatted text from formatText().","tags":{"param":["- The formatted text object."],"example":["```js\n// text background\nconst txt = formatText({\n text: \"oh hi\",\n});\n\ndrawRect({\n width: txt.width,\n height: txt.height,\n});\n\ndrawFormattedText(txt);\n```"],"since":["v2000.2"],"group":["Draw"]}}}],"drawMasked":[{"kind":"MethodSignature","id":0,"name":"drawMasked","parameters":[{"kind":"Parameter","id":0,"name":"content","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"mask","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Whatever drawn in content will only be drawn if it's also drawn in mask (mask will not be rendered).","tags":{"since":["v3000.0"],"group":["Draw"]}}}],"drawSubtracted":[{"kind":"MethodSignature","id":0,"name":"drawSubtracted","parameters":[{"kind":"Parameter","id":0,"name":"content","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"mask","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Subtract whatever drawn in content by whatever drawn in mask (mask will not be rendered).","tags":{"since":["v3000.0"],"group":["Draw"]}}}],"pushTransform":[{"kind":"MethodSignature","id":0,"name":"pushTransform","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Push current transform matrix to the transform stack.","tags":{"example":["```js\npushTransform();\n\n// These transforms will affect every render until popTransform()\npushTranslate(120, 200);\npushRotate(time() * 120);\npushScale(6);\n\ndrawSprite(\"bean\");\ndrawCircle(vec2(0), 120);\n\n// Restore the transformation stack to when last pushed\npopTransform();\n```"],"since":["v2000.0"],"group":["Draw"]}}}],"popTransform":[{"kind":"MethodSignature","id":0,"name":"popTransform","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Pop the topmost transform matrix from the transform stack.","tags":{"since":["v2000.0"],"group":["Draw"]}}}],"pushTranslate":[{"kind":"MethodSignature","id":0,"name":"pushTranslate","parameters":[{"kind":"Parameter","id":0,"name":"t","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Translate all subsequent draws.","tags":{"example":["```js\npushTranslate(100, 100)\n\n// this will be drawn at (120, 120)\ndrawText({\n text: \"oh hi\",\n pos: vec2(20, 20),\n})\n```"],"since":["v2000.0"],"group":["Draw"]}}}],"pushScale":[{"kind":"MethodSignature","id":0,"name":"pushScale","parameters":[{"kind":"Parameter","id":0,"name":"s","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Scale all subsequent draws.","tags":{"since":["v2000.0"],"group":["Draw"]}}}],"pushRotate":[{"kind":"MethodSignature","id":0,"name":"pushRotate","parameters":[{"kind":"Parameter","id":0,"name":"angle","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Rotate all subsequent draws.","tags":{"since":["v2000.0"],"group":["Draw"]}}}],"pushMatrix":[{"kind":"MethodSignature","id":0,"name":"pushMatrix","parameters":[{"kind":"Parameter","id":0,"name":"mat","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Apply a transform matrix, ignore all prior transforms.","tags":{"since":["v3000.0"],"group":["Draw"]}}}],"usePostEffect":[{"kind":"MethodSignature","id":0,"name":"usePostEffect","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"uniform","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Uniform"},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Uniform"}}}]}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Apply a post process effect from a shader name.","tags":{"example":["```js\nloadShader(\"invert\", null, `\nvec4 frag(vec2 pos, vec2 uv, vec4 color, sampler2D tex) {\n vec4 c = def_frag();\n return vec4(1.0 - c.r, 1.0 - c.g, 1.0 - c.b, c.a);\n}\n`)\n\nusePostEffect(\"invert\")\n```"],"since":["v3000.0"],"group":["Draw"]}}}],"formatText":[{"kind":"MethodSignature","id":0,"name":"formatText","parameters":[{"kind":"Parameter","id":0,"name":"options","type":{"kind":"TypeReference","id":0,"typeName":"DrawTextOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"FormattedText"},"jsDoc":{"doc":"Format a piece of text without drawing (for getting dimensions, etc).","tags":{"example":["```js\n// text background\nconst txt = formatText({\n text: \"oh hi\",\n});\n\ndrawRect({\n width: txt.width,\n height: txt.height,\n});\n\ndrawFormattedText(txt);\n```"],"returns":["The formatted text object."],"since":["v2000.2"],"group":["Draw"]}}}],"makeCanvas":[{"kind":"MethodSignature","id":0,"name":"makeCanvas","parameters":[{"kind":"Parameter","id":0,"name":"w","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"h","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Canvas"},"jsDoc":{"doc":"Create a canvas to draw stuff offscreen.","tags":{"returns":["The canvas object."],"since":["v3001.0"],"group":["Draw"]}}}],"debug":[{"kind":"PropertySignature","id":0,"name":"debug","type":{"kind":"TypeReference","id":0,"typeName":"Debug"},"jsDoc":{"doc":"The Debug interface for debugging stuff.","tags":{"example":["```js\n// pause the whole game\ndebug.paused = true\n\n// enter inspect mode\ndebug.inspect = true\n```"],"returns":["The debug interface."],"since":["v2000.0"],"group":["Debug"]}}}],"plug":[{"kind":"MethodSignature","id":0,"name":"plug","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T","constraint":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"AnyKeyword","id":0}]}}],"parameters":[{"kind":"Parameter","id":0,"name":"plugin","type":{"kind":"TypeReference","id":0,"typeName":"KAPLAYPlugin","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]}}],"type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},{"kind":"TypeReference","id":0,"typeName":"T"}]},"jsDoc":{"doc":"Import a plugin.","tags":{"param":["- The plugin to import."],"returns":["The updated context with the plugin."],"since":["v2000.0"],"group":["Plugins"]}}}],"system":[{"kind":"MethodSignature","id":0,"name":"system","parameters":[{"kind":"Parameter","id":0,"name":"name","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"cb","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"when","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"LCEvents"}}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Runs a system at the specified events in the pipeline","tags":{"param":["The name of the system. Overwrites an existing system if the name has been used before.","The function to run.","When to run the function."],"since":["v4000.0"],"group":["Plugins"]}}}],"screenshot":[{"kind":"MethodSignature","id":0,"name":"screenshot","parameters":[],"type":{"kind":"StringKeyword","id":0},"jsDoc":{"doc":"Take a screenshot and get the data url of the image.","tags":{"returns":["The dataURL of the image."],"since":["v2000.0"],"group":["Data"]}}}],"download":[{"kind":"MethodSignature","id":0,"name":"download","parameters":[{"kind":"Parameter","id":0,"name":"filename","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"dataurl","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Trigger a file download from a url.","tags":{"since":["v3000.0"],"group":["Data"]}}}],"downloadText":[{"kind":"MethodSignature","id":0,"name":"downloadText","parameters":[{"kind":"Parameter","id":0,"name":"filename","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"text","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Trigger a text file download.","tags":{"since":["v3000.0"],"group":["Data"]}}}],"downloadJSON":[{"kind":"MethodSignature","id":0,"name":"downloadJSON","parameters":[{"kind":"Parameter","id":0,"name":"filename","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"data","type":{"kind":"AnyKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Trigger a json download from a .","tags":{"since":["v3000.0"],"group":["Data"]}}}],"downloadBlob":[{"kind":"MethodSignature","id":0,"name":"downloadBlob","parameters":[{"kind":"Parameter","id":0,"name":"filename","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"blob","type":{"kind":"TypeReference","id":0,"typeName":"Blob"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Trigger a file download from a blob.","tags":{"since":["v3000.0"],"group":["Data"]}}}],"record":[{"kind":"MethodSignature","id":0,"name":"record","parameters":[{"kind":"Parameter","id":0,"name":"frameRate","questionToken":true,"type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Recording"},"jsDoc":{"doc":"Start recording the canvas into a video. If framerate is not specified, a new frame will be captured each time the canvas changes.","tags":{"returns":["A control handle."],"since":["v2000.1"],"group":["Data"]}}}],"addKaboom":[{"kind":"MethodSignature","id":0,"name":"addKaboom","parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"opt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"BoomOpt"}}],"type":{"kind":"TypeReference","id":0,"typeName":"GameObj"},"jsDoc":{"doc":"Add an explosion effect.","tags":{"param":["- The position of the explosion.","- The options for the explosion."],"example":["```js\nonMousePress(() => {\n addKaboom(mousePos());\n});"],"returns":["The explosion object."],"since":["v2000.0"],"group":["Misc"]}}}],"ASCII_CHARS":[{"kind":"PropertySignature","id":0,"name":"ASCII_CHARS","type":{"kind":"StringKeyword","id":0},"jsDoc":{"doc":"All chars in ASCII.","tags":{"since":["v2000.0"],"group":["Constants"]}}}],"LEFT":[{"kind":"PropertySignature","id":0,"name":"LEFT","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Left directional vector vec2(-1, 0).","tags":{"since":["v2000.0"],"group":["Constants"]}}}],"RIGHT":[{"kind":"PropertySignature","id":0,"name":"RIGHT","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Right directional vector vec2(1, 0).","tags":{"since":["v2000.0"],"group":["Constants"]}}}],"UP":[{"kind":"PropertySignature","id":0,"name":"UP","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Up directional vector vec2(0, -1).","tags":{"since":["v2000.0"],"group":["Constants"]}}}],"DOWN":[{"kind":"PropertySignature","id":0,"name":"DOWN","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Down directional vector vec2(0, 1).","tags":{"since":["v2000.0"],"group":["Constants"]}}}],"RED":[{"kind":"PropertySignature","id":0,"name":"RED","type":{"kind":"TypeReference","id":0,"typeName":"Color"},"jsDoc":{"doc":"Red color.","tags":{"since":["v2000.0"],"group":["Constants"]}}}],"GREEN":[{"kind":"PropertySignature","id":0,"name":"GREEN","type":{"kind":"TypeReference","id":0,"typeName":"Color"},"jsDoc":{"doc":"Green color.","tags":{"since":["v2000.0"],"group":["Constants"]}}}],"BLUE":[{"kind":"PropertySignature","id":0,"name":"BLUE","type":{"kind":"TypeReference","id":0,"typeName":"Color"},"jsDoc":{"doc":"Blue color.","tags":{"since":["v2000.0"],"group":["Constants"]}}}],"YELLOW":[{"kind":"PropertySignature","id":0,"name":"YELLOW","type":{"kind":"TypeReference","id":0,"typeName":"Color"},"jsDoc":{"doc":"Yellow color.","tags":{"since":["v2000.0"],"group":["Constants"]}}}],"MAGENTA":[{"kind":"PropertySignature","id":0,"name":"MAGENTA","type":{"kind":"TypeReference","id":0,"typeName":"Color"},"jsDoc":{"doc":"Cyan color.","tags":{"since":["v2000.0"],"group":["Constants"]}}}],"CYAN":[{"kind":"PropertySignature","id":0,"name":"CYAN","type":{"kind":"TypeReference","id":0,"typeName":"Color"},"jsDoc":{"doc":"Cyan color.","tags":{"since":["v2000.0"],"group":["Constants"]}}}],"WHITE":[{"kind":"PropertySignature","id":0,"name":"WHITE","type":{"kind":"TypeReference","id":0,"typeName":"Color"},"jsDoc":{"doc":"White color.","tags":{"since":["v2000.0"],"group":["Constants"]}}}],"BLACK":[{"kind":"PropertySignature","id":0,"name":"BLACK","type":{"kind":"TypeReference","id":0,"typeName":"Color"},"jsDoc":{"doc":"Black color.","tags":{"since":["v2000.0"],"group":["Constants"]}}}],"canvas":[{"kind":"PropertySignature","id":0,"name":"canvas","type":{"kind":"TypeReference","id":0,"typeName":"HTMLCanvasElement"},"jsDoc":{"doc":"The canvas DOM KAPLAY is currently using.","tags":{"since":["v2000.0"],"group":["Info"]}}}],"quit":[{"kind":"PropertySignature","id":0,"name":"quit","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}},"jsDoc":{"doc":"End everything.","tags":{"since":["v2000.0"],"group":["Start"]}}}],"KEvent":[{"kind":"PropertySignature","id":0,"name":"KEvent","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"KEvent"}},"jsDoc":{"doc":"EventHandler for one single event.","tags":{"since":["v3000.0"],"group":["Events"]}}}],"KEventHandler":[{"kind":"PropertySignature","id":0,"name":"KEventHandler","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"KEventHandler"}},"jsDoc":{"doc":"EventHandler for multiple events.","tags":{"since":["v3000.0"],"group":["Events"]}}}],"KEventController":[{"kind":"PropertySignature","id":0,"name":"KEventController","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"KEventController"}},"jsDoc":{"doc":"The object that can pause or cancel an event.","tags":{"since":["v3000.0"],"group":["Events"]}}}],"cancel":[{"kind":"PropertySignature","id":0,"name":"cancel","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Symbol"}},"jsDoc":{"doc":"Cancels the event by returning the cancel symbol.","tags":{"example":["```js\nonKeyPress((key) => {\n if (key === \"q\") return cancel();\n});\n```"],"returns":["The cancel event symbol."],"since":["v3001.0.5"],"group":["Events"],"experimental":["This feature is in experimental phase, it will be fully released in v3001.1.0"]}}}],"KeepFlags":[{"kind":"PropertySignature","id":0,"name":"KeepFlags","type":{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"KeepFlags"}},"jsDoc":{"doc":"Flags indicating which transform components to keep. When used, the aspect of the transform will not change visually\neven if the parent transform is different. For example a sprite pointing west, will keep pointing west, even if the\nparent transform applies a rotation with an angle different from 0. This is only applied once, during switching parents.","tags":{"since":["v3000.0"],"group":["Game Obj"]}}}],"VERSION":[{"kind":"PropertySignature","id":0,"name":"VERSION","type":{"kind":"StringKeyword","id":0},"jsDoc":{"doc":"Current KAPLAY library version.","tags":{"since":["v3000.0"],"group":["Info"]}}}]},"jsDoc":{"doc":"Context handle that contains every kaboom function.","tags":{"group":["Start"]}}}],"Tag":[{"kind":"TypeAliasDeclaration","id":0,"name":"Tag","type":{"kind":"StringKeyword","id":0}}],"UnionToIntersection":[{"kind":"TypeAliasDeclaration","id":0,"name":"UnionToIntersection","typeParameters":[{"kind":"TypeParameter","id":0,"name":"U"}],"type":{"kind":"ConditionalType","id":0,"checkType":{"kind":"ParenthesizedType","id":0,"type":{"kind":"ConditionalType","id":0,"checkType":{"kind":"TypeReference","id":0,"typeName":"U"},"extendsType":{"kind":"AnyKeyword","id":0},"trueType":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","type":{"kind":"TypeReference","id":0,"typeName":"U"}}],"type":{"kind":"VoidKeyword","id":0}},"falseType":{"kind":"NeverKeyword","id":0}}},"extendsType":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","type":{"kind":"InferType","id":0,"typeParameter":{"kind":"TypeParameter","id":0,"name":"I"}}}],"type":{"kind":"VoidKeyword","id":0}},"trueType":{"kind":"TypeReference","id":0,"typeName":"I"},"falseType":{"kind":"NeverKeyword","id":0}}}],"Defined":[{"kind":"TypeAliasDeclaration","id":0,"name":"Defined","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"type":{"kind":"ConditionalType","id":0,"checkType":{"kind":"TypeReference","id":0,"typeName":"T"},"extendsType":{"kind":"AnyKeyword","id":0},"trueType":{"kind":"TypeReference","id":0,"typeName":"Pick","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"},{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"MappedType","id":0,"typeParameter":{"kind":"TypeParameter","id":0,"name":"K","constraint":{"kind":"TypeOperator","id":0,"operator":143,"type":{"kind":"TypeReference","id":0,"typeName":"T"}}},"questionToken":true,"type":{"kind":"ConditionalType","id":0,"checkType":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"T"},"indexType":{"kind":"TypeReference","id":0,"typeName":"K"}},"extendsType":{"kind":"UndefinedKeyword","id":0},"trueType":{"kind":"NeverKeyword","id":0},"falseType":{"kind":"TypeReference","id":0,"typeName":"K"}},"members":{}},"indexType":{"kind":"TypeOperator","id":0,"operator":143,"type":{"kind":"TypeReference","id":0,"typeName":"T"}}}]},"falseType":{"kind":"NeverKeyword","id":0}}}],"Expand":[{"kind":"TypeAliasDeclaration","id":0,"name":"Expand","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"type":{"kind":"ConditionalType","id":0,"checkType":{"kind":"TypeReference","id":0,"typeName":"T"},"extendsType":{"kind":"InferType","id":0,"typeParameter":{"kind":"TypeParameter","id":0,"name":"U"}},"trueType":{"kind":"MappedType","id":0,"typeParameter":{"kind":"TypeParameter","id":0,"name":"K","constraint":{"kind":"TypeOperator","id":0,"operator":143,"type":{"kind":"TypeReference","id":0,"typeName":"U"}}},"type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"U"},"indexType":{"kind":"TypeReference","id":0,"typeName":"K"}},"members":{}},"falseType":{"kind":"NeverKeyword","id":0}}}],"MergeObj":[{"kind":"TypeAliasDeclaration","id":0,"name":"MergeObj","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"type":{"kind":"TypeReference","id":0,"typeName":"Expand","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"UnionToIntersection","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"Defined","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]}]}]}}],"MergeComps":[{"kind":"TypeAliasDeclaration","id":0,"name":"MergeComps","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"type":{"kind":"TypeReference","id":0,"typeName":"Omit","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"MergeObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]},{"kind":"TypeOperator","id":0,"operator":143,"type":{"kind":"TypeReference","id":0,"typeName":"Comp"}}]},"jsDoc":{"doc":"A type to merge the components of a game object, omitting the default component properties.","tags":{"group":["Component Types"]}}}],"MergePlugins":[{"kind":"TypeAliasDeclaration","id":0,"name":"MergePlugins","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T","constraint":{"kind":"TypeReference","id":0,"typeName":"PluginList","typeArguments":[{"kind":"AnyKeyword","id":0}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"MergeObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"ReturnType","typeArguments":[{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"T"},"indexType":{"kind":"NumberKeyword","id":0}}]}]}}],"CompList":[{"kind":"TypeAliasDeclaration","id":0,"name":"CompList","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"type":{"kind":"TypeReference","id":0,"typeName":"Array","typeArguments":[{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"T"},{"kind":"TypeReference","id":0,"typeName":"Tag"}]}]},"jsDoc":{"doc":"A component list.","tags":{"group":["Component Types"]}}}],"PluginList":[{"kind":"TypeAliasDeclaration","id":0,"name":"PluginList","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"type":{"kind":"TypeReference","id":0,"typeName":"Array","typeArguments":[{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"T"},{"kind":"TypeReference","id":0,"typeName":"KAPLAYPlugin","typeArguments":[{"kind":"AnyKeyword","id":0}]}]}]}}],"Key":[{"kind":"TypeAliasDeclaration","id":0,"name":"Key","type":{"kind":"UnionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"f1","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"f2","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"f3","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"f4","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"f5","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"f6","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"f7","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"f8","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"f9","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"f10","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"f11","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"f12","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"`","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"1","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"2","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"3","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"4","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"5","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"6","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"7","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"8","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"9","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"0","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"-","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"+","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"=","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"q","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"w","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"e","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"r","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"t","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"y","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"u","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"i","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"o","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"p","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"[","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"]","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"\\","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"a","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"s","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"d","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"f","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"g","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"h","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"j","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"k","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"l","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":";","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"'","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"z","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"x","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"c","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"v","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"b","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"n","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"m","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":",","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":".","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"/","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"escape","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"backspace","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"enter","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"tab","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"control","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"alt","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"meta","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"space","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":" ","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"left","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"right","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"up","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"down","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"shift","hasExtendedUnicodeEscape":false}}]}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"IntersectionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"TypeLiteral","id":0,"members":{}}]}}]},"jsDoc":{"doc":"A key.","tags":{"group":["Input"]}}}],"MouseButton":[{"kind":"TypeAliasDeclaration","id":0,"name":"MouseButton","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"left","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"right","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"middle","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"back","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"forward","hasExtendedUnicodeEscape":false}}]},"jsDoc":{"doc":"A mouse button.","tags":{"group":["Input"]}}}],"KGamepadButton":[{"kind":"TypeAliasDeclaration","id":0,"name":"KGamepadButton","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"north","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"east","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"south","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"west","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"ltrigger","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"rtrigger","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"lshoulder","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"rshoulder","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"select","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"start","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"lstick","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"rstick","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"dpad-up","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"dpad-right","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"dpad-down","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"dpad-left","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"home","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"capture","hasExtendedUnicodeEscape":false}}]},"jsDoc":{"doc":"A gamepad button.","tags":{"group":["Input"]}}}],"GamepadStick":[{"kind":"TypeAliasDeclaration","id":0,"name":"GamepadStick","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"left","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"right","hasExtendedUnicodeEscape":false}}]},"jsDoc":{"doc":"A gamepad stick.","tags":{"group":["Input"]}}}],"GamepadDef":[{"kind":"TypeAliasDeclaration","id":0,"name":"GamepadDef","type":{"kind":"TypeLiteral","id":0,"members":{"buttons":[{"kind":"PropertySignature","id":0,"name":"buttons","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}]}}],"sticks":[{"kind":"PropertySignature","id":0,"name":"sticks","type":{"kind":"TypeReference","id":0,"typeName":"Partial","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"GamepadStick"},{"kind":"TypeLiteral","id":0,"members":{"x":[{"kind":"PropertySignature","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}}],"y":[{"kind":"PropertySignature","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}]}}]}]}}]}},"jsDoc":{"doc":"A gamepad definition.","tags":{}}}],"KGamepad":[{"kind":"TypeAliasDeclaration","id":0,"name":"KGamepad","type":{"kind":"TypeLiteral","id":0,"members":{"index":[{"kind":"PropertySignature","id":0,"name":"index","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"The order of the gamepad in the gamepad list.","tags":{}}}],"isPressed":[{"kind":"MethodSignature","id":0,"name":"isPressed","parameters":[{"kind":"Parameter","id":0,"name":"b","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If certain button is pressed.","tags":{}}}],"isDown":[{"kind":"MethodSignature","id":0,"name":"isDown","parameters":[{"kind":"Parameter","id":0,"name":"b","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If certain button is held down.","tags":{}}}],"isReleased":[{"kind":"MethodSignature","id":0,"name":"isReleased","parameters":[{"kind":"Parameter","id":0,"name":"b","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If certain button is released.","tags":{}}}],"getStick":[{"kind":"MethodSignature","id":0,"name":"getStick","parameters":[{"kind":"Parameter","id":0,"name":"stick","type":{"kind":"TypeReference","id":0,"typeName":"GamepadStick"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Get the value of a stick.","tags":{}}}]}},"jsDoc":{"doc":"A KAPLAY gamepad","tags":{}}}],"GameObjInspect":[{"kind":"TypeAliasDeclaration","id":0,"name":"GameObjInspect","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"Tag"},{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}]},"jsDoc":{"doc":"Inspect info for a game object.","tags":{}}}],"KAPLAYOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"KAPLAYOpt","typeParameters":[{"kind":"TypeParameter","id":0,"name":"TPlugin","constraint":{"kind":"TypeReference","id":0,"typeName":"PluginList","typeArguments":[{"kind":"AnyKeyword","id":0}]},"default":{"kind":"AnyKeyword","id":0}},{"kind":"TypeParameter","id":0,"name":"TButtonDef","constraint":{"kind":"TypeReference","id":0,"typeName":"ButtonsDef"},"default":{"kind":"AnyKeyword","id":0}}],"members":{"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Width of game.","tags":{}}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Height of game.","tags":{}}}],"scale":[{"kind":"PropertySignature","id":0,"name":"scale","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Pixel scale / size.","tags":{}}}],"stretch":[{"kind":"PropertySignature","id":0,"name":"stretch","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If stretch canvas to container when width and height is specified","tags":{}}}],"letterbox":[{"kind":"PropertySignature","id":0,"name":"letterbox","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"When stretching if keep aspect ratio and leave black bars on remaining spaces.","tags":{}}}],"debug":[{"kind":"PropertySignature","id":0,"name":"debug","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If register debug buttons (default true)","tags":{}}}],"debugKey":[{"kind":"PropertySignature","id":0,"name":"debugKey","type":{"kind":"TypeReference","id":0,"typeName":"Key"},"questionToken":true,"jsDoc":{"doc":"Key that toggles debug mode","tags":{}}}],"font":[{"kind":"PropertySignature","id":0,"name":"font","type":{"kind":"StringKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Default font (defaults to \"monospace\").","tags":{}}}],"pixelDensity":[{"kind":"PropertySignature","id":0,"name":"pixelDensity","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Device pixel scale (defaults to 1, high pixel density will hurt performance).","tags":{"since":["v3000.0"]}}}],"crisp":[{"kind":"PropertySignature","id":0,"name":"crisp","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Disable antialias and enable sharp pixel display.","tags":{}}}],"canvas":[{"kind":"PropertySignature","id":0,"name":"canvas","type":{"kind":"TypeReference","id":0,"typeName":"HTMLCanvasElement"},"questionToken":true,"jsDoc":{"doc":"The canvas DOM element to use. If empty will create one.","tags":{}}}],"root":[{"kind":"PropertySignature","id":0,"name":"root","type":{"kind":"TypeReference","id":0,"typeName":"HTMLElement"},"questionToken":true,"jsDoc":{"doc":"The container DOM element to insert the canvas if created. Defaults to document.body.","tags":{}}}],"background":[{"kind":"PropertySignature","id":0,"name":"background","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"RGBValue"},{"kind":"TypeReference","id":0,"typeName":"RGBAValue"},{"kind":"StringKeyword","id":0}]},"questionToken":true,"jsDoc":{"doc":"Background color. E.g. [ 0, 0, 255 ] for solid blue background, or [ 0, 0, 0, 0 ] for transparent background. Accepts RGB value array or string hex codes.","tags":{}}}],"texFilter":[{"kind":"PropertySignature","id":0,"name":"texFilter","type":{"kind":"TypeReference","id":0,"typeName":"TexFilter"},"questionToken":true,"jsDoc":{"doc":"Default texture filter.","tags":{}}}],"logMax":[{"kind":"PropertySignature","id":0,"name":"logMax","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"How many log messages can there be on one screen (default 8).","tags":{}}}],"logTime":[{"kind":"PropertySignature","id":0,"name":"logTime","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"How many seconds log messages stay on screen (default 4).","tags":{"since":["v3000.1"]}}}],"hashGridSize":[{"kind":"PropertySignature","id":0,"name":"hashGridSize","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Size of the spatial hash grid for collision detection (default 64).","tags":{"since":["v3000.0"]}}}],"touchToMouse":[{"kind":"PropertySignature","id":0,"name":"touchToMouse","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If translate touch events as mouse clicks (default true).","tags":{}}}],"loadingScreen":[{"kind":"PropertySignature","id":0,"name":"loadingScreen","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If KAPLAY should render a default loading screen when assets are not fully ready (default true).","tags":{"since":["v3000.0"]}}}],"backgroundAudio":[{"kind":"PropertySignature","id":0,"name":"backgroundAudio","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If pause audio when tab is not active (default false).","tags":{"since":["v3000.0"]}}}],"gamepads":[{"kind":"PropertySignature","id":0,"name":"gamepads","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"GamepadDef"}]},"questionToken":true,"jsDoc":{"doc":"Custom gamepad definitions (see gamepad.json for reference of the format).","tags":{"since":["v3000.0"]}}}],"buttons":[{"kind":"PropertySignature","id":0,"name":"buttons","type":{"kind":"TypeReference","id":0,"typeName":"TButtonDef"},"questionToken":true,"jsDoc":{"doc":"Defined buttons for input binding.","tags":{"since":["v30010"]}}}],"maxFPS":[{"kind":"PropertySignature","id":0,"name":"maxFPS","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Limit framerate to an amount per second.","tags":{"since":["v3000.0"]}}}],"focus":[{"kind":"PropertySignature","id":0,"name":"focus","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If focus on the canvas on start (default true).","tags":{"since":["v3001.0"]}}}],"global":[{"kind":"PropertySignature","id":0,"name":"global","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If import all KAPLAY functions to global (default true).","tags":{}}}],"plugins":[{"kind":"PropertySignature","id":0,"name":"plugins","type":{"kind":"TypeReference","id":0,"typeName":"TPlugin"},"questionToken":true,"jsDoc":{"doc":"List of plugins to import.","tags":{}}}],"burp":[{"kind":"PropertySignature","id":0,"name":"burp","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Enter burp mode.","tags":{}}}],"tagsAsComponents":[{"kind":"PropertySignature","id":0,"name":"tagsAsComponents","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Make component's id (\"sprite\" for sprite() comp) be added as tags.\n\nThat means .is() will return true for components with that id.","tags":{"default":["true"],"experimental":["This feature is in experimental phase, it will be fully released in v3001.1.0"]}}}],"spriteAtlasPadding":[{"kind":"PropertySignature","id":0,"name":"spriteAtlasPadding","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Padding used when adding sprites to texture atlas.","tags":{"default":["0"]}}}]},"jsDoc":{"doc":"KAPLAY configurations.","tags":{"group":["Start"]}}}],"KAPLAYPlugin":[{"kind":"TypeAliasDeclaration","id":0,"name":"KAPLAYPlugin","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","type":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"T"},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"AnyKeyword","id":0}}],"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","type":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"}}],"type":{"kind":"TypeReference","id":0,"typeName":"T"}}}}]}},"jsDoc":{"doc":"A plugin for KAPLAY.","tags":{"example":["```js\n// a plugin that adds a new function to KAPLAY\nconst myPlugin = (k) => ({\n myFunc: () => {\n k.debug.log(\"hello from my plugin\")\n }\n})\n\n// use the plugin\nkaplay({\n plugins: [ myPlugin ]\n})\n\n// now you can use the new function\nmyFunc()\n```"],"group":["Plugins"]}}}],"GameObjRaw":[{"kind":"InterfaceDeclaration","id":0,"name":"GameObjRaw","members":{"add":[{"kind":"MethodSignature","id":0,"name":"add","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"parameters":[{"kind":"Parameter","id":0,"name":"comps","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"CompList","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]},{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]},"jsDoc":{"doc":"Add a child.","tags":{"param":["- The components to add."],"returns":["The added game object."],"since":["v3000.0"]}}}],"readd":[{"kind":"MethodSignature","id":0,"name":"readd","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]}}],"type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]},"jsDoc":{"doc":"Remove and re-add the game obj, without triggering add / destroy events.","tags":{"param":["- The game object to re-add."],"returns":["The re-added game object."],"since":["v3000.0"]}}}],"remove":[{"kind":"MethodSignature","id":0,"name":"remove","parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Remove a child.","tags":{"param":["- The game object to remove."],"since":["v3000.0"]}}}],"removeAll":[{"kind":"MethodSignature","id":0,"name":"removeAll","parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Remove all children with a certain tag.","tags":{"param":["- The tag to remove."],"since":["v3000.0"]}}},{"kind":"MethodSignature","id":0,"name":"removeAll","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Remove all children.","tags":{"since":["v3000.0"]}}}],"get":[{"kind":"MethodSignature","id":0,"name":"get","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T","default":{"kind":"AnyKeyword","id":0}}],"parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Tag"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Tag"}}]}},{"kind":"Parameter","id":0,"name":"opts","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"GetOpt"}}],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]}},"jsDoc":{"doc":"Get a list of all game objs with certain tag.","tags":{"param":["- The tag to get."],"since":["v3000.0"]}}}],"query":[{"kind":"MethodSignature","id":0,"name":"query","parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"QueryOpt"}}],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},"jsDoc":{"doc":"Get a list of all game objs with certain properties.","tags":{"param":["- The properties to get."],"since":["v3001.0"]}}}],"setParent":[{"kind":"MethodSignature","id":0,"name":"setParent","parameters":[{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeReference","id":0,"typeName":"SetParentOpt"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Set the parent game obj.","tags":{"since":["v4000.0"]}}}],"children":[{"kind":"PropertySignature","id":0,"name":"children","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},"jsDoc":{"tags":{"readonly":["Get all children game objects."],"since":["v3000.0"]}}}],"tags":[{"kind":"PropertySignature","id":0,"name":"tags","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}},"jsDoc":{"tags":{"readonly":["Get the tags of a game object. For update it, use `tag()` and `untag()`."],"since":["v3001.0"]}}}],"fixedUpdate":[{"kind":"MethodSignature","id":0,"name":"fixedUpdate","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Update this game object and all children game objects.","tags":{"since":["v3001.0"]}}}],"update":[{"kind":"MethodSignature","id":0,"name":"update","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Update this game object and all children game objects.","tags":{"since":["v3000.0"]}}}],"draw":[{"kind":"MethodSignature","id":0,"name":"draw","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Draw this game object and all children game objects.","tags":{"since":["v3000.0"]}}}],"drawInspect":[{"kind":"PropertySignature","id":0,"name":"drawInspect","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}},"jsDoc":{"doc":"Draw debug info in inspect mode","tags":{"since":["v3000.0"]}}}],"clearEvents":[{"kind":"PropertySignature","id":0,"name":"clearEvents","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"use":[{"kind":"MethodSignature","id":0,"name":"use","parameters":[{"kind":"Parameter","id":0,"name":"comp","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Comp"},{"kind":"TypeReference","id":0,"typeName":"Tag"}]}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Add a component.","tags":{"example":["```js\nconst obj = add([\n sprite(\"bean\"),\n]);\n\n// Add opacity\nobj.use(opacity(0.5));\n```"],"since":["v2000.0"]}}}],"unuse":[{"kind":"MethodSignature","id":0,"name":"unuse","parameters":[{"kind":"Parameter","id":0,"name":"comp","type":{"kind":"TypeReference","id":0,"typeName":"Tag"}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Remove a component with its id (the component name)","tags":{"param":["- The component id to remove. It means the name, if sprite, then it's \"sprite\"."],"example":["```js\n// Remove sprite component\nobj.unuse(\"sprite\");\n```"],"since":["v2000.0"]}}}],"has":[{"kind":"MethodSignature","id":0,"name":"has","parameters":[{"kind":"Parameter","id":0,"name":"compId","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}},{"kind":"Parameter","id":0,"name":"op","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"and","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"or","hasExtendedUnicodeEscape":false}}]}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Check if game object has a certain component.","tags":{"param":["- The component id(s) to check.","- The operator to use when searching for multiple components. Default is \"and\"."],"example":["```js\n// Check if game object has sprite component\nif(obj.has(\"sprite\")) {\n debug.log(\"has sprite component\");\n}\n\n// Check if game object has tags\nobj.has([\"tag1\", \"tag2\"]); // AND, it has both tags\nobj.has([\"tag1\", \"tag2\"], \"or\"); // OR, it has either tag1 or tag2\n```"],"returns":["true if has the component(s), false otherwise."],"since":["v3001.0.5"],"experimental":["This feature is in experimental phase, it will be fully released in v3001.1.0"]}}}],"tag":[{"kind":"MethodSignature","id":0,"name":"tag","parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Tag"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Tag"}}]}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Add a tag(s) to the game obj.","tags":{"param":["- The tag(s) to add."],"example":["```js\n// add enemy tag\nobj.tag(\"enemy\");\n\n// add multiple tags\nobj.tag([\"enemy\", \"boss\"]);\n```"],"since":["v3001.0.5"],"experimental":["This feature is in experimental phase, it will be fully released in v3001.1.0"]}}}],"untag":[{"kind":"MethodSignature","id":0,"name":"untag","parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Tag"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Tag"}}]}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Remove a tag(s) from the game obj.","tags":{"param":["- The tag(s) to remove."],"example":["```js\n// remove enemy tag\nobj.untag(\"enemy\");\n\n// remove multiple tags\nobj.untag([\"enemy\", \"boss\"]);\n```"],"since":["v3001.0.5"],"experimental":["This feature is in experimental phase, it will be fully released in v3001.1.0"]}}}],"is":[{"kind":"MethodSignature","id":0,"name":"is","parameters":[{"kind":"Parameter","id":0,"name":"tag","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Tag"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Tag"}}]}},{"kind":"Parameter","id":0,"name":"op","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"and","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"or","hasExtendedUnicodeEscape":false}}]}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If there's certain tag(s) on the game obj.","tags":{"param":["- The tag(s) for checking.","- The operator to use when searching for multiple tags. Default is \"and\"."],"since":["v3001.0.5"],"experimental":["This feature is in experimental phase, it will be fully released in v3001.1.0"]}}}],"on":[{"kind":"MethodSignature","id":0,"name":"on","parameters":[{"kind":"Parameter","id":0,"name":"event","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"GameObjEventNames"},{"kind":"ParenthesizedType","id":0,"type":{"kind":"IntersectionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"TypeLiteral","id":0,"members":{}}]}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"AnyKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event.","tags":{"param":["- The event name.","- The action to run when event is triggered."],"returns":["The event controller."],"since":["v2000.0"]}}}],"trigger":[{"kind":"MethodSignature","id":0,"name":"trigger","parameters":[{"kind":"Parameter","id":0,"name":"event","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"args","type":{"kind":"AnyKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Trigger an event.","tags":{"param":["- The event name."],"parm":["args - The arguments to pass to the event action."],"since":["v2000.0"]}}}],"destroy":[{"kind":"MethodSignature","id":0,"name":"destroy","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Remove the game obj from scene.","tags":{"since":["v2000.0"]}}}],"c":[{"kind":"MethodSignature","id":0,"name":"c","parameters":[{"kind":"Parameter","id":0,"name":"id","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Comp"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Get state for a specific comp.","tags":{"param":["- The component id."],"since":["v2000.0"]}}}],"inspect":[{"kind":"MethodSignature","id":0,"name":"inspect","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"GameObjInspect"},"jsDoc":{"doc":"Gather debug info of all comps.","tags":{"since":["v2000.0"]}}}],"onAdd":[{"kind":"MethodSignature","id":0,"name":"onAdd","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when the game obj is added to the scene.","tags":{"returns":["The event controller."],"since":["v2000.0"]}}}],"onUpdate":[{"kind":"MethodSignature","id":0,"name":"onUpdate","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs every frame as long as the game obj exists.","tags":{"returns":["The event controller."],"since":["v2000.1"]}}}],"onDraw":[{"kind":"MethodSignature","id":0,"name":"onDraw","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs every frame as long as the game obj exists (this is the same as `onUpdate()`, but all draw events are run after all update events).","tags":{"returns":["The event controller."],"since":["v2000.1"]}}}],"onDestroy":[{"kind":"MethodSignature","id":0,"name":"onDestroy","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when the game obj is destroyed.","tags":{"returns":["The event controller."],"since":["v2000.1"]}}}],"onCompAdd":[{"kind":"MethodSignature","id":0,"name":"onCompAdd","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"id","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when a component is used.","tags":{"returns":["The event controller."],"since":["v4000.0"]}}}],"onCompDestroy":[{"kind":"MethodSignature","id":0,"name":"onCompDestroy","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"id","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"},"jsDoc":{"doc":"Register an event that runs when a component is unused.","tags":{"returns":["The event controller."],"since":["v4000.0"]}}}],"exists":[{"kind":"MethodSignature","id":0,"name":"exists","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If game obj is attached to the scene graph.","tags":{"returns":["true if attached, false otherwise."],"since":["v2000.0"]}}}],"isAncestorOf":[{"kind":"MethodSignature","id":0,"name":"isAncestorOf","parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Check if is an ancestor (recursive parent) of another game object","tags":{"returns":["true if is ancestor, false otherwise."],"since":["v3000.0"]}}}],"transform":[{"kind":"PropertySignature","id":0,"name":"transform","type":{"kind":"TypeReference","id":0,"typeName":"Mat23"},"jsDoc":{"doc":"Calculated transform matrix of a game object.","tags":{"since":["v3000.0"]}}}],"hidden":[{"kind":"PropertySignature","id":0,"name":"hidden","type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If draw the game obj (run \"draw\" event or not).","tags":{"since":["v2000.0"]}}}],"paused":[{"kind":"PropertySignature","id":0,"name":"paused","type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If update the game obj (run \"update\" event or not).","tags":{"since":["v2000.0"]}}}],"id":[{"kind":"PropertySignature","id":0,"name":"id","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"GameObjID"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"A unique number ID for each game object.","tags":{"since":["v2000.0"]}}}],"canvas":[{"kind":"PropertySignature","id":0,"name":"canvas","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"FrameBuffer"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"The canvas to draw this game object on","tags":{"since":["v3001.0"]}}}],"onKeyDown":[{"kind":"PropertySignature","id":0,"name":"onKeyDown","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onKeyDown","hasExtendedUnicodeEscape":false}}}}],"onKeyPress":[{"kind":"PropertySignature","id":0,"name":"onKeyPress","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onKeyPress","hasExtendedUnicodeEscape":false}}}}],"onKeyPressRepeat":[{"kind":"PropertySignature","id":0,"name":"onKeyPressRepeat","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onKeyPressRepeat","hasExtendedUnicodeEscape":false}}}}],"onKeyRelease":[{"kind":"PropertySignature","id":0,"name":"onKeyRelease","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onKeyRelease","hasExtendedUnicodeEscape":false}}}}],"onCharInput":[{"kind":"PropertySignature","id":0,"name":"onCharInput","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onCharInput","hasExtendedUnicodeEscape":false}}}}],"onMouseDown":[{"kind":"PropertySignature","id":0,"name":"onMouseDown","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onMouseDown","hasExtendedUnicodeEscape":false}}}}],"onMousePress":[{"kind":"PropertySignature","id":0,"name":"onMousePress","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onMousePress","hasExtendedUnicodeEscape":false}}}}],"onMouseRelease":[{"kind":"PropertySignature","id":0,"name":"onMouseRelease","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onMouseRelease","hasExtendedUnicodeEscape":false}}}}],"onMouseMove":[{"kind":"PropertySignature","id":0,"name":"onMouseMove","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onMouseMove","hasExtendedUnicodeEscape":false}}}}],"onTouchStart":[{"kind":"PropertySignature","id":0,"name":"onTouchStart","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onTouchStart","hasExtendedUnicodeEscape":false}}}}],"onTouchMove":[{"kind":"PropertySignature","id":0,"name":"onTouchMove","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onTouchMove","hasExtendedUnicodeEscape":false}}}}],"onTouchEnd":[{"kind":"PropertySignature","id":0,"name":"onTouchEnd","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onTouchEnd","hasExtendedUnicodeEscape":false}}}}],"onScroll":[{"kind":"PropertySignature","id":0,"name":"onScroll","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onScroll","hasExtendedUnicodeEscape":false}}}}],"onGamepadButtonDown":[{"kind":"PropertySignature","id":0,"name":"onGamepadButtonDown","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onGamepadButtonDown","hasExtendedUnicodeEscape":false}}}}],"onGamepadButtonPress":[{"kind":"PropertySignature","id":0,"name":"onGamepadButtonPress","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onGamepadButtonPress","hasExtendedUnicodeEscape":false}}}}],"onGamepadButtonRelease":[{"kind":"PropertySignature","id":0,"name":"onGamepadButtonRelease","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onGamepadButtonRelease","hasExtendedUnicodeEscape":false}}}}],"onGamepadStick":[{"kind":"PropertySignature","id":0,"name":"onGamepadStick","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onGamepadStick","hasExtendedUnicodeEscape":false}}}}],"onButtonDown":[{"kind":"PropertySignature","id":0,"name":"onButtonDown","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onButtonDown","hasExtendedUnicodeEscape":false}}}}],"onButtonPress":[{"kind":"PropertySignature","id":0,"name":"onButtonPress","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onButtonPress","hasExtendedUnicodeEscape":false}}}}],"onButtonRelease":[{"kind":"PropertySignature","id":0,"name":"onButtonRelease","type":{"kind":"IndexedAccessType","id":0,"objectType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx"},"indexType":{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"onButtonRelease","hasExtendedUnicodeEscape":false}}}}]},"jsDoc":{"doc":"Base interface of all game objects.","tags":{"since":["v2000.0"],"group":["Game Obj"]}}}],"GameObj":[{"kind":"TypeAliasDeclaration","id":0,"name":"GameObj","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T","default":{"kind":"AnyKeyword","id":0}}],"type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"GameObjRaw"},{"kind":"TypeReference","id":0,"typeName":"MergeComps","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]}]},"jsDoc":{"doc":"The basic unit of object in KAPLAY. The player, a butterfly, a tree, or even a piece of text.","tags":{"group":["Game Obj"]}}}],"GetOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"GetOpt","type":{"kind":"TypeLiteral","id":0,"members":{"recursive":[{"kind":"PropertySignature","id":0,"name":"recursive","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Recursively get all children and their descendants.","tags":{}}}],"liveUpdate":[{"kind":"PropertySignature","id":0,"name":"liveUpdate","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Live update the returned list every time object is added / removed.","tags":{}}}],"only":[{"kind":"PropertySignature","id":0,"name":"only","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"tags","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"comps","hasExtendedUnicodeEscape":false}}]},"questionToken":true,"jsDoc":{"doc":"Get only by tags or components.","tags":{}}}]}},"jsDoc":{"tags":{"group":["Options"]}}}],"QueryOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"QueryOpt","type":{"kind":"TypeLiteral","id":0,"members":{"include":[{"kind":"PropertySignature","id":0,"name":"include","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]},"questionToken":true,"jsDoc":{"doc":"All objects which include all or any of these tags, depending on includeOp.","tags":{}}}],"includeOp":[{"kind":"PropertySignature","id":0,"name":"includeOp","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"and","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"or","hasExtendedUnicodeEscape":false}}]},"questionToken":true,"jsDoc":{"doc":"Selects the operator to use. Defaults to and.","tags":{}}}],"exclude":[{"kind":"PropertySignature","id":0,"name":"exclude","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]},"questionToken":true,"jsDoc":{"doc":"All objects which do not have all or any of these tags, depending on excludeOp.","tags":{}}}],"excludeOp":[{"kind":"PropertySignature","id":0,"name":"excludeOp","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"and","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"or","hasExtendedUnicodeEscape":false}}]},"questionToken":true,"jsDoc":{"doc":"Selects the operator to use. Defaults to and.","tags":{}}}],"distance":[{"kind":"PropertySignature","id":0,"name":"distance","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"All objects which are near or far to the position of this, depending on distanceOp.","tags":{}}}],"distanceOp":[{"kind":"PropertySignature","id":0,"name":"distanceOp","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"near","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"far","hasExtendedUnicodeEscape":false}}]},"questionToken":true,"jsDoc":{"doc":"Selects the operator to use. Defaults to near.","tags":{}}}],"visible":[{"kind":"PropertySignature","id":0,"name":"visible","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"All objects visible from this standpoint.","tags":{}}}],"hierarchy":[{"kind":"PropertySignature","id":0,"name":"hierarchy","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"children","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"siblings","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"ancestors","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"descendants","hasExtendedUnicodeEscape":false}}]},"questionToken":true,"jsDoc":{"doc":"All objects in the given group. Defaults to children.","tags":{}}}]}},"jsDoc":{"tags":{"group":["Options"]}}}],"Recording":[{"kind":"InterfaceDeclaration","id":0,"name":"Recording","members":{"pause":[{"kind":"MethodSignature","id":0,"name":"pause","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Pause the recording.","tags":{}}}],"resume":[{"kind":"MethodSignature","id":0,"name":"resume","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Resume the recording.","tags":{}}}],"stop":[{"kind":"MethodSignature","id":0,"name":"stop","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Promise","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"Blob"}]},"jsDoc":{"doc":"Stop the recording and get the video data as mp4 Blob.","tags":{"since":["v3000.0"]}}}],"download":[{"kind":"MethodSignature","id":0,"name":"download","parameters":[{"kind":"Parameter","id":0,"name":"filename","questionToken":true,"type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Stop the recording and downloads the file as mp4. Trying to resume later will lead to error.","tags":{}}}]},"jsDoc":{"doc":"Screen recording control handle.","tags":{"group":["Data"]}}}],"SpriteAnimPlayOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"SpriteAnimPlayOpt","members":{"loop":[{"kind":"PropertySignature","id":0,"name":"loop","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If this anim should be played in loop.","tags":{}}}],"pingpong":[{"kind":"PropertySignature","id":0,"name":"pingpong","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"When looping should it move back instead of go to start frame again.","tags":{}}}],"speed":[{"kind":"PropertySignature","id":0,"name":"speed","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"This anim's speed in frames per second.","tags":{}}}],"onEnd":[{"kind":"PropertySignature","id":0,"name":"onEnd","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}},"questionToken":true,"jsDoc":{"doc":"Runs when this animation ends.","tags":{}}}]},"jsDoc":{"doc":"Sprite animation configuration when playing.","tags":{}}}],"MusicData":[{"kind":"TypeAliasDeclaration","id":0,"name":"MusicData","type":{"kind":"StringKeyword","id":0}}],"LoadFontOpt":[{"kind":"InterfaceDeclaration","id":0,"name":"LoadFontOpt","members":{"filter":[{"kind":"PropertySignature","id":0,"name":"filter","type":{"kind":"TypeReference","id":0,"typeName":"TexFilter"},"questionToken":true}],"outline":[{"kind":"PropertySignature","id":0,"name":"outline","type":{"kind":"UnionType","id":0,"types":[{"kind":"NumberKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"Outline"}]},"questionToken":true}],"size":[{"kind":"PropertySignature","id":0,"name":"size","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The size to load the font in (default 64).","tags":{"since":["v3001.0"]}}}]}}],"TextureOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"TextureOpt","type":{"kind":"TypeLiteral","id":0,"members":{"filter":[{"kind":"PropertySignature","id":0,"name":"filter","type":{"kind":"TypeReference","id":0,"typeName":"TexFilter"},"questionToken":true}],"wrap":[{"kind":"PropertySignature","id":0,"name":"wrap","type":{"kind":"TypeReference","id":0,"typeName":"TexWrap"},"questionToken":true}]}}}],"ImageSource":[{"kind":"TypeAliasDeclaration","id":0,"name":"ImageSource","type":{"kind":"TypeReference","id":0,"typeName":"Exclude","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"TexImageSource"},{"kind":"TypeReference","id":0,"typeName":"VideoFrame"}]}}],"Canvas":[{"kind":"TypeAliasDeclaration","id":0,"name":"Canvas","type":{"kind":"TypeLiteral","id":0,"members":{"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0}}],"toImageData":[{"kind":"MethodSignature","id":0,"name":"toImageData","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"ImageData"}}],"toDataURL":[{"kind":"MethodSignature","id":0,"name":"toDataURL","parameters":[],"type":{"kind":"StringKeyword","id":0}}],"clear":[{"kind":"MethodSignature","id":0,"name":"clear","parameters":[],"type":{"kind":"VoidKeyword","id":0}}],"draw":[{"kind":"MethodSignature","id":0,"name":"draw","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0}}],"free":[{"kind":"MethodSignature","id":0,"name":"free","parameters":[],"type":{"kind":"VoidKeyword","id":0}}],"fb":[{"kind":"PropertySignature","id":0,"name":"fb","type":{"kind":"TypeReference","id":0,"typeName":"FrameBuffer"}}]}}}],"Vertex":[{"kind":"InterfaceDeclaration","id":0,"name":"Vertex","members":{"pos":[{"kind":"PropertySignature","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"uv":[{"kind":"PropertySignature","id":0,"name":"uv","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"color":[{"kind":"PropertySignature","id":0,"name":"color","type":{"kind":"TypeReference","id":0,"typeName":"Color"}}],"opacity":[{"kind":"PropertySignature","id":0,"name":"opacity","type":{"kind":"NumberKeyword","id":0}}]}}],"TexFilter":[{"kind":"TypeAliasDeclaration","id":0,"name":"TexFilter","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"nearest","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"linear","hasExtendedUnicodeEscape":false}}]},"jsDoc":{"doc":"Texture scaling filter. \"nearest\" is mainly for sharp pixelated scaling, \"linear\" means linear interpolation.","tags":{}}}],"TexWrap":[{"kind":"TypeAliasDeclaration","id":0,"name":"TexWrap","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"repeat","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"clampToEdge","hasExtendedUnicodeEscape":false}}]}}],"RenderProps":[{"kind":"InterfaceDeclaration","id":0,"name":"RenderProps","members":{"pos":[{"kind":"PropertySignature","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"questionToken":true}],"scale":[{"kind":"PropertySignature","id":0,"name":"scale","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"questionToken":true}],"angle":[{"kind":"PropertySignature","id":0,"name":"angle","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"color":[{"kind":"PropertySignature","id":0,"name":"color","type":{"kind":"TypeReference","id":0,"typeName":"Color"},"questionToken":true}],"opacity":[{"kind":"PropertySignature","id":0,"name":"opacity","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"fixed":[{"kind":"PropertySignature","id":0,"name":"fixed","type":{"kind":"BooleanKeyword","id":0},"questionToken":true}],"shader":[{"kind":"PropertySignature","id":0,"name":"shader","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"ShaderData"},{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"ShaderData"}]},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"questionToken":true}],"uniform":[{"kind":"PropertySignature","id":0,"name":"uniform","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Uniform"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"questionToken":true}],"outline":[{"kind":"PropertySignature","id":0,"name":"outline","type":{"kind":"TypeReference","id":0,"typeName":"Outline"},"questionToken":true}]},"jsDoc":{"doc":"Common render properties.","tags":{}}}],"DrawTextureOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"DrawTextureOpt","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"RenderProps"},{"kind":"TypeLiteral","id":0,"members":{"tex":[{"kind":"PropertySignature","id":0,"name":"tex","type":{"kind":"TypeReference","id":0,"typeName":"Texture"}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"tiled":[{"kind":"PropertySignature","id":0,"name":"tiled","type":{"kind":"BooleanKeyword","id":0},"questionToken":true}],"flipX":[{"kind":"PropertySignature","id":0,"name":"flipX","type":{"kind":"BooleanKeyword","id":0},"questionToken":true}],"flipY":[{"kind":"PropertySignature","id":0,"name":"flipY","type":{"kind":"BooleanKeyword","id":0},"questionToken":true}],"quad":[{"kind":"PropertySignature","id":0,"name":"quad","type":{"kind":"TypeReference","id":0,"typeName":"Quad"},"questionToken":true}],"anchor":[{"kind":"PropertySignature","id":0,"name":"anchor","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Anchor"},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]},"questionToken":true}]}}]}}],"DrawUVQuadOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"DrawUVQuadOpt","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"RenderProps"},{"kind":"TypeLiteral","id":0,"members":{"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Width of the UV quad.","tags":{}}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Height of the UV quad.","tags":{}}}],"flipX":[{"kind":"PropertySignature","id":0,"name":"flipX","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If flip the texture horizontally.","tags":{}}}],"flipY":[{"kind":"PropertySignature","id":0,"name":"flipY","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If flip the texture vertically.","tags":{}}}],"tex":[{"kind":"PropertySignature","id":0,"name":"tex","type":{"kind":"TypeReference","id":0,"typeName":"Texture"},"questionToken":true,"jsDoc":{"doc":"The texture to sample for this quad.","tags":{}}}],"quad":[{"kind":"PropertySignature","id":0,"name":"quad","type":{"kind":"TypeReference","id":0,"typeName":"Quad"},"questionToken":true,"jsDoc":{"doc":"The texture sampling area.","tags":{}}}],"anchor":[{"kind":"PropertySignature","id":0,"name":"anchor","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Anchor"},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]},"questionToken":true,"jsDoc":{"doc":"The anchor point, or the pivot point. Default to \"topleft\".","tags":{}}}]}}]}}],"DrawEllipseOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"DrawEllipseOpt","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"RenderProps"},{"kind":"TypeLiteral","id":0,"members":{"radiusX":[{"kind":"PropertySignature","id":0,"name":"radiusX","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"The horizontal radius.","tags":{}}}],"radiusY":[{"kind":"PropertySignature","id":0,"name":"radiusY","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"The vertical radius.","tags":{}}}],"start":[{"kind":"PropertySignature","id":0,"name":"start","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Starting angle.","tags":{}}}],"fill":[{"kind":"PropertySignature","id":0,"name":"fill","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If fill the shape with color (set this to false if you only want an outline).","tags":{}}}],"gradient":[{"kind":"PropertySignature","id":0,"name":"gradient","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Color"},{"kind":"TypeReference","id":0,"typeName":"Color"}]},"questionToken":true,"jsDoc":{"doc":"Use gradient instead of solid color.","tags":{"since":["v3000.0"]}}}],"resolution":[{"kind":"PropertySignature","id":0,"name":"resolution","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Multiplier for circle vertices resolution (default 1)","tags":{}}}],"anchor":[{"kind":"PropertySignature","id":0,"name":"anchor","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Anchor"},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]},"questionToken":true,"jsDoc":{"doc":"The anchor point, or the pivot point. Default to \"topleft\".","tags":{}}}]}}]},"jsDoc":{"doc":"How the ellipse should look like.","tags":{}}}],"DrawPolygonOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"DrawPolygonOpt","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"RenderProps"},{"kind":"TypeLiteral","id":0,"members":{"pts":[{"kind":"PropertySignature","id":0,"name":"pts","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},"jsDoc":{"doc":"The points that make up the polygon","tags":{}}}],"fill":[{"kind":"PropertySignature","id":0,"name":"fill","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"If fill the shape with color (set this to false if you only want an outline).","tags":{}}}],"indices":[{"kind":"PropertySignature","id":0,"name":"indices","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}},"questionToken":true,"jsDoc":{"doc":"Manual triangulation.","tags":{}}}],"offset":[{"kind":"PropertySignature","id":0,"name":"offset","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"questionToken":true,"jsDoc":{"doc":"The center point of transformation in relation to the position.","tags":{}}}],"radius":[{"kind":"PropertySignature","id":0,"name":"radius","type":{"kind":"UnionType","id":0,"types":[{"kind":"NumberKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"NumberKeyword","id":0}}]},"questionToken":true,"jsDoc":{"doc":"The radius of each corner.","tags":{}}}],"colors":[{"kind":"PropertySignature","id":0,"name":"colors","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Color"}},"questionToken":true,"jsDoc":{"doc":"The color of each vertex.","tags":{"since":["v3000.0"]}}}],"uv":[{"kind":"PropertySignature","id":0,"name":"uv","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},"questionToken":true,"jsDoc":{"doc":"The uv of each vertex.","tags":{"since":["v3001.0"]}}}],"tex":[{"kind":"PropertySignature","id":0,"name":"tex","type":{"kind":"TypeReference","id":0,"typeName":"Texture"},"questionToken":true,"jsDoc":{"doc":"The texture if uv are supplied.","tags":{"since":["v3001.0"]}}}],"triangulate":[{"kind":"PropertySignature","id":0,"name":"triangulate","type":{"kind":"BooleanKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Triangulate concave polygons.","tags":{"since":["v3001.0"]}}}]}}]},"jsDoc":{"doc":"How the polygon should look like.","tags":{}}}],"Outline":[{"kind":"InterfaceDeclaration","id":0,"name":"Outline","members":{"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"The width, or thickness of the line.","tags":{}}}],"color":[{"kind":"PropertySignature","id":0,"name":"color","type":{"kind":"TypeReference","id":0,"typeName":"Color"},"questionToken":true,"jsDoc":{"doc":"The color of the line.","tags":{}}}],"opacity":[{"kind":"PropertySignature","id":0,"name":"opacity","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Opacity (overrides fill opacity).","tags":{"since":["v3001.0"]}}}],"join":[{"kind":"PropertySignature","id":0,"name":"join","type":{"kind":"TypeReference","id":0,"typeName":"LineJoin"},"questionToken":true,"jsDoc":{"doc":"Line join.","tags":{"since":["v3000.0"]}}}],"miterLimit":[{"kind":"PropertySignature","id":0,"name":"miterLimit","type":{"kind":"NumberKeyword","id":0},"questionToken":true,"jsDoc":{"doc":"Miter limit. If the length of the miter divided by the line width exceeds this limit, the style is converted to a bevel.","tags":{"since":["v3001.0"]}}}],"cap":[{"kind":"PropertySignature","id":0,"name":"cap","type":{"kind":"TypeReference","id":0,"typeName":"LineCap"},"questionToken":true,"jsDoc":{"doc":"Line cap.","tags":{"since":["v3001.0"]}}}]}}],"Cursor":[{"kind":"TypeAliasDeclaration","id":0,"name":"Cursor","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"auto","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"default","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"none","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"context-menu","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"help","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"pointer","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"progress","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"wait","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"cell","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"crosshair","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"text","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"vertical-text","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"alias","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"copy","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"move","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"no-drop","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"not-allowed","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"grab","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"grabbing","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"all-scroll","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"col-resize","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"row-resize","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"n-resize","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"e-resize","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"s-resize","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"w-resize","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"ne-resize","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"nw-resize","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"se-resize","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"sw-resize","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"ew-resize","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"ns-resize","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"nesw-resize","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"nwse-resize","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"zoom-int","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"zoom-out","hasExtendedUnicodeEscape":false}}]},"jsDoc":{"tags":{"group":["Draw"]}}}],"Anchor":[{"kind":"TypeAliasDeclaration","id":0,"name":"Anchor","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"topleft","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"top","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"topright","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"left","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"center","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"right","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"botleft","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"bot","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"botright","hasExtendedUnicodeEscape":false}}]},"jsDoc":{"tags":{"group":["Draw"]}}}],"LerpValue":[{"kind":"TypeAliasDeclaration","id":0,"name":"LerpValue","type":{"kind":"UnionType","id":0,"types":[{"kind":"NumberKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Color"}]},"jsDoc":{"tags":{"group":["Math"]}}}],"RNGValue":[{"kind":"TypeAliasDeclaration","id":0,"name":"RNGValue","type":{"kind":"UnionType","id":0,"types":[{"kind":"NumberKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Color"}]},"jsDoc":{"tags":{"group":["Math"]}}}],"Comp":[{"kind":"InterfaceDeclaration","id":0,"name":"Comp","members":{"id":[{"kind":"PropertySignature","id":0,"name":"id","type":{"kind":"TypeReference","id":0,"typeName":"Tag"},"questionToken":true,"jsDoc":{"doc":"Component ID (if left out won't be treated as a comp).","tags":{}}}],"require":[{"kind":"PropertySignature","id":0,"name":"require","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Tag"}},"questionToken":true,"jsDoc":{"doc":"What other comps this comp depends on.","tags":{}}}],"add":[{"kind":"PropertySignature","id":0,"name":"add","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}},"questionToken":true,"jsDoc":{"doc":"Event that runs when host game obj is added to scene.","tags":{}}}],"fixedUpdate":[{"kind":"PropertySignature","id":0,"name":"fixedUpdate","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}},"questionToken":true,"jsDoc":{"doc":"Event that runs at a fixed frame rate.","tags":{}}}],"update":[{"kind":"PropertySignature","id":0,"name":"update","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}},"questionToken":true,"jsDoc":{"doc":"Event that runs every frame.","tags":{}}}],"draw":[{"kind":"PropertySignature","id":0,"name":"draw","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}},"questionToken":true,"jsDoc":{"doc":"Event that runs every frame after update.","tags":{}}}],"destroy":[{"kind":"PropertySignature","id":0,"name":"destroy","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}},"questionToken":true,"jsDoc":{"doc":"Event that runs when obj is removed from scene.","tags":{}}}],"inspect":[{"kind":"PropertySignature","id":0,"name":"inspect","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}},"questionToken":true,"jsDoc":{"doc":"Debug info for inspect mode.","tags":{}}}],"drawInspect":[{"kind":"PropertySignature","id":0,"name":"drawInspect","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}},"questionToken":true,"jsDoc":{"doc":"Draw debug info in inspect mode","tags":{"since":["v3000.0"]}}}]},"jsDoc":{"tags":{"group":["Components"]}}}],"GameObjID":[{"kind":"TypeAliasDeclaration","id":0,"name":"GameObjID","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"tags":{"group":["Game Obj"]}}}],"EmptyComp":[{"kind":"TypeAliasDeclaration","id":0,"name":"EmptyComp","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeLiteral","id":0,"members":{"id":[{"kind":"PropertySignature","id":0,"name":"id","type":{"kind":"StringKeyword","id":0}}]}},{"kind":"TypeReference","id":0,"typeName":"Comp"}]},"jsDoc":{"doc":"A component without own properties.","tags":{"group":["Component Types"]}}}],"Collision":[{"kind":"InterfaceDeclaration","id":0,"name":"Collision","members":{"source":[{"kind":"PropertySignature","id":0,"name":"source","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"},"jsDoc":{"doc":"The first game object in the collision.","tags":{}}}],"target":[{"kind":"PropertySignature","id":0,"name":"target","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"},"jsDoc":{"doc":"The second game object in the collision.","tags":{}}}],"normal":[{"kind":"PropertySignature","id":0,"name":"normal","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"The contact normal.","tags":{}}}],"distance":[{"kind":"PropertySignature","id":0,"name":"distance","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"The length of the displacement.","tags":{}}}],"displacement":[{"kind":"PropertySignature","id":0,"name":"displacement","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"The displacement source game object have to make to avoid the collision.","tags":{}}}],"resolved":[{"kind":"PropertySignature","id":0,"name":"resolved","type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If the collision is resolved.","tags":{}}}],"preventResolution":[{"kind":"MethodSignature","id":0,"name":"preventResolution","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Prevent collision resolution if not yet resolved.","tags":{"since":["v3000.0"]}}}],"hasOverlap":[{"kind":"MethodSignature","id":0,"name":"hasOverlap","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If the 2 objects have any overlap, or they're just touching edges.","tags":{"since":["v3000.0"]}}}],"reverse":[{"kind":"MethodSignature","id":0,"name":"reverse","parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Collision"},"jsDoc":{"doc":"Get a new collision with reversed source and target relationship.","tags":{}}}],"isTop":[{"kind":"MethodSignature","id":0,"name":"isTop","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If the collision happened (roughly) on the top side.","tags":{}}}],"isBottom":[{"kind":"MethodSignature","id":0,"name":"isBottom","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If the collision happened (roughly) on the bottom side.","tags":{}}}],"isLeft":[{"kind":"MethodSignature","id":0,"name":"isLeft","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If the collision happened (roughly) on the left side.","tags":{}}}],"isRight":[{"kind":"MethodSignature","id":0,"name":"isRight","parameters":[],"type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If the collision happened (roughly) on the right side.","tags":{}}}]},"jsDoc":{"doc":"Collision resolution data.","tags":{"group":["Math"]}}}],"Shape":[{"kind":"TypeAliasDeclaration","id":0,"name":"Shape","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Rect"},{"kind":"TypeReference","id":0,"typeName":"Line"},{"kind":"TypeReference","id":0,"typeName":"Point"},{"kind":"TypeReference","id":0,"typeName":"Circle"},{"kind":"TypeReference","id":0,"typeName":"Ellipse"},{"kind":"TypeReference","id":0,"typeName":"Polygon"}]},"jsDoc":{"tags":{"group":["Draw"]}}}],"Debug":[{"kind":"InterfaceDeclaration","id":0,"name":"Debug","members":{"paused":[{"kind":"PropertySignature","id":0,"name":"paused","type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Pause the whole game.","tags":{}}}],"inspect":[{"kind":"PropertySignature","id":0,"name":"inspect","type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Draw bounding boxes of all objects with `area()` component, hover to inspect their states.","tags":{}}}],"timeScale":[{"kind":"PropertySignature","id":0,"name":"timeScale","type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Global time scale.","tags":{}}}],"showLog":[{"kind":"PropertySignature","id":0,"name":"showLog","type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"Show the debug log or not.","tags":{}}}],"fps":[{"kind":"MethodSignature","id":0,"name":"fps","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Current frames per second.","tags":{}}}],"numFrames":[{"kind":"MethodSignature","id":0,"name":"numFrames","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Total number of frames elapsed.","tags":{"since":["v3000.0"]}}}],"drawCalls":[{"kind":"MethodSignature","id":0,"name":"drawCalls","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Number of draw calls made last frame.","tags":{}}}],"stepFrame":[{"kind":"MethodSignature","id":0,"name":"stepFrame","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Step to the next frame. Useful with pausing.","tags":{}}}],"clearLog":[{"kind":"MethodSignature","id":0,"name":"clearLog","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Clear the debug log.","tags":{}}}],"log":[{"kind":"MethodSignature","id":0,"name":"log","parameters":[{"kind":"Parameter","id":0,"dotDotDotToken":{"kind":"DotDotDotToken","id":0},"name":"msg","type":{"kind":"AnyKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Log some text to on screen debug log.","tags":{}}}],"error":[{"kind":"MethodSignature","id":0,"name":"error","parameters":[{"kind":"Parameter","id":0,"name":"msg","type":{"kind":"AnyKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Log an error message to on screen debug log.","tags":{}}}],"curRecording":[{"kind":"PropertySignature","id":0,"name":"curRecording","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Recording"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"The recording handle if currently in recording mode.","tags":{"since":["v2000.1"]}}}],"numObjects":[{"kind":"MethodSignature","id":0,"name":"numObjects","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Get total number of objects.","tags":{"since":["v3001.0"]}}}]},"jsDoc":{"tags":{"group":["Debug"]}}}],"Mask":[{"kind":"TypeAliasDeclaration","id":0,"name":"Mask","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"intersect","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"subtract","hasExtendedUnicodeEscape":false}}]}}],"Edge":[{"kind":"TypeAliasDeclaration","id":0,"name":"Edge","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"left","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"right","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"top","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"bottom","hasExtendedUnicodeEscape":false}}]},"jsDoc":{"tags":{"group":["Math"]}}}],"EdgeMask":[{"kind":"EnumDeclaration","id":0,"name":"EdgeMask","members":{"None":[{"kind":"EnumMember","id":0,"name":"None","initializer":{"kind":"FirstLiteralToken","id":0,"text":"0","numericLiteralFlags":0}}],"Left":[{"kind":"EnumMember","id":0,"name":"Left","initializer":{"kind":"FirstLiteralToken","id":0,"text":"1","numericLiteralFlags":0}}],"Top":[{"kind":"EnumMember","id":0,"name":"Top","initializer":{"kind":"FirstLiteralToken","id":0,"text":"2","numericLiteralFlags":0}}],"LeftTop":[{"kind":"EnumMember","id":0,"name":"LeftTop","initializer":{"kind":"FirstLiteralToken","id":0,"text":"3","numericLiteralFlags":0}}],"Right":[{"kind":"EnumMember","id":0,"name":"Right","initializer":{"kind":"FirstLiteralToken","id":0,"text":"4","numericLiteralFlags":0}}],"Horizontal":[{"kind":"EnumMember","id":0,"name":"Horizontal","initializer":{"kind":"FirstLiteralToken","id":0,"text":"5","numericLiteralFlags":0}}],"RightTop":[{"kind":"EnumMember","id":0,"name":"RightTop","initializer":{"kind":"FirstLiteralToken","id":0,"text":"6","numericLiteralFlags":0}}],"HorizontalTop":[{"kind":"EnumMember","id":0,"name":"HorizontalTop","initializer":{"kind":"FirstLiteralToken","id":0,"text":"7","numericLiteralFlags":0}}],"Bottom":[{"kind":"EnumMember","id":0,"name":"Bottom","initializer":{"kind":"FirstLiteralToken","id":0,"text":"8","numericLiteralFlags":0}}],"LeftBottom":[{"kind":"EnumMember","id":0,"name":"LeftBottom","initializer":{"kind":"FirstLiteralToken","id":0,"text":"9","numericLiteralFlags":0}}],"Vertical":[{"kind":"EnumMember","id":0,"name":"Vertical","initializer":{"kind":"FirstLiteralToken","id":0,"text":"10","numericLiteralFlags":0}}],"LeftVertical":[{"kind":"EnumMember","id":0,"name":"LeftVertical","initializer":{"kind":"FirstLiteralToken","id":0,"text":"11","numericLiteralFlags":0}}],"RightBottom":[{"kind":"EnumMember","id":0,"name":"RightBottom","initializer":{"kind":"FirstLiteralToken","id":0,"text":"12","numericLiteralFlags":0}}],"HorizontalBottom":[{"kind":"EnumMember","id":0,"name":"HorizontalBottom","initializer":{"kind":"FirstLiteralToken","id":0,"text":"13","numericLiteralFlags":0}}],"RightVertical":[{"kind":"EnumMember","id":0,"name":"RightVertical","initializer":{"kind":"FirstLiteralToken","id":0,"text":"14","numericLiteralFlags":0}}],"All":[{"kind":"EnumMember","id":0,"name":"All","initializer":{"kind":"FirstLiteralToken","id":0,"text":"15","numericLiteralFlags":0}}]},"jsDoc":{"tags":{"group":["Math"]}}}],"LevelComp":[{"kind":"InterfaceDeclaration","id":0,"name":"LevelComp","heritageClauses":[{"kind":"HeritageClause","id":0,"token":96,"types":[{"kind":"ExpressionWithTypeArguments","id":0,"expression":{"kind":"Identifier","id":0,"escapedText":"Comp"}}]}],"members":{"tileWidth":[{"kind":"MethodSignature","id":0,"name":"tileWidth","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"tileHeight":[{"kind":"MethodSignature","id":0,"name":"tileHeight","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"numRows":[{"kind":"MethodSignature","id":0,"name":"numRows","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"numColumns":[{"kind":"MethodSignature","id":0,"name":"numColumns","parameters":[],"type":{"kind":"NumberKeyword","id":0}}],"spawn":[{"kind":"MethodSignature","id":0,"name":"spawn","parameters":[{"kind":"Parameter","id":0,"name":"sym","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"GameObj"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Spawn a tile from a symbol defined previously.","tags":{}}},{"kind":"MethodSignature","id":0,"name":"spawn","parameters":[{"kind":"Parameter","id":0,"name":"sym","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"GameObj"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}},{"kind":"MethodSignature","id":0,"name":"spawn","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"CompList","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]}},{"kind":"Parameter","id":0,"name":"p","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Spawn a tile from a component list.","tags":{"returns":["The spawned game object, or null if the obj hasn't components."]}}},{"kind":"MethodSignature","id":0,"name":"spawn","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T"}],"parameters":[{"kind":"Parameter","id":0,"name":"sym","type":{"kind":"TypeReference","id":0,"typeName":"CompList","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]}},{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"levelWidth":[{"kind":"MethodSignature","id":0,"name":"levelWidth","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Total width of level in pixels.","tags":{}}}],"levelHeight":[{"kind":"MethodSignature","id":0,"name":"levelHeight","parameters":[],"type":{"kind":"NumberKeyword","id":0},"jsDoc":{"doc":"Total height of level in pixels.","tags":{}}}],"getAt":[{"kind":"MethodSignature","id":0,"name":"getAt","parameters":[{"kind":"Parameter","id":0,"name":"tilePos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"GameObj"}},"jsDoc":{"doc":"Get all game objects that's currently inside a given tile.","tags":{}}}],"raycast":[{"kind":"MethodSignature","id":0,"name":"raycast","parameters":[{"kind":"Parameter","id":0,"name":"origin","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"direction","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"RaycastResult"},"jsDoc":{"doc":"Raycast all game objects on the given path.","tags":{}}}],"tile2Pos":[{"kind":"MethodSignature","id":0,"name":"tile2Pos","parameters":[{"kind":"Parameter","id":0,"name":"tilePos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Convert tile position to pixel position.","tags":{}}},{"kind":"MethodSignature","id":0,"name":"tile2Pos","parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"pos2Tile":[{"kind":"MethodSignature","id":0,"name":"pos2Tile","parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"},"jsDoc":{"doc":"Convert pixel position to tile position.","tags":{}}},{"kind":"MethodSignature","id":0,"name":"pos2Tile","parameters":[{"kind":"Parameter","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}},{"kind":"Parameter","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"getTilePath":[{"kind":"MethodSignature","id":0,"name":"getTilePath","parameters":[{"kind":"Parameter","id":0,"name":"from","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"to","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"opts","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"PathFindOpt"}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Find the path to navigate from one tile to another tile.","tags":{"returns":["A list of traverse points in tile positions."]}}}],"getPath":[{"kind":"MethodSignature","id":0,"name":"getPath","parameters":[{"kind":"Parameter","id":0,"name":"from","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"to","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"opts","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"PathFindOpt"}}],"type":{"kind":"UnionType","id":0,"types":[{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]},"jsDoc":{"doc":"Find the path to navigate from one tile to another tile.","tags":{"returns":["A list of traverse points in pixel positions."]}}}],"getSpatialMap":[{"kind":"MethodSignature","id":0,"name":"getSpatialMap","parameters":[],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}}}],"removeFromSpatialMap":[{"kind":"MethodSignature","id":0,"name":"removeFromSpatialMap","parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0}}],"insertIntoSpatialMap":[{"kind":"MethodSignature","id":0,"name":"insertIntoSpatialMap","parameters":[{"kind":"Parameter","id":0,"name":"obj","type":{"kind":"TypeReference","id":0,"typeName":"GameObj"}}],"type":{"kind":"VoidKeyword","id":0}}],"onSpatialMapChanged":[{"kind":"MethodSignature","id":0,"name":"onSpatialMapChanged","parameters":[{"kind":"Parameter","id":0,"name":"cb","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}],"onNavigationMapInvalid":[{"kind":"MethodSignature","id":0,"name":"onNavigationMapInvalid","parameters":[{"kind":"Parameter","id":0,"name":"cb","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}],"invalidateNavigationMap":[{"kind":"MethodSignature","id":0,"name":"invalidateNavigationMap","parameters":[],"type":{"kind":"VoidKeyword","id":0}}],"onNavigationMapChanged":[{"kind":"MethodSignature","id":0,"name":"onNavigationMapChanged","parameters":[{"kind":"Parameter","id":0,"name":"cb","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}]},"jsDoc":{"doc":"A level component.","tags":{"group":["Component Types"]}}}],"PathFindOpt":[{"kind":"TypeAliasDeclaration","id":0,"name":"PathFindOpt","type":{"kind":"TypeLiteral","id":0,"members":{"allowDiagonals":[{"kind":"PropertySignature","id":0,"name":"allowDiagonals","type":{"kind":"BooleanKeyword","id":0},"questionToken":true}]}},"jsDoc":{"tags":{"group":["Options"]}}}],"EaseFuncs":[{"kind":"TypeAliasDeclaration","id":0,"name":"EaseFuncs","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"linear","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInSine","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeOutSine","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInOutSine","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInQuad","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeOutQuad","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInOutQuad","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInCubic","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeOutCubic","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInOutCubic","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInQuart","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeOutQuart","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInOutQuart","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInQuint","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeOutQuint","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInOutQuint","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInExpo","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeOutExpo","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInOutExpo","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInCirc","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeOutCirc","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInOutCirc","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInBack","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeOutBack","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInOutBack","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInElastic","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeOutElastic","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInOutElastic","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInBounce","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeOutBounce","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"easeInOutBounce","hasExtendedUnicodeEscape":false}}]},"jsDoc":{"doc":"The list of easing functions available.","tags":{"group":["Math"]}}}],"EaseFunc":[{"kind":"TypeAliasDeclaration","id":0,"name":"EaseFunc","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"t","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"NumberKeyword","id":0}},"jsDoc":{"doc":"A function that takes a time value and returns a new time value.","tags":{"group":["Math"]}}}],"TimerController":[{"kind":"TypeAliasDeclaration","id":0,"name":"TimerController","type":{"kind":"TypeLiteral","id":0,"members":{"paused":[{"kind":"PropertySignature","id":0,"name":"paused","type":{"kind":"BooleanKeyword","id":0},"jsDoc":{"doc":"If the event handler is paused.","tags":{}}}],"cancel":[{"kind":"MethodSignature","id":0,"name":"cancel","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Cancel the event handler.","tags":{}}}],"onEnd":[{"kind":"MethodSignature","id":0,"name":"onEnd","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Register an event when finished.","tags":{}}}],"then":[{"kind":"MethodSignature","id":0,"name":"then","parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"TimerController"}}]}},"jsDoc":{"tags":{"group":["Timer"]}}}],"TweenController":[{"kind":"TypeAliasDeclaration","id":0,"name":"TweenController","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"TimerController"},{"kind":"TypeLiteral","id":0,"members":{"finish":[{"kind":"MethodSignature","id":0,"name":"finish","parameters":[],"type":{"kind":"VoidKeyword","id":0},"jsDoc":{"doc":"Finish the tween now and cancel.","tags":{}}}]}}]},"jsDoc":{"doc":"Event controller for tween.","tags":{"group":["Timer"]}}}],"SpriteCurAnim":[{"kind":"InterfaceDeclaration","id":0,"name":"SpriteCurAnim","members":{"timer":[{"kind":"PropertySignature","id":0,"name":"timer","type":{"kind":"NumberKeyword","id":0}}],"loop":[{"kind":"PropertySignature","id":0,"name":"loop","type":{"kind":"BooleanKeyword","id":0}}],"speed":[{"kind":"PropertySignature","id":0,"name":"speed","type":{"kind":"NumberKeyword","id":0}}],"pingpong":[{"kind":"PropertySignature","id":0,"name":"pingpong","type":{"kind":"BooleanKeyword","id":0}}],"onEnd":[{"kind":"PropertySignature","id":0,"name":"onEnd","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}]}}],"ButtonBinding":[{"kind":"TypeAliasDeclaration","id":0,"name":"ButtonBinding","type":{"kind":"TypeLiteral","id":0,"members":{"keyboard":[{"kind":"PropertySignature","id":0,"name":"keyboard","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]},"questionToken":true}],"keyboardCode":[{"kind":"PropertySignature","id":0,"name":"keyboardCode","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]},"questionToken":true}],"gamepad":[{"kind":"PropertySignature","id":0,"name":"gamepad","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]},"questionToken":true}],"mouse":[{"kind":"PropertySignature","id":0,"name":"mouse","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}]},"questionToken":true}]}},"jsDoc":{"doc":"A button binding.","tags":{"group":["Button Bindings"]}}}],"ButtonsDef":[{"kind":"TypeAliasDeclaration","id":0,"name":"ButtonsDef","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"ButtonBinding"}]},"jsDoc":{"doc":"A buttons definition for an action (jump, walk-left, run).","tags":{"group":["Button Bindings"]}}}],"ButtonBindingDevice":[{"kind":"TypeAliasDeclaration","id":0,"name":"ButtonBindingDevice","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"keyboard","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"gamepad","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"mouse","hasExtendedUnicodeEscape":false}}]},"jsDoc":{"doc":"A button binding device","tags":{"group":["Button Bindings"]}}}],"ButtonState":[{"kind":"ClassDeclaration","id":0,"name":"ButtonState","typeParameters":[{"kind":"TypeParameter","id":0,"name":"T","default":{"kind":"StringKeyword","id":0}}],"members":{"pressed":[{"kind":"PropertyDeclaration","id":0,"name":"pressed","type":{"kind":"TypeReference","id":0,"typeName":"Set","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]}}],"pressedRepeat":[{"kind":"PropertyDeclaration","id":0,"name":"pressedRepeat","type":{"kind":"TypeReference","id":0,"typeName":"Set","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]}}],"released":[{"kind":"PropertyDeclaration","id":0,"name":"released","type":{"kind":"TypeReference","id":0,"typeName":"Set","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]}}],"down":[{"kind":"PropertyDeclaration","id":0,"name":"down","type":{"kind":"TypeReference","id":0,"typeName":"Set","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"T"}]}}],"update":[{"kind":"MethodDeclaration","id":0,"name":"update","parameters":[],"type":{"kind":"VoidKeyword","id":0}}],"press":[{"kind":"MethodDeclaration","id":0,"name":"press","parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"T"}}],"type":{"kind":"VoidKeyword","id":0}}],"pressRepeat":[{"kind":"MethodDeclaration","id":0,"name":"pressRepeat","parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"T"}}],"type":{"kind":"VoidKeyword","id":0}}],"release":[{"kind":"MethodDeclaration","id":0,"name":"release","parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"T"}}],"type":{"kind":"VoidKeyword","id":0}}]}}],"GamepadState":[{"kind":"ClassDeclaration","id":0,"name":"GamepadState","members":{"buttonState":[{"kind":"PropertyDeclaration","id":0,"name":"buttonState","type":{"kind":"TypeReference","id":0,"typeName":"ButtonState","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}]}}],"stickState":[{"kind":"PropertyDeclaration","id":0,"name":"stickState","type":{"kind":"TypeReference","id":0,"typeName":"Map","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"GamepadStick"},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]}}]}}],"FPSCounter":[{"kind":"ClassDeclaration","id":0,"name":"FPSCounter","members":{"dts":[{"kind":"PropertyDeclaration","id":0,"name":"dts"}],"timer":[{"kind":"PropertyDeclaration","id":0,"name":"timer"}],"fps":[{"kind":"PropertyDeclaration","id":0,"name":"fps","type":{"kind":"NumberKeyword","id":0}}],"tick":[{"kind":"MethodDeclaration","id":0,"name":"tick","parameters":[{"kind":"Parameter","id":0,"name":"dt","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}]}}],"App":[{"kind":"TypeAliasDeclaration","id":0,"name":"App","type":{"kind":"TypeReference","id":0,"typeName":"ReturnType","typeArguments":[{"kind":"TypeQuery","id":0,"exprName":{"kind":"Identifier","id":0,"escapedText":"initApp"}}]}}],"initAppGfx":[{"kind":"FunctionDeclaration","id":0,"declarationList":{"kind":"VariableDeclarationList","id":0,"declarations":[{"kind":"VariableDeclaration","id":0,"name":"initAppGfx","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"gopt","type":{"kind":"TypeReference","id":0,"typeName":"KAPLAYOpt"}},{"kind":"Parameter","id":0,"name":"ggl","type":{"kind":"TypeReference","id":0,"typeName":"GfxCtx"}}],"type":{"kind":"TypeLiteral","id":0,"members":{"lastDrawCalls":[{"kind":"PropertySignature","id":0,"name":"lastDrawCalls","type":{"kind":"NumberKeyword","id":0}}],"ggl":[{"kind":"PropertySignature","id":0,"name":"ggl","type":{"kind":"TypeLiteral","id":0,"members":{"gl":[{"kind":"PropertySignature","id":0,"name":"gl","type":{"kind":"TypeReference","id":0,"typeName":"WebGLRenderingContext"}}],"opts":[{"kind":"PropertySignature","id":0,"name":"opts","type":{"kind":"TypeLiteral","id":0,"members":{"texFilter":[{"kind":"PropertySignature","id":0,"name":"texFilter","type":{"kind":"TypeReference","id":0,"typeName":"TexFilter"},"questionToken":true}]}}}],"onDestroy":[{"kind":"PropertySignature","id":0,"name":"onDestroy","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"UnknownKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0}}}],"destroy":[{"kind":"PropertySignature","id":0,"name":"destroy","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushTexture2D":[{"kind":"PropertySignature","id":0,"name":"pushTexture2D","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLTexture"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popTexture2D":[{"kind":"PropertySignature","id":0,"name":"popTexture2D","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushArrayBuffer":[{"kind":"PropertySignature","id":0,"name":"pushArrayBuffer","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLBuffer"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popArrayBuffer":[{"kind":"PropertySignature","id":0,"name":"popArrayBuffer","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushElementArrayBuffer":[{"kind":"PropertySignature","id":0,"name":"pushElementArrayBuffer","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLBuffer"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popElementArrayBuffer":[{"kind":"PropertySignature","id":0,"name":"popElementArrayBuffer","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushFramebuffer":[{"kind":"PropertySignature","id":0,"name":"pushFramebuffer","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLFramebuffer"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popFramebuffer":[{"kind":"PropertySignature","id":0,"name":"popFramebuffer","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushRenderbuffer":[{"kind":"PropertySignature","id":0,"name":"pushRenderbuffer","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLRenderbuffer"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popRenderbuffer":[{"kind":"PropertySignature","id":0,"name":"popRenderbuffer","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushViewport":[{"kind":"PropertySignature","id":0,"name":"pushViewport","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeLiteral","id":0,"members":{"x":[{"kind":"PropertySignature","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}}],"y":[{"kind":"PropertySignature","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"w":[{"kind":"PropertySignature","id":0,"name":"w","type":{"kind":"NumberKeyword","id":0}}],"h":[{"kind":"PropertySignature","id":0,"name":"h","type":{"kind":"NumberKeyword","id":0}}]}}}],"type":{"kind":"VoidKeyword","id":0}}}],"popViewport":[{"kind":"PropertySignature","id":0,"name":"popViewport","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushProgram":[{"kind":"PropertySignature","id":0,"name":"pushProgram","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLProgram"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popProgram":[{"kind":"PropertySignature","id":0,"name":"popProgram","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"setVertexFormat":[{"kind":"PropertySignature","id":0,"name":"setVertexFormat","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"fmt","type":{"kind":"TypeReference","id":0,"typeName":"VertexFormat"}}],"type":{"kind":"VoidKeyword","id":0}}}]}}}],"defShader":[{"kind":"PropertySignature","id":0,"name":"defShader","type":{"kind":"TypeReference","id":0,"typeName":"Shader"}}],"defTex":[{"kind":"PropertySignature","id":0,"name":"defTex","type":{"kind":"TypeReference","id":0,"typeName":"Texture"}}],"frameBuffer":[{"kind":"PropertySignature","id":0,"name":"frameBuffer","type":{"kind":"TypeReference","id":0,"typeName":"FrameBuffer"}}],"postShader":[{"kind":"PropertySignature","id":0,"name":"postShader","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"postShaderUniform":[{"kind":"PropertySignature","id":0,"name":"postShaderUniform","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Uniform"},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Uniform"}}},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"renderer":[{"kind":"PropertySignature","id":0,"name":"renderer","type":{"kind":"TypeReference","id":0,"typeName":"BatchRenderer"}}],"transform":[{"kind":"PropertySignature","id":0,"name":"transform","type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"transformStack":[{"kind":"PropertySignature","id":0,"name":"transformStack","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}}],"transformStackIndex":[{"kind":"PropertySignature","id":0,"name":"transformStackIndex","type":{"kind":"NumberKeyword","id":0}}],"bgTex":[{"kind":"PropertySignature","id":0,"name":"bgTex","type":{"kind":"TypeReference","id":0,"typeName":"Texture"}}],"bgColor":[{"kind":"PropertySignature","id":0,"name":"bgColor","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Color"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"bgAlpha":[{"kind":"PropertySignature","id":0,"name":"bgAlpha","type":{"kind":"NumberKeyword","id":0}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0}}],"viewport":[{"kind":"PropertySignature","id":0,"name":"viewport","type":{"kind":"TypeLiteral","id":0,"members":{"x":[{"kind":"PropertySignature","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}}],"y":[{"kind":"PropertySignature","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0}}]}}}],"fixed":[{"kind":"PropertySignature","id":0,"name":"fixed","type":{"kind":"BooleanKeyword","id":0}}]}}}}]},"name":"initAppGfx","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"gopt","type":{"kind":"TypeReference","id":0,"typeName":"KAPLAYOpt"}},{"kind":"Parameter","id":0,"name":"ggl","type":{"kind":"TypeReference","id":0,"typeName":"GfxCtx"}}],"type":{"kind":"TypeLiteral","id":0,"members":{"lastDrawCalls":[{"kind":"PropertySignature","id":0,"name":"lastDrawCalls","type":{"kind":"NumberKeyword","id":0}}],"ggl":[{"kind":"PropertySignature","id":0,"name":"ggl","type":{"kind":"TypeLiteral","id":0,"members":{"gl":[{"kind":"PropertySignature","id":0,"name":"gl","type":{"kind":"TypeReference","id":0,"typeName":"WebGLRenderingContext"}}],"opts":[{"kind":"PropertySignature","id":0,"name":"opts","type":{"kind":"TypeLiteral","id":0,"members":{"texFilter":[{"kind":"PropertySignature","id":0,"name":"texFilter","type":{"kind":"TypeReference","id":0,"typeName":"TexFilter"},"questionToken":true}]}}}],"onDestroy":[{"kind":"PropertySignature","id":0,"name":"onDestroy","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"UnknownKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0}}}],"destroy":[{"kind":"PropertySignature","id":0,"name":"destroy","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushTexture2D":[{"kind":"PropertySignature","id":0,"name":"pushTexture2D","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLTexture"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popTexture2D":[{"kind":"PropertySignature","id":0,"name":"popTexture2D","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushArrayBuffer":[{"kind":"PropertySignature","id":0,"name":"pushArrayBuffer","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLBuffer"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popArrayBuffer":[{"kind":"PropertySignature","id":0,"name":"popArrayBuffer","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushElementArrayBuffer":[{"kind":"PropertySignature","id":0,"name":"pushElementArrayBuffer","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLBuffer"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popElementArrayBuffer":[{"kind":"PropertySignature","id":0,"name":"popElementArrayBuffer","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushFramebuffer":[{"kind":"PropertySignature","id":0,"name":"pushFramebuffer","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLFramebuffer"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popFramebuffer":[{"kind":"PropertySignature","id":0,"name":"popFramebuffer","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushRenderbuffer":[{"kind":"PropertySignature","id":0,"name":"pushRenderbuffer","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLRenderbuffer"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popRenderbuffer":[{"kind":"PropertySignature","id":0,"name":"popRenderbuffer","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushViewport":[{"kind":"PropertySignature","id":0,"name":"pushViewport","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeLiteral","id":0,"members":{"x":[{"kind":"PropertySignature","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}}],"y":[{"kind":"PropertySignature","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"w":[{"kind":"PropertySignature","id":0,"name":"w","type":{"kind":"NumberKeyword","id":0}}],"h":[{"kind":"PropertySignature","id":0,"name":"h","type":{"kind":"NumberKeyword","id":0}}]}}}],"type":{"kind":"VoidKeyword","id":0}}}],"popViewport":[{"kind":"PropertySignature","id":0,"name":"popViewport","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"pushProgram":[{"kind":"PropertySignature","id":0,"name":"pushProgram","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"item","type":{"kind":"TypeReference","id":0,"typeName":"WebGLProgram"}}],"type":{"kind":"VoidKeyword","id":0}}}],"popProgram":[{"kind":"PropertySignature","id":0,"name":"popProgram","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"setVertexFormat":[{"kind":"PropertySignature","id":0,"name":"setVertexFormat","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"fmt","type":{"kind":"TypeReference","id":0,"typeName":"VertexFormat"}}],"type":{"kind":"VoidKeyword","id":0}}}]}}}],"defShader":[{"kind":"PropertySignature","id":0,"name":"defShader","type":{"kind":"TypeReference","id":0,"typeName":"Shader"}}],"defTex":[{"kind":"PropertySignature","id":0,"name":"defTex","type":{"kind":"TypeReference","id":0,"typeName":"Texture"}}],"frameBuffer":[{"kind":"PropertySignature","id":0,"name":"frameBuffer","type":{"kind":"TypeReference","id":0,"typeName":"FrameBuffer"}}],"postShader":[{"kind":"PropertySignature","id":0,"name":"postShader","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"postShaderUniform":[{"kind":"PropertySignature","id":0,"name":"postShaderUniform","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Uniform"},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Uniform"}}},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"renderer":[{"kind":"PropertySignature","id":0,"name":"renderer","type":{"kind":"TypeReference","id":0,"typeName":"BatchRenderer"}}],"transform":[{"kind":"PropertySignature","id":0,"name":"transform","type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}],"transformStack":[{"kind":"PropertySignature","id":0,"name":"transformStack","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}}],"transformStackIndex":[{"kind":"PropertySignature","id":0,"name":"transformStackIndex","type":{"kind":"NumberKeyword","id":0}}],"bgTex":[{"kind":"PropertySignature","id":0,"name":"bgTex","type":{"kind":"TypeReference","id":0,"typeName":"Texture"}}],"bgColor":[{"kind":"PropertySignature","id":0,"name":"bgColor","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Color"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"bgAlpha":[{"kind":"PropertySignature","id":0,"name":"bgAlpha","type":{"kind":"NumberKeyword","id":0}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0}}],"viewport":[{"kind":"PropertySignature","id":0,"name":"viewport","type":{"kind":"TypeLiteral","id":0,"members":{"x":[{"kind":"PropertySignature","id":0,"name":"x","type":{"kind":"NumberKeyword","id":0}}],"y":[{"kind":"PropertySignature","id":0,"name":"y","type":{"kind":"NumberKeyword","id":0}}],"width":[{"kind":"PropertySignature","id":0,"name":"width","type":{"kind":"NumberKeyword","id":0}}],"height":[{"kind":"PropertySignature","id":0,"name":"height","type":{"kind":"NumberKeyword","id":0}}]}}}],"fixed":[{"kind":"PropertySignature","id":0,"name":"fixed","type":{"kind":"BooleanKeyword","id":0}}]}}}}],"initAssets":[{"kind":"FunctionDeclaration","id":0,"declarationList":{"kind":"VariableDeclarationList","id":0,"declarations":[{"kind":"VariableDeclaration","id":0,"name":"initAssets","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"ggl","type":{"kind":"TypeReference","id":0,"typeName":"GfxCtx"}},{"kind":"Parameter","id":0,"name":"spriteAtlasPadding","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeLiteral","id":0,"members":{"urlPrefix":[{"kind":"PropertySignature","id":0,"name":"urlPrefix","type":{"kind":"StringKeyword","id":0}}],"sprites":[{"kind":"PropertySignature","id":0,"name":"sprites","type":{"kind":"TypeReference","id":0,"typeName":"AssetBucket","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SpriteData"}]}}],"fonts":[{"kind":"PropertySignature","id":0,"name":"fonts","type":{"kind":"TypeReference","id":0,"typeName":"AssetBucket","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"FontData"}]}}],"bitmapFonts":[{"kind":"PropertySignature","id":0,"name":"bitmapFonts","type":{"kind":"TypeReference","id":0,"typeName":"AssetBucket","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"GfxFont"}]}}],"sounds":[{"kind":"PropertySignature","id":0,"name":"sounds","type":{"kind":"TypeReference","id":0,"typeName":"AssetBucket","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SoundData"}]}}],"shaders":[{"kind":"PropertySignature","id":0,"name":"shaders","type":{"kind":"TypeReference","id":0,"typeName":"AssetBucket","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"Shader"}]}}],"custom":[{"kind":"PropertySignature","id":0,"name":"custom","type":{"kind":"TypeReference","id":0,"typeName":"AssetBucket","typeArguments":[{"kind":"AnyKeyword","id":0}]}}],"music":[{"kind":"PropertySignature","id":0,"name":"music","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"StringKeyword","id":0}]}}],"packer":[{"kind":"PropertySignature","id":0,"name":"packer","type":{"kind":"TypeReference","id":0,"typeName":"TexPacker"}}],"loaded":[{"kind":"PropertySignature","id":0,"name":"loaded","type":{"kind":"BooleanKeyword","id":0}}]}}}}]},"name":"initAssets","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"ggl","type":{"kind":"TypeReference","id":0,"typeName":"GfxCtx"}},{"kind":"Parameter","id":0,"name":"spriteAtlasPadding","type":{"kind":"NumberKeyword","id":0}}],"type":{"kind":"TypeLiteral","id":0,"members":{"urlPrefix":[{"kind":"PropertySignature","id":0,"name":"urlPrefix","type":{"kind":"StringKeyword","id":0}}],"sprites":[{"kind":"PropertySignature","id":0,"name":"sprites","type":{"kind":"TypeReference","id":0,"typeName":"AssetBucket","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SpriteData"}]}}],"fonts":[{"kind":"PropertySignature","id":0,"name":"fonts","type":{"kind":"TypeReference","id":0,"typeName":"AssetBucket","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"FontData"}]}}],"bitmapFonts":[{"kind":"PropertySignature","id":0,"name":"bitmapFonts","type":{"kind":"TypeReference","id":0,"typeName":"AssetBucket","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"GfxFont"}]}}],"sounds":[{"kind":"PropertySignature","id":0,"name":"sounds","type":{"kind":"TypeReference","id":0,"typeName":"AssetBucket","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SoundData"}]}}],"shaders":[{"kind":"PropertySignature","id":0,"name":"shaders","type":{"kind":"TypeReference","id":0,"typeName":"AssetBucket","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"Shader"}]}}],"custom":[{"kind":"PropertySignature","id":0,"name":"custom","type":{"kind":"TypeReference","id":0,"typeName":"AssetBucket","typeArguments":[{"kind":"AnyKeyword","id":0}]}}],"music":[{"kind":"PropertySignature","id":0,"name":"music","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"StringKeyword","id":0}]}}],"packer":[{"kind":"PropertySignature","id":0,"name":"packer","type":{"kind":"TypeReference","id":0,"typeName":"TexPacker"}}],"loaded":[{"kind":"PropertySignature","id":0,"name":"loaded","type":{"kind":"BooleanKeyword","id":0}}]}}}}],"initAudio":[{"kind":"FunctionDeclaration","id":0,"declarationList":{"kind":"VariableDeclarationList","id":0,"declarations":[{"kind":"VariableDeclaration","id":0,"name":"initAudio","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeLiteral","id":0,"members":{"ctx":[{"kind":"PropertySignature","id":0,"name":"ctx","type":{"kind":"TypeReference","id":0,"typeName":"AudioContext"}}],"masterNode":[{"kind":"PropertySignature","id":0,"name":"masterNode","type":{"kind":"TypeReference","id":0,"typeName":"GainNode"}}],"burpSnd":[{"kind":"PropertySignature","id":0,"name":"burpSnd","type":{"kind":"TypeReference","id":0,"typeName":"SoundData"}}]}}}}]},"name":"initAudio","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeLiteral","id":0,"members":{"ctx":[{"kind":"PropertySignature","id":0,"name":"ctx","type":{"kind":"TypeReference","id":0,"typeName":"AudioContext"}}],"masterNode":[{"kind":"PropertySignature","id":0,"name":"masterNode","type":{"kind":"TypeReference","id":0,"typeName":"GainNode"}}],"burpSnd":[{"kind":"PropertySignature","id":0,"name":"burpSnd","type":{"kind":"TypeReference","id":0,"typeName":"SoundData"}}]}}}}],"initGame":[{"kind":"FunctionDeclaration","id":0,"declarationList":{"kind":"VariableDeclarationList","id":0,"declarations":[{"kind":"VariableDeclaration","id":0,"name":"initGame","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeLiteral","id":0,"members":{"events":[{"kind":"PropertySignature","id":0,"name":"events","type":{"kind":"TypeReference","id":0,"typeName":"KEventHandler","typeArguments":[{"kind":"TypeLiteral","id":0,"members":{"mouseMove":[{"kind":"PropertySignature","id":0,"name":"mouseMove","type":{"kind":"TupleType","id":0,"elements":[]}}],"mouseDown":[{"kind":"PropertySignature","id":0,"name":"mouseDown","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"}]}}],"mousePress":[{"kind":"PropertySignature","id":0,"name":"mousePress","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"}]}}],"mouseRelease":[{"kind":"PropertySignature","id":0,"name":"mouseRelease","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"}]}}],"charInput":[{"kind":"PropertySignature","id":0,"name":"charInput","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"keyPress":[{"kind":"PropertySignature","id":0,"name":"keyPress","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"keyDown":[{"kind":"PropertySignature","id":0,"name":"keyDown","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"keyPressRepeat":[{"kind":"PropertySignature","id":0,"name":"keyPressRepeat","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"keyRelease":[{"kind":"PropertySignature","id":0,"name":"keyRelease","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"touchStart":[{"kind":"PropertySignature","id":0,"name":"touchStart","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Touch"}]}}],"touchMove":[{"kind":"PropertySignature","id":0,"name":"touchMove","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Touch"}]}}],"touchEnd":[{"kind":"PropertySignature","id":0,"name":"touchEnd","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Touch"}]}}],"gamepadButtonDown":[{"kind":"PropertySignature","id":0,"name":"gamepadButtonDown","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"gamepadButtonPress":[{"kind":"PropertySignature","id":0,"name":"gamepadButtonPress","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"gamepadButtonRelease":[{"kind":"PropertySignature","id":0,"name":"gamepadButtonRelease","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"gamepadStick":[{"kind":"PropertySignature","id":0,"name":"gamepadStick","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]}}],"gamepadConnect":[{"kind":"PropertySignature","id":0,"name":"gamepadConnect","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Gamepad"}]}}],"gamepadDisconnect":[{"kind":"PropertySignature","id":0,"name":"gamepadDisconnect","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Gamepad"}]}}],"scroll":[{"kind":"PropertySignature","id":0,"name":"scroll","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"}]}}],"add":[{"kind":"PropertySignature","id":0,"name":"add","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"GameObj"}]}}],"destroy":[{"kind":"PropertySignature","id":0,"name":"destroy","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"GameObj"}]}}],"use":[{"kind":"PropertySignature","id":0,"name":"use","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"GameObj"},{"kind":"StringKeyword","id":0}]}}],"unuse":[{"kind":"PropertySignature","id":0,"name":"unuse","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"GameObj"},{"kind":"StringKeyword","id":0}]}}],"tag":[{"kind":"PropertySignature","id":0,"name":"tag","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"GameObj"},{"kind":"StringKeyword","id":0}]}}],"untag":[{"kind":"PropertySignature","id":0,"name":"untag","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"GameObj"},{"kind":"StringKeyword","id":0}]}}],"load":[{"kind":"PropertySignature","id":0,"name":"load","type":{"kind":"TupleType","id":0,"elements":[]}}],"loadError":[{"kind":"PropertySignature","id":0,"name":"loadError","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"AnyKeyword","id":0}]}]}}],"loading":[{"kind":"PropertySignature","id":0,"name":"loading","type":{"kind":"TupleType","id":0,"elements":[{"kind":"NumberKeyword","id":0}]}}],"error":[{"kind":"PropertySignature","id":0,"name":"error","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Error"}]}}],"input":[{"kind":"PropertySignature","id":0,"name":"input","type":{"kind":"TupleType","id":0,"elements":[]}}],"frameEnd":[{"kind":"PropertySignature","id":0,"name":"frameEnd","type":{"kind":"TupleType","id":0,"elements":[]}}],"resize":[{"kind":"PropertySignature","id":0,"name":"resize","type":{"kind":"TupleType","id":0,"elements":[]}}],"sceneLeave":[{"kind":"PropertySignature","id":0,"name":"sceneLeave","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"sceneEnter":[{"kind":"PropertySignature","id":0,"name":"sceneEnter","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}]}}]}}],"objEvents":[{"kind":"PropertySignature","id":0,"name":"objEvents","type":{"kind":"TypeReference","id":0,"typeName":"KEventHandler","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"GameObjEvents"}]}}],"root":[{"kind":"PropertySignature","id":0,"name":"root","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"TimerComp"}]}}],"gravity":[{"kind":"PropertySignature","id":0,"name":"gravity","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"scenes":[{"kind":"PropertySignature","id":0,"name":"scenes","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SceneName"},{"kind":"TypeReference","id":0,"typeName":"SceneDef"}]}}],"currentScene":[{"kind":"PropertySignature","id":0,"name":"currentScene","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"SceneName"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"layers":[{"kind":"PropertySignature","id":0,"name":"layers","type":{"kind":"UnionType","id":0,"types":[{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"defaultLayerIndex":[{"kind":"PropertySignature","id":0,"name":"defaultLayerIndex","type":{"kind":"NumberKeyword","id":0}}],"logs":[{"kind":"PropertySignature","id":0,"name":"logs","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeLiteral","id":0,"members":{"msg":[{"kind":"PropertySignature","id":0,"name":"msg","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"TypeLiteral","id":0,"members":{}}]}}],"time":[{"kind":"PropertySignature","id":0,"name":"time","type":{"kind":"NumberKeyword","id":0}}]}}}}],"cam":[{"kind":"PropertySignature","id":0,"name":"cam","type":{"kind":"TypeLiteral","id":0,"members":{"pos":[{"kind":"PropertySignature","id":0,"name":"pos","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"scale":[{"kind":"PropertySignature","id":0,"name":"scale","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"angle":[{"kind":"PropertySignature","id":0,"name":"angle","type":{"kind":"NumberKeyword","id":0}}],"shake":[{"kind":"PropertySignature","id":0,"name":"shake","type":{"kind":"NumberKeyword","id":0}}],"transform":[{"kind":"PropertySignature","id":0,"name":"transform","type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}]}}}]}}}}]},"name":"initGame","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeLiteral","id":0,"members":{"events":[{"kind":"PropertySignature","id":0,"name":"events","type":{"kind":"TypeReference","id":0,"typeName":"KEventHandler","typeArguments":[{"kind":"TypeLiteral","id":0,"members":{"mouseMove":[{"kind":"PropertySignature","id":0,"name":"mouseMove","type":{"kind":"TupleType","id":0,"elements":[]}}],"mouseDown":[{"kind":"PropertySignature","id":0,"name":"mouseDown","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"}]}}],"mousePress":[{"kind":"PropertySignature","id":0,"name":"mousePress","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"}]}}],"mouseRelease":[{"kind":"PropertySignature","id":0,"name":"mouseRelease","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"}]}}],"charInput":[{"kind":"PropertySignature","id":0,"name":"charInput","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"keyPress":[{"kind":"PropertySignature","id":0,"name":"keyPress","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"keyDown":[{"kind":"PropertySignature","id":0,"name":"keyDown","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"keyPressRepeat":[{"kind":"PropertySignature","id":0,"name":"keyPressRepeat","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"keyRelease":[{"kind":"PropertySignature","id":0,"name":"keyRelease","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"touchStart":[{"kind":"PropertySignature","id":0,"name":"touchStart","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Touch"}]}}],"touchMove":[{"kind":"PropertySignature","id":0,"name":"touchMove","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Touch"}]}}],"touchEnd":[{"kind":"PropertySignature","id":0,"name":"touchEnd","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"TypeReference","id":0,"typeName":"Touch"}]}}],"gamepadButtonDown":[{"kind":"PropertySignature","id":0,"name":"gamepadButtonDown","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"gamepadButtonPress":[{"kind":"PropertySignature","id":0,"name":"gamepadButtonPress","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"gamepadButtonRelease":[{"kind":"PropertySignature","id":0,"name":"gamepadButtonRelease","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"gamepadStick":[{"kind":"PropertySignature","id":0,"name":"gamepadStick","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"Vec2"}]}}],"gamepadConnect":[{"kind":"PropertySignature","id":0,"name":"gamepadConnect","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Gamepad"}]}}],"gamepadDisconnect":[{"kind":"PropertySignature","id":0,"name":"gamepadDisconnect","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Gamepad"}]}}],"scroll":[{"kind":"PropertySignature","id":0,"name":"scroll","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Vec2"}]}}],"add":[{"kind":"PropertySignature","id":0,"name":"add","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"GameObj"}]}}],"destroy":[{"kind":"PropertySignature","id":0,"name":"destroy","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"GameObj"}]}}],"use":[{"kind":"PropertySignature","id":0,"name":"use","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"GameObj"},{"kind":"StringKeyword","id":0}]}}],"unuse":[{"kind":"PropertySignature","id":0,"name":"unuse","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"GameObj"},{"kind":"StringKeyword","id":0}]}}],"tag":[{"kind":"PropertySignature","id":0,"name":"tag","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"GameObj"},{"kind":"StringKeyword","id":0}]}}],"untag":[{"kind":"PropertySignature","id":0,"name":"untag","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"GameObj"},{"kind":"StringKeyword","id":0}]}}],"load":[{"kind":"PropertySignature","id":0,"name":"load","type":{"kind":"TupleType","id":0,"elements":[]}}],"loadError":[{"kind":"PropertySignature","id":0,"name":"loadError","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"Asset","typeArguments":[{"kind":"AnyKeyword","id":0}]}]}}],"loading":[{"kind":"PropertySignature","id":0,"name":"loading","type":{"kind":"TupleType","id":0,"elements":[{"kind":"NumberKeyword","id":0}]}}],"error":[{"kind":"PropertySignature","id":0,"name":"error","type":{"kind":"TupleType","id":0,"elements":[{"kind":"TypeReference","id":0,"typeName":"Error"}]}}],"input":[{"kind":"PropertySignature","id":0,"name":"input","type":{"kind":"TupleType","id":0,"elements":[]}}],"frameEnd":[{"kind":"PropertySignature","id":0,"name":"frameEnd","type":{"kind":"TupleType","id":0,"elements":[]}}],"resize":[{"kind":"PropertySignature","id":0,"name":"resize","type":{"kind":"TupleType","id":0,"elements":[]}}],"sceneLeave":[{"kind":"PropertySignature","id":0,"name":"sceneLeave","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}],"sceneEnter":[{"kind":"PropertySignature","id":0,"name":"sceneEnter","type":{"kind":"TupleType","id":0,"elements":[{"kind":"StringKeyword","id":0}]}}]}}]}}],"objEvents":[{"kind":"PropertySignature","id":0,"name":"objEvents","type":{"kind":"TypeReference","id":0,"typeName":"KEventHandler","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"GameObjEvents"}]}}],"root":[{"kind":"PropertySignature","id":0,"name":"root","type":{"kind":"TypeReference","id":0,"typeName":"GameObj","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"TimerComp"}]}}],"gravity":[{"kind":"PropertySignature","id":0,"name":"gravity","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"scenes":[{"kind":"PropertySignature","id":0,"name":"scenes","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"SceneName"},{"kind":"TypeReference","id":0,"typeName":"SceneDef"}]}}],"currentScene":[{"kind":"PropertySignature","id":0,"name":"currentScene","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"SceneName"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"layers":[{"kind":"PropertySignature","id":0,"name":"layers","type":{"kind":"UnionType","id":0,"types":[{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"defaultLayerIndex":[{"kind":"PropertySignature","id":0,"name":"defaultLayerIndex","type":{"kind":"NumberKeyword","id":0}}],"logs":[{"kind":"PropertySignature","id":0,"name":"logs","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeLiteral","id":0,"members":{"msg":[{"kind":"PropertySignature","id":0,"name":"msg","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"TypeLiteral","id":0,"members":{}}]}}],"time":[{"kind":"PropertySignature","id":0,"name":"time","type":{"kind":"NumberKeyword","id":0}}]}}}}],"cam":[{"kind":"PropertySignature","id":0,"name":"cam","type":{"kind":"TypeLiteral","id":0,"members":{"pos":[{"kind":"PropertySignature","id":0,"name":"pos","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Vec2"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"scale":[{"kind":"PropertySignature","id":0,"name":"scale","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"angle":[{"kind":"PropertySignature","id":0,"name":"angle","type":{"kind":"NumberKeyword","id":0}}],"shake":[{"kind":"PropertySignature","id":0,"name":"shake","type":{"kind":"NumberKeyword","id":0}}],"transform":[{"kind":"PropertySignature","id":0,"name":"transform","type":{"kind":"TypeReference","id":0,"typeName":"Mat23"}}]}}}]}}}}],"initApp":[{"kind":"FunctionDeclaration","id":0,"declarationList":{"kind":"VariableDeclarationList","id":0,"declarations":[{"kind":"VariableDeclaration","id":0,"name":"initApp","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeLiteral","id":0,"members":{"canvas":[{"kind":"PropertySignature","id":0,"name":"canvas","type":{"kind":"TypeReference","id":0,"typeName":"HTMLCanvasElement"}}],"touchToMouse":[{"kind":"PropertySignature","id":0,"name":"touchToMouse","type":{"kind":"BooleanKeyword","id":0},"questionToken":true}],"gamepads":[{"kind":"PropertySignature","id":0,"name":"gamepads","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"GamepadDef"}]},"questionToken":true}],"pixelDensity":[{"kind":"PropertySignature","id":0,"name":"pixelDensity","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"maxFPS":[{"kind":"PropertySignature","id":0,"name":"maxFPS","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"buttons":[{"kind":"PropertySignature","id":0,"name":"buttons","type":{"kind":"TypeReference","id":0,"typeName":"ButtonsDef"},"questionToken":true}]}}}],"type":{"kind":"TypeLiteral","id":0,"members":{"state":[{"kind":"PropertySignature","id":0,"name":"state","type":{"kind":"TypeLiteral","id":0,"members":{"canvas":[{"kind":"PropertySignature","id":0,"name":"canvas","type":{"kind":"TypeReference","id":0,"typeName":"HTMLCanvasElement"}}],"buttons":[{"kind":"PropertySignature","id":0,"name":"buttons","type":{"kind":"TypeReference","id":0,"typeName":"ButtonsDef"}}],"buttonsByKey":[{"kind":"PropertySignature","id":0,"name":"buttonsByKey","type":{"kind":"TypeReference","id":0,"typeName":"Map","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"buttonsByMouse":[{"kind":"PropertySignature","id":0,"name":"buttonsByMouse","type":{"kind":"TypeReference","id":0,"typeName":"Map","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"buttonsByGamepad":[{"kind":"PropertySignature","id":0,"name":"buttonsByGamepad","type":{"kind":"TypeReference","id":0,"typeName":"Map","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"buttonsByKeyCode":[{"kind":"PropertySignature","id":0,"name":"buttonsByKeyCode","type":{"kind":"TypeReference","id":0,"typeName":"Map","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"loopID":[{"kind":"PropertySignature","id":0,"name":"loopID","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}},{"kind":"NumberKeyword","id":0}]}}],"stopped":[{"kind":"PropertySignature","id":0,"name":"stopped","type":{"kind":"BooleanKeyword","id":0}}],"dt":[{"kind":"PropertySignature","id":0,"name":"dt","type":{"kind":"NumberKeyword","id":0}}],"fixedDt":[{"kind":"PropertySignature","id":0,"name":"fixedDt","type":{"kind":"NumberKeyword","id":0}}],"restDt":[{"kind":"PropertySignature","id":0,"name":"restDt","type":{"kind":"NumberKeyword","id":0}}],"time":[{"kind":"PropertySignature","id":0,"name":"time","type":{"kind":"NumberKeyword","id":0}}],"realTime":[{"kind":"PropertySignature","id":0,"name":"realTime","type":{"kind":"NumberKeyword","id":0}}],"fpsCounter":[{"kind":"PropertySignature","id":0,"name":"fpsCounter","type":{"kind":"TypeReference","id":0,"typeName":"FPSCounter"}}],"timeScale":[{"kind":"PropertySignature","id":0,"name":"timeScale","type":{"kind":"NumberKeyword","id":0}}],"skipTime":[{"kind":"PropertySignature","id":0,"name":"skipTime","type":{"kind":"BooleanKeyword","id":0}}],"isHidden":[{"kind":"PropertySignature","id":0,"name":"isHidden","type":{"kind":"BooleanKeyword","id":0}}],"numFrames":[{"kind":"PropertySignature","id":0,"name":"numFrames","type":{"kind":"NumberKeyword","id":0}}],"mousePos":[{"kind":"PropertySignature","id":0,"name":"mousePos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"mouseDeltaPos":[{"kind":"PropertySignature","id":0,"name":"mouseDeltaPos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"keyState":[{"kind":"PropertySignature","id":0,"name":"keyState","type":{"kind":"TypeReference","id":0,"typeName":"ButtonState","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"mouseState":[{"kind":"PropertySignature","id":0,"name":"mouseState","type":{"kind":"TypeReference","id":0,"typeName":"ButtonState","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"}]}}],"mergedGamepadState":[{"kind":"PropertySignature","id":0,"name":"mergedGamepadState","type":{"kind":"TypeReference","id":0,"typeName":"GamepadState"}}],"gamepadStates":[{"kind":"PropertySignature","id":0,"name":"gamepadStates","type":{"kind":"TypeReference","id":0,"typeName":"Map","typeArguments":[{"kind":"NumberKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"GamepadState"}]}}],"lastInputDevice":[{"kind":"PropertySignature","id":0,"name":"lastInputDevice","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"mouse","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"keyboard","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"gamepad","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"buttonState":[{"kind":"PropertySignature","id":0,"name":"buttonState","type":{"kind":"TypeReference","id":0,"typeName":"ButtonState","typeArguments":[{"kind":"StringKeyword","id":0}]}}],"gamepads":[{"kind":"PropertySignature","id":0,"name":"gamepads","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}}],"charInputted":[{"kind":"PropertySignature","id":0,"name":"charInputted","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}}],"isMouseMoved":[{"kind":"PropertySignature","id":0,"name":"isMouseMoved","type":{"kind":"BooleanKeyword","id":0}}],"lastWidth":[{"kind":"PropertySignature","id":0,"name":"lastWidth","type":{"kind":"NumberKeyword","id":0}}],"lastHeight":[{"kind":"PropertySignature","id":0,"name":"lastHeight","type":{"kind":"NumberKeyword","id":0}}],"events":[{"kind":"PropertySignature","id":0,"name":"events","type":{"kind":"TypeReference","id":0,"typeName":"KEventHandler","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"AppEventMap"}]}}]}}}],"dt":[{"kind":"PropertySignature","id":0,"name":"dt","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"NumberKeyword","id":0}}}],"fixedDt":[{"kind":"PropertySignature","id":0,"name":"fixedDt","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"NumberKeyword","id":0}}}],"restDt":[{"kind":"PropertySignature","id":0,"name":"restDt","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"NumberKeyword","id":0}}}],"time":[{"kind":"PropertySignature","id":0,"name":"time","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"NumberKeyword","id":0}}}],"run":[{"kind":"PropertySignature","id":0,"name":"run","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"fixedUpdate","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"update","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"processInput","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"resetInput","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0}}}],"canvas":[{"kind":"PropertySignature","id":0,"name":"canvas","type":{"kind":"TypeReference","id":0,"typeName":"HTMLCanvasElement"}}],"fps":[{"kind":"PropertySignature","id":0,"name":"fps","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"NumberKeyword","id":0}}}],"numFrames":[{"kind":"PropertySignature","id":0,"name":"numFrames","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"NumberKeyword","id":0}}}],"quit":[{"kind":"PropertySignature","id":0,"name":"quit","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"isHidden":[{"kind":"PropertySignature","id":0,"name":"isHidden","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"BooleanKeyword","id":0}}}],"setFullscreen":[{"kind":"PropertySignature","id":0,"name":"setFullscreen","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"f","questionToken":true,"type":{"kind":"BooleanKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"isFullscreen":[{"kind":"PropertySignature","id":0,"name":"isFullscreen","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"BooleanKeyword","id":0}}}],"setCursor":[{"kind":"PropertySignature","id":0,"name":"setCursor","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"c","type":{"kind":"TypeReference","id":0,"typeName":"Cursor"}}],"type":{"kind":"VoidKeyword","id":0}}}],"screenshot":[{"kind":"PropertySignature","id":0,"name":"screenshot","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"StringKeyword","id":0}}}],"getGamepads":[{"kind":"PropertySignature","id":0,"name":"getGamepads","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}}}],"getCursor":[{"kind":"PropertySignature","id":0,"name":"getCursor","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Cursor"}}}],"setCursorLocked":[{"kind":"PropertySignature","id":0,"name":"setCursorLocked","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"b","type":{"kind":"BooleanKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"isCursorLocked":[{"kind":"PropertySignature","id":0,"name":"isCursorLocked","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"BooleanKeyword","id":0}}}],"isTouchscreen":[{"kind":"PropertySignature","id":0,"name":"isTouchscreen","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"BooleanKeyword","id":0}}}],"mousePos":[{"kind":"PropertySignature","id":0,"name":"mousePos","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}}],"mouseDeltaPos":[{"kind":"PropertySignature","id":0,"name":"mouseDeltaPos","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}}],"isKeyDown":[{"kind":"PropertySignature","id":0,"name":"isKeyDown","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isKeyPressed":[{"kind":"PropertySignature","id":0,"name":"isKeyPressed","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isKeyPressedRepeat":[{"kind":"PropertySignature","id":0,"name":"isKeyPressedRepeat","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isKeyReleased":[{"kind":"PropertySignature","id":0,"name":"isKeyReleased","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isMouseDown":[{"kind":"PropertySignature","id":0,"name":"isMouseDown","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isMousePressed":[{"kind":"PropertySignature","id":0,"name":"isMousePressed","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isMouseReleased":[{"kind":"PropertySignature","id":0,"name":"isMouseReleased","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isMouseMoved":[{"kind":"PropertySignature","id":0,"name":"isMouseMoved","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"BooleanKeyword","id":0}}}],"isGamepadButtonPressed":[{"kind":"PropertySignature","id":0,"name":"isGamepadButtonPressed","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isGamepadButtonDown":[{"kind":"PropertySignature","id":0,"name":"isGamepadButtonDown","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isGamepadButtonReleased":[{"kind":"PropertySignature","id":0,"name":"isGamepadButtonReleased","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"getGamepadStick":[{"kind":"PropertySignature","id":0,"name":"getGamepadStick","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"stick","type":{"kind":"TypeReference","id":0,"typeName":"GamepadStick"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}}],"isButtonPressed":[{"kind":"PropertySignature","id":0,"name":"isButtonPressed","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isButtonDown":[{"kind":"PropertySignature","id":0,"name":"isButtonDown","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isButtonReleased":[{"kind":"PropertySignature","id":0,"name":"isButtonReleased","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"setButton":[{"kind":"PropertySignature","id":0,"name":"setButton","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"binding","type":{"kind":"TypeReference","id":0,"typeName":"ButtonBinding"}}],"type":{"kind":"VoidKeyword","id":0}}}],"getButton":[{"kind":"PropertySignature","id":0,"name":"getButton","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"ButtonBinding"}}}],"pressButton":[{"kind":"PropertySignature","id":0,"name":"pressButton","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"releaseButton":[{"kind":"PropertySignature","id":0,"name":"releaseButton","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"charInputted":[{"kind":"PropertySignature","id":0,"name":"charInputted","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}}}],"onResize":[{"kind":"PropertySignature","id":0,"name":"onResize","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onKeyDown":[{"kind":"PropertySignature","id":0,"name":"onKeyDown","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onKeyPress":[{"kind":"PropertySignature","id":0,"name":"onKeyPress","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onKeyPressRepeat":[{"kind":"PropertySignature","id":0,"name":"onKeyPressRepeat","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onKeyRelease":[{"kind":"PropertySignature","id":0,"name":"onKeyRelease","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onMouseDown":[{"kind":"PropertySignature","id":0,"name":"onMouseDown","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"mouse","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onMousePress":[{"kind":"PropertySignature","id":0,"name":"onMousePress","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"mouse","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onMouseRelease":[{"kind":"PropertySignature","id":0,"name":"onMouseRelease","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"mouse","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onMouseMove":[{"kind":"PropertySignature","id":0,"name":"onMouseMove","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"dpos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onCharInput":[{"kind":"PropertySignature","id":0,"name":"onCharInput","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"ch","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onTouchStart":[{"kind":"PropertySignature","id":0,"name":"onTouchStart","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"TypeReference","id":0,"typeName":"Touch"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onTouchMove":[{"kind":"PropertySignature","id":0,"name":"onTouchMove","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"TypeReference","id":0,"typeName":"Touch"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onTouchEnd":[{"kind":"PropertySignature","id":0,"name":"onTouchEnd","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"TypeReference","id":0,"typeName":"Touch"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onScroll":[{"kind":"PropertySignature","id":0,"name":"onScroll","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"delta","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onHide":[{"kind":"PropertySignature","id":0,"name":"onHide","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onShow":[{"kind":"PropertySignature","id":0,"name":"onShow","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onGamepadButtonDown":[{"kind":"PropertySignature","id":0,"name":"onGamepadButtonDown","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onGamepadButtonPress":[{"kind":"PropertySignature","id":0,"name":"onGamepadButtonPress","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onGamepadButtonRelease":[{"kind":"PropertySignature","id":0,"name":"onGamepadButtonRelease","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onGamepadStick":[{"kind":"PropertySignature","id":0,"name":"onGamepadStick","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"stick","type":{"kind":"TypeReference","id":0,"typeName":"GamepadStick"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"value","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"gp","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onGamepadConnect":[{"kind":"PropertySignature","id":0,"name":"onGamepadConnect","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onGamepadDisconnect":[{"kind":"PropertySignature","id":0,"name":"onGamepadDisconnect","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onButtonPress":[{"kind":"PropertySignature","id":0,"name":"onButtonPress","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"StringKeyword","id":0}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onButtonDown":[{"kind":"PropertySignature","id":0,"name":"onButtonDown","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"StringKeyword","id":0}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onButtonRelease":[{"kind":"PropertySignature","id":0,"name":"onButtonRelease","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"StringKeyword","id":0}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"getLastInputDeviceType":[{"kind":"PropertySignature","id":0,"name":"getLastInputDeviceType","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"ButtonBindingDevice"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}}],"events":[{"kind":"PropertySignature","id":0,"name":"events","type":{"kind":"TypeReference","id":0,"typeName":"KEventHandler","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"AppEventMap"}]}}]}}}}]},"name":"initApp","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"opt","type":{"kind":"TypeLiteral","id":0,"members":{"canvas":[{"kind":"PropertySignature","id":0,"name":"canvas","type":{"kind":"TypeReference","id":0,"typeName":"HTMLCanvasElement"}}],"touchToMouse":[{"kind":"PropertySignature","id":0,"name":"touchToMouse","type":{"kind":"BooleanKeyword","id":0},"questionToken":true}],"gamepads":[{"kind":"PropertySignature","id":0,"name":"gamepads","type":{"kind":"TypeReference","id":0,"typeName":"Record","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"GamepadDef"}]},"questionToken":true}],"pixelDensity":[{"kind":"PropertySignature","id":0,"name":"pixelDensity","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"maxFPS":[{"kind":"PropertySignature","id":0,"name":"maxFPS","type":{"kind":"NumberKeyword","id":0},"questionToken":true}],"buttons":[{"kind":"PropertySignature","id":0,"name":"buttons","type":{"kind":"TypeReference","id":0,"typeName":"ButtonsDef"},"questionToken":true}]}}}],"type":{"kind":"TypeLiteral","id":0,"members":{"state":[{"kind":"PropertySignature","id":0,"name":"state","type":{"kind":"TypeLiteral","id":0,"members":{"canvas":[{"kind":"PropertySignature","id":0,"name":"canvas","type":{"kind":"TypeReference","id":0,"typeName":"HTMLCanvasElement"}}],"buttons":[{"kind":"PropertySignature","id":0,"name":"buttons","type":{"kind":"TypeReference","id":0,"typeName":"ButtonsDef"}}],"buttonsByKey":[{"kind":"PropertySignature","id":0,"name":"buttonsByKey","type":{"kind":"TypeReference","id":0,"typeName":"Map","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"buttonsByMouse":[{"kind":"PropertySignature","id":0,"name":"buttonsByMouse","type":{"kind":"TypeReference","id":0,"typeName":"Map","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"buttonsByGamepad":[{"kind":"PropertySignature","id":0,"name":"buttonsByGamepad","type":{"kind":"TypeReference","id":0,"typeName":"Map","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"buttonsByKeyCode":[{"kind":"PropertySignature","id":0,"name":"buttonsByKeyCode","type":{"kind":"TypeReference","id":0,"typeName":"Map","typeArguments":[{"kind":"StringKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"loopID":[{"kind":"PropertySignature","id":0,"name":"loopID","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}},{"kind":"NumberKeyword","id":0}]}}],"stopped":[{"kind":"PropertySignature","id":0,"name":"stopped","type":{"kind":"BooleanKeyword","id":0}}],"dt":[{"kind":"PropertySignature","id":0,"name":"dt","type":{"kind":"NumberKeyword","id":0}}],"fixedDt":[{"kind":"PropertySignature","id":0,"name":"fixedDt","type":{"kind":"NumberKeyword","id":0}}],"restDt":[{"kind":"PropertySignature","id":0,"name":"restDt","type":{"kind":"NumberKeyword","id":0}}],"time":[{"kind":"PropertySignature","id":0,"name":"time","type":{"kind":"NumberKeyword","id":0}}],"realTime":[{"kind":"PropertySignature","id":0,"name":"realTime","type":{"kind":"NumberKeyword","id":0}}],"fpsCounter":[{"kind":"PropertySignature","id":0,"name":"fpsCounter","type":{"kind":"TypeReference","id":0,"typeName":"FPSCounter"}}],"timeScale":[{"kind":"PropertySignature","id":0,"name":"timeScale","type":{"kind":"NumberKeyword","id":0}}],"skipTime":[{"kind":"PropertySignature","id":0,"name":"skipTime","type":{"kind":"BooleanKeyword","id":0}}],"isHidden":[{"kind":"PropertySignature","id":0,"name":"isHidden","type":{"kind":"BooleanKeyword","id":0}}],"numFrames":[{"kind":"PropertySignature","id":0,"name":"numFrames","type":{"kind":"NumberKeyword","id":0}}],"mousePos":[{"kind":"PropertySignature","id":0,"name":"mousePos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"mouseDeltaPos":[{"kind":"PropertySignature","id":0,"name":"mouseDeltaPos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"keyState":[{"kind":"PropertySignature","id":0,"name":"keyState","type":{"kind":"TypeReference","id":0,"typeName":"ButtonState","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"Key"}]}}],"mouseState":[{"kind":"PropertySignature","id":0,"name":"mouseState","type":{"kind":"TypeReference","id":0,"typeName":"ButtonState","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"}]}}],"mergedGamepadState":[{"kind":"PropertySignature","id":0,"name":"mergedGamepadState","type":{"kind":"TypeReference","id":0,"typeName":"GamepadState"}}],"gamepadStates":[{"kind":"PropertySignature","id":0,"name":"gamepadStates","type":{"kind":"TypeReference","id":0,"typeName":"Map","typeArguments":[{"kind":"NumberKeyword","id":0},{"kind":"TypeReference","id":0,"typeName":"GamepadState"}]}}],"lastInputDevice":[{"kind":"PropertySignature","id":0,"name":"lastInputDevice","type":{"kind":"UnionType","id":0,"types":[{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"mouse","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"keyboard","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"StringLiteral","id":0,"text":"gamepad","hasExtendedUnicodeEscape":false}},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}],"buttonState":[{"kind":"PropertySignature","id":0,"name":"buttonState","type":{"kind":"TypeReference","id":0,"typeName":"ButtonState","typeArguments":[{"kind":"StringKeyword","id":0}]}}],"gamepads":[{"kind":"PropertySignature","id":0,"name":"gamepads","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}}],"charInputted":[{"kind":"PropertySignature","id":0,"name":"charInputted","type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}}],"isMouseMoved":[{"kind":"PropertySignature","id":0,"name":"isMouseMoved","type":{"kind":"BooleanKeyword","id":0}}],"lastWidth":[{"kind":"PropertySignature","id":0,"name":"lastWidth","type":{"kind":"NumberKeyword","id":0}}],"lastHeight":[{"kind":"PropertySignature","id":0,"name":"lastHeight","type":{"kind":"NumberKeyword","id":0}}],"events":[{"kind":"PropertySignature","id":0,"name":"events","type":{"kind":"TypeReference","id":0,"typeName":"KEventHandler","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"AppEventMap"}]}}]}}}],"dt":[{"kind":"PropertySignature","id":0,"name":"dt","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"NumberKeyword","id":0}}}],"fixedDt":[{"kind":"PropertySignature","id":0,"name":"fixedDt","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"NumberKeyword","id":0}}}],"restDt":[{"kind":"PropertySignature","id":0,"name":"restDt","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"NumberKeyword","id":0}}}],"time":[{"kind":"PropertySignature","id":0,"name":"time","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"NumberKeyword","id":0}}}],"run":[{"kind":"PropertySignature","id":0,"name":"run","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"fixedUpdate","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"update","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"processInput","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}},{"kind":"Parameter","id":0,"name":"resetInput","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"VoidKeyword","id":0}}}],"canvas":[{"kind":"PropertySignature","id":0,"name":"canvas","type":{"kind":"TypeReference","id":0,"typeName":"HTMLCanvasElement"}}],"fps":[{"kind":"PropertySignature","id":0,"name":"fps","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"NumberKeyword","id":0}}}],"numFrames":[{"kind":"PropertySignature","id":0,"name":"numFrames","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"NumberKeyword","id":0}}}],"quit":[{"kind":"PropertySignature","id":0,"name":"quit","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"isHidden":[{"kind":"PropertySignature","id":0,"name":"isHidden","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"BooleanKeyword","id":0}}}],"setFullscreen":[{"kind":"PropertySignature","id":0,"name":"setFullscreen","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"f","questionToken":true,"type":{"kind":"BooleanKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"isFullscreen":[{"kind":"PropertySignature","id":0,"name":"isFullscreen","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"BooleanKeyword","id":0}}}],"setCursor":[{"kind":"PropertySignature","id":0,"name":"setCursor","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"c","type":{"kind":"TypeReference","id":0,"typeName":"Cursor"}}],"type":{"kind":"VoidKeyword","id":0}}}],"screenshot":[{"kind":"PropertySignature","id":0,"name":"screenshot","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"StringKeyword","id":0}}}],"getGamepads":[{"kind":"PropertySignature","id":0,"name":"getGamepads","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}}}],"getCursor":[{"kind":"PropertySignature","id":0,"name":"getCursor","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Cursor"}}}],"setCursorLocked":[{"kind":"PropertySignature","id":0,"name":"setCursorLocked","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"b","type":{"kind":"BooleanKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"isCursorLocked":[{"kind":"PropertySignature","id":0,"name":"isCursorLocked","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"BooleanKeyword","id":0}}}],"isTouchscreen":[{"kind":"PropertySignature","id":0,"name":"isTouchscreen","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"BooleanKeyword","id":0}}}],"mousePos":[{"kind":"PropertySignature","id":0,"name":"mousePos","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}}],"mouseDeltaPos":[{"kind":"PropertySignature","id":0,"name":"mouseDeltaPos","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}}],"isKeyDown":[{"kind":"PropertySignature","id":0,"name":"isKeyDown","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isKeyPressed":[{"kind":"PropertySignature","id":0,"name":"isKeyPressed","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isKeyPressedRepeat":[{"kind":"PropertySignature","id":0,"name":"isKeyPressedRepeat","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isKeyReleased":[{"kind":"PropertySignature","id":0,"name":"isKeyReleased","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"k","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isMouseDown":[{"kind":"PropertySignature","id":0,"name":"isMouseDown","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isMousePressed":[{"kind":"PropertySignature","id":0,"name":"isMousePressed","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isMouseReleased":[{"kind":"PropertySignature","id":0,"name":"isMouseReleased","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isMouseMoved":[{"kind":"PropertySignature","id":0,"name":"isMouseMoved","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"BooleanKeyword","id":0}}}],"isGamepadButtonPressed":[{"kind":"PropertySignature","id":0,"name":"isGamepadButtonPressed","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isGamepadButtonDown":[{"kind":"PropertySignature","id":0,"name":"isGamepadButtonDown","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isGamepadButtonReleased":[{"kind":"PropertySignature","id":0,"name":"isGamepadButtonReleased","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"getGamepadStick":[{"kind":"PropertySignature","id":0,"name":"getGamepadStick","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"stick","type":{"kind":"TypeReference","id":0,"typeName":"GamepadStick"}}],"type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}}],"isButtonPressed":[{"kind":"PropertySignature","id":0,"name":"isButtonPressed","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isButtonDown":[{"kind":"PropertySignature","id":0,"name":"isButtonDown","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"isButtonReleased":[{"kind":"PropertySignature","id":0,"name":"isButtonReleased","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","questionToken":true,"type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}]}}],"type":{"kind":"BooleanKeyword","id":0}}}],"setButton":[{"kind":"PropertySignature","id":0,"name":"setButton","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}},{"kind":"Parameter","id":0,"name":"binding","type":{"kind":"TypeReference","id":0,"typeName":"ButtonBinding"}}],"type":{"kind":"VoidKeyword","id":0}}}],"getButton":[{"kind":"PropertySignature","id":0,"name":"getButton","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"TypeReference","id":0,"typeName":"ButtonBinding"}}}],"pressButton":[{"kind":"PropertySignature","id":0,"name":"pressButton","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"releaseButton":[{"kind":"PropertySignature","id":0,"name":"releaseButton","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"charInputted":[{"kind":"PropertySignature","id":0,"name":"charInputted","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"ArrayType","id":0,"elementType":{"kind":"StringKeyword","id":0}}}}],"onResize":[{"kind":"PropertySignature","id":0,"name":"onResize","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onKeyDown":[{"kind":"PropertySignature","id":0,"name":"onKeyDown","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onKeyPress":[{"kind":"PropertySignature","id":0,"name":"onKeyPress","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onKeyPressRepeat":[{"kind":"PropertySignature","id":0,"name":"onKeyPressRepeat","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onKeyRelease":[{"kind":"PropertySignature","id":0,"name":"onKeyRelease","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"Key"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"Key"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"key","type":{"kind":"TypeReference","id":0,"typeName":"Key"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onMouseDown":[{"kind":"PropertySignature","id":0,"name":"onMouseDown","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"mouse","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onMousePress":[{"kind":"PropertySignature","id":0,"name":"onMousePress","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"mouse","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onMouseRelease":[{"kind":"PropertySignature","id":0,"name":"onMouseRelease","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"mouse","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"MouseButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"m","type":{"kind":"TypeReference","id":0,"typeName":"MouseButton"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onMouseMove":[{"kind":"PropertySignature","id":0,"name":"onMouseMove","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"dpos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onCharInput":[{"kind":"PropertySignature","id":0,"name":"onCharInput","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"ch","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onTouchStart":[{"kind":"PropertySignature","id":0,"name":"onTouchStart","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"TypeReference","id":0,"typeName":"Touch"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onTouchMove":[{"kind":"PropertySignature","id":0,"name":"onTouchMove","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"TypeReference","id":0,"typeName":"Touch"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onTouchEnd":[{"kind":"PropertySignature","id":0,"name":"onTouchEnd","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"f","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"pos","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"t","type":{"kind":"TypeReference","id":0,"typeName":"Touch"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onScroll":[{"kind":"PropertySignature","id":0,"name":"onScroll","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"delta","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onHide":[{"kind":"PropertySignature","id":0,"name":"onHide","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onShow":[{"kind":"PropertySignature","id":0,"name":"onShow","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onGamepadButtonDown":[{"kind":"PropertySignature","id":0,"name":"onGamepadButtonDown","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onGamepadButtonPress":[{"kind":"PropertySignature","id":0,"name":"onGamepadButtonPress","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onGamepadButtonRelease":[{"kind":"PropertySignature","id":0,"name":"onGamepadButtonRelease","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"},{"kind":"ArrayType","id":0,"elementType":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"TypeReference","id":0,"typeName":"KGamepadButton"}},{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onGamepadStick":[{"kind":"PropertySignature","id":0,"name":"onGamepadStick","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"stick","type":{"kind":"TypeReference","id":0,"typeName":"GamepadStick"}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"value","type":{"kind":"TypeReference","id":0,"typeName":"Vec2"}},{"kind":"Parameter","id":0,"name":"gp","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onGamepadConnect":[{"kind":"PropertySignature","id":0,"name":"onGamepadConnect","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onGamepadDisconnect":[{"kind":"PropertySignature","id":0,"name":"onGamepadDisconnect","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"gamepad","type":{"kind":"TypeReference","id":0,"typeName":"KGamepad"}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}],"onButtonPress":[{"kind":"PropertySignature","id":0,"name":"onButtonPress","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"StringKeyword","id":0}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onButtonDown":[{"kind":"PropertySignature","id":0,"name":"onButtonDown","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"StringKeyword","id":0}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"onButtonRelease":[{"kind":"PropertySignature","id":0,"name":"onButtonRelease","type":{"kind":"IntersectionType","id":0,"types":[{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}},{"kind":"ParenthesizedType","id":0,"type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"UnionType","id":0,"types":[{"kind":"StringKeyword","id":0},{"kind":"StringKeyword","id":0}]}},{"kind":"Parameter","id":0,"name":"action","type":{"kind":"FunctionType","id":0,"parameters":[{"kind":"Parameter","id":0,"name":"btn","type":{"kind":"StringKeyword","id":0}}],"type":{"kind":"VoidKeyword","id":0}}}],"type":{"kind":"TypeReference","id":0,"typeName":"KEventController"}}}]}}],"getLastInputDeviceType":[{"kind":"PropertySignature","id":0,"name":"getLastInputDeviceType","type":{"kind":"FunctionType","id":0,"parameters":[],"type":{"kind":"UnionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"ButtonBindingDevice"},{"kind":"LiteralType","id":0,"literal":{"kind":"NullKeyword","id":0}}]}}}],"events":[{"kind":"PropertySignature","id":0,"name":"events","type":{"kind":"TypeReference","id":0,"typeName":"KEventHandler","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"AppEventMap"}]}}]}}}}],"kaplay":[{"kind":"FunctionDeclaration","id":0,"declarationList":{"kind":"VariableDeclarationList","id":0,"declarations":[{"kind":"VariableDeclaration","id":0,"name":"kaplay","type":{"kind":"FunctionType","id":0,"typeParameters":[{"kind":"TypeParameter","id":0,"name":"TPlugins","constraint":{"kind":"TypeReference","id":0,"typeName":"PluginList","typeArguments":[{"kind":"UnknownKeyword","id":0}]},"default":{"kind":"TupleType","id":0,"elements":[{"kind":"UndefinedKeyword","id":0}]}},{"kind":"TypeParameter","id":0,"name":"TButtons","constraint":{"kind":"TypeReference","id":0,"typeName":"ButtonsDef"},"default":{"kind":"TypeLiteral","id":0,"members":{}}},{"kind":"TypeParameter","id":0,"name":"TButtonsName","constraint":{"kind":"StringKeyword","id":0},"default":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeOperator","id":0,"operator":143,"type":{"kind":"TypeReference","id":0,"typeName":"TButtons"}},{"kind":"StringKeyword","id":0}]}}],"parameters":[{"kind":"Parameter","id":0,"name":"gopt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"KAPLAYOpt","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"TPlugins"},{"kind":"TypeReference","id":0,"typeName":"TButtons"}]}}],"type":{"kind":"ConditionalType","id":0,"checkType":{"kind":"TypeReference","id":0,"typeName":"TPlugins"},"extendsType":{"kind":"TupleType","id":0,"elements":[{"kind":"UndefinedKeyword","id":0}]},"trueType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"TButtons"},{"kind":"TypeReference","id":0,"typeName":"TButtonsName"}]},"falseType":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"TButtons"},{"kind":"TypeReference","id":0,"typeName":"TButtonsName"}]},{"kind":"TypeReference","id":0,"typeName":"MergePlugins","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"TPlugins"}]}]}}}}]},"jsDoc":{"doc":"Initialize KAPLAY context. The starting point of all KAPLAY games.","tags":{"example":["```js\n// Start KAPLAY with default options (will create a fullscreen canvas under <body>)\nkaplay()\n\n// Init with some options\nkaplay({\n width: 320,\n height: 240,\n font: \"sans-serif\",\n canvas: document.querySelector(\"#mycanvas\"),\n background: [ 0, 0, 255, ],\n})\n\n// All KAPLAY functions are imported to global after calling kaplay()\nadd()\nonUpdate()\nonKeyPress()\nvec2()\n\n// If you want to prevent KAPLAY from importing all functions to global and use a context handle for all KAPLAY functions\nconst k = kaplay({ global: false })\n\nk.add(...)\nk.onUpdate(...)\nk.onKeyPress(...)\nk.vec2(...)\n```"],"group":["Start"]}},"name":"kaplay","type":{"kind":"FunctionType","id":0,"typeParameters":[{"kind":"TypeParameter","id":0,"name":"TPlugins","constraint":{"kind":"TypeReference","id":0,"typeName":"PluginList","typeArguments":[{"kind":"UnknownKeyword","id":0}]},"default":{"kind":"TupleType","id":0,"elements":[{"kind":"UndefinedKeyword","id":0}]}},{"kind":"TypeParameter","id":0,"name":"TButtons","constraint":{"kind":"TypeReference","id":0,"typeName":"ButtonsDef"},"default":{"kind":"TypeLiteral","id":0,"members":{}}},{"kind":"TypeParameter","id":0,"name":"TButtonsName","constraint":{"kind":"StringKeyword","id":0},"default":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeOperator","id":0,"operator":143,"type":{"kind":"TypeReference","id":0,"typeName":"TButtons"}},{"kind":"StringKeyword","id":0}]}}],"parameters":[{"kind":"Parameter","id":0,"name":"gopt","questionToken":true,"type":{"kind":"TypeReference","id":0,"typeName":"KAPLAYOpt","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"TPlugins"},{"kind":"TypeReference","id":0,"typeName":"TButtons"}]}}],"type":{"kind":"ConditionalType","id":0,"checkType":{"kind":"TypeReference","id":0,"typeName":"TPlugins"},"extendsType":{"kind":"TupleType","id":0,"elements":[{"kind":"UndefinedKeyword","id":0}]},"trueType":{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"TButtons"},{"kind":"TypeReference","id":0,"typeName":"TButtonsName"}]},"falseType":{"kind":"IntersectionType","id":0,"types":[{"kind":"TypeReference","id":0,"typeName":"KAPLAYCtx","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"TButtons"},{"kind":"TypeReference","id":0,"typeName":"TButtonsName"}]},{"kind":"TypeReference","id":0,"typeName":"MergePlugins","typeArguments":[{"kind":"TypeReference","id":0,"typeName":"TPlugins"}]}]}}}}]},"groups":{"Start":{"name":"Start","entries":["kaplay","quit","KAPLAYOpt"]},"Assets":{"name":"Assets","entries":["loadRoot","loadSprite","loadSpriteAtlas","loadAseprite","loadPedit","loadBean","loadJSON","loadSound","loadMusic","loadFont","loadBitmapFont","loadShader","loadShaderURL","load","loadProgress","getSprite","getSound","getFont","getBitmapFont","getShader","getAsset","Asset","SpriteData","SoundData"]},"Game Obj":{"name":"Game Obj","entries":["add","make","readd","get","query","destroy","destroyAll","KeepFlags","GameObjRaw","GameObj","GameObjID"]},"Components":{"name":"Components","entries":["pos","scale","rotate","color","opacity","sprite","text","polygon","rect","circle","ellipse","uvquad","area","anchor","z","outline","particles","body","surfaceEffector","areaEffector","pointEffector","platformEffector","buoyancyEffector","constantForce","doubleJump","move","offscreen","follow","shader","textInput","timer","fixed","stay","health","lifespan","named","state","fadeIn","mask","drawon","tile","agent","animate","fakeMouse","serializeAnimation","sentry","patrol","pathfinder","Comp"]},"Component Types":{"name":"Component Types","entries":["CircleComp","CircleCompOpt","ColorComp","EllipseComp","EllipseCompOpt","MaskComp","OpacityComp","OutlineComp","ParticlesOpt","ParticlesComp","PolygonComp","PolygonCompOpt","RectComp","RectCompOpt","ShaderComp","SpriteComp","SpriteCompOpt","TextComp","TextCompOpt","UVQuadComp","AgentComp","AgentCompOpt","FixedComp","PosComp","SentryComp","SentryCompOpt","TileComp","TileCompOpt","HealthComp","LifespanCompOpt","NamedComp","StateComp","StayComp","TextInputComp","TimerComp","AreaComp","AreaCompOpt","BodyComp","BodyCompOpt","DoubleJumpComp","AnchorComp","FollowComp","LayerComp","OffScreenComp","OffScreenCompOpt","RotateComp","ScaleComp","ZComp","MergeComps","CompList","EmptyComp","LevelComp"]},"Scene":{"name":"Scene","entries":["getSceneName","scene","go","layers"]},"Input":{"name":"Input","entries":["onGamepadConnect","onGamepadDisconnect","onClick","onKeyDown","onKeyPress","onKeyPressRepeat","onKeyRelease","onCharInput","onMouseDown","onMousePress","onMouseRelease","onMouseMove","onTouchStart","onTouchMove","onTouchEnd","onScroll","onGamepadButtonDown","onGamepadButtonPress","onGamepadButtonRelease","onGamepadStick","onButtonPress","onButtonRelease","onButtonDown","isTouchscreen","mousePos","mouseDeltaPos","isKeyDown","isKeyPressed","isKeyPressedRepeat","isKeyReleased","isMouseDown","isMousePressed","isMouseReleased","isMouseMoved","isGamepadButtonPressed","isGamepadButtonDown","isGamepadButtonReleased","isButtonPressed","isButtonDown","isButtonReleased","getButton","setButton","pressButton","releaseButton","getGamepadStick","getLastInputDeviceType","charInputted","Key","MouseButton","KGamepadButton","GamepadStick"]},"Events":{"name":"Events","entries":["KEventController","GameObjEventMap","trigger","on","onFixedUpdate","onUpdate","onDraw","onAdd","onDestroy","onUse","onUnuse","onTag","onUntag","onLoad","onLoadError","onLoading","onError","onResize","onCleanup","onCollide","onCollideUpdate","onHover","onHoverUpdate","onHoverEnd","onHide","onShow","onSceneLeave","KEvent","KEventHandler","KEventController","cancel"]},"Info":{"name":"Info","entries":["width","getTreeRoot","height","center","dt","fixedDt","restDt","time","isFocused","setBackground","getBackground","getGamepads","setCursor","getCursor","setCursorLocked","isCursorLocked","setFullscreen","isFullscreen","canvas","VERSION"]},"Timer":{"name":"Timer","entries":["wait","loop","TimerController","TweenController"]},"Math":{"name":"Math","entries":["Color","Vec2Args","Vec2","Quad","Mat4","RNG","ShapeType","RaycastHit","RaycastResult","Line","Rect","Circle","Ellipse","Polygon","UniformValue","UniformKey","Uniform","raycast","vec2","rgb","hsl2rgb","quad","chance","lerp","tween","easings","easingSteps","easingLinear","easingCubicBezier","map","mapc","wave","deg2rad","rad2deg","clamp","evaluateQuadratic","evaluateQuadraticFirstDerivative","evaluateQuadraticSecondDerivative","evaluateBezier","evaluateBezierFirstDerivative","evaluateBezierSecondDerivative","evaluateCatmullRom","evaluateCatmullRomFirstDerivative","curveLengthApproximation","normalizedCurve","testLinePoint","testLineLine","testLineCircle","testRectRect","testRectLine","testRectPoint","testCirclePolygon","clipLineToRect","clipLineToCircle","gjkShapeIntersects","gjkShapeIntersection","isConvex","triangulate","NavMesh","Point","Line","Rect","Circle","Ellipse","Polygon","Vec2","Color","Mat4","Mat23","Quad","RNG","LerpValue","RNGValue","Collision","Edge","EdgeMask","EaseFuncs","EaseFunc"]},"Misc":{"name":"Misc","entries":["RGBValue","RGBAValue","ColorArgs","Mat2","Mat23","Point","StepPosition","DrawCurveOpt","DrawBezierOpt","DrawCircleOpt","GfxCtx","Texture","VertexFormat","BatchRenderer","Mesh","initGfx","GfxFont","BitmapFontData","LoadBitmapFontOpt","FontData","CharTransformFunc","FormattedText","FormattedChar","DrawLineOpt","LineJoin","LineCap","DrawLinesOpt","DrawRectOpt","GjkCollisionResult","Graph","Grid","NavEdge","NavPolygon","NavMesh","SatResult","EmitterOpt","Registry","KEvent","KEventHandler","BinaryHeap","PathfinderMapComp","PathfinderMapCompOpt","PathfinderComp","PathfinderCompOpt","PatrolComp","PatrolEndBehavior","PatrolCompOpt","SentryCandidatesCb","SentryCandidates","TimeDirection","Interpolation","AnimateOpt","AnimateCompOpt","BaseValues","AnimateComp","AnimationChannelKeys","AnimationOptions","AnimationChannel","FakeMouseComp","FakeMouseOpt","SurfaceEffectorCompOpt","SurfaceEffectorComp","AreaEffectorCompOpt","AreaEffectorComp","ForceMode","PointEffectorCompOpt","PointEffectorComp","ConstantForceCompOpt","ConstantForceComp","PlatformEffectorCompOpt","PlatformEffectorComp","BuoyancyEffectorCompOpt","BuoyancyEffectorComp","Vec3","DrawSpriteOpt","DrawTriangleOpt","ShaderData","AppGfxCtx","TexPacker","SoundData","SpriteAnim","SpriteAnims","LoadSpriteOpt","NineSlice","LoadSpriteSrc","SpriteData","Asset","AssetBucket","AssetsCtx","AsepriteData","PeditFile","SpriteAtlasData","SpriteAtlasEntry","AudioCtx","AudioPlayOpt","AudioPlay","GameObjEvents","GameObjEventNames","AppEventMap","TupleWithoutFirst","SceneName","SceneDef","Game","KeepFlags","SetParentOpt","System","LCEvents","KAPLAYInternal","_k","addKaboom","Tag","UnionToIntersection","Defined","Expand","MergeObj","MergePlugins","PluginList","GamepadDef","KGamepad","GameObjInspect","SpriteAnimPlayOpt","MusicData","LoadFontOpt","TextureOpt","ImageSource","Canvas","Vertex","TexFilter","TexWrap","RenderProps","DrawTextureOpt","DrawUVQuadOpt","DrawEllipseOpt","DrawPolygonOpt","Outline","Mask","SpriteCurAnim","ButtonState","GamepadState","FPSCounter","App","initAppGfx","initAssets","initAudio","initGame","initApp"]},"Draw":{"name":"Draw","entries":["DrawTextOpt","TextAlign","drawSprite","drawText","drawRect","drawLine","drawLines","drawCurve","drawBezier","drawTriangle","drawCircle","drawEllipse","drawPolygon","drawUVQuad","drawFormattedText","drawMasked","drawSubtracted","pushTransform","popTransform","pushTranslate","pushScale","pushRotate","pushMatrix","usePostEffect","formatText","makeCanvas","Cursor","Anchor","Shape"]},"Options":{"name":"Options","entries":["CharTransform","BoomOpt","LevelOpt","GetOpt","QueryOpt","PathFindOpt"]},"GFX":{"name":"GFX","entries":["FrameBuffer","Shader"]},"Layer":{"name":"Layer","entries":["layer"]},"Physics":{"name":"Physics","entries":["onCollideEnd","setGravity","getGravity","setGravityDirection","getGravityDirection"]},"Camera":{"name":"Camera","entries":["setCamPos","getCamPos","setCamScale","getCamScale","setCamRot","getCamRot","getCamTransform","shake","flash","camPos","camScale","camRot","camFlash","camTransform","toScreen","toWorld"]},"Audio":{"name":"Audio","entries":["play","burp","setVolume","getVolume","volume","audioCtx"]},"Random":{"name":"Random","entries":["rand","randi","randSeed","choose","chooseMultiple","shuffle"]},"Layers":{"name":"Layers","entries":["setLayers","getLayers","getDefaultLayer"]},"Level":{"name":"Level","entries":["addLevel"]},"Data":{"name":"Data","entries":["getData","setData","screenshot","download","downloadText","downloadJSON","downloadBlob","record","Recording"]},"Debug":{"name":"Debug","entries":["debug","Debug"]},"Plugins":{"name":"Plugins","entries":["plug","system","KAPLAYPlugin"]},"Constants":{"name":"Constants","entries":["ASCII_CHARS","LEFT","RIGHT","UP","DOWN","RED","GREEN","BLUE","YELLOW","MAGENTA","CYAN","WHITE","BLACK"]},"Button Bindings":{"name":"Button Bindings","entries":["ButtonBinding","ButtonsDef","ButtonBindingDevice"]}}}