From 70e998e04019e3f9a2f2aace05ca826b1afbca46 Mon Sep 17 00:00:00 2001 From: Carter Kolwey Date: Wed, 22 Mar 2017 19:39:44 -0500 Subject: Add pipeworks support to shop Tubes place items into "Your Stock", and filters (must be owned by the shop owner) take from "Customers Gave" --- depends.txt | 3 ++- shop.lua | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/depends.txt b/depends.txt index 331d858..d3f04d8 100644 --- a/depends.txt +++ b/depends.txt @@ -1 +1,2 @@ -default \ No newline at end of file +default +pipeworks? diff --git a/shop.lua b/shop.lua index 08bfac7..36765a3 100644 --- a/shop.lua +++ b/shop.lua @@ -90,7 +90,7 @@ minetest.register_node("currency:shop", { "shop_side.png", "shop_front.png"}, inventory_image = "shop_front.png", - groups = {choppy=2,oddly_breakable_by_hand=2}, + groups = {choppy=2,oddly_breakable_by_hand=2,tubedevice=1,tubedevice_receiver=1}, sounds = default.node_sound_wood_defaults(), after_place_node = function(pos, placer, itemstack) local owner = placer:get_player_name() @@ -104,7 +104,23 @@ minetest.register_node("currency:shop", { inv:set_size("stock", 3*2) inv:set_size("owner_wants", 3*2) inv:set_size("owner_gives", 3*2) + if minetest.get_modpath("pipeworks") then pipeworks.after_place(pos) end end, + after_dig_node = (pipeworks and pipeworks.after_dig), + tube = { + insert_object = function(pos, node, stack, direction) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:add_item("stock",stack) + end, + can_insert = function(pos,node,stack,direction) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:room_for_item("stock", stack) + end, + input_inventory = "customers_gave", + connect_sides = {left = 1, right = 1, back = 1, front = 1, bottom = 1, top = 1} + }, on_rightclick = function(pos, node, clicker, itemstack) clicker:get_inventory():set_size("customer_gives", 3*2) clicker:get_inventory():set_size("customer_gets", 3*2) -- cgit v1.2.3