adventure_vendors/api.lua

85 lines
3.1 KiB
Lua

adventure_vendors = {}
function adventure_vendors.register_vendor(name, desc, giveStackName, giveStackCount, receiveStackName, receiveStackCount)
minetest.register_node("adventure_vendors:" .. name, {
description = "Adventure Vendor\n" .. desc,
tiles = {"adventure_vendor_vending_machine_face.png"},
tiles = {
"adventure_vendor_vending_machine_side.png", -- y+
"adventure_vendor_vending_machine_side.png", -- y-
"adventure_vendor_vending_machine_side.png", -- x+
"adventure_vendor_vending_machine_side.png", -- x-
"adventure_vendor_vending_machine_side.png", -- z+
"adventure_vendor_vending_machine_face.png", -- z-
},
is_ground_content = false,
groups = {cracky=3},
paramtype2 = "facedir",
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
if itemstack:get_name() == giveStackName and itemstack:get_count() >= giveStackCount then
local inv = player:get_inventory()
local taken = itemstack:take_item(giveStackCount)
local added = inv:add_item("main", ItemStack({name = receiveStackName, count = receiveStackCount}))
minetest.chat_send_player(player:get_player_name(), "Your purchase was successful.")
else
if itemstack:get_count() == 0 then
minetest.chat_send_player(player:get_player_name(), desc)
else
minetest.chat_send_player(player:get_player_name(), "You are not holding the required item and/or you are not holding enough for the purchase.")
end
end
end
})
end
--[[
--------------------------------------------------
--local inv = player:get_inventory()
--local stack = ItemStack("default:stone 99")
--local taken = inv:remove_item("main", stack)
--local stack2 = ItemStack("default:diamond 1")
--local added = inv:add_item("main", stack2)
--if itemstack:item_fits({name = "default:stone"}) then
--itemstack:add_item({name = "default:stone"})
--Trash
------------------------------------------------------
if(1==0) --trash
then
local inv = player:get_inventory()
local notenough = false
for i = 0,#givestacks - 1,1
do
local givestack = ItemStack(givestacks[i])
--local added = inv:set_stack("main", 0, givestack) --test
if(not inv.contains_item("main", getstack))
then
notenough = true
end
end
if(notenough == false)
then
for i = 0,#givestacks - 1,1
do
local givestack = ItemStack(givestacks[i])
local taken = inv:take_item("main", givestack)
end
for i = 0,#receivestacks - 1,1
do
local receivestack = ItemStack(receivestacks[i])
local added = inv:add_item("main", receivestack)
end
minetest.chat_send_player(player:get_player_name(), "Your purchase was successful.")
else
minetest.chat_send_player(player:get_player_name(), "You do not have all the required items for the purchase.")
end
end --trash end
]]