diff options
author | Wuzzy <wuzzy2@mail.ru> | 2020-05-24 15:46:26 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-24 14:46:26 +0100 |
commit | 6456aba73f0ef3f2fa7fd2b2a69cfdf8624afe23 (patch) | |
tree | f2bada583c6f4d3032f28b2627bf052174f0a847 /games/minimal/mods/testentities/callbacks.lua | |
parent | a9b74f4c3966ad38c2f9a97364d3fdda0e514c93 (diff) | |
download | minetest-6456aba73f0ef3f2fa7fd2b2a69cfdf8624afe23.tar.gz minetest-6456aba73f0ef3f2fa7fd2b2a69cfdf8624afe23.tar.bz2 minetest-6456aba73f0ef3f2fa7fd2b2a69cfdf8624afe23.zip |
Replacement for Minimal Development Test (PR) (#9450)
Diffstat (limited to 'games/minimal/mods/testentities/callbacks.lua')
-rw-r--r-- | games/minimal/mods/testentities/callbacks.lua | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/games/minimal/mods/testentities/callbacks.lua b/games/minimal/mods/testentities/callbacks.lua new file mode 100644 index 000000000..711079f87 --- /dev/null +++ b/games/minimal/mods/testentities/callbacks.lua @@ -0,0 +1,75 @@ +-- Entities that test their callbacks + +local message = function(msg) + minetest.log("action", msg) + minetest.chat_send_all(msg) +end + +local get_object_name = function(obj) + local name = "<nil>" + if obj then + if obj:is_player() then + name = obj:get_player_name() + else + name = "<entity>" + end + end + return name +end + +local spos = function(self) + return minetest.pos_to_string(vector.round(self.object:get_pos())) +end + +-- Callback test entity (all callbacks except on_step) +minetest.register_entity("testentities:callback", { + initial_properties = { + visual = "upright_sprite", + textures = { "testentities_callback.png" }, + }, + + on_activate = function(self, staticdata, dtime_s) + message("Callback entity: on_activate! pos="..spos(self).."; dtime_s="..dtime_s) + end, + on_punch = function(self, puncher, time_from_last_punch, tool_capabilities, dir, damage) + local name = get_object_name(puncher) + message( + "Callback entity: on_punch! ".. + "pos="..spos(self).."; puncher="..name.."; ".. + "time_from_last_punch="..time_from_last_punch.."; ".. + "tool_capabilities="..tostring(dump(tool_capabilities)).."; ".. + "dir="..tostring(dump(dir)).."; damage="..damage) + end, + on_rightclick = function(self, clicker) + local name = get_object_name(clicker) + message("Callback entity: on_rightclick! pos="..spos(self).."; clicker="..name) + end, + on_death = function(self, killer) + local name = get_object_name(killer) + message("Callback entity: on_death! pos="..spos(self).."; killer="..name) + end, + on_attach_child = function(self, child) + local name = get_object_name(child) + message("Callback entity: on_attach_child! pos="..spos(self).."; child="..name) + end, + on_detach_child = function(self, child) + local name = get_object_name(child) + message("Callback entity: on_detach_child! pos="..spos(self).."; child="..name) + end, + on_detach = function(self, parent) + local name = get_object_name(parent) + message("Callback entity: on_detach! pos="..spos(self).."; parent="..name) + end, + get_staticdata = function(self) + message("Callback entity: get_staticdata! pos="..spos(self)) + end, +}) + +-- Only test on_step callback +minetest.register_entity("testentities:callback_step", { + visual = "upright_sprite", + textures = { "testentities_callback_step.png" }, + on_step = function(self, dtime) + message("on_step callback entity: on_step! pos="..spos(self).."; dtime="..dtime) + end, +}) |