/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com
*
* The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which
* should be located as "LICENSE.API" in the BuildCraft source code distribution. */
package buildcraft.api.blueprints;
import java.io.File;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.World;
/** This class is provided as a utility class for third-party mods that would like to easily deploy structures that are
* written in blueprints. It does not offer control on material that needs to get in, or how the structure is deployed,
* but allows to create contents of a blueprint in one cycle. Note that these functionalities will only work if
* BuildCraft is installed. */
public abstract class BlueprintDeployer {
/** The deployed instantiated by BuildCraft. This is set by the BuildCraft builder mod. Mods that want to work with
* BuildCraft not installed should check for this value to be not null. */
public static BlueprintDeployer instance;
/** Deploy the contents of the blueprints as if the builder was located at {pos} facing the direction dir. */
public abstract void deployBlueprint(World world, BlockPos pos, EnumFacing facing, File file);
/** Deploy the contents of the byte array as if the builder was located at {pos} facing the direction dir. */
public abstract void deployBlueprintFromFileStream(World world, BlockPos pos, EnumFacing dir, byte[] data);
}