7755583fa4
rename mods; add `bg_` prefix. add hacky cleanup ABM (couldn't get LBM:s to work), that converts old nodes into new ones according to this rename. the cleanup doesn't do anything for items, though.
57 lines
1.3 KiB
Lua
57 lines
1.3 KiB
Lua
function blockgame.reg_simple_node (name, desc, groups)
|
|
local my_modname = minetest.get_current_modname()
|
|
return blockgame.register_node(my_modname .. ":" .. name, {
|
|
description = desc,
|
|
tiles = {
|
|
my_modname .. "_" .. name .. ".png",
|
|
},
|
|
groups = groups,
|
|
})
|
|
end
|
|
|
|
|
|
|
|
-- probably temporary; will probably use groups for this later.
|
|
local air_flowable = {
|
|
"air",
|
|
"bg_tree:leaves",
|
|
"bg_tree:leaves_alive",
|
|
}
|
|
|
|
function blockgame.air_flows_through (pos, node)
|
|
node = node or minetest.get_node(pos)
|
|
local node_name = node.name
|
|
for _, name in pairs(air_flowable) do
|
|
if name == node_name then return true end
|
|
end
|
|
return false
|
|
end
|
|
|
|
|
|
|
|
function blockgame.attempt_place (pos, node)
|
|
if minetest.get_node(pos).name ~= "air" then return false end
|
|
minetest.set_node(pos, node)
|
|
return true
|
|
end
|
|
|
|
|
|
|
|
function blockgame.random_walk (data)
|
|
local pos = vector.copy(data.pos)
|
|
local min_steps = data.min_steps or 0
|
|
local max_steps = data.max_steps or 8
|
|
local check = data.check
|
|
local neighborhood = data.neighborhood or blockgame.vector.dirs
|
|
|
|
local steps = math.random(min_steps, max_steps)
|
|
local step = 0
|
|
|
|
while step < steps do
|
|
local dir = blockgame.random_element(neighborhood)
|
|
local new_pos = pos + dir
|
|
if check(new_pos, minetest.get_node(new_pos)) then pos = new_pos end
|
|
step = step + 1
|
|
end
|
|
return pos
|
|
end
|