From 05126557e424901e7b730d16592f51e6c0b84a5e Mon Sep 17 00:00:00 2001 From: Vitaliy olkhin Date: Thu, 30 Jan 2025 14:56:45 +0500 Subject: [PATCH] moved amb --- mod.conf | 2 +- register_abm.lua | 67 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 67 insertions(+), 2 deletions(-) diff --git a/mod.conf b/mod.conf index 26339f3..f7f24fe 100644 --- a/mod.conf +++ b/mod.conf @@ -1,6 +1,6 @@ name = surface_effect description = surface effect -depends = default, persistent_effects, mobs_monster, radiant_damage, hazmat_suit +depends = default, persistent_effects, mobs_monster, radiant_damage, hazmat_suit, ethereal optional_depends = technic, farming, space_travel min_minetest_version = 5.7 title = Surface Effect diff --git a/register_abm.lua b/register_abm.lua index dffd144..a5eab5d 100644 --- a/register_abm.lua +++ b/register_abm.lua @@ -22,4 +22,69 @@ if minetest.get_modpath("areas") then end end, }) -end \ No newline at end of file +end + +minetest.register_abm({ + nodenames = {"group:flammable"}, + interval = 30/speed, + chance = 2000, + action = function(pos) + if pos.y > -10 and pos.y < 1500 then + minetest.env:add_node(pos, {name="fire:basic_flame"}) + end + end, +}) + +minetest.register_abm({ + nodenames = {"default:leaves"}, + interval = 10/speed, + chance = 100, + action = function(pos) + if pos.y > -10 and pos.y < 1500 then + minetest.env:remove_node(pos) + end + end, +}) + +minetest.register_abm({ + nodenames = {"default:water_source"}, + interval = 10/speed, + chance = 50, + action = function(pos) + if pos.y > -10 and pos.y < 1500 then + minetest.env:remove_node(pos) + if minetest.env:get_node({x=pos.x, y=pos.y -1, z=pos.z}).name == "default:water_source" then + minetest.env:remove_node({x=pos.x, y=pos.y -1, z=pos.z}) + end + if minetest.env:get_node({x=pos.x, y=pos.y +1, z=pos.z}).name == "default:water_source" then + minetest.env:remove_node({x=pos.x, y=pos.y +1, z=pos.z}) + end + + if minetest.env:get_node({x=pos.x -1, y=pos.y, z=pos.z}).name == "default:water_source" then + minetest.env:remove_node({x=pos.x -1, y=pos.y, z=pos.z}) + end + if minetest.env:get_node({x=pos.x +1, y=pos.y, z=pos.z}).name == "default:water_source" then + minetest.env:remove_node({x=pos.x +1, y=pos.y, z=pos.z}) + end + + if minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z -1}).name == "default:water_source" then + minetest.env:remove_node({x=pos.x, y=pos.y, z=pos.z -1}) + end + if minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z +1}).name == "default:water_source" then + minetest.env:remove_node({x=pos.x, y=pos.y, z=pos.z +1}) + end + end + end, +}) + +minetest.register_abm({ + nodenames = {"default:dirt_with_grass"}, + interval = 30/speed, + chance = 2000, + action = function(pos) + if pos.y > -10 and pos.y < 100 then + local pos = {x = pos.x, y = pos.y, z = pos.z} + minetest.env:add_node(pos, {name="ethereal:dry_dirt"}) + end + end, +}) \ No newline at end of file