forked from MineClone5/MineClone5
Fix get_possible_enchantments to not return incompatible enchantments, even if treasure enchantments are allowed
This commit is contained in:
parent
92686e5412
commit
261faafb7c
|
@ -123,7 +123,7 @@ function mcl_enchanting.can_enchant(itemstack, enchantment, level)
|
||||||
if itemname == "" then
|
if itemname == "" then
|
||||||
return false, "item missing"
|
return false, "item missing"
|
||||||
end
|
end
|
||||||
local supported, primary = mcl_enchanting.item_supports_enchantment(itemstack:get_name(), enchantment)
|
local supported, primary = mcl_enchanting.item_supports_enchantment(itemname, enchantment)
|
||||||
if not supported then
|
if not supported then
|
||||||
return false, "item not supported"
|
return false, "item not supported"
|
||||||
end
|
end
|
||||||
|
@ -132,7 +132,7 @@ function mcl_enchanting.can_enchant(itemstack, enchantment, level)
|
||||||
end
|
end
|
||||||
if level > enchantment_def.max_level then
|
if level > enchantment_def.max_level then
|
||||||
return false, "level too high", enchantment_def.max_level
|
return false, "level too high", enchantment_def.max_level
|
||||||
elseif level < 1 then
|
elseif level < 1 then
|
||||||
return false, "level too small", 1
|
return false, "level too small", 1
|
||||||
end
|
end
|
||||||
local item_enchantments = mcl_enchanting.get_enchantments(itemstack)
|
local item_enchantments = mcl_enchanting.get_enchantments(itemstack)
|
||||||
|
@ -298,8 +298,8 @@ end
|
||||||
function mcl_enchanting.get_possible_enchantments(itemstack, enchantment_level, treasure)
|
function mcl_enchanting.get_possible_enchantments(itemstack, enchantment_level, treasure)
|
||||||
local possible_enchantments, weights, accum_weight = {}, {}, 0
|
local possible_enchantments, weights, accum_weight = {}, {}, 0
|
||||||
for enchantment, enchantment_def in pairs(mcl_enchanting.enchantments) do
|
for enchantment, enchantment_def in pairs(mcl_enchanting.enchantments) do
|
||||||
local _, _, _, primary = mcl_enchanting.can_enchant(itemstack, enchantment, 1)
|
local can_enchant, _, _, primary = mcl_enchanting.can_enchant(itemstack, enchantment, 1)
|
||||||
if primary or treasure then
|
if can_enchant and (primary or treasure) then
|
||||||
table.insert(possible_enchantments, enchantment)
|
table.insert(possible_enchantments, enchantment)
|
||||||
accum_weight = accum_weight + enchantment_def.weight
|
accum_weight = accum_weight + enchantment_def.weight
|
||||||
weights[enchantment] = accum_weight
|
weights[enchantment] = accum_weight
|
||||||
|
|
Loading…
Reference in New Issue