mirror of
https://codeberg.org/usrib/emeraldbank.git
synced 2024-12-22 22:22:25 +01:00
shops get emeralds from bank
This commit is contained in:
parent
b1ba61501f
commit
dac343c284
@ -615,6 +615,7 @@ local function run_inv_checks(pos, player, lots)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
local player_inv = player:get_inventory()
|
||||
local player_emeralds = emeraldbank.get_emeralds(player:get_player_name())
|
||||
|
||||
local ct = {}
|
||||
|
||||
@ -624,6 +625,9 @@ local function run_inv_checks(pos, player, lots)
|
||||
|
||||
-- Perform inventory checks
|
||||
ct.player_has, ct.player_item_table = inv_contains_items(player_inv, "main", settings.input_item, input_qty, settings.accept_worn_input)
|
||||
if settings.input_item == "mcl_core:emerald" then
|
||||
ct.player_has = player_emeralds >= input_qty
|
||||
end
|
||||
ct.vendor_has, ct.vendor_item_table = inv_contains_items(inv, "main", settings.output_item, output_qty, settings.accept_worn_output)
|
||||
ct.player_fits = free_slots(player_inv, "main", settings.output_item, output_qty)
|
||||
ct.vendor_fits = free_slots(inv, "main", settings.input_item, input_qty)
|
||||
@ -656,6 +660,8 @@ local function make_purchase(pos, player, lots)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
local player_inv = player:get_inventory()
|
||||
local name = player:get_player_name()
|
||||
local player_emeralds = emeraldbank.get_emeralds(name)
|
||||
local status, errorcode = get_vendor_status(pos)
|
||||
|
||||
-- Double check settings, vendors which were incorrectly set up before this bug fix won't matter anymore
|
||||
@ -673,9 +679,13 @@ local function make_purchase(pos, player, lots)
|
||||
if ct.player_has then
|
||||
if ct.player_fits then
|
||||
if settings.admin_vendor then
|
||||
minetest.log("action", player:get_player_name().." trades "..settings.input_item_qty.." "..settings.input_item.." for "..settings.output_item_qty.." "..settings.output_item.." using vendor at "..minetest.pos_to_string(pos))
|
||||
minetest.log("action", name.." trades "..settings.input_item_qty.." "..settings.input_item.." for "..settings.output_item_qty.." "..settings.output_item.." using vendor at "..minetest.pos_to_string(pos))
|
||||
|
||||
inv_remove(player_inv, "main", ct.player_item_table, settings.input_item, input_qty)
|
||||
if settings.input_item == "mcl_core:emerald" then
|
||||
emeraldbank.add_emeralds(player, - input_qty)
|
||||
else
|
||||
inv_remove(player_inv, "main", ct.player_item_table, settings.input_item, input_qty)
|
||||
end
|
||||
inv_insert(player_inv, "main", ItemStack(settings.output_item), output_qty, nil)
|
||||
|
||||
if minetest.get_modpath("digilines") then
|
||||
@ -685,10 +695,14 @@ local function make_purchase(pos, player, lots)
|
||||
return true, "Trade successful"
|
||||
elseif ct.vendor_has then
|
||||
if ct.vendor_fits then
|
||||
minetest.log("action", player:get_player_name().." trades "..settings.input_item_qty.." "..settings.input_item.." for "..settings.output_item_qty.." "..settings.output_item.." using vendor at "..minetest.pos_to_string(pos))
|
||||
minetest.log("action", name.." trades "..settings.input_item_qty.." "..settings.input_item.." for "..settings.output_item_qty.." "..settings.output_item.." using vendor at "..minetest.pos_to_string(pos))
|
||||
|
||||
inv_remove(inv, "main", ct.vendor_item_table, settings.output_item, output_qty)
|
||||
inv_remove(player_inv, "main", ct.player_item_table, settings.input_item, input_qty)
|
||||
if settings.input_item == "mcl_core:emerald" then
|
||||
emeraldbank.add_emeralds(player, - input_qty)
|
||||
else
|
||||
inv_remove(player_inv, "main", ct.player_item_table, settings.input_item, input_qty)
|
||||
end
|
||||
inv_insert(player_inv, "main", ItemStack(settings.output_item), output_qty, ct.vendor_item_table)
|
||||
inv_insert(inv, "main", ItemStack(settings.input_item), input_qty, ct.player_item_table, pos, (minetest.get_modpath("pipeworks") and settings.currency_eject))
|
||||
|
||||
@ -1454,7 +1468,8 @@ player_depo.tiles = {
|
||||
"player_depo.png", "player_depo.png",
|
||||
"player_depo.png^mcl_core_emerald.png", "player_depo.png^mcl_core_emerald.png",
|
||||
"player_depo.png^mcl_core_emerald.png", "player_depo_front.png",
|
||||
}
|
||||
}
|
||||
|
||||
player_depo.groups.not_in_creative_inventory = 1
|
||||
|
||||
local admin_vendor = table.copy(vendor_template)
|
||||
|
Loading…
Reference in New Issue
Block a user