85 lines
3.1 KiB
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
|
||
|
]]
|