diff --git a/elepower_dynamics/crafting.lua b/elepower_dynamics/crafting.lua index f40d1ec..d0999be 100644 --- a/elepower_dynamics/crafting.lua +++ b/elepower_dynamics/crafting.lua @@ -134,6 +134,16 @@ minetest.register_craft({ } }) +-- Portable Tank +minetest.register_craft({ + output = "elepower_dynamics:portable_tank", + recipe = { + {"group:glass", "elepower_dynamics:fluid_duct", "group:glass"}, + {"group:glass", "group:glass", "group:glass"}, + {"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"}, + } +}) + ----------- -- Items -- ----------- diff --git a/elepower_dynamics/init.lua b/elepower_dynamics/init.lua index a4f1dd2..2f55d4c 100644 --- a/elepower_dynamics/init.lua +++ b/elepower_dynamics/init.lua @@ -11,6 +11,7 @@ dofile(modpath.."/craftitems.lua") dofile(modpath.."/plastic.lua") dofile(modpath.."/tools.lua") dofile(modpath.."/nodes.lua") +dofile(modpath.."/tanks.lua") dofile(modpath.."/dusts.lua") dofile(modpath.."/gears.lua") dofile(modpath.."/worldgen.lua") diff --git a/elepower_dynamics/mod.conf b/elepower_dynamics/mod.conf index 27f4dab..ff91a33 100644 --- a/elepower_dynamics/mod.conf +++ b/elepower_dynamics/mod.conf @@ -1,4 +1,4 @@ name = elepower_dynamics description = Elepower Dynamics. Conduits and materials! -depends = elepower_papi,elepower_fapi,default +depends = elepower_papi,elepower_fapi,default,fluid_tanks optional_depends = moreores,pipeworks,homedecor diff --git a/elepower_dynamics/tank.lua b/elepower_dynamics/tank.lua new file mode 100644 index 0000000..9710d1c --- /dev/null +++ b/elepower_dynamics/tank.lua @@ -0,0 +1,10 @@ + +fluid_tanks.register_tank("elepower_dynamics:portable_tank", { + description = "Portable Tank", + capacity = 8000, + accepts = true, + tiles = { + "elepower_tank_base.png", "elepower_tank_base.png", "elepower_tank_side.png", + "elepower_tank_side.png", "elepower_tank_side.png", "elepower_tank_side.png" + } +}) diff --git a/elepower_dynamics/tanks.lua b/elepower_dynamics/tanks.lua new file mode 100644 index 0000000..fa9fdd6 --- /dev/null +++ b/elepower_dynamics/tanks.lua @@ -0,0 +1,9 @@ + +fluid_tanks.register_tank("elepower_dynamics:portable_tank", { + description = "Portable Tank", + capacity = 8000, + accepts = true, + tiles = { + "elepower_tank_base.png", "elepower_tank_side.png", "elepower_tank_base.png^elepower_power_port.png", + } +}) diff --git a/elepower_dynamics/textures/elepower_tank_base.png b/elepower_dynamics/textures/elepower_tank_base.png new file mode 100644 index 0000000..6589ad3 Binary files /dev/null and b/elepower_dynamics/textures/elepower_tank_base.png differ diff --git a/elepower_dynamics/textures/elepower_tank_side.png b/elepower_dynamics/textures/elepower_tank_side.png new file mode 100644 index 0000000..3fdf2d8 Binary files /dev/null and b/elepower_dynamics/textures/elepower_tank_side.png differ diff --git a/elepower_farming/mod.conf b/elepower_farming/mod.conf index 3533208..65cc031 100644 --- a/elepower_farming/mod.conf +++ b/elepower_farming/mod.conf @@ -1,3 +1,3 @@ name = elepower_farming description = Electric Farming Automation! -depends = elepower_papi, elepower_tools, elepower_fapi, bucket, farming +depends = elepower_papi, elepower_tools, elepower_fapi, bucket, farming, fluid_tanks diff --git a/elepower_farming/nodes/fluids.lua b/elepower_farming/nodes/fluids.lua index 8465d13..893e73f 100644 --- a/elepower_farming/nodes/fluids.lua +++ b/elepower_farming/nodes/fluids.lua @@ -252,4 +252,13 @@ if minetest.get_modpath("bucket") ~= nil then bucket.register_liquid("elepower_farming:sludge_source", "elepower_farming:sludge_flowing", "elepower_farming:bucket_sludge", "#121212", "Sludge Bucket") + + fluid_tanks.register_tank(":elepower_dynamics:portable_tank", { + description = "Portable Tank", + capacity = 8000, + accepts = true, + tiles = { + "elepower_tank_base.png", "elepower_tank_side.png", "elepower_tank_base.png^elepower_power_port.png", + } + }) end diff --git a/elepower_farming/nodes/planter.lua b/elepower_farming/nodes/planter.lua index 447afd7..aa6806b 100644 --- a/elepower_farming/nodes/planter.lua +++ b/elepower_farming/nodes/planter.lua @@ -172,8 +172,6 @@ local function plant(pos, range, stack, inv) soil = "farming:soil" end - print(dump(base_node), soil,wet_soil) - if base_node.name ~= soil and base_node.name ~= wet_soil then minetest.set_node(base_pos, {name = soil}) end diff --git a/elepower_farming/nodes/tree_extractor.lua b/elepower_farming/nodes/tree_extractor.lua index 7ff5707..a26f2db 100644 --- a/elepower_farming/nodes/tree_extractor.lua +++ b/elepower_farming/nodes/tree_extractor.lua @@ -27,44 +27,43 @@ minetest.register_node("elepower_farming:tree_extractor", { minetest.register_abm({ nodenames = {"elepower_farming:tree_extractor"}, - label = "elefluidSapAccumulator", - interval = 8, - chance = 1/6, - action = function(pos, node, active_object_count, active_object_count_wider) - local meta = minetest.get_meta(pos) - local fluid_c = meta:get_int("tree_fluid_storage") - if fluid_c == CAPACITY then return end + label = "elefluidSapAccumulator", + interval = 8, + chance = 1/6, + action = function(pos, node, active_object_count, active_object_count_wider) + local meta = minetest.get_meta(pos) + local buffer = fluid_lib.get_buffer_data(pos, "tree") + if not buffer or buffer.amount == buffer.capacity then return end - local fpos = ele.helpers.face_front(pos, node.param2) - local fluid = 0 - local ftype = meta:get_string("tree_fluid") - local fname = "Tree Sap" - local fnode = minetest.get_node_or_nil(fpos) + local fpos = ele.helpers.face_front(pos, node.param2) + local amount = 0 + local ftype = buffer.fluid + local fnode = minetest.get_node_or_nil(fpos) if fnode and ele.helpers.get_item_group(fnode.name, "tree") then local fdata = fluid_table[fnode.name] if fdata and (ftype == "" or ftype == fdata.fluid) then - fluid = fdata.fpc + amount = fdata.fpc ftype = fdata.fluid - fname = minetest.registered_nodes[ftype].description:gsub(" Source", "") end end - if fluid == 0 then + if amount == 0 then meta:set_string("infotext", "Place me in front of a tree!") return end local give = 0 - if fluid_c + fluid > CAPACITY then - give = CAPACITY - fluid_c + if buffer.amount + amount > buffer.capacity then + give = buffer.capacity - buffer.amount else - give = fluid + give = amount end - fluid_c = fluid_c + give + buffer.amount = buffer.amount + give + buffer.fluid = ftype - meta:set_int("tree_fluid_storage", fluid_c) - meta:set_string("tree_fluid", ftype) - meta:set_string("infotext", ("%s: %d/%d %s"):format(fname, fluid_c, CAPACITY, fluid_lib.unit)) + meta:set_int("tree_fluid_storage", buffer.amount) + meta:set_string("tree_fluid", buffer.fluid) + meta:set_string("infotext", fluid_lib.buffer_to_string(buffer)) end }) diff --git a/elepower_machines/special/accumulator.lua b/elepower_machines/special/accumulator.lua index 4a31986..95cd224 100644 --- a/elepower_machines/special/accumulator.lua +++ b/elepower_machines/special/accumulator.lua @@ -21,13 +21,13 @@ minetest.register_node("elepower_machines:accumulator", { minetest.register_abm({ nodenames = {"elepower_machines:accumulator"}, - label = "elefluidAccumulator", - interval = 2, - chance = 1/5, - action = function(pos, node, active_object_count, active_object_count_wider) - local meta = minetest.get_meta(pos) - local water_c = meta:get_int("water_fluid_storage") - if water_c == CAPACITY then return end + label = "elefluidAccumulator", + interval = 2, + chance = 1/5, + action = function(pos, node, active_object_count, active_object_count_wider) + local meta = minetest.get_meta(pos) + local buffer = fluid_lib.get_buffer_data(pos, "water") + if not buffer or buffer.amount == buffer.capacity then return end local positions = { {x=pos.x+1,y=pos.y,z=pos.z}, @@ -36,29 +36,29 @@ minetest.register_abm({ {x=pos.x, y=pos.y,z=pos.z-1}, } - local fluid = 0 + local amount = 0 for _,fpos in pairs(positions) do local node = minetest.get_node(fpos) if node.name == "default:water_source" then - fluid = fluid + 1000 + amount = amount + 1000 end end - if fluid == 0 then + if amount == 0 then meta:set_string("infotext", "Submerge me in water!") return end local give = 0 - if water_c + fluid > CAPACITY then - give = CAPACITY - water_c + if buffer.amount + amount > buffer.capacity then + give = buffer.capacity - buffer.amount else - give = fluid + give = amount end - water_c = water_c + give + buffer.amount = buffer.amount + give - meta:set_int("water_fluid_storage", water_c) - meta:set_string("infotext", ("Water: %d/%d %s"):format(water_c, CAPACITY, fluid_lib.unit)) + meta:set_int("water_fluid_storage", buffer.amount) + meta:set_string("infotext", fluid_lib.buffer_to_string(buffer)) end })