So the problem is it is iterating 536,870,912 times every 5 seconds doing region3 checks and like idk how else to do it. I need to get all voxels but idk how to do it i keep running out of memory
testing.rbxl (178.2 KB)
local offsets = {
Vector3.new(-1,-1,-1), -- bottom forward left
Vector3.new(1,-1,-1), -- bottom forward right
Vector3.new(-1,-1,1), -- bottom backward left
Vector3.new(1,-1,1), -- bottom backward right
Vector3.new(-1,1,-1), -- top forward left
Vector3.new(1,1,-1), -- top forward right
Vector3.new(-1,1,1), -- top backward left
Vector3.new(1,1,1) -- top backward right
}
local function spliceRegions(min, max, iter1, iter2)
local reference = Region3.new(min, max)
local regions = {}
for i=1,#offsets do
local size = Vector3.new(reference.Size.X/2, reference.Size.Y/2, reference.Size.Z/2)
local offset = offsets[i] * Vector3.new(reference.Size.X/4, reference.Size.Y/4, reference.Size.Z/4)
local point = reference.CFrame * CFrame.new(offset)
local newMin = Vector3.new(point.X, point.Y, point.Z) - size/2
local newMax = Vector3.new(point.X, point.Y, point.Z) + size/2
regions[i] = Region3.new(newMin, newMax)
end
return regions
end
while wait(5) do
--[[
print(workspace.Terrain:ReadVoxels(
Region3.new(Vector3.new(-555.725, -283.367, -549.748), Vector3.new(532, 51.105, 541)),
4))
]]--
local regions = spliceRegions(Vector3.new(-555.725, -283.367, -549.748), Vector3.new(532, 51.105, 541))
for i=1,#regions do
print(workspace.Terrain:ReadVoxels(regions[i], 4))
wait()
end
end