@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/README.md ADDED
@@ -0,0 +1,28 @@
1
+ # @tlua/gmod
2
+
3
+ Garry's Mod type declarations for the [tlua](https://github.com/) type checker,
4
+ generated from the [GMod Wiki](https://wiki.facepunch.com/gmod/). Generated file --
5
+ do not edit by hand.
6
+
7
+ ## Install
8
+
9
+ ```sh
10
+ npm install @tlua/gmod
11
+ npm install @tlua/gmod@beta # pre-release
12
+ ```
13
+
14
+ ## Use
15
+
16
+ List the package under `types` in your `tluaconfig.json` (tlua only loads type
17
+ packages named in `types`; use `"*"` to opt into all installed ones):
18
+
19
+ ```jsonc
20
+ {
21
+ "compilerOptions": {
22
+ "types": ["@tlua/gmod"]
23
+ }
24
+ }
25
+ ```
26
+
27
+ The Garry's Mod globals (`Entity`, `Vector`, `hook`, `_G` entries, …) are then
28
+ available ambiently, with no `require`.
@@ -0,0 +1,4 @@
1
+ {
2
+ "lastUpdate": "2026-07-20T00:41:24.000Z",
3
+ "baseUrl": "https://wiki.facepunch.com/gmod"
4
+ }
@@ -0,0 +1,178 @@
1
+ // Source: https://wiki.facepunch.com/gmod/Global_Variables
2
+
3
+ // ---- Global tables ----
4
+
5
+ declare GAMEMODE: GM;
6
+
7
+ type GPlayer = Player;
8
+
9
+ /** Contains a list of all modules loaded from /modules/. */
10
+ declare _MODULES: Table<string, any>;
11
+
12
+ // ---- Global non-constants ----
13
+
14
+ /** True whenever the current script is executed on the client (client and menu states). */
15
+ declare CLIENT: boolean;
16
+ /** True whenever the current script is executed on the client state. */
17
+ declare CLIENT_DLL: boolean;
18
+ /** True whenever the current script is executed on the server state. */
19
+ declare SERVER: boolean;
20
+ /** True whenever the current script is executed on the server state. */
21
+ declare GAME_DLL: boolean;
22
+ /** True when the script is being executed in the menu state. */
23
+ declare MENU_DLL: boolean;
24
+ /** Contains the name of the current active gamemode. */
25
+ declare GAMEMODE_NAME: string;
26
+
27
+ /** Represents a non-existent entity. It is not nil; use IsValid before calling Entity methods. */
28
+ interface NULL extends Entity {}
29
+
30
+ type EntityOrNULL = Entity | NULL;
31
+
32
+ declare NULL: NULL;
33
+
34
+ /** Contains the version number of GMod. Example: "201211". */
35
+ declare VERSION: string;
36
+ /** Contains a nicely formatted version of GMod. Example: "2020.12.11". */
37
+ declare VERSIONSTR: string;
38
+ /** Contains the current networking version. Menu state only. */
39
+ declare NETVERSIONSTR: string;
40
+ /** The branch the game is running on. "unknown" on main branch. */
41
+ declare BRANCH: string;
42
+ // _VERSION is provided by tlua's own global library; not re-declared here.
43
+ /** Maximum number of bits needed to network any entity. */
44
+ declare MAX_EDICT_BITS: number;
45
+ /** Maximum number of bits needed to network a player. */
46
+ declare MAX_PLAYER_BITS: number;
47
+
48
+ /** The active env_skypaint entity. */
49
+ declare g_SkyPaint: ENT;
50
+ // Panels that are registered as globals below but have no wiki page of their own, so
51
+ // they never get a generated interface. Stub them as base panels.
52
+ interface VoiceNotify extends Panel {}
53
+ interface DVerticalDividerBar extends Panel {}
54
+ interface DHorizontalDividerBar extends Panel {}
55
+
56
+ /** Base panel used for context menus. */
57
+ declare g_ContextMenu: PANEL;
58
+ /** Base panel for displaying incoming/outgoing voice messages. */
59
+ declare g_VoicePanelList: PANEL;
60
+ /** Base panel for the spawn menu. */
61
+ declare g_SpawnMenu: PANEL;
62
+ /** Main menu of GMod. Only available in the menu state. */
63
+ declare pnlMainMenu: PANEL;
64
+
65
+ // ---- Global constants ----
66
+
67
+ /** A vector with all values set to 0. */
68
+ declare vector_origin: Vector;
69
+ /** A vector with the z value set to 1. */
70
+ declare vector_up: Vector;
71
+ /** An Angle with all values set to 0. */
72
+ declare angle_zero: Angle;
73
+ /** A color with all values set to 255. */
74
+ declare color_white: Color;
75
+ /** A color with all values set to 0 except alpha which is set to 255. */
76
+ declare color_black: Color;
77
+ /** A color with only the alpha value set to 0. */
78
+ declare color_transparent: Color;
79
+
80
+ // ---- Derma panel globals (defined via derma.DefineControl) ----
81
+
82
+ declare DIconLayout: DIconLayout;
83
+ declare DMenuOptionCVar: DMenuOptionCVar;
84
+ declare DPanelList: DPanelList;
85
+ declare DListView_Line: DListView_Line;
86
+ declare DNumSlider: DNumSlider;
87
+ declare DPanelOverlay: DPanelOverlay;
88
+ declare DListView_ColumnPlain: DListView_ColumnPlain;
89
+ declare DDragBase: DDragBase;
90
+ declare DIconBrowser: DIconBrowser;
91
+ declare DHTML: DHTML;
92
+ declare DCategoryList: DCategoryList;
93
+ declare DImage: DImage;
94
+ declare DTextEntry: DTextEntry;
95
+ declare DListView_DraggerBar: DListView_DraggerBar;
96
+ declare DColorMixer: DColorMixer;
97
+ declare DFrame: DFrame;
98
+ declare DCheckBox: DCheckBox;
99
+ declare DColorCombo: DColorCombo;
100
+ declare DScrollBarGrip: DScrollBarGrip;
101
+ declare Slider: Slider;
102
+ declare DHorizontalDivider: DHorizontalDivider;
103
+ declare DSlider: DSlider;
104
+ declare DForm: DForm;
105
+ declare DNumPad: DNumPad;
106
+ declare DListViewLine: DListViewLine;
107
+ declare DPanelSelect: DPanelSelect;
108
+ declare DListView_Column: DListView_Column;
109
+ declare DListViewHeaderLabel: DListViewHeaderLabel;
110
+ declare DDrawer: DDrawer;
111
+ declare DScrollPanel: DScrollPanel;
112
+ declare DListBoxItem: DListBoxItem;
113
+ declare DListView: DListView;
114
+ declare DCollapsibleCategory: DCollapsibleCategory;
115
+ declare DImageButton: DImageButton;
116
+ declare DListLayout: DListLayout;
117
+ declare DBinder: DBinder;
118
+ declare DNotify: DNotify;
119
+ declare DColorButton: DColorButton;
120
+ declare VoiceNotify: VoiceNotify;
121
+ declare DColorPalette: DColorPalette;
122
+ declare DNumberScratch: DNumberScratch;
123
+ declare DPanel: DPanel;
124
+ declare DListViewLabel: DListViewLabel;
125
+ declare DProperty_Int: DProperty_Int;
126
+ declare DProperty_VectorColor: DProperty_VectorColor;
127
+ declare DPropertySheet: DPropertySheet;
128
+ declare DProperty_Entity: DProperty_Entity;
129
+ declare DProperty_Float: DProperty_Float;
130
+ declare DProperty_Combo: DProperty_Combo;
131
+ declare DHScrollBar: DHScrollBar;
132
+ declare DEntityProperties: DEntityProperties;
133
+ declare DProperty_Boolean: DProperty_Boolean;
134
+ declare DVScrollBar: DVScrollBar;
135
+ declare DVerticalDivider: DVerticalDivider;
136
+ declare DHTMLControls: DHTMLControls;
137
+ declare DVerticalDividerBar: DVerticalDividerBar;
138
+ declare DTree_Node_Button: DTree_Node_Button;
139
+ declare DNumberWang: DNumberWang;
140
+ declare DTree_Node: DTree_Node;
141
+ declare DLabelEditable: DLabelEditable;
142
+ declare DGrid: DGrid;
143
+ declare DTooltip: DTooltip;
144
+ declare DLabel: DLabel;
145
+ declare DExpandButton: DExpandButton;
146
+ declare DKillIcon: DKillIcon;
147
+ declare DMenu: DMenu;
148
+ declare DCategoryHeader: DCategoryHeader;
149
+ declare DTileLayout: DTileLayout;
150
+ declare DSprite: DSprite;
151
+ declare DModelSelect: DModelSelect;
152
+ declare DSizeToContents: DSizeToContents;
153
+ declare DShape: DShape;
154
+ declare DRGBPicker: DRGBPicker;
155
+ declare DModelSelectMulti: DModelSelectMulti;
156
+ declare DMenuOption: DMenuOption;
157
+ declare DProperty_Generic: DProperty_Generic;
158
+ declare DMenuBar: DMenuBar;
159
+ declare DCheckBoxLabel: DCheckBoxLabel;
160
+ declare DTab: DTab;
161
+ declare DProperties: DProperties;
162
+ declare DProgress: DProgress;
163
+ declare DAlphaBar: DAlphaBar;
164
+ declare DPanPanel: DPanPanel;
165
+ declare DModelPanel: DModelPanel;
166
+ declare DFileBrowser: DFileBrowser;
167
+ declare DColorCube: DColorCube;
168
+ declare Button: Button;
169
+ declare DListBox: DListBox;
170
+ declare DAdjustableModelPanel: DAdjustableModelPanel;
171
+ declare DComboBox: DComboBox;
172
+ declare DColumnSheet: DColumnSheet;
173
+ declare DButton: DButton;
174
+ declare DHorizontalDividerBar: DHorizontalDividerBar;
175
+ declare DBubbleContainer: DBubbleContainer;
176
+ declare DTree: DTree;
177
+ declare DLabelURL: DLabelURL;
178
+ declare DHorizontalScroller: DHorizontalScroller;
@@ -0,0 +1,35 @@
1
+ // gmod-std: tlua equivalents for the gmod-glua-ls addon's `std.*` utility types.
2
+ //
3
+ // The LuaLS addon exposes a `std` namespace of advanced meta-types. This file
4
+ // reimplements the ones tlua's type system can express and documents the
5
+ // deliberate degradations for the ones it cannot.
6
+ //
7
+ // Expressible here:
8
+ // - LuaType (std.type) union of the strings Lua's type() returns
9
+ // - NotNull (std.NotNull) drop nil from a union
10
+ // - ConstTpl (std.ConstTpl) identity that preserves a string-literal argument
11
+ //
12
+ // Expressible here (continued):
13
+ // - Split (std.Split) recursive tuple split of a literal string
14
+ //
15
+ // Degraded (see NOTES for why):
16
+ // - RawGet/Select/Unpack -> native tlua's checker already refines these
17
+ // - @operator (Vector/Angle) -> methods tlua has no ambient operator typing
18
+
19
+ /** The string values returned by Lua's `type()`. */
20
+ type LuaType = "nil" | "number" | "string" | "boolean" | "table" | "function" | "thread" | "userdata";
21
+
22
+ /** Drops `nil` from a union, e.g. the non-nil result of a successful `assert`. */
23
+ type NotNull<T> = NonNullable<T>;
24
+
25
+ /** Identity that preserves a string-literal type argument through a signature. */
26
+ type ConstTpl<T extends string> = T;
27
+
28
+ /**
29
+ * GLua `string.Explode`/`string.Split` return a sequential table of pieces.
30
+ * A literal input splits into a precise tuple of literal pieces (1-based, like
31
+ * every tlua tuple); a plain `string` input degrades to `string[]`.
32
+ */
33
+ type Split<Sep extends string, Str extends string> =
34
+ string extends Str ? string[] :
35
+ Str extends `${infer Head}${Sep}${infer Tail}` ? [Head, ...Split<Sep, Tail>] : [Str];
@@ -0,0 +1,12 @@
1
+ // AUTO-GENERATED tlua declarations. Do not edit by hand.
2
+
3
+ /**
4
+ * Used to show an icon for any of the [Garry's Mod Steam achievements](http://steamcommunity.com/stats/GarrysMod/achievements).
5
+ *
6
+ * If the viewer has not unlocked the achievement on Steam, the icon will be grayed out.
7
+ *
8
+ * @realm client
9
+ * @source https://wiki.facepunch.com/gmod/AchievementIcon
10
+ */
11
+ interface AchievementIcon extends Panel {}
12
+
@@ -0,0 +1,162 @@
1
+ // AUTO-GENERATED tlua declarations. Do not edit by hand.
2
+
3
+ /**
4
+ * This library is used internally by Garry's Mod to help keep track of achievement progress and unlock the appropriate achievements once a certain number is reached.
5
+ * @source https://wiki.facepunch.com/gmod/achievements
6
+ */
7
+ declare achievements: AchievementsLib;
8
+
9
+ interface AchievementsLib {
10
+ /**
11
+ * **INTERNAL**: This is used internally - although you're able to use it you probably shouldn't.
12
+ * Adds one to the count of balloons burst. Once this count reaches 1000, the 'Popper' achievement is unlocked.
13
+ * @realm client
14
+ * @source https://wiki.facepunch.com/gmod/achievements.BalloonPopped
15
+ */
16
+ BalloonPopped(): void;
17
+ }
18
+
19
+ interface AchievementsLib {
20
+ /**
21
+ * Returns the amount of achievements currently in Garry's Mod.
22
+ * @realm client and menu
23
+ * @source https://wiki.facepunch.com/gmod/achievements.Count
24
+ */
25
+ Count(): number;
26
+ }
27
+
28
+ interface AchievementsLib {
29
+ /**
30
+ * **INTERNAL**: This is used internally - although you're able to use it you probably shouldn't.
31
+ * Adds one to the count of balls eaten. Once this count reaches 200, the 'Ball Eater' achievement is unlocked.
32
+ * @realm client
33
+ * @source https://wiki.facepunch.com/gmod/achievements.EatBall
34
+ */
35
+ EatBall(): void;
36
+ }
37
+
38
+ interface AchievementsLib {
39
+ /**
40
+ * Retrieves progress of given achievement.
41
+ * @realm client and menu
42
+ * @source https://wiki.facepunch.com/gmod/achievements.GetCount
43
+ */
44
+ GetCount(achievementID: number): number;
45
+ }
46
+
47
+ interface AchievementsLib {
48
+ /**
49
+ * Retrieves the description of the given achievement.
50
+ * @realm client and menu
51
+ * @source https://wiki.facepunch.com/gmod/achievements.GetDesc
52
+ */
53
+ GetDesc(achievementID: number): string;
54
+ }
55
+
56
+ interface AchievementsLib {
57
+ /**
58
+ * Retrieves the end progress goal of the given achievement.
59
+ * @realm client and menu
60
+ * @source https://wiki.facepunch.com/gmod/achievements.GetGoal
61
+ */
62
+ GetGoal(achievementID: number): number;
63
+ }
64
+
65
+ interface AchievementsLib {
66
+ /**
67
+ * Retrieves the name of the given achievement.
68
+ * @realm client and menu
69
+ * @source https://wiki.facepunch.com/gmod/achievements.GetName
70
+ */
71
+ GetName(achievementID: number): string;
72
+ }
73
+
74
+ interface AchievementsLib {
75
+ /**
76
+ * **INTERNAL**: This is used internally - although you're able to use it you probably shouldn't.
77
+ * Adds one to the count of baddies killed. Once this count reaches 1000, the 'War Zone' achievement is unlocked.
78
+ * @realm client
79
+ * @source https://wiki.facepunch.com/gmod/achievements.IncBaddies
80
+ */
81
+ IncBaddies(): void;
82
+ }
83
+
84
+ interface AchievementsLib {
85
+ /**
86
+ * **INTERNAL**: This is used internally - although you're able to use it you probably shouldn't.
87
+ * Adds one to the count of innocent animals killed. Once this count reaches 1000, the 'Innocent Bystander' achievement is unlocked.
88
+ * @realm client
89
+ * @source https://wiki.facepunch.com/gmod/achievements.IncBystander
90
+ */
91
+ IncBystander(): void;
92
+ }
93
+
94
+ interface AchievementsLib {
95
+ /**
96
+ * **INTERNAL**: This is used internally - although you're able to use it you probably shouldn't.
97
+ * Adds one to the count of friendly NPCs killed. Once this count reaches 1000, the 'Bad Friend' achievement is unlocked.
98
+ * @realm client
99
+ * @source https://wiki.facepunch.com/gmod/achievements.IncGoodies
100
+ */
101
+ IncGoodies(): void;
102
+ }
103
+
104
+ interface AchievementsLib {
105
+ /**
106
+ * Returns whether the given achievement is obtained or not.
107
+ * @realm client and menu
108
+ * @source https://wiki.facepunch.com/gmod/achievements.IsAchieved
109
+ */
110
+ IsAchieved(achievementID: number): boolean;
111
+ }
112
+
113
+ interface AchievementsLib {
114
+ /**
115
+ * **INTERNAL**: This is used internally - although you're able to use it you probably shouldn't.
116
+ * Adds one to the count of things removed. Once this count reaches 5000, the 'Destroyer' achievement is unlocked.
117
+ * @realm client
118
+ * @source https://wiki.facepunch.com/gmod/achievements.Remover
119
+ */
120
+ Remover(): void;
121
+ }
122
+
123
+ interface AchievementsLib {
124
+ /**
125
+ * **INTERNAL**: This is used internally - although you're able to use it you probably shouldn't.
126
+ * Adds one to the count of how many times the spawnmenu has been opened. Once this count reaches 100,000, the 'Menu User' achievement is unlocked.
127
+ * @realm client
128
+ * @source https://wiki.facepunch.com/gmod/achievements.SpawnMenuOpen
129
+ */
130
+ SpawnMenuOpen(): void;
131
+ }
132
+
133
+ interface AchievementsLib {
134
+ /**
135
+ * **INTERNAL**: This is used internally - although you're able to use it you probably shouldn't.
136
+ * Adds one to the count of NPCs spawned. Once this count reaches 1000, the 'Procreator' achievement is unlocked.
137
+ * @realm client
138
+ * @source https://wiki.facepunch.com/gmod/achievements.SpawnedNPC
139
+ */
140
+ SpawnedNPC(): void;
141
+ }
142
+
143
+ interface AchievementsLib {
144
+ /**
145
+ * **INTERNAL**: This is used internally - although you're able to use it you probably shouldn't.
146
+ * Adds one to the count of props spawned. Once this count reaches 5000, the 'Creator' achievement is unlocked.
147
+ * @realm client
148
+ * @source https://wiki.facepunch.com/gmod/achievements.SpawnedProp
149
+ */
150
+ SpawnedProp(): void;
151
+ }
152
+
153
+ interface AchievementsLib {
154
+ /**
155
+ * **INTERNAL**: This is used internally - although you're able to use it you probably shouldn't.
156
+ * Adds one to the count of ragdolls spawned. Once this count reaches 2000, the 'Dollhouse' achievement is unlocked.
157
+ * @realm client
158
+ * @source https://wiki.facepunch.com/gmod/achievements.SpawnedRagdoll
159
+ */
160
+ SpawnedRagdoll(): void;
161
+ }
162
+
package/ai.d.tlua ADDED
@@ -0,0 +1,65 @@
1
+ // AUTO-GENERATED tlua declarations. Do not edit by hand.
2
+
3
+ /**
4
+ * The ai library.
5
+ * @source https://wiki.facepunch.com/gmod/ai
6
+ */
7
+ declare ai: AiLib;
8
+
9
+ interface AiLib {
10
+ /**
11
+ * Returns the number of AI nodes on the map, used by the base game [NPC](https://wiki.facepunch.com/gmod/NPC)s.
12
+ *
13
+ * For [NextBot](https://wiki.facepunch.com/gmod/NextBot)s, see [navmesh](https://wiki.facepunch.com/gmod/navmesh).
14
+ *
15
+ * @realm server
16
+ * @source https://wiki.facepunch.com/gmod/ai.GetNodeCount
17
+ */
18
+ GetNodeCount(): number;
19
+ }
20
+
21
+ interface AiLib {
22
+ /**
23
+ * Translates a schedule name to its corresponding ID.
24
+ * @realm server
25
+ * @source https://wiki.facepunch.com/gmod/ai.GetScheduleID
26
+ */
27
+ GetScheduleID(sched: string): number;
28
+ }
29
+
30
+ interface AiLib {
31
+ /**
32
+ * Returns the squad leader of the given squad.
33
+ * @realm server
34
+ * @source https://wiki.facepunch.com/gmod/ai.GetSquadLeader
35
+ */
36
+ GetSquadLeader(squad: string): NPC;
37
+ }
38
+
39
+ interface AiLib {
40
+ /**
41
+ * Returns the amount of members a given squad has. See also [ai.GetSquadMembers](https://wiki.facepunch.com/gmod/ai.GetSquadMembers).
42
+ * @realm server
43
+ * @source https://wiki.facepunch.com/gmod/ai.GetSquadMemberCount
44
+ */
45
+ GetSquadMemberCount(squad: string): number;
46
+ }
47
+
48
+ interface AiLib {
49
+ /**
50
+ * Returns all members of a given squad. See also [ai.GetSquadMemberCount](https://wiki.facepunch.com/gmod/ai.GetSquadMemberCount) and [NPC:GetSquad](https://wiki.facepunch.com/gmod/NPC:GetSquad).
51
+ * @realm server
52
+ * @source https://wiki.facepunch.com/gmod/ai.GetSquadMembers
53
+ */
54
+ GetSquadMembers(squad: string): table;
55
+ }
56
+
57
+ interface AiLib {
58
+ /**
59
+ * Translates a task name to its corresponding ID.
60
+ * @realm server
61
+ * @source https://wiki.facepunch.com/gmod/ai.GetTaskID
62
+ */
63
+ GetTaskID(task: string): number;
64
+ }
65
+
@@ -0,0 +1,17 @@
1
+ // AUTO-GENERATED tlua declarations. Do not edit by hand.
2
+
3
+ /**
4
+ * Allows you to set up a schedule for NPCs to follow. This lets you dictate their actions.
5
+ * @source https://wiki.facepunch.com/gmod/ai_schedule
6
+ */
7
+ declare ai_schedule: Ai_scheduleLib;
8
+
9
+ interface Ai_scheduleLib {
10
+ /**
11
+ * Creates a schedule for scripted NPC.
12
+ * @realm server
13
+ * @source https://wiki.facepunch.com/gmod/ai_schedule.New
14
+ */
15
+ New(name: string): table;
16
+ }
17
+
package/ai_task.d.tlua ADDED
@@ -0,0 +1,17 @@
1
+ // AUTO-GENERATED tlua declarations. Do not edit by hand.
2
+
3
+ /**
4
+ * Used to create tasks for scripted NPCs.
5
+ * @source https://wiki.facepunch.com/gmod/ai_task
6
+ */
7
+ declare ai_task: Ai_taskLib;
8
+
9
+ interface Ai_taskLib {
10
+ /**
11
+ * Create a new empty task. Used by [Schedule:AddTask](https://wiki.facepunch.com/gmod/Schedule:AddTask) and [Schedule:EngTask](https://wiki.facepunch.com/gmod/Schedule:EngTask).
12
+ * @realm server
13
+ * @source https://wiki.facepunch.com/gmod/ai_task.New
14
+ */
15
+ New(): Task;
16
+ }
17
+