-- basic empty tank minetest.register_node("tanks:level_0", { description = "Tank", node_box = { type = "fixed", fixed = { {0.5, 0.5, 0.5, -0.5, -0.5, 0.43750}, {-0.43750, 0.5, 0.43750, -0.5, -0.5, -0.5}, {0.5, -0.5, -0.5, -0.5, 0.5, -0.43750}, {0.5, -0.5, -0.43750, 0.43750, 0.5, 0.43750}, --{-0.43750, -0.5, 0.43750, 0.43750, -0.43750+0.0625, -0.43750}, }, }, tiles = {"tankgaugetop.png", "tankgaugetop.png", "tankgauge.png"}, groups = {oddly_breakable_by_hand=1}, paramtype = "light", selection_box = { type = "fixed", fixed = { {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, } }, drawtype = "nodebox", }) -- tank crafting minetest.register_craft({ output = 'tanks:level_0', recipe = { {'deco:glass', '', 'deco:glass'}, {'deco:glass', '', 'deco:glass'}, {'deco:glass', '', 'deco:glass'}, } }) -- tank nodeboxes tank_level = {} tank_level[1] = { {0.5, 0.5, 0.5, -0.5, -0.5, 0.43750}, {-0.43750, 0.5, 0.43750, -0.5, -0.5, -0.5}, {0.5, -0.5, -0.5, -0.5, 0.5, -0.43750}, {0.5, -0.5, -0.43750, 0.43750, 0.5, 0.43750}, {-0.43750, -0.5, 0.43750, 0.43750, -0.43750+0.0625, -0.43750}, } tank_level[2] = { {0.5, 0.5, 0.5, -0.5, -0.5, 0.43750}, {-0.43750, 0.5, 0.43750, -0.5, -0.5, -0.5}, {0.5, -0.5, -0.5, -0.5, 0.5, -0.43750}, {0.5, -0.5, -0.43750, 0.43750, 0.5, 0.43750}, {-0.43750, -0.5, 0.43750, 0.43750, -0.43750+(0.0625*3), -0.43750}, } tank_level[3] = { {0.5, 0.5, 0.5, -0.5, -0.5, 0.43750}, {-0.43750, 0.5, 0.43750, -0.5, -0.5, -0.5}, {0.5, -0.5, -0.5, -0.5, 0.5, -0.43750}, {0.5, -0.5, -0.43750, 0.43750, 0.5, 0.43750}, {-0.43750, -0.5, 0.43750, 0.43750, -0.43750+(0.0625*5), -0.43750}, } tank_level[4] = { {0.5, 0.5, 0.5, -0.5, -0.5, 0.43750}, {-0.43750, 0.5, 0.43750, -0.5, -0.5, -0.5}, {0.5, -0.5, -0.5, -0.5, 0.5, -0.43750}, {0.5, -0.5, -0.43750, 0.43750, 0.5, 0.43750}, {-0.43750, -0.5, 0.43750, 0.43750, -0.43750+(0.0625*7), -0.43750}, } tank_level[5] = { {0.5, 0.5, 0.5, -0.5, -0.5, 0.43750}, {-0.43750, 0.5, 0.43750, -0.5, -0.5, -0.5}, {0.5, -0.5, -0.5, -0.5, 0.5, -0.43750}, {0.5, -0.5, -0.43750, 0.43750, 0.5, 0.43750}, {-0.43750, -0.5, 0.43750, 0.43750, -0.43750+(0.0625*9), -0.43750}, } tank_level[6] = { {0.5, 0.5, 0.5, -0.5, -0.5, 0.43750}, {-0.43750, 0.5, 0.43750, -0.5, -0.5, -0.5}, {0.5, -0.5, -0.5, -0.5, 0.5, -0.43750}, {0.5, -0.5, -0.43750, 0.43750, 0.5, 0.43750}, {-0.43750, -0.5, 0.43750, 0.43750, -0.43750+(0.0625*11), -0.43750}, } tank_level[7] = { {0.5, 0.5, 0.5, -0.5, -0.5, 0.43750}, {-0.43750, 0.5, 0.43750, -0.5, -0.5, -0.5}, {0.5, -0.5, -0.5, -0.5, 0.5, -0.43750}, {0.5, -0.5, -0.43750, 0.43750, 0.5, 0.43750}, {-0.43750, -0.5, 0.43750, 0.43750, -0.43750+(0.0625*13), -0.43750}, } tank_level[8] = { {0.5, 0.5, 0.5, -0.5, -0.5, 0.43750}, {-0.43750, 0.5, 0.43750, -0.5, -0.5, -0.5}, {0.5, -0.5, -0.5, -0.5, 0.5, -0.43750}, {0.5, -0.5, -0.43750, 0.43750, 0.5, 0.43750}, {-0.43750, -0.5, 0.43750, 0.43750, -0.43750+(0.0625*15), -0.43750}, } -- register tank function function register_tank(name, light_min) for level=1,8 do local textures = "nope.avi" local light = 0 if name == "w" then textures = {"tank_water_level_8.png^tankgaugetop.png", "tank_water_level_8.png^tankgaugetop.png", "tank_water_level_"..level..".png^tankgauge.png"} light = 0 elseif name == "l" then textures = {"tank_lava_level_8.png^tankgaugetop.png", "tank_lava_level_8.png^tankgaugetop.png", "tank_lava_level_"..level..".png^tankgauge.png"} light = light_min+level elseif name == "o" then textures = {"tank_oil_level_8.png^tankgaugetop.png", "tank_oil_level_8.png^tankgaugetop.png", "tank_oil_level_"..level..".png^tankgauge.png"} light = 0 elseif name == "e" then textures = {"tank_edens_level_8.png^tankgaugetop.png", "tank_edens_level_8.png^tankgaugetop.png", "tank_edens_level_"..level..".png^tankgauge.png"} light = 0 else textures = {"tankgaugetop.png", "tankgaugetop.png", "tankgauge.png"} light = 0 end minetest.register_node("tanks:"..name.."_level_"..level, { description = name .." Tank Level "..level, drawtype = "nodebox", paramtype = "light", tiles = textures, node_box = { type = "fixed", fixed = tank_level[level], }, light_source = light, selection_box = { type = "fixed", fixed = { {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, } }, groups = {impossible=1}, }) end end -- water tanks register_tank("w", 1) -- eden's water tanks register_tank("e", 1) -- lava tanks register_tank("l", 6) -- oil tanks register_tank("o", 1) -- black magic here minetest.register_on_punchnode(function(pos, node, puncher) if not puncher then return end tnodepos = pos --store the highest tank point to be drained highpoint = 1 tnodename = minetest.get_node(pos) bname = puncher:get_wielded_item():get_name() for level=1,8 do if tnodename.name == "tanks:level_0" then if bname == "bucket:oil" then puncher:set_wielded_item("bucket:bucket_empty 1") minetest.set_node(pos, {name="tanks:o_level_1"}) end end if tnodename.name == "tanks:o_level_"..level then if bname == "bucket:bucket_empty" then if tnodename.name == "tanks:o_level_1" then minetest.set_node(pos, {name="tanks:level_0"}) puncher:set_wielded_item("bucket:oil 1") else nodeset = "false" for nodeup=1,16 do tnodepos.y = tnodepos.y + 1 abovenode = minetest.get_node(tnodepos) --print (abovenode.name) if abovenode.name == "tanks:o_level_8" or abovenode.name == "tanks:o_level_1" or abovenode.name == "tanks:o_level_2" or abovenode.name == "tanks:o_level_3" or abovenode.name == "tanks:o_level_4" or abovenode.name == "tanks:o_level_5" or abovenode.name == "tanks:o_level_6" or abovenode.name == "tanks:o_level_7" then --do nothing else highpoint = nodeup print ('high point found at '..highpoint) tnodepos.y = tnodepos.y-nodeup --reset tnodepos break end end abovenode = minetest.get_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}) nodeset = "false" if abovenode.name == "tanks:o_level_1" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:level_0"}) puncher:set_wielded_item("bucket:oil 1") nodeset = "true" end if abovenode.name == "tanks:o_level_2" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:o_level_1"}) puncher:set_wielded_item("bucket:oil 1") nodeset = "true" end if abovenode.name == "tanks:o_level_3" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:o_level_2"}) puncher:set_wielded_item("bucket:oil 1") nodeset = "true" end if abovenode.name == "tanks:o_level_4" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:o_level_3"}) puncher:set_wielded_item("bucket:oil 1") nodeset = "true" end if abovenode.name == "tanks:o_level_5" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:o_level_4"}) puncher:set_wielded_item("bucket:oil 1") nodeset = "true" end if abovenode.name == "tanks:o_level_6" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:o_level_5"}) puncher:set_wielded_item("bucket:oil 1") nodeset = "true" end if abovenode.name == "tanks:o_level_7" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:o_level_6"}) puncher:set_wielded_item("bucket:oil 1") nodeset = "true" end if abovenode.name == "tanks:o_level_8" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:o_level_7"}) puncher:set_wielded_item("bucket:oil 1") nodeset = "true" end abovenode = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}) if abovenode.name:find("tanks:level_0", 1, true) ~= nil and nodeset == "false" then minetest.set_node(pos, {name="tanks:o_level_"..level-1}) puncher:set_wielded_item("bucket:oil 1") nodeset = "true" end end end if bname == "bucket:oil" then if tnodename.name == "tanks:o_level_8" then nodeset = "false" for nodeup=1,16 do tnodepos.y = tnodepos.y + 1 abovenode = minetest.get_node(tnodepos) if abovenode.name == "tanks:level_0" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:o_level_1"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:o_level_1" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:o_level_2"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:o_level_2" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:o_level_3"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:o_level_3" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:o_level_4"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:o_level_4" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:o_level_5"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:o_level_5" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:o_level_6"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:o_level_6" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:o_level_7"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:o_level_7" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:o_level_8"}) puncher:set_wielded_item("bucket:bucket_empty 1") --return end if abovenode.name:find("level_0", 1, true) == true then print 'broke loop, tank not found' break end end else minetest.set_node(pos, {name="tanks:o_level_"..level+1}) puncher:set_wielded_item("bucket:bucket_empty 1") end end end end for level=1,8 do if tnodename.name == "tanks:level_0" then if bname == "bucket:bucket_water" then puncher:set_wielded_item("bucket:bucket_empty 1") minetest.set_node(pos, {name="tanks:w_level_1"}) end end if tnodename.name == "tanks:w_level_"..level then if bname == "bucket:bucket_empty" then if tnodename.name == "tanks:w_level_1" then minetest.set_node(pos, {name="tanks:level_0"}) puncher:set_wielded_item("bucket:bucket_water 1") else nodeset = "false" for nodeup=1,16 do tnodepos.y = tnodepos.y + 1 abovenode = minetest.get_node(tnodepos) --print (abovenode.name) if abovenode.name == "tanks:w_level_8" or abovenode.name == "tanks:w_level_1" or abovenode.name == "tanks:w_level_2" or abovenode.name == "tanks:w_level_3" or abovenode.name == "tanks:w_level_4" or abovenode.name == "tanks:w_level_5" or abovenode.name == "tanks:w_level_6" or abovenode.name == "tanks:w_level_7" then --do nothing else highpoint = nodeup print ('high point found at '..highpoint) tnodepos.y = tnodepos.y-nodeup --reset tnodepos break end end abovenode = minetest.get_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}) nodeset = "false" if abovenode.name == "tanks:w_level_1" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:level_0"}) puncher:set_wielded_item("bucket:bucket_water 1") nodeset = "true" end if abovenode.name == "tanks:w_level_2" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:w_level_1"}) puncher:set_wielded_item("bucket:bucket_water 1") nodeset = "true" end if abovenode.name == "tanks:w_level_3" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:w_level_2"}) puncher:set_wielded_item("bucket:bucket_water 1") nodeset = "true" end if abovenode.name == "tanks:w_level_4" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:w_level_3"}) puncher:set_wielded_item("bucket:bucket_water 1") nodeset = "true" end if abovenode.name == "tanks:w_level_5" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:w_level_4"}) puncher:set_wielded_item("bucket:bucket_water 1") nodeset = "true" end if abovenode.name == "tanks:w_level_6" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:w_level_5"}) puncher:set_wielded_item("bucket:bucket_water 1") nodeset = "true" end if abovenode.name == "tanks:w_level_7" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:w_level_6"}) puncher:set_wielded_item("bucket:bucket_water 1") nodeset = "true" end if abovenode.name == "tanks:w_level_8" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:w_level_7"}) puncher:set_wielded_item("bucket:bucket_water 1") nodeset = "true" end abovenode = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}) if abovenode.name:find("tanks:level_0", 1, true) ~= nil and nodeset == "false" then minetest.set_node(pos, {name="tanks:w_level_"..level-1}) puncher:set_wielded_item("bucket:bucket_water 1") nodeset = "true" end end end if bname == "bucket:bucket_water" then if tnodename.name == "tanks:w_level_8" then nodeset = "false" for nodeup=1,16 do tnodepos.y = tnodepos.y + 1 abovenode = minetest.get_node(tnodepos) if abovenode.name == "tanks:level_0" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:w_level_1"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:w_level_1" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:w_level_2"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:w_level_2" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:w_level_3"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:w_level_3" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:w_level_4"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:w_level_4" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:w_level_5"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:w_level_5" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:w_level_6"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:w_level_6" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:w_level_7"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:w_level_7" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:w_level_8"}) puncher:set_wielded_item("bucket:bucket_empty 1") --return end if abovenode.name:find("level_0", 1, true) == true then print 'broke loop, tank not found' break end end else minetest.set_node(pos, {name="tanks:w_level_"..level+1}) puncher:set_wielded_item("bucket:bucket_empty 1") end end end end for level=1,8 do if tnodename.name == "tanks:level_0" then if bname == "bucket:bucket_lava" then puncher:set_wielded_item("bucket:bucket_empty 1") minetest.set_node(pos, {name="tanks:l_level_1"}) end end if tnodename.name == "tanks:l_level_"..level then if bname == "bucket:bucket_empty" then if tnodename.name == "tanks:l_level_1" then minetest.set_node(pos, {name="tanks:level_0"}) puncher:set_wielded_item("bucket:bucket_lava 1") else nodeset = "false" for nodeup=1,16 do tnodepos.y = tnodepos.y + 1 abovenode = minetest.get_node(tnodepos) --print (abovenode.name) if abovenode.name == "tanks:l_level_8" or abovenode.name == "tanks:l_level_1" or abovenode.name == "tanks:l_level_2" or abovenode.name == "tanks:l_level_3" or abovenode.name == "tanks:l_level_4" or abovenode.name == "tanks:l_level_5" or abovenode.name == "tanks:l_level_6" or abovenode.name == "tanks:l_level_7" then --do nothing else highpoint = nodeup print ('high point found at '..highpoint) tnodepos.y = tnodepos.y-nodeup --reset tnodepos break end end abovenode = minetest.get_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}) nodeset = "false" if abovenode.name == "tanks:l_level_1" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:level_0"}) puncher:set_wielded_item("bucket:bucket_lava 1") nodeset = "true" end if abovenode.name == "tanks:l_level_2" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:l_level_1"}) puncher:set_wielded_item("bucket:bucket_lava 1") nodeset = "true" end if abovenode.name == "tanks:l_level_3" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:l_level_2"}) puncher:set_wielded_item("bucket:bucket_lava 1") nodeset = "true" end if abovenode.name == "tanks:l_level_4" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:l_level_3"}) puncher:set_wielded_item("bucket:bucket_lava 1") nodeset = "true" end if abovenode.name == "tanks:l_level_5" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:l_level_4"}) puncher:set_wielded_item("bucket:bucket_lava 1") nodeset = "true" end if abovenode.name == "tanks:l_level_6" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:l_level_5"}) puncher:set_wielded_item("bucket:bucket_lava 1") nodeset = "true" end if abovenode.name == "tanks:l_level_7" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:l_level_6"}) puncher:set_wielded_item("bucket:bucket_lava 1") nodeset = "true" end if abovenode.name == "tanks:l_level_8" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:l_level_7"}) puncher:set_wielded_item("bucket:bucket_lava 1") nodeset = "true" end abovenode = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}) if abovenode.name:find("tanks:level_0", 1, true) ~= nil and nodeset == "false" then minetest.set_node(pos, {name="tanks:l_level_"..level-1}) puncher:set_wielded_item("bucket:bucket_lava 1") nodeset = "true" end end end if bname == "bucket:bucket_lava" then if tnodename.name == "tanks:l_level_8" then nodeset = "false" for nodeup=1,16 do tnodepos.y = tnodepos.y + 1 abovenode = minetest.get_node(tnodepos) if abovenode.name == "tanks:level_0" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:l_level_1"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:l_level_1" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:l_level_2"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:l_level_2" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:l_level_3"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:l_level_3" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:l_level_4"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:l_level_4" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:l_level_5"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:l_level_5" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:l_level_6"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:l_level_6" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:l_level_7"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:l_level_7" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:l_level_8"}) puncher:set_wielded_item("bucket:bucket_empty 1") --return end if abovenode.name:find("level_0", 1, true) == true then print 'broke loop, tank not found' break end end else minetest.set_node(pos, {name="tanks:l_level_"..level+1}) puncher:set_wielded_item("bucket:bucket_empty 1") end end end end for level=1,8 do if tnodename.name == "tanks:level_0" then if bname == "bucket:bucket_edens_water" then puncher:set_wielded_item("bucket:bucket_empty 1") minetest.set_node(pos, {name="tanks:e_level_1"}) end end if tnodename.name == "tanks:e_level_"..level then if bname == "bucket:bucket_empty" then if tnodename.name == "tanks:e_level_1" then minetest.set_node(pos, {name="tanks:level_0"}) puncher:set_wielded_item("bucket:bucket_edens_water 1") else nodeset = "false" for nodeup=1,16 do tnodepos.y = tnodepos.y + 1 abovenode = minetest.get_node(tnodepos) --print (abovenode.name) if abovenode.name == "tanks:e_level_8" or abovenode.name == "tanks:e_level_1" or abovenode.name == "tanks:e_level_2" or abovenode.name == "tanks:e_level_3" or abovenode.name == "tanks:e_level_4" or abovenode.name == "tanks:e_level_5" or abovenode.name == "tanks:e_level_6" or abovenode.name == "tanks:e_level_7" then --do nothing else highpoint = nodeup --print ('high point found at '..highpoint) tnodepos.y = tnodepos.y-nodeup --reset tnodepos break end end abovenode = minetest.get_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}) nodeset = "false" if abovenode.name == "tanks:e_level_1" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:level_0"}) puncher:set_wielded_item("bucket:bucket_edens_water 1") nodeset = "true" end if abovenode.name == "tanks:e_level_2" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:e_level_1"}) puncher:set_wielded_item("bucket:bucket_edens_water 1") nodeset = "true" end if abovenode.name == "tanks:e_level_3" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:e_level_2"}) puncher:set_wielded_item("bucket:bucket_edens_water 1") nodeset = "true" end if abovenode.name == "tanks:e_level_4" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:e_level_3"}) puncher:set_wielded_item("bucket:bucket_edens_water 1") nodeset = "true" end if abovenode.name == "tanks:e_level_5" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:e_level_4"}) puncher:set_wielded_item("bucket:bucket_edens_water 1") nodeset = "true" end if abovenode.name == "tanks:e_level_6" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:e_level_5"}) puncher:set_wielded_item("bucket:bucket_edens_water 1") nodeset = "true" end if abovenode.name == "tanks:e_level_7" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:e_level_6"}) puncher:set_wielded_item("bucket:bucket_edens_water 1") nodeset = "true" end if abovenode.name == "tanks:e_level_8" and nodeset == "false" then minetest.set_node({x=pos.x, y=pos.y+highpoint-1, z=pos.z}, {name="tanks:e_level_7"}) puncher:set_wielded_item("bucket:bucket_edens_water 1") nodeset = "true" end abovenode = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}) if abovenode.name:find("tanks:level_0", 1, true) ~= nil and nodeset == "false" then minetest.set_node(pos, {name="tanks:e_level_"..level-1}) puncher:set_wielded_item("bucket:bucket_edens_water 1") nodeset = "true" end end end if bname == "bucket:oil" then if tnodename.name == "tanks:e_level_8" then nodeset = "false" for nodeup=1,16 do tnodepos.y = tnodepos.y + 1 abovenode = minetest.get_node(tnodepos) if abovenode.name == "tanks:level_0" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:e_level_1"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:e_level_1" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:e_level_2"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:e_level_2" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:e_level_3"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:e_level_3" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:e_level_4"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:e_level_4" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:e_level_5"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:e_level_5" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:e_level_6"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:e_level_6" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:e_level_7"}) puncher:set_wielded_item("bucket:bucket_empty 1") nodeset = "true" end if abovenode.name == "tanks:e_level_7" and nodeset == "false" then minetest.set_node(tnodepos, {name="tanks:e_level_8"}) puncher:set_wielded_item("bucket:bucket_empty 1") --return end if abovenode.name:find("level_0", 1, true) == true then --print 'broke loop, tank not found' break end end else minetest.set_node(pos, {name="tanks:e_level_"..level+1}) puncher:set_wielded_item("bucket:bucket_empty 1") end end end end end)