lovr.d.luau 75 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885
  1. declare extern type userdata with end
  2. declare extern type lightuserdata with end
  3. declare extern type quaternion with
  4. x: number
  5. y: number
  6. z: number
  7. w: number
  8. end
  9. type Vec2 = {number}
  10. type Vec3 = {number} | vector
  11. type Vec4 = {number}
  12. type Quat = {number} | quaternion
  13. type Mat4 = {number}
  14. declare class Joint end
  15. declare class Shape end
  16. declare class Object
  17. function release(self)
  18. function type(self): string
  19. end
  20. type AudioMaterial =
  21. | "generic"
  22. | "brick"
  23. | "carpet"
  24. | "ceramic"
  25. | "concrete"
  26. | "glass"
  27. | "gravel"
  28. | "metal"
  29. | "plaster"
  30. | "rock"
  31. | "wood"
  32. type AudioShareMode =
  33. | "shared"
  34. | "exclusive"
  35. type AudioType =
  36. | "playback"
  37. | "capture"
  38. type Effect =
  39. | "absorption"
  40. | "attenuation"
  41. | "occlusion"
  42. | "reverb"
  43. | "spatialization"
  44. | "transmission"
  45. type TimeUnit =
  46. | "seconds"
  47. | "frames"
  48. type VolumeUnit =
  49. | "linear"
  50. | "db"
  51. declare class Source extends Object
  52. function clone(self): Source
  53. function getDirectivity(self): (number, number)
  54. function getDuration(self, unit: TimeUnit?): number
  55. function getOrientation(self): (number, number, number, number)
  56. function getPitch(self): number
  57. function getPose(self): (number, number, number, number, number, number, number)
  58. function getPosition(self): (number, number, number)
  59. function getRadius(self): number
  60. function getSound(self): Sound
  61. function getVolume(self, units: VolumeUnit?): number
  62. function isEffectEnabled(self, effect: Effect): boolean
  63. function isLooping(self): boolean
  64. function isPlaying(self): boolean
  65. function isSpatial(self): boolean
  66. function pause(self)
  67. function play(self): boolean
  68. function seek(self, position: number, unit: TimeUnit?)
  69. function setDirectivity(self, weight: number, power: number)
  70. function setEffectEnabled(self, effect: Effect, enable: boolean)
  71. function setLooping(self, loop: boolean)
  72. function setOrientation(self, angle: number, ax: number, ay: number, az: number)
  73. function setOrientation(self, orientation: Quat)
  74. function setPitch(self, pitch: number)
  75. function setPose(self, x: number, y: number, z: number, angle: number, ax: number, ay: number, az: number)
  76. function setPose(self, position: Vec3, orientation: Quat)
  77. function setPosition(self, x: number, y: number, z: number)
  78. function setPosition(self, position: Vec3)
  79. function setRadius(self, radius: number)
  80. function setVolume(self, volume: number, units: VolumeUnit?)
  81. function stop(self)
  82. function tell(self, unit: TimeUnit?): number
  83. end
  84. type AudioModule = {
  85. getAbsorption: () -> (number, number, number),
  86. getDevice: (type: AudioType?) -> (string | nil, userdata | nil),
  87. getDevices: (type: AudioType?) -> {},
  88. getOrientation: () -> (number, number, number, number),
  89. getPose: () -> (number, number, number, number, number, number, number),
  90. getPosition: () -> (number, number, number),
  91. getSampleRate: () -> number,
  92. getSpatializer: () -> string,
  93. getVolume: (units: VolumeUnit?) -> number,
  94. isStarted: (type: AudioType?) -> boolean,
  95. newSource:
  96. & ((file: string | Blob, options: {}?) -> Source)
  97. & ((sound: Sound, options: {}?) -> Source),
  98. setAbsorption: (low: number, mid: number, high: number) -> (),
  99. setDevice: (type: AudioType?, id: userdata?, sink: Sound?, mode: AudioShareMode?) -> boolean,
  100. setGeometry:
  101. & ((vertices: {}, indices: {}, material: AudioMaterial?) -> boolean)
  102. & ((model: Model, material: AudioMaterial?) -> boolean),
  103. setOrientation:
  104. & ((angle: number, ax: number, ay: number, az: number) -> ())
  105. & ((orientation: Quat) -> ()),
  106. setPose:
  107. & ((x: number, y: number, z: number, angle: number, ax: number, ay: number, az: number) -> ())
  108. & ((position: Vec3, orientation: Quat) -> ()),
  109. setPosition:
  110. & ((x: number, y: number, z: number) -> ())
  111. & ((position: Vec3) -> ()),
  112. setVolume: (volume: number, units: VolumeUnit?) -> (),
  113. start: (type: AudioType?) -> boolean,
  114. stop: (type: AudioType?) -> boolean,
  115. }
  116. type AnimationProperty =
  117. | "translation"
  118. | "rotation"
  119. | "scale"
  120. | "weights"
  121. type AttributeType =
  122. | "i8"
  123. | "u8"
  124. | "i16"
  125. | "u16"
  126. | "i32"
  127. | "u32"
  128. | "f32"
  129. type ChannelLayout =
  130. | "mono"
  131. | "stereo"
  132. | "ambisonic"
  133. type DefaultAttribute =
  134. | "position"
  135. | "normal"
  136. | "uv"
  137. | "color"
  138. | "tangent"
  139. | "joints"
  140. | "weights"
  141. type ModelDrawMode =
  142. | "points"
  143. | "lines"
  144. | "linestrip"
  145. | "lineloop"
  146. | "strip"
  147. | "triangles"
  148. | "fan"
  149. type SampleFormat =
  150. | "f32"
  151. | "i16"
  152. type SmoothMode =
  153. | "step"
  154. | "linear"
  155. | "cubic"
  156. type TextureFormat =
  157. | "r8"
  158. | "rg8"
  159. | "rgba8"
  160. | "bgra8"
  161. | "r16"
  162. | "rg16"
  163. | "rgba16"
  164. | "r16f"
  165. | "rg16f"
  166. | "rgba16f"
  167. | "r32f"
  168. | "rg32f"
  169. | "rgba32f"
  170. | "rgb565"
  171. | "rgb5a1"
  172. | "rgb10a2"
  173. | "rg11b10f"
  174. | "d16"
  175. | "d24"
  176. | "d24s8"
  177. | "d32f"
  178. | "d32fs8"
  179. | "bc1"
  180. | "bc2"
  181. | "bc3"
  182. | "bc4u"
  183. | "bc4s"
  184. | "bc5u"
  185. | "bc5s"
  186. | "bc6uf"
  187. | "bc6sf"
  188. | "bc7"
  189. | "astc4x4"
  190. | "astc5x4"
  191. | "astc5x5"
  192. | "astc6x5"
  193. | "astc6x6"
  194. | "astc8x5"
  195. | "astc8x6"
  196. | "astc8x8"
  197. | "astc10x5"
  198. | "astc10x6"
  199. | "astc10x8"
  200. | "astc10x10"
  201. | "astc12x10"
  202. | "astc12x12"
  203. declare class Blob extends Object
  204. function getSize(self): number
  205. function getName(self): string
  206. function getPointer(self): userdata
  207. function getString(self, offset: number?, size: number?): string
  208. function getI8(self, offset: number?, count: number?): number
  209. function getU8(self, offset: number?, count: number?): number
  210. function getI16(self, offset: number?, count: number?): number
  211. function getU16(self, offset: number?, count: number?): number
  212. function getI32(self, offset: number?, count: number?): number
  213. function getU32(self, offset: number?, count: number?): number
  214. function getF32(self, offset: number?, count: number?): number
  215. function getF64(self, offset: number?, count: number?): number
  216. function setI8(self, offset: number, ...: number)
  217. function setI8(self, offset: number, table: {number})
  218. function setU8(self, offset: number, ...: number)
  219. function setU8(self, offset: number, table: {number})
  220. function setI16(self, offset: number, ...: number)
  221. function setI16(self, offset: number, table: {number})
  222. function setU16(self, offset: number, ...: number)
  223. function setU16(self, offset: number, table: {number})
  224. function setI32(self, offset: number, ...: number)
  225. function setI32(self, offset: number, table: {number})
  226. function setU32(self, offset: number, ...: number)
  227. function setU32(self, offset: number, table: {number})
  228. function setF32(self, offset: number, ...: number)
  229. function setF32(self, offset: number, table: {number})
  230. function setF64(self, offset: number, ...: number)
  231. function setF64(self, offset: number, table: {number})
  232. end
  233. declare class Image extends Object
  234. function encode(self): Blob
  235. function getBlob(self): Blob
  236. function getDimensions(self): (number, number)
  237. function getFormat(self): TextureFormat
  238. function getHeight(self): number
  239. function getPixel(self, x: number, y: number): (number, number, number, number)
  240. function getPointer(self, level: number?, layer: number?): userdata
  241. function getWidth(self): number
  242. function mapPixel(self, callback: () -> (), x: number?, y: number?, w: number?, h: number?)
  243. function paste(self, source: Image, x: number?, y: number?, fromX: number?, fromY: number?, width: number?, height: number?)
  244. function setPixel(self, x: number, y: number, r: number, g: number, b: number, a: number?)
  245. end
  246. declare class ModelData extends Object
  247. function getAnimationChannelCount(self, animation: number | string): number
  248. function getAnimationCount(self): number
  249. function getAnimationDuration(self, animation: string | number): number
  250. function getAnimationKeyframe(self, animation: number, channel: number, keyframe: number): (number, number)
  251. function getAnimationKeyframeCount(self, animation: string | number, channel: number): number
  252. function getAnimationName(self, index: number): string | nil
  253. function getAnimationNode(self, animation: number, channel: number): number
  254. function getAnimationProperty(self, animation: string | number, channel: number): AnimationProperty
  255. function getAnimationSmoothMode(self, animation: string | number, channel: number): SmoothMode
  256. function getBlendShapeCount(self): number
  257. function getBlendShapeName(self, index: number): string
  258. function getBlob(self, index: number): Blob
  259. function getBlobCount(self): number
  260. function getBoundingBox(self): (number, number, number, number, number, number)
  261. function getBoundingSphere(self): (number, number, number, number)
  262. function getCenter(self): (number, number, number)
  263. function getDepth(self): number
  264. function getDimensions(self): (number, number, number)
  265. function getHeight(self): number
  266. function getImage(self, index: number): Image
  267. function getImageCount(self): number
  268. function getMaterial(self, material: number): {}
  269. function getMaterialCount(self): number
  270. function getMaterialName(self, index: number): string
  271. function getMeshCount(self): number
  272. function getMeshDrawMode(self, mesh: number): ModelDrawMode
  273. function getMeshIndex(self, mesh: number, index: number): number
  274. function getMeshIndexCount(self, mesh: number): number
  275. function getMeshIndexFormat(self, mesh: number): (AttributeType, number, number, number)
  276. function getMeshMaterial(self, mesh: number): number
  277. function getMeshVertex(self, mesh: number, vertex: number): number
  278. function getMeshVertexCount(self, mesh: number): number
  279. function getMeshVertexFormat(self, mesh: number): {}
  280. function getMetadata(self): string
  281. function getNodeChildren(self, node: string | number): {number}
  282. function getNodeCount(self): number
  283. function getNodeMeshes(self, node: string | number): {}
  284. function getNodeName(self, index: number): string
  285. function getNodeOrientation(self, node: string | number): (number, number, number, number)
  286. function getNodeParent(self, node: string | number): number
  287. function getNodePose(self, node: string | number): (number, number, number, number, number, number, number)
  288. function getNodePosition(self, node: string | number): (number, number, number)
  289. function getNodeScale(self, node: string | number): (number, number, number)
  290. function getNodeSkin(self, node: string | number): number
  291. function getNodeTransform(self, node: string | number): (number, number, number, number, number, number, number, number, number, number)
  292. function getRootNode(self): number
  293. function getSkinCount(self): number
  294. function getSkinInverseBindMatrix(self, skin: number, joint: number): number
  295. function getSkinJoints(self, skin: number): {}
  296. function getTriangleCount(self): number
  297. function getTriangles(self): ({}, {})
  298. function getVertexCount(self): number
  299. function getWidth(self): number
  300. end
  301. declare class Rasterizer extends Object
  302. function getAdvance(self, glyph: string | number): number
  303. function getAscent(self): number
  304. function getBearing(self, glyph: string | number): number
  305. function getBoundingBox(self, glyph: string | number): (number, number, number, number)
  306. function getBoundingBox(self): (number, number, number, number)
  307. function getCurves(self, glyph: string | number, three: boolean): {}
  308. function getDescent(self): number
  309. function getDimensions(self, glyph: string): (number, number)
  310. function getDimensions(self): (number, number)
  311. function getFontSize(self): number
  312. function getGlyphCount(self): number
  313. function getHeight(self, glyph: string | number): number
  314. function getHeight(self): number
  315. function getKerning(self, first: string | number, second: string | number): number
  316. function getLeading(self): number
  317. function getWidth(self, glyph: string | number): number
  318. function getWidth(self): number
  319. function hasGlyphs(self, ...: string | number): boolean
  320. function newImage(self, glyph: string | number, spread: number?, padding: number?): Image
  321. end
  322. declare class Sound extends Object
  323. function getBlob(self): Blob
  324. function getByteStride(self): number
  325. function getCapacity(self): number
  326. function getChannelCount(self): number
  327. function getChannelLayout(self): ChannelLayout
  328. function getDuration(self): number
  329. function getFormat(self): SampleFormat
  330. function getFrameCount(self): number
  331. function getFrames(self, count: number?, srcOffset: number?): ({number}, number)
  332. function getFrames(self, t: {}, count: number?, srcOffset: number?, dstOffset: number?): ({number}, number)
  333. function getFrames(self, blob: Blob, count: number?, srcOffset: number?, dstOffset: number?): number
  334. function getFrames(self, sound: Sound, count: number?, srcOffset: number?, dstOffset: number?): number
  335. function getSampleCount(self): number
  336. function getSampleRate(self): number
  337. function isCompressed(self): boolean
  338. function isStream(self): boolean
  339. function setFrames(self, source: {} | Blob | Sound, count: number?, dstOffset: number?, srcOffset: number?): number
  340. end
  341. type DataModule = {
  342. newBlob:
  343. & ((size: number, name: string?) -> Blob)
  344. & ((contents: string, name: string?) -> Blob)
  345. & ((source: Blob, name: string?) -> Blob),
  346. newImage:
  347. & ((file: string | Blob) -> Image)
  348. & ((width: number, height: number, format: TextureFormat?, data: Blob?) -> Image)
  349. & ((source: Image) -> Image),
  350. newModelData: (file: string | Blob) -> ModelData,
  351. newRasterizer:
  352. & ((file: string | Blob, size: number?) -> Rasterizer)
  353. & ((size: number?) -> Rasterizer),
  354. newSound:
  355. & ((frames: number, format: SampleFormat?, channels: ChannelLayout?, sampleRate: number?, contents: Blob | string | nil | nil) -> Sound)
  356. & ((file: string | Blob, decode: boolean?) -> Sound),
  357. }
  358. type DisplayType =
  359. | "headset"
  360. | "window"
  361. type KeyCode =
  362. | "a"
  363. | "b"
  364. | "c"
  365. | "d"
  366. | "e"
  367. | "f"
  368. | "g"
  369. | "h"
  370. | "i"
  371. | "j"
  372. | "k"
  373. | "l"
  374. | "m"
  375. | "n"
  376. | "o"
  377. | "p"
  378. | "q"
  379. | "r"
  380. | "s"
  381. | "t"
  382. | "u"
  383. | "v"
  384. | "w"
  385. | "x"
  386. | "y"
  387. | "z"
  388. | "0"
  389. | "1"
  390. | "2"
  391. | "3"
  392. | "4"
  393. | "5"
  394. | "6"
  395. | "7"
  396. | "8"
  397. | "9"
  398. | "space"
  399. | "return"
  400. | "tab"
  401. | "escape"
  402. | "backspace"
  403. | "up"
  404. | "down"
  405. | "left"
  406. | "right"
  407. | "home"
  408. | "end"
  409. | "pageup"
  410. | "pagedown"
  411. | "insert"
  412. | "delete"
  413. | "f1"
  414. | "f2"
  415. | "f3"
  416. | "f4"
  417. | "f5"
  418. | "f6"
  419. | "f7"
  420. | "f8"
  421. | "f9"
  422. | "f10"
  423. | "f11"
  424. | "f12"
  425. | "`"
  426. | "-"
  427. | "="
  428. | "["
  429. | "]"
  430. | "\\"
  431. | ";"
  432. | "'"
  433. | ","
  434. | "."
  435. | "/"
  436. | "kp0"
  437. | "kp1"
  438. | "kp2"
  439. | "kp3"
  440. | "kp4"
  441. | "kp5"
  442. | "kp6"
  443. | "kp7"
  444. | "kp8"
  445. | "kp9"
  446. | "kp."
  447. | "kp/"
  448. | "kp*"
  449. | "kp-"
  450. | "kp+"
  451. | "kpenter"
  452. | "kp="
  453. | "lctrl"
  454. | "lshift"
  455. | "lalt"
  456. | "lgui"
  457. | "rctrl"
  458. | "rshift"
  459. | "ralt"
  460. | "rgui"
  461. | "capslock"
  462. | "scrolllock"
  463. | "numlock"
  464. type EventModule = {
  465. clear: () -> (),
  466. poll: () -> (() -> ()),
  467. push: (name: string, ...any) -> (),
  468. quit: (code: number?) -> (),
  469. restart: () -> (),
  470. }
  471. type FileAction =
  472. | "create"
  473. | "delete"
  474. | "modify"
  475. | "rename"
  476. type OpenMode =
  477. | "r"
  478. | "w"
  479. | "a"
  480. declare class File extends Object
  481. function getMode(self): OpenMode
  482. function getPath(self): string
  483. function getSize(self): (number, string)
  484. function isEOF(self): boolean
  485. function read(self, bytes: number): (string, number)
  486. function seek(self, offset: number)
  487. function tell(self): number
  488. function write(self, string: string, size: number?): (boolean, string)
  489. function write(self, blob: Blob, size: number?): (boolean, string)
  490. end
  491. type FilesystemModule = {
  492. append: (filename: string, content: string | Blob) -> (boolean, string | nil),
  493. createDirectory: (path: string) -> (boolean, string | nil),
  494. getAppdataDirectory: () -> string | nil,
  495. getDirectoryItems: (path: string) -> {string},
  496. getExecutablePath: () -> string | nil,
  497. getIdentity: () -> string | nil,
  498. getLastModified: (path: string) -> (number | nil, string | nil),
  499. getRealDirectory: (path: string) -> string | nil,
  500. getRequirePath: () -> string,
  501. getSaveDirectory: () -> string,
  502. getSize: (file: string) -> (number | nil, string | nil),
  503. getSource: () -> string | nil,
  504. getUserDirectory: () -> string | nil,
  505. getWorkingDirectory: () -> string | nil,
  506. isDirectory: (path: string) -> boolean,
  507. isFile: (path: string) -> boolean,
  508. isFused: () -> boolean,
  509. load: (filename: string, mode: string?) -> (() -> ()),
  510. mount: (path: string, mountpoint: string?, append: boolean?, root: string?) -> (boolean, string | nil),
  511. newBlob: (filename: string) -> Blob,
  512. newFile: (path: string, mode: OpenMode) -> (File, string),
  513. read: (filename: string) -> (string | nil, string | nil),
  514. remove: (path: string) -> (boolean, string | nil),
  515. setIdentity: (identity: string) -> (),
  516. setRequirePath: (path: string?) -> (),
  517. unmount: (path: string) -> boolean,
  518. unwatch: () -> (),
  519. watch: () -> (),
  520. write: (filename: string, content: string | Blob) -> (boolean, string),
  521. }
  522. type BlendAlphaMode =
  523. | "alphamultiply"
  524. | "premultiplied"
  525. type BlendMode =
  526. | "alpha"
  527. | "add"
  528. | "subtract"
  529. | "multiply"
  530. | "lighten"
  531. | "darken"
  532. | "screen"
  533. | "none"
  534. type CompareMode =
  535. | "none"
  536. | "equal"
  537. | "notequal"
  538. | "less"
  539. | "lequal"
  540. | "greater"
  541. | "gequal"
  542. type CullMode =
  543. | "none"
  544. | "back"
  545. | "front"
  546. type DataLayout =
  547. | "packed"
  548. | "std140"
  549. | "std430"
  550. type DataType =
  551. | "i8x4"
  552. | "u8x4"
  553. | "sn8x4"
  554. | "un8x4"
  555. | "sn10x3"
  556. | "un10x3"
  557. | "i16"
  558. | "i16x2"
  559. | "i16x4"
  560. | "u16"
  561. | "u16x2"
  562. | "u16x4"
  563. | "sn16x2"
  564. | "sn16x4"
  565. | "un16x2"
  566. | "un16x4"
  567. | "i32"
  568. | "i32x2"
  569. | "i32x3"
  570. | "i32x4"
  571. | "u32"
  572. | "u32x2"
  573. | "u32x3"
  574. | "u32x4"
  575. | "f16x2"
  576. | "f16x4"
  577. | "f32"
  578. | "f32x2"
  579. | "f32x3"
  580. | "f32x4"
  581. | "mat2"
  582. | "mat3"
  583. | "mat4"
  584. | "index16"
  585. | "index32"
  586. type DefaultShader =
  587. | "unlit"
  588. | "normal"
  589. | "font"
  590. | "cubemap"
  591. | "equirect"
  592. | "fill"
  593. type DrawMode =
  594. | "points"
  595. | "lines"
  596. | "triangles"
  597. type DrawStyle =
  598. | "fill"
  599. | "line"
  600. type FilterMode =
  601. | "nearest"
  602. | "linear"
  603. | "cubic"
  604. type HorizontalAlign =
  605. | "left"
  606. | "center"
  607. | "right"
  608. type MeshStorage =
  609. | "cpu"
  610. | "gpu"
  611. type OriginType =
  612. | "root"
  613. | "parent"
  614. type ShaderStage =
  615. | "vertex"
  616. | "fragment"
  617. | "compute"
  618. type ShaderType =
  619. | "graphics"
  620. | "compute"
  621. type StackType =
  622. | "transform"
  623. | "state"
  624. type StencilAction =
  625. | "keep"
  626. | "zero"
  627. | "replace"
  628. | "increment"
  629. | "decrement"
  630. | "incrementwrap"
  631. | "decrementwrap"
  632. | "invert"
  633. type TextureFeature =
  634. | "sample"
  635. | "render"
  636. | "storage"
  637. | "blit"
  638. | "cubic"
  639. type TextureType =
  640. | "2d"
  641. | "3d"
  642. | "cube"
  643. | "array"
  644. type TextureUsage =
  645. | "sample"
  646. | "render"
  647. | "storage"
  648. | "transfer"
  649. type VerticalAlign =
  650. | "top"
  651. | "middle"
  652. | "bottom"
  653. type Winding =
  654. | "clockwise"
  655. | "counterclockwise"
  656. type WrapMode =
  657. | "clamp"
  658. | "repeat"
  659. | "mirror"
  660. | "border"
  661. declare class Buffer extends Object
  662. function clear(self, offset: number?, extent: number?, value: number?)
  663. function getData(self, index: number?, count: number?): {}
  664. function getFormat(self): {}
  665. function getLength(self): number
  666. function getSize(self): number
  667. function getStride(self): number
  668. function mapData(self, offset: number?, extent: number?): lightuserdata
  669. function newReadback(self, offset: number?, extent: number?): Readback
  670. function setData(self, table: {}, destinationIndex: number?, sourceIndex: number?, count: number?)
  671. function setData(self, ...: number)
  672. function setData(self, vector: any)
  673. function setData(self, blob: Blob, destinationOffset: number?, sourceOffset: number?, size: number?)
  674. function setData(self, buffer: Buffer, destinationOffset: number?, sourceOffset: number?, size: number?)
  675. end
  676. declare class Font extends Object
  677. function getAscent(self): number
  678. function getDescent(self): number
  679. function getHeight(self): number
  680. function getKerning(self, first: string | number, second: string | number): number
  681. function getLineSpacing(self): number
  682. function getLines(self, string: string, wrap: number): {string}
  683. function getLines(self, strings: {}, wrap: number): {string}
  684. function getPixelDensity(self): number
  685. function getRasterizer(self): Rasterizer
  686. function getVertices(self, string: string, wrap: number?, halign: HorizontalAlign, valign: VerticalAlign): ({number}, Material)
  687. function getVertices(self, strings: {}, wrap: number?, halign: HorizontalAlign, valign: VerticalAlign): ({number}, Material)
  688. function getWidth(self, string: string): number
  689. function getWidth(self, strings: {}): number
  690. function setLineSpacing(self, spacing: number)
  691. function setPixelDensity(self, density: number)
  692. function setPixelDensity(self)
  693. end
  694. declare class Material extends Object
  695. function getProperties(self): {}
  696. end
  697. declare class Mesh extends Object
  698. function computeBoundingBox(self): boolean
  699. function getBoundingBox(self): (number, number, number, number, number, number)
  700. function getDrawMode(self): DrawMode
  701. function getDrawRange(self): (number, number, number)
  702. function getDrawRange(self)
  703. function getIndexBuffer(self): Buffer
  704. function getIndices(self): {number}
  705. function getMaterial(self): Material
  706. function getVertexBuffer(self): Buffer
  707. function getVertexCount(self): number
  708. function getVertexFormat(self): {}
  709. function getVertexStride(self): number
  710. function getVertices(self, index: number?, count: number?): {{number}}
  711. function setBoundingBox(self, minx: number, maxx: number, miny: number, maxy: number, minz: number, maxz: number)
  712. function setBoundingBox(self)
  713. function setDrawMode(self, mode: DrawMode)
  714. function setDrawRange(self, start: number, count: number, offset: number)
  715. function setDrawRange(self)
  716. function setIndexBuffer(self, buffer: Buffer)
  717. function setIndices(self, t: {number})
  718. function setIndices(self, blob: Blob, type: DataType)
  719. function setIndices(self)
  720. function setMaterial(self, material: Material)
  721. function setMaterial(self, texture: Texture)
  722. function setVertices(self, vertices: {{number}}, index: number?, count: number?)
  723. function setVertices(self, blob: Blob, index: number?, count: number?)
  724. end
  725. declare class Model extends Object
  726. function animate(self, animation: string, time: number, blend: number?)
  727. function clone(self): Model
  728. function getAnimationCount(self): number
  729. function getAnimationDuration(self, animation: string | number): number
  730. function getAnimationName(self, index: number): string | nil
  731. function getBlendShapeCount(self): number
  732. function getBlendShapeName(self, index: number): string
  733. function getBlendShapeWeight(self, blendshape: string | number): number
  734. function getBoundingBox(self): (number, number, number, number, number, number)
  735. function getBoundingSphere(self): (number, number, number, number)
  736. function getCenter(self): (number, number, number)
  737. function getData(self): ModelData
  738. function getDepth(self): number
  739. function getDimensions(self): (number, number, number)
  740. function getHeight(self): number
  741. function getIndexBuffer(self): Buffer
  742. function getMaterial(self, which: string | number): Material
  743. function getMaterialCount(self): number
  744. function getMaterialName(self, index: number): string
  745. function getMesh(self, index: number): Mesh
  746. function getMeshCount(self): number
  747. function getMetadata(self): string
  748. function getNodeChildren(self, node: string | number): {number}
  749. function getNodeCount(self): number
  750. function getNodeName(self, index: number): string
  751. function getNodeOrientation(self, node: string | number, origin: OriginType?): (number, number, number, number)
  752. function getNodeParent(self, node: number): number
  753. function getNodePose(self, node: string | number, origin: OriginType?): (number, number, number, number, number, number, number)
  754. function getNodePosition(self, node: string | number, space: OriginType?): (number, number, number)
  755. function getNodeScale(self, node: string | number, origin: OriginType?): (number, number, number)
  756. function getNodeTransform(self, node: string | number, origin: OriginType?): (number, number, number, number, number, number, number, number, number, number)
  757. function getRootNode(self): number
  758. function getTexture(self, index: number): Texture
  759. function getTextureCount(self): number
  760. function getTriangleCount(self): number
  761. function getTriangles(self): ({number}, {number})
  762. function getVertexBuffer(self): Buffer
  763. function getVertexCount(self): number
  764. function getWidth(self): number
  765. function hasJoints(self): boolean
  766. function resetBlendShapes(self)
  767. function resetNodeTransforms(self)
  768. function setBlendShapeWeight(self, blendshape: string | number, weight: number)
  769. function setNodeOrientation(self, node: string | number, angle: number, ax: number, ay: number, az: number, blend: number?)
  770. function setNodeOrientation(self, node: string | number, orientation: Quat, blend: number?)
  771. function setNodePose(self, node: string | number, x: number, y: number, z: number, angle: number, ax: number, ay: number, az: number, blend: number?)
  772. function setNodePose(self, node: string | number, position: Vec3, orientation: Quat, blend: number?)
  773. function setNodePosition(self, node: string | number, x: number, y: number, z: number, blend: number?)
  774. function setNodePosition(self, node: string | number, position: Vec3, blend: number?)
  775. function setNodeScale(self, node: string | number, sx: number, sy: number, sz: number, blend: number?)
  776. function setNodeScale(self, node: string | number, scale: Vec3, blend: number?)
  777. function setNodeTransform(self, node: string | number, x: number, y: number, z: number, sx: number, sy: number, sz: number, angle: number, ax: number, ay: number, az: number, blend: number?)
  778. function setNodeTransform(self, node: string | number, position: Vec3, scale: Vec3, orientation: Quat, blend: number?)
  779. function setNodeTransform(self, node: string | number, transform: Mat4, blend: number?)
  780. end
  781. declare class Pass extends Object
  782. function barrier(self)
  783. function beginTally(self): number
  784. function box(self, x: number?, y: number?, z: number?, width: number?, height: number?, depth: number?, angle: number?, ax: number?, ay: number?, az: number?, style: DrawStyle?)
  785. function box(self, position: Vec3, size: Vec3, orientation: Quat, style: DrawStyle?)
  786. function box(self, transform: Mat4, style: DrawStyle?)
  787. function capsule(self, x: number?, y: number?, z: number?, radius: number?, length: number?, angle: number?, ax: number?, ay: number?, az: number?, segments: number?)
  788. function capsule(self, position: Vec3, radius: number?, length: number?, orientation: Quat, segments: number?)
  789. function capsule(self, transform: Mat4, segments: number?)
  790. function capsule(self, p1: Vec3, p2: Vec3, radius: number?, segments: number?)
  791. function circle(self, x: number?, y: number?, z: number?, radius: number?, angle: number?, ax: number?, ay: number?, az: number?, style: DrawStyle?, angle1: number?, angle2: number?, segments: number?)
  792. function circle(self, position: Vec3, radius: number?, orientation: Quat, style: DrawStyle?, angle1: number?, angle2: number?, segments: number?)
  793. function circle(self, transform: Mat4, style: DrawStyle?, angle1: number?, angle2: number?, segments: number?)
  794. function compute(self, x: number?, y: number?, z: number?)
  795. function compute(self, buffer: Buffer, offset: number?)
  796. function cone(self, x: number?, y: number?, z: number?, radius: number?, length: number?, angle: number?, ax: number?, ay: number?, az: number?, segments: number?)
  797. function cone(self, position: Vec3, radius: number?, length: number?, orientation: Quat, segments: number?)
  798. function cone(self, transform: Mat4, segments: number?)
  799. function cone(self, p1: Vec3, p2: Vec3, radius: number?, segments: number?)
  800. function cube(self, x: number?, y: number?, z: number?, size: number?, angle: number?, ax: number?, ay: number?, az: number?, style: DrawStyle?)
  801. function cube(self, position: Vec3, size: number?, orientation: Quat, style: DrawStyle?)
  802. function cube(self, transform: Mat4, style: DrawStyle?)
  803. function cylinder(self, x: number?, y: number?, z: number?, radius: number?, length: number?, angle: number?, ax: number?, ay: number?, az: number?, capped: boolean?, angle1: number?, angle2: number?, segments: number?)
  804. function cylinder(self, position: Vec3, radius: number?, length: number?, orientation: Quat, capped: boolean?, angle1: number?, angle2: number?, segments: number?)
  805. function cylinder(self, transform: Mat4, capped: boolean?, angle1: number?, angle2: number?, segments: number?)
  806. function cylinder(self, p1: Vec3, p2: Vec3, radius: number?, capped: boolean?, angle1: number?, angle2: number?, segments: number?)
  807. function draw(self, object: Model | Mesh | Texture, x: number?, y: number?, z: number?, scale: number?, angle: number?, ax: number?, ay: number?, az: number?, instances: number?)
  808. function draw(self, object: Model | Mesh | Texture, position: Vec3, scale3: Vec3, orientation: Quat, instances: number?)
  809. function draw(self, object: Model | Mesh | Texture, transform: Mat4, instances: number?)
  810. function fill(self, texture: Texture)
  811. function fill(self)
  812. function finishTally(self): number
  813. function getCanvas(self): {}
  814. function getCanvas(self)
  815. function getClear(self): {}
  816. function getDimensions(self): (number, number)
  817. function getHeight(self): number
  818. function getLabel(self): string
  819. function getProjection(self, view: number): (number, number, number, number)
  820. function getProjection(self, view: number, matrix: Mat4): Mat4
  821. function getStats(self): {}
  822. function getTallyBuffer(self): (Buffer, number)
  823. function getViewCount(self): number
  824. function getViewPose(self, view: number): (number, number, number, number, number, number, number)
  825. function getViewPose(self, view: number, matrix: Mat4, invert: boolean): Mat4
  826. function getWidth(self): number
  827. function line(self, x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, ...: number)
  828. function line(self, t: {number | Vec3})
  829. function line(self, v1: Vec3, v2: Vec3, ...: Vec3)
  830. function mesh(self, vertices: Buffer?, x: number?, y: number?, z: number?, scale: number?, angle: number?, ax: number?, ay: number?, az: number?, start: number?, count: number?, instances: number?)
  831. function mesh(self, vertices: Buffer?, position: Vec3, scales: Vec3, orientation: Quat, start: number?, count: number?, instances: number?)
  832. function mesh(self, vertices: Buffer?, transform: Mat4, start: number?, count: number?, instances: number?)
  833. function mesh(self, vertices: Buffer?, indices: Buffer, x: number?, y: number?, z: number?, scale: number?, angle: number?, ax: number?, ay: number?, az: number?, start: number?, count: number?, instances: number?, base: number?)
  834. function mesh(self, vertices: Buffer?, indices: Buffer, position: Vec3, scales: Vec3, orientation: Quat, start: number?, count: number?, instances: number?, base: number?)
  835. function mesh(self, vertices: Buffer?, indices: Buffer, transform: Mat4, start: number?, count: number?, instances: number?, base: number?)
  836. function mesh(self, vertices: Buffer?, indices: Buffer, draws: Buffer, drawcount: number?, offset: number?, stride: number?)
  837. function origin(self)
  838. function plane(self, x: number?, y: number?, z: number?, width: number?, height: number?, angle: number?, ax: number?, ay: number?, az: number?, style: DrawStyle?, columns: number?, rows: number?)
  839. function plane(self, position: Vec3, size: Vec2, orientation: Quat, style: DrawStyle?, columns: number?, rows: number?)
  840. function plane(self, transform: Mat4, style: DrawStyle?, columns: number?, rows: number?)
  841. function points(self, x: number, y: number, z: number, ...: any)
  842. function points(self, t: {number | Vec3})
  843. function points(self, v: Vec3, ...: any)
  844. function polygon(self, x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, ...: any)
  845. function polygon(self, t: {number | Vec3})
  846. function polygon(self, v1: Vec3, v2: Vec3, ...: any)
  847. function pop(self, stack: StackType?)
  848. function push(self, stack: StackType?)
  849. function reset(self)
  850. function rotate(self, angle: number, ax: number, ay: number, az: number)
  851. function rotate(self, rotation: Quat)
  852. function roundrect(self, x: number?, y: number?, z: number?, width: number?, height: number?, thickness: number?, angle: number?, ax: number?, ay: number?, az: number?, radius: number?, segments: number?)
  853. function roundrect(self, position: Vec3, size: Vec3, orientation: Quat, radius: number?, segments: number?)
  854. function roundrect(self, transform: Mat4, radius: number?, segments: number?)
  855. function scale(self, sx: number, sy: number?, sz: number?)
  856. function scale(self, scale: Vec3)
  857. function send(self, name: string, buffer: Buffer, offset: number?, extent: number?)
  858. function send(self, name: string, texture: Texture)
  859. function send(self, name: string, sampler: Sampler)
  860. function send(self, name: string, data: any)
  861. function setAlphaToCoverage(self, enable: boolean)
  862. function setBlendMode(self, blend: BlendMode, alphaBlend: BlendAlphaMode)
  863. function setBlendMode(self)
  864. function setBlendMode(self, index: number, blend: BlendMode, alphaBlend: BlendAlphaMode)
  865. function setBlendMode(self, index: number)
  866. function setCanvas(self, ...: Texture)
  867. function setCanvas(self, canvas: {})
  868. function setCanvas(self)
  869. function setClear(self, hex: number)
  870. function setClear(self, r: number, g: number, b: number, a: number?)
  871. function setClear(self, clear: boolean)
  872. function setClear(self, t: {})
  873. function setColor(self, r: number, g: number, b: number, a: number?)
  874. function setColor(self, t: {number})
  875. function setColor(self, hex: number, a: number?)
  876. function setColorWrite(self, enable: boolean)
  877. function setColorWrite(self, r: boolean, g: boolean, b: boolean, a: boolean)
  878. function setColorWrite(self, index: number, enable: boolean)
  879. function setColorWrite(self, index: number, r: boolean, g: boolean, b: boolean, a: boolean)
  880. function setCullMode(self, mode: CullMode)
  881. function setCullMode(self)
  882. function setDepthClamp(self, enable: boolean)
  883. function setDepthOffset(self, offset: number?, sloped: number?)
  884. function setDepthTest(self, test: CompareMode)
  885. function setDepthTest(self)
  886. function setDepthWrite(self, write: boolean)
  887. function setFaceCull(self, mode: CullMode)
  888. function setFaceCull(self)
  889. function setFont(self, font: Font)
  890. function setMaterial(self, material: Texture | Material)
  891. function setMaterial(self)
  892. function setMeshMode(self, mode: DrawMode)
  893. function setProjection(self, view: number, left: number, right: number, up: number, down: number, near: number?, far: number?)
  894. function setProjection(self, view: number, matrix: Mat4)
  895. function setSampler(self, sampler: Sampler | FilterMode | nil)
  896. function setScissor(self, x: number, y: number, w: number, h: number)
  897. function setScissor(self)
  898. function setShader(self, shader: Shader | DefaultShader)
  899. function setShader(self)
  900. function setStencilTest(self, test: CompareMode, value: number, mask: number?)
  901. function setStencilTest(self)
  902. function setStencilWrite(self, action: StencilAction | {StencilAction}, value: number?, mask: number?)
  903. function setStencilWrite(self)
  904. function setTallyBuffer(self, buffer: Buffer, offset: number)
  905. function setTallyBuffer(self)
  906. function setViewCull(self, enable: boolean)
  907. function setViewPose(self, view: number, x: number, y: number, z: number, angle: number, ax: number, ay: number, az: number)
  908. function setViewPose(self, view: number, position: Vec3, orientation: Quat)
  909. function setViewPose(self, view: number, matrix: Mat4, inverted: boolean)
  910. function setViewport(self, x: number, y: number, w: number, h: number, dmin: number?, dmax: number?)
  911. function setViewport(self)
  912. function setWinding(self, winding: Winding)
  913. function setWireframe(self, enable: boolean)
  914. function skybox(self, skybox: Texture)
  915. function skybox(self)
  916. function sphere(self, x: number?, y: number?, z: number?, radius: number?, angle: number?, ax: number?, ay: number?, az: number?, longitudes: number?, latitudes: number?)
  917. function sphere(self, position: Vec3, radius: number?, orientation: Quat, longitudes: number?, latitudes: number?)
  918. function sphere(self, transform: Mat4, longitudes: number?, latitudes: number?)
  919. function text(self, text: string, x: number?, y: number?, z: number?, scale: number?, angle: number?, ax: number?, ay: number?, az: number?, wrap: number?, halign: HorizontalAlign?, valign: VerticalAlign?)
  920. function text(self, text: string, position: Vec3, scale: number?, orientation: Quat, wrap: number?, halign: HorizontalAlign?, valign: VerticalAlign?)
  921. function text(self, text: string, transform: Mat4, wrap: number?, halign: HorizontalAlign?, valign: VerticalAlign?)
  922. function text(self, colortext: {}, x: number?, y: number?, z: number?, scale: number?, angle: number?, ax: number?, ay: number?, az: number?, wrap: number?, halign: HorizontalAlign?, valign: VerticalAlign?)
  923. function text(self, colortext: {}, position: Vec3, scale: number?, orientation: Quat, wrap: number?, halign: HorizontalAlign?, valign: VerticalAlign?)
  924. function text(self, colortext: {}, transform: Mat4, wrap: number?, halign: HorizontalAlign?, valign: VerticalAlign?)
  925. function torus(self, x: number?, y: number?, z: number?, radius: number?, thickness: number?, angle: number?, ax: number?, ay: number?, az: number?, tsegments: number?, psegments: number?)
  926. function torus(self, position: Vec3, scale: Vec3, orientation: Quat, tsegments: number?, psegments: number?)
  927. function torus(self, transform: Mat4, tsegments: number?, psegments: number?)
  928. function transform(self, x: number, y: number, z: number, sx: number, sy: number, sz: number, angle: number, ax: number, ay: number, az: number)
  929. function transform(self, translation: Vec3, scale: Vec3, rotation: Quat)
  930. function transform(self, transform: Mat4)
  931. function translate(self, x: number, y: number, z: number)
  932. function translate(self, translation: Vec3)
  933. end
  934. declare class Readback extends Object
  935. function getBlob(self): Blob
  936. function getData(self): {}
  937. function getImage(self): Image
  938. function isComplete(self): boolean
  939. function wait(self): boolean
  940. end
  941. declare class Sampler extends Object
  942. function getAnisotropy(self): number
  943. function getCompareMode(self): CompareMode
  944. function getFilter(self): (FilterMode, FilterMode, FilterMode)
  945. function getMipmapRange(self): (number, number)
  946. function getWrap(self): (WrapMode, WrapMode, WrapMode)
  947. end
  948. declare class Shader extends Object
  949. function clone(self, source: Shader, flags: {}): Shader
  950. function getBufferFormat(self, name: string): ({}, number)
  951. function getLabel(self): string
  952. function getType(self): ShaderType
  953. function getWorkgroupSize(self): (number, number, number)
  954. function hasAttribute(self, name: string): boolean
  955. function hasAttribute(self, location: number): boolean
  956. function hasStage(self, stage: ShaderStage): boolean
  957. function hasVariable(self, name: string): boolean
  958. end
  959. declare class Texture extends Object
  960. function clear(self)
  961. function clear(self, hex: number, layer: number?, layerCount: number?, mipmap: number?, mipmapCount: number?)
  962. function clear(self, r: number, g: number, b: number, a: number, layer: number?, layerCount: number?, mipmap: number?, mipmapCount: number?)
  963. function clear(self, t: {number}, layer: number?, layerCount: number?, mipmap: number?, mipmapCount: number?)
  964. function clear(self, v3: Vec3, layer: number?, layerCount: number?, mipmap: number?, mipmapCount: number?)
  965. function clear(self, v4: Vec4, layer: number?, layerCount: number?, mipmap: number?, mipmapCount: number?)
  966. function generateMipmaps(self, base: number?, count: number?)
  967. function getDimensions(self): (number, number, number)
  968. function getFormat(self): (TextureFormat, boolean)
  969. function getHeight(self): number
  970. function getLabel(self): string
  971. function getLayerCount(self): number
  972. function getMipmapCount(self): number
  973. function getPixels(self, x: number?, y: number?, layer: number?, mipmap: number?, width: number?, height: number?): Image
  974. function getSampleCount(self): number
  975. function getSampler(self): Sampler
  976. function getType(self): TextureType
  977. function getWidth(self): number
  978. function hasUsage(self, ...: TextureUsage): boolean
  979. function newReadback(self, x: number?, y: number?, layer: number?, mipmap: number?, width: number?, height: number?): Readback
  980. function setPixels(self, source: Texture | Image, dstx: number?, dsty: number?, dstlayer: number?, dstmipmap: number?, srcx: number?, srcy: number?, srclayer: number?, srcmipmap: number?, width: number?, height: number?, layers: number?)
  981. function setSampler(self, mode: FilterMode)
  982. function setSampler(self, sampler: Sampler)
  983. function setSampler(self)
  984. end
  985. type GraphicsModule = {
  986. compileShader: (stage: ShaderStage, source: string | Blob) -> Blob,
  987. getBackgroundColor: () -> (number, number, number, number),
  988. getDefaultFont: () -> Font,
  989. getDevice: () -> {},
  990. getFeatures: () -> {},
  991. getLimits: () -> {},
  992. getWindowPass: () -> Pass | nil,
  993. isFormatSupported: (format: TextureFormat, ...TextureFeature) -> (boolean, boolean),
  994. isHDR: () -> boolean,
  995. isTimingEnabled: () -> boolean,
  996. newBuffer:
  997. & ((size: number) -> Buffer)
  998. & ((blob: Blob) -> Buffer)
  999. & ((format: {} | DataType, length: number?) -> Buffer)
  1000. & ((format: {} | DataType, data: {} | Blob) -> Buffer),
  1001. newFont:
  1002. & ((file: string | Blob, size: number?, spread: number?) -> Font)
  1003. & ((size: number?, spread: number?) -> Font)
  1004. & ((rasterizer: Rasterizer, spread: number?) -> Font),
  1005. newMaterial: (properties: {}) -> Material,
  1006. newMesh:
  1007. & ((count: number, storage: MeshStorage?) -> Mesh)
  1008. & ((vertices: {}, storage: MeshStorage?) -> Mesh)
  1009. & ((blob: Blob, storage: MeshStorage?) -> Mesh)
  1010. & ((format: {}, count: number, storage: MeshStorage?) -> Mesh)
  1011. & ((format: {}, vertices: {}, storage: MeshStorage?) -> Mesh)
  1012. & ((format: {}, blob: Blob, storage: MeshStorage?) -> Mesh)
  1013. & ((buffer: Buffer) -> Mesh),
  1014. newModel:
  1015. & ((file: string | Blob, options: {}?) -> Model)
  1016. & ((modelData: ModelData, options: {}?) -> Model),
  1017. newPass:
  1018. & ((...Texture) -> Pass)
  1019. & ((canvas: {}) -> Pass)
  1020. & (() -> Pass),
  1021. newSampler: (parameters: {}) -> Sampler,
  1022. newShader:
  1023. & ((vertex: string | DefaultShader | Blob, fragment: string | DefaultShader | Blob, options: {}?) -> Shader)
  1024. & ((compute: string | Blob, options: {}?) -> Shader)
  1025. & ((defaultshader: DefaultShader, options: {}?) -> Shader),
  1026. newTexture:
  1027. & ((file: string | Blob, options: {}?) -> Texture)
  1028. & ((width: number, height: number, options: {}?) -> Texture)
  1029. & ((width: number, height: number, layers: number, options: {}?) -> Texture)
  1030. & ((image: string, options: {}?) -> Texture)
  1031. & ((images: {string | Blob | Image}, options: {}?) -> Texture),
  1032. newTextureView: (parent: Texture, options: {}?) -> Texture,
  1033. present: () -> (),
  1034. setBackgroundColor:
  1035. & ((r: number, g: number, b: number, a: number?) -> ())
  1036. & ((hex: number, a: number?) -> ())
  1037. & ((table: {number}) -> ()),
  1038. setTimingEnabled: (enable: boolean) -> (),
  1039. submit:
  1040. & ((...Pass | boolean | nil) -> boolean)
  1041. & ((t: {Pass | boolean}) -> boolean),
  1042. wait: () -> (),
  1043. }
  1044. type Device =
  1045. | "head"
  1046. | "floor"
  1047. | "left"
  1048. | "right"
  1049. | "hand/left"
  1050. | "hand/right"
  1051. | "hand/left/grip"
  1052. | "hand/right/grip"
  1053. | "hand/left/point"
  1054. | "hand/right/point"
  1055. | "hand/left/pinch"
  1056. | "hand/right/pinch"
  1057. | "hand/left/poke"
  1058. | "hand/right/poke"
  1059. | "elbow/left"
  1060. | "elbow/right"
  1061. | "shoulder/left"
  1062. | "shoulder/right"
  1063. | "chest"
  1064. | "waist"
  1065. | "knee/left"
  1066. | "knee/right"
  1067. | "foot/left"
  1068. | "foot/right"
  1069. | "camera"
  1070. | "keyboard"
  1071. | "stylus"
  1072. | "eye/left"
  1073. | "eye/right"
  1074. | "eye/gaze"
  1075. type DeviceAxis =
  1076. | "trigger"
  1077. | "thumbstick"
  1078. | "thumbrest"
  1079. | "touchpad"
  1080. | "grip"
  1081. | "nib"
  1082. type DeviceButton =
  1083. | "trigger"
  1084. | "thumbstick"
  1085. | "thumbrest"
  1086. | "touchpad"
  1087. | "grip"
  1088. | "menu"
  1089. | "a"
  1090. | "b"
  1091. | "x"
  1092. | "y"
  1093. | "nib"
  1094. type FoveationLevel =
  1095. | "low"
  1096. | "medium"
  1097. | "high"
  1098. type HeadsetDriver =
  1099. | "simulator"
  1100. | "openxr"
  1101. type HeadsetOrigin =
  1102. | "head"
  1103. | "floor"
  1104. type PassthroughMode =
  1105. | "opaque"
  1106. | "blend"
  1107. | "add"
  1108. declare class Layer extends Object
  1109. function getColor(self): (number, number, number, number)
  1110. function getCurve(self): number
  1111. function getDimensions(self): (number, number)
  1112. function getOrientation(self): (number, number, number, number)
  1113. function getPass(self): Pass
  1114. function getPose(self): (number, number, number, number, number, number, number)
  1115. function getPosition(self): (number, number, number)
  1116. function getTexture(self): Texture
  1117. function getViewport(self): (number, number, number, number)
  1118. function setColor(self, r: number, g: number, b: number, a: number?)
  1119. function setColor(self, t: {number})
  1120. function setColor(self, hex: number, a: number?)
  1121. function setCurve(self, curve: number?)
  1122. function setDimensions(self, width: number, height: number)
  1123. function setOrientation(self, angle: number, ax: number, ay: number, az: number)
  1124. function setOrientation(self, orientation: Quat)
  1125. function setPose(self, x: number, y: number, z: number, angle: number, ax: number, ay: number, az: number)
  1126. function setPose(self, position: Vec3, orientation: Quat)
  1127. function setPosition(self, x: number, y: number, z: number)
  1128. function setViewport(self, x: number, y: number, w: number, h: number)
  1129. end
  1130. type HeadsetModule = {
  1131. animate:
  1132. & ((model: Model) -> boolean)
  1133. & ((device: Device?, model: Model) -> boolean),
  1134. getAngularVelocity: (device: Device?) -> (number, number, number),
  1135. getAxis: (device: Device, axis: DeviceAxis) -> number | nil,
  1136. getBoundsDepth: () -> number,
  1137. getBoundsDimensions: () -> (number, number),
  1138. getBoundsGeometry: (t: {}?) -> {},
  1139. getBoundsWidth: () -> number,
  1140. getClipDistance: () -> (number, number),
  1141. getDeltaTime: () -> number,
  1142. getDirection: (device: Device?) -> (number, number, number),
  1143. getDisplayDimensions: () -> (number, number),
  1144. getDisplayHeight: () -> number,
  1145. getDisplayWidth: () -> number,
  1146. getDriver: () -> (HeadsetDriver, string),
  1147. getFeatures: () -> {},
  1148. getFoveation: () -> (FoveationLevel, boolean),
  1149. getHandles: () -> (lightuserdata, lightuserdata),
  1150. getHands: () -> {Device},
  1151. getLayers: () -> {Layer},
  1152. getName: () -> string,
  1153. getOrientation: (device: Device?) -> (number, number, number, number),
  1154. getPass: () -> Pass | nil,
  1155. getPassthrough: () -> PassthroughMode,
  1156. getPassthroughModes: () -> {},
  1157. getPose: (device: Device?) -> (number, number, number, number, number, number, number),
  1158. getPosition: (device: Device?) -> (number, number, number),
  1159. getRefreshRate: () -> number | nil,
  1160. getRefreshRates: () -> {} | nil,
  1161. getSkeleton:
  1162. & ((device: Device) -> {{number}} | nil)
  1163. & ((device: Device, t: {}) -> {{number}} | nil),
  1164. getTexture: () -> Texture | nil,
  1165. getTime: () -> number,
  1166. getVelocity: (device: Device?) -> (number, number, number),
  1167. getViewAngles: (view: number) -> (number | nil, number | nil, number | nil, number | nil),
  1168. getViewCount: () -> number,
  1169. getViewPose: (view: number) -> (number | nil, number | nil, number | nil, number | nil, number | nil, number | nil, number | nil),
  1170. isActive: () -> boolean,
  1171. isDown: (device: Device, button: DeviceButton) -> boolean | nil,
  1172. isFocused: () -> boolean,
  1173. isMounted: () -> boolean,
  1174. isSeated: () -> boolean,
  1175. isTouched: (device: Device, button: DeviceButton) -> boolean | nil,
  1176. isTracked: (device: Device?) -> boolean,
  1177. isVisible: () -> boolean,
  1178. newLayer: (width: number, height: number) -> Layer,
  1179. newModel:
  1180. & ((key: lightuserdata) -> Model)
  1181. & ((device: Device?) -> Model),
  1182. setBackground:
  1183. & ((background: Image | {Image} | Texture) -> ())
  1184. & (() -> ()),
  1185. setClipDistance: (near: number, far: number) -> (),
  1186. setFoveation:
  1187. & ((level: FoveationLevel, dynamic: boolean?) -> boolean)
  1188. & (() -> boolean),
  1189. setLayers:
  1190. & ((...Layer) -> ())
  1191. & ((t: {}) -> ()),
  1192. setPassthrough:
  1193. & ((mode: PassthroughMode) -> boolean)
  1194. & ((transparent: boolean) -> boolean)
  1195. & (() -> boolean),
  1196. setRefreshRate: (rate: number) -> boolean,
  1197. start: () -> (),
  1198. stop: () -> (),
  1199. stopVibration: (device: Device?) -> (),
  1200. submit: () -> (),
  1201. update: () -> (),
  1202. vibrate: (device: Device?, strength: number?, duration: number?, frequency: number?) -> boolean,
  1203. wasPressed: (device: Device, button: DeviceButton) -> boolean,
  1204. wasReleased: (device: Device, button: DeviceButton) -> boolean,
  1205. }
  1206. declare class Curve extends Object
  1207. function addPoint(self, x: number, y: number, z: number, index: number?)
  1208. function evaluate(self, t: number): (number, number, number)
  1209. function getPoint(self, index: number): (number, number, number)
  1210. function getPointCount(self): number
  1211. function getTangent(self, t: number): (number, number, number)
  1212. function removePoint(self, index: number)
  1213. function render(self, n: number?, t1: number?, t2: number?): {number}
  1214. function setPoint(self, index: number, x: number, y: number, z: number)
  1215. function slice(self, t1: number, t2: number): Curve
  1216. end
  1217. declare class RandomGenerator extends Object
  1218. function getSeed(self): (number, number)
  1219. function getState(self): string
  1220. function random(self): number
  1221. function random(self, high: number): number
  1222. function random(self, low: number, high: number): number
  1223. function randomNormal(self, sigma: number?, mu: number?): number
  1224. function setSeed(self, seed: number)
  1225. function setSeed(self, low: number, high: number)
  1226. function setState(self, state: string)
  1227. end
  1228. type MathModule = {
  1229. drain: () -> (),
  1230. gammaToLinear:
  1231. & ((gr: number, gg: number, gb: number) -> (number, number, number))
  1232. & ((color: {number}) -> (number, number, number))
  1233. & ((x: number) -> number),
  1234. getRandomSeed: () -> number,
  1235. linearToGamma:
  1236. & ((lr: number, lg: number, lb: number) -> (number, number, number))
  1237. & ((color: {number}) -> (number, number, number))
  1238. & ((x: number) -> number),
  1239. mat4:
  1240. & (() -> Mat4)
  1241. & ((n: Mat4) -> Mat4)
  1242. & ((position: Vec3?, scale: Vec3?, rotation: Quat?) -> Mat4)
  1243. & ((position: Vec3?, rotation: Quat?) -> Mat4)
  1244. & ((...number) -> Mat4)
  1245. & ((d: number) -> Mat4),
  1246. newCurve:
  1247. & ((x: number, y: number, z: number, ...any) -> Curve)
  1248. & ((v: Vec3, ...any) -> Curve)
  1249. & ((points: {}) -> Curve)
  1250. & ((n: number) -> Curve),
  1251. newMat4:
  1252. & (() -> Mat4)
  1253. & ((n: Mat4) -> Mat4)
  1254. & ((position: Vec3?, scale: Vec3?, rotation: Quat?) -> Mat4)
  1255. & ((position: Vec3?, rotation: Quat?) -> Mat4)
  1256. & ((...number) -> Mat4)
  1257. & ((d: number) -> Mat4),
  1258. newQuat:
  1259. & ((angle: number?, ax: number?, ay: number?, az: number?, raw: boolean?) -> Quat)
  1260. & ((r: Quat) -> Quat)
  1261. & ((v: Vec3) -> Quat)
  1262. & ((v: Vec3, u: Vec3) -> Quat)
  1263. & ((m: Mat4) -> Quat)
  1264. & (() -> Quat),
  1265. newRandomGenerator:
  1266. & (() -> RandomGenerator)
  1267. & ((seed: number) -> RandomGenerator)
  1268. & ((low: number, high: number) -> RandomGenerator),
  1269. newVec2:
  1270. & ((x: number?, y: number?) -> Vec2)
  1271. & ((u: Vec2) -> Vec2),
  1272. newVec3:
  1273. & ((x: number?, y: number?, z: number?) -> Vec3)
  1274. & ((u: Vec3) -> Vec3)
  1275. & ((m: Mat4) -> Vec3)
  1276. & ((q: Quat) -> Vec3),
  1277. newVec4:
  1278. & ((x: number?, y: number?, z: number?, w: number?) -> Vec4)
  1279. & ((u: Vec4) -> Vec4),
  1280. noise:
  1281. & ((x: number) -> number)
  1282. & ((x: number, y: number) -> number)
  1283. & ((x: number, y: number, z: number) -> number)
  1284. & ((x: number, y: number, z: number, w: number) -> number),
  1285. quat:
  1286. & ((angle: number?, ax: number?, ay: number?, az: number?, raw: boolean?) -> Quat)
  1287. & ((r: Quat) -> Quat)
  1288. & ((v: Vec3) -> Quat)
  1289. & ((v: Vec3, u: Vec3) -> Quat)
  1290. & ((m: Mat4) -> Quat)
  1291. & (() -> Quat),
  1292. random:
  1293. & (() -> number)
  1294. & ((high: number) -> number)
  1295. & ((low: number, high: number) -> number),
  1296. randomNormal: (sigma: number?, mu: number?) -> number,
  1297. setRandomSeed: (seed: number) -> (),
  1298. vec2:
  1299. & ((x: number?, y: number?) -> Vec2)
  1300. & ((u: Vec2) -> Vec2),
  1301. vec3:
  1302. & ((x: number?, y: number?, z: number?) -> Vec3)
  1303. & ((u: Vec3) -> Vec3)
  1304. & ((m: Mat4) -> Vec3)
  1305. & ((q: Quat) -> Vec3),
  1306. vec4:
  1307. & ((x: number?, y: number?, z: number?, w: number?) -> Vec4)
  1308. & ((u: Vec4) -> Vec4),
  1309. }
  1310. type JointType =
  1311. | "ball"
  1312. | "distance"
  1313. | "hinge"
  1314. | "slider"
  1315. type MotorMode =
  1316. | "position"
  1317. | "velocity"
  1318. type ShapeType =
  1319. | "box"
  1320. | "sphere"
  1321. | "capsule"
  1322. | "cylinder"
  1323. | "convex"
  1324. | "mesh"
  1325. | "terrain"
  1326. declare class BallJoint extends Joint
  1327. end
  1328. declare class BoxShape extends Shape
  1329. function getDimensions(self): (number, number, number)
  1330. function setDimensions(self, width: number, height: number, depth: number)
  1331. end
  1332. declare class CapsuleShape extends Shape
  1333. function getLength(self): number
  1334. function getRadius(self): number
  1335. function setLength(self, length: number)
  1336. function setRadius(self, radius: number)
  1337. end
  1338. declare class Collider extends Object
  1339. function addShape(self, shape: Shape)
  1340. function applyAngularImpulse(self, x: number, y: number, z: number)
  1341. function applyAngularImpulse(self, impulse: Vec3)
  1342. function applyForce(self, x: number, y: number, z: number)
  1343. function applyForce(self, x: number, y: number, z: number, px: number, py: number, pz: number)
  1344. function applyForce(self, force: Vec3)
  1345. function applyForce(self, force: Vec3, position: Vec3)
  1346. function applyLinearImpulse(self, x: number, y: number, z: number)
  1347. function applyLinearImpulse(self, x: number, y: number, z: number, px: number, py: number, pz: number)
  1348. function applyLinearImpulse(self, impulse: Vec3)
  1349. function applyLinearImpulse(self, impulse: Vec3, position: Vec3)
  1350. function applyTorque(self, x: number, y: number, z: number)
  1351. function applyTorque(self, torque: Vec3)
  1352. function destroy(self)
  1353. function getAABB(self): (number, number, number, number, number, number)
  1354. function getAngularDamping(self): number
  1355. function getAngularVelocity(self): (number, number, number)
  1356. function getAutomaticMass(self): boolean
  1357. function getCenterOfMass(self): (number, number, number)
  1358. function getDegreesOfFreedom(self): (string, string)
  1359. function getFriction(self): number
  1360. function getGravityScale(self): number
  1361. function getInertia(self): (number, number, number, number, number, number, number)
  1362. function getJoints(self): {}
  1363. function getLinearDamping(self): number
  1364. function getLinearVelocity(self): (number, number, number)
  1365. function getLinearVelocityFromLocalPoint(self, x: number, y: number, z: number): (number, number, number)
  1366. function getLinearVelocityFromLocalPoint(self, point: Vec3): (number, number, number)
  1367. function getLinearVelocityFromWorldPoint(self, x: number, y: number, z: number): (number, number, number)
  1368. function getLinearVelocityFromWorldPoint(self, point: Vec3): (number, number, number)
  1369. function getLocalPoint(self, wx: number, wy: number, wz: number): (number, number, number)
  1370. function getLocalPoint(self, point: Vec3): (number, number, number)
  1371. function getLocalVector(self, wx: number, wy: number, wz: number): (number, number, number)
  1372. function getLocalVector(self, vector: Vec3): (number, number, number)
  1373. function getMass(self): number
  1374. function getOrientation(self): (number, number, number, number)
  1375. function getPose(self): (number, number, number, number, number, number, number)
  1376. function getPosition(self): (number, number, number)
  1377. function getRestitution(self): number
  1378. function getShape(self): Shape | nil
  1379. function getShapes(self): {}
  1380. function getTag(self): string | nil
  1381. function getUserData(self): any
  1382. function getWorld(self): World
  1383. function getWorldPoint(self, x: number, y: number, z: number): (number, number, number)
  1384. function getWorldPoint(self, point: Vec3): (number, number, number)
  1385. function getWorldVector(self, x: number, y: number, z: number): (number, number, number)
  1386. function getWorldVector(self, vector: Vec3): (number, number, number)
  1387. function isAwake(self): boolean
  1388. function isContinuous(self): boolean
  1389. function isDestroyed(self): boolean
  1390. function isEnabled(self): boolean
  1391. function isGravityIgnored(self): boolean
  1392. function isKinematic(self): boolean
  1393. function isSensor(self): boolean
  1394. function isSleepingAllowed(self): boolean
  1395. function moveKinematic(self)
  1396. function removeShape(self, shape: Shape)
  1397. function resetMassData(self)
  1398. function setAngularDamping(self, damping: number)
  1399. function setAngularVelocity(self, vx: number, vy: number, vz: number)
  1400. function setAngularVelocity(self, velocity: Vec3)
  1401. function setAutomaticMass(self, enable: boolean)
  1402. function setAwake(self, awake: boolean)
  1403. function setCenterOfMass(self, x: number, y: number, z: number)
  1404. function setCenterOfMass(self, center: Vec3)
  1405. function setContinuous(self, continuous: boolean)
  1406. function setDegreesOfFreedom(self, translation: string?, rotation: string?)
  1407. function setEnabled(self, enable: boolean)
  1408. function setFriction(self, friction: number)
  1409. function setGravityIgnored(self, ignored: boolean)
  1410. function setGravityScale(self, scale: number)
  1411. function setInertia(self, dx: number, dy: number, dz: number, angle: number, ax: number, ay: number, az: number)
  1412. function setInertia(self, diagonal: Vec3, rotation: Quat)
  1413. function setKinematic(self, kinematic: boolean)
  1414. function setLinearDamping(self, damping: number)
  1415. function setLinearVelocity(self, vx: number, vy: number, vz: number)
  1416. function setLinearVelocity(self, velocity: Vec3)
  1417. function setMass(self, mass: number)
  1418. function setOrientation(self, angle: number, ax: number, ay: number, az: number)
  1419. function setOrientation(self, orientation: Quat)
  1420. function setPose(self, x: number, y: number, z: number, angle: number, ax: number, ay: number, az: number)
  1421. function setPose(self, position: Vec3, orientation: Quat)
  1422. function setPosition(self, x: number, y: number, z: number)
  1423. function setPosition(self, position: Vec3)
  1424. function setRestitution(self, restitution: number)
  1425. function setSensor(self, sensor: boolean)
  1426. function setSleepingAllowed(self, sleepy: boolean)
  1427. function setTag(self, tag: string)
  1428. function setTag(self)
  1429. function setUserData(self, data: any)
  1430. end
  1431. declare class ConeJoint extends Joint
  1432. function getAxis(self): (number, number, number)
  1433. function getLimit(self): number
  1434. function setLimit(self, limit: number)
  1435. end
  1436. declare class Contact
  1437. function getColliders(self): (Collider, Collider)
  1438. function getFriction(self): number
  1439. function getNormal(self): (number, number, number)
  1440. function getOverlap(self): number
  1441. function getPoints(self): number
  1442. function getRestitution(self): number
  1443. function getShapes(self): (Shape, Shape)
  1444. function getSurfaceVelocity(self): (number, number, number)
  1445. function isEnabled(self): boolean
  1446. function setEnabled(self, enable: boolean)
  1447. function setFriction(self, friction: number)
  1448. function setRestitution(self, restitution: number)
  1449. function setSurfaceVelocity(self, x: number, y: number, z: number)
  1450. function setSurfaceVelocity(self, velocity: Vec3)
  1451. end
  1452. declare class ConvexShape extends Shape
  1453. function getFace(self, index: number): {}
  1454. function getFaceCount(self): number
  1455. function getPoint(self, index: number): (number, number, number)
  1456. function getPointCount(self): number
  1457. function getScale(self): number
  1458. end
  1459. declare class CylinderShape extends Shape
  1460. function getLength(self): number
  1461. function getRadius(self): number
  1462. function setLength(self, length: number)
  1463. function setRadius(self, radius: number)
  1464. end
  1465. declare class DistanceJoint extends Joint
  1466. function getLimits(self): (number, number)
  1467. function getSpring(self): (number, number)
  1468. function setLimits(self, min: number?, max: number?)
  1469. function setLimits(self)
  1470. function setSpring(self, frequency: number?, damping: number?)
  1471. end
  1472. declare class HingeJoint extends Joint
  1473. function getAngle(self): number
  1474. function getAxis(self): (number, number, number)
  1475. function getFriction(self): number
  1476. function getLimits(self): (number, number)
  1477. function getMaxMotorTorque(self): (number, number)
  1478. function getMotorMode(self): MotorMode
  1479. function getMotorSpring(self): (number, number)
  1480. function getMotorTarget(self): number
  1481. function getMotorTorque(self): number
  1482. function getSpring(self): (number, number)
  1483. function setFriction(self, friction: number)
  1484. function setLimits(self, min: number, max: number)
  1485. function setLimits(self)
  1486. function setMaxMotorTorque(self, positive: number?, negative: number?)
  1487. function setMotorMode(self, mode: MotorMode)
  1488. function setMotorMode(self)
  1489. function setMotorSpring(self, frequency: number?, damping: number?)
  1490. function setMotorTarget(self, target: number)
  1491. function setSpring(self, frequency: number?, damping: number?)
  1492. end
  1493. declare class Joint extends Object
  1494. function destroy(self)
  1495. function getAnchors(self): (number, number, number, number, number, number)
  1496. function getColliders(self): (Collider, Collider)
  1497. function getForce(self): number
  1498. function getPriority(self): number
  1499. function getTorque(self): number
  1500. function getType(self): JointType
  1501. function getUserData(self): any
  1502. function isDestroyed(self): boolean
  1503. function isEnabled(self): boolean
  1504. function setEnabled(self, enabled: boolean)
  1505. function setPriority(self, priority: number)
  1506. function setUserData(self, data: any)
  1507. end
  1508. declare class MeshShape extends Shape
  1509. function getScale(self): number
  1510. end
  1511. declare class Shape extends Object
  1512. function containsPoint(self, x: number, y: number, z: number): boolean
  1513. function containsPoint(self, point: Vec3): boolean
  1514. function destroy(self)
  1515. function getAABB(self): (number, number, number, number, number, number)
  1516. function getCenterOfMass(self): (number, number, number)
  1517. function getCollider(self): Collider
  1518. function getDensity(self): number
  1519. function getInertia(self): (number, number, number, number, number, number, number)
  1520. function getMass(self): number
  1521. function getOffset(self): (number, number, number, number, number, number, number)
  1522. function getOrientation(self): (number, number, number, number)
  1523. function getPose(self): (number, number, number, number, number, number, number)
  1524. function getPosition(self): (number, number, number)
  1525. function getType(self): ShapeType
  1526. function getUserData(self): any
  1527. function getVolume(self): number
  1528. function isDestroyed(self): boolean
  1529. function raycast(self, x1: number, y1: number, z1: number, x2: number, y2: number, z2: number): (number, number, number, number, number, number, number | nil)
  1530. function raycast(self, origin: Vec3, endpoint: Vec3): (number, number, number, number, number, number, number | nil)
  1531. function setDensity(self, density: number)
  1532. function setOffset(self, x: number, y: number, z: number, angle: number, ax: number, ay: number, az: number)
  1533. function setOffset(self, position: Vec3, rotation: Quat)
  1534. function setUserData(self, data: any)
  1535. end
  1536. declare class SliderJoint extends Joint
  1537. function getAxis(self): (number, number, number)
  1538. function getFriction(self): number
  1539. function getLimits(self): (number, number)
  1540. function getMaxMotorForce(self): (number, number)
  1541. function getMotorForce(self): number
  1542. function getMotorMode(self): MotorMode
  1543. function getMotorSpring(self): (number, number)
  1544. function getMotorTarget(self): number
  1545. function getPosition(self): number
  1546. function getSpring(self): (number, number)
  1547. function setFriction(self, friction: number)
  1548. function setLimits(self, min: number, max: number)
  1549. function setLimits(self)
  1550. function setMaxMotorForce(self, positive: number?, negative: number?)
  1551. function setMotorMode(self, mode: MotorMode)
  1552. function setMotorMode(self)
  1553. function setMotorSpring(self, frequency: number?, damping: number?)
  1554. function setMotorTarget(self, target: number)
  1555. function setSpring(self, frequency: number?, damping: number?)
  1556. end
  1557. declare class SphereShape extends Shape
  1558. function getRadius(self): number
  1559. function setRadius(self, radius: number)
  1560. end
  1561. declare class TerrainShape extends Shape
  1562. end
  1563. declare class WeldJoint extends Joint
  1564. end
  1565. declare class World extends Object
  1566. function destroy(self)
  1567. function disableCollisionBetween(self, tag1: string, tag2: string)
  1568. function enableCollisionBetween(self, tag1: string, tag2: string)
  1569. function getAngularDamping(self): (number, number)
  1570. function getCallbacks(self): {}
  1571. function getColliderCount(self): number
  1572. function getColliders(self): {Collider}
  1573. function getGravity(self): (number, number, number)
  1574. function getJointCount(self): number
  1575. function getJoints(self): {Joint}
  1576. function getLinearDamping(self): (number, number)
  1577. function getResponseTime(self): number
  1578. function getStepCount(self): number
  1579. function getTags(self): {string}
  1580. function getTightness(self): number
  1581. function interpolate(self, alpha: number)
  1582. function isCollisionEnabledBetween(self, tag1: string, tag2: string): boolean
  1583. function isDestroyed(self): boolean
  1584. function isSleepingAllowed(self): boolean
  1585. function newBoxCollider(self, x: number?, y: number?, z: number?, width: number?, height: number?, depth: number?): Collider
  1586. function newBoxCollider(self, position: Vec3, size: Vec3): Collider
  1587. function newCapsuleCollider(self, x: number?, y: number?, z: number?, radius: number?, length: number?): Collider
  1588. function newCapsuleCollider(self, position: Vec3, radius: number?, length: number?): Collider
  1589. function newCollider(self, x: number, y: number, z: number): Collider
  1590. function newCollider(self, position: Vec3): Collider
  1591. function newConvexCollider(self, x: number?, y: number?, z: number?, points: {}, scale: number?): Collider
  1592. function newConvexCollider(self, position: Vec3, points: {}, scale: number?): Collider
  1593. function newConvexCollider(self, x: number?, y: number?, z: number?, modelData: ModelData, scale: number?): Collider
  1594. function newConvexCollider(self, position: Vec3, modelData: ModelData, scale: number?): Collider
  1595. function newConvexCollider(self, x: number?, y: number?, z: number?, model: Model, scale: number?): Collider
  1596. function newConvexCollider(self, position: Vec3, model: Model, scale: number?): Collider
  1597. function newConvexCollider(self, x: number?, y: number?, z: number?, mesh: Mesh, scale: number?): Collider
  1598. function newConvexCollider(self, position: Vec3, mesh: Mesh, scale: number?): Collider
  1599. function newConvexCollider(self, x: number?, y: number?, z: number?, template: ConvexShape, scale: number?): Collider
  1600. function newConvexCollider(self, position: Vec3, template: ConvexShape, scale: number?): Collider
  1601. function newCylinderCollider(self, x: number?, y: number?, z: number?, radius: number?, length: number?): Collider
  1602. function newCylinderCollider(self, position: Vec3, radius: number?, length: number?): Collider
  1603. function newMeshCollider(self, vertices: {}, indices: {}): Collider
  1604. function newMeshCollider(self, modelData: ModelData): Collider
  1605. function newMeshCollider(self, model: Model): Collider
  1606. function newMeshCollider(self, mesh: Mesh): Collider
  1607. function newMeshCollider(self, template: MeshShape): Collider
  1608. function newSphereCollider(self, x: number?, y: number?, z: number?, radius: number?): Collider
  1609. function newSphereCollider(self, position: Vec3, radius: number?): Collider
  1610. function newTerrainCollider(self, scale: number): Collider
  1611. function newTerrainCollider(self, scale: number, heightmap: Image, stretch: number?): Collider
  1612. function newTerrainCollider(self, scale: number, callback: (x: number, z: number) -> number, samples: number?): Collider
  1613. function overlapShape(self, shape: Shape, x: number, y: number, z: number, angle: number, ax: number, ay: number, az: number, maxDistance: number?, filter: string?, callback: () -> ()?)
  1614. function overlapShape(self, shape: Shape, position: Vec3, orientation: Quat, maxDistance: number?, filter: string?, callback: () -> ()?)
  1615. function overlapShape(self, shape: Shape, x: number, y: number, z: number, angle: number, ax: number, ay: number, az: number, maxDistance: number?, filter: string?): (Collider, Shape, number, number, number, number, number, number)
  1616. function overlapShape(self, shape: Shape, position: Vec3, orientation: Quat, maxDistance: number?, filter: string?): (Collider, Shape, number, number, number, number, number, number)
  1617. function queryBox(self, x: number, y: number, z: number, width: number, height: number, depth: number, filter: string?, callback: () -> ()?)
  1618. function queryBox(self, position: Vec3, size: Vec3, filter: string?, callback: () -> ()?)
  1619. function queryBox(self, x: number, y: number, z: number, width: number, height: number, depth: number, filter: string?): Collider
  1620. function queryBox(self, position: Vec3, size: Vec3, filter: string?): Collider
  1621. function querySphere(self, x: number, y: number, z: number, radius: number, filter: string?, callback: () -> ()?)
  1622. function querySphere(self, position: Vec3, radius: number, filter: string?, callback: () -> ()?)
  1623. function querySphere(self, x: number, y: number, z: number, radius: number, filter: string?): Collider
  1624. function querySphere(self, position: Vec3, radius: number, filter: string?): Collider
  1625. function raycast(self, x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, filter: string?, callback: (collider: Collider, shape: Shape, x: number, y: number, z: number, nx: number, ny: number, nz: number, triangle: number, fraction: number) -> number??)
  1626. function raycast(self, origin: Vec3, endpoint: Vec3, filter: string?, callback: (collider: Collider, shape: Shape, x: number, y: number, z: number, nx: number, ny: number, nz: number, triangle: number, fraction: number) -> number??)
  1627. function raycast(self, x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, filter: string?): (Collider, Shape, number, number, number, number, number, number, number | nil)
  1628. function raycast(self, origin: Vec3, endpoint: Vec3, filter: string?): (Collider, Shape, number, number, number, number, number, number, number | nil)
  1629. function setAngularDamping(self, damping: number, threshold: number?)
  1630. function setCallbacks(self, callbacks: {})
  1631. function setGravity(self, xg: number, yg: number, zg: number)
  1632. function setGravity(self, gravity: Vec3)
  1633. function setLinearDamping(self, damping: number, threshold: number?)
  1634. function setResponseTime(self, responseTime: number)
  1635. function setSleepingAllowed(self, allowed: boolean)
  1636. function setStepCount(self, steps: number)
  1637. function setTightness(self, tightness: number)
  1638. function shapecast(self, shape: Shape, x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, angle: number, ax: number, ay: number, az: number, filter: string?, callback: (collider: Collider, shape: Shape, x: number, y: number, z: number, nx: number, ny: number, nz: number, triangle: number, fraction: number) -> number?)
  1639. function shapecast(self, shape: Shape, position: Vec3, destination: Vec3, orientation: Quat, filter: string?, callback: (collider: Collider, shape: Shape, x: number, y: number, z: number, nx: number, ny: number, nz: number, triangle: number, fraction: number) -> number?)
  1640. function shapecast(self, shape: Shape, x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, angle: number, ax: number, ay: number, az: number, filter: string?): (Collider, Shape, number, number, number, number, number, number, number, number)
  1641. function shapecast(self, shape: Shape, position: Vec3, destination: Vec3, orientation: Quat, filter: string?): (Collider, Shape, number, number, number, number, number, number, number, number)
  1642. function update(self, dt: number)
  1643. end
  1644. type PhysicsModule = {
  1645. newBallJoint:
  1646. & ((colliderA: Collider, colliderB: Collider, x: number, y: number, z: number) -> BallJoint)
  1647. & ((colliderA: Collider, colliderB: Collider, anchor: Vec3) -> BallJoint),
  1648. newBoxShape: (width: number?, height: number?, depth: number?) -> BoxShape,
  1649. newCapsuleShape: (radius: number?, length: number?) -> CapsuleShape,
  1650. newConeJoint:
  1651. & ((colliderA: Collider, colliderB: Collider, x: number, y: number, z: number, ax: number, ay: number, az: number) -> ConeJoint)
  1652. & ((colliderA: Collider, colliderB: Collider, anchor: Vec3, axis: Vec3) -> ConeJoint),
  1653. newConvexShape:
  1654. & ((points: {}, scale: number?) -> ConvexShape)
  1655. & ((object: ModelData | Model | Mesh, scale: number?) -> ConvexShape)
  1656. & ((template: ConvexShape, scale: number?) -> ConvexShape),
  1657. newCylinderShape: (radius: number?, length: number?) -> CylinderShape,
  1658. newDistanceJoint:
  1659. & ((colliderA: Collider, colliderB: Collider, x1: number, y1: number, z1: number, x2: number, y2: number, z2: number) -> DistanceJoint)
  1660. & ((colliderA: Collider, colliderB: Collider, first: Vec3, second: Vec3) -> DistanceJoint),
  1661. newHingeJoint:
  1662. & ((colliderA: Collider, colliderB: Collider, x: number, y: number, z: number, ax: number, ay: number, az: number) -> HingeJoint)
  1663. & ((colliderA: Collider, colliderB: Collider, anchor: Vec3, axis: Vec3) -> HingeJoint),
  1664. newMeshShape:
  1665. & ((vertices: {}, indices: {}, scale: number?) -> MeshShape)
  1666. & ((object: ModelData | Model | Mesh, scale: number?) -> MeshShape)
  1667. & ((template: MeshShape, scale: number?) -> MeshShape),
  1668. newSliderJoint:
  1669. & ((colliderA: Collider, colliderB: Collider, ax: number, ay: number, az: number) -> SliderJoint)
  1670. & ((colliderA: Collider, colliderB: Collider, axis: Vec3) -> SliderJoint),
  1671. newSphereShape: (radius: number?) -> SphereShape,
  1672. newTerrainShape:
  1673. & ((scale: number) -> TerrainShape)
  1674. & ((scale: number, heightmap: Image, stretch: number?) -> TerrainShape)
  1675. & ((scale: number, callback: (x: number, z: number) -> (), samples: number?) -> TerrainShape),
  1676. newWeldJoint: (colliderA: Collider, colliderB: Collider) -> WeldJoint,
  1677. newWorld: (settings: {}?) -> World,
  1678. }
  1679. type Permission =
  1680. | "audiocapture"
  1681. type SystemModule = {
  1682. getClipboardText: () -> string | nil,
  1683. getCoreCount: () -> number,
  1684. getMousePosition: () -> (number, number),
  1685. getMouseX: () -> number,
  1686. getMouseY: () -> number,
  1687. getOS: () -> string,
  1688. getWindowDensity: () -> number,
  1689. getWindowDimensions: () -> (number, number),
  1690. getWindowHeight: () -> number,
  1691. getWindowWidth: () -> number,
  1692. hasKeyRepeat: () -> boolean,
  1693. isKeyDown: (...KeyCode) -> boolean,
  1694. isMouseDown: (button: number) -> boolean,
  1695. isWindowFocused: () -> boolean,
  1696. isWindowOpen: () -> boolean,
  1697. isWindowVisible: () -> boolean,
  1698. openWindow: (options: {}) -> (),
  1699. pollEvents: () -> (),
  1700. requestPermission: (permission: Permission) -> (),
  1701. setClipboardText: (text: string) -> (),
  1702. setKeyRepeat: (enable: boolean) -> (),
  1703. wasKeyPressed: (...KeyCode) -> boolean,
  1704. wasKeyReleased: (...KeyCode) -> boolean,
  1705. wasMousePressed: (button: number) -> boolean,
  1706. wasMouseReleased: (button: number) -> boolean,
  1707. }
  1708. declare class Channel extends Object
  1709. function clear(self)
  1710. function getCount(self): number
  1711. function hasRead(self, id: number): boolean
  1712. function peek(self): (any, boolean)
  1713. function pop(self, wait: number | boolean | nil): any
  1714. function push(self, message: any, wait: number | boolean | nil): (number, boolean)
  1715. end
  1716. declare class Thread extends Object
  1717. function getError(self): string | nil
  1718. function isRunning(self): boolean
  1719. function start(self, ...: any)
  1720. function wait(self)
  1721. end
  1722. type ThreadModule = {
  1723. getChannel: (name: string) -> Channel,
  1724. newChannel: () -> Channel,
  1725. newThread:
  1726. & ((code: string) -> Thread)
  1727. & ((file: string | Blob) -> Thread),
  1728. }
  1729. type TimerModule = {
  1730. getAverageDelta: () -> number,
  1731. getDelta: () -> number,
  1732. getFPS: () -> number,
  1733. getTime: () -> number,
  1734. sleep: (duration: number) -> (),
  1735. step: () -> number,
  1736. }
  1737. declare lovr: {
  1738. getVersion: () -> (number, number, number, string, string),
  1739. conf: (t: {}) -> (),
  1740. draw: (pass: Pass) -> boolean | nil,
  1741. errhand: (message: string) -> (() -> any),
  1742. filechanged: (path: string, action: FileAction, oldpath: string) -> (),
  1743. focus: (focused: boolean, display: DisplayType) -> (),
  1744. keypressed: (key: KeyCode, scancode: number, isrepeat: boolean) -> (),
  1745. keyreleased: (key: KeyCode, scancode: number) -> (),
  1746. load: (arg: {}) -> (),
  1747. log: (message: string, level: string, tag: string) -> (),
  1748. mirror: (pass: Pass) -> boolean,
  1749. mount: (mounted: boolean) -> (),
  1750. mousemoved: (x: number, y: number, dx: number, dy: number) -> (),
  1751. mousepressed: (x: number, y: number, button: number) -> (),
  1752. mousereleased: (x: number, y: number, button: number) -> (),
  1753. permission: (permission: Permission, granted: boolean) -> (),
  1754. quit: () -> boolean,
  1755. recenter: () -> (),
  1756. resize: (width: number, height: number) -> (),
  1757. restart: () -> any,
  1758. run: () -> (() -> any),
  1759. textinput: (text: string, code: number) -> (),
  1760. threaderror: (thread: Thread, message: string) -> (),
  1761. update: (dt: number) -> (),
  1762. visible: (visible: boolean, display: DisplayType) -> (),
  1763. wheelmoved: (dx: number, dy: number) -> (),
  1764. audio: AudioModule,
  1765. data: DataModule,
  1766. event: EventModule,
  1767. filesystem: FilesystemModule,
  1768. graphics: GraphicsModule,
  1769. headset: HeadsetModule,
  1770. math: MathModule,
  1771. physics: PhysicsModule,
  1772. system: SystemModule,
  1773. thread: ThreadModule,
  1774. timer: TimerModule,
  1775. }