forked from VoxeLibre/VoxeLibre
Merge pull request 'more piglin bartering items (and drop stack instead of single items)' (#4181) from nixnoxus/MineClone2:piglin-bartering into master
Reviewed-on: MineClone2/MineClone2#4181 Reviewed-by: the-real-herowl <the-real-herowl@noreply.git.minetest.land>
This commit is contained in:
commit
b5b8d4f336
|
@ -16,6 +16,13 @@ local trading_items = {
|
||||||
{ itemstring = "mcl_throwing:ender_pearl", amount_min = 2, amount_max = 6 },
|
{ itemstring = "mcl_throwing:ender_pearl", amount_min = 2, amount_max = 6 },
|
||||||
{ itemstring = "mcl_potions:fire_resistance", amount_min = 1, amount_max = 1 },
|
{ itemstring = "mcl_potions:fire_resistance", amount_min = 1, amount_max = 1 },
|
||||||
{ itemstring = "mcl_potions:fire_resistance_splash", amount_min = 1, amount_max = 1 },
|
{ itemstring = "mcl_potions:fire_resistance_splash", amount_min = 1, amount_max = 1 },
|
||||||
|
{ itemstring = "mcl_enchanting:book_enchanted", amount_min = 1, amount_max = 1 },
|
||||||
|
{ itemstring = "mcl_armor:boots_iron_enchanted", amount_min = 1, amount_max = 1 },
|
||||||
|
{ itemstring = "mcl_blackstone:blackstone", amount_min = 8, amount_max = 16 },
|
||||||
|
{ itemstring = "mcl_bows:arrow", amount_min = 6, amount_max = 12 },
|
||||||
|
{ itemstring = "mcl_core:crying_obsidian", amount_min = 1, amount_max = 1 },
|
||||||
|
{ itemstring = "mcl_fire:fire_charge", amount_min = 1, amount_max = 1 },
|
||||||
|
--{ itemstring = "FIXME:spectral_arrow", amount_min = 6, amount_max = 12 },
|
||||||
}
|
}
|
||||||
|
|
||||||
local S = minetest.get_translator("mobs_mc")
|
local S = minetest.get_translator("mobs_mc")
|
||||||
|
@ -142,14 +149,18 @@ local piglin = {
|
||||||
local c_pos = self.object:get_pos()
|
local c_pos = self.object:get_pos()
|
||||||
if c_pos then
|
if c_pos then
|
||||||
self.what_traded = trading_items[math.random(#trading_items)]
|
self.what_traded = trading_items[math.random(#trading_items)]
|
||||||
for x = 1, math.random(self.what_traded.amount_min, self.what_traded.amount_max) do
|
local stack = ItemStack(self.what_traded.itemstring)
|
||||||
local p = c_pos
|
stack:set_count(math.random(self.what_traded.amount_min, self.what_traded.amount_max))
|
||||||
local nn=minetest.find_nodes_in_area_under_air(vector.offset(c_pos,-1,-1,-1),vector.offset(c_pos,1,1,1),{"group:solid"})
|
if mcl_enchanting.is_enchanted(self.what_traded.itemstring) then
|
||||||
if nn and #nn > 0 then
|
local enchantment = "soul_speed"
|
||||||
p = vector.offset(nn[math.random(#nn)],0,1,0)
|
mcl_enchanting.enchant(stack, enchantment, mcl_enchanting.random(nil, 1, mcl_enchanting.enchantments[enchantment].max_level))
|
||||||
end
|
|
||||||
minetest.add_item(p, self.what_traded.itemstring)
|
|
||||||
end
|
end
|
||||||
|
local p = c_pos
|
||||||
|
local nn=minetest.find_nodes_in_area_under_air(vector.offset(c_pos,-1,-1,-1),vector.offset(c_pos,1,1,1),{"group:solid"})
|
||||||
|
if nn and #nn > 0 then
|
||||||
|
p = vector.offset(nn[math.random(#nn)],0,1,0)
|
||||||
|
end
|
||||||
|
minetest.add_item(p, stack)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue