Add AUTOBUILD_CHUNKDIST

This commit is contained in:
Wuzzy 2022-04-16 01:33:59 +02:00
parent f62368898f
commit be986812aa

View File

@ -18,6 +18,8 @@ local AUTOBUILD_UPDATE_TIME = 1.0
-- x/y/z size of chunks to generate in autobuild mode.
local AUTOBUILD_SIZE = 16
-- Amount of chunks to generate around player
local AUTOBUILD_CHUNKDIST = 2
-- Color of the formspec box[] element
@ -763,42 +765,23 @@ minetest.register_globalstep(function(dtime)
local pos = vector.round(player:get_pos())
pos = sidelen_pos(pos, AUTOBUILD_SIZE)
local neighbors = {
vector.new(0, 0, 0),
vector.new(0, 0, -1),
vector.new(0, 0, 1),
vector.new(0, -1, -1),
vector.new(0, -1, 0),
vector.new(0, -1, 1),
vector.new(0, 1, -1),
vector.new(0, 1, 0),
vector.new(0, 1, 1),
vector.new(-1, -1, -1),
vector.new(-1, -1, 0),
vector.new(-1, -1, 1),
vector.new(-1, 0, -1),
vector.new(-1, 0, 0),
vector.new(-1, 0, 1),
vector.new(-1, 1, -1),
vector.new(-1, 1, 0),
vector.new(-1, 1, 1),
vector.new(1, -1, -1),
vector.new(1, -1, 0),
vector.new(1, -1, 1),
vector.new(1, 0, -1),
vector.new(1, 0, 0),
vector.new(1, 0, 1),
vector.new(1, 1, -1),
vector.new(1, 1, 0),
vector.new(1, 1, 1),
}
local neighbors = { vector.new(0, 0, 0) }
local c = AUTOBUILD_CHUNKDIST
local cc = c
if current_perlin.dimensions == 2 then
cc = 0
end
for cx=-c, c do
for cy=-cc, cc do
for cz=-c, c do
table.insert(neighbors, vector.new(cx, cy, cz))
end
end
end
for n=1, #neighbors do
if current_perlin.dimensions == 3 or neighbors[n].y == 0 then
local offset = vector.multiply(neighbors[n], 16)
local npos = vector.add(pos, offset)
build(npos, player:get_player_name())
end
local offset = vector.multiply(neighbors[n], AUTOBUILD_SIZE)
local npos = vector.add(pos, offset)
build(npos, player:get_player_name())
end
end
end)