Merge branch 'api'

This commit is contained in:
Valentin Anger 2017-08-20 00:11:42 +02:00
commit 834b3986c7
4 changed files with 64 additions and 25 deletions

View File

@ -2,6 +2,9 @@ local NAME = minetest.get_current_modname()
local PATH = minetest.get_modpath(NAME) .."/" local PATH = minetest.get_modpath(NAME) .."/"
local MODFILES = minetest.get_dir_list(PATH,false) local MODFILES = minetest.get_dir_list(PATH,false)
local tab = "" local tab = ""
if sparktech == nil then
sparktech = {}
end
minetest.debug("|==============================================|") minetest.debug("|==============================================|")
for i=1,table.getn(MODFILES),1 for i=1,table.getn(MODFILES),1

37
sparkcore/api.lua Normal file
View File

@ -0,0 +1,37 @@
function sparktech.register_wrench(name, dictionary)
local dig_stlye_alt = minetest.setting_getbool("spark_dig_stlye_alt")
local on_use = nil
if dig_stlye_alt then
on_use = function() return nil end
end
on_place = function(itemstack, placer, pointed_thing)
if pointed_thing["type"] == "node" then
local node = minetest.get_node(pointed_thing["under"])
if minetest.get_item_group(node["name"], "sparktech_techy") > 0 then
local nodemeta = minetest.get_meta(pointed_thing["under"])
local item = ItemStack(node["name"])
if minetest.get_item_group(item:get_name(), "sparktech_energy_storeonbreak") > 0 then
item:set_metadata(nodemeta:get_int("energy"))
end
local check = minetest.dig_node(pointed_thing["under"])
if check then
local inv = placer:get_inventory()
if inv:room_for_item("main", item) then
inv:add_item("main", item)
else
minetest.item_drop(item, placer, pointed_thing["under"])
end
end
end
end
return itemstack
end
if dictionary["on_use"] == nil then
dictionary["on_use"] = on_use
end
if dictionary["on_place"] == nil then
dictionary["on_place"] = on_place
end
minetest.register_tool(name, dictionary)
end

View File

@ -6,34 +6,11 @@ end
local NAME = minetest.get_current_modname() local NAME = minetest.get_current_modname()
minetest.register_tool(NAME .. ":wrench", { sparktech.register_wrench(NAME .. ":wrench", {
description = "Wrench", description = "Wrench",
inventory_image = "wrench.png", inventory_image = "wrench.png",
stack_max = 1, stack_max = 1,
range = 6.0, range = 6.0
on_use = on_use,
on_place = function(itemstack, placer, pointed_thing)
if pointed_thing["type"] == "node" then
local node = minetest.get_node(pointed_thing["under"])
if minetest.get_item_group(node["name"], "sparktech_techy") > 0 then
local nodemeta = minetest.get_meta(pointed_thing["under"])
local item = ItemStack(node["name"])
if minetest.get_item_group(item:get_name(), "sparktech_energy_storeonbreak") > 0 then
item:set_metadata(nodemeta:get_int("energy"))
end
local check = minetest.dig_node(pointed_thing["under"])
if check then
local inv = placer:get_inventory()
if inv:room_for_item("main", item) then
inv:add_item("main", item)
else
minetest.item_drop(item, placer, pointed_thing["under"])
end
end
end
end
return itemstack
end
}) })
minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack, pointed_thing) minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack, pointed_thing)

22
sparkdebug/debug.lua Normal file
View File

@ -0,0 +1,22 @@
local function visualize(table, prep)
local ret = ""
if prep == nil then
prep = "-"
end
for i, k in pairs(table) do
if type(k) == "table" then
ret = ret .. prep .. i .. "\n" .. visualize(k, prep .. prep)
else
ret = ret .. prep .. i .. " " .. tostring(k) .. "\n"
end
end
return ret
end
function sparktech.debug(thing)
if type(thing) == "table" then
minetest.debug(visualize(thing))
else
minetest.debug(thing)
end
end