forked from Mineclonia/Mineclonia
Fix #1152
This commit is contained in:
parent
37ef792c9d
commit
95b0a495bc
|
@ -412,6 +412,7 @@ local init_trades = function(self, inv)
|
||||||
offered_stack = mcl_enchanting.get_uniform_randomly_enchanted_book({"soul_speed"})
|
offered_stack = mcl_enchanting.get_uniform_randomly_enchanted_book({"soul_speed"})
|
||||||
else
|
else
|
||||||
mcl_enchanting.enchant_randomly(offered_stack, math.random(5, 19), false, false, true)
|
mcl_enchanting.enchant_randomly(offered_stack, math.random(5, 19), false, false, true)
|
||||||
|
mcl_enchanting.unload_enchantments(offered_stack)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -457,7 +458,9 @@ local set_trade = function(trader, player, inv, concrete_tradenum)
|
||||||
player_tradenum[name] = concrete_tradenum
|
player_tradenum[name] = concrete_tradenum
|
||||||
local trade = trades[concrete_tradenum]
|
local trade = trades[concrete_tradenum]
|
||||||
inv:set_stack("wanted", 1, ItemStack(trade.wanted[1]))
|
inv:set_stack("wanted", 1, ItemStack(trade.wanted[1]))
|
||||||
inv:set_stack("offered", 1, ItemStack(trade.offered))
|
local offered = ItemStack(trade.offered)
|
||||||
|
mcl_enchanting.load_enchantments(offered)
|
||||||
|
inv:set_stack("offered", 1, offered)
|
||||||
if trade.wanted[2] then
|
if trade.wanted[2] then
|
||||||
local wanted2 = ItemStack(trade.wanted[2])
|
local wanted2 = ItemStack(trade.wanted[2])
|
||||||
inv:set_stack("wanted", 2, wanted2)
|
inv:set_stack("wanted", 2, wanted2)
|
||||||
|
|
|
@ -9,14 +9,21 @@ function mcl_enchanting.get_enchantments(itemstack)
|
||||||
return minetest.deserialize(itemstack:get_meta():get_string("mcl_enchanting:enchantments")) or {}
|
return minetest.deserialize(itemstack:get_meta():get_string("mcl_enchanting:enchantments")) or {}
|
||||||
end
|
end
|
||||||
|
|
||||||
function mcl_enchanting.set_enchantments(itemstack, enchantments)
|
function mcl_enchanting.unload_enchantments(itemstack)
|
||||||
itemstack:get_meta():set_string("mcl_enchanting:enchantments", minetest.serialize(enchantments))
|
|
||||||
local itemdef = itemstack:get_definition()
|
local itemdef = itemstack:get_definition()
|
||||||
if not mcl_enchanting.is_book(itemstack:get_name()) then
|
|
||||||
if itemdef.tool_capabilities then
|
if itemdef.tool_capabilities then
|
||||||
itemstack:get_meta():set_tool_capabilities(itemdef.tool_capabilities)
|
itemstack:get_meta():set_tool_capabilities(itemdef.tool_capabilities)
|
||||||
end
|
end
|
||||||
for enchantment, level in pairs(enchantments) do
|
local meta = itemstack:get_meta()
|
||||||
|
if meta:get_string("name") == "" then
|
||||||
|
meta:set_string("description", "")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function mcl_enchanting.load_enchantments(itemstack, enchantments)
|
||||||
|
if not mcl_enchanting.is_book(itemstack:get_name()) then
|
||||||
|
mcl_enchanting.unload_enchantments(itemstack)
|
||||||
|
for enchantment, level in pairs(enchantments or mcl_enchanting.get_enchantments(itemstack)) do
|
||||||
local enchantment_def = mcl_enchanting.enchantments[enchantment]
|
local enchantment_def = mcl_enchanting.enchantments[enchantment]
|
||||||
if enchantment_def.on_enchant then
|
if enchantment_def.on_enchant then
|
||||||
enchantment_def.on_enchant(itemstack, level)
|
enchantment_def.on_enchant(itemstack, level)
|
||||||
|
@ -26,6 +33,11 @@ function mcl_enchanting.set_enchantments(itemstack, enchantments)
|
||||||
tt.reload_itemstack_description(itemstack)
|
tt.reload_itemstack_description(itemstack)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function mcl_enchanting.set_enchantments(itemstack, enchantments)
|
||||||
|
itemstack:get_meta():set_string("mcl_enchanting:enchantments", minetest.serialize(enchantments))
|
||||||
|
mcl_enchanting.load_enchantments(itemstack)
|
||||||
|
end
|
||||||
|
|
||||||
function mcl_enchanting.get_enchantment(itemstack, enchantment)
|
function mcl_enchanting.get_enchantment(itemstack, enchantment)
|
||||||
return mcl_enchanting.get_enchantments(itemstack)[enchantment] or 0
|
return mcl_enchanting.get_enchantments(itemstack)[enchantment] or 0
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue