Luanti 5.15.0-dev
 
Loading...
Searching...
No Matches
l_object.h
Go to the documentation of this file.
1// Luanti
2// SPDX-License-Identifier: LGPL-2.1-or-later
3// Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
4
5#pragma once
6
7#include "lua_api/l_base.h"
8#include "irrlichttypes.h"
9#include <lua.h>
10
12class LuaEntitySAO;
13class PlayerSAO;
14class RemotePlayer;
15
16/*
17 ObjectRef
18*/
19
20class ObjectRef : public ModApiBase {
21public:
23
24 ~ObjectRef() = default;
25
26 // Creates an ObjectRef and leaves it on top of stack
27 // NOTE: do not call this, use `ScriptApiBase::objectrefGetOrCreate()`!
28 static void create(lua_State *L, ServerActiveObject *object);
29
30 // Clear the pointer in the ObjectRef (at -1).
31 // Throws an fatal error if the object pointer wasn't `expect`.
32 static void set_null(lua_State *L, void *expect);
33
34 static void Register(lua_State *L);
35
37
38 static const char className[];
39private:
41 static luaL_Reg methods[];
42
43
45
46 static PlayerSAO* getplayersao(ObjectRef *ref);
47
48 static RemotePlayer *getplayer(ObjectRef *ref);
49
50 // Exported functions
51
52 // __tostring metamethod
53 static int mt_tostring(lua_State *L);
54
55 // garbage collector
56 static int gc_object(lua_State *L);
57
58 // remove(self)
59 static int l_remove(lua_State *L);
60
61 // is_valid(self)
62 static int l_is_valid(lua_State *L);
63
64 // get_guid()
65 static int l_get_guid(lua_State *L);
66
67 // get_pos(self)
68 static int l_get_pos(lua_State *L);
69
70 // set_pos(self, pos)
71 static int l_set_pos(lua_State *L);
72
73 // add_pos(self, pos)
74 static int l_add_pos(lua_State *L);
75
76 // move_to(self, pos, continuous)
77 static int l_move_to(lua_State *L);
78
79 // punch(self, puncher, time_from_last_punch, tool_capabilities, dir)
80 static int l_punch(lua_State *L);
81
82 // right_click(self, clicker)
83 static int l_right_click(lua_State *L);
84
85 // set_hp(self, hp, reason)
86 static int l_set_hp(lua_State *L);
87
88 // get_hp(self)
89 static int l_get_hp(lua_State *L);
90
91 // get_inventory(self)
92 static int l_get_inventory(lua_State *L);
93
94 // get_wield_list(self)
95 static int l_get_wield_list(lua_State *L);
96
97 // get_wield_index(self)
98 static int l_get_wield_index(lua_State *L);
99
100 // get_wielded_item(self)
101 static int l_get_wielded_item(lua_State *L);
102
103 // set_wielded_item(self, item)
104 static int l_set_wielded_item(lua_State *L);
105
106 // set_armor_groups(self, groups)
107 static int l_set_armor_groups(lua_State *L);
108
109 // get_armor_groups(self)
110 static int l_get_armor_groups(lua_State *L);
111
112 // set_physics_override(self, override_table)
113 static int l_set_physics_override(lua_State *L);
114
115 // get_physics_override(self)
116 static int l_get_physics_override(lua_State *L);
117
118 // set_animation(self, frame_range, frame_speed, frame_blend, frame_loop)
119 static int l_set_animation(lua_State *L);
120
121 // set_animation_frame_speed(self, frame_speed)
122 static int l_set_animation_frame_speed(lua_State *L);
123
124 // get_animation(self)
125 static int l_get_animation(lua_State *L);
126
127 // set_bone_position(self, bone, position, rotation)
128 static int l_set_bone_position(lua_State *L);
129
130 // get_bone_position(self, bone)
131 static int l_get_bone_position(lua_State *L);
132
133 // set_bone_override(self, bone)
134 static int l_set_bone_override(lua_State *L);
135
136 // get_bone_override(self, bone)
137 static int l_get_bone_override(lua_State *L);
138
139 // get_bone_override(self)
140 static int l_get_bone_overrides(lua_State *L);
141
142 // set_attach(self, parent, bone, position, rotation)
143 static int l_set_attach(lua_State *L);
144
145 // get_attach(self)
146 static int l_get_attach(lua_State *L);
147
148 // get_children(self)
149 static int l_get_children(lua_State *L);
150
151 // set_detach(self)
152 static int l_set_detach(lua_State *L);
153
154 // set_properties(self, properties)
155 static int l_set_properties(lua_State *L);
156
157 // get_properties(self)
158 static int l_get_properties(lua_State *L);
159
160 // set_observers(self, observers)
161 static int l_set_observers(lua_State *L);
162
163 // get_observers(self)
164 static int l_get_observers(lua_State *L);
165
166 // get_effective_observers(self)
167 static int l_get_effective_observers(lua_State *L);
168
169 // is_player(self)
170 static int l_is_player(lua_State *L);
171
172 /* LuaEntitySAO-only */
173
174 // set_velocity(self, velocity)
175 static int l_set_velocity(lua_State *L);
176
177 // add_velocity(self, velocity)
178 static int l_add_velocity(lua_State *L);
179
180 // get_velocity(self)
181 static int l_get_velocity(lua_State *L);
182
183 // set_acceleration(self, acceleration)
184 static int l_set_acceleration(lua_State *L);
185
186 // get_acceleration(self)
187 static int l_get_acceleration(lua_State *L);
188
189 // set_rotation(self, rotation)
190 static int l_set_rotation(lua_State *L);
191
192 // get_rotation(self)
193 static int l_get_rotation(lua_State *L);
194
195 // set_yaw(self, yaw)
196 static int l_set_yaw(lua_State *L);
197
198 // get_yaw(self)
199 static int l_get_yaw(lua_State *L);
200
201 // set_texture_mod(self, mod)
202 static int l_set_texture_mod(lua_State *L);
203
204 // l_get_texture_mod(self)
205 static int l_get_texture_mod(lua_State *L);
206
207 // set_sprite(self, start_frame, num_frames, framelength, select_x_by_camera)
208 static int l_set_sprite(lua_State *L);
209
210 // DEPRECATED
211 // get_entity_name(self)
212 static int l_get_entity_name(lua_State *L);
213
214 // get_luaentity(self)
215 static int l_get_luaentity(lua_State *L);
216
217 /* Player-only */
218
219 // get_player_name(self)
220 static int l_get_player_name(lua_State *L);
221
222 // get_fov(self)
223 static int l_get_fov(lua_State *L);
224
225 // get_look_dir(self)
226 static int l_get_look_dir(lua_State *L);
227
228 // DEPRECATED
229 // get_look_pitch(self)
230 static int l_get_look_pitch(lua_State *L);
231
232 // DEPRECATED
233 // get_look_yaw(self)
234 static int l_get_look_yaw(lua_State *L);
235
236 // get_look_pitch2(self)
237 static int l_get_look_vertical(lua_State *L);
238
239 // get_look_yaw2(self)
240 static int l_get_look_horizontal(lua_State *L);
241
242 // set_fov(self, degrees, is_multiplier, transition_time)
243 static int l_set_fov(lua_State *L);
244
245 // set_look_vertical(self, radians)
246 static int l_set_look_vertical(lua_State *L);
247
248 // set_look_horizontal(self, radians)
249 static int l_set_look_horizontal(lua_State *L);
250
251 // DEPRECATED
252 // set_look_pitch(self, radians)
253 static int l_set_look_pitch(lua_State *L);
254
255 // DEPRECATED
256 // set_look_yaw(self, radians)
257 static int l_set_look_yaw(lua_State *L);
258
259 // set_breath(self, breath)
260 static int l_set_breath(lua_State *L);
261
262 // get_breath(self, breath)
263 static int l_get_breath(lua_State *L);
264
265 // DEPRECATED
266 // set_attribute(self, attribute, value)
267 static int l_set_attribute(lua_State *L);
268
269 // DEPRECATED
270 // get_attribute(self, attribute)
271 static int l_get_attribute(lua_State *L);
272
273 // get_meta(self)
274 static int l_get_meta(lua_State *L);
275
276 // set_inventory_formspec(self, formspec)
277 static int l_set_inventory_formspec(lua_State *L);
278
279 // get_inventory_formspec(self)
280 static int l_get_inventory_formspec(lua_State *L);
281
282 // set_formspec_prepend(self, formspec)
283 static int l_set_formspec_prepend(lua_State *L);
284
285 // get_formspec_prepend(self)
286 static int l_get_formspec_prepend(lua_State *L);
287
288 // get_player_control(self)
289 static int l_get_player_control(lua_State *L);
290
291 // get_player_control_bits(self)
292 static int l_get_player_control_bits(lua_State *L);
293
294 // hud_add(self, id, form)
295 static int l_hud_add(lua_State *L);
296
297 // hud_rm(self, id)
298 static int l_hud_remove(lua_State *L);
299
300 // hud_change(self, id, stat, data)
301 static int l_hud_change(lua_State *L);
302
303 // hud_get_next_id(self)
304 static u32 hud_get_next_id(lua_State *L);
305
306 // hud_get(self, id)
307 static int l_hud_get(lua_State *L);
308
309 // hud_get_all(self)
310 static int l_hud_get_all(lua_State *L);
311
312 // hud_set_flags(self, flags)
313 static int l_hud_set_flags(lua_State *L);
314
315 // hud_get_flags()
316 static int l_hud_get_flags(lua_State *L);
317
318 // hud_set_hotbar_itemcount(self, hotbar_itemcount)
319 static int l_hud_set_hotbar_itemcount(lua_State *L);
320
321 // hud_get_hotbar_itemcount(self)
322 static int l_hud_get_hotbar_itemcount(lua_State *L);
323
324 // hud_set_hotbar_image(self, name)
325 static int l_hud_set_hotbar_image(lua_State *L);
326
327 // hud_get_hotbar_image(self)
328 static int l_hud_get_hotbar_image(lua_State *L);
329
330 // hud_set_hotbar_selected_image(self, name)
331 static int l_hud_set_hotbar_selected_image(lua_State *L);
332
333 // hud_get_hotbar_selected_image(self)
334 static int l_hud_get_hotbar_selected_image(lua_State *L);
335
336 // set_sky(self, sky_parameters)
337 static int l_set_sky(lua_State *L);
338
339 // get_sky(self, as_table)
340 static int l_get_sky(lua_State *L);
341
342 // DEPRECATED
343 // get_sky_color(self)
344 static int l_get_sky_color(lua_State* L);
345
346 // set_sun(self, sun_parameters)
347 static int l_set_sun(lua_State *L);
348
349 // get_sun(self)
350 static int l_get_sun(lua_State *L);
351
352 // set_moon(self, moon_parameters)
353 static int l_set_moon(lua_State *L);
354
355 // get_moon(self)
356 static int l_get_moon(lua_State *L);
357
358 // set_stars(self, star_parameters)
359 static int l_set_stars(lua_State *L);
360
361 // get_stars(self)
362 static int l_get_stars(lua_State *L);
363
364 // set_clouds(self, cloud_parameters)
365 static int l_set_clouds(lua_State *L);
366
367 // get_clouds(self)
368 static int l_get_clouds(lua_State *L);
369
370 // override_day_night_ratio(self, type)
371 static int l_override_day_night_ratio(lua_State *L);
372
373 // get_day_night_ratio(self)
374 static int l_get_day_night_ratio(lua_State *L);
375
376 // set_local_animation(self, idle, walk, dig, walk_while_dig, frame_speed)
377 static int l_set_local_animation(lua_State *L);
378
379 // get_local_animation(self)
380 static int l_get_local_animation(lua_State *L);
381
382 // set_eye_offset(self, firstperson, thirdperson, thirdperson_front)
383 static int l_set_eye_offset(lua_State *L);
384
385 // get_eye_offset(self)
386 static int l_get_eye_offset(lua_State *L);
387
388 // set_camera(self, {params})
389 static int l_set_camera(lua_State *L);
390
391 // get_camera(self)
392 static int l_get_camera(lua_State *L);
393
394 // set_nametag_attributes(self, attributes)
395 static int l_set_nametag_attributes(lua_State *L);
396
397 // get_nametag_attributes(self)
398 static int l_get_nametag_attributes(lua_State *L);
399
400 // send_mapblock(pos)
401 static int l_send_mapblock(lua_State *L);
402
403 // set_minimap_modes(self, modes, wanted_mode)
404 static int l_set_minimap_modes(lua_State *L);
405
406 // set_lighting(self, lighting)
407 static int l_set_lighting(lua_State *L);
408
409 // get_lighting(self)
410 static int l_get_lighting(lua_State *L);
411
412 // respawn(self)
413 static int l_respawn(lua_State *L);
414
415 // set_flags(self, flags)
416 static int l_set_flags(lua_State *L);
417
418 // get_flags(self)
419 static int l_get_flags(lua_State *L);
420};
Definition luaentity_sao.h:12
Definition l_base.h:27
Definition l_object.h:20
static int l_get_bone_position(lua_State *L)
Definition l_object.cpp:627
static int l_get_acceleration(lua_State *L)
Definition l_object.cpp:1137
static int l_get_wield_list(lua_State *L)
Definition l_object.cpp:305
static int l_respawn(lua_State *L)
Definition l_object.cpp:2775
static int l_get_lighting(lua_State *L)
Definition l_object.cpp:2726
static int l_hud_get_all(lua_State *L)
Definition l_object.cpp:1897
static int l_get_formspec_prepend(lua_State *L)
Definition l_object.cpp:1636
static int l_set_sprite(lua_State *L)
Definition l_object.cpp:1244
static int l_get_day_night_ratio(lua_State *L)
Definition l_object.cpp:2596
static int l_add_pos(lua_State *L)
Definition l_object.cpp:165
static int l_get_observers(lua_State *L)
Definition l_object.cpp:957
static int l_set_observers(lua_State *L)
Definition l_object.cpp:899
static int l_set_clouds(lua_State *L)
Definition l_object.cpp:2492
static int l_override_day_night_ratio(lua_State *L)
Definition l_object.cpp:2573
static int l_hud_get(lua_State *L)
Definition l_object.cpp:1878
static int l_is_player(lua_State *L)
Definition l_object.cpp:974
static int l_get_sky_color(lua_State *L)
Definition l_object.cpp:2309
static int l_hud_add(lua_State *L)
Definition l_object.cpp:1811
static int l_get_wielded_item(lua_State *L)
Definition l_object.cpp:331
static PlayerSAO * getplayersao(ObjectRef *ref)
Definition l_object.cpp:52
static int l_add_velocity(lua_State *L)
Definition l_object.cpp:1075
static int l_hud_remove(lua_State *L)
Definition l_object.cpp:1833
static int l_set_look_pitch(lua_State *L)
Definition l_object.cpp:1420
static int l_get_flags(lua_State *L)
Definition l_object.cpp:2806
static int l_set_moon(lua_State *L)
Definition l_object.cpp:2381
static int l_get_stars(lua_State *L)
Definition l_object.cpp:2465
static int l_get_texture_mod(lua_State *L)
Definition l_object.cpp:1229
static int l_get_player_control(lua_State *L)
Definition l_object.cpp:1651
static int l_set_look_horizontal(lua_State *L)
Definition l_object.cpp:1404
static int l_get_yaw(lua_State *L)
Definition l_object.cpp:1199
static int l_get_bone_overrides(lua_State *L)
Definition l_object.cpp:755
static int l_get_local_animation(lua_State *L)
Definition l_object.cpp:466
static int l_set_inventory_formspec(lua_State *L)
Definition l_object.cpp:1583
static int l_set_rotation(lua_State *L)
Definition l_object.cpp:1151
static int l_get_look_horizontal(lua_State *L)
Definition l_object.cpp:1376
static void create(lua_State *L, ServerActiveObject *object)
Definition l_object.cpp:2830
static int l_hud_get_hotbar_itemcount(lua_State *L)
Definition l_object.cpp:1980
static RemotePlayer * getplayer(ObjectRef *ref)
Definition l_object.cpp:62
static int l_get_look_yaw(lua_State *L)
Definition l_object.cpp:1346
static int l_send_mapblock(lua_State *L)
Definition l_object.cpp:562
ObjectRef(ServerActiveObject *object)
Definition l_object.cpp:2824
static int l_get_attribute(lua_State *L)
Definition l_object.cpp:1547
static int l_set_breath(lua_State *L)
Definition l_object.cpp:1496
static int gc_object(lua_State *L)
Definition l_object.cpp:91
static int l_get_look_vertical(lua_State *L)
Definition l_object.cpp:1363
static void set_null(lua_State *L, void *expect)
Definition l_object.cpp:2838
static int l_set_physics_override(lua_State *L)
Definition l_object.cpp:1727
static int l_set_look_vertical(lua_State *L)
Definition l_object.cpp:1389
static int l_set_formspec_prepend(lua_State *L)
Definition l_object.cpp:1618
static int l_hud_set_hotbar_selected_image(lua_State *L)
Definition l_object.cpp:2023
static int l_set_attach(lua_State *L)
Definition l_object.cpp:771
static int l_hud_get_flags(lua_State *L)
Definition l_object.cpp:1944
static int l_get_properties(lua_State *L)
Definition l_object.cpp:882
static int l_is_valid(lua_State *L)
Definition l_object.cpp:116
ServerActiveObject * m_object
Definition l_object.h:40
static int l_get_effective_observers(lua_State *L)
Definition l_object.cpp:964
static int l_punch(lua_State *L)
Definition l_object.cpp:196
static int l_set_velocity(lua_State *L)
Definition l_object.cpp:1060
static int l_set_attribute(lua_State *L)
Definition l_object.cpp:1526
static int l_set_look_yaw(lua_State *L)
Definition l_object.cpp:1440
static int l_set_animation(lua_State *L)
Definition l_object.cpp:406
static int l_get_bone_override(lua_State *L)
Definition l_object.cpp:740
static int l_get_player_control_bits(lua_State *L)
Definition l_object.cpp:1698
static int l_get_guid(lua_State *L)
Definition l_object.cpp:123
static int l_get_camera(lua_State *L)
Definition l_object.cpp:547
static int l_get_meta(lua_State *L)
Definition l_object.cpp:1570
static int l_get_moon(lua_State *L)
Definition l_object.cpp:2407
static int l_move_to(lua_State *L)
Definition l_object.cpp:180
static int l_set_wielded_item(lua_State *L)
Definition l_object.cpp:349
static ServerActiveObject * getobject(ObjectRef *ref)
Definition l_object.cpp:34
static int l_set_flags(lua_State *L)
Definition l_object.cpp:2789
static int l_get_inventory_formspec(lua_State *L)
Definition l_object.cpp:1603
static int l_get_clouds(lua_State *L)
Definition l_object.cpp:2539
static int l_hud_get_hotbar_selected_image(lua_State *L)
Definition l_object.cpp:2038
~ObjectRef()=default
static int l_set_local_animation(lua_State *L)
Definition l_object.cpp:446
static int l_get_look_dir(lua_State *L)
Definition l_object.cpp:1309
static int l_remove(lua_State *L)
Definition l_object.cpp:99
static int l_right_click(lua_State *L)
Definition l_object.cpp:223
static int l_get_breath(lua_State *L)
Definition l_object.cpp:1511
static int l_get_look_pitch(lua_State *L)
Definition l_object.cpp:1328
static int l_set_eye_offset(lua_State *L)
Definition l_object.cpp:487
static int l_get_wield_index(lua_State *L)
Definition l_object.cpp:318
static int l_get_armor_groups(lua_State *L)
Definition l_object.cpp:393
static int l_set_pos(lua_State *L)
Definition l_object.cpp:150
static int l_get_player_name(lua_State *L)
Definition l_object.cpp:1294
static int l_set_sky(lua_State *L)
Definition l_object.cpp:2053
static int l_set_sun(lua_State *L)
Definition l_object.cpp:2326
static int l_get_hp(lua_State *L)
Definition l_object.cpp:270
static int l_get_velocity(lua_State *L)
Definition l_object.cpp:1098
static int l_hud_set_flags(lua_State *L)
Definition l_object.cpp:1918
static LuaEntitySAO * getluaobject(ObjectRef *ref)
Definition l_object.cpp:42
static int l_get_entity_name(lua_State *L)
Definition l_object.cpp:1263
static int l_set_camera(lua_State *L)
Definition l_object.cpp:528
static int l_set_yaw(lua_State *L)
Definition l_object.cpp:1184
static int l_get_rotation(lua_State *L)
Definition l_object.cpp:1168
static int l_get_nametag_attributes(lua_State *L)
Definition l_object.cpp:1024
static int l_get_animation(lua_State *L)
Definition l_object.cpp:424
static int l_set_fov(lua_State *L)
Definition l_object.cpp:1459
static int l_get_fov(lua_State *L)
Definition l_object.cpp:1479
static int l_set_properties(lua_State *L)
Definition l_object.cpp:860
static int l_set_lighting(lua_State *L)
Definition l_object.cpp:2670
static int l_get_luaentity(lua_State *L)
Definition l_object.cpp:1279
static int l_get_children(lua_State *L)
Definition l_object.cpp:826
static int l_set_bone_position(lua_State *L)
Definition l_object.cpp:599
static int l_set_detach(lua_State *L)
Definition l_object.cpp:847
static int mt_tostring(lua_State *L)
Definition l_object.cpp:72
static u32 hud_get_next_id(lua_State *L)
static int l_get_eye_offset(lua_State *L)
Definition l_object.cpp:514
static int l_hud_change(lua_State *L)
Definition l_object.cpp:1851
static int l_set_hp(lua_State *L)
Definition l_object.cpp:238
static int l_get_sun(lua_State *L)
Definition l_object.cpp:2354
static int l_set_armor_groups(lua_State *L)
Definition l_object.cpp:368
static int l_set_bone_override(lua_State *L)
Definition l_object.cpp:648
static int l_get_physics_override(lua_State *L)
Definition l_object.cpp:1765
static int l_get_pos(lua_State *L)
Definition l_object.cpp:137
static int l_set_nametag_attributes(lua_State *L)
Definition l_object.cpp:984
static int l_set_minimap_modes(lua_State *L)
Definition l_object.cpp:2617
static int l_get_inventory(lua_State *L)
Definition l_object.cpp:288
static int l_get_attach(lua_State *L)
Definition l_object.cpp:798
static int l_hud_set_hotbar_itemcount(lua_State *L)
Definition l_object.cpp:1962
static int l_get_sky(lua_State *L)
Definition l_object.cpp:2245
static int l_set_texture_mod(lua_State *L)
Definition l_object.cpp:1214
static int l_hud_get_hotbar_image(lua_State *L)
Definition l_object.cpp:2008
static int l_set_animation_frame_speed(lua_State *L)
Definition l_object.cpp:580
static const char className[]
Definition l_object.h:38
static int l_hud_set_hotbar_image(lua_State *L)
Definition l_object.cpp:1993
static int l_set_acceleration(lua_State *L)
Definition l_object.cpp:1122
static luaL_Reg methods[]
Definition l_object.h:2857
static int l_set_stars(lua_State *L)
Definition l_object.cpp:2430
Definition player_sao.h:58
Definition remoteplayer.h:27
Definition serveractiveobject.h:41