From a969a5e7219c48404473e06d10ee5ac8e4e235c5 Mon Sep 17 00:00:00 2001 From: Evert Prants Date: Thu, 21 Jun 2018 13:14:12 +0300 Subject: [PATCH] Portable Tank --- elepower_dynamics/crafting.lua | 10 ++++ elepower_dynamics/init.lua | 1 + elepower_dynamics/mod.conf | 2 +- elepower_dynamics/tank.lua | 10 ++++ elepower_dynamics/tanks.lua | 9 ++++ .../textures/elepower_tank_base.png | Bin 0 -> 446 bytes .../textures/elepower_tank_side.png | Bin 0 -> 520 bytes elepower_farming/mod.conf | 2 +- elepower_farming/nodes/fluids.lua | 9 ++++ elepower_farming/nodes/planter.lua | 2 - elepower_farming/nodes/tree_extractor.lua | 43 +++++++++--------- elepower_machines/special/accumulator.lua | 32 ++++++------- 12 files changed, 78 insertions(+), 42 deletions(-) create mode 100644 elepower_dynamics/tank.lua create mode 100644 elepower_dynamics/tanks.lua create mode 100644 elepower_dynamics/textures/elepower_tank_base.png create mode 100644 elepower_dynamics/textures/elepower_tank_side.png 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 0000000000000000000000000000000000000000..6589ad383d6b3137928e68816dc79ffcea769f86 GIT binary patch literal 446 zcmV;v0YUzWP)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00AaRL_t(I%Vm?Xa>OtQL?2k0 zD^liz^5^-SR4FsL$=DVtU@h*V!j{Ae78dN|oiHE(<8hqllnS=;^*$^$A8KuDLj^EI>*q)ZqdKosSO1@lfoe7k o_`Ji-^HPzce zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00D4GL_t(I%UzSrZWKWbgg^Im zGz9hr;*!4`5>K(OKzPt35?qsq;U_1OOOVj8yImY?Gfw(4a(7L+s@iRLTV#L$kjh-AHFQwbU2=T@8egmHyz$& zedOdu5Hxevv+G4aE@w+Sr%_L#;PiUY_siL&V&`^?-pz14Va;4kvo({nRWmW*X%`k+ zSeQaZ0*3s%8(=}$n`3hipzpN;hT=yHk_ht<4JhfSs@BW{X>oXdv#5H!D0SwLDpQq% z4bH9>efu<9E1~_2P$f7ib*lLv;->o?>BXSrIx^Uo&EI?UkaJ++vrZb6y9RbzbE>Ol z`ja`El_^X$qmX9cX}t-THnjT8Ce6G~RYN{(&)&jN+(LlwKhKukPp&+)d> 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 })