@@ -0,0 +1,1958 @@
+/*%0A * Copyright 2017 MovingBlocks%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *      http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0Apackage org.terasology.world.zones;%0A%0Aimport org.terasology.module.sandbox.API;%0Aimport org.terasology.registry.CoreRegistry;%0Aimport org.terasology.world.block.Block;%0Aimport org.terasology.world.block.BlockManager;%0Aimport org.terasology.world.chunks.CoreChunk;%0Aimport org.terasology.world.generation.Region;%0Aimport org.terasology.world.generation.WorldRasterizer;%0A%0A/**%0A * This rasterizer will fill the whole area with the given block.%0A *%0A * This can be used to block-fill a %7B@link Zone%7D with the block.%0A */%0A@API%0Apublic class SingleBlockRasterizer implements WorldRasterizer %7B%0A%0A    private final String blockUri;%0A    private Block block;%0A    private BlockManager blockManager;%0A%0A    public SingleBlockRasterizer(String blockUri) %7B%0A        this.blockUri = blockUri;%0A    %7D%0A%0A    @Override%0A    public void initialize() %7B%0A        blockManager = CoreRegistry.get(BlockManager.class);%0A        block = blockManager.getBlock(blockUri);%0A    %7D%0A%0A    @Override%0A    public void generateChunk(CoreChunk chunk, Region chunkRegion) %7B%0A        for (int chunkX = 0; chunkX %3C chunk.getChunkSizeX(); chunkX++) %7B%0A            for (int chunkZ = 0; chunkZ %3C chunk.getChunkSizeZ(); chunkZ++) %7B%0A                for (int chunkY = 0; chunkY %3C chunk.getChunkSizeY(); chunkY++) %7B%0A                    chunk.setBlock(chunkX, chunkY, chunkZ, block);%0A                %7D%0A            %7D%0A        %7D%0A    %7D%0A%7D%0A

Add SingleBlockRasterizer for filling a zone with a single block