diff --git a/fluidity/depends.txt b/fluidity/depends.txt deleted file mode 100644 index 068f6d9..0000000 --- a/fluidity/depends.txt +++ /dev/null @@ -1,4 +0,0 @@ -default -bucket -technic? -moreores? diff --git a/fluidity/description.txt b/fluidity/description.txt deleted file mode 100644 index fd350bb..0000000 --- a/fluidity/description.txt +++ /dev/null @@ -1 +0,0 @@ -Adds Molten versions of commonly occuring metals. Supports default, technic and moreores. diff --git a/metal_melter/caster.lua b/metal_melter/caster.lua index c75b743..768d20f 100644 --- a/metal_melter/caster.lua +++ b/metal_melter/caster.lua @@ -495,16 +495,50 @@ local function on_receive_fields(pos, formname, fields, sender) end end +-- Pipeworks integration +local pipeworks = {} +local tube_entry = "" +if minetest.get_modpath("pipeworks") ~= nil then + tube_entry = "^pipeworks_tube_connection_metallic.png" + + local function insert_object(pos, node, stack, direction, owner) + local stack_name = stack:get_name() + local inv = minetest.get_meta(pos):get_inventory() + + minetest.get_node_timer(pos):start(1.0) + + if stack_name == "bucket:bucket_empty" or fluidity.florbs.get_is_empty_florb(stack) then + return inv:add_item("bucket_out", stack) + elseif stack_name == "bucket:bucket_water" then + return inv:add_item("coolant", stack) + elseif stack_name:find(":bucket_") ~= nil or fluidity.florbs.get_is_florb(stack) then + return inv:add_item("bucket_in", stack) + end + + return ItemStack(nil) + end + + pipeworks = { + connect_sides = {left = 1, right = 1, back = 1, bottom = 1, top = 1}, + insert_object = insert_object, + input_inventory = "output", + } +end + -- Register the caster minetest.register_node("metal_melter:metal_caster", { description = "Metal Caster", tiles = { - "melter_side.png", "melter_side.png", - "melter_side.png", "melter_side.png", - "melter_side.png", "caster_front.png" + "melter_side.png"..tube_entry, "melter_side.png"..tube_entry, + "melter_side.png"..tube_entry, "melter_side.png"..tube_entry, + "melter_side.png"..tube_entry, "caster_front.png" }, paramtype2 = "facedir", - groups = {cracky=2}, + groups = { + cracky=2, + tubedevice = 1, + tubedevice_receiver = 1, + }, legacy_facedir_simple = true, is_ground_content = false, sounds = default.node_sound_stone_defaults(), @@ -537,6 +571,8 @@ minetest.register_node("metal_melter:metal_caster", { allow_metadata_inventory_put = allow_metadata_inventory_put, allow_metadata_inventory_move = allow_metadata_inventory_move, allow_metadata_inventory_take = allow_metadata_inventory_take, + + tube = pipeworks, }) for i,v in pairs(metal_caster.casts) do diff --git a/metal_melter/components.lua b/metal_melter/components.lua index 5eb9209..2f2c37b 100644 --- a/metal_melter/components.lua +++ b/metal_melter/components.lua @@ -155,3 +155,5 @@ minetest.register_craft({ recipe = "metal_melter:heat_gravel", cooktime = 3, }) + +-- Pipeworks diff --git a/metal_melter/depends.txt b/metal_melter/depends.txt deleted file mode 100644 index 3ded10b..0000000 --- a/metal_melter/depends.txt +++ /dev/null @@ -1,4 +0,0 @@ -default -bucket -fluidity -unified_inventory? diff --git a/metal_melter/description.txt b/metal_melter/description.txt deleted file mode 100644 index 579c253..0000000 --- a/metal_melter/description.txt +++ /dev/null @@ -1 +0,0 @@ -Melt and cast metals. diff --git a/metal_melter/melter.lua b/metal_melter/melter.lua index 30761cd..5426299 100644 --- a/metal_melter/melter.lua +++ b/metal_melter/melter.lua @@ -4,7 +4,7 @@ metal_melter.max_fuel = 8000 -- Spec divided by this number is the lava usage. -metal_melter.lava_usage = 4 +metal_melter.lava_usage = 9 -- Max metal that can be held by the melter. metal_melter.max_metal = 16000 @@ -402,15 +402,49 @@ local function on_receive_fields(pos, formname, fields, sender) end end +-- Pipeworks integration +local pipeworks = {} +local tube_entry = "" +if minetest.get_modpath("pipeworks") ~= nil then + tube_entry = "^pipeworks_tube_connection_metallic.png" + + local function insert_object(pos, node, stack, direction, owner) + local stack_name = stack:get_name() + local inv = minetest.get_meta(pos):get_inventory() + + minetest.get_node_timer(pos):start(1.0) + + if stack_name == "bucket:bucket_empty" or fluidity.florbs.get_is_empty_florb(stack) then + return inv:add_item("bucket_out", stack) + elseif stack_name == "bucket:bucket_lava" then + return inv:add_item("heat", stack) + elseif stack_name:find(":bucket_") ~= nil or fluidity.florbs.get_is_florb(stack) then + return inv:add_item("bucket_in", stack) + else + return inv:add_item("input", stack) + end + end + + pipeworks = { + connect_sides = {left = 1, right = 1, back = 1, bottom = 1, top = 1}, + insert_object = insert_object, + input_inventory = "bucket_out", + } +end + minetest.register_node("metal_melter:metal_melter", { description = "Metal Melter", tiles = { - "melter_side.png", "melter_side.png", - "melter_side.png", "melter_side.png", - "melter_side.png", "melter_front.png" + "melter_side.png"..tube_entry, "melter_side.png"..tube_entry, + "melter_side.png"..tube_entry, "melter_side.png"..tube_entry, + "melter_side.png"..tube_entry, "melter_front.png" }, paramtype2 = "facedir", - groups = {cracky=2}, + groups = { + cracky = 2, + tubedevice = 1, + tubedevice_receiver = 1, + }, legacy_facedir_simple = true, is_ground_content = false, sounds = default.node_sound_stone_defaults(), @@ -439,16 +473,23 @@ minetest.register_node("metal_melter:metal_melter", { allow_metadata_inventory_put = allow_metadata_inventory_put, allow_metadata_inventory_move = allow_metadata_inventory_move, allow_metadata_inventory_take = allow_metadata_inventory_take, + + tube = pipeworks, }) minetest.register_node("metal_melter:metal_melter_filled", { tiles = { - "melter_side.png", "melter_side.png", - "melter_side.png", "melter_side.png", - "melter_side.png", "melter_front.png^melter_front_lava.png" + "melter_side.png"..tube_entry, "melter_side.png"..tube_entry, + "melter_side.png"..tube_entry, "melter_side.png"..tube_entry, + "melter_side.png"..tube_entry, "melter_front.png^melter_front_lava.png" }, paramtype2 = "facedir", - groups = {cracky=2,not_in_creative_inventory=1}, + groups = { + cracky = 2, + tubedevice = 1, + tubedevice_receiver = 1, + not_in_creative_inventory = 1 + }, legacy_facedir_simple = true, is_ground_content = false, sounds = default.node_sound_stone_defaults(), @@ -470,6 +511,8 @@ minetest.register_node("metal_melter:metal_melter_filled", { allow_metadata_inventory_put = allow_metadata_inventory_put, allow_metadata_inventory_move = allow_metadata_inventory_move, allow_metadata_inventory_take = allow_metadata_inventory_take, + + tube = pipeworks, }) -- Set a spec diff --git a/metal_melter/mod.conf b/metal_melter/mod.conf index de17f58..03537b8 100644 --- a/metal_melter/mod.conf +++ b/metal_melter/mod.conf @@ -1,4 +1,4 @@ name = metal_melter description = Melt and cast metals. depends = default,fluidity,bucket -optional_depends = unified_inventory +optional_depends = pipeworks