Scripting
Overgrowth is using AngelScript as its core scripting language. The best AngelScript reference is here: [1]
Checking for Keypresses:
You can check for keypresses by using the boolean check function GetInputDown():
Syntax examples:
GetInputDown("a") | returns true if the 'a' key is being pressed, returns false if not |
GetInputDown("attack") | returns true if the left mouse button is being pressed, returns false if not |
GetInputDown("move_left") | returns true if the "left key" is being pressed, returns false if not (by default this key is defined in the config.txt to be the 'a' key) |
The following controls are designed to be relative to the player's preferences and are given a binding in the config.txt file.
Config.txt Dependent References
Predefined Term | Default binding in Config.txt | Scripting Reference Name |
---|---|---|
Left Key | a | move_left |
Right Key | d | move_right |
Up Key | w | move_up |
Down Key | s | move_down |
Crouch Key | left shift | crouch |
Jump Key | space | jump |
Generic Key References
- include "keyTranslator.h"
3
4 SDLKey keyToSDL(const std::string &s)
5 {
6 if (s == "backspace")
7 return SDLK_BACKSPACE;
8 if (s == "tab")
9 return SDLK_TAB;
10 if (s == "clear")
11 return SDLK_CLEAR;
12 if (s == "return")
13 return SDLK_RETURN;
14 if (s == "pause")
15 return SDLK_PAUSE;
16 if (s == "esc")
17 return SDLK_ESCAPE;
18 if (s == "space")
19 return SDLK_SPACE;
20 if (s == "!")
21 return SDLK_EXCLAIM;
22 if (s == "\"")
23 return SDLK_QUOTEDBL;
24 if (s == "#")
25 return SDLK_HASH;
26 if (s == "$")
27 return SDLK_DOLLAR;
28 if (s == "&")
29 return SDLK_AMPERSAND;
30 if (s == "\'")
31 return SDLK_QUOTE;
32 if (s == "(")
33 return SDLK_LEFTPAREN;
34 if (s == ")")
35 return SDLK_RIGHTPAREN;
36 if (s == "*")
37 return SDLK_ASTERISK;
38 if (s == "+")
39 return SDLK_PLUS;
40 if (s == ",")
41 return SDLK_COMMA;
42 if (s == "-")
43 return SDLK_MINUS;
44 if (s == ".")
45 return SDLK_PERIOD;
46 if (s == "/")
47 return SDLK_SLASH;
48 if (s == "0")
49 return SDLK_0;
50 if (s == "1")
51 return SDLK_1;
52 if (s == "2")
53 return SDLK_2;
54 if (s == "3")
55 return SDLK_3;
56 if (s == "4")
57 return SDLK_4;
58 if (s == "5")
59 return SDLK_5;
60 if (s == "6")
61 return SDLK_6;
62 if (s == "7")
63 return SDLK_7;
64 if (s == "8")
65 return SDLK_8;
66 if (s == "9")
67 return SDLK_9;
68 if (s == ":")
69 return SDLK_COLON;
70 if (s == ";")
71 return SDLK_SEMICOLON;
72 if (s == "<")
73 return SDLK_LESS;
74 if (s == "=")
75 return SDLK_EQUALS;
76 if (s == ">")
77 return SDLK_GREATER;
78 if (s == "?")
79 return SDLK_QUESTION;
80 if (s == "@")
81 return SDLK_AT;
82 if (s == "[")
83 return SDLK_LEFTBRACKET;
84 if (s == "\\")
85 return SDLK_BACKSLASH;
86 if (s == "]")
87 return SDLK_RIGHTBRACKET;
88 if (s == "^")
89 return SDLK_CARET;
90 if (s == "_")
91 return SDLK_UNDERSCORE;
92 if (s == "`")
93 return SDLK_BACKQUOTE;
94 if (s == "a")
95 return SDLK_a;
96 if (s == "b")
97 return SDLK_b;
98 if (s == "c")
99 return SDLK_c;
100 if (s == "d")
101 return SDLK_d;
102 if (s == "e")
103 return SDLK_e;
104 if (s == "f")
105 return SDLK_f;
106 if (s == "g")
107 return SDLK_g;
108 if (s == "h")
109 return SDLK_h;
110 if (s == "i")
111 return SDLK_i;
112 if (s == "j")
113 return SDLK_j;
114 if (s == "k")
115 return SDLK_k;
116 if (s == "l")
117 return SDLK_l;
118 if (s == "m")
119 return SDLK_m; 120 if (s == "n") 121 return SDLK_n; 122 if (s == "o") 123 return SDLK_o; 124 if (s == "p") 125 return SDLK_p; 126 if (s == "q") 127 return SDLK_q; 128 if (s == "r") 129 return SDLK_r; 130 if (s == "s") 131 return SDLK_s; 132 if (s == "t") 133 return SDLK_t; 134 if (s == "u") 135 return SDLK_u; 136 if (s == "v") 137 return SDLK_v; 138 if (s == "w") 139 return SDLK_w; 140 if (s == "x") 141 return SDLK_x; 142 if (s == "y") 143 return SDLK_y; 144 if (s == "z") 145 return SDLK_z; 146 if (s == "delete") 147 return SDLK_DELETE; 148 if (s == "keypad0") 149 return SDLK_KP0; 150 if (s == "keypad1") 151 return SDLK_KP1; 152 if (s == "keypad2") 153 return SDLK_KP2; 154 if (s == "keypad3") 155 return SDLK_KP3; 156 if (s == "keypad4") 157 return SDLK_KP4; 158 if (s == "keypad5") 159 return SDLK_KP5; 160 if (s == "keypad6") 161 return SDLK_KP6; 162 if (s == "keypad7") 163 return SDLK_KP7; 164 if (s == "keypad8") 165 return SDLK_KP8; 166 if (s == "keypad9") 167 return SDLK_KP9; 168 if (s == "keypad.") 169 return SDLK_KP_PERIOD; 170 if (s == "keypad/") 171 return SDLK_KP_DIVIDE; 172 if (s == "keypad*") 173 return SDLK_KP_MULTIPLY; 174 if (s == "keypad-") 175 return SDLK_KP_MINUS; 176 if (s == "keypad+") 177 return SDLK_KP_PLUS; 178 if (s == "keypadenter") 179 return SDLK_KP_ENTER; 180 if (s == "keypad=") 181 return SDLK_KP_EQUALS; 182 if (s == "up") 183 return SDLK_UP; 184 if (s == "down") 185 return SDLK_DOWN; 186 if (s == "right") 187 return SDLK_RIGHT; 188 if (s == "left") 189 return SDLK_LEFT; 190 if (s == "insert") 191 return SDLK_INSERT; 192 if (s == "home") 193 return SDLK_HOME; 194 if (s == "end") 195 return SDLK_END; 196 if (s == "pageup") 197 return SDLK_PAGEUP; 198 if (s == "pagedown") 199 return SDLK_PAGEDOWN; 200 if (s == "f1") 201 return SDLK_F1; 202 if (s == "f2") 203 return SDLK_F2; 204 if (s == "f3") 205 return SDLK_F3; 206 if (s == "f4") 207 return SDLK_F4; 208 if (s == "f5") 209 return SDLK_F5; 210 if (s == "f6") 211 return SDLK_F6; 212 if (s == "f7") 213 return SDLK_F7; 214 if (s == "f8") 215 return SDLK_F8; 216 if (s == "f9") 217 return SDLK_F9; 218 if (s == "f10") 219 return SDLK_F10; 220 if (s == "f11") 221 return SDLK_F11; 222 if (s == "f12") 223 return SDLK_F12; 224 if (s == "f13") 225 return SDLK_F13; 226 if (s == "f14") 227 return SDLK_F14; 228 if (s == "f15") 229 return SDLK_F15; 230 if (s == "numlock") 231 return SDLK_NUMLOCK; 232 if (s == "capslock") 233 return SDLK_CAPSLOCK; 234 if (s == "scrollock") 235 return SDLK_SCROLLOCK; 236 if (s == "rshift") 237 return SDLK_RSHIFT; 238 if (s == "lshift") 239 return SDLK_LSHIFT; 240 if (s == "rctrl") 241 return SDLK_RCTRL; 242 if (s == "lctrl") 243 return SDLK_LCTRL; 244 if (s == "ralt") 245 return SDLK_RALT; 246 if (s == "lalt") 247 return SDLK_LALT; 248 if (s == "rmeta") 249 return SDLK_RMETA; 250 if (s == "lmeta") 251 return SDLK_LMETA; 252 if (s == "lsuper") 253 return SDLK_LSUPER; 254 if (s == "rsuper") 255 return SDLK_RSUPER; 256 if (s == "mode") 257 return SDLK_MODE; 258 if (s == "compose") 259 return SDLK_COMPOSE; 260 if (s == "help") 261 return SDLK_HELP; 262 if (s == "print") 263 return SDLK_PRINT; 264 if (s == "sysreq") 265 return SDLK_SYSREQ; 266 if (s == "break") 267 return SDLK_BREAK; 268 if (s == "menu") 269 return SDLK_MENU; 270 if (s == "power") 271 return SDLK_POWER; 272 if (s == "euro") 273 return SDLK_EURO; 274 275 return (SDLKey)SDLK_SYSREQ; 276 }