diff --git a/init.lua b/init.lua index 8622c6f..dbf6403 100644 --- a/init.lua +++ b/init.lua @@ -182,6 +182,9 @@ if pipeworks.enable_redefines and (minetest.get_modpath("default") or minetest.g dofile(pipeworks.modpath.."/compat-chests.lua") dofile(pipeworks.modpath.."/compat-furnaces.lua") end +if pipeworks.enable_redefines and minetest.get_modpath("mcl_barrels") then + dofile(pipeworks.modpath.."/mcl-barrels.lua") +end if pipeworks.enable_autocrafter then dofile(pipeworks.modpath.."/autocrafter.lua") end diff --git a/mcl-barrels.lua b/mcl-barrels.lua new file mode 100644 index 0000000..c18c44d --- /dev/null +++ b/mcl-barrels.lua @@ -0,0 +1,63 @@ +-- this bit of code modifies the mcl barrels to be compatible with +-- pipeworks. + +-- Pipeworks Specific +local tube_entry = "^pipeworks_tube_connection_wooden.png" + +-- Original Definitions +local old_barrel_closed_def = table.copy(minetest.registered_items["mcl_barrels:barrel_closed"]) +local old_barrel_open_def = table.copy(minetest.registered_items["mcl_barrels:barrel_open"]) + + +-- Override Construction +local override_mcl_barrel_closed = { + tiles = {"mcl_barrels_barrel_top.png^[transformR270", + "mcl_barrels_barrel_bottom.png"..tube_entry, + "mcl_barrels_barrel_side.png"..tube_entry}, + after_place_node = function(pos, placer, itemstack, pointed_thing) + old_barrel_closed_def.after_place_node(pos, placer, itemstack, pointed_thing) + pipeworks.after_place(pos, placer, itemstack, pointed_thing) + end, + tube = { + insert_object = function(pos, node, stack, direction) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:add_item("main", stack) + end, + can_insert = function(pos, node, stack, direction) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if meta:get_int("splitstacks") == 1 then + stack = stack:peek_item(1) + end + return inv:room_for_item("main", stack) + end, + input_inventory = "main", + connect_sides = {left = 1, right = 1, back = 1, front = 1, bottom = 1} + }, + after_dig_node = function(pos) + old_barrel_closed_def.after_dig_node(pos) + pipeworks.after_dig(pos) + end, + groups = table.copy(old_barrel_closed_def.groups), + --on_rotate = pipeworks.on_rotate +} + +override_mcl_barrel_open = table.copy(override_mcl_barrel_closed) + +override_mcl_barrel_open.tiles = { + "mcl_barrels_barrel_top_open.png", + "mcl_barrels_barrel_bottom.png"..tube_entry, + "mcl_barrels_barrel_side.png"..tube_entry +} + + +-- Add the extra groups +for _,v in ipairs({override_mcl_barrel_closed, override_mcl_barrel_open}) do + v.groups.tubedevice = 1 + v.groups.tubedevice_receiver = 1 +end + +-- Override with the new modifications. +minetest.override_item("mcl_barrels:barrel_closed", override_mcl_barrel_closed) +minetest.override_item("mcl_barrels:barrel_open", override_mcl_barrel_open)