Remove ABM Limiter, label ABMs
parent
1325d7c5a3
commit
f3ca7a4473
|
@ -8,7 +8,9 @@ local replaceable_node_types = {
|
||||||
"default:lava_flowing",
|
"default:lava_flowing",
|
||||||
"default:water_source",
|
"default:water_source",
|
||||||
"default:water_flowing",
|
"default:water_flowing",
|
||||||
"air"
|
"air",
|
||||||
|
"default:mg_water_source",
|
||||||
|
"default:mg_water_flowing"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -171,6 +171,7 @@ local function swap_node(pos,name)
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "campfire",
|
||||||
nodenames = {"campfire:campfire","campfire:campfire_burning"},
|
nodenames = {"campfire:campfire","campfire:campfire_burning"},
|
||||||
interval = 1.0,
|
interval = 1.0,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
|
|
|
@ -104,11 +104,12 @@ minetest.register_node("cottages:window_shutter_closed", {
|
||||||
|
|
||||||
-- open shutters in the morning
|
-- open shutters in the morning
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "open shutters",
|
||||||
nodenames = {"cottages:window_shutter_closed"},
|
nodenames = {"cottages:window_shutter_closed"},
|
||||||
interval = 20, -- change this to 600 if your machine is too slow
|
interval = 20, -- change this to 600 if your machine is too slow
|
||||||
chance = 3, -- not all people wake up at the same time!
|
chance = 3, -- not all people wake up at the same time!
|
||||||
action = function(pos)
|
action = function(pos)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
-- at this time, sleeping in a bed is not possible
|
-- at this time, sleeping in a bed is not possible
|
||||||
if( not(minetest.get_timeofday() < 0.2 or minetest.get_timeofday() > 0.805)) then
|
if( not(minetest.get_timeofday() < 0.2 or minetest.get_timeofday() > 0.805)) then
|
||||||
local old_node = minetest.get_node( pos );
|
local old_node = minetest.get_node( pos );
|
||||||
|
@ -121,11 +122,12 @@ minetest.register_abm({
|
||||||
|
|
||||||
-- close them at night
|
-- close them at night
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "close shutters",
|
||||||
nodenames = {"cottages:window_shutter_open"},
|
nodenames = {"cottages:window_shutter_open"},
|
||||||
interval = 20, -- change this to 600 if your machine is too slow
|
interval = 20, -- change this to 600 if your machine is too slow
|
||||||
chance = 2,
|
chance = 2,
|
||||||
action = function(pos)
|
action = function(pos)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
-- same time at which sleeping is allowed in beds
|
-- same time at which sleeping is allowed in beds
|
||||||
if( minetest.get_timeofday() < 0.2 or minetest.get_timeofday() > 0.805) then
|
if( minetest.get_timeofday() < 0.2 or minetest.get_timeofday() > 0.805) then
|
||||||
local old_node = minetest.get_node( pos );
|
local old_node = minetest.get_node( pos );
|
||||||
|
|
|
@ -103,11 +103,12 @@ function default.register_falling_node(nodename, texture)
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "grow sapling",
|
||||||
nodenames = {"default:sapling"},
|
nodenames = {"default:sapling"},
|
||||||
interval = 10,
|
interval = 10,
|
||||||
chance = 50,
|
chance = 50,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
local nu = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name
|
local nu = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name
|
||||||
local is_soil = minetest.get_item_group(nu, "soil")
|
local is_soil = minetest.get_item_group(nu, "soil")
|
||||||
if is_soil == 0 then
|
if is_soil == 0 then
|
||||||
|
@ -127,6 +128,7 @@ minetest.register_abm({
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "grow jungle sapling",
|
||||||
nodenames = {"default:junglesapling"},
|
nodenames = {"default:junglesapling"},
|
||||||
interval = 10,
|
interval = 10,
|
||||||
chance = 50,
|
chance = 50,
|
||||||
|
@ -164,29 +166,32 @@ default.cool_lava_flowing = function(pos)
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "cool lava flow",
|
||||||
nodenames = {"default:lava_flowing"},
|
nodenames = {"default:lava_flowing"},
|
||||||
neighbors = {"group:water"},
|
neighbors = {"group:water"},
|
||||||
interval = 1,
|
interval = 1,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
default.cool_lava_flowing(pos, node, active_object_count, active_object_count_wider)
|
default.cool_lava_flowing(pos, node, active_object_count, active_object_count_wider)
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "cool lava source",
|
||||||
nodenames = {"default:lava_source"},
|
nodenames = {"default:lava_source"},
|
||||||
neighbors = {"group:water"},
|
neighbors = {"group:water"},
|
||||||
interval = 1,
|
interval = 1,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
default.cool_lava_source(pos, node, active_object_count, active_object_count_wider)
|
default.cool_lava_source(pos, node, active_object_count, active_object_count_wider)
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
-- freeze things
|
-- freeze things
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "freeze things",
|
||||||
nodenames = {"group:freezes"},
|
nodenames = {"group:freezes"},
|
||||||
neighbors = {"group:cold"},
|
neighbors = {"group:cold"},
|
||||||
interval = 10,
|
interval = 10,
|
||||||
|
@ -207,6 +212,7 @@ minetest.register_abm({
|
||||||
|
|
||||||
-- melt things
|
-- melt things
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "melt things",
|
||||||
nodenames = {"group:melts"},
|
nodenames = {"group:melts"},
|
||||||
neighbors = {"group:hot"},
|
neighbors = {"group:hot"},
|
||||||
interval = 10,
|
interval = 10,
|
||||||
|
@ -226,12 +232,13 @@ minetest.register_abm({
|
||||||
--
|
--
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "grow cactus",
|
||||||
nodenames = {"default:cactus"},
|
nodenames = {"default:cactus"},
|
||||||
neighbors = {"group:sand"},
|
neighbors = {"group:sand"},
|
||||||
interval = 50,
|
interval = 50,
|
||||||
chance = 20,
|
chance = 20,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
pos.y = pos.y-1
|
pos.y = pos.y-1
|
||||||
local name = minetest.get_node(pos).name
|
local name = minetest.get_node(pos).name
|
||||||
if minetest.get_item_group(name, "sand") ~= 0 then
|
if minetest.get_item_group(name, "sand") ~= 0 then
|
||||||
|
@ -251,12 +258,13 @@ minetest.register_abm({
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "grow papyrus",
|
||||||
nodenames = {"default:papyrus"},
|
nodenames = {"default:papyrus"},
|
||||||
neighbors = {"default:dirt", "default:dirt_with_grass"},
|
neighbors = {"default:dirt", "default:dirt_with_grass"},
|
||||||
interval = 50,
|
interval = 50,
|
||||||
chance = 20,
|
chance = 20,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
pos.y = pos.y-1
|
pos.y = pos.y-1
|
||||||
local name = minetest.get_node(pos).name
|
local name = minetest.get_node(pos).name
|
||||||
if name == "default:dirt" or name == "default:dirt_with_grass" then
|
if name == "default:dirt" or name == "default:dirt_with_grass" then
|
||||||
|
@ -305,6 +313,7 @@ function default.leaf_globalstep(dtime)
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "leaf decay",
|
||||||
nodenames = {"group:leafdecay"},
|
nodenames = {"group:leafdecay"},
|
||||||
neighbors = {"air", "group:liquid"},
|
neighbors = {"air", "group:liquid"},
|
||||||
-- A low interval and a high inverse chance spreads the load
|
-- A low interval and a high inverse chance spreads the load
|
||||||
|
@ -312,7 +321,7 @@ minetest.register_abm({
|
||||||
chance = 5,
|
chance = 5,
|
||||||
|
|
||||||
action = function(p0, node, _, _)
|
action = function(p0, node, _, _)
|
||||||
if abm_limiter() then return end
|
----if abm_limiter() then return end
|
||||||
--print("leafdecay ABM at "..p0.x..", "..p0.y..", "..p0.z..")")
|
--print("leafdecay ABM at "..p0.x..", "..p0.y..", "..p0.z..")")
|
||||||
local do_preserve = false
|
local do_preserve = false
|
||||||
local d = minetest.registered_nodes[node.name].groups.leafdecay
|
local d = minetest.registered_nodes[node.name].groups.leafdecay
|
||||||
|
|
|
@ -40,13 +40,14 @@ minetest.register_node("default:stone_with_iron", {
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "lava on iron",
|
||||||
nodenames = {"default:stone_with_iron"},
|
nodenames = {"default:stone_with_iron"},
|
||||||
neighbors = {"group:lava"},
|
neighbors = {"group:lava"},
|
||||||
interval = 1.0,
|
interval = 1.0,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
-- change to a fused iron node
|
-- change to a fused iron node
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
minetest.set_node(pos, {name = "default:cobble"})
|
minetest.set_node(pos, {name = "default:cobble"})
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
@ -146,12 +147,13 @@ minetest.register_node("default:dirt", {
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "convert dirt",
|
||||||
nodenames = {"default:dirt"},
|
nodenames = {"default:dirt"},
|
||||||
neighbors = {"default:dirt_with_grass","default:water_source","default:water_flowing","default:dirt_with_snow","default:snow","default:snowblock"},
|
neighbors = {"default:dirt_with_grass","default:water_source","default:water_flowing","default:dirt_with_snow","default:snow","default:snowblock"},
|
||||||
interval = 2,
|
interval = 15,
|
||||||
chance = 200,
|
chance = 200,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
local above = {x=pos.x, y=pos.y+1, z=pos.z}
|
local above = {x=pos.x, y=pos.y+1, z=pos.z}
|
||||||
local name = minetest.get_node(above).name
|
local name = minetest.get_node(above).name
|
||||||
local nodedef = minetest.registered_nodes[name]
|
local nodedef = minetest.registered_nodes[name]
|
||||||
|
@ -168,12 +170,13 @@ minetest.register_abm({
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "convert dirt to dry grass",
|
||||||
nodenames = {"default:dirt"},
|
nodenames = {"default:dirt"},
|
||||||
neighbors = {"mg:dirt_with_dry_grass"},
|
neighbors = {"mg:dirt_with_dry_grass"},
|
||||||
interval = 6,
|
interval = 15,
|
||||||
chance = 200,
|
chance = 200,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
local above = {x=pos.x, y=pos.y+1, z=pos.z}
|
local above = {x=pos.x, y=pos.y+1, z=pos.z}
|
||||||
local name = minetest.get_node(above).name
|
local name = minetest.get_node(above).name
|
||||||
local nodedef = minetest.registered_nodes[name]
|
local nodedef = minetest.registered_nodes[name]
|
||||||
|
@ -192,7 +195,7 @@ minetest.register_abm({
|
||||||
interval = 2,
|
interval = 2,
|
||||||
chance = 20,
|
chance = 20,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
local above = {x=pos.x, y=pos.y+1, z=pos.z}
|
local above = {x=pos.x, y=pos.y+1, z=pos.z}
|
||||||
local name = minetest.get_node(above).name
|
local name = minetest.get_node(above).name
|
||||||
local nodedef = minetest.registered_nodes[name]
|
local nodedef = minetest.registered_nodes[name]
|
||||||
|
@ -270,15 +273,16 @@ minetest.register_node("default:clay", {
|
||||||
|
|
||||||
-- Regenerative clay
|
-- Regenerative clay
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "regenerate clay",
|
||||||
nodenames = {"default:sand"},
|
nodenames = {"default:sand"},
|
||||||
neighbors = {"default:dirt"},
|
neighbors = {"default:dirt"},
|
||||||
interval = 2,
|
interval = 15,
|
||||||
chance = 600,
|
chance = 250,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
local above = {x=pos.x, y=pos.y+1, z=pos.z}
|
local above = {x=pos.x, y=pos.y+1, z=pos.z}
|
||||||
local name = minetest.get_node(above).name
|
local name = minetest.get_node(above).name
|
||||||
if name == "default:water_source" then
|
if name == "default:water_source" or name == "default:mg_water_source" then
|
||||||
minetest.set_node(pos, {name = "default:clay"})
|
minetest.set_node(pos, {name = "default:clay"})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -904,11 +908,12 @@ minetest.register_node("default:npc_chest", {
|
||||||
|
|
||||||
-- respawn random items in the npc chests
|
-- respawn random items in the npc chests
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "npc chest",
|
||||||
nodenames = {"default:npc_chest"},
|
nodenames = {"default:npc_chest"},
|
||||||
interval = 10,
|
interval = 10,
|
||||||
chance = 600,
|
chance = 600,
|
||||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
local item_count = math.random(0,5)
|
local item_count = math.random(0,5)
|
||||||
local items_available = { [0] = "default:apple", [1] = "mobs:meat_raw", [2]="farming_plus:bread",[3]="bushes:berry_pie_cooked",[4]="bushes:basket_empty",[5]="farming_plus:wheat",[6]="throwing:arrow",[7]="default:torch",[8]="farming_plus:string"}
|
local items_available = { [0] = "default:apple", [1] = "mobs:meat_raw", [2]="farming_plus:bread",[3]="bushes:berry_pie_cooked",[4]="bushes:basket_empty",[5]="farming_plus:wheat",[6]="throwing:arrow",[7]="default:torch",[8]="farming_plus:string"}
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
|
@ -1242,6 +1247,7 @@ local function swap_node(pos,name)
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "furnace",
|
||||||
nodenames = {"default:furnace","default:furnace_active"},
|
nodenames = {"default:furnace","default:furnace_active"},
|
||||||
interval = 1.0,
|
interval = 1.0,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
|
|
|
@ -218,7 +218,7 @@ adventuretest.register_pl_hook(default.player_globalstep,0)
|
||||||
if minetest.register_on_punchplayer ~= nil then
|
if minetest.register_on_punchplayer ~= nil then
|
||||||
minetest.register_on_punchplayer( function(player, hitter, time_from_last_punch, tool_capabilities, dir)
|
minetest.register_on_punchplayer( function(player, hitter, time_from_last_punch, tool_capabilities, dir)
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
process_weapon(player,time_from_last_punch,tool_capabilities)
|
process_weapon(hitter,time_from_last_punch,tool_capabilities)
|
||||||
blood_particles(player:getpos(),0.5,27,"mobs_blood.png")
|
blood_particles(player:getpos(),0.5,27,"mobs_blood.png")
|
||||||
if player_anim[name] == "lay" or player_anim[name] == "sit" then
|
if player_anim[name] == "lay" or player_anim[name] == "sit" then
|
||||||
player:set_eye_offset({x=0,y=0,z=0},{x=0,y=0,z=0})
|
player:set_eye_offset({x=0,y=0,z=0},{x=0,y=0,z=0})
|
||||||
|
@ -236,3 +236,12 @@ if minetest.register_on_punchplayer ~= nil then
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
minetest.register_on_player_hpchange(function(player,hp_change)
|
||||||
|
if hp_change < 0 then
|
||||||
|
if math.random(0,3) == 3 then
|
||||||
|
local snum = math.random(1,4)
|
||||||
|
minetest.sound_play("default_hurt"..tostring(snum),{object = player})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
,false)
|
|
@ -38,11 +38,12 @@ minetest.register_node("farming_plus:banana_leaves", {
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "grow banana sapling",
|
||||||
nodenames = {"farming_plus:banana_sapling"},
|
nodenames = {"farming_plus:banana_sapling"},
|
||||||
interval = 60,
|
interval = 60,
|
||||||
chance = 20,
|
chance = 20,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
farming:generate_tree(pos, "default:tree", "farming_plus:banana_leaves", {"default:dirt", "default:dirt_with_grass"}, {["farming_plus:banana"]=20})
|
farming:generate_tree(pos, "default:tree", "farming_plus:banana_leaves", {"default:dirt", "default:dirt_with_grass"}, {["farming_plus:banana"]=20})
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
|
@ -38,11 +38,12 @@ minetest.register_node("farming_plus:cocoa_leaves", {
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "grow cocoa sapling",
|
||||||
nodenames = {"farming_plus:cocoa_sapling"},
|
nodenames = {"farming_plus:cocoa_sapling"},
|
||||||
interval = 60,
|
interval = 60,
|
||||||
chance = 20,
|
chance = 20,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
farming:generate_tree(pos, "default:tree", "farming_plus:cocoa_leaves", {"default:sand", "default:desert_sand"}, {["farming_plus:cocoa"]=20})
|
farming:generate_tree(pos, "default:tree", "farming_plus:cocoa_leaves", {"default:sand", "default:desert_sand"}, {["farming_plus:cocoa"]=20})
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
|
@ -56,6 +56,7 @@ end
|
||||||
|
|
||||||
function farming:add_plant(full_grown, names, interval, chance)
|
function farming:add_plant(full_grown, names, interval, chance)
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "growing "..full_grown,
|
||||||
nodenames = names,
|
nodenames = names,
|
||||||
neighbors = {"group:soil"},
|
neighbors = {"group:soil"},
|
||||||
interval = interval,
|
interval = interval,
|
||||||
|
|
|
@ -17,11 +17,12 @@ minetest.register_node("farming_plus:soil_wet", {
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "wetting / drying soil",
|
||||||
nodenames = {"farming_plus:soil", "farming_plus:soil_wet"},
|
nodenames = {"farming_plus:soil", "farming_plus:soil_wet"},
|
||||||
interval = 15,
|
interval = 15,
|
||||||
chance = 4,
|
chance = 4,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
pos.y = pos.y+1
|
pos.y = pos.y+1
|
||||||
local nn = minetest.get_node(pos).name
|
local nn = minetest.get_node(pos).name
|
||||||
pos.y = pos.y-1
|
pos.y = pos.y-1
|
||||||
|
|
|
@ -23,11 +23,12 @@ minetest.register_node(":farming_plus:weed", {
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "growing weeds",
|
||||||
nodenames = {"farming_plus:soil_wet", "farming_plus:soil"},
|
nodenames = {"farming_plus:soil_wet", "farming_plus:soil"},
|
||||||
interval = 150,
|
interval = 150,
|
||||||
chance = 4,
|
chance = 4,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
if minetest.find_node_near(pos, 4, {"farming_plus:scarecrow", "farming_plus:scarecrow_light"}) ~= nil then
|
if minetest.find_node_near(pos, 4, {"farming_plus:scarecrow", "farming_plus:scarecrow_light"}) ~= nil then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -47,6 +48,7 @@ minetest.register_abm({
|
||||||
|
|
||||||
-- if something is overrun with weeds too long turn it back to regular dirt
|
-- if something is overrun with weeds too long turn it back to regular dirt
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "return to earth",
|
||||||
nodenames = {"farming_plus:weed"},
|
nodenames = {"farming_plus:weed"},
|
||||||
interval = 700,
|
interval = 700,
|
||||||
chance = 3,
|
chance = 3,
|
||||||
|
|
|
@ -167,6 +167,7 @@ end
|
||||||
-- Extinguish all flames quickly with water, snow, ice
|
-- Extinguish all flames quickly with water, snow, ice
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "extinguish fire",
|
||||||
nodenames = {"fire:basic_flame", "fire:permanent_flame"},
|
nodenames = {"fire:basic_flame", "fire:permanent_flame"},
|
||||||
neighbors = {"group:puts_out_fire"},
|
neighbors = {"group:puts_out_fire"},
|
||||||
interval = 3,
|
interval = 3,
|
||||||
|
@ -187,6 +188,7 @@ if minetest.setting_getbool("disable_fire") then
|
||||||
-- Remove basic flames only
|
-- Remove basic flames only
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "fire",
|
||||||
nodenames = {"fire:basic_flame"},
|
nodenames = {"fire:basic_flame"},
|
||||||
interval = 7,
|
interval = 7,
|
||||||
chance = 2,
|
chance = 2,
|
||||||
|
@ -200,6 +202,7 @@ else
|
||||||
|
|
||||||
-- Ignite neighboring nodes, add basic flames
|
-- Ignite neighboring nodes, add basic flames
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "ignite",
|
||||||
nodenames = {"group:flammable"},
|
nodenames = {"group:flammable"},
|
||||||
neighbors = {"group:igniter"},
|
neighbors = {"group:igniter"},
|
||||||
interval = 7,
|
interval = 7,
|
||||||
|
@ -220,6 +223,7 @@ else
|
||||||
-- Remove basic flames and flammable nodes
|
-- Remove basic flames and flammable nodes
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "flame die",
|
||||||
nodenames = {"fire:basic_flame"},
|
nodenames = {"fire:basic_flame"},
|
||||||
interval = 5,
|
interval = 5,
|
||||||
chance = 16,
|
chance = 16,
|
||||||
|
|
|
@ -39,7 +39,7 @@ minetest.register_node("flowers:magic", {
|
||||||
wield_image = "flowers_magic.png",
|
wield_image = "flowers_magic.png",
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
light_source = 12,
|
light_source = 6,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
buildable_to = true,
|
buildable_to = true,
|
||||||
floodable = true,
|
floodable = true,
|
||||||
|
@ -148,14 +148,15 @@ minetest.register_node("flowers:viola", {
|
||||||
|
|
||||||
-- regrow some magic flowers
|
-- regrow some magic flowers
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
nodenames = {"default:dirt_with_snow","default:snowblock"},
|
label = "regrow magic flowers",
|
||||||
|
nodenames = {"default:dirt_with_snow","default:snowblock","fireswamp:swamp_grass"},
|
||||||
interval = 80,
|
interval = 80,
|
||||||
chance = 600,
|
chance = 600,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if pos.y < 300 then
|
if ( minetest.get_node(pos).name == "default:dirt_with_snow" or minetest.get_node(pos).name == "default:snowblock") and pos.y < 300 then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
local light = minetest.get_node_light(pos)
|
local light = minetest.get_node_light(pos)
|
||||||
if not light or light < 10 then
|
if not light or light < 10 then
|
||||||
return
|
return
|
||||||
|
@ -163,18 +164,19 @@ minetest.register_abm({
|
||||||
local pos2 = {x=pos.x,y=(pos.y+1),z=pos.z}
|
local pos2 = {x=pos.x,y=(pos.y+1),z=pos.z}
|
||||||
local above = minetest.get_node(pos2).name
|
local above = minetest.get_node(pos2).name
|
||||||
if above == "default:snow" or above == "air" then
|
if above == "default:snow" or above == "air" then
|
||||||
minetest.set_node(pos2,"flowers:magic")
|
minetest.set_node(pos2,{name="flowers:magic"})
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "regrow all flowers",
|
||||||
nodenames = {"group:flora"},
|
nodenames = {"group:flora"},
|
||||||
neighbors = {"default:dirt_with_grass", "default:desert_sand","mg:dirt_with_dry_grass"},
|
neighbors = {"default:dirt_with_grass", "default:desert_sand","mg:dirt_with_dry_grass"},
|
||||||
interval = 50,
|
interval = 50,
|
||||||
chance = 25,
|
chance = 75,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
pos.y = pos.y - 1
|
pos.y = pos.y - 1
|
||||||
local under = minetest.get_node(pos)
|
local under = minetest.get_node(pos)
|
||||||
pos.y = pos.y + 1
|
pos.y = pos.y + 1
|
||||||
|
|
|
@ -185,6 +185,7 @@ minetest.register_node("glowcrystals:wall", {
|
||||||
|
|
||||||
-- convert old torches and remove ceiling placed
|
-- convert old torches and remove ceiling placed
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "convert old glow crystal torches",
|
||||||
nodenames = {"glowcrystals:glowcrystal_torch"},
|
nodenames = {"glowcrystals:glowcrystal_torch"},
|
||||||
interval = 1,
|
interval = 1,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
|
|
|
@ -89,7 +89,7 @@ minetest.register_abm({
|
||||||
interval = 10,
|
interval = 10,
|
||||||
chance = 50,
|
chance = 50,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
local vm = minetest.get_voxel_manip()
|
local vm = minetest.get_voxel_manip()
|
||||||
local minp, maxp = vm:read_from_map({x=pos.x-10, y=pos.y, z=pos.z-10}, {x=pos.x+10, y=pos.y+20, z=pos.z+10})
|
local minp, maxp = vm:read_from_map({x=pos.x-10, y=pos.y, z=pos.z-10}, {x=pos.x+10, y=pos.y+20, z=pos.z+10})
|
||||||
local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp}
|
local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp}
|
||||||
|
@ -113,12 +113,13 @@ minetest.register_node("mg:dirt_with_dry_grass", {
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "convert dirt with dry grass",
|
||||||
nodenames = {"mg:dirt_with_dry_grass"},
|
nodenames = {"mg:dirt_with_dry_grass"},
|
||||||
neighbors = {"default:water_source","default:water_flowing","default:dirt_with_snow","default:snow","default:snowblock"},
|
neighbors = {"default:water_source","default:water_flowing","default:dirt_with_snow","default:snow","default:snowblock"},
|
||||||
interval = 2,
|
interval = 2,
|
||||||
chance = 200,
|
chance = 200,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
local above = {x=pos.x, y=pos.y+1, z=pos.z}
|
local above = {x=pos.x, y=pos.y+1, z=pos.z}
|
||||||
local name = minetest.get_node(above).name
|
local name = minetest.get_node(above).name
|
||||||
local nodedef = minetest.registered_nodes[name]
|
local nodedef = minetest.registered_nodes[name]
|
||||||
|
@ -135,11 +136,12 @@ minetest.register_abm({
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "dirt with dry grass to dirt with grass",
|
||||||
nodenames = {"mg:dirt_with_dry_grass"},
|
nodenames = {"mg:dirt_with_dry_grass"},
|
||||||
interval = 2,
|
interval = 2,
|
||||||
chance = 20,
|
chance = 20,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
local above = {x=pos.x, y=pos.y+1, z=pos.z}
|
local above = {x=pos.x, y=pos.y+1, z=pos.z}
|
||||||
local name = minetest.get_node(above).name
|
local name = minetest.get_node(above).name
|
||||||
local nodedef = minetest.registered_nodes[name]
|
local nodedef = minetest.registered_nodes[name]
|
||||||
|
@ -216,11 +218,12 @@ minetest.register_node("mg:pinesapling", {
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
label = "grow pine sapling",
|
||||||
nodenames = {"mg:pinesapling"},
|
nodenames = {"mg:pinesapling"},
|
||||||
interval = 10,
|
interval = 10,
|
||||||
chance = 50,
|
chance = 50,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
local vm = minetest.get_voxel_manip()
|
local vm = minetest.get_voxel_manip()
|
||||||
local minp, maxp = vm:read_from_map({x=pos.x-10, y=pos.y, z=pos.z-10}, {x=pos.x+10, y=pos.y+30, z=pos.z+10})
|
local minp, maxp = vm:read_from_map({x=pos.x-10, y=pos.y, z=pos.z-10}, {x=pos.x+10, y=pos.y+30, z=pos.z+10})
|
||||||
local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp}
|
local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp}
|
||||||
|
|
|
@ -63,7 +63,7 @@ minetest.register_abm({
|
||||||
interval = 1,
|
interval = 1,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
if node.name == "moreblocks:horizontal_tree" then
|
if node.name == "moreblocks:horizontal_tree" then
|
||||||
node.name = "default:tree"
|
node.name = "default:tree"
|
||||||
else
|
else
|
||||||
|
|
|
@ -79,7 +79,7 @@ function stairsplus:register_6dfacedir_conversion(modname, material)
|
||||||
interval = 1,
|
interval = 1,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
local fdir = node.param2 or 0
|
local fdir = node.param2 or 0
|
||||||
|
|
||||||
if flip_upside_down and not flip_to_wall then
|
if flip_upside_down and not flip_to_wall then
|
||||||
|
@ -123,7 +123,7 @@ function stairsplus:register_6dfacedir_conversion(modname, material)
|
||||||
interval = 1,
|
interval = 1,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
local fdir = node.param2
|
local fdir = node.param2
|
||||||
local nfdir = 20
|
local nfdir = 20
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ minetest.register_chatcommand("home", {
|
||||||
end
|
end
|
||||||
local last_moved = pd.get_number(pname,"last_moved")
|
local last_moved = pd.get_number(pname,"last_moved")
|
||||||
local homepos = pd.get(pname,"homepos")
|
local homepos = pd.get(pname,"homepos")
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = minetest.get_player_by_name(pname)
|
||||||
if player == nil then
|
if player == nil then
|
||||||
-- just a check to prevent server death
|
-- just a check to prevent server death
|
||||||
return false
|
return false
|
||||||
|
|
|
@ -180,8 +180,11 @@ minetest.register_chatcommand("skills", {
|
||||||
function skills_on_dieplayer (player)
|
function skills_on_dieplayer (player)
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
local level = skills.get_player_level(name)
|
local level = skills.get_player_level(name)
|
||||||
|
|
||||||
|
if level ~= nil then
|
||||||
local decrease = level.exp * -0.1
|
local decrease = level.exp * -0.1
|
||||||
skills.add_exp(name,decrease)
|
skills.add_exp(name,decrease)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
dofile(minetest.get_modpath("skills").."/register_skills.lua")
|
dofile(minetest.get_modpath("skills").."/register_skills.lua")
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
-- REGISTER THE SKILLS
|
-- REGISTER THE SKILLS
|
||||||
skills.register_skill(SKILL_WOOD, { desc = 'Wood', max_level = 10, level_exp = 3, level = 1 })
|
skills.register_skill(SKILL_WOOD, { desc = 'Wood', max_level = 10, level_exp = 3, level = 1 })
|
||||||
skills.register_skill(SKILL_STONE, { desc = 'Stone', max_level = 10, level_exp = 5, level = 1 })
|
skills.register_skill(SKILL_STONE, { desc = 'Stone', max_level = 10, level_exp = 5, level = 1 })
|
||||||
skills.register_skill(SKILL_METAL, { desc = 'Metals', max_level = 20, level_exp = 9, level = 5 })
|
skills.register_skill(SKILL_METAL, { desc = 'Metals', max_level = 20, level_exp = 9, level = 4 })
|
||||||
skills.register_skill(SKILL_CRYSTAL, { desc = 'Crystals', max_level = 20, level_exp = 10, level = 10 })
|
skills.register_skill(SKILL_CRYSTAL, { desc = 'Crystals', max_level = 20, level_exp = 10, level = 8 })
|
||||||
|
|
||||||
skills.register_skill(SKILL_SMELTING, { desc = 'Smelting', max_level = 50, level_exp = 5, level = 1 })
|
skills.register_skill(SKILL_SMELTING, { desc = 'Smelting', max_level = 50, level_exp = 5, level = 1 })
|
||||||
skills.register_skill(SKILL_CRAFTING, { desc = 'Crafting', max_level = 50, level_exp = 5, level = 1 })
|
skills.register_skill(SKILL_CRAFTING, { desc = 'Crafting', max_level = 50, level_exp = 5, level = 1 })
|
||||||
|
|
||||||
skills.register_skill(SKILL_ARROW, { desc = 'Bow and Arrow', max_level=10, level_exp = 10, level = 10 })
|
skills.register_skill(SKILL_ARROW, { desc = 'Bow and Arrow', max_level=10, level_exp = 10, level = 10 })
|
||||||
skills.register_skill(SKILL_MAGIC, { desc = 'Magic', max_level=15, level_exp = 10, level =5 })
|
skills.register_skill(SKILL_MAGIC, { desc = 'Magic', max_level=15, level_exp = 10, level =3 })
|
||||||
|
|
|
@ -195,7 +195,7 @@ minetest.register_abm({
|
||||||
interval = 1,
|
interval = 1,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
if abm_limiter() then return end
|
--if abm_limiter() then return end
|
||||||
node.name = minetest.registered_nodes[node.name].replace_name
|
node.name = minetest.registered_nodes[node.name].replace_name
|
||||||
node.param2 = node.param2 + 20
|
node.param2 = node.param2 + 20
|
||||||
if node.param2 == 21 then
|
if node.param2 == 21 then
|
||||||
|
|
|
@ -6,7 +6,7 @@ function ts_doors.register_door(recipe, description, texture)
|
||||||
local groups = node.groups
|
local groups = node.groups
|
||||||
local door_groups = {}
|
local door_groups = {}
|
||||||
for k,v in pairs(groups) do
|
for k,v in pairs(groups) do
|
||||||
if k ~= "wood" then
|
if k ~= "wood" and k ~= "tree" then
|
||||||
door_groups[k] = v
|
door_groups[k] = v
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue