If this is implemented we could do something like this:
function OnPluginsLoaded()
cPluginManager:CallPlugin("WorldEdit", "ExecuteString", [[
-- Retrieve the size of each portion, and ticks between each partion write
local PartionSize, TicksBetweenWrite = ...
PartionSize = Vector3i(PartionSize, PartionSize, PartionSize)
function cBlockArea:Write(a_World, a_Position, a_Y, a_Z)
if (type(a_Position) ~= "Vector3i") then
a_Position = Vector3i(a_Positoin, a_Y, a_Z)
end
local SizeX, SizeY, SizeZ = self:GetCoordRange()
local Positions = {}
for X = 0, SizeX, PartionSize do
for Y = 0, SizeY, PartionSize do
for Z = 0, SizeZ, PartionSize do
table.insert(Positions, Vector3i(X, Y, Z))
end
end
end
local function WriteIntoWorld = function(a_World)
-- TODO add a Max value in Positoins[1] + PortionSize
self:WritePortion(a_World, a_Position + Positions[1], Positions[1], Positions[1] + PartionSize, cBlockArea.baTypes + cBlockArea.baMetas)
table.remove(Positions, 1)
if (Positions[1] ~= nil) then
a_World:ScheduleTask(WriteIntoWorld, TicksBetweenWrite)
end
end
WriteIntoWorld(a_World)
end
]], 25, 40)
end

