/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.pepsoft.worldpainter.exporting; import org.pepsoft.worldpainter.Dimension; import javax.vecmath.Point3i; import java.awt.*; /** * An exporter which can export a layer block by block at a particular, directed * height and intensity. * * @author SchmitzP */ public interface IncidentalLayerExporter extends LayerExporter { /** * Apply the layer at a particular single set of coordinates in the world. * This method should be deterministic; i.e. when applied to the same layer * at the same location in a dimension with the same seed the result should * be the same. * * @param dimension The dimension that is being exported. * @param location The 3D location at which to apply the layer. Points to * the block <em>above</em> the surface. * @param intensity The intensity at which to apply the layer, as a * percentage. * @param exportedArea The area which will actually be exported. May be used * to for instance avoid objects getting cut off at area boundaries. * @param minecraftWorld The Minecraft world in which to apply the layer. * @return An optional fixup which should be executed after all regions have * been exported. */ Fixup apply(Dimension dimension, Point3i location, int intensity, Rectangle exportedArea, MinecraftWorld minecraftWorld); }