Fix crash with witchcraft support

This commit is contained in:
sys4-fr 2017-03-20 22:28:22 +01:00
parent ece1600e19
commit 125666db3c
1 changed files with 43 additions and 1 deletions

View File

@ -62,7 +62,7 @@ if minetest.get_modpath("witchcraft") then
})
-- Rewrite potion table which is buggy
witchcraft.pot_new =
local pot_new =
{
{"blue", "blue2", "default:leaves", "brown", "default:dirt", "red", "purple"}, -- replace waterlily by leaves (flowers_plus incompatibility i think...)
{"blue2", "green", "default:papyrus", "", "", "gred", "magenta"},
@ -88,6 +88,48 @@ if minetest.get_modpath("witchcraft") then
{"grey", "aqua", "default:diamond", "", "", "", ""},
}
-- Override pots on_rightclick
for _, row in ipairs(pot_new) do
local color = row[1]
local newcolor = row[2]
local newcolor2 = row[4]
local ingredient = row[3]
local ingredient2 = row[5]
local combine = row[6]
local cresult = row[7]
minetest.override_item(
"witchcraft:pot_"..color,
{
on_rightclick = function(pos, node, clicker, item, _)
local wield_item = clicker:get_wielded_item():get_name()
if wield_item == "vessels:glass_bottle" and clicker:get_wielded_item():get_count() == 3 then
item:replace("witchcraft:potion_"..color)
minetest.env:add_item({x=pos.x, y=pos.y+1.5, z=pos.z}, "witchcraft:potion_"..color)
minetest.env:add_item({x=pos.x, y=pos.y+1.5, z=pos.z}, "witchcraft:potion_"..color)
minetest.set_node(pos, {name="witchcraft:pot", param2=node.param2})
elseif wield_item == "vessels:glass_bottle" and clicker:get_wielded_item():get_count() ~= 3 then
item:replace("witchcraft:potion_"..color)
minetest.set_node(pos, {name="witchcraft:pot", param2=node.param2})
else
if wield_item == ingredient then
minetest.set_node(pos, {name="witchcraft:pot_"..newcolor, param2=node.param2})
item:take_item()
elseif wield_item == ingredient2 then
minetest.set_node(pos, {name="witchcraft:pot_"..newcolor2, param2=node.param2})
item:take_item()
elseif wield_item == "bucket:bucket_water" then
minetest.set_node(pos, {name="witchcraft:pot_blue", param2=node.param2})
item:replace("bucket:bucket_empty")
elseif wield_item == "witchcraft:potion_"..combine then
minetest.set_node(pos, {name="witchcraft:pot_"..cresult, param2=node.param2})
item:replace("vessels:glass_bottle")
end
end
end
})
end
-- Override potion green effect if farming_redo is loaded (bad call in original mod)
if farming.mod and farming.mod == "redo" then
minetest.override_item(