From 468d4503da91d9f6b86e4386dd89fdf3c5d7d7ac Mon Sep 17 00:00:00 2001 From: AndrejIT Date: Sun, 21 Dec 2014 19:06:10 +0200 Subject: [PATCH] City boundary do not let lava thorough. --- init.lua | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/init.lua b/init.lua index d7b9bfb..dfe8468 100644 --- a/init.lua +++ b/init.lua @@ -47,6 +47,18 @@ function city_block:in_city(pos) return false end +function city_block:city_boundaries(pos) + for i, EachBlock in ipairs(self.blocks) do + if (pos.x == (EachBlock.pos.x - 21) or pos.x == (EachBlock.pos.x + 21)) and pos.z > (EachBlock.pos.z - 22) and pos.z < (EachBlock.pos.z + 22 ) then + return true + end + if (pos.z == (EachBlock.pos.z - 21) or pos.z == (EachBlock.pos.z + 21)) and pos.x > (EachBlock.pos.x - 22) and pos.x < (EachBlock.pos.x + 22 ) then + return true + end + end + return false +end + city_block:load() minetest.register_node("city_block:cityblock", { @@ -129,3 +141,15 @@ minetest.register_on_dieplayer( end end ) + +--do not let lava flow across boundary of city block +minetest.register_abm({ + nodenames = {"default:lava_flowing"}, + interval = 5, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + if pos.y>14 and city_block:city_boundaries(pos) then + minetest.set_node(pos, {name="default:stone"}) + end + end, +}) \ No newline at end of file