aboutsummaryrefslogtreecommitdiff
path: root/games/devtest/mods/testtools/light.lua
diff options
context:
space:
mode:
Diffstat (limited to 'games/devtest/mods/testtools/light.lua')
-rw-r--r--games/devtest/mods/testtools/light.lua37
1 files changed, 37 insertions, 0 deletions
diff --git a/games/devtest/mods/testtools/light.lua b/games/devtest/mods/testtools/light.lua
new file mode 100644
index 000000000..afca9a489
--- /dev/null
+++ b/games/devtest/mods/testtools/light.lua
@@ -0,0 +1,37 @@
+
+local S = minetest.get_translator("testtools")
+
+local function get_func(is_place)
+ return function(itemstack, user, pointed_thing)
+ local pos
+ if is_place then
+ pos = pointed_thing.under
+ else
+ pos = pointed_thing.above
+ end
+ if pointed_thing.type ~= "node" or not pos then
+ return
+ end
+
+ local node = minetest.get_node(pos)
+ local pstr = minetest.pos_to_string(pos)
+ local time = minetest.get_timeofday()
+ local sunlight = minetest.get_natural_light(pos)
+ local artificial = minetest.get_artificial_light(node.param1)
+ local message = ("pos=%s | param1=0x%02x | " ..
+ "sunlight=%d | artificial=%d | timeofday=%.5f" )
+ :format(pstr, node.param1, sunlight, artificial, time)
+ minetest.chat_send_player(user:get_player_name(), message)
+ end
+end
+
+minetest.register_tool("testtools:lighttool", {
+ description = S("Light Tool") .. "\n" ..
+ S("Show light values of node") .. "\n" ..
+ S("Punch: Light of node above touched node") .. "\n" ..
+ S("Place: Light of touched node itself"),
+ inventory_image = "testtools_lighttool.png",
+ groups = { testtool = 1, disable_repair = 1 },
+ on_use = get_func(false),
+ on_place = get_func(true),
+})