Remove ABM Limiter, label ABMs

BadToad2000/master
Brandon 2016-09-21 17:16:34 -05:00
parent 1325d7c5a3
commit f3ca7a4473
22 changed files with 95 additions and 47 deletions

View File

@ -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"
} }

View File

@ -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,

View File

@ -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 );

View File

@ -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

View File

@ -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,

View File

@ -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)

View File

@ -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
}) })

View File

@ -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
}) })

View File

@ -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,

View File

@ -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

View File

@ -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,

View File

@ -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,

View File

@ -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

View File

@ -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,

View File

@ -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}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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")

View File

@ -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 })

View File

@ -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

View File

@ -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