Add tubelib compatibility

This commit is contained in:
SmallJoker 2018-08-15 18:48:06 +02:00
parent 75900f5661
commit 0861f4d8c8
5 changed files with 45 additions and 18 deletions

View File

@ -1,4 +1,6 @@
default
currency?
bitchange?
wrench?
wrench?
pipeworks?
tubelib?

View File

@ -23,6 +23,7 @@ else
dofile(modpath .. "/shop_functions.lua")
dofile(modpath .. "/shop.lua")
end
dofile(modpath .. "/pipes.lua")
if has_currency then
local new_groups = table.copy(minetest.registered_nodes["currency:shop"].groups)

View File

@ -1,3 +1,4 @@
name = exchange_shop
description = An improved currency-compatible exchange shop
depends = default
optional_depends = currency, bitchange, wrench
optional_depends = currency, bitchange, wrench, pipeworks, tubelib

38
pipes.lua Normal file
View File

@ -0,0 +1,38 @@
if minetest.get_modpath("pipeworks") then
minetest.override_item(exchange_shop.shopname, {
groups = {choppy=2, oddly_breakable_by_hand=2,
tubedevice=1, tubedevice_receiver=1},
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 = "custm",
connect_sides = {left=1, right=1, back=1, top=1, bottom=1}
}
})
end
if minetest.get_modpath("tubelib") then
tubelib.register_node(exchange_shop.shopname, {}, {
on_pull_item = function(pos, side)
local meta = minetest.get_meta(pos)
return tubelib.get_item(meta, "custm")
end,
on_push_item = function(pos, side, item)
local meta = minetest.get_meta(pos)
return tubelib.put_item(meta, "stock", item)
end,
on_unpull_item = function(pos, side, item)
local meta = minetest.get_meta(pos)
return tubelib.put_item(meta, "stock", item)
end,
})
end

View File

@ -165,22 +165,7 @@ minetest.register_node(exchange_shop.shopname, {
"shop_side.png", "shop_front.png"
},
paramtype2 = "facedir",
groups = {choppy=2, oddly_breakable_by_hand=2,
tubedevice=1, tubedevice_receiver=1},
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 = "custm",
connect_sides = {left=1, right=1, back=1, top=1, bottom=1}
},
groups = {choppy=2, oddly_breakable_by_hand=2},
sounds = default.node_sound_wood_defaults(),
after_place_node = function(pos, placer)
local meta = minetest.get_meta(pos)