]> git.lizzy.rs Git - minetest.git/commitdiff
DevTest: Move callback items to callbacks mod
authorWuzzy <Wuzzy@disroot.org>
Sun, 9 Oct 2022 12:22:42 +0000 (14:22 +0200)
committersfan5 <sfan5@live.de>
Sun, 23 Oct 2022 19:58:56 +0000 (21:58 +0200)
games/devtest/mods/callbacks/init.lua
games/devtest/mods/callbacks/items.lua [new file with mode: 0644]
games/devtest/mods/callbacks/nodes.lua [new file with mode: 0644]
games/devtest/mods/callbacks/textures/callbacks_callback_item_1.png [new file with mode: 0644]
games/devtest/mods/callbacks/textures/callbacks_callback_item_2.png [new file with mode: 0644]
games/devtest/mods/testitems/init.lua
games/devtest/mods/testitems/textures/testitems_callback_1.png [deleted file]
games/devtest/mods/testitems/textures/testitems_callback_2.png [deleted file]

index baaf9fbc751da090b4eeef9528758253e86d2d86..c5b0984d5befcec0e3c9f1dd0c99951d09f249a1 100644 (file)
@@ -1,51 +1,2 @@
-local function print_to_everything(msg)
-       minetest.log("action", msg)
-       minetest.chat_send_all(msg)
-end
-
-minetest.register_node("callbacks:callback_node", {
-       description = "Callback Test Node (construct/destruct/timer)".."\n"..
-               "Tests callbacks: on_construct, after_place_node, on_destruct, after_destruct, after_dig_node, on_timer",
-       tiles = {"callbacks_callback_node.png"},
-       groups = {dig_immediate=3},
-       -- This was known to cause a bug in minetest.item_place_node() when used
-       -- via minetest.place_node(), causing a placer with no position
-       paramtype2 = "facedir",
-       drop = "",
-
-       on_construct = function(pos)
-               print_to_everything("callbacks:callback_node:on_construct("..minetest.pos_to_string(pos)..")")
-               local meta = minetest.get_meta(pos)
-               meta:set_string("mine", "test")
-               local timer = minetest.get_node_timer(pos)
-               timer:start(4, 3)
-       end,
-
-       after_place_node = function(pos, placer)
-               print_to_everything("callbacks:callback_node:after_place_node("..minetest.pos_to_string(pos)..")")
-               local meta = minetest.get_meta(pos)
-               if meta:get_string("mine") == "test" then
-                       print_to_everything("correct metadata found")
-               else
-                       print_to_everything("incorrect metadata found")
-               end
-       end,
-
-       on_destruct = function(pos)
-               print_to_everything("callbacks:callback_node:on_destruct("..minetest.pos_to_string(pos)..")")
-       end,
-
-       after_destruct = function(pos)
-               print_to_everything("callbacks:callback_node:after_destruct("..minetest.pos_to_string(pos)..")")
-       end,
-
-       after_dig_node = function(pos, oldnode, oldmetadata, digger)
-               print_to_everything("callbacks:callback_node:after_dig_node("..minetest.pos_to_string(pos)..")")
-       end,
-
-       on_timer = function(pos, elapsed)
-               print_to_everything("callbacks:callback_node:on_timer(): elapsed="..dump(elapsed))
-               return true
-       end,
-})
-
+dofile(minetest.get_modpath("callbacks").."/items.lua")
+dofile(minetest.get_modpath("callbacks").."/nodes.lua")
diff --git a/games/devtest/mods/callbacks/items.lua b/games/devtest/mods/callbacks/items.lua
new file mode 100644 (file)
index 0000000..acb05d5
--- /dev/null
@@ -0,0 +1,108 @@
+--
+-- Item callbacks
+--
+
+minetest.register_craftitem("callbacks:callback_item_1", {
+       description = "Callback test item 1\n(Use/Drop + Sneak to switch to item 2)",
+       inventory_image = "callbacks_callback_item_1.png",
+       wield_image = "callbacks_callback_item_1.png",
+
+       on_secondary_use = function(itemstack, user, pointed_thing)
+               minetest.log("[callbacks:callback_item_1 on_secondary_use] " .. itemstack:get_name())
+               local ctrl = user and user:get_player_control() or {}
+               if ctrl.sneak then
+                       itemstack = ItemStack(itemstack)
+                       itemstack:set_name("callbacks:callback_item_2")
+                       return itemstack
+               end
+       end,
+
+       on_drop = function(itemstack, dropper, pos)
+               minetest.log("[callbacks:callback_item_1 on_drop] " .. itemstack:get_name())
+               local ctrl = dropper and dropper:get_player_control() or {}
+               if ctrl.sneak then
+                       itemstack = ItemStack(itemstack)
+                       itemstack:set_name("callbacks:callback_item_2")
+               end
+
+               return minetest.item_drop(itemstack, dropper, pos)
+       end,
+
+       on_pickup = function(itemstack, picker, pointed_thing, ...)
+               minetest.log("[callbacks:callback_item_1 on_pickup]")
+               assert(pointed_thing.ref:get_luaentity().name == "__builtin:item")
+               local ctrl = picker and picker:get_player_control() or {}
+               if ctrl.aux1 then
+                       -- Debug message
+                       minetest.log(dump({...}))
+               end
+               if ctrl.sneak then
+                       -- Pick up one item of the other kind at once
+                       local taken = itemstack:take_item()
+                       taken:set_name("callbacks:callback_item_2")
+                       local leftover = minetest.item_pickup(taken, picker, pointed_thing, ...)
+                       leftover:set_name("callbacks:callback_item_1")
+                       itemstack:add_item(leftover)
+                       return itemstack
+               elseif ctrl.up then
+                       -- Don't pick up
+                       return
+               elseif ctrl.left then
+                       -- Eat it
+                       return minetest.do_item_eat(2, nil, itemstack, picker, pointed_thing)
+               else
+                       -- Normal: pick up everything
+                       return minetest.item_pickup(itemstack, picker, pointed_thing, ...)
+               end
+       end,
+
+       on_use = function(itemstack, user, pointed_thing)
+               minetest.log("[callbacks:callback_item_1 on_use] " .. itemstack:get_name())
+               local ctrl = user and user:get_player_control() or {}
+               if ctrl.sneak then
+                       itemstack = ItemStack(itemstack)
+                       itemstack:set_name("callbacks:callback_item_2")
+                       return itemstack
+               end
+       end,
+
+       after_use = function(itemstack, user, node, digparams) -- never called
+               minetest.log("[callbacks:callback_item_1 after_use]")
+               local ctrl = user and user:get_player_control() or {}
+               if ctrl.up then
+                       itemstack = ItemStack(itemstack)
+                       itemstack:set_name("callbacks:callback_item_2")
+                       return itemstack
+               end
+       end,
+})
+
+minetest.register_craftitem("callbacks:callback_item_2", {
+       description = "Callback test item 2\n(Use to switch to item 1)",
+       inventory_image = "callbacks_callback_item_2.png",
+       wield_image = "callbacks_callback_item_2.png",
+
+       on_use = function(itemstack, user, pointed_thing)
+               minetest.log("[callbacks:callback_item_2 on_use]")
+               itemstack = ItemStack(itemstack)
+               itemstack:set_name("callbacks:callback_item_1")
+               return itemstack
+       end,
+})
+
+minetest.register_on_item_pickup(function(itemstack, picker, pointed_thing, time_from_last_punch, ...)
+       assert(not pointed_thing or pointed_thing.ref:get_luaentity().name == "__builtin:item")
+
+       local item_name = itemstack:get_name()
+       if item_name ~= "callbacks:callback_item_1" and item_name ~= "callbacks:callback_item_2" then
+               return
+       end
+       minetest.log("["..item_name.." register_on_item_pickup]")
+
+       local ctrl = picker and picker:get_player_control() or {}
+       if item_name == "callbacks:callback_item_2" and not ctrl.sneak then
+               -- Same here. Pick up the other item type.
+               itemstack:set_name("callbacks:callback_item_1")
+               return picker:get_inventory():add_item("main", itemstack)
+       end
+end)
diff --git a/games/devtest/mods/callbacks/nodes.lua b/games/devtest/mods/callbacks/nodes.lua
new file mode 100644 (file)
index 0000000..baaf9fb
--- /dev/null
@@ -0,0 +1,51 @@
+local function print_to_everything(msg)
+       minetest.log("action", msg)
+       minetest.chat_send_all(msg)
+end
+
+minetest.register_node("callbacks:callback_node", {
+       description = "Callback Test Node (construct/destruct/timer)".."\n"..
+               "Tests callbacks: on_construct, after_place_node, on_destruct, after_destruct, after_dig_node, on_timer",
+       tiles = {"callbacks_callback_node.png"},
+       groups = {dig_immediate=3},
+       -- This was known to cause a bug in minetest.item_place_node() when used
+       -- via minetest.place_node(), causing a placer with no position
+       paramtype2 = "facedir",
+       drop = "",
+
+       on_construct = function(pos)
+               print_to_everything("callbacks:callback_node:on_construct("..minetest.pos_to_string(pos)..")")
+               local meta = minetest.get_meta(pos)
+               meta:set_string("mine", "test")
+               local timer = minetest.get_node_timer(pos)
+               timer:start(4, 3)
+       end,
+
+       after_place_node = function(pos, placer)
+               print_to_everything("callbacks:callback_node:after_place_node("..minetest.pos_to_string(pos)..")")
+               local meta = minetest.get_meta(pos)
+               if meta:get_string("mine") == "test" then
+                       print_to_everything("correct metadata found")
+               else
+                       print_to_everything("incorrect metadata found")
+               end
+       end,
+
+       on_destruct = function(pos)
+               print_to_everything("callbacks:callback_node:on_destruct("..minetest.pos_to_string(pos)..")")
+       end,
+
+       after_destruct = function(pos)
+               print_to_everything("callbacks:callback_node:after_destruct("..minetest.pos_to_string(pos)..")")
+       end,
+
+       after_dig_node = function(pos, oldnode, oldmetadata, digger)
+               print_to_everything("callbacks:callback_node:after_dig_node("..minetest.pos_to_string(pos)..")")
+       end,
+
+       on_timer = function(pos, elapsed)
+               print_to_everything("callbacks:callback_node:on_timer(): elapsed="..dump(elapsed))
+               return true
+       end,
+})
+
diff --git a/games/devtest/mods/callbacks/textures/callbacks_callback_item_1.png b/games/devtest/mods/callbacks/textures/callbacks_callback_item_1.png
new file mode 100644 (file)
index 0000000..92cbc1b
Binary files /dev/null and b/games/devtest/mods/callbacks/textures/callbacks_callback_item_1.png differ
diff --git a/games/devtest/mods/callbacks/textures/callbacks_callback_item_2.png b/games/devtest/mods/callbacks/textures/callbacks_callback_item_2.png
new file mode 100644 (file)
index 0000000..85732af
Binary files /dev/null and b/games/devtest/mods/callbacks/textures/callbacks_callback_item_2.png differ
index 53b2dbbe9e6f661dc95e406e49d8f6bc574a3593..fd6d4cfaf7e1ecfd4d0a05b69098d6bbbcc6002a 100644 (file)
@@ -51,117 +51,3 @@ minetest.register_craftitem("testitems:overlay_global", {
        wield_overlay = "testitems_overlay_overlay.png",
        color = GLOBAL_COLOR_ARG,
 })
-
-
---
--- Item callbacks
---
-
-minetest.register_craftitem("testitems:callback_1", {
-       description = "Callback Test Item 1".."\n"..
-               "Tests callbacks: on_secondary_use, on_drop, on_pickup, on_use, after_use".."\n"..
-               "Punch/Drop + Sneak: Switch to Callback Test Item 2",
-               "Aux1 + pickup item: Print additional on_pickup arguments",
-       inventory_image = "testitems_callback_1.png",
-       wield_image = "testitems_callback_1.png",
-
-       on_secondary_use = function(itemstack, user, pointed_thing)
-               minetest.log("[testitems:callback_1 on_secondary_use] " .. itemstack:get_name())
-               local ctrl = user and user:get_player_control() or {}
-               if ctrl.sneak then
-                       itemstack = ItemStack(itemstack)
-                       itemstack:set_name("testitems:callback_2")
-                       return itemstack
-               end
-       end,
-
-       on_drop = function(itemstack, dropper, pos)
-               minetest.log("[testitems:callback_1 on_drop] " .. itemstack:get_name())
-               local ctrl = dropper and dropper:get_player_control() or {}
-               if ctrl.sneak then
-                       itemstack = ItemStack(itemstack)
-                       itemstack:set_name("testitems:callback_2")
-               end
-
-               return minetest.item_drop(itemstack, dropper, pos)
-       end,
-
-       on_pickup = function(itemstack, picker, pointed_thing, ...)
-               minetest.log("[testitems:callback_1 on_pickup]")
-               assert(pointed_thing.ref:get_luaentity().name == "__builtin:item")
-               local ctrl = picker and picker:get_player_control() or {}
-               if ctrl.aux1 then
-                       -- Debug message
-                       minetest.log(dump({...}))
-               end
-               if ctrl.sneak then
-                       -- Pick up one item of the other kind at once
-                       local taken = itemstack:take_item()
-                       taken:set_name("testitems:callback_2")
-                       local leftover = minetest.item_pickup(taken, picker, pointed_thing, ...)
-                       leftover:set_name("testitems:callback_1")
-                       itemstack:add_item(leftover)
-                       return itemstack
-               elseif ctrl.up then
-                       -- Don't pick up
-                       return
-               elseif ctrl.left then
-                       -- Eat it
-                       return minetest.do_item_eat(2, nil, itemstack, picker, pointed_thing)
-               else
-                       -- Normal: pick up everything
-                       return minetest.item_pickup(itemstack, picker, pointed_thing, ...)
-               end
-       end,
-
-       on_use = function(itemstack, user, pointed_thing)
-               minetest.log("[testitems:callback_1 on_use] " .. itemstack:get_name())
-               local ctrl = user and user:get_player_control() or {}
-               if ctrl.sneak then
-                       itemstack = ItemStack(itemstack)
-                       itemstack:set_name("testitems:callback_2")
-                       return itemstack
-               end
-       end,
-
-       after_use = function(itemstack, user, node, digparams) -- never called
-               minetest.log("[testitems:callback_1 after_use]")
-               local ctrl = user and user:get_player_control() or {}
-               if ctrl.up then
-                       itemstack = ItemStack(itemstack)
-                       itemstack:set_name("testitems:callback_2")
-                       return itemstack
-               end
-       end,
-})
-
-minetest.register_craftitem("testitems:callback_2", {
-       description = "Callback Test Item 2".."\n"..
-               "Punch to switch to Callback Test Item 1",
-       inventory_image = "testitems_callback_2.png",
-       wield_image = "testitems_callback_2.png",
-
-       on_use = function(itemstack, user, pointed_thing)
-               minetest.log("[testitems:callback_2 on_use]")
-               itemstack = ItemStack(itemstack)
-               itemstack:set_name("testitems:callback_1")
-               return itemstack
-       end,
-})
-
-minetest.register_on_item_pickup(function(itemstack, picker, pointed_thing, time_from_last_punch, ...)
-       assert(not pointed_thing or pointed_thing.ref:get_luaentity().name == "__builtin:item")
-
-       local item_name = itemstack:get_name()
-       if item_name ~= "testitems:callback_1" and item_name ~= "testitems:callback_2" then
-               return
-       end
-       minetest.log("["..item_name.." register_on_item_pickup]")
-
-       local ctrl = picker and picker:get_player_control() or {}
-       if item_name == "testitems:callback_2" and not ctrl.sneak then
-               -- Same here. Pick up the other item type.
-               itemstack:set_name("testitems:callback_1")
-               return picker:get_inventory():add_item("main", itemstack)
-       end
-end)
diff --git a/games/devtest/mods/testitems/textures/testitems_callback_1.png b/games/devtest/mods/testitems/textures/testitems_callback_1.png
deleted file mode 100644 (file)
index 92cbc1b..0000000
Binary files a/games/devtest/mods/testitems/textures/testitems_callback_1.png and /dev/null differ
diff --git a/games/devtest/mods/testitems/textures/testitems_callback_2.png b/games/devtest/mods/testitems/textures/testitems_callback_2.png
deleted file mode 100644 (file)
index 85732af..0000000
Binary files a/games/devtest/mods/testitems/textures/testitems_callback_2.png and /dev/null differ