package mods.immibis.core.api.multipart;
/**
* An object that allows extra parts to be added to multipart tiles.
* For example, you can add covers to InfiniTubes transport conduits
* because they use a MicroblockCoverSystem.
*
* This interface's existence is a bit unintuitive, but it seemed to "naturally fall out" of the design.
*/
public interface ICoverSystem extends IPartContainer {
/**
* Converts the block containing this cover system into
* a block containing only parts from this cover system,
* or to air if the cover system has no parts.
*
* Call it when, for example, all wires in a RedLogic wire block are destroyed,
* to replace it with a microblock container block if there were any microblocks
* in the wire block.
*
* TODO should this be called on the client, server or both?
*
* Note: For custom implementations, this should be capable of being called even after
* the block and tile entity are removed (and should resurrect them)
*/
public void convertToContainerBlock();
}