@tlua/gmod 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/README.md +28 -0
  2. package/__metadata.json +4 -0
  3. package/_globals.d.tlua +178 -0
  4. package/_gmod-std.d.tlua +35 -0
  5. package/achievementicon.d.tlua +12 -0
  6. package/achievements.d.tlua +162 -0
  7. package/ai.d.tlua +65 -0
  8. package/ai_schedule.d.tlua +17 -0
  9. package/ai_task.d.tlua +17 -0
  10. package/angle.d.tlua +197 -0
  11. package/avatarimage.d.tlua +10 -0
  12. package/awesomium.d.tlua +14 -0
  13. package/baseclass.d.tlua +42 -0
  14. package/bf_read.d.tlua +110 -0
  15. package/bit.d.tlua +121 -0
  16. package/button.d.tlua +13 -0
  17. package/cam.d.tlua +220 -0
  18. package/ceffectdata.d.tlua +337 -0
  19. package/chat.d.tlua +62 -0
  20. package/checkbutton.d.tlua +14 -0
  21. package/cleanup.d.tlua +88 -0
  22. package/cluaemitter.d.tlua +119 -0
  23. package/clualocomotion.d.tlua +383 -0
  24. package/cluaparticle.d.tlua +426 -0
  25. package/cmovedata.d.tlua +476 -0
  26. package/cnavarea.d.tlua +845 -0
  27. package/cnavladder.d.tlua +209 -0
  28. package/cnewparticleeffect.d.tlua +259 -0
  29. package/color.d.tlua +339 -0
  30. package/concommand.d.tlua +69 -0
  31. package/constraint.d.tlua +311 -0
  32. package/construct.d.tlua +26 -0
  33. package/contentheader.d.tlua +32 -0
  34. package/contenticon.d.tlua +86 -0
  35. package/contentsidebar.d.tlua +45 -0
  36. package/contentsidebartoolbox.d.tlua +13 -0
  37. package/contextbase.d.tlua +37 -0
  38. package/controlpanel.d.tlua +140 -0
  39. package/controlpresets.d.tlua +118 -0
  40. package/convar.d.tlua +162 -0
  41. package/cookie.d.tlua +60 -0
  42. package/coroutine.d.tlua +90 -0
  43. package/crecipientfilter.d.tlua +152 -0
  44. package/csent.d.tlua +10 -0
  45. package/csoundpatch.d.tlua +150 -0
  46. package/ctakedamageinfo.d.tlua +366 -0
  47. package/ctrllistbox.d.tlua +12 -0
  48. package/ctrlnumpad.d.tlua +73 -0
  49. package/cusercmd.d.tlua +320 -0
  50. package/custom_classes.d.tlua +65 -0
  51. package/custom_entity_fields.d.tlua +96 -0
  52. package/cvars.d.tlua +80 -0
  53. package/dadjustablemodelpanel.d.tlua +81 -0
  54. package/dalphabar.d.tlua +27 -0
  55. package/dbinder.d.tlua +37 -0
  56. package/dbubblecontainer.d.tlua +18 -0
  57. package/dbutton.d.tlua +88 -0
  58. package/dcategoryheader.d.tlua +13 -0
  59. package/dcategorylist.d.tlua +11 -0
  60. package/dcheckbox.d.tlua +46 -0
  61. package/dcheckboxlabel.d.tlua +90 -0
  62. package/dcollapsiblecategory.d.tlua +240 -0
  63. package/dcolorbutton.d.tlua +73 -0
  64. package/dcolorcombo.d.tlua +54 -0
  65. package/dcolorcube.d.tlua +137 -0
  66. package/dcolormixer.d.tlua +303 -0
  67. package/dcolorpalette.d.tlua +294 -0
  68. package/dcolumnsheet.d.tlua +49 -0
  69. package/dcombobox.d.tlua +161 -0
  70. package/ddragbase.d.tlua +151 -0
  71. package/ddrawer.d.tlua +72 -0
  72. package/debug.d.tlua +236 -0
  73. package/debugoverlay.d.tlua +193 -0
  74. package/dentityproperties.d.tlua +63 -0
  75. package/derma.d.tlua +119 -0
  76. package/dexpandbutton.d.tlua +30 -0
  77. package/dfilebrowser.d.tlua +228 -0
  78. package/dform.d.tlua +176 -0
  79. package/dframe.d.tlua +261 -0
  80. package/dgrid.d.tlua +113 -0
  81. package/dhorizontaldivider.d.tlua +196 -0
  82. package/dhorizontalscroller.d.tlua +104 -0
  83. package/dhscrollbar.d.tlua +109 -0
  84. package/dhtml.d.tlua +91 -0
  85. package/dhtmlcontrols.d.tlua +62 -0
  86. package/diconbrowser.d.tlua +113 -0
  87. package/diconlayout.d.tlua +190 -0
  88. package/dimage.d.tlua +221 -0
  89. package/dimagebutton.d.tlua +103 -0
  90. package/dkillicon.d.tlua +9 -0
  91. package/dlabel.d.tlua +385 -0
  92. package/dlabeleditable.d.tlua +51 -0
  93. package/dlabelurl.d.tlua +100 -0
  94. package/dlistbox.d.tlua +82 -0
  95. package/dlistboxitem.d.tlua +42 -0
  96. package/dlistlayout.d.tlua +14 -0
  97. package/dlistview.d.tlua +360 -0
  98. package/dlistview_column.d.tlua +135 -0
  99. package/dlistview_columnplain.d.tlua +11 -0
  100. package/dlistview_draggerbar.d.tlua +11 -0
  101. package/dlistview_line.d.tlua +140 -0
  102. package/dlistviewheaderlabel.d.tlua +11 -0
  103. package/dlistviewlabel.d.tlua +11 -0
  104. package/dlistviewline.d.tlua +11 -0
  105. package/dmenu.d.tlua +266 -0
  106. package/dmenubar.d.tlua +42 -0
  107. package/dmenuoption.d.tlua +135 -0
  108. package/dmenuoptioncvar.d.tlua +64 -0
  109. package/dmodelpanel.d.tlua +207 -0
  110. package/dmodelselect.d.tlua +20 -0
  111. package/dmodelselectmulti.d.tlua +19 -0
  112. package/dnotify.d.tlua +93 -0
  113. package/dnumberscratch.d.tlua +284 -0
  114. package/dnumberwang.d.tlua +147 -0
  115. package/dnumpad.d.tlua +11 -0
  116. package/dnumslider.d.tlua +182 -0
  117. package/dpanel.d.tlua +152 -0
  118. package/dpanellist.d.tlua +109 -0
  119. package/dpaneloverlay.d.tlua +65 -0
  120. package/dpanelselect.d.tlua +13 -0
  121. package/dpanpanel.d.tlua +64 -0
  122. package/dprogress.d.tlua +27 -0
  123. package/dproperties.d.tlua +52 -0
  124. package/dproperty_boolean.d.tlua +12 -0
  125. package/dproperty_combo.d.tlua +31 -0
  126. package/dproperty_entity.d.tlua +12 -0
  127. package/dproperty_float.d.tlua +12 -0
  128. package/dproperty_generic.d.tlua +50 -0
  129. package/dproperty_int.d.tlua +12 -0
  130. package/dproperty_vectorcolor.d.tlua +14 -0
  131. package/dpropertysheet.d.tlua +167 -0
  132. package/dragndrop.d.tlua +123 -0
  133. package/draw.d.tlua +162 -0
  134. package/drgbpicker.d.tlua +49 -0
  135. package/drive.d.tlua +159 -0
  136. package/dscrollbargrip.d.tlua +13 -0
  137. package/dscrollpanel.d.tlua +110 -0
  138. package/dshape.d.tlua +72 -0
  139. package/dsizetocontents.d.tlua +46 -0
  140. package/dslider.d.tlua +302 -0
  141. package/dsprite.d.tlua +84 -0
  142. package/dtab.d.tlua +81 -0
  143. package/dtextentry.d.tlua +442 -0
  144. package/dtilelayout.d.tlua +218 -0
  145. package/dtooltip.d.tlua +76 -0
  146. package/dtree.d.tlua +185 -0
  147. package/dtree_node.d.tlua +793 -0
  148. package/dtree_node_button.d.tlua +13 -0
  149. package/duplicator.d.tlua +338 -0
  150. package/dverticaldivider.d.tlua +223 -0
  151. package/dvscrollbar.d.tlua +109 -0
  152. package/editablepanel.d.tlua +10 -0
  153. package/effect.d.tlua +121 -0
  154. package/effects.d.tlua +77 -0
  155. package/engine.d.tlua +248 -0
  156. package/entity.d.tlua +8295 -0
  157. package/ents.d.tlua +267 -0
  158. package/enums.d.tlua +7082 -0
  159. package/file.d.tlua +419 -0
  160. package/file_class.d.tlua +7 -0
  161. package/fingerposer.d.tlua +12 -0
  162. package/fingervar.d.tlua +13 -0
  163. package/frame.d.tlua +11 -0
  164. package/frame_blend.d.tlua +105 -0
  165. package/game.d.tlua +482 -0
  166. package/gameevent.d.tlua +968 -0
  167. package/gamemode.d.tlua +48 -0
  168. package/global.d.tlua +3156 -0
  169. package/gm.d.tlua +3218 -0
  170. package/gmod.d.tlua +20 -0
  171. package/gmsave.d.tlua +53 -0
  172. package/gui.d.tlua +232 -0
  173. package/gwen.d.tlua +55 -0
  174. package/halo.d.tlua +42 -0
  175. package/hammer.d.tlua +17 -0
  176. package/hook.d.tlua +64 -0
  177. package/html.d.tlua +22 -0
  178. package/http.d.tlua +72 -0
  179. package/iconeditor.d.tlua +130 -0
  180. package/igmodaudiochannel.d.tlua +419 -0
  181. package/imagecheckbox.d.tlua +48 -0
  182. package/imaterial.d.tlua +288 -0
  183. package/imesh.d.tlua +70 -0
  184. package/index.d.tlua +277 -0
  185. package/input.d.tlua +252 -0
  186. package/invalidateinternalentitycache.d.tlua +13 -0
  187. package/irestore.d.tlua +94 -0
  188. package/isave.d.tlua +94 -0
  189. package/itexture.d.tlua +108 -0
  190. package/ivideowriter.d.tlua +53 -0
  191. package/jit.d.tlua +243 -0
  192. package/killicon.d.tlua +84 -0
  193. package/label.d.tlua +20 -0
  194. package/language.d.tlua +26 -0
  195. package/list.d.tlua +112 -0
  196. package/makeballoon.d.tlua +15 -0
  197. package/markup.d.tlua +38 -0
  198. package/markupobject.d.tlua +53 -0
  199. package/material.d.tlua +9 -0
  200. package/math.d.tlua +899 -0
  201. package/matproxy.d.tlua +60 -0
  202. package/matselect.d.tlua +106 -0
  203. package/menu.d.tlua +20 -0
  204. package/menubar.d.tlua +39 -0
  205. package/mesh.d.tlua +183 -0
  206. package/modelimage.d.tlua +12 -0
  207. package/motionsensor.d.tlua +115 -0
  208. package/navmesh.d.tlua +274 -0
  209. package/net.d.tlua +639 -0
  210. package/nextbot.d.tlua +380 -0
  211. package/notification.d.tlua +35 -0
  212. package/npc.d.tlua +1787 -0
  213. package/numpad.d.tlua +89 -0
  214. package/os.d.tlua +56 -0
  215. package/package.d.tlua +15 -0
  216. package/package.json +18 -0
  217. package/panel.d.tlua +3650 -0
  218. package/panellist.d.tlua +13 -0
  219. package/pathfollower.d.tlua +301 -0
  220. package/permissions.d.tlua +77 -0
  221. package/physcollide.d.tlua +40 -0
  222. package/physenv.d.tlua +136 -0
  223. package/physobj.d.tlua +799 -0
  224. package/pixelvis_handle_t.d.tlua +9 -0
  225. package/player.d.tlua +3320 -0
  226. package/player_manager.d.tlua +147 -0
  227. package/preseteditor.d.tlua +13 -0
  228. package/presets.d.tlua +79 -0
  229. package/projectedtexture.d.tlua +553 -0
  230. package/properties.d.tlua +65 -0
  231. package/propselect.d.tlua +50 -0
  232. package/radiobutton.d.tlua +13 -0
  233. package/render.d.tlua +1700 -0
  234. package/resource.d.tlua +73 -0
  235. package/richtext.d.tlua +17 -0
  236. package/sandbox.d.tlua +576 -0
  237. package/saverestore.d.tlua +148 -0
  238. package/schedule.d.tlua +69 -0
  239. package/scripted_ents.d.tlua +124 -0
  240. package/search.d.tlua +26 -0
  241. package/serverlist.d.tlua +85 -0
  242. package/slidebar.d.tlua +12 -0
  243. package/slider.d.tlua +11 -0
  244. package/sound.d.tlua +140 -0
  245. package/spawnicon.d.tlua +95 -0
  246. package/spawnmenu.d.tlua +286 -0
  247. package/spawnmenucontentpanel.d.tlua +52 -0
  248. package/sql.d.tlua +154 -0
  249. package/stack.d.tlua +57 -0
  250. package/steamworks.d.tlua +208 -0
  251. package/string.d.tlua +535 -0
  252. package/structures.d.tlua +4442 -0
  253. package/surface.d.tlua +463 -0
  254. package/surfaceinfo.d.tlua +70 -0
  255. package/system.d.tlua +134 -0
  256. package/table.d.tlua +533 -0
  257. package/task.d.tlua +92 -0
  258. package/team.d.tlua +195 -0
  259. package/textentry.d.tlua +12 -0
  260. package/tgaimage.d.tlua +11 -0
  261. package/timer.d.tlua +198 -0
  262. package/tool.d.tlua +466 -0
  263. package/ugcpublishwindow.d.tlua +83 -0
  264. package/umsg.d.tlua +147 -0
  265. package/undo.d.tlua +122 -0
  266. package/urllabel.d.tlua +13 -0
  267. package/usermessage.d.tlua +48 -0
  268. package/utf8.d.tlua +89 -0
  269. package/util.d.tlua +1087 -0
  270. package/vector.d.tlua +413 -0
  271. package/vehicle.d.tlua +472 -0
  272. package/vgui.d.tlua +201 -0
  273. package/video.d.tlua +17 -0
  274. package/vmatrix.d.tlua +392 -0
  275. package/weapon.d.tlua +913 -0
  276. package/weapons.d.tlua +90 -0
  277. package/widgets.d.tlua +29 -0
  278. package/workshopfilebase.d.tlua +68 -0
package/vector.d.tlua ADDED
@@ -0,0 +1,413 @@
1
+ // AUTO-GENERATED tlua declarations. Do not edit by hand.
2
+
3
+ /**
4
+ * List of all possible functions to manipulate vectors. Created by Global.Vector.
5
+ *
6
+ * Arithmetic operators are typed as metamethod members, which tlua dispatches
7
+ * ambiently on the declared type. The `number * Vector` form (scalar on the
8
+ * left) is a reverse overload the LuaLS `@operator` form could not express.
9
+ */
10
+ interface Vector {
11
+ x: number;
12
+ y: number;
13
+ z: number;
14
+ // A vector is also indexable as v[1], v[2], v[3].
15
+ [index: number]: number;
16
+ __add(l: Vector, r: Vector): Vector;
17
+ __sub(l: Vector, r: Vector): Vector;
18
+ __mul(l: Vector, r: Vector | number): Vector;
19
+ __mul(l: number, r: Vector): Vector;
20
+ __div(l: Vector, r: Vector | number): Vector;
21
+ __unm(v: Vector): Vector;
22
+ }
23
+
24
+ interface Vector {
25
+ /**
26
+ * Adds the values of the argument vector to the original vector. This function is the same as vector1 + vector2 without creating a new vector object, skipping object construction and garbage collection.
27
+ * @realm shared and menu
28
+ * @source https://wiki.facepunch.com/gmod/Vector:Add
29
+ */
30
+ Add(self: Vector, vector: Vector): void;
31
+ }
32
+
33
+ interface Vector {
34
+ /**
35
+ * Returns an angle representing the normal of the vector.
36
+ * @realm shared and menu
37
+ * @source https://wiki.facepunch.com/gmod/Vector:Angle
38
+ */
39
+ Angle(self: Vector): Angle;
40
+ }
41
+
42
+ interface Vector {
43
+ /**
44
+ * Returns the angle of this vector (normalized), but instead of assuming that up is [Global.Vector](https://wiki.facepunch.com/gmod/Global.Vector)( 0, 0, 1 ) (Like [Vector:Angle](https://wiki.facepunch.com/gmod/Vector:Angle) does) you can specify which direction is 'up' for the angle.
45
+ * @realm shared and menu
46
+ * @source https://wiki.facepunch.com/gmod/Vector:AngleEx
47
+ */
48
+ AngleEx(self: Vector, up: Vector): Angle;
49
+ }
50
+
51
+ interface Vector {
52
+ /**
53
+ * Calculates the cross product of this vector and the passed one.
54
+ *
55
+ * The cross product of two vectors is a 3-dimensional vector with a direction perpendicular (at right angles) to both of them (according to the [right-hand rule](https://en.wikipedia.org/wiki/Right-hand_rule)), and magnitude equal to the area of parallelogram they span. This is defined as the product of the magnitudes, the sine of the angle between them, and unit (normal) vector `n` defined by the right-hand rule:
56
+ * :**a** × **b** = |**a**| |**b**| sin(θ) **n̂**
57
+ * where **a** and **b** are vectors, and **n̂** is a unit vector (magnitude of 1) perpendicular to both.
58
+ *
59
+ * @realm shared and menu
60
+ * @source https://wiki.facepunch.com/gmod/Vector:Cross
61
+ */
62
+ Cross(self: Vector, otherVector: Vector): Vector;
63
+ }
64
+
65
+ interface Vector {
66
+ /**
67
+ * Returns the squared distance of 2 vectors, this is quicker to call than [Vector:Distance](https://wiki.facepunch.com/gmod/Vector:Distance) as DistToSqr does not need to calculate the square root, which is an expensive process.
68
+ *
69
+ * **NOTE**: Squared distances should not be summed. If you need to sum distances, use [Vector:Distance](https://wiki.facepunch.com/gmod/Vector:Distance).
70
+ *
71
+ * When performing a distance check, ensure the distance being checked against is squared. See example code below.
72
+ *
73
+ *
74
+ * @realm shared and menu
75
+ * @source https://wiki.facepunch.com/gmod/Vector:DistToSqr
76
+ */
77
+ DistToSqr(self: Vector, otherVec: Vector): number;
78
+ }
79
+
80
+ interface Vector {
81
+ /**
82
+ * Returns the Euclidean distance between the vector and the other vector.
83
+ *
84
+ * **NOTE**: This function is more expensive than [Vector:DistToSqr](https://wiki.facepunch.com/gmod/Vector:DistToSqr). However, please see the notes for [Vector:DistToSqr](https://wiki.facepunch.com/gmod/Vector:DistToSqr) before using it as squared distances are not the same as euclidean distances.
85
+ *
86
+ *
87
+ * @realm shared and menu
88
+ * @source https://wiki.facepunch.com/gmod/Vector:Distance
89
+ */
90
+ Distance(self: Vector, otherVector: Vector): number;
91
+ }
92
+
93
+ interface Vector {
94
+ /**
95
+ * Returns the Euclidean distance between the vector and the other vector in 2D space. The Z axis is ignored.
96
+ *
97
+ * **NOTE**: This function is more expensive than [Vector:Distance2DSqr](https://wiki.facepunch.com/gmod/Vector:Distance2DSqr). However, please see the notes for [Vector:Distance2DSqr](https://wiki.facepunch.com/gmod/Vector:Distance2DSqr) before using it as squared distances are not the same as Euclidean distances.
98
+ *
99
+ *
100
+ * @realm shared and menu
101
+ * @source https://wiki.facepunch.com/gmod/Vector:Distance2D
102
+ */
103
+ Distance2D(self: Vector, otherVector: Vector): number;
104
+ }
105
+
106
+ interface Vector {
107
+ /**
108
+ * Returns the squared distance between 2 vectors in 2D space, ignoring the Z axis. This is faster than [Vector:Distance2D](https://wiki.facepunch.com/gmod/Vector:Distance2D) as calculating the square root is an expensive process.
109
+ *
110
+ * **NOTE**: Squared distances should not be summed. If you need to sum distances, use [Vector:Distance2D](https://wiki.facepunch.com/gmod/Vector:Distance2D).
111
+ *
112
+ * When performing a distance check, ensure the distance being checked against is squared.
113
+ *
114
+ *
115
+ * @realm shared and menu
116
+ * @source https://wiki.facepunch.com/gmod/Vector:Distance2DSqr
117
+ */
118
+ Distance2DSqr(self: Vector, otherVec: Vector): number;
119
+ }
120
+
121
+ interface Vector {
122
+ /**
123
+ * Divide the vector by the given number, that means x, y and z are divided by that value. This will change the value of the original vector, see example 2 for division without changing the value.
124
+ * @realm shared and menu
125
+ * @source https://wiki.facepunch.com/gmod/Vector:Div
126
+ */
127
+ Div(self: Vector, divisor: number): void;
128
+ }
129
+
130
+ interface Vector {
131
+ /**
132
+ * Returns the [dot product](https://en.wikipedia.org/wiki/Dot_product#Geometric_definition) of this vector and the passed one.
133
+ *
134
+ * The dot product of two vectors is the product of their magnitudes (lengths), and the cosine of the angle between them:
135
+ * **a · b** = |**a**| |**b**| cos(θ)
136
+ * where **a** and **b** are vectors.
137
+ * See [Vector:Length](https://wiki.facepunch.com/gmod/Vector:Length) for obtaining magnitudes.
138
+ *
139
+ * A dot product returns just the cosine of the angle if both vectors are normalized, and zero if the vectors are at right angles to each other.
140
+ *
141
+ * @realm shared and menu
142
+ * @source https://wiki.facepunch.com/gmod/Vector:Dot
143
+ */
144
+ Dot(self: Vector, otherVector: Vector): number;
145
+ }
146
+
147
+ interface Vector {
148
+ /**
149
+ * Returns the dot product of the two vectors.
150
+ * @realm shared and menu
151
+ * @source https://wiki.facepunch.com/gmod/Vector:DotProduct
152
+ * @deprecated This is an alias of Vector:Dot. Use that instead.
153
+ */
154
+ DotProduct(self: Vector, Vector: Vector): number;
155
+ }
156
+
157
+ interface Vector {
158
+ /**
159
+ * Returns the negative version of this vector, i.e. a vector with every component to the negative value of itself.
160
+ *
161
+ * See also [Vector:Negate](https://wiki.facepunch.com/gmod/Vector:Negate).
162
+ *
163
+ * @realm shared and menu
164
+ * @source https://wiki.facepunch.com/gmod/Vector:GetNegated
165
+ */
166
+ GetNegated(self: Vector): Vector;
167
+ }
168
+
169
+ interface Vector {
170
+ /**
171
+ * Returns a normalized version of the vector. This is a alias of [Vector:GetNormalized](https://wiki.facepunch.com/gmod/Vector:GetNormalized).
172
+ *
173
+ * @realm shared and menu
174
+ * @source https://wiki.facepunch.com/gmod/Vector:GetNormal
175
+ * @deprecated Use Vector:GetNormalized instead.
176
+ */
177
+ GetNormal(self: Vector): Vector;
178
+ }
179
+
180
+ interface Vector {
181
+ /**
182
+ * Returns a normalized version of the vector. Normalized means vector with same direction but with length of 1.
183
+ *
184
+ * This does not affect the vector you call it on; to do this, use [Vector:Normalize](https://wiki.facepunch.com/gmod/Vector:Normalize).
185
+ *
186
+ * @realm shared and menu
187
+ * @source https://wiki.facepunch.com/gmod/Vector:GetNormalized
188
+ */
189
+ GetNormalized(self: Vector): Vector;
190
+ }
191
+
192
+ interface Vector {
193
+ /**
194
+ * Returns if the vector is equal to another vector with the given tolerance.
195
+ * @realm shared and menu
196
+ * @source https://wiki.facepunch.com/gmod/Vector:IsEqualTol
197
+ */
198
+ IsEqualTol(self: Vector, compare: Vector, tolerance: number): boolean;
199
+ }
200
+
201
+ interface Vector {
202
+ /**
203
+ * Checks whenever all fields of the vector are 0.
204
+ * @realm shared and menu
205
+ * @source https://wiki.facepunch.com/gmod/Vector:IsZero
206
+ */
207
+ IsZero(self: Vector): boolean;
208
+ }
209
+
210
+ interface Vector {
211
+ /**
212
+ * Returns the [Euclidean length](https://en.wikipedia.org/wiki/Euclidean_vector#Length) of the vector: √(x² + y² + z²).
213
+ *
214
+ * **WARNING**: This is a relatively expensive process since it uses the square root. It is recommended that you use [Vector:LengthSqr](https://wiki.facepunch.com/gmod/Vector:LengthSqr) whenever possible.
215
+ *
216
+ *
217
+ * @realm shared and menu
218
+ * @source https://wiki.facepunch.com/gmod/Vector:Length
219
+ */
220
+ Length(self: Vector): number;
221
+ }
222
+
223
+ interface Vector {
224
+ /**
225
+ * Returns the length of the vector in two dimensions, without the Z axis.
226
+ *
227
+ * **WARNING**: This is a relatively expensive process since it uses the square root. It is recommended that you use [Vector:Length2DSqr](https://wiki.facepunch.com/gmod/Vector:Length2DSqr) whenever possible.
228
+ *
229
+ *
230
+ * @realm shared and menu
231
+ * @source https://wiki.facepunch.com/gmod/Vector:Length2D
232
+ */
233
+ Length2D(self: Vector): number;
234
+ }
235
+
236
+ interface Vector {
237
+ /**
238
+ * Returns the squared length of the vectors x and y value, x² + y².
239
+ *
240
+ * This is faster than [Vector:Length2D](https://wiki.facepunch.com/gmod/Vector:Length2D) as calculating the square root is an expensive process.
241
+ *
242
+ * @realm shared and menu
243
+ * @source https://wiki.facepunch.com/gmod/Vector:Length2DSqr
244
+ */
245
+ Length2DSqr(self: Vector): number;
246
+ }
247
+
248
+ interface Vector {
249
+ /**
250
+ * Returns the squared length of the vector, x² + y² + z².
251
+ *
252
+ * This is faster than [Vector:Length](https://wiki.facepunch.com/gmod/Vector:Length) as calculating the square root is an expensive process.
253
+ *
254
+ * @realm shared and menu
255
+ * @source https://wiki.facepunch.com/gmod/Vector:LengthSqr
256
+ */
257
+ LengthSqr(self: Vector): number;
258
+ }
259
+
260
+ interface Vector {
261
+ /**
262
+ * Scales the vector by the given [number](https://wiki.facepunch.com/gmod/number) (that means x, y and z are multiplied by that value), a [Vector](https://wiki.facepunch.com/gmod/Vector) (X, Y, and Z of each vector are multiplied) or a [VMatrix](https://wiki.facepunch.com/gmod/VMatrix) (Transforms the vector by the matrix's rotation/translation).
263
+ * @realm shared and menu
264
+ * @source https://wiki.facepunch.com/gmod/Vector:Mul
265
+ */
266
+ Mul(self: Vector, multiplier: number): void;
267
+ }
268
+
269
+ interface Vector {
270
+ Mul(self: Vector, multiplier: Vector): void;
271
+ }
272
+
273
+ interface Vector {
274
+ Mul(self: Vector, matrix: VMatrix): void;
275
+ }
276
+
277
+ interface Vector {
278
+ /**
279
+ * Negates this vector, i.e. sets every component to the negative value of itself. Same as `Vector( -vec.x, -vec.y, -vec.z )`
280
+ * @realm shared and menu
281
+ * @source https://wiki.facepunch.com/gmod/Vector:Negate
282
+ */
283
+ Negate(self: Vector): void;
284
+ }
285
+
286
+ interface Vector {
287
+ /**
288
+ * Normalizes the given vector. This changes the vector you call it on, if you want to return a normalized copy without affecting the original, use [Vector:GetNormalized](https://wiki.facepunch.com/gmod/Vector:GetNormalized).
289
+ * @realm shared and menu
290
+ * @source https://wiki.facepunch.com/gmod/Vector:Normalize
291
+ */
292
+ Normalize(self: Vector): void;
293
+ }
294
+
295
+ interface Vector {
296
+ /**
297
+ * Randomizes each element of this Vector object.
298
+ * @realm shared and menu
299
+ * @source https://wiki.facepunch.com/gmod/Vector:Random
300
+ */
301
+ Random(self: Vector, min?: number, max?: number): void;
302
+ }
303
+
304
+ interface Vector {
305
+ /**
306
+ * Rotates a vector by the given angle.
307
+ * Doesn't return anything, but rather changes the original vector.
308
+ *
309
+ * @realm shared and menu
310
+ * @source https://wiki.facepunch.com/gmod/Vector:Rotate
311
+ */
312
+ Rotate(self: Vector, rotation: Angle): void;
313
+ }
314
+
315
+ interface Vector {
316
+ /**
317
+ * Copies the values from the second vector to the first vector.
318
+ * @realm shared and menu
319
+ * @source https://wiki.facepunch.com/gmod/Vector:Set
320
+ */
321
+ Set(self: Vector, vector: Vector): void;
322
+ }
323
+
324
+ interface Vector {
325
+ /**
326
+ * Sets the x, y, and z of the vector.
327
+ * @realm shared and menu
328
+ * @source https://wiki.facepunch.com/gmod/Vector:SetUnpacked
329
+ */
330
+ SetUnpacked(self: Vector, x: number, y: number, z: number): void;
331
+ }
332
+
333
+ interface Vector {
334
+ /**
335
+ * Substracts the values of the second vector from the orignal vector, this function can be used to avoid garbage collection.
336
+ * @realm shared and menu
337
+ * @source https://wiki.facepunch.com/gmod/Vector:Sub
338
+ */
339
+ Sub(self: Vector, vector: Vector): void;
340
+ }
341
+
342
+ interface Vector {
343
+ /**
344
+ * Translates the [Vector](https://wiki.facepunch.com/gmod/Vector) (values ranging from 0 to 1) into a [Color](https://wiki.facepunch.com/gmod/Color). This will also range the values from 0 - 1 to 0 - 255.
345
+ *
346
+ * x * 255 -> r
347
+ * y * 255 -> g
348
+ * z * 255 -> b
349
+ *
350
+ * This is the opposite of [Color:ToVector](https://wiki.facepunch.com/gmod/Color:ToVector)
351
+ *
352
+ * @realm shared
353
+ * @source https://wiki.facepunch.com/gmod/Vector:ToColor
354
+ */
355
+ ToColor(self: Vector): Color;
356
+ }
357
+
358
+ interface Vector {
359
+ /**
360
+ * Returns where on the screen the specified position vector would appear. A related function is [gui.ScreenToVector](https://wiki.facepunch.com/gmod/gui.ScreenToVector), which converts a 2D coordinate to a 3D direction.
361
+ *
362
+ * **NOTE**: Should be called from a 3D rendering environment or after [cam.Start3D](https://wiki.facepunch.com/gmod/cam.Start3D) or it may not work correctly.
363
+ *
364
+ *
365
+ * Errors in a render hook can make this value incorrect until the player restarts their game.
366
+ *
367
+ * [cam.Start3D](https://wiki.facepunch.com/gmod/cam.Start3D) or 3D context [cam.Start](https://wiki.facepunch.com/gmod/cam.Start) with non-default parameters incorrectly sets the reference FOV for this function, causing incorrect return values. This can be fixed by creating and ending a default 3D context ([cam.Start3D](https://wiki.facepunch.com/gmod/cam.Start3D) with no arguments).
368
+ *
369
+ * @realm client
370
+ * @source https://wiki.facepunch.com/gmod/Vector:ToScreen
371
+ */
372
+ ToScreen(self: Vector): ToScreenData;
373
+ }
374
+
375
+ interface Vector {
376
+ /**
377
+ * Returns the vector as a table with three elements.
378
+ * @realm shared and menu
379
+ * @source https://wiki.facepunch.com/gmod/Vector:ToTable
380
+ */
381
+ ToTable(self: Vector): table;
382
+ }
383
+
384
+ interface Vector {
385
+ /**
386
+ * Returns the x, y, and z of the vector.
387
+ * @realm shared and menu
388
+ * @source https://wiki.facepunch.com/gmod/Vector:Unpack
389
+ */
390
+ Unpack(self: Vector): (number, number, number);
391
+ }
392
+
393
+ interface Vector {
394
+ /**
395
+ * Returns whenever the given vector is in a box created by the 2 other vectors.
396
+ *
397
+ *
398
+ *
399
+ * @realm shared and menu
400
+ * @source https://wiki.facepunch.com/gmod/Vector:WithinAABox
401
+ */
402
+ WithinAABox(self: Vector, boxStart: Vector, boxEnd: Vector): boolean;
403
+ }
404
+
405
+ interface Vector {
406
+ /**
407
+ * Sets x, y and z to 0.
408
+ * @realm shared and menu
409
+ * @source https://wiki.facepunch.com/gmod/Vector:Zero
410
+ */
411
+ Zero(self: Vector): void;
412
+ }
413
+