blob: 65e553f8976c278a4f8a188113a6126e420b327d [file] [log] [blame] [raw]
/**
* Copyright (c) SpaceToad, 2011
* http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
package buildcraft.api.blueprints;
import buildcraft.api.core.IBox;
import buildcraft.api.core.Position;
import net.minecraft.src.ItemStack;
import net.minecraft.src.World;
/**
* This interface provide contextual information when building or initializing
* blueprint slots.
*/
public interface IBptContext {
/**
* If bptItemStack is an ItemStack extracted from the blueprint containing
* this mapping, this will return an item stack with the id of the current
* world
*/
public ItemStack mapItemStack(ItemStack bptItemStack);
/**
* Blueprints may be created in a world with a given id setting, and then
* ported to a world with different ids. Heuristics are used to retreive
* these new ids automatically. This interface provide services to map ids
* from a blueprints to current ids in the world, and should be used
* whenever storing block numbers or item stacks in blueprints..
*/
public int mapWorldId(int bptWorldId);
/**
* This asks the id mapping to store a mapping from this Id, which may be
* either an itemId or a blockId. In effect, the blueprint will record it
* and make it available upon blueprint load. Note that block present in the
* blueprint are automatically stored upon blueprint save, so this is really
* only needed when writing ids that are e.g. in inventory stacks.
*/
public void storeId(int worldId);
public Position rotatePositionLeft(Position pos);
public IBox surroundingBox();
public World world();
}