summaryrefslogtreecommitdiff
path: root/technic/machines/MV/wind_mill.lua
diff options
context:
space:
mode:
Diffstat (limited to 'technic/machines/MV/wind_mill.lua')
-rw-r--r--technic/machines/MV/wind_mill.lua21
1 files changed, 14 insertions, 7 deletions
diff --git a/technic/machines/MV/wind_mill.lua b/technic/machines/MV/wind_mill.lua
index 1377c67..28a075d 100644
--- a/technic/machines/MV/wind_mill.lua
+++ b/technic/machines/MV/wind_mill.lua
@@ -33,8 +33,15 @@ local function check_wind_mill(pos)
if pos.y < 30 then
return false
end
+ pos = {x=pos.x, y=pos.y, z=pos.z}
for i = 1, 20 do
- local node = minetest.get_node({x=pos.x, y=pos.y-i, z=pos.z})
+ pos.y = pos.y - 1
+ local node = minetest.get_node_or_nil(pos)
+ if not node then
+ -- we reached CONTENT_IGNORE, we can assume, that nothing changed
+ -- as the user will have to load the block to change it
+ return
+ end
if node.name ~= "technic:wind_mill_frame" then
return false
end
@@ -45,17 +52,17 @@ end
local run = function(pos, node)
local meta = minetest.get_meta(pos)
local machine_name = S("Wind %s Generator"):format("MV")
- local power = math.min(pos.y * 100, 5000)
- if not check_wind_mill(pos) then
+ local check = check_wind_mill(pos)
+ if check == false then
meta:set_int("MV_EU_supply", 0)
meta:set_string("infotext", S("%s Improperly Placed"):format(machine_name))
- return
- else
+ elseif check == true then
+ local power = math.min(pos.y * 100, 5000)
meta:set_int("MV_EU_supply", power)
+ meta:set_string("infotext", S("@1 (@2 EU)", machine_name, technic.pretty_num(power)))
end
-
- meta:set_string("infotext", S("@1 (@2 EU)", machine_name, technic.pretty_num(power)))
+ -- check == nil: assume nothing has changed
end
minetest.register_node("technic:wind_mill", {