mirror of
https://github.com/luanti-org/luanti.git
synced 2025-09-15 18:57:08 +00:00
Lua on each mapgen thread (#13092)
This commit is contained in:
parent
d4b107e2e8
commit
3cac17d23e
32 changed files with 1329 additions and 193 deletions
61
builtin/emerge/env.lua
Normal file
61
builtin/emerge/env.lua
Normal file
|
@ -0,0 +1,61 @@
|
|||
-- Reimplementations of some environment function on vmanips, since this is
|
||||
-- what the emerge environment operates on
|
||||
|
||||
-- core.vmanip = <VoxelManip> -- set by C++
|
||||
|
||||
function core.set_node(pos, node)
|
||||
return core.vmanip:set_node_at(pos, node)
|
||||
end
|
||||
|
||||
function core.bulk_set_node(pos_list, node)
|
||||
local vm = core.vmanip
|
||||
local set_node_at = vm.set_node_at
|
||||
for _, pos in ipairs(pos_list) do
|
||||
if not set_node_at(vm, pos, node) then
|
||||
return false
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
core.add_node = core.set_node
|
||||
|
||||
-- we don't deal with metadata currently
|
||||
core.swap_node = core.set_node
|
||||
|
||||
function core.remove_node(pos)
|
||||
return core.vmanip:set_node_at(pos, {name="air"})
|
||||
end
|
||||
|
||||
function core.get_node(pos)
|
||||
return core.vmanip:get_node_at(pos)
|
||||
end
|
||||
|
||||
function core.get_node_or_nil(pos)
|
||||
local node = core.vmanip:get_node_at(pos)
|
||||
return node.name ~= "ignore" and node
|
||||
end
|
||||
|
||||
function core.get_perlin(seed, octaves, persist, spread)
|
||||
local params
|
||||
if type(seed) == "table" then
|
||||
params = table.copy(seed)
|
||||
else
|
||||
assert(type(seed) == "number")
|
||||
params = {
|
||||
seed = seed,
|
||||
octaves = octaves,
|
||||
persist = persist,
|
||||
spread = {x=spread, y=spread, z=spread},
|
||||
}
|
||||
end
|
||||
params.seed = core.get_seed(params.seed) -- add mapgen seed
|
||||
return PerlinNoise(params)
|
||||
end
|
||||
|
||||
|
||||
function core.get_perlin_map(params, size)
|
||||
local params2 = table.copy(params)
|
||||
params2.seed = core.get_seed(params.seed) -- add mapgen seed
|
||||
return PerlinNoiseMap(params2, size)
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue