Luanti 5.17.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 a 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, skip_anim)
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 // Old animation API:
119
120 // set_animation(self, frame_range, frame_speed, frame_blend, frame_loop)
121 static int l_set_animation(lua_State *L);
122 // set_animation_frame_speed(self, frame_speed)
123 static int l_set_animation_frame_speed(lua_State *L);
124 // get_animation(self)
125 static int l_get_animation(lua_State *L);
126
127 // New animation API:
128
129 // play_animation(self, track, [animation])
130 static int l_play_animation(lua_State *L);
131 // update_animation(self, track, update)
132 static int l_update_animation(lua_State *L);
133 // stop_animation(self, [track])
134 static int l_stop_animation(lua_State *L);
135 // get_animations(self)
136 static int l_get_animations(lua_State *L);
137
138 // set_bone_position(self, bone, position, rotation)
139 static int l_set_bone_position(lua_State *L);
140
141 // get_bone_position(self, bone)
142 static int l_get_bone_position(lua_State *L);
143
144 // set_bone_override(self, bone)
145 static int l_set_bone_override(lua_State *L);
146
147 // get_bone_override(self, bone)
148 static int l_get_bone_override(lua_State *L);
149
150 // get_bone_override(self)
151 static int l_get_bone_overrides(lua_State *L);
152
153 // set_attach(self, parent, bone, position, rotation)
154 static int l_set_attach(lua_State *L);
155
156 // get_attach(self)
157 static int l_get_attach(lua_State *L);
158
159 // get_children(self)
160 static int l_get_children(lua_State *L);
161
162 // set_detach(self)
163 static int l_set_detach(lua_State *L);
164
165 // set_properties(self, properties)
166 static int l_set_properties(lua_State *L);
167
168 // get_properties(self)
169 static int l_get_properties(lua_State *L);
170
171 // set_observers(self, observers)
172 static int l_set_observers(lua_State *L);
173
174 // get_observers(self)
175 static int l_get_observers(lua_State *L);
176
177 // get_effective_observers(self)
178 static int l_get_effective_observers(lua_State *L);
179
180 // is_player(self)
181 static int l_is_player(lua_State *L);
182
183 /* LuaEntitySAO-only */
184
185 // set_velocity(self, velocity)
186 static int l_set_velocity(lua_State *L);
187
188 // add_velocity(self, velocity)
189 static int l_add_velocity(lua_State *L);
190
191 // get_velocity(self)
192 static int l_get_velocity(lua_State *L);
193
194 // set_acceleration(self, acceleration)
195 static int l_set_acceleration(lua_State *L);
196
197 // get_acceleration(self)
198 static int l_get_acceleration(lua_State *L);
199
200 // set_rotation(self, rotation)
201 static int l_set_rotation(lua_State *L);
202
203 // get_rotation(self)
204 static int l_get_rotation(lua_State *L);
205
206 // set_yaw(self, yaw)
207 static int l_set_yaw(lua_State *L);
208
209 // get_yaw(self)
210 static int l_get_yaw(lua_State *L);
211
212 // set_texture_mod(self, mod)
213 static int l_set_texture_mod(lua_State *L);
214
215 // l_get_texture_mod(self)
216 static int l_get_texture_mod(lua_State *L);
217
218 // set_sprite(self, start_frame, num_frames, framelength, select_x_by_camera)
219 static int l_set_sprite(lua_State *L);
220
221 // DEPRECATED
222 // get_entity_name(self)
223 static int l_get_entity_name(lua_State *L);
224
225 // get_luaentity(self)
226 static int l_get_luaentity(lua_State *L);
227
228 /* Player-only */
229
230 // get_player_name(self)
231 static int l_get_player_name(lua_State *L);
232
233 // get_fov(self)
234 static int l_get_fov(lua_State *L);
235
236 // get_look_dir(self)
237 static int l_get_look_dir(lua_State *L);
238
239 // DEPRECATED
240 // get_look_pitch(self)
241 static int l_get_look_pitch(lua_State *L);
242
243 // DEPRECATED
244 // get_look_yaw(self)
245 static int l_get_look_yaw(lua_State *L);
246
247 // get_look_pitch2(self)
248 static int l_get_look_vertical(lua_State *L);
249
250 // get_look_yaw2(self)
251 static int l_get_look_horizontal(lua_State *L);
252
253 // set_fov(self, degrees, is_multiplier, transition_time)
254 static int l_set_fov(lua_State *L);
255
256 // set_look_vertical(self, radians)
257 static int l_set_look_vertical(lua_State *L);
258
259 // set_look_horizontal(self, radians)
260 static int l_set_look_horizontal(lua_State *L);
261
262 // DEPRECATED
263 // set_look_pitch(self, radians)
264 static int l_set_look_pitch(lua_State *L);
265
266 // DEPRECATED
267 // set_look_yaw(self, radians)
268 static int l_set_look_yaw(lua_State *L);
269
270 // set_breath(self, breath)
271 static int l_set_breath(lua_State *L);
272
273 // get_breath(self, breath)
274 static int l_get_breath(lua_State *L);
275
276 // DEPRECATED
277 // set_attribute(self, attribute, value)
278 static int l_set_attribute(lua_State *L);
279
280 // DEPRECATED
281 // get_attribute(self, attribute)
282 static int l_get_attribute(lua_State *L);
283
284 // get_meta(self)
285 static int l_get_meta(lua_State *L);
286
287 // set_inventory_formspec(self, formspec)
288 static int l_set_inventory_formspec(lua_State *L);
289
290 // get_inventory_formspec(self)
291 static int l_get_inventory_formspec(lua_State *L);
292
293 // set_formspec_prepend(self, formspec)
294 static int l_set_formspec_prepend(lua_State *L);
295
296 // get_formspec_prepend(self)
297 static int l_get_formspec_prepend(lua_State *L);
298
299 // get_player_control(self)
300 static int l_get_player_control(lua_State *L);
301
302 // get_player_control_bits(self)
303 static int l_get_player_control_bits(lua_State *L);
304
305 // hud_add(self, id, form)
306 static int l_hud_add(lua_State *L);
307
308 // hud_rm(self, id)
309 static int l_hud_remove(lua_State *L);
310
311 // hud_change(self, id, stat, data)
312 static int l_hud_change(lua_State *L);
313
314 // hud_get_next_id(self)
315 static u32 hud_get_next_id(lua_State *L);
316
317 // hud_get(self, id)
318 static int l_hud_get(lua_State *L);
319
320 // hud_get_all(self)
321 static int l_hud_get_all(lua_State *L);
322
323 // hud_set_flags(self, flags)
324 static int l_hud_set_flags(lua_State *L);
325
326 // hud_get_flags()
327 static int l_hud_get_flags(lua_State *L);
328
329 // hud_set_hotbar_itemcount(self, hotbar_itemcount)
330 static int l_hud_set_hotbar_itemcount(lua_State *L);
331
332 // hud_get_hotbar_itemcount(self)
333 static int l_hud_get_hotbar_itemcount(lua_State *L);
334
335 // hud_set_hotbar_image(self, name)
336 static int l_hud_set_hotbar_image(lua_State *L);
337
338 // hud_get_hotbar_image(self)
339 static int l_hud_get_hotbar_image(lua_State *L);
340
341 // hud_set_hotbar_selected_image(self, name)
342 static int l_hud_set_hotbar_selected_image(lua_State *L);
343
344 // hud_get_hotbar_selected_image(self)
345 static int l_hud_get_hotbar_selected_image(lua_State *L);
346
347 // set_sky(self, sky_parameters)
348 static int l_set_sky(lua_State *L);
349
350 // get_sky(self, as_table)
351 static int l_get_sky(lua_State *L);
352
353 // DEPRECATED
354 // get_sky_color(self)
355 static int l_get_sky_color(lua_State* L);
356
357 // set_sun(self, sun_parameters)
358 static int l_set_sun(lua_State *L);
359
360 // get_sun(self)
361 static int l_get_sun(lua_State *L);
362
363 // set_moon(self, moon_parameters)
364 static int l_set_moon(lua_State *L);
365
366 // get_moon(self)
367 static int l_get_moon(lua_State *L);
368
369 // set_stars(self, star_parameters)
370 static int l_set_stars(lua_State *L);
371
372 // get_stars(self)
373 static int l_get_stars(lua_State *L);
374
375 // set_clouds(self, cloud_parameters)
376 static int l_set_clouds(lua_State *L);
377
378 // get_clouds(self)
379 static int l_get_clouds(lua_State *L);
380
381 // override_day_night_ratio(self, type)
382 static int l_override_day_night_ratio(lua_State *L);
383
384 // get_day_night_ratio(self)
385 static int l_get_day_night_ratio(lua_State *L);
386
387 // set_local_animation(self, idle, walk, dig, walk_while_dig, frame_speed)
388 static int l_set_local_animation(lua_State *L);
389
390 // get_local_animation(self)
391 static int l_get_local_animation(lua_State *L);
392
393 // set_eye_offset(self, firstperson, thirdperson, thirdperson_front)
394 static int l_set_eye_offset(lua_State *L);
395
396 // get_eye_offset(self)
397 static int l_get_eye_offset(lua_State *L);
398
399 // set_camera(self, {params})
400 static int l_set_camera(lua_State *L);
401
402 // get_camera(self)
403 static int l_get_camera(lua_State *L);
404
405 // set_nametag_attributes(self, attributes)
406 static int l_set_nametag_attributes(lua_State *L);
407
408 // get_nametag_attributes(self)
409 static int l_get_nametag_attributes(lua_State *L);
410
411 // send_mapblock(pos)
412 static int l_send_mapblock(lua_State *L);
413
414 // set_minimap_modes(self, modes, wanted_mode)
415 static int l_set_minimap_modes(lua_State *L);
416
417 // set_lighting(self, lighting)
418 static int l_set_lighting(lua_State *L);
419
420 // get_lighting(self)
421 static int l_get_lighting(lua_State *L);
422
423 // respawn(self)
424 static int l_respawn(lua_State *L);
425
426 // set_flags(self, flags)
427 static int l_set_flags(lua_State *L);
428
429 // get_flags(self)
430 static int l_get_flags(lua_State *L);
431};
Definition luaentity_sao.h:12
Definition l_base.h:28
static int l_get_bone_position(lua_State *L)
Definition l_object.cpp:781
static int l_get_acceleration(lua_State *L)
Definition l_object.cpp:1291
static int l_get_wield_list(lua_State *L)
Definition l_object.cpp:309
static int l_respawn(lua_State *L)
Definition l_object.cpp:2934
static int l_get_lighting(lua_State *L)
Definition l_object.cpp:2883
static int l_hud_get_all(lua_State *L)
Definition l_object.cpp:2053
static int l_get_formspec_prepend(lua_State *L)
Definition l_object.cpp:1790
static void Register(lua_State *L)
Definition l_object.cpp:3005
static int l_set_sprite(lua_State *L)
Definition l_object.cpp:1398
static int l_get_day_night_ratio(lua_State *L)
Definition l_object.cpp:2749
static int l_add_pos(lua_State *L)
Definition l_object.cpp:169
static int l_get_observers(lua_State *L)
Definition l_object.cpp:1111
static int l_set_observers(lua_State *L)
Definition l_object.cpp:1053
static int l_set_clouds(lua_State *L)
Definition l_object.cpp:2645
static int l_override_day_night_ratio(lua_State *L)
Definition l_object.cpp:2726
static int l_hud_get(lua_State *L)
Definition l_object.cpp:2034
static int l_is_player(lua_State *L)
Definition l_object.cpp:1128
static int l_get_sky_color(lua_State *L)
Definition l_object.cpp:2462
static int l_hud_add(lua_State *L)
Definition l_object.cpp:1968
static int l_get_wielded_item(lua_State *L)
Definition l_object.cpp:335
static PlayerSAO * getplayersao(ObjectRef *ref)
Definition l_object.cpp:56
static int l_add_velocity(lua_State *L)
Definition l_object.cpp:1229
static int l_hud_remove(lua_State *L)
Definition l_object.cpp:1989
static int l_set_look_pitch(lua_State *L)
Definition l_object.cpp:1574
static int l_get_flags(lua_State *L)
Definition l_object.cpp:2965
static int l_stop_animation(lua_State *L)
Definition l_object.cpp:556
static int l_set_moon(lua_State *L)
Definition l_object.cpp:2534
static int l_get_stars(lua_State *L)
Definition l_object.cpp:2618
static int l_get_texture_mod(lua_State *L)
Definition l_object.cpp:1383
static int l_get_player_control(lua_State *L)
Definition l_object.cpp:1805
static int l_set_look_horizontal(lua_State *L)
Definition l_object.cpp:1558
static int l_get_yaw(lua_State *L)
Definition l_object.cpp:1353
static int l_get_bone_overrides(lua_State *L)
Definition l_object.cpp:909
static int l_get_local_animation(lua_State *L)
Definition l_object.cpp:635
static int l_set_inventory_formspec(lua_State *L)
Definition l_object.cpp:1737
static int l_set_rotation(lua_State *L)
Definition l_object.cpp:1305
static int l_get_look_horizontal(lua_State *L)
Definition l_object.cpp:1530
static void create(lua_State *L, ServerActiveObject *object)
Definition l_object.cpp:2989
static int l_hud_get_hotbar_itemcount(lua_State *L)
Definition l_object.cpp:2136
static RemotePlayer * getplayer(ObjectRef *ref)
Definition l_object.cpp:66
static int l_get_look_yaw(lua_State *L)
Definition l_object.cpp:1500
static int l_update_animation(lua_State *L)
Definition l_object.cpp:538
static int l_send_mapblock(lua_State *L)
Definition l_object.cpp:735
ObjectRef(ServerActiveObject *object)
Definition l_object.cpp:2983
static int l_get_attribute(lua_State *L)
Definition l_object.cpp:1701
static int l_set_breath(lua_State *L)
Definition l_object.cpp:1650
static int gc_object(lua_State *L)
Definition l_object.cpp:95
static int l_get_look_vertical(lua_State *L)
Definition l_object.cpp:1517
static void set_null(lua_State *L, void *expect)
Definition l_object.cpp:2997
static int l_set_physics_override(lua_State *L)
Definition l_object.cpp:1884
static int l_set_look_vertical(lua_State *L)
Definition l_object.cpp:1543
static int l_set_formspec_prepend(lua_State *L)
Definition l_object.cpp:1772
static int l_hud_set_hotbar_selected_image(lua_State *L)
Definition l_object.cpp:2179
static int l_set_attach(lua_State *L)
Definition l_object.cpp:925
static int l_hud_get_flags(lua_State *L)
Definition l_object.cpp:2100
static int l_get_properties(lua_State *L)
Definition l_object.cpp:1036
static int l_is_valid(lua_State *L)
Definition l_object.cpp:120
ServerActiveObject * m_object
Definition l_object.h:40
static int l_get_effective_observers(lua_State *L)
Definition l_object.cpp:1118
static int l_punch(lua_State *L)
Definition l_object.cpp:200
static int l_set_velocity(lua_State *L)
Definition l_object.cpp:1214
static int l_set_attribute(lua_State *L)
Definition l_object.cpp:1680
static int l_set_look_yaw(lua_State *L)
Definition l_object.cpp:1594
static int l_set_animation(lua_State *L)
Definition l_object.cpp:413
static int l_get_bone_override(lua_State *L)
Definition l_object.cpp:894
static int l_get_player_control_bits(lua_State *L)
Definition l_object.cpp:1852
static int l_get_guid(lua_State *L)
Definition l_object.cpp:127
static int l_get_camera(lua_State *L)
Definition l_object.cpp:720
static int l_get_meta(lua_State *L)
Definition l_object.cpp:1724
static int l_get_moon(lua_State *L)
Definition l_object.cpp:2560
static int l_move_to(lua_State *L)
Definition l_object.cpp:184
static int l_set_wielded_item(lua_State *L)
Definition l_object.cpp:353
static ServerActiveObject * getobject(ObjectRef *ref)
Definition l_object.cpp:38
static int l_set_flags(lua_State *L)
Definition l_object.cpp:2948
static int l_get_inventory_formspec(lua_State *L)
Definition l_object.cpp:1757
static int l_get_clouds(lua_State *L)
Definition l_object.cpp:2692
static int l_hud_get_hotbar_selected_image(lua_State *L)
Definition l_object.cpp:2194
~ObjectRef()=default
static int l_set_local_animation(lua_State *L)
Definition l_object.cpp:615
static int l_get_look_dir(lua_State *L)
Definition l_object.cpp:1463
static int l_remove(lua_State *L)
Definition l_object.cpp:103
static int l_right_click(lua_State *L)
Definition l_object.cpp:227
static int l_get_breath(lua_State *L)
Definition l_object.cpp:1665
static int l_get_look_pitch(lua_State *L)
Definition l_object.cpp:1482
static int l_set_eye_offset(lua_State *L)
Definition l_object.cpp:656
static int l_get_wield_index(lua_State *L)
Definition l_object.cpp:322
static int l_get_armor_groups(lua_State *L)
Definition l_object.cpp:400
static int l_set_pos(lua_State *L)
Definition l_object.cpp:154
static int l_get_player_name(lua_State *L)
Definition l_object.cpp:1448
static int l_set_sky(lua_State *L)
Definition l_object.cpp:2209
static int l_set_sun(lua_State *L)
Definition l_object.cpp:2479
static int l_get_hp(lua_State *L)
Definition l_object.cpp:274
static int l_get_velocity(lua_State *L)
Definition l_object.cpp:1252
static int l_hud_set_flags(lua_State *L)
Definition l_object.cpp:2074
static int l_play_animation(lua_State *L)
Definition l_object.cpp:520
static LuaEntitySAO * getluaobject(ObjectRef *ref)
Definition l_object.cpp:46
static int l_get_entity_name(lua_State *L)
Definition l_object.cpp:1417
static int l_set_camera(lua_State *L)
Definition l_object.cpp:697
static int l_set_yaw(lua_State *L)
Definition l_object.cpp:1338
static int l_get_rotation(lua_State *L)
Definition l_object.cpp:1322
static int l_get_nametag_attributes(lua_State *L)
Definition l_object.cpp:1178
static int l_get_animation(lua_State *L)
Definition l_object.cpp:438
static int l_set_fov(lua_State *L)
Definition l_object.cpp:1613
static int l_get_fov(lua_State *L)
Definition l_object.cpp:1633
static int l_set_properties(lua_State *L)
Definition l_object.cpp:1014
static int l_set_lighting(lua_State *L)
Definition l_object.cpp:2823
static int l_get_luaentity(lua_State *L)
Definition l_object.cpp:1433
static int l_get_children(lua_State *L)
Definition l_object.cpp:980
static int l_set_bone_position(lua_State *L)
Definition l_object.cpp:753
static int l_set_detach(lua_State *L)
Definition l_object.cpp:1001
static int mt_tostring(lua_State *L)
Definition l_object.cpp:76
static u32 hud_get_next_id(lua_State *L)
static int l_get_eye_offset(lua_State *L)
Definition l_object.cpp:683
static int l_hud_change(lua_State *L)
Definition l_object.cpp:2007
static int l_set_hp(lua_State *L)
Definition l_object.cpp:242
static int l_get_sun(lua_State *L)
Definition l_object.cpp:2507
static int l_set_armor_groups(lua_State *L)
Definition l_object.cpp:375
static int l_set_bone_override(lua_State *L)
Definition l_object.cpp:802
static int l_get_physics_override(lua_State *L)
Definition l_object.cpp:1922
static int l_get_pos(lua_State *L)
Definition l_object.cpp:141
static int l_set_nametag_attributes(lua_State *L)
Definition l_object.cpp:1138
static int l_set_minimap_modes(lua_State *L)
Definition l_object.cpp:2801
static int l_get_inventory(lua_State *L)
Definition l_object.cpp:292
static int l_get_attach(lua_State *L)
Definition l_object.cpp:952
static int l_hud_set_hotbar_itemcount(lua_State *L)
Definition l_object.cpp:2118
static int l_get_sky(lua_State *L)
Definition l_object.cpp:2395
static int l_set_texture_mod(lua_State *L)
Definition l_object.cpp:1368
static int l_hud_get_hotbar_image(lua_State *L)
Definition l_object.cpp:2164
static int l_set_animation_frame_speed(lua_State *L)
Definition l_object.cpp:596
static const char className[]
Definition l_object.h:38
static int l_hud_set_hotbar_image(lua_State *L)
Definition l_object.cpp:2149
static int l_set_acceleration(lua_State *L)
Definition l_object.cpp:1276
static luaL_Reg methods[]
Definition l_object.h:3016
static int l_set_stars(lua_State *L)
Definition l_object.cpp:2583
static int l_get_animations(lua_State *L)
Definition l_object.cpp:577
Definition player_sao.h:58
Definition remoteplayer.h:27
Definition serveractiveobject.h:42